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

📄 osd.c

📁 NOVATEK公司的LCD_CONTROLLER源代码 液晶显示器驱动板源代码NT68521
💻 C
📖 第 1 页 / 共 4 页
字号:
		ShowColorTemperature();
		break;
	case R_GainNode:
	case G_GainNode:
	case B_GainNode:
		ClearText();
		ShowRGB();
		break;
	case LanguageNode:
		ClearText();
		ShowLanguage();
		break;
	case OSD_X_Node:
		ShowOSD_X();
		break;
	case OSD_Y_Node:
		ShowOSD_Y();
		break;
	case OSD_TimerNode:
		ShowOSD_Timer();
		break;
	case OSD_RotationNode:
		ClearText();
		if((OSD_Control & BIT_7) == 0)
			ShowNO_YES(0);
		else
			ShowNO_YES(1);
		break;
	case OSD_FlipNode:
		ClearText();
		if((OSD_Control & BIT_6) == 0)
			ShowNO_YES(0);
		else
			ShowNO_YES(1);
		break;
	case OSD_MirrorNode:
		ClearText();
		if((OSD_Control & BIT_5) == 0)
			ShowNO_YES(0);
		else
			ShowNO_YES(1);
		break;
	case SaturationNode:
		ShowSaturation();
		break;
	case TintNode:
		ShowTint();
		break;
	case RecallNode:
	case MisceNode:
	case ExitMainMenuNode:
	case ExitMisceMenuNode:
	case AutoColorNode:
		ClearText();
		ShowNO_YES(0);
		break;
	case SharpnessNode:
		ClearText();
		ShowSharpness();
		break;
	}
}

void ValueUp(void)
{
	if(OSD_Type == 0x00){
		if((flag1 & BIT_3) == 0){
			DirectVolume();
		}
	}
	else if(OSD_Type == 0x01){
		switch(OSD_Point2){
		case BrightnessNode:
			if((flag3 & BIT_0) == 0){
				InverterDown();
				SavePointer = InverterSaveFlag;
			}
			else{
				BrightnessUp();
				SavePointer = BrightnessSaveFlag;
			}
			break;
		case ContrastNode:
			ContrastUp();
			SavePointer = ContrastSaveFlag;
			break;
		case PhaseNode:
			PhaseUp();
			SavePointer = PhaseSaveFlag;
			break;
		case ClockNode:
			ClockUp();
			SavePointer = ClockSaveFlag;
			break;
		case HP_Node:
			HP_Down();
			SavePointer = HP_SaveFlag;
			break;
		case VP_Node:
			VP_Up();
			SavePointer = VP_SaveFlag;
			break;
		case RecallNode:
			ShowNO_YES(1);
			Recall();
			ShowNO_YES(0);
			Repeat = 0xff;
			break;
		case ColorTempNode:
			ColorTempUp();
			Repeat = 0xff;
			break;
		case R_GainNode:
			RGB_Up();
			SavePointer = R_GainSaveFlag;
			break;
		case G_GainNode:
			RGB_Up();
			SavePointer = G_GainSaveFlag;
			break;
		case B_GainNode:
			RGB_Up();
			SavePointer = B_GainSaveFlag;
			break;
		case LanguageNode:
			LanguageUp();
			Repeat = 0xff;
			break;
		case MisceNode:
			NodeToggle=0;
			ShowNO_YES(1);
			WaitSetup(100);
			UnselectIcon();
			OSD_Point1 = 1;
			OSD_Point2 = ExitMisceMenuNode;
			ShowMisceMenu();
			ShowSubMenu();
			Repeat = 0xff;
			break;
		case ExitMainMenuNode:
			ShowNO_YES(1);
			WaitSetup(100);
			OSD_OFF();
			Repeat = 0xff;
			break;
		case ExitMisceMenuNode:
			NodeToggle=0;
			ShowNO_YES(1);
			WaitSetup(100);
			UnselectIcon();
			OSD_Point1 = 0;
			OSD_Point2 = MisceNode;
			ShowMainMenu();
			ShowSubMenu();
			Repeat = 0xff;
			break;
		case OSD_X_Node:
			OSD_X_Up();
			SavePointer = OSD_X_SaveFlag;
			break;
		case OSD_Y_Node:
			OSD_Y_Up();
			SavePointer = OSD_Y_SaveFlag;
			break;
		case OSD_TimerNode:
			OSD_TimerUp();
			SavePointer = OSD_TimerSaveFlag;
			break;
		case OSD_RotationNode:
			OSD_Control |= BIT_7;
			WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
			SetPosition();
			ShowNO_YES(1);
			SavePointer = Osd_ControlSaveFlag;
			Repeat = 0xff;
			break;
		case OSD_FlipNode:
			OSD_Control |= BIT_6;
			WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
			ShowNO_YES(1);
			SavePointer = Osd_ControlSaveFlag;
			Repeat = 0xff;
			break;
		case OSD_MirrorNode:
			OSD_Control |= BIT_5;
			WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
			ShowNO_YES(1);
			SavePointer = Osd_ControlSaveFlag;
			Repeat = 0xff;
			break;
		case AutoColorNode:
			ShowNO_YES(1);
			AutoColor();
			ShowNO_YES(0);
			Repeat = 0xff;
			break;
		case SaturationNode:
			SaturationUp();
			SavePointer = SaturationSaveFlag;
			break;
		case TintNode:
			TintUp();
			SavePointer = TintSaveFlag;
			break;
		case SharpnessNode:
			SharpnessUp();
			SavePointer = SharpnessSaveFlag;
			break;
		default:
			Repeat = 0xff;
			break;
		}
	}
	else if(OSD_Type == 3){
		if(++Volume > 100){
			Volume = 100;
		}
		else{
			SetVolume();
			ShowVolume();
			SavePointer = VolumeSaveFlag;
		}
	}
	KeyBuffer = 0xff;
}

void ValueDown(void)
{
	if(OSD_Type == 0x00){
		if((flag1 & BIT_3) == 0){
			DirectVolume();
		}
	}
	else if(OSD_Type == 0x01){
		switch(OSD_Point2){
		case BrightnessNode:
			if((flag3 & BIT_0) == 0){
				InverterUp();
				SavePointer = InverterSaveFlag;
			}
			else{
				BrightnessDown();
				SavePointer = BrightnessSaveFlag;
			}
			break;
		case ContrastNode:
			ContrastDown();
			SavePointer = ContrastSaveFlag;
			break;
		case PhaseNode:
			PhaseDown();
			SavePointer = PhaseSaveFlag;
			break;
		case ClockNode:
			ClockDown();
			SavePointer = ClockSaveFlag;
			break;
		case HP_Node:
			HP_Up();
			SavePointer = HP_SaveFlag;
			break;
		case VP_Node:
			VP_Down();
			SavePointer = VP_SaveFlag;
			break;
		case ColorTempNode:
			ColorTempDown();
			break;
		case R_GainNode:
			RGB_Down();
			SavePointer = R_GainSaveFlag;
			break;
		case G_GainNode:
			RGB_Down();
			SavePointer = G_GainSaveFlag;
			break;
		case B_GainNode:
			RGB_Down();
			SavePointer = B_GainSaveFlag;
			break;
		case LanguageNode:
			LanguageDown();
			Repeat = 0xff;
			break;
		case OSD_X_Node:
			OSD_X_Down();
			SavePointer = OSD_X_SaveFlag;
			break;
		case OSD_Y_Node:
			OSD_Y_Down();
			SavePointer = OSD_Y_SaveFlag;
			break;
		case OSD_TimerNode:
			OSD_TimerDown();
			SavePointer = OSD_TimerSaveFlag;
			break;
		case OSD_RotationNode:
			OSD_Control &= ~BIT_7;
			WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
			SetPosition();
			ShowNO_YES(0);
			SavePointer = Osd_ControlSaveFlag;
			Repeat = 0xff;
			break;
		case OSD_FlipNode:
			OSD_Control &= ~BIT_6;
			WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
			ShowNO_YES(0);
			SavePointer = Osd_ControlSaveFlag;
			Repeat = 0xff;
			break;
		case OSD_MirrorNode:
			OSD_Control &= ~BIT_5;
			WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
			ShowNO_YES(0);
			SavePointer = Osd_ControlSaveFlag;
			Repeat = 0xff;
			break;
		case SaturationNode:
			SaturationDown();
			SavePointer = SaturationSaveFlag;
			break;
		case TintNode:
			TintDown();
			SavePointer = TintSaveFlag;
			break;
		case SharpnessNode:
			SharpnessDown();
			SavePointer = SharpnessSaveFlag;
			break;
		default:
			Repeat = 0xff;
			break;
		}
	}
	else if(OSD_Type == 3){
		if(--Volume > 100){
			Volume = 0;
		}
		else{
			SetVolume();
			ShowVolume();
			SavePointer = VolumeSaveFlag;
		}
	}
	KeyBuffer = 0xff;
}

void ShowInverter(void)
{
unsigned char value;
	value = 100 - Inverter;
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,value);
	ShowSliderBar(9,8,value);
}

void ShowBrightness(void)
{
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,Brightness);
	ShowSliderBar(9,8,Brightness);
}

void ShowContrast(void)
{
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,Contrast);
	ShowSliderBar(9,8,Contrast);
}

void ShowClock(void)
{
unsigned char Clock;
	Clock = (unsigned short)(HTotal - Clk_Min) * 100 / (Clk_Max - Clk_Min);
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,Clock);
	ShowSliderBar(9,8,Clock);
}

void ShowPhase(void)
{
unsigned char Phase;
	Phase = (unsigned short)ADC_Phase * 100 / 63;
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,Phase);
	ShowSliderBar(9,8,Phase);
}

void ShowHP(void)
{
unsigned char Position;
	Position = (unsigned short)(HP_Start - HP_Min) * 100 / (HP_Max - HP_Min);
	Position = 100 - Position;
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,Position);
	ShowSliderBar(9,8,Position);
}

void ShowVP(void)
{
unsigned char Position;
	Position = (unsigned short)VP_Start * 100 / VP_Max;
//	Position = 100 - Position;
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,Position);
	ShowSliderBar(9,8,Position);
}


void ShowSaturation(void)
{
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,Saturation);
	ShowSliderBar(9,8,Saturation);
}

void ShowTint(void)
{
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,Tint);
	ShowSliderBar(9,8,Tint);
}

void ShowSharpness(void)
{
unsigned char value;
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	value = (unsigned short)Sharpness * 100 / 7;
	ShowValue(1,value);
	ShowSliderBar(9,8,value);
}

void ShowVolume(void)
{
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowNum(1,15,3,Volume);
	ShowSliderBar(6,2,Volume);
}

void ShowNO_YES(unsigned char i)
{
code unsigned char String10[]={
	5,22,8,"YES"
};
code unsigned char String20[]={
	5,22,8,"OUI"
};
code unsigned char String30[]={
	4,22,8,"JA"
};
code unsigned char String40[]={
	4,22,8,"Sd"
};
code unsigned char String50[]={
	4,22,8,"Sg"
};
code unsigned char String60[]={
	4,22,8,"JA"
};
code unsigned char String70[]={
	5,22,8,"SIM"
};
code unsigned char String80[]={
	3,22,8,0x97
};
code unsigned char *Tab1[]={
	String10,String20,String30,String40,String50,String60,String70,String80
};
code unsigned char String11[]={
	4,12,8,"NO"
};
code unsigned char String21[]={
	5,12,8,"NON"
};
code unsigned char String31[]={
	6,12,8,"NEIN"
};
code unsigned char String41[]={
	4,12,8,"NO"
};
code unsigned char String51[]={
	4,12,8,"NO"
};
code unsigned char String61[]={
	5,12,8,"NEE"
};
code unsigned char String71[]={
	5,12,8,"N^O"
};
code unsigned char String81[]={
	3,12,8,0x98
};
code unsigned char *Tab2[]={
	String11,String21,String31,String41,String51,String61,String71,String81
};
	if(i == 0)
		WriteWordIIC_HW(Scaler_Addr,0xcc,TextSelColor);
	else
		WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	WriteStringScaler(1,Tab2[Language]);
	if(i != 0)
		WriteWordIIC_HW(Scaler_Addr,0xcc,TextSelColor);
	else
		WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	WriteStringScaler(1,Tab1[Language]);
}

void ShowOSD_X(void)
{
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,OSD_X);
	ShowSliderBar(9,8,OSD_X);
}

void ShowOSD_Y(void)
{
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,OSD_Y);
	ShowSliderBar(9,8,OSD_Y);
}

void ShowOSD_Timer(void)
{
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	ShowValue(1,OSD_Timer);
	ShowSliderBar(9,8,OSD_Timer);
}

void ShowColorTemperature(void)
{
code unsigned char String10[]={
	4,"USER"
};
code unsigned char String11[]={
	11,"UTILISATEUR"
};
code unsigned char String12[]={
	18,"ANWENDERSPEZIFISCH"
};
code unsigned char String13[]={
	7,"USUARIO"
};
code unsigned char String14[]={
	6,"UTENTE"
};
code unsigned char String15[]={
	9,"GEBRUIKER"
};
code unsigned char String16[]={
	10,"UTILIZADOR"
};
code unsigned char String17[]={
	4,0xa0,0xa1,0xa2,0xa3
};
code unsigned char String20[]={
	5,"6500$"
};
code unsigned char String30[]={
	5,"7500$"
};
code unsigned char String40[]={
	5,"9300$"
};
code unsigned char *Tab1[]={
	String10,String20,String30,String40,
	String11,String20,String30,String40,
	String12,String20,String30,String40,
	String13,String20,String30,String40,
	String14,String20,String30,String40,
	String15,String20,String30,String40,
	String16,String20,String30,String40,
	String17,String20,String30,String40
};
unsigned char i,j,k;
	k = Read24C16(0xe1);
	j = 4 * Language;
	for(i=0; i<4; i++){
		if(i == k)
			WriteWordIIC_HW(Scaler_Addr,0xcc,TextSelColor);
		else
			WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
		WriteXY_CStrScaler(1,7,i+6,23,Tab1[j+i]);
	}
//osd on
	OSD_Control |= BIT_0;
	WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
}

void ShowLanguage(void)
{
code unsigned char String1[]={
	7,"ENGLISH"
};
code unsigned char String2[]={
	8,"FRAN=AIS"
};
code unsigned char String3[]={
	7,"DEUTSCH"
};
code unsigned char String4[]={
	7,"ESPA@OL"
};
code unsigned char String5[]={
	8,"ITALIANO"
};
code unsigned char String6[]={
	10,"NEDERLANDS"
};
code unsigned char String7[]={
	9,"PORTUGUbS"
};
code unsigned char String8[]={
	2,0x20,0x20
};
code unsigned char *Tab1[]={

⌨️ 快捷键说明

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