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

DVD

开发平台:

C/C++

  1. /*************************************************
  2. * setup_newstyle_ui.c
  3. *
  4. *  include when NEW_STYLE_SETUP  for GBM
  5. *
  6. *  UI function:
  7. *     LEFT,RIGHT, UP, DOWN,  SELECT, ShowSetupPage. 
  8. * Creator: zhaoyanhua 
  9. * Date:  3-7-25 17:12
  10. **************************************************/
  11. #ifdef SDRAM_16Mb_Mode//zhaoyanhua add 2003-11-10 16:33
  12. #include "memmap.h"
  13. #include "memmap0.h"
  14. #endif
  15. void ShowCUSTMMsg(void);
  16. void ShowCurrentPage_for_NTSC(int page);
  17. void ShowCurrentPage_for_PAL(int page);
  18. void draw_setup_Btn_HL(UINT8 r, int xStart, int yStart, int xLen, int yLen );
  19. #ifdef IR_KEY_SET_VIDEO_MODE
  20. #ifdef SET_4_VIDEO_MODE
  21. #define VIDEO_MODE_VAL_DEFAULT  3
  22. #else//#ifdef SET_4_VIDEO_MODE
  23. #define VIDEO_MODE_VAL_DEFAULT  0
  24. #endif//#ifdef SET_4_VIDEO_MODE
  25. #endif//#ifdef IR_KEY_SET_VIDEO_MODE
  26. #if defined(GBM_DVD)&&!defined(GBM_FULL_FUNCTION)&&!defined(USER_MPEG_LOGO)
  27. #undef SAME_DISC_RESUME
  28. #endif
  29. #define NTSC_AUDIO_YSTART   2
  30. #define NTSC_LAN_YSTART     163
  31. #define NTSC_VIDEO_YSTART   4
  32. #define NTSC_SYSTEM_YSTART  235
  33. #define NTSC_EXIT_YSTART   221
  34. #define PAL_AUDIO_YSTART   0
  35. #define PAL_LAN_YSTART     185-HL_OFFSET+5+3
  36. #define PAL_VIDEO_YSTART   5-3
  37. #define PAL_SYSTEM_YSTART  265-HL_OFFSET+5+3
  38. #define PAL_EXIT_YSTART    251-HL_OFFSET+15
  39. #define HL_XSTART_OFFSET 3
  40. #define HL_OFFSET 20
  41. /*
  42. ** FUNC: Show the Highlight (hand icon)
  43. **       and setup menu in current page.
  44. **
  45. ** zhaoyanhua 
  46. ** date: 3-7-14 10:44
  47. */
  48. void ShowCurrentPage_for_NTSC(int page)
  49. {
  50. #ifdef MONE_SETUP
  51.      printf("&&&&-------SHOW CURRENt page ! page = %dn",page);
  52. #endif
  53. if (page ==3)
  54. {
  55. osd_tog_region(0,OSD_ON);
  56. //osd_tog_region(2,OSD_OFF);
  57. }
  58. else if ((page == 0) || (page == 7))
  59. {
  60. osd_tog_region(0,OSD_OFF);
  61. //osd_tog_region(2,OSD_ON);
  62. }
  63. else
  64. {
  65. osd_tog_region(0,OSD_OFF);
  66. //osd_tog_region(2,OSD_OFF);
  67. }
  68. /*
  69.   char *str1 = "PRESS";
  70. memset(linebuf,0,100);
  71. osd_DrawString(0, 0, str1, 11, 0);
  72. */
  73. switch (page)
  74. {
  75. case  SYSPAGE:
  76. draw_setup_Btn_HL(1, 227+HL_OFFSET-HL_XSTART_OFFSET,NTSC_SYSTEM_YSTART , 140-HL_OFFSET, 67);
  77. break;
  78. case  LANGPAGE:
  79. draw_setup_Btn_HL(1, 8+HL_OFFSET-HL_XSTART_OFFSET , NTSC_LAN_YSTART, 140-HL_OFFSET, 67);
  80. break;
  81. case  AUDPAGE:
  82. draw_setup_Btn_HL(1, 8+HL_OFFSET-HL_XSTART_OFFSET, NTSC_AUDIO_YSTART , 140-HL_OFFSET,67);
  83. break;
  84. case  MULTISPKPAGE:
  85. draw_setup_Btn_HL(1, 450+HL_OFFSET-HL_XSTART_OFFSET , NTSC_AUDIO_YSTART, 140-HL_OFFSET, 67);
  86. break;
  87. case  AC3DIGITALPAGE:
  88. draw_setup_Btn_HL(1, 450+HL_OFFSET-HL_XSTART_OFFSET, NTSC_LAN_YSTART , 140-HL_OFFSET, 67);
  89. break;
  90. case  VIDEOPAGE:
  91. draw_setup_Btn_HL(0, 18+HL_OFFSET-HL_XSTART_OFFSET, NTSC_VIDEO_YSTART , 140-HL_OFFSET, 67);
  92. break;
  93. case  EXITPAGE :
  94. {
  95. osd_draw_rect(0, 0, 38*16, 9*SETUP_BUTTON_HEIGHT+24, 0);
  96.  osd_DrawIcon(445, NTSC_EXIT_YSTART , 0,page);
  97. break;
  98. }
  99. default:  break;
  100. }
  101.     #ifdef ROLL_SHOW_SETUP
  102.     if(page != EXITPAGE)//nono 20030919
  103.     //show osd msg from BUTTON start to BUTTON end.
  104.     MoveBuf2OSD(SETUP_MENU_XSTART+10, (SETUP_MENU_XSTART+10)+(SETUP_SUB_XSTART-SETUP_MENU_XSTART-1));   
  105.     #endif
  106. }
  107. void ShowCurrentPage_for_PAL(int page)
  108. {
  109. #ifdef MONE_SETUP
  110.      printf("&&&&-------SHOW CURRENt page ! page = %dn",page);
  111. #endif
  112. if (page ==3)
  113. {
  114. osd_tog_region(0,OSD_ON);
  115. //osd_tog_region(2,OSD_OFF);
  116. }
  117. else if ((page == 0) || (page == 7))
  118. {
  119. osd_tog_region(0,OSD_OFF);
  120. //osd_tog_region(2,OSD_ON);
  121. }
  122. else
  123. {
  124. osd_tog_region(0,OSD_OFF);
  125. //osd_tog_region(2,OSD_OFF);
  126. }
  127. /*
  128.   char *str1 = "PRESS";
  129. memset(linebuf,0,100);
  130. osd_DrawString(0, 0, str1, 11, 0);
  131. */
  132. switch (page)
  133. {
  134. case  SYSPAGE:
  135. draw_setup_Btn_HL(1, 227+HL_OFFSET-HL_XSTART_OFFSET, PAL_SYSTEM_YSTART, 140-HL_OFFSET, 70);
  136. break;
  137. case  LANGPAGE:
  138. draw_setup_Btn_HL(1, 8+HL_OFFSET-HL_XSTART_OFFSET, PAL_LAN_YSTART, 140-HL_OFFSET, 70);
  139. break;
  140. case  AUDPAGE:
  141. draw_setup_Btn_HL(1, 8+HL_OFFSET-HL_XSTART_OFFSET, PAL_AUDIO_YSTART, 140-HL_OFFSET,70);
  142. break;
  143. case  MULTISPKPAGE:
  144. draw_setup_Btn_HL(1, 450+HL_OFFSET, PAL_AUDIO_YSTART, 140-HL_OFFSET, 70);
  145. break;
  146. case  AC3DIGITALPAGE:
  147. draw_setup_Btn_HL(1, 450+HL_OFFSET, PAL_LAN_YSTART, 140-HL_OFFSET, 70);
  148. break;
  149. case  VIDEOPAGE:
  150. draw_setup_Btn_HL(0, 18+HL_OFFSET-HL_XSTART_OFFSET, PAL_VIDEO_YSTART, 140-HL_OFFSET, 70);
  151. break;
  152. case  EXITPAGE :
  153. {
  154. osd_draw_rect(0, 0, 38*16, 13*SETUP_BUTTON_HEIGHT+10, 0);
  155. osd_DrawIcon(445, PAL_EXIT_YSTART, 0,page);
  156. break;
  157. }
  158. default:  break;
  159. }
  160.     #ifdef ROLL_SHOW_SETUP
  161.     if(page != EXITPAGE)//nono 20030919
  162.     MoveBuf2OSD(SETUP_MENU_XSTART+10, (SETUP_MENU_XSTART+10)+(SETUP_SUB_XSTART-SETUP_MENU_XSTART-1));   
  163.     #endif
  164. }
  165. /*
  166. ** FUNC: to rewrite the infomation in CUSM when Rating_8.
  167. **
  168. **  zhaoyanhua 
  169. **  Date: 3-7-25 17:55 
  170. */
  171. void ShowCUSTMMsg(void)
  172. {
  173. BYTE    buf[40];
  174. BYTE    *pVersion;
  175. extern const UINT8 ServoVersion[];
  176. int i=0;
  177. pVersion = (BYTE *)(ROM_BASE_UNCACHED);
  178. //show ROM code checksum
  179. buf[0]= '[';
  180. for (i=0x40; i<0x44; i++)
  181. {
  182. BYTE    ch[3];
  183. psprintf(ch,"%02x",*(pVersion+i));
  184. buf[2*i-126]=ch[1];
  185. buf[2*i-127]=ch[0];
  186. }
  187. buf[9]= ']';
  188. buf[10]= 0;
  189. osd_DrawString(SETUP_SUB_XSTART+6, SETUP_MENU_YSTART+2, buf, SFONTCOLOR, SBGCOLOR);
  190. //ServoVersion[16]=0; can't write to const data
  191. osd_DrawString(SETUP_SUB_XSTART, SETUP_MENU_YSTART, ServoVersion, SFONTCOLOR, SBGCOLOR);
  192. //show some "codes" strings
  193. for (i=0x50; i<0x58; i++) { //Extend version string length to 8 Bytes, Jeff 20020715
  194. buf[i-0x50] = *(pVersion+i);
  195. }
  196. buf[8]= 0; //Extend version string length to 8 Bytes, Jeff 20020715
  197. osd_DrawString(SETUP_SUB_XSTART, SETUP_MENU_YSTART+1, buf, SFONTCOLOR, SBGCOLOR);
  198. //add build version, Jeff 20021008
  199. psprintf(buf, "%s", VERSION_STRING);
  200. osd_DrawString(SETUP_SUB_XSTART+8, SETUP_MENU_YSTART+1, buf, SFONTCOLOR, SBGCOLOR);
  201. //psprintf(buf, "%c SUM:", regs0->stamp+'A');
  202. //psprintf(buf, "%c SUM:", (regs0->stamp&0x7f)+'A');//4-8-26 16:06
  203. psprintf(buf, "%02x%03x", (regs0->stamp & 0xff),get_iop_b_status()); //2004/11/30 ycwen
  204. osd_DrawString(SETUP_SUB_XSTART, SETUP_MENU_YSTART+2, buf, SFONTCOLOR, SBGCOLOR);
  205. }
  206. /*
  207. **FUNC : draw a rect border to show which button is select.
  208. **
  209. ** zhaoyanhua 
  210. ** Date: 2003-07-22 15:49
  211. */
  212. void draw_setup_Btn_HL(UINT8 r, int xStart, int yStart, int xLen, int yLen )
  213. {
  214. osd_draw_region_rect(xStart, yStart, xLen, yLen, BUTTON_COLOR, r);
  215. osd_draw_region_rect(xStart+4, yStart+4, xLen-8, yLen-8, 0, r );
  216. }
  217. void setup_func_down(void)
  218. {
  219.     const char *str;
  220.     int     i;
  221.    
  222.     reset_passwd_cnt();
  223. SetOsdCol(0,0,SANTIBGCOLOR,0xa346ffc0);
  224.     if (setupLevel==0) { //main menu page
  225.    
  226. /*
  227.         if ( (page==AC3DIGITALPAGE) &&  ( (SETUP_SPDIF==SPDIFBITSTREAM) || (coding_mode_now!=AUDIF_CODING_MODE_AC3) )  )
  228.         {
  229. page--;
  230. }
  231.         if ( (page==MULTISPKPAGE) &&  (cd_type_loaded!=CDDVD) && ( coding_mode_now&(~(AUDIF_CODING_MODE_AC3|AUDIF_CODING_MODE_DTS|AUDIF_CODING_MODE_DTSCD)) ) )
  232.         {
  233. page--;
  234.         } else if ( (page==MULTISPKPAGE) && (SETUP_SPDIF!=SPDIFSIMULATE) )
  235.         {
  236. page--;
  237.         }
  238.         #ifdef TWO_CHANNEL_ONLY
  239.         if (page==MULTISPKPAGE)     page--;
  240.         #endif//SetMovePointer(38, 15);//system Button
  241. */
  242. return;
  243.     } else
  244. if (setupLevel==1) {
  245. //second level menu page
  246. if ( (index_y+index_y_start) < (setupItemNum[1]-1)) {
  247. if (full_scrn&CUSTM) {
  248. //CUSTM menu page
  249. //clear third-level menu
  250. #ifdef  RATING_8
  251.                 if (index_y == 3) 
  252.                 {
  253.                     osd_draw_rect((SETUP_SUB_XSTART-1)*16,
  254. SETUP_MENU_YSTART,
  255. (SETUP_MAX_WIDTH-SETUP_SUB_XSTART-1)*16,
  256. 8*SETUP_BUTTON_HEIGHT,//(SETUP_MAX_LINE-SETUP_MENU_YSTART-2)*SETUP_BUTTON_HEIGHT,
  257. SBGCOLOR);
  258. ShowCUSTMMsg();
  259. }
  260. else
  261. #endif//end RAGING_8
  262. {
  263. osd_draw_rect((SETUP_SUB_XSTART-1)*16,
  264. (SETUP_MENU_YSTART+3)*SETUP_BUTTON_HEIGHT,
  265. (SETUP_MAX_WIDTH-SETUP_SUB_XSTART-1)*16,
  266. 7*SETUP_BUTTON_HEIGHT,//(SETUP_MAX_LINE-SETUP_MENU_YSTART-2)*SETUP_BUTTON_HEIGHT,
  267. SBGCOLOR);
  268. }
  269. id = setup_item[page][index_y][1];
  270. setup_DrawItem(1, index_y+SETUP_MENU_YSTART+1, 0);
  271. index_y++;
  272. id = setup_item[page][index_y][1];
  273. setup_DrawItem(1, index_y+SETUP_MENU_YSTART+1, 1);
  274. //the last active item in sub-menu is "EXIT", so we skip it's drawing selection area
  275.                 #ifdef RCD_GPIO_CONTROL                                             // alan 2002/7/26 02:08