fsGUI_new_large.c
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:20k
源码类别:

DVD

开发平台:

C/C++

  1. /**************************************************************
  2. ** FILE
  3. ** fsGUI_new_large.c
  4. **
  5. ** DESCRIPTION
  6. ** On the base of fsGUI_new.c, build a larger Memory Mode GUI for MP3/JPEG/GAME.
  7. **
  8. **
  9. **   Creator:   MaoYong
  10. **   Date:     3-12-19 14:49
  11. ****************************************************************/
  12. #include "global.h"
  13. #include "func.h"
  14. #include "memmap.h"
  15. #include "util.h"
  16. #include "graph.h"
  17. #include "memcfg.h"
  18. #include "framebuf.h"
  19. #include "macro.h"
  20. #include "stc.h"
  21. #include "cfont.h"
  22. #include "vfdfunc.h"
  23. #include "osd.h"
  24. #include "image.h"
  25. #include "nesinit.h"
  26. #include "fs96602.h"
  27. #include "fsNAV.h"
  28. #include "fsGUI.h"
  29. //#include "fsGUI1.h"
  30. //#include "user_if.h"
  31. //Maoyong 2004.04.15 add MP3_LARGE_GUI in fsGUI_new.h for different define.
  32. #include "fsGUI_new.h"
  33. #ifdef JPG_EFFECT
  34. #include "jpegeffect.h"
  35. #endif
  36. #ifdef MP3_TXT_DISPLAY//zhaoyanhua add 2003-9-1 17:49
  37. //for MP3_Lyrics_Drawed
  38. #define  MP3_LYRICS_IN_DIR_AREA    1
  39. #define  DIR_LIST_IN_DIR_AREA      0
  40. extern UINT16 MP3TotalNo;
  41. extern BYTE MP3_Lyrics_Drawed;
  42. extern void ShowLyricsWhileHL(void);
  43. #endif
  44. extern void set_disbuf_now(int);
  45. extern BYTE jpg_break_up_down; //Maoyong 2004.04.19
  46. //#define NEW_MP3_GUI_DEBUG
  47. #if 0
  48. #ifndef NEW_MP3_GUI_DEBUG
  49. #undef printf
  50. #endif
  51. #endif
  52. //define main menu look-and-feel style
  53. //Notes : to avoid blinking (when white/black line displaying in n/n+1 line, with interlace mode)
  54. //        SHADOW_WID , LIGHT_WID should >=2
  55. //        X1, Y1, Y3 should be 2*n
  56. #define SHADOW_WID                      2
  57. #define LIGHT_WID                       2
  58. #define LT  1//CornerLT
  59. #define LB  2//CornerRT
  60. #define RT  3//CornerLB
  61. #define RB  4//CornerRB
  62. ///////////////////////////////////////////////////////////////////////
  63. void   DrawArrow(int xStart, int yStart, BYTE updown);
  64. void   DrawRectCorner(BTNAREA  Rect, int CornerRad,  BYTE updown, UINT8 step, UINT16 RegionColor_C);
  65. void   ClearRectArea(BTNAREA  Rect, UINT16 RectColorStep,UINT16 RegionColor_C,int iIndex,int iItem);
  66. void   ShowPlayFrame(int x, int y,int len,int high);
  67. void   ShowCurrentDirPlaying();
  68. void   ShowCurrentFilePlaying();
  69. ///////////////////////////////////////////////////////////////////////
  70. //module global functions for internal reference
  71. void    DirList();
  72. void    FileList(void);
  73. void    DrawFolderIcon(int x, int y, BYTE type);
  74. void    ShowDirItem(int iItem, const char *s);
  75. void    FSShowDirIcon(void);
  76. void    ShowFileIcon(void);
  77. void    DrawFileIconX(int x, int y, int type, int mono);
  78. #define DrawFileIcon(x,y,t) DrawFileIconX(x,y,t,0)
  79. void    DrawScroll(void);
  80. void    ClearArea(UINT16 iIndex);
  81. void    SelectHL();
  82. void    ShowButtonHL(int x, int y,int len);
  83. //void    ShowHL(int x, int y,int len,int high);
  84. void    ShowHL();
  85. void    FSGUI_FlashFileIcon(int iFlash);
  86. UINT16  CountSpecifyFile(int iDir);
  87. int     PrepareForChangeFilePage(UINT16 iPage, UINT16 iSpecialTrk,UINT16 iDirect);
  88. void    CalcDirNow(UINT16 *iDir);
  89. //module global variables for internal reference
  90. UINT16  Hl_x;
  91. UINT16  Hl_y;
  92. UINT16  Hl_len;
  93. UINT16  Hl_high;
  94. UINT16  Hl_x_btn;
  95. UINT16  Hl_y_btn;
  96. UINT16  Hl_len_btn;
  97. UINT16  old_file_page;         // index of current page
  98. UINT16  old_dir_page;
  99. UINT16  refresh_file_page;
  100. UINT16  refresh_dir_page;
  101. UINT16  refresh_dir_icon;
  102. #ifdef AUDIO_SHOW_SAVER
  103. BYTE    bDisableGUI = 0;
  104. #endif
  105. // define a struct .
  106. //for draw RECT. zhaoyanhua add 3-7-25 15:01
  107. #include "fsGUIX.h"
  108. //extern const UINT8 pic_cd_str[17];//terry,2004/1/8 06:25PM
  109. void DrawButton(void)
  110. {
  111. #ifdef AUDIO_SHOW_SAVER
  112.     if (bDisableGUI) return;
  113. #endif
  114.     //draw MP3 icon
  115.     if (pFsJpeg->gifsMP3Count)
  116.     {
  117.         DrawRect(fsArea[FS_AREA_BUTTON].xStart, fsArea[FS_AREA_BUTTON].yStart,
  118.             48, 48,
  119.             pFsJpeg->gifsFuncBtn == FS_FUNC_MP3 ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  120.     }
  121.     else
  122.     {
  123.         FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart, fsArea[FS_AREA_BUTTON].yStart,
  124. 48, 48,
  125.             BK_GROUNDY, BK_GROUNDCRCB);
  126.     }
  127.     DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 12, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MP3BUTTON - 2);
  128. //draw JPEG icon
  129. if (pFsJpeg->gifsJPEGCount)
  130. {
  131. DrawRect(fsArea[FS_AREA_BUTTON].xStart + 50, fsArea[FS_AREA_BUTTON].yStart, 48, 48,
  132.             pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  133. }
  134. else
  135. {
  136. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 50, fsArea[FS_AREA_BUTTON].yStart,
  137. 48, 48,
  138.             BK_GROUNDY, BK_GROUNDCRCB);
  139. }
  140. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 62, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_JPEGBUTTON - 2);
  141. #if defined(SUPPORT_NESGAME)||defined(SUPPORT_SPG_GAME)
  142.  //Jeff 20020521
  143. //draw GAME icon
  144. if (pFsJpeg->gifsGAMECount)
  145. {
  146. DrawRect(fsArea[FS_AREA_BUTTON].xStart + 100, fsArea[FS_AREA_BUTTON].yStart, 48, 48,
  147.             pFsJpeg->gifsFuncBtn == FS_FUNC_GAME? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  148. }
  149. else
  150. {
  151. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 100,  fsArea[FS_AREA_BUTTON].yStart,
  152. 48, 48,
  153.             BK_GROUNDY, BK_GROUNDCRCB);
  154. }
  155. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_GAMEBUTTON - 2);
  156. #endif
  157. #ifdef SUPPORT_FILE_SYSTEM_MODE // Robert 020930
  158. #ifdef SUPPORT_NESGAME
  159. if (pFsJpeg->gifsOtherCount)
  160. {
  161. DrawRect(fsArea[FS_AREA_BUTTON].xStart + 150, fsArea[FS_AREA_BUTTON].yStart, 48, 48,
  162.             pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  163. }
  164. else
  165. {
  166. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 150, fsArea[FS_AREA_BUTTON].yStart,
  167. 48, 48,
  168.             BK_GROUNDY, BK_GROUNDCRCB);
  169. }
  170. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 162,  fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_OTHERBUTTON - 2);
  171. #else
  172. if (pFsJpeg->gifsOtherCount)
  173. {
  174. DrawRect(fsArea[FS_AREA_BUTTON].xStart + 100,  fsArea[FS_AREA_BUTTON].yStart, 48, 48,
  175.             pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  176. }
  177. else
  178. {
  179. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 100, fsArea[FS_AREA_BUTTON].yStart,
  180. 48, 48,
  181.             BK_GROUNDY, BK_GROUNDCRCB);
  182. }
  183. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_OTHERBUTTON - 2);
  184. #endif
  185. #endif
  186. #ifdef SUPPORT_MIDI
  187.     #ifdef SUPPORT_NESGAME
  188. if (pFsJpeg->gifsMidiCount)
  189. {
  190. DrawRect(fsArea[FS_AREA_BUTTON].xStart + 200, fsArea[FS_AREA_BUTTON].yStart,
  191. 48, 48,
  192.             pFsJpeg->gifsFuncBtn == FS_FUNC_MIDI? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  193. }
  194. else
  195. {
  196. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 200, fsArea[FS_AREA_BUTTON].yStart,
  197. 48, 48,
  198.             BK_GROUNDY, BK_GROUNDCRCB);
  199. }
  200. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 212, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  201.     #else
  202.     if (pFsJpeg->gifsMidiCount)
  203.     {
  204.             DrawRect(fsArea[FS_AREA_BUTTON].xStart + 150, fsArea[FS_AREA_BUTTON].yStart,
  205.     48, 48,
  206.                 pFsJpeg->gifsFuncBtn == FS_FUNC_MIDI? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  207.     }
  208.     else
  209.     {
  210.     FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 162, fsArea[FS_AREA_BUTTON].yStart,
  211.     48, 48,
  212.                 BK_GROUNDY, BK_GROUNDCRCB);
  213.     }
  214.     DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 87, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  215.     #endif
  216. #endif
  217. return;
  218. }
  219. /*
  220.  * FUNC: draw slot.
  221.  */
  222. void DrawScroll(void)
  223. {
  224.     int  x, y, xSize, ySize;
  225.     x = fsArea[FS_AREA_SLOT].xStart;
  226.     y = fsArea[FS_AREA_SLOT].yStart;
  227.     xSize = fsArea[FS_AREA_SLOT].xSize;
  228.     ySize = fsArea[FS_AREA_SLOT].ySize;
  229.     FSGUI_FillFrameBuf(x, y+ARROW_SIZE, xSize, ySize-2*ARROW_SIZE, WHITE_Y-0x05, WHITE_CRCB);//terry,2004/1/30 06:54PM
  230.     /*
  231.     FSGUI_FillFrameBuf(x, y, xSize, 1, BLACK_Y, BLACK_CRCB);//top
  232.     FSGUI_FillFrameBuf(x, y, 1, ySize, WHITE_Y, WHITE_CRCB);//left
  233.     FSGUI_FillFrameBuf(x + xSize - 1, y + 1, 1, ySize - 1, WHITE_Y, WHITE_CRCB);//right
  234.     FSGUI_FillFrameBuf(x + 1, y + ySize - 1, xSize - 1, 1 ,WHITE_Y, WHITE_CRCB);//bottom
  235.     */
  236. }
  237. void MoveScroll(UINT16 locate)
  238. {
  239. int y;
  240. DrawScroll();
  241. //draw up and down arrow.
  242. DrawArrow(fsArea[FS_AREA_MOVEBAR].xStart,fsArea[FS_AREA_MOVEBAR].yStart-ARROW_SIZE,2);
  243. DrawArrow(fsArea[FS_AREA_MOVEBAR].xStart,fsArea[FS_AREA_MOVEBAR].yStart +fsArea[FS_AREA_MOVEBAR].ySize,1);
  244. if ((fsArea[FS_AREA_MOVEBAR].ySize - pFsJpeg->scroll_len) >= (pFsJpeg->file_specify_in_dir - 1))
  245. y = fsArea[FS_AREA_MOVEBAR].yStart + locate * pFsJpeg->scroll_step;
  246. else
  247. y = fsArea[FS_AREA_MOVEBAR].yStart + locate * pFsJpeg->scroll_step / 10;
  248. DrawRect(fsArea[FS_AREA_MOVEBAR].xStart, y, fsArea[FS_AREA_MOVEBAR].xSize, pFsJpeg->scroll_len, 0,
  249. YELLOW_Y, YELLOW_CRCB);
  250. //return;//tw 20040201
  251. }
  252. void SelectHL()
  253. {
  254.     int iFiles;
  255. #ifdef MP3_DIRECT_SELECT
  256.     iFiles = pFsJpeg->count_file[pFsJpeg->gifsFuncBtn - FS_FUNC_MP3];
  257. #else
  258.     iFiles = pFsJpeg->file_specify_in_dir;
  259. #endif
  260.    // if (iFiles>999)
  261.         HL_Width =216;
  262.    // else if (iFiles>99)
  263.    //     HL_Width = 108;
  264.   //  else
  265.   //    HL_Width = 100;
  266. //ShowHL();//move to the last of SelectHL() zhaoyanhua  2004-2-2 17:13
  267. #ifdef MP3_TXT_DISPLAY //zhaoyanhua add 2003-9-2 9:40
  268. if ( ( (JPEG_Preview_drawed == DIR_LIST_IN_DIR_AREA)
  269.      &&(pFsJpeg->gifsFuncBtn != FS_FUNC_MP3) )
  270.   || ( (MP3_Lyrics_Drawed == DIR_LIST_IN_DIR_AREA)
  271.      &&(pFsJpeg->gifsFuncBtn == FS_FUNC_MP3)))//zhaoyanhua modify 2003-8-28 13:29
  272. #else
  273.     //to avoid the bug : when play JPEG, BUTTON->FILE  (RIGHT) or(UP) ,not draw DIR playing again.
  274.     //zhaoyanhua modify 2003-12-27 11:10
  275.     if ( ((JPEG_Preview_drawed == DIR_LIST_IN_DIR_AREA) &&(!(pFsJpeg->gifsbPreview))
  276.        &&(pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG))//for JPEG 
  277.       ||((JPEG_Preview_drawed == DIR_LIST_IN_DIR_AREA) && (pFsJpeg->gifsFuncBtn != FS_FUNC_JPEG))//for MP3/OTHER 
  278.        )
  279. #endif
  280. ShowCurrentDirPlaying();
  281. ShowCurrentFilePlaying();
  282. ShowHL();//zhaoyanhua move here 2004-2-2 17:13
  283. }
  284. #ifdef MP3_TXT_DISPLAY
  285. #define LYRECT_XSIZE      145
  286. #define LYRECT_XSTART     25
  287. void ClearLycArea(BTNAREA  Rect, UINT16 RectColorStep,UINT16 RegionColor_C,int ItemStart, int ItemNumber)
  288. {
  289. int i =0;
  290. int  x0=0,y0=0;
  291. UINT8 RegionColor_Y[60];
  292. int Region[60];
  293. UINT8 StepCount =0;
  294. int  xAreaStart=0,yAreaStart = 0, xAreaSize=0,yAreaSize=0;
  295. // calulate the Y and Region width according to the given step.
  296. for ( i = 0; i < RectColorStep; i++ )
  297. {
  298. Region[i] = Rect.xStart + i*(Rect.xSize / RectColorStep);
  299. RegionColor_Y[i] = 0x36 + i*((0xc1 - 0x36)/RectColorStep);
  300. }
  301.     
  302.     xAreaStart = LYRECT_XSTART;
  303. yAreaStart = FS_DIRLIST_YSTART + ItemStart *FS_FILELIST_YSTEP;
  304. xAreaSize =  LYRECT_XSIZE ;
  305. yAreaSize =  ItemNumber*FS_FILELIST_YSTEP;
  306.   StepCount = 0;
  307. //printf("Region[ 1 ] = %dn",Region[1]);
  308.   while(xAreaStart >= Region[StepCount])
  309.   {
  310.   StepCount++;
  311.   }
  312.   StepCount = StepCount-1;
  313.   //printf("xAreaStart=%d,Region[%d]=%dn",xAreaStart,StepCount,Region[StepCount]);
  314.   for (x0 = xAreaStart; x0 < (xAreaStart+ xAreaSize); x0++)
  315. {
  316. if((StepCount +1) < RectColorStep)
  317. {
  318. if ((x0 >= Region[StepCount]) && (x0 < Region[StepCount + 1]))
  319. {
  320. StepCount++;
  321. }
  322.   }
  323.   else
  324.   StepCount = RectColorStep -1;
  325. for (y0 = yAreaStart; y0 < (yAreaStart+yAreaSize); y0++)
  326. {
  327. *Y_XY((x0),(y0)) = RegionColor_Y[StepCount];
  328. *C_XY((x0),(y0)) = RegionColor_C;
  329. }
  330. }
  331. }
  332. #endif
  333. void ShowHL(void)
  334. {
  335. #ifdef AUDIO_SHOW_SAVER
  336.     if (bDisableGUI) return;
  337.     #endif
  338. // clear last HL
  339. switch (old_ControlArea)
  340. {
  341. case  CNT_AREA_FILE:
  342. //zhaoyanhua add 2004-2-2 16:54
  343. //make some changes for the GUI not blink .
  344. if(HL_show == fsnav_file_HL)
  345. ShowCurrentFilePlaying();
  346. else
  347. {
  348. ClearRectArea(Rect[FILE_RECT], FILE_STEP, FILE_AREA_BKGROUND_CRCB,FS_AREA_FILEITEM, HL_show);
  349. FSShowFileItem(HL_show, iso9660_file[pFsJpeg->file_array[HL_show]].name);//resume the last HL
  350. }
  351. break;
  352. case  CNT_AREA_DIR:
  353. //zhaoyanhua add 2004-2-2 16:54
  354. //make some changes for the GUI not blink .
  355. if(HL_show == fsnav_dir_HL)
  356. ShowCurrentDirPlaying();
  357. else
  358. {
  359. ClearRectArea(Rect[DIR_RECT], DIR_STEP, DIR_AREA_BKGROUND_CRCB, FS_AREA_DIRITEM, HL_show);
  360. ShowDirItem(HL_show,iso9660_dir[pFsJpeg->dir_array[HL_show]].name);//resume the last HL
  361. }
  362. break;
  363. case  CNT_AREA_MP3BUTTON:
  364. {
  365. DrawRect(fsArea[FS_AREA_BUTTON].xStart, fsArea[FS_AREA_BUTTON].yStart,
  366. 48, 48,
  367.                         pFsJpeg->gifsFuncBtn == FS_FUNC_MP3 ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  368. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 12, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MP3BUTTON - 2);
  369. }
  370. break;
  371. case  CNT_AREA_JPEGBUTTON:
  372. {
  373.                     //FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 3+ 27-1, fsArea[FS_AREA_BUTTON].yStart + 3, 24,24, BK_GROUNDY,BK_GROUNDCRCB);
  374. DrawRect(fsArea[FS_AREA_BUTTON].xStart+50, fsArea[FS_AREA_BUTTON].yStart,
  375. 48, 48,
  376.                         pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  377. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 62, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_JPEGBUTTON - 2);
  378. }
  379. break;
  380. #if defined(SUPPORT_NESGAME)||defined(SUPPORT_SPG_GAME)
  381. case  CNT_AREA_GAMEBUTTON:
  382. {
  383. DrawRect(fsArea[FS_AREA_BUTTON].xStart+100, fsArea[FS_AREA_BUTTON].yStart,
  384. 48, 48,
  385.                         pFsJpeg->gifsFuncBtn == FS_FUNC_GAME ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  386. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_GAMEBUTTON - 2);
  387. }
  388. break;
  389. #endif
  390. #ifdef SUPPORT_FILE_SYSTEM_MODE
  391. case  CNT_AREA_OTHERBUTTON:
  392.   {
  393. #if defined(SUPPORT_NESGAME)||defined(SUPPORT_SPG_GAME)
  394.                     //FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 3+81, fsArea[FS_AREA_BUTTON].yStart + 3, 19,19, BK_GROUNDY,BK_GROUNDCRCB);
  395. DrawRect(fsArea[FS_AREA_BUTTON].xStart+150, fsArea[FS_AREA_BUTTON].yStart,
  396. 48, 48,
  397.                         pFsJpeg->gifsFuncBtn == FS_FUNC_GAME ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  398. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 162, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_OTHERBUTTON - 2);
  399. #else
  400. DrawRect(fsArea[FS_AREA_BUTTON].xStart+100, fsArea[FS_AREA_BUTTON].yStart,
  401. 48, 48,
  402.                         pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  403. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_OTHERBUTTON - 2);
  404. #endif
  405.  }
  406. break;
  407. #endif
  408. #ifdef SUPPORT_MIDI
  409. case  CNT_AREA_MIDIBUTTON:
  410. {
  411. #ifdef SUPPORT_FILE_SYSTEM_MODE
  412. #ifdef SUPPORT_NESGAME
  413.             DrawRect(fsArea[FS_AREA_BUTTON].xStart+200, fsArea[FS_AREA_BUTTON].yStart,
  414. 48, 48,
  415.                         pFsJpeg->gifsFuncBtn == FS_FUNC_MIDI ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  416.             //FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart + 3+108, fsArea[FS_AREA_BUTTON].yStart + 3, 19,19, BK_GROUNDY,BK_GROUNDCRCB);
  417. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 212, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  418. #else //SUPPORT_NESGAME
  419.             DrawRect(fsArea[FS_AREA_BUTTON].xStart+150, fsArea[FS_AREA_BUTTON].yStart,
  420. 48, 48,
  421.                         pFsJpeg->gifsFuncBtn == FS_FUNC_MIDI ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  422. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 162, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  423. #endif //SUPPORT_NESGAME
  424. #else //SUPPORT_FILE_SYSTEM_MODE
  425. #ifdef SUPPORT_NESGAME
  426.            DrawRect(fsArea[FS_AREA_BUTTON].xStart+150, fsArea[FS_AREA_BUTTON].yStart,
  427. 48, 48,
  428.                         pFsJpeg->gifsFuncBtn == FS_FUNC_MIDI ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  429. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 162, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  430. #else //SUPPORT_NESGAME
  431.             DrawRect(fsArea[FS_AREA_BUTTON].xStart+100, fsArea[FS_AREA_BUTTON].yStart,
  432. 48, 48,
  433.                         pFsJpeg->gifsFuncBtn == FS_FUNC_MIDI ? 1 : 0, BK_GROUNDY, BK_GROUNDCRCB);
  434. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  435. #endif //SUPPORT_NESGAME
  436. #endif //SUPPORT_FILE_SYSTEM_MODE
  437. }
  438. break;
  439. #endif
  440. default: break;
  441.    }
  442. // draw current HL
  443. switch (pFsJpeg->ControlArea)
  444. {
  445. case  CNT_AREA_FILE:
  446. {
  447. HL_show = pFsJpeg->file_will;
  448. old_ControlArea = CNT_AREA_FILE;
  449. FSGUI_FillFrameBuf(fsArea[FS_AREA_FILEITEM].xStart - 2, FS_DIRLIST_YSTART  + HL_show * FS_FILELIST_YSTEP, HL_Width, HL_Heighth, HL_Y, HL_CRCB);
  450. FSShowFileItem(HL_show , iso9660_file[pFsJpeg->file_array[HL_show]].name);//resume the last HL
  451.     /// NOTE:
  452.     // These code are put here ,for they will used by FSGUI_Refresh()/FSGUI_CmdLeft/FSGUI_CmdRight()
  453.     // if MP3_Lyrics_Drawed is 1,then show lyrics.
  454.     //zhaoyanhua add 2003-9-1 17:49
  455.     #ifdef MP3_TXT_DISPLAY
  456.                     ShowLyricsWhileHL();
  457.                     #endif   
  458. }
  459. break;
  460. case  CNT_AREA_DIR:
  461. {
  462. HL_show = pFsJpeg->dir_current;
  463. old_ControlArea = CNT_AREA_DIR;
  464. FSGUI_FillFrameBuf(fsArea[FS_AREA_DIRITEM].xStart - 2, FS_DIRLIST_YSTART  + HL_show * FS_FILELIST_YSTEP, HL_Width, HL_Heighth, HL_Y, HL_CRCB);
  465. ShowDirItem(HL_show,iso9660_dir[pFsJpeg->dir_array[HL_show]].name);//resume the last HL
  466. }
  467. break;
  468. case  CNT_AREA_MP3BUTTON:
  469. {
  470. old_ControlArea = CNT_AREA_MP3BUTTON;
  471. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart , fsArea[FS_AREA_BUTTON].yStart , 48, 48, HL_Y,HL_CRCB);
  472. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 12, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MP3BUTTON - 2);
  473. }
  474. break;
  475. case  CNT_AREA_JPEGBUTTON:
  476. {
  477. old_ControlArea = CNT_AREA_JPEGBUTTON;
  478. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart+50 , fsArea[FS_AREA_BUTTON].yStart , 48,48, HL_Y,HL_CRCB);
  479. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 62, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_JPEGBUTTON - 2);
  480. }
  481. break;
  482. #ifdef SUPPORT_NESGAME
  483. case  CNT_AREA_GAMEBUTTON:
  484. {
  485. old_ControlArea = CNT_AREA_GAMEBUTTON;
  486. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart +100, fsArea[FS_AREA_BUTTON].yStart , 48,48,HL_Y,HL_CRCB);
  487. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_GAMEBUTTON - 2);
  488. }
  489. break;
  490. #endif
  491. #ifdef SUPPORT_FILE_SYSTEM_MODE
  492. case  CNT_AREA_OTHERBUTTON:
  493.   {
  494. old_ControlArea = CNT_AREA_OTHERBUTTON;
  495. #ifdef SUPPORT_NESGAME
  496. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart +150, fsArea[FS_AREA_BUTTON].yStart , 48,48, HL_Y,HL_CRCB);
  497. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 162, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_OTHERBUTTON - 2);
  498. #else
  499. FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart +100, fsArea[FS_AREA_BUTTON].yStart , 48,48, HL_Y,HL_CRCB);
  500. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_OTHERBUTTON - 2);
  501. #endif
  502.  }
  503. break;
  504. #endif
  505. #ifdef SUPPORT_MIDI
  506. case  CNT_AREA_MIDIBUTTON:
  507. {
  508. old_ControlArea = CNT_AREA_MIDIBUTTON;
  509. #ifdef SUPPORT_FILE_SYSTEM_MODE
  510. #ifdef SUPPORT_NESGAME
  511.             FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart +200, fsArea[FS_AREA_BUTTON].yStart , 48,48, HL_Y,HL_CRCB);
  512. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 212, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  513. #else //SUPPORT_NESGAME
  514.             FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart +150, fsArea[FS_AREA_BUTTON].yStart , 48,48, HL_Y,HL_CRCB);
  515. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 162, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  516. #endif //SUPPORT_NESGAME
  517. #else //SUPPORT_FILE_SYSTEM_MODE
  518. #ifdef SUPPORT_NESGAME
  519.             FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart +150, fsArea[FS_AREA_BUTTON].yStart , 48,48, HL_Y,HL_CRCB);
  520. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 162, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  521. #else //SUPPORT_NESGAME
  522.             FSGUI_FillFrameBuf(fsArea[FS_AREA_BUTTON].xStart +100, fsArea[FS_AREA_BUTTON].yStart , 48,48, HL_Y,HL_CRCB);
  523. DrawFileIcon(fsArea[FS_AREA_BUTTON].xStart + 112, fsArea[FS_AREA_BUTTON].yStart + 12, CNT_AREA_MIDIBUTTON - 2);
  524. #endif //SUPPORT_NESGAME
  525. #endif //SUPPORT_FILE_SYSTEM_MODE
  526. }
  527. break;
  528. #endif
  529. default: break;
  530. }
  531. }