📄 osd.i
字号:
break; case B_GainNode: value = B_Gain; break; } WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); ShowValue(1,value); ShowSliderBar(9,8,value); } void ClearText(void) { unsigned char i; WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); for(i=5; i<11; i++){ WriteXY_StrScaler(1,7,i,SpaceLine23); } } void ShowOutOfRange(void) { code unsigned char String1[]={ 12,"OUT OF RANGE" }; code unsigned char String2[]={ 21,"EN DEHORS DE LA PLAGE" }; code unsigned char String3[]={ 17,"AUSSER REICHWEITE" }; code unsigned char String4[]={ 14,"FUERA DE RANGO" }; code unsigned char String5[]={ 11,"FUORI GAMMA" }; code unsigned char String6[]={ 13,"BUITEN BEREIK" }; code unsigned char String7[]={ 17,"FORA DO INTERVALO" }; code unsigned char String8[]={ 4,0x99,0x9a,0x9b,0x9c }; code unsigned char *Tab1[]={ String1,String2,String3,String4,String5,String6,String7,String8 }; if((flag2 & 0x08) == 0){ OSD_Type = 5; Osd4Init(); WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4)) | 0x01); WriteXY_CStrScaler(1,2,2,27,Tab1[Language]); OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); AUDIO_MUTE(); flag2 |= 0x08; if((flag3 & 0x04) != 0x00) printf("Out of range\r\n"); } else{ SetMovePosition(); } PoSvTimer = 500; } void ShowNoSync(void) { code unsigned char String1[]={ 15,"NO INPUT SIGNAL" }; code unsigned char String2[]={ 21,"PAS DE SIGNAL DENTR`E" }; code unsigned char String3[]={ 19,"KEIN EINGANGSSIGNAL" }; code unsigned char String4[]={ 23,"NO HAY SE@AL DE ENTRADA" }; code unsigned char String5[]={ 26,"NESSUN SEGNALE IN INGRESSO" }; code unsigned char String6[]={ 19,"GEEN INGANGSSIGNAAL" }; code unsigned char String7[]={ 20,"SEM SINAL DE ENTRADA" }; code unsigned char String8[]={ 6,0x99,0x9a,0x9b,0x9c,0x9d,0x9e }; code unsigned char *Tab1[]={ String1,String2,String3,String4,String5,String6,String7,String8 }; OSD_Type = 4; Osd4Init(); WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4)) | 0x01); WriteXY_CStrScaler(1,2,2,27,Tab1[Language]); OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); if((flag3 & 0x04) != 0x00) printf("No input signal\r\n"); } void ShowDisconnector(void) { code unsigned char String1[]={ 12,"DISCONNECTOR" }; code unsigned char String2[]={ 21,"PAS DE SIGNAL DENTR`E" }; code unsigned char String3[]={ 19,"KEIN EINGANGSSIGNAL" }; code unsigned char String4[]={ 23,"NO HAY SE@AL DE ENTRADA" }; code unsigned char String5[]={ 26,"NESSUN SEGNALE IN INGRESSO" }; code unsigned char String6[]={ 19,"GEEN INGANGSSIGNAAL" }; code unsigned char String7[]={ 20,"SEM SINAL DE ENTRADA" }; code unsigned char String8[]={ 6,0x99,0x9a,0x9b,0x9c,0x9d,0x9e }; code unsigned char *Tab1[]={ String1,String2,String3,String4,String5,String6,String7,String8 }; if((flag2 & 0x04) == 0){ OSD_Type = 4; Osd4Init(); WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4)) | 0x01); WriteXY_CStrScaler(1,2,2,27,Tab1[Language]); OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); AUDIO_MUTE(); flag2 |= 0x04; if((flag3 & 0x04) != 0x00) printf("DISCONNECTOR\r\n"); } else{ SetMovePosition(); } } void SetMovePosition(void) { unsigned short xy; if(MoveX < 0x8000){ if(++MoveX > 150){ MoveX |= 0x8000; } } else{ if(--MoveX == 0x7fff){ MoveX = 1; } } if(MoveY < 0x8000){ if(++MoveY > 154){ MoveY |= 0x8000; } } else{ if(--MoveY == 0x7fff){ MoveY = 1; } } xy = (MoveX & 0x7fff) * 6; WriteWordIIC_HW(0xB0,0x96,xy); if((flag3 & 0x04) != 0x00) printf("OSD X = %d\r\n",xy); xy = (MoveY & 0x7fff) * 6; WriteWordIIC_HW(0xB0,0x99,xy); WriteIIC_HW(0xB0,0x98,32-1); WriteIIC_HW(0xB0,0x9b,5-1); if((flag3 & 0x04) != 0x00) printf("OSD Y = %d\r\n",xy); } void SaveData(void) { unsigned short addr; switch(SavePointer){ case BrightnessSaveFlag: if(PowerStatus == 0x80) Write24C16(0xd0,Brightness); else if(PowerStatus > 0x80) Write24C16(0xd6,Brightness); break; case ContrastSaveFlag: if(PowerStatus == 0x80) Write24C16(0xd1,Contrast); else if(PowerStatus > 0x80) Write24C16(0xd7,Contrast); break; case ClockSaveFlag: addr = 0x104 + (ModePoint * 8); Write24C16(addr,(unsigned char)(HTotal >> 8)); addr++; Write24C16(addr,(unsigned char)HTotal); break; case PhaseSaveFlag: addr = 0x107 + (ModePoint * 8); Write24C16(addr,ADC_Phase); break; case HP_SaveFlag: addr = 0x102 + (ModePoint * 8); Write24C16(addr,(unsigned char)(HP_Start >> 8)); addr++; Write24C16(addr,(unsigned char)HP_Start); break; case VP_SaveFlag: addr = 0x101 + (ModePoint * 8); Write24C16(addr,(unsigned char)VP_Start); break; case R_GainSaveFlag: addr = Read24C16(0xe1); addr = ColorTab[addr]; addr = addr * 3 + 0xee; Write24C16(addr,R_Gain); break; case G_GainSaveFlag: addr = Read24C16(0xe1); addr = ColorTab[addr]; addr = addr * 3 + 0xef; Write24C16(addr,G_Gain); break; case B_GainSaveFlag: addr = Read24C16(0xe1); addr = ColorTab[addr]; addr = addr * 3 + 0xf0; Write24C16(addr,B_Gain); break; case VolumeSaveFlag: Write24C16(0xd4,Volume); break; case OSD_X_SaveFlag: Write24C16(0xdd,OSD_X); break; case OSD_Y_SaveFlag: Write24C16(0xde,OSD_Y); break; case OSD_TimerSaveFlag: Write24C16(0xcf,OSD_Timer); break; case SaturationSaveFlag: if(PowerStatus == 0x80) Write24C16(0xc8,Saturation); else if(PowerStatus > 0x80) Write24C16(0xd8,Saturation); break; case TintSaveFlag: if(PowerStatus == 0x80) Write24C16(0xc9,Tint); else if(PowerStatus > 0x80) Write24C16(0xd9,Tint); break; case SharpnessSaveFlag: if(PowerStatus == 0x80){ Write24C16(0xca,Sharpness); } else{ Write24C16(0xda,Sharpness); } break; case InverterSaveFlag: Write24C16(0xd5,Inverter); break; case Osd_ControlSaveFlag: Write24C16(0xce,(OSD_Control & ~0x01)); break; } if((flag3 & 0x04) != 0x00) printf("SavePointer = %x\r\n",(unsigned short)SavePointer); SavePointer = NotSaveSaveFlag; } void ShowAutoAdj(void) { code unsigned char AutoAdjStr1[]={ 14,"AUTO ADJUSTING" }; code unsigned char AutoAdjStr2[]={ 22,"AJUSTEMENT AUTOMATIQUE" }; code unsigned char AutoAdjStr3[]={ 24,"AUTOMATISCHE EINSTELLUNG" }; code unsigned char AutoAdjStr4[]={ 17,"AJUSTE AUTOM[TICO" }; code unsigned char AutoAdjStr5[]={ 22,"REGOLAZIONE AUTOMATICA" }; code unsigned char AutoAdjStr6[]={ 23,"AUTOMATISCHE INSTELLING" }; code unsigned char AutoAdjStr7[]={ 17,"AJUSTE AUTOM[TICO" }; code unsigned char AutoAdjStr8[]={ 4,0x99,0x9a,0x9b,0x9c }; code unsigned char *Tab1[]={ AutoAdjStr1,AutoAdjStr2,AutoAdjStr3,AutoAdjStr4,AutoAdjStr5,AutoAdjStr6,AutoAdjStr7,AutoAdjStr8 }; OSD_Type = 4; Osd4Init(); WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4)) | 0x01); WriteXY_CStrScaler(1,2,2,27,Tab1[Language]); OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); if((flag3 & 0x04) != 0x00) printf("Auto Adjust\r\n"); } void DirectVolume(void) { code unsigned char VolumeStr1[]={ 6,"VOLUME" }; code unsigned char VolumeStr2[]={ 6,"VOLUME" }; code unsigned char VolumeStr3[]={ 7,"VOLUMEN" }; code unsigned char VolumeStr4[]={ 7,"VOLUMEN" }; code unsigned char VolumeStr5[]={ 6,"VOLUME" }; code unsigned char VolumeStr6[]={ 6,"VOLUME" }; code unsigned char VolumeStr7[]={ 6,"VOLUME" }; code unsigned char VolumeStr8[]={ 4,0x99,0x9a,0x9b,0x9c }; code unsigned char *Tab1[]={ VolumeStr1,VolumeStr2,VolumeStr3,VolumeStr4,VolumeStr5,VolumeStr6,VolumeStr7,VolumeStr8 }; OSD_Type = 3; Osd4Init(); WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(5<<4))); WriteXY_CStrScaler(1,13,1,8,Tab1[Language]); ShowVolume(); OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); } void WriteSequenceScaler(unsigned char addr,unsigned char *p) { unsigned short i,l; INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(addr); l = p[1] * 256; l = l + p[0] + 2; for(i=2; i<l; i++){ MasterSendByte(p[i]); } WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void WriteStringScaler(unsigned char Attr,unsigned char *p) { unsigned char i,l,ch; unsigned short m; INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); if(Attr == 0) MasterSendByte(0x40); else MasterSendByte(0x90); if(OSD_Type < 2) m = p[2] * 32 + p[1]; else m = p[2] * 32 + p[1]; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); l = p[0] + 1; for(i=3; i<l; i++){ ch = p[i]; MasterSendByte(ch); } WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void WriteXY_StrScaler(unsigned char Attr,unsigned char x,unsigned char y,unsigned char *p) { unsigned char i,l,ch; unsigned short m; INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); if(Attr == 0) MasterSendByte(0x40); else MasterSendByte(0x90); if(OSD_Type < 2) m = y * 32 + x; else m = y * 32 + x; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); l = p[0] + 1; for(i=1; i<l; i++){ ch = p[i]; MasterSendByte(ch); } WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void WriteXY_CStrScaler(unsigned char Attr,unsigned char x,unsigned char y,unsigned char w,unsigned char *p) { unsigned char i,l,ch; unsigned short m; INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); if(Attr == 0) MasterSendByte(0x40); else MasterSendByte(0x90); if(OSD_Type < 2) m = y * 32 + x; else m = y * 32 + x; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); i = w - p[0]; i >>= 1; l = p[0] + i; i++; w ++; ch = 1; for(m=1; m<w; m++){ if((m < i)||(m > l)){ MasterSendByte(' '); } else{ MasterSendByte(p[ch]); ch++; } } WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void FillLineAttr(unsigned char x,unsigned char y,unsigned char l,unsigned short Attr) { unsigned char i,ch; unsigned short m; INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); MasterSendByte(0x70); if(OSD_Type < 2) m = y * 32 + x; else m = y * 32 + x; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); ch = (unsigned char)(Attr>>8); for(i=0; i<l; i++){ MasterSendByte((unsigned char)Attr); MasterSendByte(ch); } WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void ShowNum(unsigned char Attr,unsigned char xx,unsigned char yy,unsigned char value) { unsigned char i,ch; unsigned short m; unsigned char buff[3]; sprintf(buff,"%3d",(unsigned short)value); INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); if(Attr == 0) MasterSendByte(0x40); else MasterSendByte(0x90); m = yy * 32 + xx; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); for(i=0; i<3; i++){ ch = buff[i]; MasterSendByte(ch); } WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void ShowValue(unsigned char Attr,unsigned char value) { unsigned char i,ch; unsigned short m; unsigned char buff[3]; sprintf(buff,"%3d",(unsigned short)value); INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); if(Attr == 0) MasterSendByte(0x40); else MasterSendByte(0x90); if(OSD_Type < 6) m = 7 * 32 + 23; else if(OSD_Type == 6) m = 5; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); for(i=0; i<3; i++){ ch = buff[i]; MasterSendByte(ch); } if(OSD_Point2 == 17) MasterSendByte(' '); else MasterSendByte('%'); WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void ShowSliderBar(unsigned char xx,unsigned char yy,unsigned char value) { unsigned char i,k; unsigned short m; INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); MasterSendByte(0x90); m = (unsigned short)yy * 32 + xx; i = (unsigned char)m; MasterSendByte(i); i = (unsigned char)(m >> 8); MasterSendByte(i); MasterSendByte('-'); MasterSendByte(0x73); m = value * 16; k = m / 100; for(i=0; i<k; i++){ MasterSendByte(0x78); } if(i < 16){ k = (m % 100) / 20; switch(k){ case 0: MasterSendByte(0x74); break; case 1: MasterSendByte(0x75); break; case 2: MasterSendByte(0x76); break; case 3: MasterSendByte(0x77); break; case 4: MasterSendByte(0x78); break; } i++; for(i; i<16; i++){ MasterSendByte(0x74); } } MasterSendByte(0x79); MasterSendByte('+'); WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void ShowFreq(void) { unsigned char i,ch; unsigned char buff[4]; unsigned short m; sprintf(buff,"%4d",H_SYNC); if((flag3 & 0x01) == 0) WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(4<<4))); else WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(2<<4))); INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); MasterSendByte(0x90); m = 13 * 32 + 9; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); MasterSendByte('H'); ch = buff[0]; if(ch != 0x20){ MasterSendByte(ch); } for(i=1; i<3; i++){ ch = buff[i]; MasterSendByte(ch); } MasterSendByte('.'); ch = buff[i]; MasterSendByte(ch); MasterSendByte('K'); MasterSendByte('H'); MasterSendByte('Z'); MasterSendByte(' '); MasterSendByte(' '); MasterSendByte('V'); WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); sprintf(buff,"%4d",V_SYNC); INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); MasterSendByte(0x90); m = 13 * 32 + 20; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); ch = buff[0]; if(ch != 0x20){ MasterSendByte(ch); } for(i=1; i<3; i++){ ch = buff[i]; MasterSendByte(ch); } MasterSendByte('.'); ch = buff[i]; MasterSendByte(ch); MasterSendByte('H'); MasterSendByte('Z'); WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void ShowResolution(void) { unsigned char i,ch,k; unsigned short m; unsigned char buff[4]; m = 0x106 + (ModePoint * 8); k = Read24C16(m); if((k == 0)||(k == 2)) sprintf(buff,"%4d",H_ActiveTab[k]/2); else sprintf(buff,"%4d",H_ActiveTab[k]); if((flag3 & 0x01) == 0) WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(4<<4))); else WriteWordIIC_HW(0xB0,0xcc,(((11-1)<<8)|(2<<4))); INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); MasterSendByte(0x90); m = 12 * 32 + 14; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); for(i=0; i<4; i++){ ch = buff[i]; MasterSendByte(ch); } MasterSendByte(0x58); WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); sprintf(buff,"%4d",V_ActiveTab[k]); INTIIC1_FLG = 0xff; IIC1_DATA = 0xB0; IIC1_CLK = 0x20 | IIC_BaudRate; IIC1_CON = 0x00; MasterSendByte(0xe0); MasterSendByte(0x90); m = 12 * 32 + 19; ch = (unsigned char)m; MasterSendByte(ch); ch = (unsigned char)(m >> 8); MasterSendByte(ch); if(buff[0] != 0x20){ ch = buff[0]; MasterSendByte(ch); } for(i=1; i<4; i++){ ch = buff[i]; MasterSendByte(ch); } if(buff[0] == 0x20){ MasterSendByte(0x20); } WaitTx(); IIC1_CLK = 0xA0|IIC_BaudRate; WaitStop(); } void UnselectIcon(void) { unsigned char k; if(OSD_Point1 == 0){ k = OSD_Point2 << 1; if(MainIconColor[OSD_Point2] == 1){ if(OSD_Point2 == 8){ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((1-1)<<8)|(4<<4))); } else if(OSD_Point2 == 9){ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((2-1)<<8)|(4<<4))); } else if(OSD_Point2 == 10){ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((3-1)<<8)|(4<<4))); } else{ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((0-1)<<8)|(4<<4))); } } else{ FillLineAttr(IconPosition[k],IconPosition[k+1],2,((4<<4)|0x0c)); } } else{ k = (OSD_Point2-14) << 1; if(MainIconColor[OSD_Point2] == 1){ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((0-1)<<8)|(4<<4))); } else{ FillLineAttr(IconPosition[k],IconPosition[k+1],2,((4<<4)|0x0c)); } } } void ShowInputSource(void) { unsigned char i; OSD_Type = 6; Osd3Init(); i = PowerStatus & ~0x80; if(i == 3){ if(Read24C16(0xe3) != 0) i = 4; } WriteWordIIC_HW(0xB0,0xcc,(((2-1)<<8)|(0<<4))); WriteXY_StrScaler(1,0,0,SourceTab[i]); OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); Timer2 = 300; } void VideoMenu(void) { switch(OSD_Type){ case 0x00: SavePointer = NotSaveSaveFlag; OsdInit(); OSD_Type = 1; OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); if((flag3 & 0x04) != 0x00) printf("OSD ON\r\n"); break; case 0x01: SaveData(); VideoUnSelectIcon(); if(OSD_Point1 == 0){ if(++OSD_Point2 > 10){ OSD_Point2 = 0; } } ShowVideoSubMenu(); break; default: OSD_OFF(); OsdInit(); OSD_Type = 1; OSD_Control |= 0x01; WriteIIC_HW(0xB0,0x95,OSD_Control); break; } KeyBuffer = 0xff; } void VideoSelectItem(void) { SaveData(); VideoUnSelectIcon(); if(OSD_Point1 == 0){ if(--OSD_Point2 > 10){ OSD_Point2 = 10; } } ShowVideoSubMenu(); } void ShowVideoMenu(void) { code unsigned char VideoIcon[][5]={ 4,1,1,0x00,0x01, 4,1,3,0x18,0x19, 4,1,5,0x24,0x25, 4,1,7,0x26,0x27, 4,1,9,0x28,0x29, 4,1,11,0x0e,0x0f, 4,1,13,0x0a,0x0b, 4,4,1,0x16,0x17, 4,4,3,0x18,0x19, 4,4,5,0x1a,0x1b, 4,4,7,0x12,0x13, 4,4,9,0x20,0x20, 4,4,11,0x20,0x20, 4,4,13,0x20,0x20, }; unsigned char i; for(i=0; i<14; i++){ if(VideoIconColor[i] == 1){ WriteWordIIC_HW(0xB0,0xcc,(((0-1)<<8)|(4<<4))); } else{ WriteWordIIC_HW(0xB0,0xcc,((4<<4)|0x0c)); } WriteStringScaler(1,VideoIcon[i]); } } void VideoUnSelectIcon(void) { unsigned char k; if(OSD_Point1 == 0){ k = OSD_Point2 << 1; } else{ k = (OSD_Point2-14) << 1; } if(VideoIconColor[OSD_Point2] == 1){ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((0-1)<<8)|(4<<4))); } else{ FillLineAttr(IconPosition[k],IconPosition[k+1],2,((4<<4)|0x0c)); } } void ShowVideoSubMenu(void) { unsigned char k; if(OSD_Point1 == 0){ k = OSD_Point2 << 1; } else{ k = (OSD_Point2-14) << 1; } if(VideoIconColor[OSD_Point2] == 1){ FillLineAttr(IconPosition[k],IconPosition[k+1],2,(((0-1)<<8)|(6<<4))); } else{ FillLineAttr(IconPosition[k],IconPosition[k+1],2,((6<<4)|0x0c))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -