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

📄 osdctrl.lst

📁 宏芯T118B 配 MTV512, 驱动PVI 9"TFT屏的源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 281          void AdjVideoContrast(sCHAR sStep)
 282          {
 283   1              if( (EepVideo.cContrast+sStep)<=V_CONTRAST_MAX && (EepVideo.cContrast+sStep)>=V_CONTRAST_MIN)
 284   1              {
 285   2                      EepVideo.cContrast+=sStep;
 286   2                      I2CWriteByte(TW101,VCONTRAST,EepVideo.cContrast);  //Ruby 2004-10-09
 287   2                      OSDShowVideoData();
 288   2                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_CONTRAST_INDEX, EepVideo.cContrast);
 289   2                      twdDelay(NVRDELAY);
 290   2      
 291   2              }        
 292   1      }
 293          
 294          void AdjVideoSharp(sCHAR sStep)
 295          {
 296   1          if(EepVideo.cSharp>V_SHARP_MAX)
 297   1             EepVideo.cSharp=V_SHARP_MAX-1;
 298   1          if(EepVideo.cSharp<V_SHARP_MIN)
 299   1             EepVideo.cSharp=V_SHARP_MIN;
 300   1      
 301   1              if( (EepVideo.cSharp+sStep)<=V_SHARP_MAX && (EepVideo.cSharp+sStep)>=V_SHARP_MIN)
 302   1              {
C51 COMPILER V7.06   OSDCTRL                                                               06/19/2006 11:59:51 PAGE 6   

 303   2                      EepVideo.cSharp+=sStep;
 304   2              I2CWriteByte(TW101+4,0x80,V_SHARP_MSK|(EepVideo.cSharp<<1));
 305   2                      OSDShowVideoData();
 306   2                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_SHARP_INDEX, EepVideo.cSharp);
 307   2                      twdDelay(NVRDELAY);             
 308   2              }
 309   1             
 310   1      }
 311          
 312          void AdjVideoSat(sCHAR sStep)
 313          {
 314   1              if( (EepVideo.cSat+sStep)<=V_SAT_MAX && (EepVideo.cSat+sStep)>=V_SAT_MIN)
 315   1              {
 316   2                      EepVideo.cSat+=sStep;
 317   2                      
 318   2                      I2CWriteByte(TW101,VSAT,EepVideo.cSat);
 319   2                      OSDShowVideoData();
 320   2                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_SAT_INDEX, EepVideo.cSat);
 321   2                      twdDelay(NVRDELAY);             
 322   2              }        
 323   1      }
 324          
 325          void AdjVideoHue(sCHAR sStep)
 326          {
 327   1              if( (EepVideo.cHue+sStep)<=V_HUE_MAX && (EepVideo.cHue+sStep)>=V_HUE_MIN)
 328   1              {
 329   2                      EepVideo.cHue+=sStep;
 330   2                      I2CWriteByte(VIDEO_ADDR,VHUE,EepVideo.cHue-0x80);
 331   2                      OSDShowVideoData();
 332   2                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_HUE_INDEX, EepVideo.cHue);
 333   2                      twdDelay(NVRDELAY);             
 334   2              }        
 335   1      }
 336          
 337          #if (defined T112) | (defined T116)
 338          void AdjVideoRGB(sCHAR sStep)  // add by Sherman 06'01'18
 339          {
 340   1              if( (EepVideo.cRGB+sStep)<=V_RGB_MAX && (EepVideo.cRGB+sStep)>=V_RGB_MIN)
 341   1              {
 342   2                      EepVideo.cRGB+=sStep;
 343   2      
 344   2              #if (defined T112) // kenny 20060301
 345   2                      I2CWriteByte(TW101,VRGB,EepVideo.cRGB);
 346   2              #elif (defined T116)
                              I2CWriteByte(TW101,VRGB,EepVideo.cRGB | (EepVideo.cVCOMD & 0x07) << 5);
                      #endif
 349   2                      OSDShowVideoData();
 350   2                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_RGB_INDEX, EepVideo.cRGB);
 351   2                      twdDelay(NVRDELAY);             
 352   2              }        
 353   1      }
 354          void AdjVideoVCOMA(sCHAR sStep)  // add by Sherman 06'01'23
 355          {
 356   1              if( (EepVideo.cVCOMA+sStep)<=V_VCOMA_MAX && (EepVideo.cVCOMA+sStep)>=V_VCOMA_MIN)
 357   1              {
 358   2                      EepVideo.cVCOMA+=sStep;
 359   2              // kenny 20060301
 360   2              #if (defined T112) // kenny 20060301
 361   2                      I2CWriteByte(TW101,VVCOMA,EepVideo.cVCOMA);
 362   2              #elif (defined T116)
                              I2CWriteByte(TW101,VVCOMA,EepVideo.cVCOMA | ((EepVideo.cVCOMD & 0x18) << 2));
                      #endif
C51 COMPILER V7.06   OSDCTRL                                                               06/19/2006 11:59:51 PAGE 7   

 365   2              // kenny 20060301
 366   2                      OSDShowVideoData();
 367   2                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_VCOMA_INDEX, EepVideo.cVCOMA);
 368   2                      twdDelay(NVRDELAY);             
 369   2              }        
 370   1      }
 371          void AdjVideoVCOMD(sCHAR sStep)  // add by Sherman 06'01'23
 372          {
 373   1              if( (EepVideo.cVCOMD+sStep)<=V_VCOMD_MAX && (EepVideo.cVCOMD+sStep)>=V_VCOMD_MIN)
 374   1              {
 375   2                      EepVideo.cVCOMD+=sStep;
 376   2      
 377   2              // kenny 20060301
 378   2              #if (defined T112)
 379   2                      I2CWriteByte(TW101,VVCOMD,EepVideo.cVCOMD);             
 380   2              #elif (defined T116) // kenny 20060301
                              I2CWriteByte(TW101,VVCOMA,EepVideo.cVCOMA | ((EepVideo.cVCOMD & 0x18) << 2) );
                              I2CWriteByte(TW101,VVCOMD,EepVideo.cRGB | (EepVideo.cVCOMD & 0x07) << 5);
                      #endif
 384   2              // kenny 20060301
 385   2                      OSDShowVideoData();
 386   2                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_VCOMD_INDEX, EepVideo.cVCOMD);
 387   2                      twdDelay(NVRDELAY);             
 388   2              }        
 389   1      }
 390          #endif
 391          #ifdef TV
              extern bit m_bLCDOFF;
              
              
              void AdjTVChannel(sCHAR sStep,bit bShow)
              {
                      uCHAR cNum, cNum_b,cTotal;
                      uWORD wTemp;
              #ifdef NTSC
                      if(m_bAir_Cable)
                          cTotal=125;
                      else 
                          cTotal=83;  
              #endif
              #ifdef PAL
                      cTotal=95;
              #endif
              //      cNum=TVEEPGetChannel();
              
                   //TVSetChannel(I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX)-1);
                   TVSetChannel(I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX)-1);
                      cNum = I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX);
                      cNum_b=cNum;
              
              
                  if(skipon || bShow)
                      {
                      cNum+=sStep;
                              if(sStep)
                              {
                                      if(cNum>cTotal)
                                              cNum=1;
                                      else if(cNum<1)
                                              cNum=cTotal;
                                  wTemp=TVSetChannel(cNum-1);
                              if(wTemp&0x8000)
C51 COMPILER V7.06   OSDCTRL                                                               06/19/2006 11:59:51 PAGE 8   

                                      m_bTV_Skip=1;
                                  else 
                                      m_bTV_Skip=0;
                              }
                      }
                      else
                      {
                          do
                          {
                                  cNum+=sStep;
              
                              if(cNum>cTotal)
                                      cNum=1;
                              else if(cNum<1)
                                      cNum=cTotal;
              
                              wTemp=TVSetChannel(cNum-1);
                              if(wTemp&0x8000)
                                      m_bTV_Skip=1;
                                  else 
                                      m_bTV_Skip=0;
                          }while(m_bTV_Skip&&(cNum_b!=cNum)&&sStep);
                      }
                      I2CWriteByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX, cNum);
                      twdDelay(NVRDELAY);
                      twdDelay(200);
                      SetTuner(wTemp);
                      //SourceSelect();   //Ruby 2004-11-03
              
                  if(!bShow)
                  {
                      OSDExit();
                      OSDEnable();
                      OSDPosition(RIGHT_TOP);
              //          OSDDrawNum(cNum, 0, 19, 1, COL_NORMAL, DRAW_BLANK|0x03);
                  }
                  else
                  {
              //Ruby      OSDDrawSkip();
              //ruby          OSDDrawNum(cNum, 0, 19, 1, COL_TITLE, DRAW_BLANK|0x03);
              //ruby          OSDDrawTVFreq(wTemp);
                              
                  }
              //      OSDShowTVData();   // mark by Sherman 05'11'14
              }
              
              
              
              void AdjTVSkip(void)
              {
                      uCHAR cNum;
                      uWORD wTVFreq;
                      m_bTV_Skip=!m_bTV_Skip;
                      twdDelay(NVRDELAY);
                      cNum = I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX);
                      wTVFreq=TVSetChannel(cNum-1);
                      if(m_bTV_Skip)wTVFreq|=0x8000;
                      else wTVFreq&=0x7fff;
                      EEPSaveTVChannel(cNum-1, wTVFreq);
              //Ruby  OSDDrawSkip();
              //      ir_data=0;
              
C51 COMPILER V7.06   OSDCTRL                                                               06/19/2006 11:59:51 PAGE 9   

              }
              void AdjTVSoundSystem(void)
              {
                      if(m_cSoundSystem==PAL_I)
                              m_cSoundSystem=PAL_DK;
                      else
                              m_cSoundSystem=PAL_I;
              //Ruby  OSDDrawSoundSystem();
                      I2CWriteByte(0x86, 0x02,m_cSoundSystem);
              //      ir_data=0;
              }
              void AdjTVFineTune(sCHAR sStep)
              {
                      uCHAR cTemp;
                      uWORD wTemp;
              
                      cTemp = I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX);
                      twdDelay(NVRDELAY);
                      if(m_bAir_Cable)
                      {
                      wTemp=I2CReadByte(EEPVIDEOBLOCK+4, idTVCHANNEL_STAT+(cTemp-1)*2);
                      wTemp<<=8;
                      twdDelay(NVRDELAY);
                      wTemp|=I2CReadByte(EEPVIDEOBLOCK+4, idTVCHANNEL_STAT+(cTemp-1)*2+1);
                      }
                      else
                      {
                      wTemp=I2CReadByte(EEPVIDEOBLOCK+2, idTVCHANNEL_STAT+(cTemp-1)*2);
                      wTemp<<=8;
                      twdDelay(NVRDELAY);
                      wTemp|=I2CReadByte(EEPVIDEOBLOCK+2, idTVCHANNEL_STAT+(cTemp-1)*2+1);
                      }
                      wTemp += sStep;
              //Ruby  OSDDrawTVFreq(wTemp);
              #ifdef PAL
              //Ruby  OSDDrawBand(wTemp);
              #endif                  
              
                      SetTuner(wTemp);
                      EEPSaveTVChannel(cTemp-1, wTemp);
              //      OSDShowTVData();   // mark by Sherman 05'11'14
              }
              
              void AdjTVSource(void)
              {
              uCHAR cTemp;
                      cTemp=I2CReadByte(EEPVIDEOBLOCK, idVIDEO_FLAG_INDEX);
              
                      if(m_bAir_Cable)
                  {
                                      m_bAir_Cable=0;
                                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_FLAG_INDEX,cTemp&0xFE);
                      }
                      else
                  {
                                      m_bAir_Cable=1;
                                      I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_FLAG_INDEX,cTemp|0x01);
                      }
              //    OSDShowTVData();  // mark by Sherman 05'11'14
              
              }
              #endif
C51 COMPILER V7.06   OSDCTRL                                                               06/19/2006 11:59:51 PAGE 10  

 551          #endif
 552          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    785    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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