osddraw.lst

来自「宏芯T102芯片驱动(51单片机作主控)」· LST 代码 · 共 848 行 · 第 1/3 页

LST
848
字号
 537   3                  OSDPosition(CENTER);
 538   3                              OSDShowSubpage();
 539   3                              break;
 540   3                      }
 541   2      
 542   2                              OSDFuncEnter();
 543   2                      break;
 544   2              case FUNCEXIT:
 545   2                              OSDFuncExit();
 546   2                      break;
C51 COMPILER V7.06   OSDDRAW                                                               12/28/2004 10:14:04 PAGE 10  

 547   2              case FUNCADJ_IN:
 548   2                      OSDItemAdj(INCREASE);
 549   2                      break;
 550   2              case FUNCADJ_IN1:
 551   2                      OSDItemAdj(INCREASE1);
 552   2                      break;
 553   2              case FUNCADJ_DN:
 554   2                      OSDItemAdj(DECREASE);
 555   2              break;
 556   2              case FUNCADJ_DN1:
 557   2                      OSDItemAdj(DECREASE1);
 558   2                      break;
 559   2              case FUNCADCCAL:
 560   2                      break;
 561   2              case POWERMANAGE:
 562   2                      m_bKyPowerOn = m_bKyPowerOn^0x01;
 563   2                      PowerManage();
 564   2                      //if(m_bChipPowerOn)
 565   2                      //      BKPower();
 566   2                      break;
 567   2              default:        break;
 568   2              }
 569   1      
 570   1              if(m_bOSDEnable)
 571   1                      Timer0Start();
 572   1      }
 573          
 574          void OSDOpenMenu(void)
 575          {
 576   1              OSDPosition(CENTER);
 577   1              switch(m_cOSDFunc){
 578   2              case idMAINMENU:
 579   2                      break;
 580   2              case idCOLORMENU:
 581   2                      break;
 582   2              case idLANGMENU:
 583   2                      break;
 584   2              case idTVMENU_VIDEO:
 585   2                      OSDShowLine(iBlankLine,0,0,COL_TITLE,OSD_LENGTH);
 586   2                      OSDShowLine(iTuning_E,0,0,COL_TITLE,OSD_LENGTH);
 587   2      
 588   2              OSDSetRamAddr(MENU_RAM_START_ADDRESS+((int)0<<5)+20);
 589   2                      twdWr_Burst_A(OSD_RAM_DL);
 590   2              twdWr_Burst_D('M');
 591   2                      twdWr_Burst_D(COL_TITLE);
 592   2                      twdWr_Burst_D('H');
 593   2                      twdWr_Burst_D(COL_TITLE);
 594   2                      twdWr_Burst_D(0x17); //'z'
 595   2                      twdWr_Burst_D(COL_TITLE);
 596   2                      twdWr_Burst_D(BLANK); //'z'
 597   2                      twdWr_Burst_D(COL_TITLE);
 598   2                      //Draw shadow
 599   2                      //OSDSetRamAddr(MENU_RAM_START_ADDRESS+((int)0<<5)+24);
 600   2                      //twdWr_Burst_A(OSD_RAM_DL);
 601   2                      twdWr_Burst_D(0x40); //V
 602   2                      twdWr_Burst_D(0x02);
 603   2                      twdWr_Burst_P();
 604   2      
 605   2                      break;
 606   2              case idSRCMENU:
 607   2                      return;
 608   2              case idFCTRYMENU:
C51 COMPILER V7.06   OSDDRAW                                                               12/28/2004 10:14:04 PAGE 11  

 609   2                      return;
 610   2              }
 611   1              OSDPosition(CENTER);
 612   1              OSDEnable();
 613   1              OSDShowPage();  //Title
 614   1              OSDShowVideoData();
 615   1      }
 616          
 617          void OSDFuncSelect(sCHAR sStep)
 618          {
 619   1              //Remove previous cursor
 620   1              //OSDHLLine(m_cItem, COL_NORMAL);
 621   1      
 622   1              switch(m_cOSDFunc&0xf0){
 623   2              case idMAINMENU:
 624   2                      if((m_cSource&0x0C)==0x00)//isrcVIDEO)
 625   2                      {
 626   3                              if(m_cItem+sStep>=1 && m_cItem+sStep<=6 )       m_cItem+=sStep;
 627   3                              else
 628   3                              {
 629   4                                      if(sStep<0)     m_cItem=6;
 630   4                                      else            m_cItem=1;
 631   4                              }
 632   3                      }
 633   2                      else
 634   2                      {
 635   3                      if(m_cItem+sStep>=1 && m_cItem+sStep<=10 )      m_cItem+=sStep;
 636   3                              else
 637   3                              {
 638   4                                      if(sStep<0)             m_cItem=10;
 639   4                                      else                    m_cItem=1;
 640   4                              }
 641   3                      }
 642   2                      break;
 643   2              case idCOLORMENU:
 644   2                      if(m_cItem+sStep>=1 && m_cItem+sStep<=5)                m_cItem+=sStep;
 645   2                      else
 646   2                      {
 647   3                              if(sStep<0)                     m_cItem=5;
 648   3                              else                            m_cItem=1;
 649   3                      }
 650   2                      break;
 651   2              case idLANGMENU:
 652   2                      if(m_cItem+sStep>=1 && m_cItem+sStep<=5)                m_cItem+=sStep;
 653   2                      else
 654   2                      {
 655   3                              if(sStep<0)             m_cItem=5;
 656   3                              else                    m_cItem=1;
 657   3                      }
 658   2                      break;
 659   2              case idSRCMENU:
 660   2                      if(m_cItem<4)           m_cItem++;
 661   2                      else                            m_cItem=1;
 662   2                      break;
 663   2              case idFCTRYMENU:
 664   2                      if(m_cItem+sStep>=1 && m_cItem+sStep<=9 )
 665   2                      {
 666   3                              if(sStep>0)
 667   3                              {
 668   4                                      if(m_cItem==6)  m_cItem+=3;
 669   4                                      else                    m_cItem+=sStep;
 670   4                              }
C51 COMPILER V7.06   OSDDRAW                                                               12/28/2004 10:14:04 PAGE 12  

 671   3                              else
 672   3                              {
 673   4                                      if(m_cItem==9) m_cItem-=3;
 674   4                                      else                    m_cItem+=sStep;
 675   4                              }
 676   3      
 677   3                      }
 678   2                      else
 679   2                      {
 680   3                              if(sStep<0)             m_cItem=9;
 681   3                              else                    m_cItem=1;
 682   3                      }
 683   2                      break;
 684   2              case id9300MENU:
 685   2                      if(m_cItem<8)           m_cItem++;
 686   2                      else                            m_cItem=6;
 687   2                      m_cOSDFunc=(m_cOSDFunc&0xf0)|(m_cItem-5);
 688   2                      OSDMoveCursor(0x12,0x17);
 689   2                      return;
 690   2              case id6500MENU:
 691   2                      if(m_cItem<11)
 692   2                              m_cItem++;
 693   2                      else
 694   2                              m_cItem=9;
 695   2                      m_cOSDFunc=(m_cOSDFunc&0xf0)|(m_cItem-8);
 696   2                      OSDMoveCursor(0x12,0x17);
 697   2                      return;
 698   2              case idTVMENU_VIDEO:
 699   2                      if(m_cItem+sStep>=1 && m_cItem+sStep<=6)                m_cItem+=sStep;
 700   2                      else
 701   2                      {
 702   3                              if(sStep<0)                     m_cItem=6;
 703   3                              else                            m_cItem=1;
 704   3                      }
 705   2                      break;
 706   2              default:
 707   2                      break;
 708   2              }
 709   1      
 710   1              m_cOSDFunc=(m_cOSDFunc&0xf0)|m_cItem;
 711   1        //High Light Current item
 712   1                      OSDMoveCursor(0x00,0x17);
 713   1      }
 714          
 715          
 716          void OSDFuncEnter(void)
 717          {
 718   1      #ifdef TV
 719   1              uCHAR cTemp;
 720   1              uWORD wTemp;
 721   1              if (m_cOSDFunc==idTVMENU_VIDEO)
 722   1              {
 723   2                      //Clear Previous Page;
 724   2                      //OSDClearPage();
 725   2      //              OSDExit();
 726   2                      m_cItem=1;
 727   2                      cTemp=TVEEPGetChannel();
 728   2                      wTemp=TVSetChannel(cTemp-1);
 729   2      
 730   2                      twdDelay(200);
 731   2                      //SrcControl();
 732   2                      OSDOpenMenu();
C51 COMPILER V7.06   OSDDRAW                                                               12/28/2004 10:14:04 PAGE 13  

 733   2      #ifdef PAL
                              OSDDrawTVFreq(wTemp);
                              OSDDrawBand(wTemp);
              #endif                  
 737   2                      OSDMoveCursor(0x00,0x17);
 738   2                      m_cOSDFunc=idCHANNEL_TV;
 739   2                      return;
 740   2              }
 741   1              else
 742   1              {
 743   2                      switch(m_cOSDFunc){
 744   3                      case idAUTOMEMORY_TV:
 745   3                              AutoMemory();
 746   3                              return;
 747   3      //              case idAUTOSCAN_TV:
 748   3      //                      AutoScan();
 749   3      //                      return;
 750   3                      case idFINETUNE_TV:
 751   3                              m_cOSDFunc=idFINETUNEMENU_TV;
 752   3                              OSDCfgWr(0x10,0x00); //Disable window
 753   3                              OSDShowLine(iBlankLine,0,2,COL_GAUGE,OSD_LENGTH);
 754   3                              OSDShowLine(iPixelIcon,ICON_STAT,2,COL_GAUGE,OSD_LENGTH);
 755   3                              OSDShowLine(iFineTune_E,TXT_STAT,2,COL_GAUGE,OSD_LENGTH);
 756   3                              break;
 757   3                      case idCHANNEL_TV:
 758   3                              m_cOSDFunc=idCHANNELMENU_TV;
 759   3                              OSDCfgWr(0x10,0x00); //Disable window
 760   3                              cTemp = I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX);
 761   3                              OSDShowLine(iBlankLine,0,3,COL_GAUGE,OSD_LENGTH);
 762   3                              OSDShowLine(iPixelIcon,ICON_STAT,3,COL_GAUGE,OSD_LENGTH);
 763   3                              OSDShowLine(iChannel_E,TXT_STAT,3,COL_GAUGE,OSD_LENGTH);
 764   3                              OSDDrawNum(cTemp, 0, 19, 3, COL_GAUGE, DRAW_BLANK|0x03);
 765   3                              break;
 766   3                      default:        return;
 767   3                      }
 768   2              }
 769   1      #endif
 770   1      }
 771          
 772          void OSDFuncExit(void)
 773          {
 774   1      
 775   1      }
 776          void OSDShowPage(void)
 777          {
 778   1              uCHAR i=0;
 779   1              uCHAR y=1;
 780   1      
 781   1              MULTILANGUAGEOSD *pOSDLangPtr;
 782   1              OSDMENU **pOSDMenuPtr;
 783   1      
 784   1              OSDPosition(CENTER);
 785   1              if((m_cSource&0x0F)==(isrcTV))
 786   1                      pOSDLangPtr=&MultiLangOSDTV[0];
 787   1              else
 788   1                      pOSDLangPtr=&MultiLangOSD[0];
 789   1              pOSDMenuPtr=pOSDLangPtr->osdMenuPtr;  //Main
 790   1      
 791   1              while(pOSDMenuPtr[(m_cOSDFunc>>4)-1][i].iconStr!=NULL)
 792   1              {
 793   2                      OSDShowLine(iBlankLine,0,y,COL_TITLE,OSD_LENGTH);//TV Kuo
 794   2                      OSDSetRamAddr(MENU_RAM_START_ADDRESS+((int)y<<5)+24);
C51 COMPILER V7.06   OSDDRAW                                                               12/28/2004 10:14:04 PAGE 14  

 795   2                      twdWr_Burst_A(OSD_RAM_DL);
 796   2                      twdWr_Burst_D(0x3C); //V
 797   2                      twdWr_Burst_D(0x02);
 798   2                      twdWr_Burst_P();
 799   2      
 800   2                      OSDShowLine(pOSDMenuPtr[(m_cOSDFunc>>4)-1][i].iconStr,ICON_STAT,y,COL_TITLE,OSD_LENGTH);//TV Kuo
 801   2                      if(m_cOSDFunc==idCOLORMENU)
 802   2                              OSDShowLine(pOSDMenuPtr[(m_cOSDFunc>>4)-1][i].txtStr,TXT_STAT-2,y,COL_TITLE,OSD_LENGTH);
 803   2                      else
 804   2                              OSDShowLine(pOSDMenuPtr[(m_cOSDFunc>>4)-1][i].txtStr,TXT_STAT,y,COL_TITLE,OSD_LENGTH);
 805   2                      i++;
 806   2                      y++;
 807   2              }
 808   1              OSDShowLine(iBlankLine,0,y,COL_TITLE,OSD_LENGTH);//Kuo TV

⌨️ 快捷键说明

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