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

DVD

开发平台:

C/C++

  1. /***************************************************************
  2. *  setup_OSD_util.c
  3. *  include  in setup_tab_ui1.c   when defined DVD_SETUP_REENG
  4. * Creator:  JSLin 
  5. * Date:         2004/07/28
  6. *
  7. * Description : 
  8. *           adapterr, 
  9. *           hookup presentation engine(setup_show_page.c) with OSD module
  10. *
  11. ****************************************************************/
  12. /*
  13.  *  setup_item = setup_button + setup_string
  14.  */
  15. void setup_draw_item(BYTE xStart, BYTE yStart, BYTE xLen, BYTE itemID, BYTE itemType)//BYTE xOffset, BYTE fColor, BYTE bgColor, BYTE upDown,  BYTE itemID)
  16. {
  17.     const char *str;
  18.     BYTE xOffset = 0;
  19.     BYTE upDown = 0;
  20.     BYTE  fColor = 0;
  21.     BYTE  bgColor = 0;
  22.     //printf(">>>>>  draw item ID:%dn", itemID);
  23.     switch(itemType){
  24.         case SETUP_itemNormal:
  25.             xOffset = 1;
  26.             upDown = 0;
  27.             if(xStart==SETUP_MENU_XSTART)
  28.             {
  29.              fColor = setupFcolorIN;
  30.              bgColor = setupBGcolorIN;
  31.          }
  32.          else if(xStart==SETUP_SUB_XSTART)
  33.          {
  34.          fColor = setupFcolorSN;
  35.              bgColor = setupBGcolorSN;
  36.          }
  37.             break;
  38.         case SETUP_itemMark:
  39.             xOffset = 1;
  40.             upDown = 1;
  41.             if(xStart==SETUP_MENU_XSTART)
  42.             {
  43.              fColor = setupFcolorIM;
  44.              bgColor = setupBGcolorIM;
  45.          }
  46.          else if(xStart==SETUP_SUB_XSTART)
  47.          {
  48.          fColor = setupFcolorSM;
  49.              bgColor = setupBGcolorSM;
  50.          }
  51.             break;
  52.         case SETUP_itemSelected:
  53.             xOffset = 1;
  54.             upDown = 0;
  55.             if(xStart==SETUP_MENU_XSTART)
  56.             {
  57.              fColor = setupFcolorIS;
  58.              bgColor = setupBGcolorIS;
  59.          }
  60.          else if(xStart==SETUP_SUB_XSTART)
  61.          {
  62.          fColor = setupFcolorSS;
  63.              bgColor = setupBGcolorSS;
  64.          }
  65.             break;
  66.     }
  67.     
  68.     osd_draw_setup_button(xStart,yStart,xLen, bgColor, upDown);
  69.     if((setup_item[setup_pos[SETUP_ML1]][0][1] == STR_OS_LANG_SETUP) && (xStart == SETUP_SUB_XSTART))
  70.     {
  71.         if (itemID==STR_OS_OFF)
  72.             str = _OsdMessegeFont1[osd_font_mode][itemID];
  73.         else
  74.             str = lang_names[osd_font_mode][itemID];
  75.     }
  76.     else
  77.     {
  78.         str = _OsdMessegeFont1[osd_font_mode][itemID];
  79.     }
  80.     
  81.     osd_DrawString(xStart+xOffset, yStart, str, fColor, bgColor);
  82.     
  83. }
  84. void setup_DrawScaleString(UINT8 id, BYTE fontColor, BYTE bgColor)
  85. {
  86.     UINT8 xString, yString;
  87.     t_osd_str osdstr_scale[MAX_ITEM_SEL - MIN_ITEM_SEL];
  88.     int i;
  89.     xString = SETUP_SUB_XSTART+1;
  90.     yString = SETUP_MENU_YSTART + setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL];
  91. for (i=0; i<(MAX_ITEM_SEL - MIN_ITEM_SEL); i++)
  92. {
  93. osdstr_scale[i].xst = xString;
  94.         osdstr_scale[i].yst = yString+i+1;
  95.         osdstr_scale[i].str = NULL;
  96. }
  97.     if (id==STR_OS_ECHO) {
  98. osdstr_scale[0].str = " -    - 8";
  99. osdstr_scale[1].str = " -    - 6";
  100. osdstr_scale[2].str = " -    - 4";
  101. osdstr_scale[3].str = " -    - 2";
  102. osdstr_scale[4].str = " -    - OFF";
  103.     }   
  104.     else if (id==STR_OS_BRIGHTNESS){
  105.      osdstr_scale[0].str = " -    - 12";
  106.      osdstr_scale[1].str = " -    - 10";
  107.      osdstr_scale[2].str = " -    -  8";
  108.      osdstr_scale[3].str = " -    -  6";
  109.      osdstr_scale[4].str = " -    -  4";
  110.      osdstr_scale[5].str = " -    -  2";
  111.      osdstr_scale[6].str = " -    -  0";
  112.     }
  113.     else if (id==STR_OS_CONTRAST){
  114.      osdstr_scale[0].str = " -    - 12";
  115.      osdstr_scale[1].str = " -    - 10";
  116.      osdstr_scale[2].str = " -    -  8";
  117.      osdstr_scale[3].str = " -    -  6";
  118.      osdstr_scale[4].str = " -    -  4";
  119.      osdstr_scale[5].str = " -    -  2";
  120.      osdstr_scale[6].str = " -    -  0";
  121.     }
  122.     else if (id==STR_OS_HUE){
  123.      osdstr_scale[0].str = " -    - +6";
  124.      osdstr_scale[1].str = " -    - +4";
  125.      osdstr_scale[2].str = " -    - +2";
  126.      osdstr_scale[3].str = " -    -  0";
  127.      osdstr_scale[4].str = " -    - -2";
  128.      osdstr_scale[5].str = " -    - -4";
  129.      osdstr_scale[6].str = " -    - -6";
  130.     }
  131.     else if (id==STR_OS_SATURATION){
  132.      osdstr_scale[0].str = " -    - 12";
  133.      osdstr_scale[1].str = " -    - 10";
  134.      osdstr_scale[2].str = " -    -  8";
  135.      osdstr_scale[3].str = " -    -  6";
  136.      osdstr_scale[4].str = " -    -  4";
  137.      osdstr_scale[5].str = " -    -  2";
  138.      osdstr_scale[6].str = " -    -  0";
  139.     }
  140.     else if (id==STR_OS_KEY) {
  141.      osdstr_scale[0].str = " -    -  " Ch_ukey;
  142.      osdstr_scale[1].str = " -    - +4";
  143.      osdstr_scale[2].str = " -    - +2";
  144.      osdstr_scale[3].str = " -    -  0";
  145.      osdstr_scale[4].str = " -    - -2";
  146.      osdstr_scale[5].str = " -    - -4";
  147.      osdstr_scale[6].str = " -    -  " Ch_dkey;
  148.     }
  149.     else if (id==STR_OS_DYNAMICRANGE) {
  150. osdstr_scale[0].str = " -    - FULL";
  151. osdstr_scale[1].str = " -    - 6/8";
  152. osdstr_scale[2].str = " -    - 4/8";
  153. osdstr_scale[3].str = " -    - 2/8";
  154. osdstr_scale[4].str = " -    - OFF";
  155.     }
  156.     else if (id==STR_OS_MIC_VOL) {
  157. osdstr_scale[0].str = " -    - 8";
  158. osdstr_scale[1].str = " -    - 6";
  159. osdstr_scale[2].str = " -    - 4";
  160. osdstr_scale[3].str = " -    - 2";
  161. osdstr_scale[4].str = " -    - OFF";
  162.     }
  163.     else if (id==STR_OS_CSPK_DELAY) {
  164. osdstr_scale[0].str = " -    - +";
  165. osdstr_scale[1].str = " -    - 4 MS";
  166. osdstr_scale[2].str = " -    - 2 MS";
  167. osdstr_scale[3].str = " -    - 0 MS";
  168.     }
  169.     else if (id==STR_OS_SSPK_DELAY) {
  170. osdstr_scale[0].str = " -    - +";
  171. osdstr_scale[1].str = " -    - 12 MS";
  172. osdstr_scale[2].str = " -    -  6 MS";
  173. osdstr_scale[3].str = " -    -  0 MS";   
  174.     }   
  175.     else {  //show ERROR
  176. osdstr_scale[0].str = " ERROR";
  177.     }       
  178. osd_DrawStrings(osdstr_scale, fontColor, bgColor);
  179. }
  180. void setup_DrawScaleForm(UINT8 id, BYTE upDown)
  181. {
  182.     BYTE    eColorTL, eColorBR; 
  183.     BYTE    fontColor, bgColor; //font, background color
  184.     UINT32  xStart, yStart;
  185.     UINT32  yDelta=0;
  186.     UINT32  yOffset = 0;
  187.     //BYTE    buf[15];
  188.     BYTE    xWidth;
  189.     //int val = echo_level; // give a default value
  190.     
  191.     if (upDown) { //down
  192.         eColorTL = setupEcolorSPTLD;
  193.         eColorBR = setupEcolorSPBRD;
  194.         fontColor = setupFcolorSSD;
  195.         bgColor = setupBGcolorSPD;
  196.     } else { //up
  197.         eColorTL = setupEcolorSPTLU;
  198.         eColorBR = setupEcolorSPBRU;
  199.         fontColor = setupFcolorSSU;
  200.         bgColor = setupBGcolorSPU;
  201.     }
  202.     xStart = SETUP_SUB_XSTART * 16;
  203.     xWidth = 14 *16;
  204.     yOffset = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL];
  205.     yStart = (yOffset+ SETUP_MENU_YSTART)*SETUP_BUTTON_HEIGHT+32;
  206.     yDelta = setup_item[setup_pos[1]][setup_pos[2]][2] *SETUP_BUTTON_HEIGHT;
  207.     osd_draw_rect(xStart, yStart, xWidth, yDelta, bgColor);
  208.     //show the string in scale form
  209.     setup_DrawScaleString(id, fontColor, bgColor);
  210.     //draw the edges of scale form
  211.     if (p_scan==1)
  212.         osd_DrawLine(xStart, yStart, xStart+xWidth, yStart, eColorTL, 2);
  213.     else
  214.         osd_DrawLine(xStart, yStart, xStart+xWidth, yStart, eColorTL, 1);
  215.     //left
  216.     osd_DrawLine(xStart, yStart, xStart, yStart+yDelta, eColorTL, 1);
  217.     //bottom
  218.     if (p_scan==1)
  219.         osd_DrawLine(xStart, yStart+yDelta, xStart+xWidth, yStart+yDelta, eColorBR, 2);
  220.     else
  221.         osd_DrawLine(xStart, yStart+yDelta, xStart+xWidth, yStart+yDelta, eColorBR, 1);
  222.     //right
  223.     osd_DrawLine(xStart+xWidth, yStart, xStart+xWidth, yStart+yDelta, eColorBR, 1);   
  224. }
  225. void setup_DrawScaleCursor(UINT8 id, BYTE upDown)
  226. {
  227.     BYTE    eColorTL, eColorBR; 
  228.     BYTE    barColor, cursorColor; //bar, cursor color
  229.     BYTE    clrCursorColor;
  230.     UINT32  xStart, yStart, yOffset;
  231.     UINT32  yDelta=0;
  232.     UINT32  yEnd;
  233.     
  234.         if (upDown) { //down
  235.             eColorTL = setupEcolorSCTLD;
  236.             eColorBR = setupEcolorSCBRD;
  237.             barColor = setupBGcolorSCBD;
  238.             cursorColor = setupBGcolorSCD;
  239.             clrCursorColor = setupBGcolorSPD;
  240.         } else { //up
  241.             eColorTL = setupEcolorSCTLU;
  242.             eColorBR = setupEcolorSCBRU;
  243.             barColor = setupBGcolorSCBU;
  244.             cursorColor = setupBGcolorSCU;
  245.             clrCursorColor = setupBGcolorSPU;
  246.         }
  247.     xStart = SETUP_SUB_XSTART * 16 + 76;
  248.     yOffset = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL];
  249.     yStart = (yOffset+SETUP_MENU_YSTART)*SETUP_BUTTON_HEIGHT + 40;
  250.     yDelta = setup_item[setup_pos[1]][setup_pos[2]][2] *SETUP_BUTTON_HEIGHT - 12;
  251. // flush cursor area
  252.     osd_draw_rect(xStart-20, yStart-1, 40, yDelta+2, clrCursorColor);
  253.     // draw cursor bar
  254.     osd_DrawLine(xStart, yStart, xStart, yStart+yDelta, barColor, 3);
  255. // draw cursor body
  256.     yEnd = yStart+yDelta - (setup_sel[setup_pos[1]][setup_pos[2]]-2+1)*SETUP_BUTTON_HEIGHT/2;
  257.     xStart = SETUP_SUB_XSTART * 16 + 60;
  258.     osd_draw_rect(xStart, yEnd, 32, 8, cursorColor);
  259.     //draw the edges of scale cursor
  260.     if (p_scan==1)
  261.         osd_DrawLine(xStart, yEnd, xStart+36, yEnd, eColorTL, 2);
  262.     else
  263.         osd_DrawLine(xStart, yEnd, xStart+36, yEnd, eColorTL, 1);
  264.     //left
  265.     osd_DrawLine(xStart, yEnd, xStart, yEnd+8, eColorTL, 1);
  266.     //bottom
  267.     if (p_scan==1)
  268.         osd_DrawLine(xStart, yEnd+8, xStart+36, yEnd+8, eColorBR, 2);
  269.     else
  270.         osd_DrawLine(xStart, yEnd+8, xStart+36, yEnd+8, eColorBR, 1);
  271.     //right
  272.     osd_DrawLine(xStart+34, yEnd, xStart+34, yEnd+8, eColorBR, 1);        
  273. }