📄 osddraw.lst
字号:
275 code uCHAR *LangStr[]={
276 iLanguage_E,
277 iLanguage_F,
278 iLanguage_G,
279 iLanguage_I,
280 iLanguage_S
281 };
282
283 code uCHAR *ColorStr[]={
284 iColor_E,
285 iColor_F,
286 iColor_G,
287 iColor_I,
288 iColor_S
289 };
290
291 // ADC Digi
292 //Bright,contrast,sharp,freq,phase,hpos,vpos,Bklight,OSDH/V,Gain/Offset Gain/Offset Volume
293 OSDPARAMS code sOSDParamsMax=
294 {0xff, 0xff, 5, 20, 0x1f, 40, 20, 20, 80,65, 0xC0,0xff, 0xff,0xff, 0x3F};
295 OSDPARAMS code sOSDParamsMin=
296 {0, 0, 0, 0, 0x00, 0, 0, 0, 1,1, 0,0, 0,0, 0x00};
297 OSDPARAMS code sOSDParamsDef=
298 {0x80, 0x80, 2, 10, 0x10, 20, 10, 10, 75,45, 0x80,0x80, 0x80,0x80, 0x1f};
299
300 uCHAR code cOSDMenuLutData[32]={
301 //0xGB, 0x0R
302 0x00,0x00, //0
303 0x0f,0x00, //1 blue
C51 COMPILER V7.06 OSDDRAW 06/16/2005 10:05:39 PAGE 6
304 0x00,0x00, //2 black
305 0x0f,0x0a, //3 purple
306 0x0e,0x00, //4 dark blue
307 0xf0,0x00, //5 green // 0xF8
308 0x22,0x0A, //6 red
309 0xc4,0x0c, //7 olive
310 0x88,0x05, //8 light grey
311 0xb9,0x0b, //9 purple
312 0xBD,0x05, //A purple
313 0x0f,0x0f, //B
314 0xA3,0x0A, //C Yellow
315 0xcc,0x0c, //D light grey
316 0x68,0x03, //E Light Blue Main Menu Background or 0x79, 0x04 which is a litter light
317 0xff,0x0f, //F white
318 };
319
320
321 #define LOGO_ON
322 #ifdef LOGO_ON
323 #define OSDBMP_2BIT_PIXEL 0xf8
324 #define OSDBMP_4BIT_PIXEL 0xb8
325 #define OSDBMP_TYPE OSDBMP_2BIT_PIXEL
326 #define BMP_HPOS (1024-320)/2
327 #define BMP_VPOS (768-76)/2
328
329 //#include "logodata.c"
330 //#include "logo1025.c"
331 #include "logo1113.c"
332
333 bit OSD_PowerOnLogo_On = 1;
334
335 // define OSD Logo BMP LUT color data
336 code unsigned char OSDLutLogoData[32]={
337 0x33,0x03, //Black f=0 , b=0 0x12, 03
338 0xaa,0x02, //Light Blue f=2 , b=1
339 0x18,0x01, //Dark Blue f=8 , b=4
340 0x1f,0x01, //Dark Blue f=8 , b=4
341 0xff,0x0f, // White f=3
342 0xf6,0x0f, //Dark Brown f=4 , b=2
343 0x08,0x08, //Purple f=5
344 0xa8,0x07, //Light Green f=6 , b=3
345 0x86,0x0f, //Dark Red f=7
346 0x54,0x0f, //Dark Red f=7
347 0x54,0x0f, //Dark Red f=7
348 0x0f,0x0f,
349 0xb9,0x00, //purple
- 6
350 0x44,0x04,
351 0x88,0x08, //grey
352 0xff,0x0f //white
353 };
354 #endif //LOGO_ON
355
356 void OSDLogo(void)
357 {
358 1 #if 1
359 1 unsigned int i;
360 1 //#ifdef LOGO_ON
361 1 OSDSetRamAddr(FONT_DATA_START_ADDRESS);
362 1 I2CWriteByte(TW101,OSD_CFG_INDEX,OSD_LUT_RAM_DATA);
363 1 for(i=0;i<32;i++)
364 1 I2CWriteByte(TW101,OSD_CFG_DATA,OSDLutLogoData[i]);
C51 COMPILER V7.06 OSDDRAW 06/16/2005 10:05:39 PAGE 7
365 1
366 1 OSDCfgWr(BW_W,0x28); //width 40(x8)
367 1 OSDCfgWr(BW_H,58); //58 //height 64
368 1 OSDCfgWr(BD_ENLARGE,0x00); //
369 1 OSDCfgWr(CHAR_DLY_0,0x00); //V[10:8] bit 6-4; H[10:8] bit2-0 23 12
370 1 OSDCfgWr(CHAR_DLY_1,0x90); //H[7:0] 80 80
371 1 OSDCfgWr(CHAR_DLY_2,0x40); //v[7:0] 64 30
372 1
373 1 twdWr_Burst_A(OSD_RAM_DL);
374 1 //for(i=0;i<80*76;i++){
375 1 for(i=0;i<80*58;i++)
376 1 twdWr_Burst_D(logodata[i]);
377 1 twdWr_Burst_P();
378 1
379 1 OSDCfgWr(OSD_CTRL,0xf8); //2 bits pixel BitMap
380 1 twdDelay(1000);
381 1 //OSDDisable();
382 1 #endif
383 1 }
384 void OSDInit(void)
385 {
386 1 unsigned int i;
387 1 OSDCfgWr(OSD_CTRL,0x18); //disable osd and width*1
388 1
389 1 /*
390 1 OSDCfgWr(CHAR_DLY_0,((OSDHPOS_CT & 0x700)+ (OSDVPOS_CT & 0x700)*16)/256 ); // CHAR_DLY_0..2 is s
-etup OSD position in TFTpanel.
391 1 OSDCfgWr(CHAR_DLY_1,OSDHPOS_CT & 0xff); // X position is {CHAR_DLY_0[2:0],CHAR_DLY_1[7:0]}=0x17c
-.
392 1 OSDCfgWr(CHAR_DLY_2,OSDVPOS_CT & 0xff); // Y position is {CHAR_DLY_0[6:4],CHAR_DLY_2[7:0]}=0x
-180.
393 1 */
394 1
395 1 /* OSD Position */
396 1 #if 0
i=((EepPublic.cOSDVPos&0xe0)>>1)|((EepPublic.cOSDHPos&0xe0)>>5);
OSDCfgWr(CHAR_DLY_0,(uCHAR)i);
i=EepPublic.cOSDHPos<<3;
OSDCfgWr(CHAR_DLY_1,(uCHAR)i);
i=EepPublic.cOSDVPos<<3;
#endif
403 1 //OSDCfgWr(CHAR_DLY_0,0x12); //V[10:8] bit 6-4; H[10:8] bit2-0
404 1 //OSDCfgWr(CHAR_DLY_1,0xEE); //H[7:0]
405 1 //OSDCfgWr(CHAR_DLY_2,0x64); //v[7:0]
406 1
407 1
408 1 // OSDCfgWr(OSD_CTRL,0x18);
409 1 OSDSetRamAddr(FONT_DATA_START_ADDRESS);
410 1 OSDCfgWr(CHAR_FONT_SIZE,FONT_SIZE);
411 1 OSDCfgWr(CHAR_RAM_BASE_A,CHAR_MAIN_MENU_START); //To setup character index start address.
412 1 //If start address is 0x9c0,
413 1 //You have get ((0x9c0 >> 5) & 0x7f) to store it
414 1 OSDCfgWr(CHAR_RAM_END_A,CHAR_RAM_END); //This is to set index end address.
415 1
416 1 OSDCfgWr(CHAR_BS_CTRL,0x00);//0x40);
417 1 OSDCfgWr(CHAR_BS_COLOR,0x00); //0x00);
418 1 OSDCfgWr(CHAR_HEIGHT_CTRL,0x20);
419 1 //OSDCfgWr(CHAR_HEIGHT_CTRL,0x40); //For malata only
420 1 OSDCfgWr(BLINK_CTRL,0x01);
421 1 //OSDCfgWr(ALPHA_BLD_CTRL,0x80); /* Alpha blending is disable */
422 1 OSDCfgWr(ALPHA_BLD_CTRL,0x8A);//0x00); //0x86 // Alpha blending is disable; for malata only
423 1
C51 COMPILER V7.06 OSDDRAW 06/16/2005 10:05:39 PAGE 8
424 1 OSDLoadColor();
425 1 //OSDSetRamAddr(FONT_DATA_START_ADDRESS);
426 1 #if 0
// set TW to fast mode
#ifdef TW100K
I2CWriteByte(TW702_WR_ADDR,TW_INTERFACE,0x04);
#else
I2CWriteByte(TW702_WR_ADDR,TW_INTERFACE,0x05);
#endif
#endif
434 1
435 1 twdWr_Burst_A(OSD_RAM_DL);
436 1 //Below is re-writted
437 1 for(i=0; i<128*FONT_HEIGHT; i++)
438 1 {
439 2 twdWr_Burst_D(font_00[2*i]);
440 2 twdWr_Burst_D(font_00[2*i+1]);
441 2 }
442 1
443 1 //0xc00==1024*3;
444 1 for(; i<0xc00; i++){
445 2 twdWr_Burst_D(0x00);
446 2 twdWr_Burst_D(0x00);
447 2 }
448 1 twdWr_Burst_P();
449 1
450 1 for(i=0;i<15;i++)
451 1 {
452 2 OSDCleanLine(0,i,0,31);
453 2 OSDSetLineAttribute(i,0x80);
454 2 }
455 1 //#endif
456 1 }
457
458 void OSDLoadColor(void)
459 {
460 1 uCHAR i;
461 1 I2CWriteByte(TW101,OSD_CFG_INDEX,OSD_LUT_RAM_DATA);
462 1 for(i=0;i<32;i++)
463 1 I2CWriteByte(TW101,OSD_CFG_DATA,cOSDMenuLutData[i]);
464 1
465 1 }
466
467 void OSDSetRamAddr(uWORD address)
468 {
469 1 I2CWriteByte(TW101,OSD_RAM_AH,(uCHAR)(address>>8));
470 1 I2CWriteByte(TW101,OSD_RAM_AL,(uCHAR)(address & 0xff));
471 1 //EA=0;
472 1 }
473
474 void OSDEnable(void)
475 {
476 1 m_bOSDEnable = 1;
477 1 OSDCfgWr(OSD_CTRL,0x98);
478 1 //OSDCfgWr(OSD_CTRL,0x99); //For malata only
479 1
480 1 #ifdef TIMER0
481 1 // if(m_bFactryMode) return;
482 1 Timer0Start();
483 1 #endif
484 1
485 1 }
C51 COMPILER V7.06 OSDDRAW 06/16/2005 10:05:39 PAGE 9
486
487 void OSDDisable(void)
488 {
489 1 /*
490 1 #ifdef TIMER0
491 1 if(!m_bFactryMode)
492 1
493 1 #endif
494 1 */ Timer0Stop();
495 1 OSDCfgWr(OSD_CTRL,0x18);
496 1 m_cOSDEvent=0;
497 1 m_cOSDFunc=0;
498 1 m_cItem=1;
499 1 // m_bAdjRGBColor=0; //Init color
500 1 m_bOSDEnable=0;
501 1 m_cCurreKey=m_cPreKey=0xFF;
502 1 }
503 extern bit bFactry_Func,bFactry_Menu;
504
505 void OSDExit(void)
506 {
507 1 OSDCfgWr(OSD_CTRL,0x18);
508 1 OSDCfgWr(0x10,0x00); //Disable window
509 1 OSDDisable();
510 1 OSDClearPage();
511 1 bFactry_Func=0;
512 1 bFactry_Menu=0;
513 1 }
514
515 void OSDEventMgr(void)
516 {
517 1 Timer0Stop();
518 1 switch(m_cOSDEvent)
519 1 {
520 2 case CLOSEMENU:
521 2 OSDExit();
522 2 break;
523 2 case OPENMENU:
524 2 m_cItem=1;
525 2 OSDOpenMenu();
526 2 //m_cOSDFunc|=m_cItem;
527 2 OSDMoveCursor(0x00,0x17);
528 2 break;
529 2 case FUNCSELCT_IN:
530 2 OSDFuncSelect(1);
531 2 // OSDShowData(COL_GAUGE);
532 2 break;
533 2 case FUNCSELCT_DN:
534 2 OSDFuncSelect(-1);
535 2 // OSDShowData(COL_GAUGE);
536 2 break;
537 2 case FUNCENTER:
538 2 if(m_cOSDFunc==idVOLUMEMENU
539 2 ||m_cOSDFunc==idBRIGHTMENU
540 2 ||m_cOSDFunc==idCONTRASTMENU
541 2 ||m_cOSDFunc==idSATMENU_VIDEO
542 2 ||m_cOSDFunc==idSHARP_VIDEO
543 2 ||m_cOSDFunc==idHUEMENU_VIDEO
544 2 ||m_cOSDFunc==idLANGUAGE_MENU)
545 2 {
546 3 // OSDClearPage(); // Del by charles
547 3 OSDCfgWr(0x10,0x00); //Disable window
C51 COMPILER V7.06 OSDDRAW 06/16/2005 10:05:39 PAGE 10
548 3 //Ruby test OSDPosition(LEFT_BOTTOM);
549 3 OSDPosition(CENTER);
550 3 OSDShowSubpage();
551 3 break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -