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

📄 osd.c

📁 NT68521源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
	if(OSD_Type == 3)
		m = (unsigned short)yy * (OSD_WIDTH-2) + xx;
	else
		m = (unsigned short)yy * OSD_WIDTH + xx;
	i = (unsigned char)m;
	MasterSendByte(i);
	i = (unsigned char)(m >> 8);
	MasterSendByte(i);
	MasterSendByte('-');
	MasterSendByte(144);
	m = value * BarWidth;
	k = m / 100;
	for(i=0; i<k; i++){
		MasterSendByte(149);
	}
	if(i < BarWidth){
		k = (m % 100) / 20;
		switch(k){
		case 0:
			MasterSendByte(145);
			break;
		case 1:
			MasterSendByte(146);
			break;
		case 2:
			MasterSendByte(147);
			break;
		case 3:
			MasterSendByte(148);
			break;
		case 4:
			MasterSendByte(149);
			break;	
		}
		i++;
		for(i; i<BarWidth; i++){
			MasterSendByte(145);
		}
	}
	MasterSendByte(150);
	MasterSendByte('+');
/* transmit dumy data for stop bit */
	WaitTx();
/* stop bit */
	IIC1_CLK = 0xA0|IIC_BaudRate;
//	IIC1_CON = 0x00;
	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,RedColor);
			}
			else if(OSD_Point2 == 9){
				FillLineAttr(IconPosition[k],IconPosition[k+1],2,GreenColor);
			}
			else if(OSD_Point2 == 10){
				FillLineAttr(IconPosition[k],IconPosition[k+1],2,BlueColor);
			}
			else{
				FillLineAttr(IconPosition[k],IconPosition[k+1],2,FrameColor);
			}
		}
		else{
			FillLineAttr(IconPosition[k],IconPosition[k+1],2,FrameMColor);
		}
	}
	else
	{
		k = (OSD_Point2-13) << 1;  //gan,14 to 13
		if(MainIconColor[OSD_Point2+1] == 1){
			FillLineAttr(IconPosition[k],IconPosition[k+1],2,FrameColor);
		}
		else{
			FillLineAttr(IconPosition[k],IconPosition[k+1],2,FrameMColor);
		}
	}
}

void ShowInputSource(void)
{
unsigned char i;
	OSD_Type = 6;
	Osd3Init();
	i = PowerStatus & ~BIT_7;
//	if(i == 3){
//		if(Read24C16(0xe3) != 0)
//			i = 4;
//	}
	WriteWordIIC_HW(Scaler_Addr,0xcc,ChannelColor);
	WriteXY_StrScaler(1,0,0,SourceTab[i]);
	WriteXY_StrScaler(1,8,0,SourceTab[4]);
	OSD_Control |= BIT_0;
	WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
	Timer2 = 300;
}

void VideoMenu(void)
{
	if(MuteFlag)
	{
		MuteFlag = 0;
		if(Volume != 0)	{ AUDIO_On();}   //CANCEL AUDIO MUTE
		flag3 &= ~BIT_4;
		OSD_OFF();
	}
	switch(OSD_Type){
	case 0x00:
		SavePointer = 0;
		OsdInit();
		OSD_Type = 1;
//osd on
		OSD_Control |= BIT_0;
		WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
		if((flag3 & BIT_2) != 0x00)
			printf("OSD ON\r\n");
		break;
	default:
		OSD_OFF();
		OsdInit();
		OSD_Type = 1;
//osd on
		OSD_Control |= BIT_0;
		WriteIIC_HW(Scaler_Addr,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,3,0,0x00,0x01,
	4,8,0,0x18,0x19,
	4,13,0,0x24,0x25,
	4,18,0,0x26,0x27,

	4,22,2,0x28,0x29,
	4,22,4,0x0a,0x0b,

	4,18,6,0x16,0x17,
	4,13,6,0x18,0x19,
	4,8,6,0x1a,0x1b,
	4,3,6,0x14,0x15,   //gan,TV-SEARCH

	4,0,4,0x12,0x13,
	4,0,2,0x20,0x20,
};

unsigned char i;
	for(i=0; i<12; i++)
	{
		if(VideoIconColor[i] == 1){
			WriteWordIIC_HW(Scaler_Addr,0xcc,FrameColor);
		}
		else
		{
			WriteWordIIC_HW(Scaler_Addr,0xcc,FrameMColor);
		}
		WriteStringScaler(1,VideoIcon[i]);
	}
}

void VideoUnSelectIcon(void)
{
unsigned char k;
//Icon
	if(OSD_Point1 == 0){
		k = OSD_Point2 << 1;
	}
	else{
		k = (OSD_Point2-14) << 1;
	}
	if(VideoIconColor[OSD_Point2] == 1){
		FillLineAttr(AVIconPosition[k],AVIconPosition[k+1],2,FrameColor);
	}
	else{
		FillLineAttr(AVIconPosition[k],AVIconPosition[k+1],2,FrameMColor);
	}
}

void ShowVideoSubMenu(void)
{
unsigned char k;
//Icon
	if(OSD_Point1 == 0){
		k = OSD_Point2 << 1;
	}
	else{
		k = (OSD_Point2-14) << 1;
	}
	if(VideoIconColor[OSD_Point2] == 1){
		FillLineAttr(AVIconPosition[k],AVIconPosition[k+1],2,IconColor);
	}
	else{
		FillLineAttr(AVIconPosition[k],AVIconPosition[k+1],2,IconMColor);
	}
// Show Titel
	k = Language * 25 + OSD_Point2;
	WriteXY_CStrScaler(0,2,2,20,VideoTab1[k]);
//Show Value
	switch(OSD_Point2){
	case 0:
		ClearText1();
		ShowBrightness();
		break;
	case 1:
		ShowContrast();
		break;
	case 2:
		ShowSaturation();
		break;
	case 3:
		ShowTint();
		break;
	case 4:
		ClearText1();
		ShowSharpness();
		break;
	case 5:
	case 9:
	case 10:
//		WriteXY_CStrScaler(0,1,4,18,0);
		ClearText1();
		ShowNO_YES(0);
		break;
	case 6:
		ClearText1();
		ShowOSD_X();
		break;
	case 7:
		ShowOSD_Y();
		break;
	case 8:
		ClearText1();
		ShowOSD_Timer();
		break;
	}
}

void VideoValueUp(void)
{
	if((OSD_Type == 0x00)||(OSD_Type == 0x06)){
		if((flag1 & BIT_3) == 0){
			DirectVolume();
		}
	}
	else if(OSD_Type == 0x01){    // 1 = main
		switch(OSD_Point2){
		case 0:
			BrightnessUp();
			SavePointer = 1;
			break;
		case 1:
			ContrastUp();
			SavePointer = 2;
			break;
		case 2:
			SaturationUp();
			SavePointer = 14;
			break;
		case 3:
			TintUp();
			SavePointer = 15;
			break;
		case 4:
			SharpnessUp();
			SavePointer = 16;
			break;
//		case 5:
//			Repeat = 0xff;
//			break;
		case 5:
			ShowNO_YES(1);
			Recall();
			ShowNO_YES(0);
			Repeat = 0xff;
			break;
		case 6:
			OSD_X_Up();
			SavePointer = 11;
			break;
		case 7:
			OSD_Y_Up();
			SavePointer = 12;
			break;
		case 8:
			OSD_TimerUp();
			SavePointer = 13;
			break;
		case 9:
			if(TunerMode)
				ass();
			break;
		case 10:
			OSD_OFF();
			lrflag = 0;
			Repeat = 0xff;
			break;
		default:
			Repeat = 0xff;
			break;
		}
	}
	else if(OSD_Type == 3){
		if(++Volume > 100){
			Volume = 100;
		}
		else{
			SetVolume();
			ShowVolume();
			SavePointer = 10;
		}
	}
	KeyBuffer = 0xff;
}

void VideoValueDown(void)
{
	if((OSD_Type == 0x00)||(OSD_Type == 0x06)){
		if((flag1 & BIT_3) == 0){
			DirectVolume();
		}
	}
	else if(OSD_Type == 0x01){
		switch(OSD_Point2){
		case 0:
			BrightnessDown();
			SavePointer = 1;
			break;
		case 1:
			ContrastDown();
			SavePointer = 2;
			break;
		case 2:
			SaturationDown();
			SavePointer = 14;
			break;
		case 3:
			TintDown();
			SavePointer = 15;
			break;
		case 4:
			SharpnessDown();
			SavePointer = 16;
			break;
//		case 5:
//			Repeat = 0xff;
//			break;
		case 6:
			OSD_X_Down();
			SavePointer = 11;
			break;
		case 7:
			OSD_Y_Down();
			SavePointer = 12;
			break;
		case 8:
			OSD_TimerDown();
			SavePointer = 13;
			break;
		default:
			Repeat = 0xff;
			break;
		}
	}
	else if(OSD_Type == 3){
		if(--Volume > 100){
			Volume = 0;
		}
		else{
			SetVolume();
			ShowVolume();
			SavePointer = 10;
		}
	}
	KeyBuffer = 0xff;
}

void VideoMenu0(void)
{
code unsigned char VolumeStr0[]={	10,"          "};
code unsigned char VolumeStr1[]={	10,"BRIGHTNESS"};
code unsigned char VolumeStr2[]={	10," CONTRAST "};
code unsigned char VolumeStr3[]={	10,"SATURATION"};
code unsigned char VolumeStr4[]={	10,"   TINT   "};
code unsigned char VolumeStr5[]={	10,"  SEARCH  "};
//code unsigned char VolumeStr6[]={	10,"SHARPNESS "};
code unsigned char *Tab1[]={ VolumeStr0,VolumeStr1,VolumeStr2,VolumeStr3,VolumeStr4,VolumeStr5};
	OSD_Type = 3;  //1
	Osd4Init();
	WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	WriteXY_CStrScaler(1,5,1,10,Tab1[SelVideoMenu]);
	switch(SelVideoMenu)
	{
		case 1:
				ShowNum(1,15,3,Brightness);
				ShowSliderBar(6,2,Brightness);
				break;
		case 2:
				ShowNum(1,15,3,Contrast);
				ShowSliderBar(6,2,Contrast);
				break;
		case 3:
				ShowNum(1,15,3,Saturation);
				ShowSliderBar(6,2,Saturation);
				break;
		case 4:
				ShowNum(1,15,3,Tint);
				ShowSliderBar(6,2,Tint);
				break;
		case 5:
				ShowNum(1,8,3,SearchChannel); 
				ShowSliderBar(1,2,(unsigned char)((guage-0x572)/130.16));
				break;
	}
	OSD_Control |= BIT_0;
	WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
}



code unsigned char m1[]={11,"0123456789-"};
code unsigned char *ChannelTab[]={ m1 };
unsigned char u1,ChannelNumber,jb;

void WriteXY_Str(unsigned char *p)
{
unsigned char j;
	INTIIC1_FLG = 0xff;
	IIC1_DATA = Scaler_Addr;
	IIC1_CLK = 0x20 | IIC_BaudRate;
	IIC1_CON = 0x00;
	MasterSendByte(0xe0);
	MasterSendByte(0x90);
	MasterSendByte(0);
	MasterSendByte(0);
	if(u1==0)
	{	MasterSendByte(p[channel+1]);
		for(j=0; j<7; j++)
		{ MasterSendByte(32);}
	}
	else if(u1==1)
	{	MasterSendByte(p[11]);
		MasterSendByte(p[11]);
		for(j=0; j<6; j++)
		{ MasterSendByte(32);}
	}
	else if(u1==2)
	{	jb = ChannelNumber;
		MasterSendByte(p[ChannelNumber+1]);
		MasterSendByte(p[11]);  // "/"
		for(j=0; j<6; j++)
		{ MasterSendByte(32);}
	}
	else if(u1==3)
	{	MasterSendByte(p[jb+1]);    //36 , "3"
		MasterSendByte(p[ChannelNumber+1]);    //36 , "6"
		for(j=0; j<6; j++)
		{ MasterSendByte(32);}
	}
	else if(u1==4)  //Into TV Mode
	{
		if(ChannelNumber<10)
		{
			MasterSendByte(p[ChannelNumber+1]);
			for(j=0; j<7; j++)
			{ MasterSendByte(32);}
		}
		else
		{
			MasterSendByte(p[ChannelNumber/10+1]);
			MasterSendByte(p[ChannelNumber%10+1]);
			for(j=0; j<6; j++)
			{ MasterSendByte(32);}
		}
	}
	else if(u1==5)
	{	MasterSendByte(p[channel/10+1]);    //36 , "3"
		MasterSendByte(p[channel%10+1]);    //36 , "6"
		for(j=0; j<6; j++)
		{ MasterSendByte(32);}
	}

	WaitTx();
	IIC1_CLK = 0xA0|IIC_BaudRate;
	WaitStop();
}

void ShowChannel()
{
	OSD_Type = 6;
	Osd3Init();
	WriteWordIIC_HW(Scaler_Addr,0xcc,ChannelColor);
	WriteXY_Str(ChannelTab[0]);
	OSD_Control |= BIT_0;
	WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
	Timer2 = 500;
}
/*
void Showlanuage(unsigned char i)
{

code unsigned char String10[]={	11,12,8,"   JAPANESE "};
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[]={	11,3,8,"  ENGLISH"};
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]);
//	WriteStringScaler(0,Tab2[Language]);
	if(i != 0)
		WriteWordIIC_HW(Scaler_Addr,0xcc,TextSelColor);
	else
		WriteWordIIC_HW(Scaler_Addr,0xcc,TextColor);
	WriteStringScaler(1,Tab1[Language]);
//	WriteStringScaler(0,Tab1[Language]);
}
*/

⌨️ 快捷键说明

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