📄 osddraw.lst
字号:
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 + -