dispinfo.lst

来自「显示屏驱动源代码」· LST 代码 · 共 602 行 · 第 1/2 页

LST
602
字号
C51 COMPILER V7.06   DISPINFO                                                              02/21/2008 14:00:25 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DISPINFO
OBJECT MODULE PLACED IN .\Output\dispinfo.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE dispinfo.c COMPACT OPTIMIZE(9,SIZE) BROWSE INCDIR(.\Include\) DEBUG OBJECTE
                    -XTEND PRINT(.\Source\dispinfo.lst) OBJECT(.\Output\dispinfo.obj)

stmt level    source

   1          //
   2          #include "Config.h"
   3          
   4          #include "typedefs.h"
   5          #include "main.h"
   6          
   7          #include "osdbasic.h"
   8          #include "printf.h"
   9          
  10          #include "osdmenu.h"
  11          #include "dispinfo.h"
  12          #include "tw88.h"
  13          #include "i2c.h"
  14          #include "etc_eep.h"
  15          #include "audio.h"
  16          #include "measure.h"
  17          #include "pc_eep.h"
  18          #include "RegMap.h"
  19          #include "panel.h"
  20          #ifdef SUPPORT_TV
              #include "tuner.h"
              #endif
  23          
  24          //----------------------------------------------------------------------
  25          //extern  CODE  BYTE InputSelectionString[][16];
  26          extern  CODE  struct struct_IdName struct_InputSelection[];
  27          extern  CODE  struct struct_IdName struct_VInputStd[];
  28          
  29          static  DATA WORD  OSDDisplayedTime;            //in ms
  30          static  IDATA BYTE  DisplayedOSD = 0;
  31          //          DATA BYTE  DisplayedOSD = 0;
  32          //extern        IDATA struct BarInfo BarInfo;
  33          extern  bit   TVChManual;
  34          extern  bit             DisplayInputHold;
  35          
  36          extern  BYTE    DummyChannel;
  37          #ifdef SUPPORT_COMPONENT
  38          extern IDATA BYTE  ComponentMode;
  39          #endif
  40          extern CODE BYTE Init_Osd_DisplayLogo[];
  41          extern CODE BYTE Init_Osd_DisplayInput[];
  42          #ifdef ADD_ANALOGPANEL
              extern CODE BYTE Init_Osd_DisplayLogo_A[];
              extern CODE BYTE Init_Osd_DisplayInput_A[];
              #endif
  46          
  47          extern CODE BYTE Init_Osd_BarWindow[];
  48          extern CODE BYTE Init_Osd_DisplayPCInfo[];
  49          extern CODE BYTE *StrVolume[];
  50          
  51          
  52          #ifdef TW9908
              CODE BYTE TW9908String[]=       { "   TW9908   "};
              CODE BYTE TW9905String[]=       { "   TW9905   "};
C51 COMPILER V7.06   DISPINFO                                                              02/21/2008 14:00:25 PAGE 2   

              #endif
  56          
  57          CODE BYTE TW8806String[]=       { "   TW88X6   "};
  58          
  59          CODE BYTE TechwellString[]=     { "Techwell,Inc" };
  60          
  61          CODE BYTE COMPONENT_STR[][15] = {
  62              "YPbPr 480i",       // 0
  63              "YPbPr 576i",       // 1
  64              "YPbPr 480p",       // 2
  65              "YPbPr 576p",       // 3
  66              "YPbPr 1080i",      // 4
  67              "YPbPr 720p",       // 5
  68                  "YPbPr 720p50", 
  69              "YPbPr 1080i50",
  70          };
  71          //================================================================
  72          //                                      Display information
  73          //================================================================
  74          void DisplayLogo(void)
  75          {
  76   1              BYTE CODE *str;
  77   1              //ClearOSDInfo();
  78   1      
  79   1              #ifdef TW9908
                      if( (ReadDecoder(0) & 0xf8) == 0x28 ) str = TW9905String;
                      else                                  str = TW9908String;
                      #else
  83   1              str = TW8806String;
  84   1              #endif
  85   1      
  86   1              InitOSDWindow(Init_Osd_DisplayLogo);
  87   1              #ifdef ADD_ANALOGPANEL
                      if(IsAnalogOn())
                              InitOSDWindow(Init_Osd_DisplayLogo_A);
                      #endif
  91   1              
  92   1              ClearDataCnt(LOGO_ADDR, 12*2); // Total 12*2 Char.
  93   1      
  94   1              DrawAttrCnt(LOGO_ADDR, CH_COLOR_WHITE, 12 );     
  95   1              DrawAttrCnt(LOGO_ADDR+12, CH_COLOR_RED, 12 );
  96   1      
  97   1              WriteStringToAddr(LOGO_ADDR, str, 12);
  98   1              WriteStringToAddr(LOGO_ADDR+12*1, TechwellString,12);
  99   1      
 100   1              ShowOSDWindow(TECHWELLOGO_OSDWIN,TRUE);
 101   1              
 102   1      }
 103          
 104          void ClearLogo(void)
 105          {
 106   1              ShowOSDWindow(TECHWELLOGO_OSDWIN,FALSE);
 107   1              #ifdef DEBUG_OSD
                      dPrintf("\r\n++(ClearLogo)");
                      #endif
 110   1      }
 111          
 112          
 113          void ClearDisplayedOSD( BYTE newd )
 114          {
 115   1              DisplayedOSD &= (~(newd));
 116   1      }
C51 COMPILER V7.06   DISPINFO                                                              02/21/2008 14:00:25 PAGE 3   

 117          
 118          void SetDisplayedOSD( BYTE newd )
 119          {
 120   1              DisplayedOSD |= newd;
 121   1      }
 122          
 123          BYTE GetDisplayedOSD(void)
 124          {
 125   1              return DisplayedOSD;
 126   1      }
 127          
 128          void ClearOSDInfo(void)
 129          {
 130   1              BYTE dt;
 131   1      
 132   1              dt = GetDisplayedOSD(); 
 133   1              #ifdef DEBUG_OSD
                      dPrintf("\r\n++(ClearOSDInfo): DisplayedOSD:%2x",(WORD) GetDisplayedOSD());
                      #endif
 136   1              #ifdef SUPPORT_PC
 137   1              if( dt & PCINFO)                ClearPCInfo();
 138   1              #endif
 139   1      
 140   1              if( (dt & TVVOL) || ( dt & TVCHN) )     ClearTVInfo();
 141   1      
 142   1              if( dt & MUTE )                 ClearMuteInfo();
 143   1              if( dt & INPUTINFO )    ClearInput();
 144   1              if( dt & MENU )                 CloseOSDMenu();
 145   1      }
 146          
 147          void DisplayInput(void)
 148          {
 149   1              BYTE    inputs, len1, len2,i, SystemAddr;
 150   1              #ifdef SUPPORT_COMPONENT
 151   1              BYTE CODE       *Str;
 152   1              #endif
 153   1              
 154   1              #ifdef ADD_ANALOGPANEL
                      if(IsAnalogOn())
                              SystemAddr=INPUTINFO_ADDR+17;
                      else
                      #endif
 159   1              SystemAddr=INPUTINFO1_ADDR;
 160   1      
 161   1              if( (DisplayedOSD & INPUTINFO ) && DisplayInputHold ) return;
 162   1              #ifdef DEBUG_OSD
                      dPrintf("\r\n++(DisplayInput)");
                      #endif
 165   1      
 166   1              ClearOSDInfo();
 167   1      
 168   1              inputs = GetInputSelection();
 169   1      
 170   1              #if defined( SUPPORT_PC ) || defined( SUPPORT_DTV )
 171   1              if( inputs==PC || inputs==DTV )
 172   1                      len2 = strlen( GetPCInputSourceName() );
 173   1              else
 174   1              #endif
 175   1              #ifdef SUPPORT_COMPONENT
 176   1              if( inputs==COMPONENT ){
 177   2                      Str = COMPONENT_STR[((ReadDecoder(CVFMT)&0x70)>>4)];
 178   2                      len2 = strlen(Str);
C51 COMPILER V7.06   DISPINFO                                                              02/21/2008 14:00:25 PAGE 4   

 179   2              }
 180   1              else
 181   1              #endif
 182   1                      len2 = strlen( struct_VInputStd[GetVInputStdInx()].Name );
 183   1      
 184   1      
 185   1              for (i=1; ;i++)
 186   1                      if( struct_InputSelection[i].Id==inputs )  break;
 187   1      
 188   1              len1 = strlen(struct_InputSelection[i].Name);
 189   1      
 190   1              InitOSDWindow(Init_Osd_DisplayInput);
 191   1              #ifdef ADD_ANALOGPANEL
                      if(IsAnalogOn())
                              InitOSDWindow(Init_Osd_DisplayInput_A);
                      #endif
 195   1              ClearDataCnt(INPUTINFO_ADDR, 51); // Total 42 Char.
 196   1              DrawAttrCnt(INPUTINFO_ADDR, DEFAULT_COLOR, 51 );        
 197   1              WriteStringToAddr(INPUTINFO_ADDR, struct_InputSelection[i].Name, len1); 
 198   1      
 199   1              #if defined( SUPPORT_PC ) || defined( SUPPORT_DTV )
 200   1              if( inputs==PC || inputs==DTV )
 201   1                      WriteStringToAddr(SystemAddr, GetPCInputSourceName(), len2); 
 202   1              else
 203   1              #endif
 204   1              #ifdef SUPPORT_COMPONENT
 205   1              if( inputs==COMPONENT ){
 206   2                      //i = IsNoInput();
 207   2                      //Printf("\r\n Display Info==> Component Noinutcheck: %d ", (WORD)i );
 208   2                      if( IsNoInput() == 0 ) WriteStringToAddr(SystemAddr, Str, len2); 
 209   2              }
 210   1              else
 211   1              #endif
 212   1              {
 213   2                      if( IsNoInput() == 0 ) 
 214   2                      WriteStringToAddr(SystemAddr, struct_VInputStd[GetVInputStdInx()].Name, len2); 
 215   2              }
 216   1      
 217   1              ShowOSDWindow(INPUTINFO_OSDWIN-1,TRUE);
 218   1              ShowOSDWindow(INPUTINFO_OSDWIN,TRUE);
 219   1              ShowOSDWindowAll(1);
 220   1      
 221   1              DisplayedOSD |= INPUTINFO;
 222   1              OSDDisplayedTime = GetTime_ms();        
 223   1      }
 224          
 225          BYTE ClearInput(void)
 226          {
 227   1                      
 228   1              ShowOSDWindowAll(0);
 229   1              ShowOSDWindow(INPUTINFO_OSDWIN-1,FALSE);
 230   1              ShowOSDWindow(INPUTINFO_OSDWIN,FALSE);
 231   1      
 232   1              DisplayedOSD &= (~(INPUTINFO));
 233   1              #ifdef DEBUG_OSD
                      dPrintf("\r\n++(ClearInput)");
                      #endif
 236   1      
 237   1              return 1;
 238   1      //      ClearBlending();
 239   1      }
 240          
