亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? osdoper.c

?? 此程序?yàn)閠well8806驅(qū)動(dòng)程序
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	int newv, regv;

	newv = ( flag==UP  ? OSDItemValue+1  :  OSDItemValue-1  );
	if( newv< UserRange.Min || newv> UserRange.Max )
		return OSDItemValue;

	Mapping1( newv, &UserRange , &regv, &PanelBrightnessRange);
	SetPanelBrightnessReg(RED,  (BYTE)regv);
	SetPanelBrightnessReg(GREEN,(BYTE)regv);
	SetPanelBrightnessReg(BLUE, (BYTE)regv);
	SavePanelBrightnessEE(newv);
	OSDItemValue = newv;
	return newv;
}

#endif


CODE BYTE VideoModeTable[][16] ={
	{	0x11,   0x10,	0x13,   0x14, 0x15,  0x3a,   0x3b,   0x3c,   0x3d,  0x3e, 0x71, 0x74, 0x72, 0x73, 0x70, 0x78,	},// TW8804's Video Picture control Reg Address
//      ------+-------+-------+------+-----+------+------+-------+-------+------+------------ 
	{	0x60,   0x00,	0x80,	0x80, 0x00, 0x60,	0x00,	0xc0,	0x40, 0x00, 0x80,  0x80, 0x80, 0x80, 0x60, 0x03,  },	// Mode 1: 
	{	0x68,	0xf8,	0x90,	0x90, 0x00, 0x60,	0x00,	0xc0,   0x40, 0x00, 0x80,  0x80, 0x80, 0x80, 0x60, 0x03,  },	// Mode 2: 
	{	0x58,	0xf8,	0xa0,	0xa0, 0x00, 0x60,	0x00,	0xc0,	0x40, 0x00, 0x80,  0x80, 0x80, 0x80, 0x60, 0x03,  },	// Mode 3: 
//	{	0x60,	0x00,	0x80,	0x80, 0x00, 0x60,	0x00,	0xc0,	0x40, 0x00, 0x80,  0x80, 0x80, 0x80, 0x60, 0x03,  },	// User Mode 
};

#define USER_VIDEOMODE	3
void SetVideoMode(BYTE mode)
{
	int  i,regv;

	SetVideoModeEE ( mode );

	if( mode != USER_VIDEOMODE )
	{

		for (i=0 ;i<15 ; i++)
			WriteTW88( VideoModeTable[0][i],  VideoModeTable[mode+1][i] );

		regv = VideoModeTable[mode+1][15];	// Sharpness
		#ifdef TW8804D
		SetPanelSharpnessReg( (BYTE)regv );
		SetVideoVPeakingReg( (BYTE)regv );
//		SetVideoHfilterReg( (BYTE)regv );
		#else
		SetVideoSharpnessReg( (BYTE)regv);
		SetVideoVPeakingReg( (BYTE)regv/2 );
		#endif

	}
	else // USERMODE
	{
		#ifndef SUPPORT_USERCOLORFROMTXT


		{
		int  userv;

		// Load from EEPROM
		SetVideoContrast( GetVideoDatawithOffset(contrast) );
	    SetVideoBrightness( GetVideoDatawithOffset(bright) );
		SetVideoSaturation(U_SAT, GetVideoDatawithOffset(staturation_U) );
		SetVideoSaturation(V_SAT, GetVideoDatawithOffset(staturation_V) );
	    SetVideoHue(GetVideoDatawithOffset( hue) );

		userv = GetVideoDatawithOffset(sharpness);
		Mapping1( userv, &UserRange, &regv, &VideoSharpnessRange );
		}
		#ifdef TW8804D
		SetPanelSharpnessReg( (BYTE)regv );
		SetVideoVPeakingReg( (BYTE)regv );
//		SetVideoHfilterReg( (BYTE)regv );
		#else
		SetVideoSharpnessReg( (BYTE)regv);
		SetVideoVPeakingReg( (BYTE)regv/2 );
		#endif

		#endif

	}

}

BYTE IsInputAnalogRGB()
{
	#if defined SUPPORT_COMPONENT
	if( InputSelection==COMPONENT ) return TRUE;
	#elif defined SUPPORT_SCART
	if( InputSelection==SCART ) return TRUE;
	#endif

	return FALSE;
}

BYTE GetVideoDatawithOffset(BYTE offset)
{
	OSDItemValue = GetVideoDatafromEE(offset);
	
	return OSDItemValue;
}

BYTE ChangeVideoData(BYTE offset, BYTE flag)
{
	int newv, inc;

	inc = ( flag==UP  ? 1  :  -1  );

	newv = OSDItemValue + inc;
	if( newv< UserRange.Min || newv> UserRange.Max )
		return OSDItemValue;

	switch (offset)
	{
	case contrast: SetVideoContrast(newv);
		 break;
	case bright:  SetVideoBrightness(newv);
		 break;
	case staturation_U: 
	case staturation_V: 
					SetVideoSaturation(offset-staturation_U,newv);
		 break;
	case hue:	  SetVideoHue(newv);
		 break;
	}

	SaveVideoDatatoEE(offset, newv);

	OSDItemValue = newv;
	return newv;
	
}

void SetVideoContrast(BYTE newv)
{
	int regv;

	Mapping1( newv, &UserRange , &regv, &VideoContrastRange);
	WriteTW88( Contast_Reg_Addr[InputSelection-1], (BYTE)regv );

}

void SetVideoBrightness(BYTE newv) 
{

	int regv;

	if( InputSelection == DTV )
	{

		Mapping1( newv, &UserRange , &regv, &PanelBrightnessRange);
		SetDTVBrightnessReg( (BYTE)regv);
	}
	else 
	{
		Mapping1( newv, &UserRange , &regv, &VideoBrightnessRange);

		if( IsInputAnalogRGB() ) 
			SetDigitalVideoBrightnessReg( regv );
		else 
			SetVideoBrightnessReg( (BYTE)regv);
	}
}

void SetVideoHue(BYTE newv) 
{

	int regv;

	if( InputSelection == DTV ){
		Mapping1( newv, &UserRange , &regv, &PanelHueRange);
		SetPanelHueReg( (BYTE)regv);
	}
	else {
		Mapping1( newv, &UserRange , &regv, &VideoHueRange);
		if( IsInputAnalogRGB() ) 
			SetDigitalVideoHueReg( regv );
		else 
			SetVideoHueReg( (BYTE)regv);
	}

}

void SetVideoSaturation(BYTE svtype, BYTE newv) 
{

	int regv;

	if( IsInputAnalogRGB() )
	 {
		Mapping1( newv, &UserRange , &regv, &DigitalVideoSaturationRange);
		SetDigitalVideoSaturationReg(svtype, (BYTE)regv);
	}
	else 
	{

		Mapping1( newv, &UserRange , &regv, &VideoSaturationRange);

		if( InputSelection == DTV )
		{
			SetPanelSaturationReg( svtype, regv );
		}
		else 
		{
			SetVideoSaturationReg( svtype, (BYTE)regv);
		}
	}
}


BYTE SetVideoSharpness(BYTE flag) 
{
	BYTE orgv;
	char inc;
	int newv, regv;

	orgv = ReadTW88( PNLSHARPNESS )&0x07;
	regv = orgv & 0x0f;
	inc = ( flag==UP  ? 1  :  -1  );
	regv += inc;
	if( regv < VideoSharpnessRange.Min ||
		regv > VideoSharpnessRange.Max )
		return OSDItemValue;

	Mapping1( (BYTE)regv, &VideoSharpnessRange, &newv, &UserRange );

	SetPanelSharpnessReg( (BYTE)regv );
	SetVideoVPeakingReg( (BYTE)regv );
//	SetVideoHfilterReg( (BYTE)regv );

	SaveVideoDatatoEE( sharpness, newv );
	OSDItemValue = newv;

	return newv;
}

/*
BYTE SetOSDDurationValue(BYTE flag)
{
	int val;

	val = ( flag==UP  ? OSDItemValue+1  :  OSDItemValue-1  );
	if( val< OSDDurationRange.Min || val > OSDDurationRange.Max )
		return OSDItemValue;

	OSDItemValue = val;
	SaveOSDDurationEE(val);
	SetOSDDuration( val );
	return OSDItemValue;

}

*/
#ifdef WQVGA
CODE BYTE Init_Video_Data[]={
	37, 52, 50, 50, 50, 50 }; // Contrast,Bright,Staturation_U,Staturation_V,Hue,Sharpness
#else
CODE BYTE Init_Video_Data[]={
	38, 50, 62, 62, 50, 50 }; // Contrast,Bright,Staturation_U,Staturation_V,Hue,Sharpness
#endif

#ifdef ADD_ANALOGPANEL
CODE BYTE Init_Video_Data_A[]={
	37, 52, 50, 50, 50, 50 }; // Contrast,Bright,Staturation_U,Staturation_V,Hue,Sharpness
#endif

CODE BYTE Init_DTV_Data[]={
	50, 50, 50, 50, 50, 50 }; // Contrast,Bright,Staturation_U,Staturation_V,Hue,Sharpness

void ResetVideoValue(void)
{
	
	BYTE i, CurInput;
	#ifdef DEBUG
	dPrintf("\r\n---- ResetVideoValue -----");
	#endif
	CurInput = InputSelection;
	for (InputSelection=COMPOSITE; InputSelection<PC ; InputSelection++ ) {

		if( InputSelection == DTV )
		{
			for( i=0; i<6; i++){
				SaveVideoDatatoEE(i, Init_DTV_Data[i]);	// All 50%
			}
		}
		else {
			for( i=0; i<6; i++){
				#ifdef ADD_ANALOGPANEL
				if(IsAnalogOn())
				SaveVideoDatatoEE(i, Init_Video_Data_A[i]);
				else
				#endif
				SaveVideoDatatoEE(i, Init_Video_Data[i]);
			}
		}
	}
	InputSelection = CurInput;
	SetVideoMode(USER_VIDEOMODE);

}

#ifdef WIDE_SCREEN

#include "\data\WideModeData.txt"
/*
void SetHDelay( WORD delay)
{
	BYTE high;
	#ifdef WIDE_SCREEN
	Printf("\n SetHDelay: %4x ", delay);
	#endif
	WriteDecoder( HDELAY_LO, (BYTE)delay );
	high =	ReadDecoder( CROP_HI ) & 0xf3;
	high |= (BYTE)( delay >> 6 );
	WriteDecoder( CROP_HI, high );
}

void SetVideoOverScan(BYTE overscan)	//in 1/20
{
	if(GetInputSelection() == PC)   return;

	VideoOverScan = overscan;
	SetHDelay( DEF_HDELAY + 720 * overscan / 20 / 2 );	// Video H Active : 720 pixels
}

*/
#if (defined SUPPORT_PC) || (defined SUPPORT_DTV)
void SetScale4_3Y(void) // 16:9 --> 4:3  // Normal
{
	extern  CODE struct _PCMDATA  PCMDATA[];
	extern	IDATA BYTE PcMode;
	DWORD outv, scale;

	// Vertical
	scale = (DWORD)PCMDATA[PcMode].VAN	;
	outv  = (DWORD)PVR_; 
	scale = 0x10000L * scale / outv;

	YScale2( scale );

	// Horizontal
	if (PcMode >= EE_XGA_60 && PcMode >= EE_XGA_75)
		scale = (DWORD)PCMDATA[PcMode].HAN-4; //just 1024	for focus issue(1:1).
	else
		scale = (DWORD)PCMDATA[PcMode].HAN;	

	scale = scale * 0x10000L * 3 / PVR_ /4;

	XScale2( scale );
}

void SetScale(void)
{
	DWORD scale, outv;

	// Vertical
	scale = (DWORD)PCMDATA[PcMode].VAN;
	outv  = (DWORD)PVR_ ; 
	scale = 0x10000L * scale / outv;
	YScale2( scale );
	#ifdef DEBUG_PC
	Printf("\n PCMode[%d] %ld YScale: %ld", (WORD)PcMode, outv, scale);
	#endif
	// Horizontal
	scale = PCMDATA[PcMode].HAN;
	outv  = PHR_ ; 
//	scale = scale  * 0x100L / outv;
	scale = (scale*0x10000L+outv-1) / outv;
	XScale2( scale );
}

void SetScale4_3X(void)	
{
	DWORD scale, outv;

	// Horizontal
	scale = (DWORD)PCMDATA[PcMode].HAN;
	outv  = (DWORD)PHR_ ; 
	scale = scale  * 0x10000L / outv;
	XScale2( scale );

	// Vertical
	scale = (DWORD)PCMDATA[PcMode].VAN; 
	outv  = outv * 3 / 4;			// 4:3
	scale = 0x10000L * scale / outv;
	YScale2( scale);				// *********** plus 2
}
void SetLRBlank(BYTE bl)
{
	WriteTW88(0x66, bl);
}
#endif

void Set4WideScreen( BYTE id )
{
	if( id > WIDESCREEN_FULL ){
		Set4WideScreen(WIDESCREEN_WIDE);
		id = WIDESCREEN_WIDE;
	}

	WideScreenMode = id;

  #if (defined SUPPORT_PC) || (defined SUPPOER_DTV) 	
  if(	(GetInputSelection()== PC) || (GetInputSelection()== DTV) )
  {
	switch( id ) {
	case WIDESCREEN_NORMAL:		
								SetScale4_3Y();
								SetLRBlank((PHR_- (PVR_*4/3 ))/2);
								break;
	case WIDESCREEN_WIDE:		
								SetScale();
								SetLRBlank(0);
								break;
								
	case WIDESCREEN_PANO:		
								SetScale();
								SetLRBlank(0);
								break;
								
	case WIDESCREEN_FULL:		
								SetScale4_3X();
								SetLRBlank(0);
								break;
/*	case WIDESCREEN_ZOOM:		
								SetScale4_3X();
								SetLRBlank(0);
								break;
*/	
								}
	}
	else 
#endif
	{
		int i;
		CODE_P BYTE *WideData;
		
		#ifdef SUPPORT_COMPONENT
		if (GetInputSelection()== COMPONENT )
		{
			switch (ComponentMode)
			{
				case YPBPR_576i:	WideData = WIDEDATA_576i[id];	break;
				#ifndef WQVGA
				case YPBPR_480p:	WideData = WIDEDATA_480p[id];	break;
				case YPBPR_576p:	WideData = WIDEDATA_576p[id];	break;
				case YPBPR_720p:	WideData = WIDEDATA_720p[id];	break;
				case YPBPR_1080i:	WideData = WIDEDATA_1080i[id];	break;
				#endif
				default:			WideData = WIDEDATA_480i[id];	break;
			}

		}
		else 
		#endif
		{
				//if( ReadVInputSTD()== NTSC || ReadVInputSTD()== NTSC4 ) 
				if( GetVInputStd() == NTSC || GetVInputStd()== NTSC4 ) {
					#ifdef ADD_ANALOGPANEL
					if(IsAnalogOn()) 
					WideData = WIDEDATA_NA[id];
					else
					#endif
					WideData = WIDEDATA_N[id];
				}
				else{
					#ifdef ADD_ANALOGPANEL
					if(IsAnalogOn()) 
					WideData = WIDEDATA_PA[id];
					else
					#endif
					WideData = WIDEDATA_P[id];
				}
		}

		//#ifdef DEBUG
		//Printf( "\r\nWrite Wide: ");
		//#endif
		WaitEndofDisplayArea();	
		for(i=0; i<WIDE_DATA_MAX; i++){
					WriteTW88(WIDE_ADDRESS[i], *WideData);
					//#ifdef DEBUG
					//Printf( " %2x", (WORD)*WideData );
					//#endif
					WideData++;
		}
	}
	SaveWideModeEE(WideScreenMode);
}
#endif // WIDE_SCREEN

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一二三四区| 亚洲精品乱码久久久久久日本蜜臀 | 国产成人夜色高潮福利影视| 亚洲大片在线观看| 一区二区三区在线视频播放| 自拍偷拍亚洲激情| 亚洲少妇最新在线视频| 一区二区三区在线观看欧美| 亚洲一区二区黄色| 视频一区在线播放| 韩国理伦片一区二区三区在线播放| 日本不卡视频一二三区| 久久国产尿小便嘘嘘| 国产成人亚洲综合a∨猫咪| 国产91在线观看| 色偷偷久久一区二区三区| 色成年激情久久综合| 538在线一区二区精品国产| 日韩三级视频在线观看| 久久综合一区二区| 欧美精品一区二区三区久久久| 国产片一区二区| 亚洲精品国产精华液| 一区av在线播放| 精品一区二区三区免费毛片爱| 风间由美一区二区三区在线观看 | 国产成人精品影视| 91福利在线播放| 欧美一区午夜精品| 国产精品色一区二区三区| 亚洲高清视频的网址| 国产成人在线免费| 欧美天堂一区二区三区| 久久精品一区四区| 亚洲第一狼人社区| 高清在线成人网| 制服丝袜国产精品| 亚洲欧洲成人av每日更新| 日韩精品午夜视频| 91蜜桃网址入口| 26uuu国产一区二区三区| 一区二区三区四区乱视频| 韩国女主播一区二区三区| 欧美吻胸吃奶大尺度电影| 国产日本欧美一区二区| 丝袜亚洲精品中文字幕一区| 成人三级伦理片| 精品国产一区二区精华| 亚洲1区2区3区视频| 不卡的电视剧免费网站有什么| 9191精品国产综合久久久久久 | 天天射综合影视| 99久久综合国产精品| 欧美电影免费观看高清完整版| 亚洲人成精品久久久久| 国产成人av福利| 精品国产百合女同互慰| 亚洲福中文字幕伊人影院| 99精品视频在线免费观看| 久久久综合视频| 蜜桃一区二区三区在线| 欧美日韩国产首页| 亚洲一区精品在线| 色偷偷成人一区二区三区91| 国产精品乱码一区二三区小蝌蚪| 韩国午夜理伦三级不卡影院| 日韩视频免费观看高清完整版在线观看 | 欧美日韩一区二区欧美激情| 日韩美女啊v在线免费观看| 国产成人精品一区二| 精品国产不卡一区二区三区| 久久国产欧美日韩精品| 日韩欧美www| 国内精品久久久久影院薰衣草 | 91精品国产91热久久久做人人| 亚洲成人三级小说| 欧美日韩国产一级| 亚洲成人一区二区在线观看| 欧美人成免费网站| 美日韩一级片在线观看| 日韩精品一区二区三区三区免费| 日本午夜精品一区二区三区电影| 欧美一区二区网站| 国产真实乱子伦精品视频| 久久精品亚洲精品国产欧美| 懂色av中文字幕一区二区三区| 中文字幕精品三区| 99久久国产综合精品色伊| 亚洲免费av网站| 欧美放荡的少妇| 一区二区三区91| 91麻豆精品91久久久久久清纯 | 91官网在线免费观看| 午夜精品在线视频一区| 日韩精品一区二区三区中文精品| 国产成人亚洲综合a∨婷婷| 中文字幕在线一区| 欧美丝袜丝交足nylons| 久久成人久久鬼色| 自拍偷自拍亚洲精品播放| 欧美日韩精品一区二区三区四区| 久久国产夜色精品鲁鲁99| 国产精品网站在线播放| 色网站国产精品| 蜜臀国产一区二区三区在线播放| 精品国产露脸精彩对白| av影院午夜一区| 亚洲成av人影院在线观看网| 精品久久久久久无| 99久久精品免费观看| 免费观看在线综合色| 国产精品国产三级国产专播品爱网| 在线免费av一区| 国产.精品.日韩.另类.中文.在线.播放 | 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品一区二区果冻传媒| 亚洲一区中文日韩| 中文字幕精品在线不卡| 欧美一区二区三区在线| 99精品久久久久久| 韩国欧美一区二区| 日本亚洲最大的色成网站www| 亚洲人成在线播放网站岛国| 精品国产髙清在线看国产毛片| 在线观看视频一区二区欧美日韩| 国产精品系列在线观看| 日韩av一区二区在线影视| 亚洲精品成人悠悠色影视| 国产亚洲欧洲997久久综合 | 日本韩国精品一区二区在线观看| 韩国v欧美v亚洲v日本v| 午夜精品福利一区二区三区av| 欧美激情艳妇裸体舞| 欧美电视剧免费观看| 69p69国产精品| 欧美色图第一页| 一本大道久久a久久精二百 | 一区二区三区蜜桃| 中文字幕av一区 二区| 日韩精品一区二区三区中文精品| 欧美日韩视频专区在线播放| 一本色道亚洲精品aⅴ| 成人黄色一级视频| 成人高清免费在线播放| 国产成人免费xxxxxxxx| 国产成人精品www牛牛影视| 国产曰批免费观看久久久| 免费成人av资源网| 麻豆精品新av中文字幕| 天天综合网天天综合色 | 日韩欧美国产电影| 欧美另类高清zo欧美| 欧美精品视频www在线观看| 欧美午夜视频网站| 欧美日韩激情一区二区| 91精品中文字幕一区二区三区| 91精品国产综合久久久久久久| 欧美精品黑人性xxxx| 91精品在线免费| 欧美r级在线观看| 久久伊99综合婷婷久久伊| 久久精品夜色噜噜亚洲aⅴ| 日本一区二区不卡视频| 亚洲欧洲另类国产综合| 一区二区激情小说| 免费成人av在线播放| 美女任你摸久久 | 亚洲欧美另类久久久精品| 亚洲欧美精品午睡沙发| 日精品一区二区三区| 久久不见久久见免费视频7| 国产成a人无v码亚洲福利| 99精品视频一区二区三区| 在线观看视频一区| 欧美成人激情免费网| 中文字幕亚洲视频| 午夜在线成人av| 国产精品一区一区| 欧美三级电影精品| 久久久99精品久久| 夜夜精品浪潮av一区二区三区| 日韩黄色免费网站| 国产成人99久久亚洲综合精品| 91视频一区二区| 日韩精品综合一本久道在线视频| 国产精品色哟哟| 亚洲成人激情综合网| 国产精品白丝jk黑袜喷水| 91国偷自产一区二区开放时间| 精品99一区二区| 一区二区三区欧美久久| 国产麻豆一精品一av一免费 | 欧美色综合久久| 久久久久综合网| 午夜欧美在线一二页| 粉嫩高潮美女一区二区三区 | 中文字幕欧美区| 青青草伊人久久| 在线欧美小视频| 国产精品乱码一区二三区小蝌蚪|