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

📄 osddraw.lst

📁 T116 源码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 246   2              case FUNCADJ_DN:
 247   2                      OSDItemAdj(DECREASE);
 248   2              break;
 249   2              case FUNCADJ_DN1:
 250   2                      OSDItemAdj(DECREASE1);
 251   2                      break;
 252   2              case FUNCADCCAL:
 253   2                      break;
 254   2              case POWERMANAGE:
 255   2                      m_bKyPowerOn = m_bKyPowerOn^0x01;
 256   2                      PowerManage();
 257   2                      break;
 258   2              default:        break;
 259   2              }
 260   1      
 261   1              if(m_bOSDEnable)
 262   1                      Timer0Start();
 263   1      }
 264          
 265          void OSDOpenMenu(void)
 266          {
 267   1              OSDClearPage();
 268   1              OSDPosition(CENTER);
 269   1              OSDEnable();
 270   1              m_cItem=1;
 271   1              m_cOSDFunc=1;
 272   1      
 273   1              OSDShowPage();  
 274   1              //kenny 20060301 ==================
 275   1              #ifdef T116
                      I2CWriteByte(TW101,0xE2,0x11);
                      #endif
 278   1              //kenny 20060301 ==================
 279   1      
 280   1              switch(m_cOSDMenu){
 281   2              case idVIDEOMENU:
 282   2                   ir_repeat=1;
 283   2              OSDShowVideoData();
 284   2                      break;
 285   2              case idTVMENU:
 286   2                      ir_repeat=0;
 287   2      //              OSDShowTVData();        // mark by Sherman 05'11'14
 288   2                      break;
 289   2              default:
 290   2                      return;
 291   2              }
 292   1              m_cOSDEvent=OPENMENU;
 293   1      }
 294          
 295          void OSDFuncExit(void)
 296          {
 297   1      
 298   1      }
 299          
 300          uCHAR OSD_cOSDLang=0;
 301          void OSDShowPage(void)
 302          {
C51 COMPILER V7.50   OSDDRAW                                                               06/16/2006 15:29:44 PAGE 6   

 303   1              uCHAR y=1;
 304   1      
 305   1              pOSDLangPtr=&MultiLangOSD[OSD_cOSDLang];
 306   1              pOSDMenuPtr=pOSDLangPtr->osdMenuPtr;  
 307   1              cTotal=0;
 308   1      
 309   1              while(pOSDMenuPtr[m_cOSDMenu-1][cTotal].iconStr!=NULL)
 310   1              {
 311   2                      OSDShowLine(iBlankLine,0,y,COL_NORMAL,OSD_LENGTH);
 312   2                      //OSDShowLine(pOSDMenuPtr[m_cOSDMenu-1][cTotal].iconStr,ICON_STAT,y,COL_NORMAL,OSD_LENGTH);
 313   2                      OSDShowLine(pOSDMenuPtr[m_cOSDMenu-1][cTotal].txtStr,TXT_STAT,y,COL_NORMAL,OSD_LENGTH);
 314   2      //              idx = pOSDMenuPtr[(m_cOSDFunc>>4)-1][cTotal].cidIdx;            
 315   2                      switch (pOSDMenuPtr[(m_cOSDMenu-1)-1][cTotal].cDataAttr)
 316   2                      {
 317   3                              case GAUGE:
 318   3                              case NUMBER:
 319   3      //                              OSDDrawNum(EepOSDPub[idx],sOSDParams1[idx].Max,NUM_STAT,y,COL_NORMAL);
 320   3                                      break;
 321   3      //                      case OPTION:
 322   3      //                              OSDShowOption(y,COL_NORMAL);
 323   3      //                              break;
 324   3      //                      case INFO:
 325   3      //                              OSDShowInfo(0,(cTotal+1),COL_GAUGE);
 326   3      //                              break;
 327   3                              case NONE:
 328   3                              default:
 329   3                                      break;
 330   3                      }
 331   2                      cTotal++;
 332   2                      y++;
 333   2                      //twdDelay(30);
 334   2              }
 335   1              OSDShowLine(iBlankLine,0,y++,COL_NORMAL,OSD_LENGTH);                              
 336   1              OSDShowLine(iBlankLine,0,y,COL_NORMAL,OSD_LENGTH);
 337   1              
 338   1              OSDMoveCursor();
 339   1      }
 340          
 341          void OSDCleanLine(uCHAR x,uCHAR y,uCHAR cColor,uCHAR cLength)
 342          {
 343   1              if((x < 30) && ( y < OSD_LINE_NUM))
 344   1              {
 345   2                      OSDSetRamAddr(MENU_RAM_START_ADDRESS+((int)y << 5));
 346   2              twdWr_Burst_A(OSD_RAM_DL);      // Write OSD index
 347   2              while((x < 30) && (x < cLength))
 348   2              {
 349   3                      twdWr_Burst_D(BLANK);
 350   3                      twdWr_Burst_D(cColor);
 351   3                      x++;
 352   3              }
 353   2              twdWr_Burst_P();
 354   2              }
 355   1      }
 356          
 357          void OSDClearPage(void)
 358          {
 359   1              uCHAR i=0;
 360   1              for(i=0;i<OSD_LINE_NUM;i++)
 361   1              {
 362   2                      OSDCleanLine(0,i,0,30);
 363   2              OSDSetLineAttribute(i,0x80);
 364   2              }
C51 COMPILER V7.50   OSDDRAW                                                               06/16/2006 15:29:44 PAGE 7   

 365   1      }
 366          
 367          void OSDSetLineAttribute(uCHAR cLine,uCHAR cAttribute)
 368          {
 369   1           OSDSetRamAddr(MENU_RAM_START_ADDRESS+((int)cLine << 5)+31);
 370   1           twdWr_Burst_A(OSD_RAM_DL);      // Write OSD index
 371   1           twdWr_Burst_D(0);
 372   1           twdWr_Burst_D(cAttribute);
 373   1               twdWr_Burst_P();
 374   1      }
 375          
 376          void OSDShowVideoData(void)
 377          {
 378   1      #if (defined T112) | (defined T116)
 379   1              uCHAR  gauge_y =cTotal+1;
 380   1              #else
                      uCHAR  gauge_y =cTotal+2;
                      #endif
 383   1              
 384   1              switch(m_cOSDFunc){
 385   2                      case idBRIGHTMENU:
 386   2                              OSDDrawGauge(EepVideo.cBright,V_BRIGHT_MAX,0,gauge_y,COL_GAUGE);
 387   2                              OSDDrawNum(EepVideo.cBright,V_BRIGHT_MAX,NUM_STAT,gauge_y,COL_TITLE,DRAW_BLANK|0x03); 
 388   2                              break;
 389   2                      case idCONTRASTMENU:
 390   2                              OSDDrawGauge(EepVideo.cContrast,V_CONTRAST_MAX,0,gauge_y,COL_GAUGE);
 391   2                              OSDDrawNum(EepVideo.cContrast,V_CONTRAST_MAX,NUM_STAT,gauge_y,COL_TITLE,DRAW_BLANK|0x03); 
 392   2                              break;
 393   2                      case idSHARPMENU:
 394   2                              OSDDrawGauge(EepVideo.cSharp,V_SHARP_MAX,0,gauge_y,COL_GAUGE);
 395   2                              OSDDrawNum(EepVideo.cSharp,0,NUM_STAT,gauge_y,COL_TITLE,DRAW_BLANK|0x03);  
 396   2                              break;
 397   2                      case idSATMENU:
 398   2                              OSDDrawGauge(EepVideo.cSat,V_SAT_MAX,0,gauge_y,COL_GAUGE);
 399   2                              OSDDrawNum(EepVideo.cSat,V_SAT_MAX,NUM_STAT,gauge_y,COL_TITLE,DRAW_BLANK|0x03);
 400   2                              break;
 401   2                      case idHUEMENU:
 402   2                              OSDDrawGauge(EepVideo.cHue,V_HUE_MAX,0,gauge_y, COL_GAUGE);
 403   2                              OSDDrawNum(EepVideo.cHue,V_HUE_MAX,NUM_STAT,gauge_y,COL_TITLE,DRAW_BLANK|0x03); 
 404   2                              break;
 405   2      #if (defined T112) | (defined T116)         
 406   2                      case idRGBMENU:   // add by Sherman 06'01'18
 407   2                              OSDDrawGauge(EepVideo.cRGB,V_RGB_MAX,0,gauge_y, COL_GAUGE);
 408   2                              OSDDrawNum(EepVideo.cRGB,0/*V_RGB_MAX*/,NUM_STAT,gauge_y,COL_TITLE,DRAW_BLANK|0x03); 
 409   2                              break;
 410   2                      case idVCOMAMENU: // add by Sherman 06'01'23
 411   2                              OSDDrawGauge(EepVideo.cVCOMA,V_VCOMA_MAX,0,gauge_y, COL_GAUGE);
 412   2                              OSDDrawNum(EepVideo.cVCOMA,0,NUM_STAT,gauge_y,COL_TITLE,DRAW_BLANK|0x03); 
 413   2                              break;
 414   2                      case idVCOMDMENU: // add by Sherman 06'01'23
 415   2                              OSDDrawGauge(EepVideo.cVCOMD,V_VCOMD_MAX,0,gauge_y, COL_GAUGE);
 416   2                              OSDDrawNum(EepVideo.cVCOMD,0,NUM_STAT,gauge_y,COL_TITLE,DRAW_BLANK|0x03); 
 417   2                              break;
 418   2      #endif
 419   2                      default:        break;
 420   2              }       
 421   1      }
 422          /*
 423          #ifdef AU_35
 424          #define GAUGE_TOTAL_FONT_L              10  //Long
 425          #else
 426          #define GAUGE_TOTAL_FONT_L              25  //Long
C51 COMPILER V7.50   OSDDRAW                                                               06/16/2006 15:29:44 PAGE 8   

 427          #endif
 428          */
 429          #if ((defined _160_234) | (defined _294_228) |(defined _320_234) | (defined _320_240))
              #define GAUGE_TOTAL_FONT_L              20  // for test by Sherman 06'02'08  //10  //Long
              #else
 432          #define GAUGE_TOTAL_FONT_L              25  //Long
 433          #endif
 434          
 435          
 436          
 437          void OSDDrawGauge(uCHAR cVal, uCHAR cMax, uCHAR x, uCHAR y, uCHAR cColor)
 438          {
 439   1              int index,i,j;
 440   1              int step_size=100/GAUGE_TOTAL_FONT_L;
 441   1              
 442   1              OSDSetRamAddr(MENU_RAM_START_ADDRESS+((int)y<< 5)+x);   
 443   1              twdWr_Burst_A(OSD_RAM_DL);      // Write OSD index
 444   1              index= (int)cVal*GAUGE_TOTAL_FONT_L/(int)cMax;
 445   1          for(i=0;i<index;i++){
 446   2                twdWr_Burst_D(GuageFull_Idx);//34);//1);   // full
 447   2                twdWr_Burst_D(cColor);
 448   2          }
 449   1              j=((int)cVal*100/(int)cMax)-index*step_size;
 450   1              j=j/2;//2.5;
 451   1              twdWr_Burst_D(j+GuageEmpty_Idx);//35);//2);   // residue
 452   1              twdWr_Burst_D(cColor);
 453   1      
 454   1          for(i=index+1;i<GAUGE_TOTAL_FONT_L;i++)
 455   1              {
 456   2                twdWr_Burst_D(GuageEmpty_Idx);//35);//2);  // empty
 457   2                twdWr_Burst_D(cColor);
 458   2              }
 459   1              twdWr_Burst_P();
 460   1              
 461   1      
 462   1      }
 463          
 464          //Maximum three initiger, percentage
 465          void OSDDrawNum(uWORD wVal, uCHAR cMax, uCHAR x, uCHAR y, uCHAR cColor, uCHAR cAttr)
 466          {
 467   1              //Init Part
 468   1              uCHAR cTemp;
 469   1              if(cMax!=0)
 470   1              {
 471   2                      m_wBuff[0]=(unsigned long)wVal*100;
 472   2                      m_wBuff[0]=m_wBuff[0]/cMax;
 473   2              }
 474   1              else //Non percentage
 475   1              {
 476   2                      m_wBuff[0]=wVal;
 477   2              }
 478   1      
 479   1              if(m_wBuff[0]<10)
 480   1                      m_cBuff[1]=1;
 481   1              else if(m_wBuff[0]<100)
 482   1                      m_cBuff[1]=2;
 483   1              else
 484   1              m_cBuff[1]=3;
 485   1      
 486   1              OSDSetRamAddr(MENU_RAM_START_ADDRESS+((int)y << 5)+x);
 487   1              twdWr_Burst_A(OSD_RAM_DL);      // Write OSD index
 488   1      
C51 COMPILER V7.50   OSDDRAW                                                               06/16/2006 15:29:44 PAGE 9   

 489   1              if((cAttr&0xF0)==DRAW_BLANK)
 490   1              {
 491   2                      switch(m_cBuff[1]){
 492   3                      case 1:
 493   3                              if((cAttr&0x0F)==3||(cAttr&0x0F)==2)
 494   3                              {
 495   4                                      twdWr_Burst_D(BLANK);
 496   4                                      twdWr_Burst_D(cColor);
 497   4                              }
 498   3                      case 2:
 499   3                              if((cAttr&0x0F)==3)
 500   3                              {

⌨️ 快捷键说明

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