C51 COMPILER V7.06   DISPINFO                                                              02/21/2008 14:00:25 PAGE 5   

 241          void DisplayVol(void)
 242          {
 243   1              BYTE CODE *Str ;
 244   1              BYTE len;
 245   1      
 246   1              #ifdef DEBUG_OSD
                      dPuts("\r\n++(DisplayVol)");
                      #endif
 249   1              
 250   1              if(( DisplayedOSD & TVVOL ) == 0 ) 
 251   1              {
 252   2      
 253   2              ClearOSDInfo();
 254   2              Change_OSDColorLookup();
 255   2              delay(10);
 256   2      
 257   2      
 258   2              InitOSDWindow(Init_Osd_BarWindow);
 259   2      
 260   2              ClearDataCnt(OSDMENU_BARADDR, 50); // Total 25*2 Char.
 261   2              DrawAttrCnt(OSDMENU_BARADDR, BG_COLOR_CYAN | CH_COLOR_WHITE, 25 );       
 262   2              DrawAttrCnt(OSDMENU_BARADDR+25, BG_COLOR_WHITE | CH_COLOR_CYAN, 25 );
 263   2      
 264   2              Str = StrVolume[GetOSDLang()];
 265   2              len=CStrlen(Str);
 266   2              WriteStringToAddr(OSDMENU_BARADDR, Str, len);  
 267   2      
 268   2              ShowOSDWindow(OSDBARWINDOW,TRUE);
 269   2              ShowOSDWindowAll(1);
 270   2      
 271   2              }
 272   1              DisplayVolumebar(GetAudioVol());
 273   1      
 274   1              DisplayedOSD |= TVVOL;
 275   1              OSDDisplayedTime = GetTime_ms();
 276   1      
 277   1      }
 278          
 279          void DisplayMuteInfo(void)
 280          {
 281   1              BYTE CODE       *Str ;
 282   1              BYTE len;
 283   1              extern CODE BYTE Init_Osd_DisplayMuteInfo[];

⌨️ 快捷键说明

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