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