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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 1574osd.c

?? MXIC旺宏液晶電視芯片MX88V44的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/**--------------------------------------------------------------------------
* Name          15xxOSD.c
--------------------------------------------------------------------------**/
#include	<string.h>
#include 	"..\inc\public2.h"

#define	EEPROM_WRID		0xA0
#define L44_WRID		0x28
	//--------------	OSD Reg #	------------
#define	OSD_EN			0x1C

#define	OSDADDR_L		0xA0
#define	OSDADDR_H		0xA1
#define	OSDDATA_L 		0xA2
#define	OSDDATA_H 		0xA3
#define	ORWCTRL			0xA4
	/*------	OSD External Reg. 0xA4 bit define	-------------------
	 *		bit		7 6 5 4 3 2 1 0
 	 *				| |	|	  | +--		D1-0: Internal OSD accessing select
 	 *				| | |	  |					00 - OSD control Reg.
 	 *				| | |  	  |					01 - OSD RAM Font buffer
 	 *				| | |     |					10 - OSD Display code buffer
 	 *				| | |  	  |					11 - OSD Display attr buffer
 	 *				| | |	  +----		D2: Internal OSD R/W enable
 	 *				| | |						0  - Enable OSD Reg. and buf
	 * 			 	| | |						1  - Disable
 	 *				| |	+ ---------		D5-3: Reserved
	 *				| + -----------		OSD Clear buffer bit
	 *				| 							0  - Normal
	 *				|							1  - Clear Code buffer to 0x3E
	 *				|								 Clear Attr buffer to 0x00
	 *				+ -------------		OSD Read/Write mode Select	0:R		1:W
	 *--------------------------------------------------------------------------*/
#define	SEL_OSDCTRLREG	0x00		//This Value for ORWCTRL(0xA4) Reg.
#define SEL_OSDDISPCODE	0x02
#define SEL_OSDDISPATTR	0x03
#define CLR_OSD_BUF		0x40

#define OSDCTRLREG		0x07
#define	OSDWINON		0x53
#define OSDWINOFF		0x02
/*----------------------------------------------------------
 *	OSD Display code buffer is 64 bytes format is followed
 *		bit		7 6 5 4 3 2 1 0
 *				| |	|
 *				| |	+ ---------		D5-0: Character Code
 *				| + -----------		0: ROM Font 	1: RAM Font
 *				+ -------------		0: Blink OFF 	1: Blink ON
 *
 *	OSD Display Attr buffer is 64 bytes format is followed
 *		bit		7 6 5 4 3 2 1 0
 *				| |		| |
 *				| |		| + ---		D2-0: Backgound Color index
 *				| |		+ -----		0: BG transparent 1: BG opaque
 *				| + -----------		D6-4: Foregound Color index
 *				+ -------------		0: Border OFF	  1: Border ON
 */
#define	OSD_NORMAL_C	0x7C		//Forg. Color ->Special	Back. Color ->Blue
#define OSD_HIGHL_C		0x42		//Forg. Color ->Blue,	Back. Color -> Greeen
#define OSD_TITLE_C		0x17		//Forg. Color ->Red,	Back. Color -> special

	//--------------	Button Key Define	------------
#define	ENTER	0x1E				//pressed key then pull low
#define	UP		0x1B
#define	DOWN	0x17
#define	MENU	0x0F

//----------------------------------------------------------------------------
xdata BYTE	CBSH_Value[8]		_at_ 0x0100;	//Byte	0: Brightness buffer _at_ 0x0101
												//		1: Contrast buffer	 _at_ 0x0102
												//		2: Saturation buffer _at_ 0x0103
												//		3: Hue buffer		 _at_ 0x0104
												
		// Define OSD Window Start position, size, space and other control
xdata BYTE	OSDCtrlVal[16] = {
				0x79,	//H Start 							(4*0x4C+12 = 396 pixel)
				0x08,	//V Start 							(4*0x20+1  = 21 line)
				0x0C,	//H Width   	  					(  0x0C+1  = 13 char)
				0x00,	//D7-4	V Space Start position		(  			 0  char)
						//D3-0	V Heigth   					(  0x00+1  = 1	char)
				0x00,	//H Space Start	  					(  0x00	   = 0	char)
				0x00,	//H Space Width	  					(  0x00	   = 0	pixel)
				0x00,	//V Space Heigth  					(  0x00	   = 0	line)
				0x02,	//Ctrl. Reg	D7-6 Vert. scaling		(Vert. enlarged x1)
						// 			D5-4 Horz. scaling		(Horz. enlarged x3)
						//			D1 Type of Char. border	(bottom-right)
						//			D0	0: OSD window OFF	(OSD OFF)
						//				1: OSD window ON
				0x10,	//Misc. Ctrl
				0x00,
				0x00, 0x00, 0x00, 0x00, 0x00, 0x00};	//Reserved

xdata char	MainMenuStr[104] = {
// Char#	0	 1	  2	   3	4	 5	  6	   7	8	 9	  10   11	12
			' ', ' ', 'L', '/', 'R', ' ', 'U', '/', 'D', ' ', ' ', ' ', ' ',	//Item	0
			'B', 'R', 'I', 'G', 'H', 'T', 'N', 'E', 'S', 'S', ' ', ' ', ' ',	//Item	1
			' ', 'C', 'O', 'N', 'T', 'R', 'A', 'S', 'T', ' ', ' ', ' ', ' ',	//		2
			'S', 'A', 'T', 'U', 'R', 'A', 'T', 'I', 'O', 'N', ' ', ' ', ' ',	//		3
			' ', ' ', ' ', 'H', 'U', 'E', ' ', ' ', ' ', ' ', ' ', ' ', ' ',	//		4
			'E', 'D', 'G', 'E', ' ', 'F', 'I', 'L', 'T', 'E', 'R', ' ', ' ',	//		5
			' ', ' ', 'S', 'H', 'A', 'R', 'P', 'E', 'N', ' ', ' ', ' ', ' ',	//		6
			'D', 'I', 'S', 'P', ' ', 'M', 'O', 'D', 'E', ' ', ' ', ' ', ' '	};	//		7

xdata char	OSD_Color[24] = {	0x00, 0x00, 0x00,		//OSD Color 0
								0xFF, 0x00, 0x00,		//OSD Color 1
								0x00, 0xFF, 0x00,		//OSD Color 2
								0xFF, 0xFF, 0x00,		//OSD Color 3
								0x00, 0x00, 0xFF,		//OSD Color 4
								0xFF, 0x00, 0xFF,		//OSD Color 5
								0x00, 0xFF, 0xFF,		//OSD Color 6
								0xFF, 0xFF, 0xFF};		//OSD Color 7
/***---------------------------------------------------------------------------***/			
#ifdef	CPT_PANEL	//---------------------------------------------------------
code BYTE	Mode_4by3[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x90,		0x0A, 0x47,		0x0B, 0x13,		0x4D, 0x53,		0x53, 0x18,
	0x55, 0x17,		0x57, 0x18,		0x59, 0x17,		0x69, 0x35,		0x6A, 0x01,
	0x70, 0x06,		0x8A, 0x80,		0x8B, 0x46,		0x45, 0xC1,		0x47, 0xC2	
	};
code BYTE	Mode_Full[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x00,		0x0A, 0x00,		0x0B, 0x10,		0x4D, 0x12,		0x53, 0x18,
	0x55, 0x17,		0x57, 0x18,		0x59, 0x17,		0x69, 0x20,		0x6A, 0x00,
	0x70, 0x00,		0x8A, 0x58,		0x8B, 0x09,		0x45, 0xC1,		0x47, 0xC2	
	};	
code BYTE	Mode_Zoom1[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x1F,	0x55, 0x1D,		0x57, 0x1F,		0x59, 0x1D,		0x45, 0xC1,		
	0x47,   0xC2};
code BYTE	Mode_Zoom2[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x24,	0x55, 0x22,		0x57, 0x24,		0x59, 0x22,		0x45, 0xC1,		
	0x47,   0xC2};
#endif
#ifdef	HYDIS_PANEL	//---------------------------------------------------------
code BYTE	Mode_4by3[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x90,		0x0A, 0x47,		0x0B, 0x13,		0x4D, 0x53,		0x53, 0x18,
	0x55, 0x17,		0x57, 0x18,		0x59, 0x17,		0x69, 0x35,		0x6A, 0x01,
	0x70, 0x06,		0x8A, 0x80,		0x8B, 0x46,		0x45, 0xBF,		0x47, 0xC1
	};
code BYTE	Mode_Full[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x00,		0x0A, 0x00,		0x0B, 0x10,		0x4D, 0x12,		0x53, 0x18,
	0x55, 0x17,		0x57, 0x18,		0x59, 0x17,		0x69, 0x20,		0x6A, 0x00,
	0x70, 0x00,		0x8A, 0x58,		0x8B, 0x09,		0x45, 0xBF,		0x47, 0xC1
	};	
code BYTE	Mode_Zoom1[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x1F,	0x55, 0x1D,		0x57, 0x1F,		0x59, 0x1D,		0x45, 0xBF,
	0x47,	0xC1};
code BYTE	Mode_Zoom2[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x24,	0x55, 0x22,		0x57, 0x24,		0x59, 0x22,		0x45, 0xBF,
	0x47,	0xC1};
#endif
#ifdef	LG_PANEL	//---------------------------------------------------------
code BYTE	Mode_4by3[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x8C,		0x0A, 0x28,		0x0B, 0x13,		0x4D, 0x53,		0x53, 0x15,
	0x55, 0x14,		0x57, 0x15,		0x59, 0x14,		0x69, 0x35,		0x6A, 0x01,
	0x70, 0x05,		0x8A, 0x80,		0x8B, 0x44,		0x45, 0xB3,		0x47, 0xB5	
	};
code BYTE	Mode_Full[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x00,		0x0A, 0x00,		0x0B, 0x10,		0x4D, 0x12,		0x53, 0x15,
	0x55, 0x14,		0x57, 0x15,		0x59, 0x14,		0x69, 0x20,		0x6A, 0x00,
	0x70, 0x00,		0x8A, 0x59,		0x8B, 0x09,		0x45, 0xC1,		0x47, 0xC2	
	};	
code BYTE	Mode_Zoom1[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x1C,	0x55, 0x1B,		0x57, 0x1C,		0x59, 0x1B,		0x45, 0xC1,
	0x47,	0xC2};
code BYTE	Mode_Zoom2[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x22,	0x55, 0x21,		0x57, 0x22,		0x59, 0x21,		0x45, 0xC1,
	0x47,	0xC2};
#endif
#ifdef	PVI_PANEL	//---------------------------------------------------------
code BYTE	Mode_4by3[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x90,		0x0A, 0x47,		0x0B, 0x13,		0x4D, 0x53,		0x53, 0x19,
	0x55, 0x17,		0x57, 0x19,		0x59, 0x17,		0x69, 0x35,		0x6A, 0x01,
	0x70, 0x06,		0x8A, 0x80,		0x8B, 0x46,		0x45, 0xC3,		0x47, 0xC5	
	};
code BYTE	Mode_Full[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x00,		0x0A, 0x00,		0x0B, 0x10,		0x4D, 0x12,		0x53, 0x19,
	0x55, 0x17,		0x57, 0x19,		0x59, 0x17,		0x69, 0x20,		0x6A, 0x00,
	0x70, 0x00,		0x8A, 0x58,		0x8B, 0x09,		0x45, 0xC3,		0x47, 0xC5	
	};	
code BYTE	Mode_Zoom1[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x1F,	0x55, 0x1D,		0x57, 0x1F,		0x59, 0x1D,		0x45, 0xC3,
	0x47, 0xC5};
code BYTE	Mode_Zoom2[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x24,	0x55, 0x22,		0x57, 0x24,		0x59, 0x22,		0x45, 0xC3,
	0x47, 0xC5};
#endif
#ifdef	SAMSUNG_PANEL	//---------------------------------------------------------
code BYTE	Mode_4by3[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x90,		0x0A, 0x4F,		0x0B, 0x13,		0x4D, 0x8A,		0x53, 0x15,
	0x55, 0x13,		0x57, 0x15,		0x59, 0x13,		0x69, 0x32,		0x6A, 0x01,
	0x70, 0x06,		0x8A, 0x80,		0x8B, 0x40,		0x45, 0x99,		0x47, 0x9B
	};
code BYTE	Mode_Full[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x00,		0x0A, 0x00,		0x0B, 0x10,		0x4D, 0x12,		0x53, 0x16,
	0x55, 0x14,		0x57, 0x16,		0x59, 0x14,		0x69, 0x20,		0x6A, 0x00,
	0x70, 0x00,		0x8A, 0x58,		0x8B, 0x09,		0x45, 0xC1,		0x47, 0xC3	
	};	
code BYTE	Mode_Zoom1[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x1F,	0x55, 0x1D,		0x57, 0x1F,		0x59, 0x1D,		0x45, 0xC1,
	0x47,	0xC3};
code BYTE	Mode_Zoom2[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x24,	0x55, 0x22,		0x57, 0x24,		0x59, 0x22,		0x45, 0xC1,
	0x47,	0xC3};
#endif
#ifdef	TOSHIBA_PANEL	//---------------------------------------------------------
code BYTE	Mode_4by3[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x90,		0x0A, 0x4F,		0x0B, 0x13,		0x4D, 0x8A,		0x53, 0x15,
	0x55, 0x13,		0x57, 0x15,		0x59, 0x13,		0x69, 0x32,		0x6A, 0x01,
	0x70, 0x06,		0x8A, 0x80,		0x8B, 0x40,		0x45, 0x99,		0x47, 0x9B
	};
code BYTE	Mode_Full[30] = {
 // Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x08, 0x00,		0x0A, 0x00,		0x0B, 0x10,		0x4D, 0x12,		0x53, 0x16,
	0x55, 0x14,		0x57, 0x16,		0x59, 0x14,		0x69, 0x20,		0x6A, 0x00,
	0x70, 0x00,		0x8A, 0x58,		0x8B, 0x09,		0x45, 0xC1,		0x47, 0xC3	
	};	
code BYTE	Mode_Zoom1[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x1F,	0x55, 0x1D,		0x57, 0x1F,		0x59, 0x1D,		0x45, 0xC1,
	0x47,	0xC3};
code BYTE	Mode_Zoom2[12] = {
 // Reg.#	Vaule	Reg.# Vaule		Reg.# Vaule		Reg.# Vaule		Reg.# Vaule
	0x53,	0x24,	0x55, 0x22,		0x57, 0x24,		0x59, 0x22,		0x45, 0xC1,
	0x47,	0xC3};
#endif
/***---------------------------------------------------------------------------***/	

#define	OSD_LINEOFFSET			13

#define OSD_HSTART_BUF_INDEX	0
#define OSD_VSTART_BUF_INDEX	1
#define	OSD_WIDTH_BUF_INDEX		2
#define	OSD_HEIGHT_BUF_INDEX	3

extern int	T0_0Interval;
extern BYTE T0_0Service;
extern BYTE	NTSC_PAL;

extern BYTE	WaitKey(void);
extern BYTE	CVD1_ReadWrite(BYTE, BYTE, BYTE);

	//--------------	Function Prototype 	----------------
void	OSD_Init(void);
void	Adj_CBSH(void);
void	OSD_ShowTitle(char *, char);
void	OSD_Attribute(BYTE, BYTE, BYTE);
void	 Read_OSDRegD(BYTE *, BYTE, BYTE, BYTE);
void	Write_OSDReg(BYTE [], BYTE, BYTE, BYTE);
BYTE	ASCII_OSDFont(BYTE);
void	Value_ASCII(BYTE, BYTE *, BYTE);
void	Adj_LRUD(BYTE);
void	Adj_Brightness(BYTE);
void	Adj_Contrast(BYTE);
void	Adj_Saturation(BYTE);
void	Adj_Hue(char);
void	Adj_Sharpen(char);
void	Adj_Edge(char);
void	Adj_DisplayMode(char);

/**--------------------------------------------------------------------------
* Name			OSD_Init(void)
*
* Description	The OSD all Menu string and T0_0Service Initialized
*
* Flow Chart 
*
* Return
*
* DATE          Author          Description
* ===========================================================================
* 2004-07-12    K.M. Ho         This is first time implement
* 2004-10-12	KMHo			Add write 15xx Reg. 0x1C Enable the OSD 
**/
void	OSD_Init(void)
{
	T0_0Service = 0;			//Turn OFF the timer 0 service

#ifdef	CPT_PANEL	//-------------------------------------------------------	
	CBSH_Value[0] = 0x01;		//Left/Rigth and Up/Down	LG: 0x03	-----
#endif								
#ifdef	LG_PANEL
	CBSH_Value[0] = 0x03;		//Left/Rigth and Up/Down	LG: 0x03	-----
#endif
#ifdef	SAMSUNG_PANEL	
	CBSH_Value[0] = 0x01;		//Left/Rigth and Up/Down	LG: 0x03	-----
#endif				//-------------------------------------------------------
	CBSH_Value[1] = 0x20;		//Brighness
	CBSH_Value[2] = 0x20;		//Contrast
	CBSH_Value[3] = 0x20;		//Saturation
	CBSH_Value[4] = 0x20;		//Hue
	CBSH_Value[5] = 0x20;		//Sharpen
	CBSH_Value[6] = 0x00;		//Edge Filter ON/OFF default is OFF
	CBSH_Value[7] = 0x01;		//Display Mode 	0: 4:3
								//				1: Full
								//				2: Zoom 1
								//				3: Zoom 2
	
	I2C_WriteByte(L44_WRID, OSD_EN,	0xAC);		//2004-10-12 Added by KMHo

	Write_OSDReg(OSD_Color, SEL_OSDCTRLREG, 24, 0x0C);	//Init. the OSD color index
	Write_OSDReg(Font12x18, 0x01, 16, 0x00);
	
	I2C_WriteByte(L44_WRID, 0x11, 0xF2);		//Turn ON the Adj Enable bit
}

/**--------------------------------------------------------------------------
* Name			Adj_CBSH(void)
*
* Description	Enter the OSD main menu wait user press key for service.
*				if user not press key over 10sec. that will auto Turn OFF OSD.
*
* Flow Chart
*
* Return
*
* DATE          Author          Description
* ===========================================================================
* 2004-07-12    K.M. Ho         This is first time implement
**/
void	Adj_CBSH(void)
{
	BYTE	press_key, item;
	BYTE	buf[2];
	BYTE	value, val_str[3];

	T0_0Interval = 500;			//set timer 0 interval = 20ms x 500 = 10sec.
	T0_0Service  = 1;			//turn on timer 0 service flag
	item = 1;					//cancel item0:ud/lr

	OSD_ShowTitle(&MainMenuStr[item*OSD_LINEOFFSET], OSD_LINEOFFSET);
	
	value = CBSH_Value[item];
	Value_ASCII(value, val_str, item);				//Convert current value to Str.
	Write_OSDReg(val_str, SEL_OSDDISPCODE, 3, 10);	//write value to OSD code buf

	while (T0_0Service)
	{
		press_key = WaitKey();
		if (press_key)				//have pressed key
		{
			switch (press_key)
			{
				case ENTER:
					T0_0Service = 0;	//Exit OSD function
					break;
					
				case DOWN:
					if (++value >= 0x3F)	value = 0x3F;
					break;

				case UP:
					if (--value == 0xFF)	value = 0x00;
					break;

				case MENU:
					CBSH_Value[item] = value;			//store old item value
					if (++item > 7)	item = 1;			//chang select item
														//cancel item0:ud/lr
//					OSD_ShowTitle(&MainMenuStr[item*OSD_LINEOFFSET], OSD_LINEOFFSET);
					Write_OSDReg(&MainMenuStr[item*OSD_LINEOFFSET], SEL_OSDDISPCODE, 13, 0);
					value = CBSH_Value[item];			//restore new item value
					break;
			}

			switch (item)	//set new value to Brightness, Contrast, Saturation or Hue
			{
				case 0: Adj_LRUD(value&0x03);		break;
				case 1:	Adj_Brightness(value<<2);	break;
				case 2:	Adj_Contrast(value<<2);		break;
				case 3:	Adj_Saturation(value<<2);	break;
				case 4:	Adj_Hue(value<<2);			break;
				case 5: Adj_Sharpen(value<<1);		break;
				case 6:	value &= 0x01;
						Adj_Edge(value); 			break;
				case 7:	value &= 0x03;
						Adj_DisplayMode(value);		break;
			}
			if (item)
				Value_ASCII(value, val_str, item);		//Convert current value to Str.
			else
				Value_ASCII(value&0x03, val_str, item);
				
			Write_OSDReg(val_str, SEL_OSDDISPCODE, 3, 10);	//Show current value
		}
	}
	CBSH_Value[item] = value;

//	I2C_Write(EEPROM_WRID, 0, 4 , value_temp);
		//Turn OFF OSD window befor exit the OSD function
	buf[0] = OSDWINOFF;
	Write_OSDReg(buf, SEL_OSDCTRLREG, 1, OSDCTRLREG);	//write one byte
}

/**--------------------------------------------------------------------------
* Name			OSD_ShowTitle(BYTE *str, char ch_no)
*
* Description	Show Title on screen
*
* Flow Chart
*
* Return
*
* DATE          Author          Description
* ===========================================================================
* 2004-07-12    K.M. Ho         This is first time implement
**/
void	OSD_ShowTitle(char *str, char ch_no)
{
	BYTE	buf[2];

		//Turn OFF the OSD window before show OSD menu
	buf[0] = OSDWINOFF;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区亚洲一区| 日韩中文字幕av电影| 在线播放/欧美激情| 97精品电影院| 亚洲欧美一区二区不卡| 色视频成人在线观看免| 亚洲一区日韩精品中文字幕| 欧美日韩另类国产亚洲欧美一级| 免费欧美日韩国产三级电影| 久久久久青草大香线综合精品| 国产不卡视频一区| 6080日韩午夜伦伦午夜伦| 欧美日韩国产三级| 亚洲精品在线观看视频| 日韩毛片视频在线看| 日韩精品三区四区| av在线播放成人| 8x福利精品第一导航| 国产欧美在线观看一区| 国产精品三级视频| 日韩精品视频网| av午夜精品一区二区三区| 欧美精品 日韩| 亚洲欧洲精品一区二区精品久久久| 亚洲妇女屁股眼交7| 成人av在线电影| 欧美一区二区三区四区五区 | 日韩高清不卡一区二区| 精品中文av资源站在线观看| 欧美性生活大片视频| 亚洲欧美综合色| 91在线小视频| 亚洲三级电影网站| 91丨九色丨蝌蚪富婆spa| 欧美日韩一区小说| 亚洲一区视频在线观看视频| 日韩无一区二区| 欧美欧美午夜aⅴ在线观看| 色综合久久综合网| 亚洲三级在线免费| 国产精品国产a级| 日韩一区二区三区精品视频| 日韩欧美一级精品久久| 国产福利91精品一区二区三区| 亚洲成人动漫av| 中文字幕一区二区在线观看| 欧美zozo另类异族| 欧美人动与zoxxxx乱| 91视视频在线观看入口直接观看www | 91啪亚洲精品| 亚洲免费视频成人| 99riav一区二区三区| 国产精品欧美一区二区三区| 国产乱码精品一品二品| 中文字幕精品综合| 91福利视频在线| 日本不卡一二三| 欧美成人vps| 成人国产电影网| 一级特黄大欧美久久久| 精品嫩草影院久久| 91片在线免费观看| 狠狠狠色丁香婷婷综合激情| 中文字幕一区二区视频| 欧美日韩一二三| 韩国精品一区二区| 一区二区高清视频在线观看| 欧美老女人在线| 国产91综合一区在线观看| 国产一区二区三区四区在线观看| 91精品国产麻豆| 色综合欧美在线视频区| 国产精一区二区三区| 亚洲视频在线一区| 久久福利视频一区二区| 亚洲最大成人网4388xx| 国产精品一区二区91| 偷窥少妇高潮呻吟av久久免费| 婷婷夜色潮精品综合在线| 亚洲图片欧美综合| 亚洲综合区在线| 五月天久久比比资源色| 午夜视频在线观看一区| 亚洲成人av电影在线| 亚洲一二三四在线观看| 亚洲va欧美va天堂v国产综合| 性久久久久久久| 日韩av一级片| 丝袜诱惑制服诱惑色一区在线观看| 日韩一区二区三区免费看| 欧美亚洲自拍偷拍| 色乱码一区二区三区88| 92国产精品观看| 99久久综合国产精品| 国产精品一级片| 成人av在线看| 91在线云播放| 在线观看亚洲精品视频| 日本丰满少妇一区二区三区| 91免费视频网址| 91尤物视频在线观看| av在线播放不卡| 99久久免费视频.com| 欧美视频精品在线| 欧美mv日韩mv国产网站app| 欧美一区二区三区精品| 欧美激情自拍偷拍| 亚洲人妖av一区二区| 亚洲成人动漫在线观看| 日韩精品乱码av一区二区| 狠狠色综合播放一区二区| 成人综合在线网站| 欧美伊人久久久久久午夜久久久久| 欧美精品自拍偷拍动漫精品| 日韩精品一区二区三区swag | 狠狠色丁香婷婷综合| 国产成人av电影在线观看| 日韩免费高清av| 伊人夜夜躁av伊人久久| 国产欧美日韩综合精品一区二区 | 日本中文字幕一区| 日韩免费看网站| 亚洲卡通欧美制服中文| 一区二区不卡在线视频 午夜欧美不卡在 | 777xxx欧美| 国产亚洲欧美激情| 日韩美女精品在线| 人禽交欧美网站| 欧美亚洲国产一区在线观看网站| 日韩午夜在线观看视频| 亚洲人成在线观看一区二区| 精品一区免费av| 欧美一二区视频| 亚洲综合丁香婷婷六月香| 国产乱码精品一区二区三区忘忧草 | 色av成人天堂桃色av| 麻豆精品在线播放| 激情综合一区二区三区| 美女看a上一区| 色老汉av一区二区三区| 国产日产欧美一区| 美女国产一区二区三区| 99国产精品国产精品毛片| 久久综合色鬼综合色| 亚洲国产一区二区a毛片| 波多野结衣中文一区| 久久这里只有精品首页| 日韩 欧美一区二区三区| 在线观看国产日韩| 亚洲人被黑人高潮完整版| 国产精品88av| 精品国产亚洲在线| 久久丁香综合五月国产三级网站| 欧美日韩国产综合久久| 亚洲黄色录像片| 色老汉av一区二区三区| 亚洲视频1区2区| 91视频你懂的| 成人欧美一区二区三区小说| 成人精品免费看| 欧美国产97人人爽人人喊| 国产在线精品一区二区| 日韩精品一区二区三区视频播放 | 久久久久久久久97黄色工厂| 久久精品国产99| 欧美成人一区二区三区| 久久精品国产99国产精品| 日韩亚洲电影在线| 久久精品国产澳门| 精品国产乱码久久久久久蜜臀| 奇米影视一区二区三区| 日韩欧美另类在线| 久久精品国产99久久6| 欧美zozo另类异族| 欧美一区二区三区在线电影| 亚洲国产精品一区二区www在线| 欧美在线免费观看亚洲| 亚洲大型综合色站| 欧美乱熟臀69xxxxxx| 蜜臀久久99精品久久久画质超高清 | 欧美一区二区三区影视| 精品一区二区三区影院在线午夜| 欧美成人精品3d动漫h| 久久99国产精品久久99| 久久精品欧美日韩精品| 亚洲人成伊人成综合网小说| 在线观看av不卡| 91成人免费在线| 99精品桃花视频在线观看| 粉嫩av一区二区三区在线播放| 日日夜夜精品视频免费| 亚洲一区二区三区四区五区中文| 中文字幕精品—区二区四季| 国产日产欧美精品一区二区三区| 日韩一区二区中文字幕| 欧美一级爆毛片| 欧美电影免费观看高清完整版| 欧美人狂配大交3d怪物一区| 欧美日韩高清一区二区不卡| 欧美亚日韩国产aⅴ精品中极品|