⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osddraw.lst

📁 T103的开发程序 能兼容很多屏 可根据需要修改定义
💻 LST
📖 第 1 页 / 共 5 页
字号:
 453   1      }
 454          
 455          //Ruby add 2004-06-08
 456          //extern uCHAR idata m_cScaleratio;
 457          void OSDShowRatio(void)
 458          {
C51 COMPILER V8.08   OSDDRAW                                                               11/08/2007 00:32:37 PAGE 9   

 459   1      uCHAR i;
 460   1              for(i=0;i<10;i++)
 461   1              {
 462   2                      OSDCleanLine(0,i,0,30);
 463   2              OSDSetLineAttribute(i,0x80);
 464   2              }
 465   1              OSDPosition(RIGHT_TOP);
 466   1          switch(m_cScaleratio)
 467   1          {
 468   2                      case ScaleFULL:
 469   2                                      OSDShowLine(iScaleFULL_E,16,1,COL_GAUGE,OSD_LENGTH);
 470   2                                      break;
 471   2                      case Scale16_9: 
 472   2                                      OSDShowLine(iScale16_9_E,16,1,COL_GAUGE,OSD_LENGTH);
 473   2                                      break;
 474   2      #if (ZOOM_MODES >=2)
 475   2                      case ZOOM_1:    
 476   2                                      OSDShowLine(iZoom_1_E,16,1,COL_GAUGE,OSD_LENGTH);
 477   2                      break;
 478   2      #endif
 479   2      #if (ZOOM_MODES >=3)    //Bruce, 2006/01/10
 480   2                      case ZOOM_2:    
 481   2                                      OSDShowLine(iZoom_2_E,16,1,COL_GAUGE,OSD_LENGTH);
 482   2                      break;
 483   2      #endif
 484   2      #if (ZOOM_MODES >=4)
 485   2      
 486   2                      case Scale4_3:
 487   2                                      OSDShowLine(iScale4_3_E,16,1,COL_GAUGE,OSD_LENGTH);
 488   2                      break;
 489   2      #endif
 490   2      #if (ZOOM_MODES >=5)
                              case ZOOM_3:    
                                              OSDShowLine(iZoom_3_E,16,1,COL_GAUGE,OSD_LENGTH);
                              break;
              #endif
 495   2      #if (ZOOM_MODES >=6)
                              case ZOOM_4:    
                                              OSDShowLine(iZoom_4_E,16,1,COL_GAUGE,OSD_LENGTH);
                              break;
              #endif
 500   2      #if (ZOOM_MODES >=7)
                              case ZOOM_5:    
                                              OSDShowLine(iZoom_5_E,16,1,COL_GAUGE,OSD_LENGTH);
                              break;
              #endif
 505   2      #if (ZOOM_MODES >=8)
                              case ZOOM_6:    
                                              OSDShowLine(iZoom_6_E,16,1,COL_GAUGE,OSD_LENGTH);
                              break;
              #endif
 510   2      #if (ZOOM_MODES >=9)
                              case ZOOM_7:    
                                              OSDShowLine(iZoom_1_E,16,1,COL_GAUGE,OSD_LENGTH);
                              break;                       
              #endif
 515   2      /*#ifdef T515
 516   2                      case Scale1_1:  
 517   2                                      OSDShowLine(iScale1_1_E,16,1,COL_GAUGE,OSD_LENGTH);
 518   2                                      break;
 519   2      #endif*/
 520   2              }
C51 COMPILER V8.08   OSDDRAW                                                               11/08/2007 00:32:37 PAGE 10  

 521   1              OSDEnable();    
 522   1      }
 523          
 524          
 525          void OSDShowSource(void)
 526          {
 527   1              OSDDisable();
 528   1              if(m_bOSD2Showed){
 529   2                      m_bOSD2Showed = 0;
 530   2                      OSD2Disable();
 531   2                      OSD2ClearMenu(1);
 532   2                      OSD1ClearMenu(BGND_COLOR_TRANSPERANT|FGND_COLOR_TRANSPERANT);
 533   2              }else{ 
 534   2                      OSDClearPage();
 535   2              }
 536   1              OSDPosition(RIGHT_TOP);
 537   1              OSDShowLine(uiaSrcMux1[EepPublic.cSource].SrcStr,16,1,COL_GAUGE,OSD_LENGTH);
 538   1      
 539   1      #ifdef TV
                 if (uiaSrcMux1[EepPublic.cSource].VideoType==itypeTV)
                    OSDDrawNum(EepTV.cChannelNum, 0, 16, 2, COL_TITLE, LBLUE_RED|0x03);
              #endif
 543   1      
 544   1              OSDEnable();
 545   1      }
 546          
 547          //extern uCHAR idata m_cStandard;
 548          void OSDShowNTSC_PAL(void)
 549          {
 550   1              uCHAR i;
 551   1      
 552   1              // add by kenny on 941115
 553   1          OSDDisable();
 554   1              for(i=0;i<10;i++)
 555   1              {
 556   2                      OSDCleanLine(0,i,0,30);
 557   2              OSDSetLineAttribute(i,0x80);
 558   2              }
 559   1              OSDPosition(RIGHT_TOP);
 560   1              //=======================
 561   1              if(m_cChroma==S_NTSC)                   OSDShowLine(iNTSC_E  ,16,1,COL_GAUGE,OSD_LENGTH);       
 562   1              else if(m_cChroma==S_PAL)               OSDShowLine(iPAL_E   ,16,1,COL_GAUGE,OSD_LENGTH);       
 563   1              else if(m_cChroma==S_SECAM)     OSDShowLine(iSECAM_E ,16,1,COL_GAUGE,OSD_LENGTH);       
 564   1              else if(m_cChroma==S_NTSC_4)    OSDShowLine(iNTSC_4_E,16,1,COL_GAUGE,OSD_LENGTH);               
 565   1              else if(m_cChroma==S_PAL_M)     OSDShowLine(iPAL_M_E ,16,1,COL_GAUGE,OSD_LENGTH);
 566   1              else if(m_cChroma==S_PAL_CN)    OSDShowLine(iPAL_CN_E,16,1,COL_GAUGE,OSD_LENGTH);  
 567   1      
 568   1              OSDEnable();
 569   1      }
 570          
 571          void OSDClearCursor()
 572          {
 573   1      //uCHAR str_index=ALL_MENU[m_cOSDMenu]->Item_Num*EepPublic.cOSDLang;
 574   1      uCHAR str_index;
 575   1        OSDReadData(idPUBMENU);
 576   1        str_index=ALL_MENU[m_cOSDMenu]->Item_Num*EepPublic.cOSDLang;
 577   1                      OSDShowLine(ALL_MENU[m_cOSDMenu]->str[m_cItem+str_index],TXT_STAT,m_cItem,COL_NORMAL,OSD_LENGTH);
 578   1      
 579   1          return;
 580   1      }
 581          
 582          void OSDMoveCursor(void)
C51 COMPILER V8.08   OSDDRAW                                                               11/08/2007 00:32:37 PAGE 11  

 583          {
 584   1      //uCHAR str_index=ALL_MENU[m_cOSDMenu]->Item_Num*EepPublic.cOSDLang;
 585   1      uCHAR str_index;
 586   1      uCHAR Max=ALL_MENU[m_cOSDMenu]->Par[m_cItem].ucValMAX;
 587   1      uCHAR Val=ALL_MENU[m_cOSDMenu]->EEProm[m_cItem];
 588   1      
 589   1        OSDReadData(idPUBMENU);
 590   1        str_index=ALL_MENU[m_cOSDMenu]->Item_Num*EepPublic.cOSDLang;
 591   1        OSDCleanLine(0,ALL_MENU[m_cOSDMenu]->Item_Num+2,COL_NORMAL,30);
 592   1      
 593   1              OSDShowLine(ALL_MENU[m_cOSDMenu]->str[m_cItem+str_index],TXT_STAT,m_cItem,BLUE_PURPLE,OSD_LENGTH);
 594   1              if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD_GUAGE)
 595   1                      OSDDrawGauge(Val,Max,0,ALL_MENU[m_cOSDMenu]->Item_Num+2, COL_GAUGE);
 596   1      
 597   1              if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD_VALUE)
 598   1                      OSDDrawNum(Val,Max,NUM_STAT,ALL_MENU[m_cOSDMenu]->Item_Num+2,COL_NORMAL,DRAW_BLANK); // kenny 20070130
 599   1      
 600   1      //thomas
 601   1         if((ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD_SH_LAN)){
 602   2      //      OSDTransfer(EepPublic.cOSDLang);
 603   2             OSDSetLineAttribute(ALL_MENU[m_cOSDMenu]->Item_Num+2,0x80);
 604   2             OSDShowLine(iTransfer_ALL,(OSD_LENGTH-16),ALL_MENU[m_cOSDMenu]->Item_Num+2,BLUE_PURPLE,OSD_LENGTH);
 605   2         }
 606   1      
 607   1          return;
 608   1      }
 609          
 610          
 611          void OSDPosition(uCHAR cPos)
 612          {       
 613   1              if(cPos==RIGHT_TOP){
 614   2                      OSDCfgWr(CHAR_DLY_0,Y0RightTop);        //V[10:8] bit 6-4; H[10:8] bit2-0  23 12
 615   2                      OSDCfgWr(CHAR_DLY_1,Y1RightTop);    //H[7:0]                           80 80
 616   2                      OSDCfgWr(CHAR_DLY_2,Y2RightTop);    //v[7:0]                           64 30
 617   2              }
 618   1              if(cPos==CENTER){
 619   2                      OSDCfgWr(CHAR_DLY_0,Y0Center);          //V[10:8] bit 6-4; H[10:8] bit2-0
 620   2                      OSDCfgWr(CHAR_DLY_1,Y1Center);          //H[7:0]
 621   2                      OSDCfgWr(CHAR_DLY_2,Y2Center);          //v[7:0]
 622   2              }
 623   1              else if(cPos==LEFT_BOTTOM){//not define yet!
 624   2                      OSDCfgWr(CHAR_DLY_0,Y0LeftBottom);      //V[10:8] bit 6-4; H[10:8] bit2-0
 625   2                      OSDCfgWr(CHAR_DLY_1,Y1LeftBottom);  //H[7:0]
 626   2                      OSDCfgWr(CHAR_DLY_2,Y2LeftBottom);  //v[7:0]    //00
 627   2              }
 628   1      }
 629          
 630          #ifdef TV
              void OSDTVShowChannel(uCHAR cChannel){
              
                    OSDClearPage();
                    OSDPosition(RIGHT_TOP);
                    OSDDrawNum(cChannel, 0, 19, 2, COL_TITLE, LBLUE_RED|0x03);
                    OSDEnable();
              
              }
              #endif
 640          
 641          #ifdef VBI_CC
              // kenny 20060403
              void OSDShowCCData(uCHAR wVal, uCHAR x, uCHAR y, uCHAR tAttr)
              {
C51 COMPILER V8.08   OSDDRAW                                                               11/08/2007 00:32:37 PAGE 12  

                      //Init Part
                      uCHAR iptCC[2];
                      uCHAR cColor;
                      uCHAR i;
              
                      if ( (x == 0 && y ==1 ) )
                      {
                              //=========================
                              for(i=0;i<OSD_LINE_NUM;i++)
                              {
                                      OSDCleanLine(0,i,0,30);
                              OSDSetLineAttribute(i,0x80);
                              }
                              OSDCfgWr(CHAR_DLY_2,216);  //v[7:0]     //00
                      }
              
                      iptCC[0] = wVal;
                      iptCC[1] = EOL;
              
                      OSDCfgWr(CHAR_DLY_0,0x01);      //V[10:8] bit 6-4; H[10:8] bit2-0
                      OSDCfgWr(CHAR_DLY_1,0x00);  //H[7:0]
              //      OSDCfgWr(CHAR_DLY_2,0x00);  //v[7:0]    //00
              
                      if ( tAttr == 1 || tAttr == 2 )
                              cColor = 0x2f;
                      else if ( tAttr == 3 || tAttr == 4 )
                              cColor = 0x25;
                      else if ( tAttr == 5 || tAttr == 6 )
                              cColor = 0x24;
                      else if ( tAttr == 7 || tAttr == 8 )
                              cColor = 0x23;
                      else if ( tAttr == 9 || tAttr == 10 )
                              cColor = 0x26;
                      else if ( tAttr == 11 || tAttr == 12 )
                              cColor = 0x2c;
                      else if ( tAttr == 13 || tAttr == 14 )
                              cColor = 0x2a;
                      else
                              cColor = 0x2f;
              
                      if ( iptCC[0] == 0x19 )
                              cColor &= 0x0f;
              
                      OSDShowLine(iptCC,x,y,cColor,OSD_LENGTH);
              }
              #endif
 691          
 692          #if 1   //#ifdef T108
 693          uCHAR OsdSelectItem;
 694          void ShowDemoPage(void)
 695          {
 696   1              switch(OsdSelectItem){
 697   2                      case 0:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -