📄 osdmenu.lst
字号:
case OFF_TIME:
val = SetClock_min(flag); break;
*/
#ifdef NTSC_TV
case AIR_CABLE_TV: val = ToggleTVType(); break;
case STORE_CLEAR_TVCHN: val = StoreClearCurChn(); break;
#endif
case MTS: val = SetMTSType(); break;
case FINE_TUNE_CHANNEL: val = ChangeFineChannel(flag); break;
/*
#ifdef PAL_TV
case WAKEUP_PR:
//val = OSDItemValue = ( flag==UP ? OSDItemValue+1 : OSDItemValue+GetMaxTVChn()-1 ) % GetMaxTVChn()
-; break;
#endif // PAL_TV
*/
C51 COMPILER V7.50 OSDMENU 08/20/2007 10:23:32 PAGE 13
#endif //SUPPORT_TV
736 2
737 2 #ifdef WIDE_SCREEN
738 2 case WIDESCREEN: val = WideScreenMode;
739 2 if(flag==UP) val++;
740 2 else val = ( val+MAXWIDESCREEN -1 );
741 2 val %= MAXWIDESCREEN;
742 2 Set4WideScreen( val );
743 2 break;
744 2 #endif //WIDE_SCREEN
745 2
746 2 #ifdef SUPPORT_CCD_VCHIP
case CLOSED_CAPTION: val = ChangeCC(flag); break;
#endif // SUPPORT_CCD_VCHIP
749 2
750 2 #ifdef SUPPORT_CCD_VCHIP
//case TV_GUIDE: val = ChangeVchipTV( flag ); break;
case MPAA_RATING: val = GetMPAARating();
if(flag==UP) val++;
else val = ( val+MAXVCHIPMOVIE -1 );
val %= MAXVCHIPMOVIE;
val = ChangeVchipMovie( val ); break;
#endif
758 2
759 2 }
760 1
761 1 return val;
762 1 }
763 /*
764 void DrawTime(WORD val, BYTE Hcolor, BYTE Mcolor )
765 {
766 BYTE mstr[5];
767 WORD new_val;
768
769 #ifdef DEBUG_OSD
770 dPrintf("\r\n++(DrawTime) winno:%d, time:0x%x__", (WORD)val_osdwin, (WORD)val);
771 #endif
772
773 new_val = val >> 8;
774 if( new_val < 10 ) mstr[0] = '0';
775 else mstr[0] = ( new_val / 10 ) + '0' ;
776 mstr[1] = ( new_val % 10 ) + '0' ;
777 mstr[2] = 0;
778 CopyStrToOSDWindow(val_osdwin, 0, 0, 0, Hcolor, mstr);
779 CopyCharToOSDWindow(val_osdwin, 2, 0, ( (~CH_BLINK) & Hcolor ), ':');
780
781 new_val = (BYTE)val;
782 if( new_val < 10 ) mstr[0] = '0';
783 else mstr[0] = ( new_val / 10 ) + '0' ;
784 mstr[1] = ( new_val % 10 ) + '0' ;
785 mstr[2] = 0;
786 CopyStrToOSDWindow(val_osdwin, 3, 0, 0, Mcolor, mstr);
787
788 #ifdef DEBUG_OSD
789 dPrintf("--- time:0x%x__", (WORD)val);
790 #endif
791
792 }
793
794 */
795
796 void DisplayViewBar(WORD addr, BYTE val)
C51 COMPILER V7.50 OSDMENU 08/20/2007 10:23:32 PAGE 14
797 {
798 1 CODE BYTE BAR_ROM_TABLE[] = {
799 1 0x01,0x01,0x01,0x01, // ...
800 1 0x02,0x02,0x02,0x02,0x02, // |..
801 1 0x05,0x05,0x05,0x05,0x05,// ||.
802 1 0x03, // |
803 1 0x04, // |||
804 1 };
805 1
806 1 BYTE i;
807 1 BYTE Bar_str[]={ 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, ' ', ' ', ' ',0 };
808 1
809 1 // Bar
810 1 if(val < 98)
811 1 {
812 2 Bar_str[val/14] = BAR_ROM_TABLE[val%14];
813 2 for(i = val/14 + 1; i < 7; i++)
814 2 Bar_str[i] = BAR_ROM_TABLE[0];
815 2 }
816 1
817 1 if( Bar_str[0] == 0x01 ) Bar_str[0] = 0x02; // |..
818 1
819 1 // Number
820 1 Bar_str[10] = val % 10 + '0'; val /= 10;
821 1 Bar_str[9] = val % 10 + '0'; val /= 10;
822 1 Bar_str[8] = val + '0';
823 1 if( Bar_str[8] == '0' ) Bar_str[8] = ' ';
824 1
825 1 WriteStringToAddr(addr, Bar_str, BARNUM_LENGTH);
826 1
827 1 }
828
829 void DrawNum(WORD addr,CODE_P struct NumType *nptr, WORD val)
830 {
831 1 BYTE x,i, j,k, len, mstr[5];//,color;
832 1 BYTE Num_str[]={ ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',0 };
833 1 CODE_P BYTE *str;
834 1
835 1 x= MAX_DESC;//+ICON_CH_SZ;
836 1 i = nptr->PrePostCharLen >> 4 ;
837 1 j = nptr->PrePostCharLen & 0x0f ;
838 1 str = nptr->PrePostChar;
839 1
840 1 // Draw char on front of number.
841 1 if( i )
842 1 for(k=0; k<i; k++)
843 1 Num_str[k] = *str++;
844 1 // Draw number.
845 1 utoa(val,mstr,BAR_NUM_RADIX);
846 1 len = strlen(mstr);
847 1 str=mstr;
848 1 for(k=0; k<len; k++)
849 1 Num_str[k+i] = *str++;
850 1
851 1 // Draw char on back of number
852 1 if( j )
853 1 for(k=0; k<j; k++)
854 1 Num_str[k+i+len] = *str++;
855 1 WriteStringToAddr(addr, Num_str, BARNUM_LENGTH);
856 1
857 1 }
858
C51 COMPILER V7.50 OSDMENU 08/20/2007 10:23:32 PAGE 15
859 void DrawStringByLang( WORD addr, CODE_P struct EnumType *yptr, WORD val )
860 {
861 1
862 1 BYTE j,l,Size_val;
863 1 BYTE Buf[]={' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',0 };
864 1 CODE_P BYTE *Str;
865 1
866 1 Size_val = yptr->Sz;
867 1 Str = yptr->Str;
868 1
869 1 if ( yptr->ByLang)
870 1 {
871 2 for(j=0; j<OSDLang*Size_val; j++)
872 2 Str += ( strlen(Str) + 1 );
873 2 }
874 1
875 1 if( val ){
876 2 for(j=0; j<val; j++)
877 2 Str += ( strlen(Str) + 1 );
878 2 }
879 1
880 1 WriteStringToAddr(addr, Buf, BARNUM_LENGTH);
881 1
882 1 l = CStrlen(Str);
883 1
884 1 WriteStringToAddr(addr, Str, l);
885 1
886 1 }
887 /*
888 #ifdef PAL_TV
889 void DrawFraction( CODE_P struct NumType *nptr, DWORD val, BYTE fp )
890 {
891 BYTE mstr[6], len;
892
893 ltoa_K( val, mstr, fp );
894 len = strlen(mstr);
895 CopyStrToOSDWindow(cur_osdwin, 0, 0, len, nptr->NumColor, mstr);
896 ClearOSDLine(cur_osdwin, len, 0, nptr->width-len, nptr->NumColor);
897 }
898 #endif
899
900 BYTE OnChangingValue(void)
901 {
902 return ( (val_osdwin==0xff ) ? 0 : 1 ); //OSDItemValue==0xffff: password error
903 }
904 // Not used yet *******************************************
905 BYTE OnChangingTime(void)
906 {
907 if ( val_osdwin==0xff ) return 0 ;
908 if ( MenuChild[cursor_item].Type==TIME ) return 1;
909 else return 0;
910
911 }
912 */
913
914 void DrawMenulist(BYTE NOTViewflag)
915 {
916 1 BYTE i,j,k, x=0, y=0;
917 1 CODE_P struct DefineMenu *DMp;
918 1 CODE_P BYTE *Desc;
919 1 BYTE Max_y;
920 1 WORD addr;
C51 COMPILER V7.50 OSDMENU 08/20/2007 10:23:32 PAGE 16
921 1
922 1 // Draw Title line
923 1 if( MenuFormat->TitleColor!=NIL ) {
924 2
925 2 #ifdef DEBUG_OSD
dPrintf("\r\nTitle color:0x%x", (WORD)MenuFormat->TitleColor);
#endif
928 2
929 2 DMp = &MenuTitle[title_item];
930 2 Desc = DMp->Desc[OSDLang];
931 2 j=strlen(Desc);
932 2
933 2 for( i=0,k=0; i<j; i++ )
934 2 if( *(Desc+i) == ROMFONT || *(Desc+i) == RAMFONT ) k++;
935 2
936 2 //ClearDataCnt(OSDMENU_SUBADDR, MenuFormat->width); // Clear the counter of OSD RAM Data from addr with
-space(' ').
937 2 DrawAttrCnt(OSDMENU_SUBADDR, MenuFormat->TitleColor, MenuFormat->width );
938 2 WriteStringToAddr(OSDMENU_SUBADDR, Desc, j);
939 2
940 2 if( (j-k ) < TITLE_MAX_DESC )
941 2 ClearDataCnt(OSDMENU_SUBADDR+j-k, TITLE_MAX_DESC-j+k);
942 2
943 2 y++;
944 2 }
945 1
946 1 if( MenuChild ) i = 0;
947 1 else i = NIL;
948 1
949 1 // Draw
950 1 Max_y = (cur_osdwin == OSDMENU_TOPWIN ? TOTAL_TOP_HEIGHT: MENU_HEIGHT+1);
951 1 addr = (cur_osdwin == OSDMENU_TOPWIN ? OSDMENU_MAINADDR: OSDMENU_SUBADDR);
952 1 addr += y*MenuFormat->width;
953 1
954 1 if( NOTViewflag==0 ) {
955 2 I2CAutoIncFlagOn = 1; // speedy submenu drawing
956 2 WriteDecoder(TW88_ENABLERAM, 0x04); // OSD RAM Auto Access Enable
957 2 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -