⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 useradj.c

📁 台湾联咏NT68663 LCD MONITOR 控制程序(完整版)
💻 C
📖 第 1 页 / 共 3 页
字号:
	//---Back light
	Write24C16(ep_BackLight,EEP_GeoMap[ep_BackLight-0x200]);	
	//---Audio Volume
	Write24C16(ep_Volume,EEP_GeoMap[ep_Volume-0x200]);	
	//---Color tempeture
	FuncBuf[pCOLORTEMP] = Read24C16(ep_Color_Ptr);
	//---Osd Timer
	FuncBuf[pOSDTIMER] = Read24C16(ep_Osd_Timer);
	//---Osd Position
	FuncBuf[pOSDHPOSITION] = Read24C16(ep_OsdH_Pos);
	//FuncBuf[pOSDVPOSITION] = Read24C16(ep_OsdV_Pos);
	//---Osd Effect
	FuncBuf[pTRANSOSD] = Read24C16(ep_Osd_Effect);
	//---Back light
	FuncBuf[pBACKLIGHT] = Read24C16(ep_BackLight);
	//---Audio Volume
	FuncBuf[pVOLUME] = Read24C16(ep_Volume);
	
	LoadColor(FuncBuf[pCOLORTEMP]);
	SetBrightness();
	SetContrast();
	SetOsdTrans();
	OsdPosition();
	SetInverter();
	SetAudioVolume();
	AudioMute = 0;
	SetAudioMute();
	AutoSetting = 1;
	Write24C16(ep_Status,StatusFlag);
//	Write24C16(ep_Language,EEP_GeoMap[ep_Language-0x200]);
}

void LoadModeIndependentSettings(void)
{
	Word Addr;
	FuncBuf[pBRIGHTNESS] = Read24C16(ep_Brightness);	//0xd0 = FuncBuf[pBRIGHTNESS]
//	if(FuncBuf[pVIDEOSOURCE] == 0)
		FuncBuf[pCONTRAST] = Read24C16(ep_Contrast);		//0xd1 = FuncBuf[pCONTRAST]
//	else
//		FuncBuf[pCONTRAST] = Read24C16(ep_DVI_Contrast);		//0xd1 = FuncBuf[pCONTRAST]
	if(FuncBuf[pVIDEOSOURCE] == 2){
		FuncBuf[pSATURATION] = Read24C16(ep_sRGB_Saturation);	//0xc8 = FuncBuf[pSATURATION]
		FuncBuf[pTINT] = Read24C16(ep_sRGB_Tint);			//0xc9 = FuncBuf[pTINT]
	}
	else{
		FuncBuf[pSATURATION] = 50;	//0xc8 = FuncBuf[pSATURATION]
		FuncBuf[pTINT] = 50;			//0xc9 = FuncBuf[pTINT]
	}
	FuncBuf[pOSDHPOSITION] = Read24C16(ep_OsdH_Pos);		//0xdd = osd position x
// Jacky 0201 removed
//	FuncBuf[pOSDVPOSITION] = Read24C16(ep_OsdV_Pos);		//0xdd = osd position y
	FuncBuf[pOSDTIMER] = Read24C16(ep_Osd_Timer);	//0xcf = osd timer
	FuncBuf[pLANGUAGE] = Read24C16(ep_Language);		//0xe0 = Language
	FuncBuf[pBACKLIGHT2] = Read24C16(ep_sRGB_Backlight);
	FuncBuf[pTRANSOSD] = Read24C16(ep_Osd_Effect);
	if(FuncBuf[pTRANSOSD] > 5)
		FuncBuf[pTRANSOSD] = 0;
	FuncBuf[pCOLORTEMP] = Read24C16(ep_Color_Ptr);
	if(FuncBuf[pCOLORTEMP] >= MAX_COLOR_TEMP)
		FuncBuf[pCOLORTEMP] = 0;
	Addr = FuncBuf[pCOLORTEMP] * 3 + ep_Color1_R;			//Select color temperature
	FuncBuf[pRCOLOR] = Read24C16(Addr++);
	FuncBuf[pGCOLOR] = Read24C16(Addr++);
	FuncBuf[pBCOLOR] = Read24C16(Addr);
	FuncBuf[pBACKLIGHT] = Read24C16(ep_BackLight);		//0xd5 = FuncBuf[pBACKLIGHT]
	FuncBuf[pVCMVOL] = Read24C16(ep_VCMVol);	//0x0f = vcom vol
	FuncBuf[pVOLUME] = Read24C16(ep_Volume);	//0xcf = volume
	FuncBuf[pContMax] = Read24C16(ep_ContMax);
	FuncBuf[pContMin] = Read24C16(ep_ContMin);
	FuncBuf[pBrigMax] = Read24C16(ep_BrigMax);
	FuncBuf[pBrigMin] = Read24C16(ep_BrigMin);

	FuncBuf[pLIGHTCONTRAST] = Read24C16(ep_Light_Contrast);
	FuncBuf[pLIGHTBRIGHT] = Read24C16(ep_Light_Bright);

	FuncBuf[pLIGHTHSTART] = Read24C16(ep_Light_HSMSB);
	FuncBuf[pLIGHTHSTART] <<= 8;
	FuncBuf[pLIGHTHSTART] |= Read24C16(ep_Light_HSLSB);
	FuncBuf[pLIGHTHWIDTH] = Read24C16(ep_Light_HWMSB);
	FuncBuf[pLIGHTHWIDTH] <<= 8;
	FuncBuf[pLIGHTHWIDTH] |= Read24C16(ep_Light_HWLSB);
	FuncBuf[pLIGHTVSTART] = Read24C16(ep_Light_VSMSB);
	FuncBuf[pLIGHTVSTART] <<= 8;
	FuncBuf[pLIGHTVSTART] |= Read24C16(ep_Light_VSLSB);
	FuncBuf[pLIGHTVHIGHT] = Read24C16(ep_Light_VHMSB);
	FuncBuf[pLIGHTVHIGHT] <<= 8;
	FuncBuf[pLIGHTVHIGHT] |= Read24C16(ep_Light_VHLSB);

	BackLightTimer = Read24C16(ep_BkLightTime_Offset+3);
	BackLightTimer <<= 8;
	BackLightTimer |= Read24C16(ep_BkLightTime_Offset+2);
	BackLightTimer <<= 8;
	BackLightTimer |= Read24C16(ep_BkLightTime_Offset+1);
	BackLightTimer <<= 8;
	BackLightTimer |= Read24C16(ep_BkLightTime_Offset);

}

void LoadColor(Word Ptr)
{
	Word Addr;
	Addr = Ptr * 3 + ep_Color1_R;			//Select color temperature
	FuncBuf[pRCOLOR] = Read24C16(Addr++);
	FuncBuf[pGCOLOR] = Read24C16(Addr++);
	FuncBuf[pBCOLOR] = Read24C16(Addr);
}

void LoadModeDependentSettings(void)
{
//	Sharp,V_BP,H_BP,H_Tatol,Phase
unsigned short addr;
	addr = ep_Sync_Data + (ModePoint * 8);
	FuncBuf[pSHARPNESS] = Read24C16(addr++);
	FuncBuf[pVPOSITION] = Read24C16(addr++);
	FuncBuf[pHPOSITION] = Read24C16(addr++);
	FuncBuf[pHPOSITION] <<= 8;
	FuncBuf[pHPOSITION] |= Read24C16(addr++);
	FuncBuf[pCLOCK] = Read24C16(addr++);
	FuncBuf[pCLOCK] <<= 8;
	FuncBuf[pCLOCK] |= Read24C16(addr++);
	addr++;
	FuncBuf[pPHASE] = Read24C16(addr);	
}

void SaveModeDependentSettings(void)
{
unsigned short addr;
	addr = ep_Shape_Offset + (ModePoint * 8);
	Write24C16(addr++,(Byte)FuncBuf[pSHARPNESS]);
	Write24C16(addr++,(Byte)FuncBuf[pVPOSITION]);
	Write24C16(addr++,(Byte)(FuncBuf[pHPOSITION] >> 8));
	Write24C16(addr++,(Byte)FuncBuf[pHPOSITION]);
	Write24C16(addr++,(Byte)(FuncBuf[pCLOCK] >> 8));
	Write24C16(addr++,(Byte)FuncBuf[pCLOCK]);
	addr++;
	Write24C16(addr,(Byte)FuncBuf[pPHASE]);	
}

void SaveData(void)
{
unsigned short addr;
	switch(SavePointer)
		{
		case pBRIGHTNESS:
			if(FuncBuf[pVIDEOSOURCE] < 3)
				//Write24C16(ep_BackLight,FuncBuf[pBACKLIGHT]);
				Write24C16(ep_Brightness,FuncBuf[pBRIGHTNESS]);
			//else
			//	Write24C16(ep_Video_Brightness,FuncBuf[pBRIGHTNESS]);
			break;
		case pCONTRAST:
			switch(FuncBuf[pVIDEOSOURCE])
				{
				case 0:
				case 1:
					Write24C16(ep_Contrast,(Byte)FuncBuf[pCONTRAST]);
					break;				
				//case 1:
				//	Write24C16(ep_DVI_Contrast,(Byte)FuncBuf[pCONTRAST]);
				//	break;				
				case 2:
				case 3:
					Write24C16(ep_Video_Contrast,(Byte)FuncBuf[pCONTRAST]);
					break;				
				};
			break;
		case pCLOCK:
			addr = ep_Clock_Offset + (ModePoint * 8);
			Write24C16(addr++,(Byte)(FuncBuf[pCLOCK] >> 8));
			Write24C16(addr,(Byte)FuncBuf[pCLOCK]);
			break;
		case pPHASE:
			addr = ep_Phase_Offset + (ModePoint * 8);
			Write24C16(addr,(Byte)FuncBuf[pPHASE]);
			break;
		case pHPOSITION:
			addr = ep_Hpos_Offset + (ModePoint * 8);
			Write24C16(addr++,(Byte)(FuncBuf[pHPOSITION] >> 8));
			Write24C16(addr,(Byte)FuncBuf[pHPOSITION]);
			break;
		case pVPOSITION:
			addr = ep_Vpos_Offset + (ModePoint * 8);
			Write24C16(addr,(Byte)FuncBuf[pVPOSITION]);
			break;
		case pRCOLOR:
			addr = FuncBuf[pCOLORTEMP] * 3 + ep_Color1_R;
			Write24C16(addr,(Byte)FuncBuf[pRCOLOR]);
			break;
		case pGCOLOR:
			addr = FuncBuf[pCOLORTEMP] * 3 + ep_Color1_G;
			Write24C16(addr,(Byte)FuncBuf[pGCOLOR]);
			break;
		case pBCOLOR:
			addr = FuncBuf[pCOLORTEMP] * 3 + ep_Color1_B;
			Write24C16(addr,(Byte)FuncBuf[pBCOLOR]);
			break;
		case pOSDHPOSITION:
			Write24C16(ep_OsdH_Pos,(Byte)FuncBuf[pOSDHPOSITION]);
			break;
// Jacky 0201 removed
//		case pOSDVPOSITION:
//			Write24C16(ep_OsdV_Pos,(Byte)FuncBuf[pOSDVPOSITION]);
//			break;
		case pOSDTIMER:
			Write24C16(ep_Osd_Timer,(Byte)FuncBuf[pOSDTIMER]);
			break;
		case pSATURATION:
			if(FuncBuf[pVIDEOSOURCE] < 3)
				Write24C16(ep_sRGB_Saturation,(Byte)FuncBuf[pSATURATION]);
			//else
			//	Write24C16(ep_Video_Saturation,(Byte)FuncBuf[pSATURATION]);
			break;
		case pTINT:
			if(FuncBuf[pVIDEOSOURCE] < 3)
				Write24C16(ep_sRGB_Tint,(Byte)FuncBuf[pTINT]);
			//else
			//	Write24C16(ep_Video_Tint,(Byte)FuncBuf[pTINT]);
			break;
		case pSHARPNESS:
			if(FuncBuf[pVIDEOSOURCE] < 3)
				{
				addr = ep_Shape_Offset + (ModePoint * 8);
				Write24C16(addr,(Byte)FuncBuf[pSHARPNESS]);
				}
			//else
			//	Write24C16(ep_Video_Shapness,(Byte)FuncBuf[pSHARPNESS]);
			break;
		case pBACKLIGHT:
			Write24C16(ep_BackLight,(Byte)FuncBuf[pBACKLIGHT]);
			break;
		case pLANGUAGE:
			Write24C16(ep_Language,FuncBuf[pLANGUAGE]);
//			if(FuncBuf[pLANGUAGE]== 5){
//				WriteSeqIndexPort(0xd0,tySRAM_1BIT,OneBitFontJP,45*27);
//				WriteSeqIndexPort(0x90,tySRAM_1BIT,OneBitFontJP2,7*27);
//			}
//			else if((FuncBuf[pLANGUAGE] == 7)||(FuncBuf[pLANGUAGE] == 8)){
//				WriteSeqIndexPort(0xd0,tySRAM_1BIT,OneBitFontCH2,48*27);
//				WriteSeqIndexPort(0x90,tySRAM_1BIT,OneBitFontCH3,6*27);
//			}
//			else
//				WriteSeqIndexPort(0x90,tySRAM_1BIT,OneBitFontPY,7*27);
			break;
		case pCOLORTEMP:
			Write24C16(ep_Color_Ptr,FuncBuf[pCOLORTEMP]);
			break;
		case pTRANSOSD:
			Write24C16(ep_Osd_Effect,FuncBuf[pTRANSOSD]);
			break;
		case pBACKLIGHT2:
			Write24C16(ep_sRGB_Backlight,FuncBuf[pBACKLIGHT2]);
			break;			
		case pVCMVOL:
			Write24C16(ep_VCMVol,(Byte)FuncBuf[pVCMVOL]);
			break;
		case pVOLUME:
			Write24C16(ep_Volume,(Byte)FuncBuf[pVOLUME]);
			break;
		case pRADC:
			if(FuncBuf[pVIDEOSOURCE] == 0)
				Write24C16(ep_ADC_R_Gain,FuncBuf[pRADC]);
			break;
		case pGADC:
			if(FuncBuf[pVIDEOSOURCE] == 0)
				Write24C16(ep_ADC_G_Gain,FuncBuf[pGADC]);
			break;
		case pBADC:
			if(FuncBuf[pVIDEOSOURCE] == 0)
				Write24C16(ep_ADC_B_Gain,FuncBuf[pBADC]);
			break;
		case pROFFSET:
			if(FuncBuf[pVIDEOSOURCE] == 0)
				Write24C16(ep_ADC_R_Offset,FuncBuf[pROFFSET]);
			else if(FuncBuf[pVIDEOSOURCE] == 2)
				Write24C16(ep_YPbPr_R_Offset,FuncBuf[pROFFSET]);
			break;
		case pGOFFSET:
			if(FuncBuf[pVIDEOSOURCE] == 0)
				Write24C16(ep_ADC_G_Offset,FuncBuf[pGOFFSET]);
			else if(FuncBuf[pVIDEOSOURCE] == 2)
				Write24C16(ep_YPbPr_G_Offset,FuncBuf[pGOFFSET]);
			break;
		case pBOFFSET:
			if(FuncBuf[pVIDEOSOURCE] == 0)
				Write24C16(ep_ADC_B_Offset,FuncBuf[pBOFFSET]);
			else if(FuncBuf[pVIDEOSOURCE] == 2)
				Write24C16(ep_YPbPr_B_Offset,FuncBuf[pBOFFSET]);
			break;
		case pContMax:
			Write24C16(ep_ContMax,FuncBuf[pContMax]);
			break;
		case pContMin:
			Write24C16(ep_ContMin,FuncBuf[pContMin]);
			break;
		case pBrigMax:
			Write24C16(ep_BrigMax,FuncBuf[pBrigMax]);
			break;
		case pBrigMin:
			Write24C16(ep_BrigMin,FuncBuf[pBrigMin]);
			break;
		case pLIGHTCONTRAST:
			Write24C16(ep_Light_Contrast,FuncBuf[pLIGHTCONTRAST]);
			break;
		case pLIGHTBRIGHT:
			Write24C16(ep_Light_Bright,FuncBuf[pLIGHTBRIGHT]);
			break;
		case pLIGHTHSTART:
			Write24C16(ep_Light_HSMSB,(Byte)(FuncBuf[pLIGHTHSTART] >> 8));
			Write24C16(ep_Light_HSLSB,(Byte)FuncBuf[pLIGHTHSTART]);
			break;
		case pLIGHTHWIDTH:
			Write24C16(ep_Light_HWMSB,(Byte)(FuncBuf[pLIGHTHWIDTH] >> 8));
			Write24C16(ep_Light_HWLSB,(Byte)FuncBuf[pLIGHTHWIDTH]);
			break;
		case pLIGHTVSTART:
			Write24C16(ep_Light_VSMSB,(Byte)(FuncBuf[pLIGHTVSTART] >> 8));
			Write24C16(ep_Light_VSLSB,(Byte)FuncBuf[pLIGHTVSTART]);
			break;
		case pLIGHTVHIGHT:
			Write24C16(ep_Light_VHMSB,(Byte)(FuncBuf[pLIGHTVHIGHT] >> 8));
			Write24C16(ep_Light_VHLSB,(Byte)FuncBuf[pLIGHTVHIGHT]);
			break;
		}
	#if PRINT_MESSAGE	
		printf("SavePointer = %x\r\n",(unsigned short)SavePointer);
	#endif
	SavePointer = 0xff;
}

void SetSource()
{
	if(FuncBuf[pVIDEOSOURCE] > 2 && !Saa7114En)
		FuncBuf[pVIDEOSOURCE] = 0;
	switch(FuncBuf[pVIDEOSOURCE])
		{
		case 0:
			SyncMode = 0;
			SourceSelect();
			break;
		case 1:
			SyncMode = 3;
			SourceSelect();
			break;
		case 2:
			SyncMode = 4;
			SourceSelect();
			break;
/*
		case 3:
		case 4:
			SourceSelect();
			break;
*/
		};
}

void MiscProcess(Bit DoAll)
{
	if((DDC_CTL0 & UPD_DDC) && !SaveDDC0)
		{
		SaveDDC0 = 1;
		DDCTimer = SAVE_DDC_TIME;
		}
	if((DDC_CTL1 & UPD_DDC) && !SaveDDC1)
		{
		SaveDDC1 = 1;
		DDCTimer = SAVE_DDC_TIME;
		}
	if(SaveDDC0 && DDCTimer == 0)
		SaveDDCData(0);
	if(SaveDDC1 && DDCTimer == 0)
		SaveDDCData(1);
	if(DoAll)
	{
		if(OsdTimer == 0 && OsdEnable && OutOfRange == 0 && FactMode == 0)
			Osd_Off();
		if(BurnInTimer == 0 && BurnInMode && NoSyncFlag){
			ShowBurnInPattern(0);
			//printf("Burn Test C.\n");
		}
		if(SavePointer != 0xff && SaveTimer == 0)	
			SaveData();
		if((BackLightTimer == 0) ||( ((BackLightTimer / 1800) >= 1)&&((BackLightTimer % 1800) < 60))){
			SaveBackLightTime();
		}
	}
}

void SaveBackLightTime(void)
{
	Write24C16(ep_BkLightTime_Offset+3,(Byte)(BackLightTimer >> 24));
	Write24C16(ep_BkLightTime_Offset+2,(Byte)(BackLightTimer >> 16));
	Write24C16(ep_BkLightTime_Offset+1,(Byte)(BackLightTimer >> 8));
	Write24C16(ep_BkLightTime_Offset,(Byte)(BackLightTimer));
}

void LoadPresetModeSettings(Byte type)
{
	Word addr;
	if(ModePoint < UserModeSt)
		addr = ModePoint * 8;
	else
		addr = UserModeRefReso * 8;

	switch(type)
	{
		case 0:
			FuncBuf[pPHASE] = EEP_SyncMap[addr+7];	
			FuncBuf[pCLOCK] = EEP_SyncMap[addr+4];
			FuncBuf[pCLOCK] <<= 8;
			FuncBuf[pCLOCK] |= EEP_SyncMap[addr+5];
		case 1:
			FuncBuf[pVPOSITION] = EEP_SyncMap[addr+1];
			FuncBuf[pHPOSITION] = EEP_SyncMap[addr+2];
			FuncBuf[pHPOSITION] <<= 8;
			FuncBuf[pHPOSITION] |= EEP_SyncMap[addr+3];
			break;
		case 2:
			FuncBuf[pCLOCK] = EEP_SyncMap[addr+4];
			FuncBuf[pCLOCK] <<= 8;
			FuncBuf[pCLOCK] |= EEP_SyncMap[addr+5];
			break;
		}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -