prog_advanced.c
上传用户:caisangzi8
上传日期:2013-10-25
资源大小:15756k
文件大小:19k
源码类别:

DVD

开发平台:

C/C++

  1. /**************************************************************
  2. ** FILE
  3. ** prog_advanced.c
  4. **
  5. ** DESCRIPTION
  6. **  prog play for MP3/CD/DVD
  7. **  1)build a more beautiful GUI  for PROGRAM
  8. **  2)opration mode like PC
  9. ** 
  10. **  NOTE:
  11. **     prog[0][0]
  12. **     prog[0][1] is not use.
  13. **     the same as primary file(prog_unmp3dir.c / prog_mp3dir.c)
  14. **     
  15. **   Creator:  zhaoyanhua
  16. **   Date:     2004-4-9 9:00
  17. ****************************************************************/
  18. #ifdef OP_UI
  19. #include "fsGUI_osd_func.h"
  20. #include "fsGUI_osd_def.h"
  21. #include "menu_def.h"
  22. #include "menu_page.h"
  23. #include "fsNAV.h"
  24. #include "fs96602.h"
  25. #include "osdGUI_def.h"
  26. #include "osdGUI_func.h"
  27. //extern functions and variables
  28. extern int menu_page;
  29. extern int menu_level;
  30. extern int HL_menu;
  31. extern BYTE index_y1;
  32. extern UINT16 dir_set_top;
  33. extern void ShowMenuPage(UINT8 page, UINT8 level, UINT8 HL_y);
  34. extern void osd_draw_root_button(UINT32 xStart, UINT32 yStart, UINT32 xLen, UINT32 yLen,BYTE color,BYTE flag);
  35. //GUI position unit:pixels
  36. #define PROG_GUI_XSTART     (MENU_XSTART+MENU_BTN_XLEN)*16+4
  37. #define PROG_GUI_YSTART     (MENU_YSTART-1)*BUTTON_Y_DIFF
  38. #define PROG_GUI_YLEN       8*BUTTON_Y_DIFF//5 button lenth
  39. #define PROG_GUI_XLEN       22*16
  40. #define ITEM0_XSTART        MENU_XSTART+MENU_BTN_XLEN+2
  41. #define ITEM0_YSTART        MENU_YSTART
  42. #define ITEM_Y_DIFF         BUTTON_Y_DIFF
  43. #define ITEM_X_DIFF         10
  44. //for button"Done" unit: pixels
  45. #define DONEBTN_XSTART      (ITEM0_XSTART+ITEM_X_DIFF/2)*16   
  46. #define DONEBTN_YSTART      (ITEM0_YSTART+5)*ITEM_Y_DIFF
  47. #define DONEBTN_XLEN        (ITEM_X_DIFF/2)*16
  48. //for cdda "All tracks "item
  49. #define CD_ALL_TRACKS   0
  50. /*
  51.  * Descirption:
  52.  *
  53.  *   because its mode looks like fsGUI,so use some funcitons of FSGUI
  54.  */
  55. void prog_init(void)
  56. {
  57.     int i = 0;
  58.     
  59.     full_scrn = PROGRAM;
  60.     OSDGUI_Init();
  61.     OSDGUI_ShowDirInitPara();
  62.     
  63.     if (cd_type_loaded == CDROM)
  64.     {
  65. #ifdef SURRORT_MP3_PREPLAY
  66.         FS_ClearPreplayFlag();
  67. #endif//#ifdef SURRORT_MP3_PREPLAY    
  68.     }
  69.     //NOTE:
  70.     // I use index_x to show HL
  71.     // index_x = 0,            HL in items
  72.     // index_x = SHOW_PROG_NO*2, HL in "DONE" BUTTON
  73.     index_x = 0;//now HL in items
  74.                
  75.     if(prog_cnt == 0)
  76.     {     
  77.         for (i = 0; i <= SHOW_PROG_NO; i++)
  78.         {    
  79.             prog[i][0] = 0;
  80.             prog[i][1] = 0;
  81.         }          
  82.     }
  83. }
  84. void ShowProgPage(void)
  85. {
  86.     UINT16 current_dir = 0;
  87.     
  88.     //printf("###### ------SHow PROGPAGE---n");
  89.     current_dir = FSGUI_GetRootDir();  
  90.     if ((cd_type_loaded == CDROM) )//only mp3
  91.     {
  92.         pFsJpeg->fsnav_dir_now = current_dir;
  93.     }
  94.     else if(cd_type_loaded == CDDVD)
  95.     {
  96.         dvd_title = 0; 
  97.     }    
  98.     OSDGUI_ShowOneDirContent(current_dir);       
  99.     
  100.     
  101.     if(prog_cnt >10)
  102.         prog_ShowOnePage(11,20);
  103.     else
  104.         prog_ShowOnePage(1,10);
  105.     
  106.     ShowOperationMsg(STR_OS_PROG_UI_MSG1, 1);
  107. }
  108. /*
  109.  * Function : prog_func_clear()
  110.  *
  111.  * Descirption:
  112.  *  clear item from the last item
  113.  *
  114.  */
  115. void prog_func_clear(void)
  116. {
  117.     if(prog_cnt <= 0 )
  118.         return; 
  119.     
  120.     if(prog_cnt == 10)
  121.         prog_ShowOnePage(1, 10); 
  122.         
  123.    
  124.     //index_x is  the index of item
  125.     //prog[index_x][0]: folder
  126.     //prog[index_x][1]: file
  127.     prog[prog_cnt][0] = 0;
  128.     prog[prog_cnt][1] = 0;
  129.     ShowProgItemSel(prog_cnt, 0);
  130.    // printf("### ---CLeAR index:%d--n",prog_cnt);
  131.     prog_cnt--;
  132.        
  133. }
  134. void prog_func_down(void)
  135. {
  136.     if(index_x == SHOW_PROG_NO*2)//HL in DOWN
  137.         return;
  138.         
  139.     if (cd_type_loaded == CDROM)
  140.         FSGUI_OsdCmdDown();
  141.     else
  142.         OSDGUI_CmdDown();
  143. }
  144. void prog_func_left(void)
  145. {
  146.     if(index_x == SHOW_PROG_NO*2)//HL in DOWN
  147.     {
  148.         index_x = 0;
  149.         SetOsdCol(0, 0, BTN_SELECTED_COLOR, 0xa40050ff); //restore the color
  150.         prog_draw_done_button(BUTTON_UNSELECTED);
  151.     }  
  152.     else
  153.     {
  154.         if (cd_type_loaded == CDROM)
  155.             FSGUI_OsdCmdLeft();
  156.         else
  157.             OSDGUI_CmdLeft();    
  158.     }    
  159. }
  160. void prog_func_right(void)
  161. {
  162.     BYTE button_type = 0;
  163.     UINT16 index = 0;
  164.     
  165.     button_type = OSDGUI_GetSelButtonType(pFsJpeg->file_current_in_page);
  166.     index = pFsJpeg->file_array_in_page[pFsJpeg->file_current_in_page];
  167.     
  168.     if(   (button_type == SUB_BUTTON)//file in subdir 
  169.        || ((button_type == BLANK_BUTTON) && (index != END_FILE)))//file in root_dir
  170.     {//only when HL in file, can select DONE
  171.         
  172.         if (prog_cnt)
  173.         {
  174.             index_x = SHOW_PROG_NO*2;//only a flag show current HL in button"Done"
  175.             //draw "done" button
  176.             SetOsdCol(0, 0, BTN_SELECTED_COLOR, 0x831b24ff); 
  177.             prog_draw_done_button(BUTTON_SELECTED);
  178.         }
  179.     }   
  180.     else
  181.     {
  182.         if (cd_type_loaded == CDROM)
  183.             FSGUI_OsdCmdRight();
  184.         else
  185.             OSDGUI_CmdRight();
  186.         
  187.     }    
  188. }
  189. void prog_func_up(void)
  190. {
  191.     if(index_x == SHOW_PROG_NO*2)//HL in DOWN
  192.         return;
  193.     
  194.     if (cd_type_loaded == CDROM)
  195.         FSGUI_OsdCmdUp();
  196.     else
  197.         OSDGUI_CmdUp();
  198. }
  199. void prog_func_select(void)
  200. {
  201.     //printf("##### ---select prog_cnt:%d--n",prog_cnt);
  202.     //HL in DONE button
  203.     if((index_x == SHOW_PROG_NO*2))
  204.     {    
  205.         prog_func_off(); 
  206.         return;
  207.     }
  208.     
  209.     if(prog_cnt >= 20)
  210.         return;
  211.     
  212.     if ((cd_type_loaded == CDDVD) && (dvd_title == 0))
  213.     {//if HL item is title, open this title.
  214.         prog_func_right();        
  215.         return;
  216.     }
  217.     
  218.     
  219.     if(prog_cnt == 10)
  220.         prog_ShowOnePage(11,20);
  221.             
  222.     prog_cnt++;
  223.     
  224.     
  225.     //index_x is  the index of item
  226.     //prog[index_x][0]: parent dir
  227.     //prog[index_x][1]: file
  228.     prog[prog_cnt][0] = OSDGUI_GetCurrentDir();
  229.     //"+1": if not "+1", when we record the file:0, 
  230.     //                   can not read it correctly.
  231.     prog[prog_cnt][1] = pFsJpeg->file_array_in_page[ pFsJpeg->file_current_in_page ] + 1;
  232.     
  233.     ShowProgItemSel(prog_cnt, 1);
  234.     //printf("### ---SELECT index:%d--n",prog_cnt);
  235. }
  236. void prog_func_off()
  237. {
  238.     
  239.     index_x = 0;
  240.     AVD_ResetMediaStatus();
  241.     osd_init_mainmenu();
  242.     printf("#### prog_func_off--prog_cnt:%d------n",prog_cnt);
  243. if (full_scrn & SETUP)
  244. {    
  245.     menu_level = 1;
  246.     menu_page = PLAYMODEPAGE;
  247.     HL_menu = SUB_MENU;
  248.     index_y1 = PROGRAMITEM;
  249.     //printf("#### heheheheheheh ----SHOWMENUPAGE");
  250.     ShowMenuPage(PLAYMODEPAGE, menu_level-1, PROGRAMITEM);
  251.     }
  252.     else
  253.     {
  254.         full_scrn = 0;
  255.         prog_index = 1;
  256.         
  257.         if (!prog_cnt)
  258.         {    
  259.             ircmd_play();
  260.             return;
  261.         }
  262.         
  263.         if(cd_type_loaded == CDROM)
  264.         {       
  265.             FSGUI_Return2Menu();
  266.             //pFsJpeg->gifsState = FS_STATE_MP3;
  267.             //pFsJpeg->fsnav_dir_now = prog[prog_index][0]; 
  268.             play_state = VCD_STATE_MP3_FILELIST;
  269.                 
  270.             //only for test
  271.             int i = 0;
  272.             for(i = 0; i<= prog_cnt; i++) 
  273.             {
  274.                 printf("prog_item[%d][0]:%d--n",i, prog[i][0]);    
  275.                 printf("prog_item[%d][1]:%d--n",i, prog[i][1]);    
  276.             }
  277.             ircmd_post_func(CMD_FUNC | CMD_FUNC_PRG); 
  278.             printf("Before exit pFsJpeg->fsnav_dir_now-%d-222,prog_index:%d,pFsJpeg->gifsFuncBtn :%dn",pFsJpeg->fsnav_dir_now,prog_index,pFsJpeg->gifsFuncBtn );  
  279.             
  280.         }
  281.         else if (cd_type_loaded == CDDVD)
  282.         {
  283.             dvd_title = 0;
  284.             if (prog_cnt)
  285.                 ircmd_post_func(CMD_FUNC|CMD_FUNC_PRG);
  286.             
  287.              
  288.         }
  289.         else if (cd_type_loaded == CDDA)
  290.         {
  291.             //because in v11.c use prog[prog_index][0]record prog item
  292.             //while I use prog[prog_index][1],so must copy prog[prog_index][1] --> prog[prog_index][0]
  293.             //zhaoyanhua 2004-5-25 10:29
  294.             if (prog_cnt)
  295.             {    
  296.                 int i = 0;
  297.             
  298.                 for (i = 1; i <= prog_cnt; i++)
  299.                     prog[i][0] = prog[i][1] - 1;//because in select(), prog[prog_cnt][1] = pFsJpeg->file_array_in_page[ pFsJpeg->file_current_in_page ] + 1;
  300.                 
  301.                 cd_trk_now = 1;
  302.                 ircmd_post_func(CMD_FUNC|CMD_FUNC_PRG);
  303.             }
  304.             
  305.             
  306.         }
  307.     }
  308. }
  309. /*
  310.  * Function name: prog_ShowOnePage()
  311.  *    
  312.  * Description:
  313.  *    Show one page for prog GUI 
  314.  * 
  315.  * INPUT:
  316.  *  itemStart itemEnd
  317.  *   1      ~  10      first page 
  318.  *  11      ~  20     second page
  319.  *
  320.  */
  321. void prog_ShowOnePage(int itemStart, int itemEnd)
  322. {
  323.     int i = 0;
  324.     
  325.     //draw the prog GUI 
  326.     osd_draw_rect(PROG_GUI_XSTART, PROG_GUI_YSTART, PROG_GUI_XLEN, PROG_GUI_YLEN, GRAY);
  327.     //draw items
  328.     for ( i = itemStart; i <= itemEnd; i++)
  329.         ShowProgItemSel(i, 0);
  330.     //draw "DONE" button    
  331.     prog_draw_done_button(BUTTON_UNSELECTED);
  332. }
  333. /*
  334.  * Description:
  335.  *    show string of prog selecition
  336.  *
  337.  *  INPUT:
  338.  *   mode -->  0     read inital value in prog[][].     
  339.  *                   if haved items in prog[][], show its string in GUI
  340.  *                   else  show "--"
  341.  ×             1     for new seleciton. show its string in GUI 
  342.  *
  343.  *   sel_item -->  selected item
  344.  */
  345. void ShowProgItemSel(BYTE sel_item, UINT8 mode)
  346. {
  347.  
  348.     BYTE str[35];
  349.     BYTE temp_str[30];
  350.     BYTE itemstr_xstart = 0;//unit: words
  351.     BYTE itemstr_ystart = 0;//unit: words
  352.     UINT16 file_index = 0;
  353.     
  354.     if(sel_item < 1)
  355.         return;
  356.     printf("### sel :%d, prog:%d---n",sel_item, prog[(sel_item)][1]);
  357.     if(mode == 0)
  358.     {   
  359.         if((prog[(sel_item)][1] == 0) )
  360.            psprintf(temp_str, "--");
  361.             //psprintf(str,"%d: %s",sel_item,"--");
  362.         else//get saved items in prog[][]
  363.         {
  364.             file_index = prog[(sel_item)][1]-1;
  365.             
  366.             prog_GetSelItemStr(temp_str, file_index);
  367.         }
  368.     }
  369.     else//mode = 1, get string of current selection.
  370.     {    
  371.         file_index = pFsJpeg->file_array_in_page[pFsJpeg->file_current_in_page];
  372.       
  373.         prog_GetSelItemStr(temp_str, file_index);
  374.         
  375.     }  
  376.     psprintf(str,"%d: %s",sel_item, temp_str);
  377.      
  378.      //format is :
  379.      //1--                2--
  380.      //3--                4--
  381.      //5--                6--ate == BUTTON_SELECTED)
  382.     
  383.      //7--                8--
  384.      //9--                10--
  385.      if(sel_item > 10)
  386.         sel_item = sel_item - ((sel_item-1)/10)*10;//1~10
  387.         
  388.      itemstr_xstart = ITEM0_XSTART+((sel_item-1)%2)*ITEM_X_DIFF;
  389.      itemstr_ystart = ITEM0_YSTART +(sel_item-1)/2;
  390.      ClearString(itemstr_xstart*16, itemstr_ystart*ITEM_Y_DIFF,
  391.                 9*16+12,GRAY);
  392.      osd_DrawRegionString(itemstr_xstart*16, itemstr_ystart*ITEM_Y_DIFF, str, WHITE, GRAY,0);      
  393. }
  394. void prog_draw_done_button(BYTE button_state)
  395. {
  396.     int bgColor = 0;
  397.     
  398.     if(button_state == BUTTON_SELECTED) 
  399.         bgColor =  BTN_SELECTED_COLOR;
  400.     else
  401.         bgColor = BLACK;
  402.   
  403.     //draw "DONE" button
  404.     osd_draw_rect(DONEBTN_XSTART, DONEBTN_YSTART, DONEBTN_XLEN, BUTTON_Y_DIFF, BLACK);//draw a black rect
  405.     osd_draw_root_button(DONEBTN_XSTART+2, DONEBTN_YSTART+2,
  406.                         DONEBTN_XLEN-4, BUTTON_Y_DIFF-4,
  407.                         bgColor, BUTTON_SELECTED);
  408.    
  409.    // osd_DrawRegionString(button_xstart+2, button_ystart+15, "Done", WHITE, BLACK,0);    
  410.     osd_DrawRegionString(DONEBTN_XSTART+16, DONEBTN_YSTART+14, "Done", WHITE, bgColor,0);      
  411. }
  412. /*
  413.  * Description:
  414.  *   Get the string of given file_index to show in PROGRAM GUI
  415.  *
  416.  * INPUT:
  417.  *   file_index ---> NOTE: it may be FILE or DIR
  418.  *
  419.  * OUPUT:
  420.  *   str
  421.  */
  422. void prog_GetSelItemStr(BYTE str[], int file_index)
  423. {
  424.     if(file_index == END_FILE)//file_index is invalid
  425.         str = "";
  426.     else 
  427.     {
  428.         if (file_index >= SUB_FOLDER_BASE)
  429.             OSDGUI_GetDirName(str, file_index - SUB_FOLDER_BASE);
  430.         else
  431.         {
  432.             if (cd_type_loaded == CDDVD)
  433.                 psprintf(str, "Title%d C%d", OSDGUI_GetParentDir(file_index,FILE), (file_index+1));
  434.             else
  435.                 OSDGUI_GetFileName(str, file_index);    
  436.         }
  437.     }
  438. }
  439. /*
  440.  * Description:
  441.  *    when prog mode, "PREV" will excute the following funcrion
  442.  *
  443.  */
  444. BYTE prog_func_prev(UINT16 index)
  445. {
  446.     UINT16 iSel = 0;
  447.     BYTE    file_type = 0;
  448.     BYTE  flag = FALSE;
  449.     
  450.     iSel = prog[index][1] - 1; //get real file index.
  451.     if (cd_type_loaded == CDDA)
  452.     {
  453.         if (iSel == CD_ALL_TRACKS)//item"ALL tracks"
  454.             file_type = FOLDER_TYPE;
  455.         else
  456.             file_type = FILE_TYPE;
  457.     }
  458.     else
  459.     {    
  460.     if (iSel >= SUB_FOLDER_BASE)//current prog item is folder    
  461.     {    
  462.         iSel = iSel - SUB_FOLDER_BASE;//get real dir index in iso9660_dir
  463.         file_type = FOLDER_TYPE;
  464.     }
  465.     else 
  466.         file_type = FILE_TYPE;
  467.     }
  468.     
  469.     if (file_type == FOLDER_TYPE)
  470.     {
  471.         if (cd_type_loaded == CDROM)
  472.         {
  473.             UINT16  CurDir = dir_set[dir_set_top];
  474.         
  475.             if (FSGUI_IsFolderEnd(CurDir, PAGE_UP) == FALSE)     
  476.                 pFsJpeg->fsnav_trk_now--; 
  477.             else
  478.             {//according to the OP sample,
  479.              //if prog mode, prev in the folder end will appear invalid.
  480.                 #if 0
  481.                 if (dir_set_top > 0)
  482.                     dir_set_top--;
  483.                 CurDir = dir_set[dir_set_top];
  484.                 
  485.                 if ((CurDir == (iSel-1))//prev dir is same level as iSel.
  486.                     || (CurDir < iSel)//iSel has no same level again. prev dir'level less than iSel.
  487.                     )
  488.                 { //current prog item(Folder,including all subfolders and files) has been played out.        
  489.                     prog_index--;//get prev prog item
  490.                     flag = TRUE;
  491.                 }
  492.                 else
  493.                 {
  494.                     pFsJpeg->fsnav_dir_now = CurDir;//get real dir index in iso9660_dir
  495.                     CalcDirFirstPage(pFsJpeg->fsnav_dir_now);
  496.                 }
  497.                 #endif
  498.             }
  499.             FSGUI_ShowCurrentSelection((pFsJpeg->fsnav_trk_now + pFsJpeg->first_mp3_entry)); 
  500.         }
  501.         else if (cd_type_loaded == CDDA)
  502.         {
  503.             if (cd_trk_now <= cd_trk_lo)
  504.             {
  505.                 prog_index--;
  506.                 flag = TRUE;    
  507.             }
  508.             else
  509.                 cd_trk_now--;    
  510.         }
  511.           
  512.         printf("Prev--   FOLDER ----flag :%d,prog_index :%d--pFsJpeg->fsnav_trk_now:%d,pFsJpeg->fsnav_dir_now:%dn",flag,prog_index,pFsJpeg->fsnav_trk_now,pFsJpeg->fsnav_dir_now);
  513.     }
  514.     else//file 
  515.     {    
  516.         prog_index--;          
  517.         flag = TRUE;
  518.         printf("Prev --- FILE ----flag :%d,prog_index :%d--n",flag, prog_index); 
  519.     }                
  520.     
  521.     if ((cd_type_loaded == CDDA) && (flag == TRUE))
  522.         cd_trk_now = 1;//when play prev prog_index, reset its value;
  523.     
  524.     if (adv_search_time < 0)
  525.         adv_search_time = 0;
  526. if (prog_index < 1)
  527. {    
  528.     prog_index = prog_cnt;
  529.     flag = TRUE;
  530. }
  531.     
  532. return flag;
  533. }
  534. /*
  535.  * Description:
  536.  *    when prog mode, "NEXT" will excute the following funcrion
  537.  *
  538.  */
  539. BYTE prog_func_next(UINT16 index)
  540. {
  541.     UINT16 iSel = 0;
  542.     BYTE    file_type = 0;
  543.     BYTE    flag = FALSE;
  544.     
  545.     iSel = prog[index][1] - 1; //get real file index.
  546.    
  547.     
  548.     if (cd_type_loaded == CDDA)
  549.     {
  550.         if (iSel == CD_ALL_TRACKS)//item"ALL tracks"
  551.             file_type = FOLDER_TYPE;
  552.         else
  553.             file_type = FILE_TYPE;
  554.     }    
  555.     else
  556.     {    
  557.         if (iSel >= SUB_FOLDER_BASE)//current prog item is folder    
  558.         {    
  559.             iSel = iSel - SUB_FOLDER_BASE;//get real dir index in iso9660_dir
  560.             file_type = FOLDER_TYPE;
  561.         }
  562.         else 
  563.             file_type = FILE_TYPE;
  564.     }    
  565.     if (file_type == FOLDER_TYPE)
  566.     {
  567.         if (cd_type_loaded == CDROM)
  568.         {
  569.             UINT16  CurDir = 0;
  570.             
  571.             if (FSGUI_IsFolderEnd(pFsJpeg->fsnav_dir_now, PAGE_DOWN) == FALSE)     
  572.                 pFsJpeg->fsnav_trk_now++; 
  573.             else
  574.             {
  575.                 if (dir_set_top < (pFsJpeg->iso9660_dir_cnt-1))
  576.                 {    
  577.                     dir_set_top++;
  578.                     //if((iso9660_dir[dir_set[dir_set_top]].type) & (0x01 << pFsJpeg->gifsFuncBtn))
  579.                      //   break;
  580.                 }
  581.                 CurDir = dir_set[dir_set_top];
  582.                 
  583.                 if ((CurDir == (iSel+1))//next dir is same level as iSel.
  584.                     || (CurDir < iSel)//iSel has no same level again. next dir'level less than iSel.
  585.                     ) 
  586.                 {//current prog item(Folder,including all subfolders and files) has been played out.     
  587.                     prog_index++;//get next prog item
  588.                     flag = TRUE;
  589.                 }
  590.                 else
  591.                 {
  592.                     pFsJpeg->fsnav_dir_now = CurDir;//get real dir index in iso9660_dir
  593.                     CalcDirFirstPage(pFsJpeg->fsnav_dir_now);
  594.                 }
  595.                 
  596.             }  
  597.             FSGUI_ShowCurrentSelection((pFsJpeg->fsnav_trk_now + pFsJpeg->first_mp3_entry));   
  598.         }
  599.         else if (cd_type_loaded == CDDA)
  600.         {
  601.             if (cd_trk_now >= cd_trk_hi)
  602.             {
  603.                 prog_index++;
  604.                 flag = TRUE;    
  605.             }
  606.             else
  607.                 cd_trk_now++;    
  608.             
  609.         }    
  610.         
  611.         printf("NExt --- FOLDER  iSel:%d---dir_set_top:%d, dir_set[dir_set_top]:%d---n",iSel,dir_set_top, dir_set[dir_set_top]);
  612.         printf("Next--   FOLDER ----flag :%d,prog_index :%d--pFsJpeg->fsnav_trk_now:%d,pFsJpeg->fsnav_dir_now:%dn",flag,prog_index,pFsJpeg->fsnav_trk_now,pFsJpeg->fsnav_dir_now);
  613.     }
  614.     else//file 
  615.     {    
  616.         prog_index++;          
  617.         flag = TRUE;
  618.         
  619.         printf("Next --- FILE ----flag :%d,prog_index :%d--n",flag, prog_index); 
  620.     }
  621.     if ((cd_type_loaded == CDDA) && (flag == TRUE))
  622.         cd_trk_now = 1;//when play next prog_index, reset its value;
  623.     
  624.     if (adv_search_time < 0)
  625.         adv_search_time = 0;
  626. if (prog_index > prog_cnt)
  627. {    
  628.     prog_index = 1;
  629.         flag = TRUE;
  630.     } 
  631. printf("Next flag :%d--prog_index:%dn",flag, prog_index);
  632.     
  633.     return flag;
  634. }
  635. int is_clear_pos(void)//2002-4-19 1:53
  636. {}
  637. void prog_func_play(void)
  638. {}
  639. void prog_func_input(UINT8 num)
  640. {}
  641. #endif//end ifdef OP_UI