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 + -
显示快捷键?