osdctrl.lst
来自「采用台湾MRT晶捷公司的MRT4方案的液晶电视的程序」· LST 代码 · 共 1,185 行 · 第 1/5 页
LST
1,185 行
891 1 {
892 2 PortDataOut((MainMenuCols+1)*4+3,UPDATE_CODE,SubIcon1[0],3);
893 2 PortDataOut((MainMenuCols+1)*5+3,UPDATE_CODE,SubIcon1[1],3);
894 2 PortDataOut((MainMenuCols+1)*7+3,UPDATE_CODE,SubIcon2[0],3);
895 2 PortDataOut((MainMenuCols+1)*8+3,UPDATE_CODE,SubIcon2[1],3);
896 2 }
897 1 else if ((cursor >= COLORTEMP_WARM) && (cursor <= COLORTEMP_USER))
898 1 {
899 2 PortDataOut((MainMenuCols+1)*4+12,UPDATE_CODE,warmData[eepData.language],6);
900 2 PortDataOut((MainMenuCols+1)*6+12,UPDATE_CODE,coolData[eepData.language],6);
901 2 PortDataOut((MainMenuCols+1)*8+9,UPDATE_CODE,userData[eepData.language],sizeof(userData[0]) / sizeof(cha
-r));
C51 COMPILER V6.23a OSDCTRL 09/10/2004 16:09:03 PAGE 16
902 2 }
903 1 else if(cursor == USER_R || cursor == OSDSETUP_HPOS)
904 1 {
905 2 PortDataOut((MainMenuCols+1)*3+3,UPDATE_CODE,SubIcon1[0],3);
906 2 PortDataOut((MainMenuCols+1)*4+3,UPDATE_CODE,SubIcon1[1],3);
907 2 PortDataOut((MainMenuCols+1)*5+3,UPDATE_CODE,SubIcon2[0],3);
908 2 PortDataOut((MainMenuCols+1)*6+3,UPDATE_CODE,SubIcon2[1],3);
909 2 PortDataOut((MainMenuCols+1)*7+3,UPDATE_CODE,SubIcon3[0],3);
910 2 PortDataOut((MainMenuCols+1)*8+3,UPDATE_CODE,SubIcon3[1],3);
911 2 }
912 1 else if(cursor == AUTOCONFIG_YES || cursor == RESET_YES)
913 1 {
914 2 PortDataOut((MainMenuCols+1)*5+13,UPDATE_CODE,yesData[eepData.language],3);
915 2 PortDataOut((MainMenuCols+1)*7+13,UPDATE_CODE,noData[eepData.language],4);
916 2 }
917 1 else if(cursor >= LANGUAGE_ENGLISH && cursor <= LANGUAGE_SCHINESE)
918 1 {
919 2 PortDataOut((MainMenuCols+1)*4+5,UPDATE_CODE,englishData[0],8);
920 2 PortDataOut((MainMenuCols+1)*4+17,UPDATE_CODE,englishData[1],8);
921 2 PortDataOut((MainMenuCols+1)*6+5,UPDATE_CODE,englishData[2],8);
922 2 PortDataOut((MainMenuCols+1)*6+17,UPDATE_CODE,englishData[3],8);
923 2 PortDataOut((MainMenuCols+1)*8+5,UPDATE_CODE,englishData[4],8);
924 2 PortDataOut((MainMenuCols+1)*8+17,UPDATE_CODE,englishData[5],8);
925 2
926 2 /* buff[20] = 0;
927 2 PortDataOut((MainMenuCols+1)*(4+buff[20]*2)+5,UPDATE_CODE,englishData[0],8);
928 2 PortDataOut((MainMenuCols+1)*(4+buff[20]*2)+17,UPDATE_CODE,englishData[0]+1,8);*/
929 2 }
930 1 else if(cursor == MAIN_INFORMATION)
931 1 informationMenu();
932 1
933 1 else if (cursor == HOT_CONTRAST)
934 1 {
935 2 PortDataOut((MainMenuCols+1)*5+3,UPDATE_CODE,SubIcon1[0],3);
936 2 PortDataOut((MainMenuCols+1)*6+3,UPDATE_CODE,SubIcon1[1],3);
937 2 setScrollBarAttr(1);
938 2 AdjustFlag ^= 1;
939 2 adjContrast(0,SHOW);
940 2 }
941 1 else if (cursor == HOT_BRIGHTNESS)
942 1 {
943 2 PortDataOut((MainMenuCols+1)*5+3,UPDATE_CODE,SubIcon2[0],3);
944 2 PortDataOut((MainMenuCols+1)*6+3,UPDATE_CODE,SubIcon2[1],3);
945 2 setScrollBarAttr(1);
946 2 AdjustFlag ^= 1;
947 2 adjBrightness(0,SHOW);
948 2 }
949 1 #if WITH_AUDIO
950 1 else if (cursor == HOT_VOLUME)
951 1 adjVolume(0,SHOW);
952 1 else if (cursor == MAIN_EXIT)
953 1 {
954 2 PortDataOut((MainMenuCols+1)*6+3,UPDATE_CODE,VolumeIcon[0],3);
955 2 PortDataOut((MainMenuCols+1)*7+3,UPDATE_CODE,VolumeIcon[1],3);
956 2 setScrollBarAttr(1);
957 2
958 2 adjVolume(0,SHOW);
959 2 }
960 1 #endif
961 1
962 1 enableOSD();
963 1 }
C51 COMPILER V6.23a OSDCTRL 09/10/2004 16:09:03 PAGE 17
964
965 void subSelect(char select)
966 {
967 1 if(cursor >= LUMINANCE_CONTRAST && cursor <= IMAGEPOSITION_V)
968 1 {
969 2 PortDataOut((MainMenuCols+1)*((cursor & 0x0F)*3+4)+3, UPDATE_ATTR, mainIconAttrData[select],3);
970 2 PortDataOut((MainMenuCols+1)*((cursor & 0x0F)*3+5)+3, UPDATE_ATTR, mainIconAttrData[select],3);
971 2 }
972 1 else if(cursor >= COLORTEMP_WARM && cursor <= COLORTEMP_USER)
973 1 {
974 2 PortDataOut((MainMenuCols+1)*((cursor-COLORTEMP_WARM)*2+4)+8, UPDATE_ATTR, colortempAttrData[select],siz
-eof(colortempAttrData[0]) / sizeof(char));
975 2 }
976 1 else if((cursor >= USER_R && cursor <= USER_B) || (cursor >= OSDSETUP_HPOS && cursor <= OSDSETUP_TIME))
977 1 {
978 2 PortDataOut((MainMenuCols+1)*((cursor & 0x0F)-1)+3, UPDATE_ATTR, mainIconAttrData[select],3);
979 2 PortDataOut((MainMenuCols+1)*((cursor & 0x0F))+3, UPDATE_ATTR, mainIconAttrData[select],3);
980 2 }
981 1 else if((cursor >= AUTOCONFIG_YES && cursor <= AUTOCONFIG_NO) || (cursor >= RESET_YES && cursor <= RESET_
-NO))
982 1 {
983 2 PortDataOut((MainMenuCols+1)*((cursor & 0x0F)*2+5)+10, UPDATE_ATTR, colortempAttrData[select],8);
984 2 }
985 1 else if(cursor >= LANGUAGE_ENGLISH && cursor <= LANGUAGE_SCHINESE)
986 1 {
987 2 if((cursor & 0x01) == 0)
988 2 PortDataOut((MainMenuCols+1)*(cursor-LANGUAGE_ENGLISH+4)+4, UPDATE_ATTR, colortempAttrData[select],10);
989 2 else if((cursor & 0x01) == 1)
990 2 PortDataOut((MainMenuCols+1)*(cursor-LANGUAGE_DEUTSCH+4)+16, UPDATE_ATTR, colortempAttrData[select],10)
-;
991 2 }
992 1 #if WITH_AUDIO
993 1 else if(cursor == MAIN_EXIT)
994 1 {
995 2 PortDataOut((MainMenuCols+1)*6+3, UPDATE_ATTR, mainIconAttrData[select],3);
996 2 PortDataOut((MainMenuCols+1)*7+3, UPDATE_ATTR, mainIconAttrData[select],3);
997 2 }
998 1 #endif
999 1 }
1000
1001
1002 /***********************************
1003 * OSD position adjustment *
1004 ************************************/
1005 void adjSharpness(char delta,bit show)
1006 {
1007 1 int val;
1008 1 unsigned char temp;
1009 1
1010 1 val = eepData.sharpness + delta;
1011 1
1012 1 if (val >= MIN_sharpness && val <= MAX_sharpness)
1013 1 {
1014 2 eepData.sharpness = val;
1015 2
1016 2 temp = RegByteIn(0x59) & 0x0F;
1017 2 temp |= (eepData.sharpness<<4 & 0xF0);
1018 2 RegByteOut(0x59, temp); //coefficient R
1019 2 temp=eepData.sharpness<<4|eepData.sharpness;
1020 2 RegByteOut(0x5A, temp); //coefficient G
1021 2
1022 2 if (show)
C51 COMPILER V6.23a OSDCTRL 09/10/2004 16:09:03 PAGE 18
1023 2 {
1024 3 PortDataOut((MainMenuCols+1)*13+9, UPDATE_CODE, BarUpData, 12);
1025 3 PortDataOut((MainMenuCols+1)*14+8, UPDATE_CODE, DnData, 1);
1026 3 PortDataOut((MainMenuCols+1)*14+22, UPDATE_CODE, UpData, 1);
1027 3 PortDataOut((MainMenuCols+1)*15+9, UPDATE_CODE, BarDnData, 12);
1028 3 DisplayScrollBar((unsigned int)MAX_sharpness, val);
1029 3 PortDataOut((MainMenuCols+1)*14+9, UPDATE_CODE, buff, 12);
1030 3 converInt(val*100/MAX_sharpness);
1031 3 PortDataOut((MainMenuCols+1)*14+24, UPDATE_CODE, buff, 3);
1032 3
1033 3 }
1034 2 eepDataOut(EEPDATASTART+(&eepData.sharpness-&eepData),(unsigned char *)&eepData.sharpness, 1);
-
1035 2 }
1036 1 }
1037
1038
1039
1040 /***********************************
1041 * OSD position adjustment *
1042 ************************************/
1043 void adjOSDPosH(char delta,bit show)
1044 {
1045 1 ival = eepData.osdPosH + delta*5;
1046 1 if (eepData.osdPosH > MAX_osdPosH) eepData.osdPosH = MAX_osdPosH;
1047 1 if (eepData.osdPosH < MIN_osdPosH) eepData.osdPosH = MIN_osdPosH;
1048 1
1049 1 if (ival >= MIN_osdPosH && ival <= MAX_osdPosH)
1050 1 {
1051 2 eepData.osdPosH = ival;
1052 2
1053 2 ival = (ival-MIN_osdPosH) * (MAX_OSD_HPOS-MIN_OSD_HPOS);
1054 2 ival /= (MAX_osdPosH-MIN_osdPosH);
1055 2 ival += MIN_OSD_HPOS;
1056 2 OSDRegByteOut(OSDNEWFRAME_H_START, ival);
1057 2
1058 2 /* Trigger the double buffer */
1059 2 buff[0] = OSDRegByteIn(OSDNEWFRAME_V_HEIGHT);
1060 2 OSDRegByteOut(OSDNEWFRAME_V_HEIGHT, buff[0]);
1061 2
1062 2 if (show)
1063 2 {
1064 3 PortDataOut((MainMenuCols+1)*3+8, UPDATE_CODE, hposData[eepData.language], sizeof(hposData[0]) / sizeof
-(char));
1065 3 DisplayScrollBar((unsigned int)MAX_osdPosH, (unsigned int)eepData.osdPosH);
1066 3 PortDataOut((MainMenuCols+1)*4+7, UPDATE_CODE, buff, 16);
1067 3 if(AdjustFlag)
1068 3 // PortDataOut((MainMenuCols+1)*4+7,UPDATE_ATTR,ScrollBarAttrData[0], 16);
1069 3 SetOSDData((MainMenuCols+1)*4+7, UPDATE_ATTR, 0x36, 16);
1070 3 else
1071 3 // PortDataOut((MainMenuCols+1)*4+7,UPDATE_ATTR,ScrollBarAttrData[2], 16);
1072 3 SetOSDData((MainMenuCols+1)*4+7, UPDATE_ATTR, 0xD6, 16);
1073 3
1074 3 converInt((int) eepData.osdPosH);
1075 3 PortDataOut((MainMenuCols+1)*4+23, UPDATE_CODE, buff, 3);
1076 3 }
1077 2 eepDataOut(EEPDATASTART+(&eepData.osdPosH-&eepData),(unsigned char *)&eepData.osdPosH, 1);
1078 2 }
1079 1 }
1080
1081
1082 /***********************************
C51 COMPILER V6.23a OSDCTRL 09/10/2004 16:09:03 PAGE 19
1083 * OSD position adjustment *
1084 ************************************/
1085 void adjOSDPosV(char delta,bit show)
1086 {
1087 1 long lval;
1088 1
1089 1 ival1 = eepData.osdPosV + delta*5;
1090 1 if (eepData.osdPosV > MAX_osdPosV) eepData.osdPosV = MAX_osdPosV;
1091 1 if (eepData.osdPosV < MIN_osdPosV) eepData.osdPosV = MIN_osdPosV;
1092 1
1093 1 if (ival1 >= MIN_osdPosV && ival1 <= MAX_osdPosV)
1094 1 {
1095 2 eepData.osdPosV = ival1;
1096 2
1097 2 /* adjust OSD position */
1098 2 ival = MAX_osdPosV - ival1; // invert value
1099 2 lval = (long)ival * (MAX_OSD_VPOS - MIN_OSD_VPOS);
1100 2 ival = lval /(MAX_osdPosV - MIN_osdPosV);
1101 2 ival += MIN_OSD_VPOS;
1102 2 OSDRegByteOut(OSDNEWFRAME_V_START_LOW, (unsigned char) ival);
1103 2 OSDRegByteOut(OSDNEWFRAME_V_START_HIGH, (unsigned char) ((ival >> 8) & 0x07));
1104 2 /* Trigger the double buffer */
1105 2 buff[0] = OSDRegByteIn(OSDNEWFRAME_V_HEIGHT);
1106 2 OSDRegByteOut(OSDNEWFRAME_V_HEIGHT, buff[0]);
1107 2 if (show)
1108 2 {
1109 3 PortDataOut((MainMenuCols+1)*5+8, UPDATE_CODE, vposData[eepData.language], sizeof(vposData[0]) / sizeof
-(char));
1110 3 DisplayScrollBar((unsigned int)MAX_osdPosV, (unsigned int)eepData.osdPosV);
1111 3 PortDataOut((MainMenuCols+1)*6+7, UPDATE_CODE, buff, 16);
1112
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?