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

📄 osdmenu.h

📁 此程序为twell8806驱动程序
💻 H
字号:
//osdmenu.h
//LJY10292001
#ifndef __OSDMENU__
#define __OSDMENU__

//=======================================================================
// 
//BYTE GetOSDDuration(void);

void ResetVideoValue(void);
//#if defined( SUPPORT_PC ) || defined( SUPPORT_DTV )
//void ResetPCValue(void);
//#endif
BYTE GetOSDMenuLevel( void );

void DrawMenulist(BYTE);
void Display_EnterPin(void);
void OSDHighMenu_sub(void);
void ResetOSDValue(void);
//BYTE OnChangingValue(void);
//Not used yet *******************BYTE OnChangingTime(void);

//WORD GetOSDclock(void);

void InitOSDMenu(void);
BYTE CloseOSDMenu(void);
void OpenOSDMenu(void);
void OSDHighMenu(void);
void OSDSelect(void);
void OSDCursorMove(BYTE flag );
void OSDLeftRight(BYTE flag );
void OSDValueUpDn(BYTE flag);
WORD SetItemValue( BYTE id, BYTE flag );
BYTE DoAction(BYTE id);

BYTE SaveValue1(void);
void ClearValueWin(void);

void OSDNumber( BYTE num );

void Set4WideScreen(BYTE id);

void SetRGBContrast( BYTE id, BYTE val );
BYTE SetPCColorTemp(BYTE flag);
void ResetPanelAttributeValue(void);
WORD GetItemValue( BYTE);
void DisplayViewBar( WORD,BYTE);
void DrawNum(WORD, CODE_P struct NumType *, WORD);
void DrawStringByLang( WORD, CODE_P struct EnumType *, WORD);

void DisplayVolumebar(BYTE val);
BYTE GetOSDLang(void);
void InitOSDMenuXY(void);

void Display_TVGuide_Window(void);
void Display_TVGuide_Status(void);

void ChangeVchip_LevelCursor(BYTE);
void ChangeVchip_ContentCursor(BYTE);
void Select_VchipLevel(void);
void SetVideoMode(BYTE mode);
BYTE GetVideoDatawithOffset(BYTE offset);
void SetVideoContrast(BYTE newv);
void SetVideoBrightness(BYTE newv);
void SetVideoHue(BYTE newv) ;
void SetVideoSaturation(BYTE svtype, BYTE newv) ;
BYTE SetVideoSharpness(BYTE flag) ;


struct MenuType {
	BYTE	width,	height;
	BYTE	TitleColor;	
	BYTE	CursorColor;
};

struct NumType {
	BYTE	PrePostCharLen;		// high nibble(pre) / low nibble(post)
	BYTE	PrePostChar[4];
};

struct NumberStringType {
	BYTE	x, y;
	BYTE    width;
	BYTE	BackColor;
	BYTE	Radix;
	BYTE	NumColor;
	BYTE    MaxLen;				// maximum length of string
	BYTE	PrePostCharLen;		// high nibble(pre) / low nibble(post)
	BYTE	PrePostChar[3];
};

struct TimeType {
	BYTE	x, y;
	BYTE    width;
	BYTE	BackColor;
	BYTE	Format;				//_24H_TIME
	BYTE	TimeColor;
	BYTE    CursorColor;
};

struct EnumType {
	BYTE    Sz;//size
	BYTE    ByLang;
	BYTE	Str[15];			// doesn't matter the size !!!
};

#define ICON_CH_SZ		2
//#define BAR_NUM_SZ		4
#define ICON_BUF_SZ		2
struct DefineMenu {
	//WORD						Icon[ICON_BUF_SZ];	
	CODE_P	BYTE				*Icon;
	CODE_P	BYTE				**Desc;				
	BYTE						PreFnId, 
								PostFnId;
//	void		(*CalltoFunction)(void);				    // Un/Dn/Sel Function
	BYTE						IconColor;			//NIL: not to display icon
	BYTE						DescColor;			//NIL: not to display desc. (IconColor==NIL && DescColor==NIL)->Last Item
	CODE_P struct DefineMenu	*Child;
	BYTE						Type;				// MENU, CHOICEMENU, BAR, NUMBER, TIME, ACTION, ENUM_STRING
	BYTE						ActiveWithCursor;
	BYTE						Id;
	CODE_P BYTE					*TypeData;	//MenuType, BarType, NumType,,,
} ;

struct PictureInfo {

	BYTE Register_Addr;
	BYTE EEPROM_Addr;
	CODE_P struct RegisterInfo *Control_Range;
};


//-------------------------------------------------------------------
// OSD Window Information
//-------------------------------------------------------------------
// Window Number
#define OSDCURSORWINDOW			1
#define 
			OSDCURSORWINDOW+1
#define OSDMENU_TOPWIN			OSDCURSORWINDOW+2
#define OSDMENU_TITLEWIN		OSDCURSORWINDOW+3
#define OSDBARWINDOW			OSDCURSORWINDOW

#define TECHWELLOGO_OSDWIN	1	
#define TVINFO_OSDWIN		2	
#define FONTTEST_OSDWIN		2	
#define INPUTINFO_OSDWIN	3  
#define RATINGINFO_OSDWIN	1	
#define PCINFO_OSDWIN		4	

//-------------------------------------------------------------------
// Window Start address
#define OSDMENU_MAINADDR	0
#define OSDMENU_SUBADDR     OSDMENU_MAINADDR+10    //25*9:196
#define OSDMENU_BARADDR		175 //OSDMENU_SUBADDR+225    //256   //25x2:50

#define INPUTINFO_ADDR		160	// 9x1:9
#ifdef WQVGA
#define INPUTINFO1_ADDR		INPUTINFO_ADDR+17	//17x3:51
#else
#define INPUTINFO1_ADDR		INPUTINFO_ADDR+34	//17x2:51
#endif

#define MUTEINFO_ADDR	    INPUTINFO1_ADDR+51	// 4x1:4
#define TVCHINFO_ADDR		MUTEINFO_ADDR//324	// 3X1:3
#define LOGO_ADDR			0
#define RATINGINFO_ADDR		0	//addr:210(8x1:8)
#define PCMEASUREINFO_ADDR  OSDMENU_BARADDR //10x1


//--------------------------------------------------------------------
// OSD Menu Position Range
#if ((defined WQVGA) && (defined ANALOG_7INCH))// || (defined QVGA) 
	#define OSD_PHR_ PHR_/2
#else
	#define OSD_PHR_ PHR_
#endif

#define OSDHSTART_MAX (OSD_PHR_-(12+1)*25 - 56*2 -4)  //PHR - (pixelsize +Hspace)*MenuWidth - Hborder*2 - outlinewidth*2
#define OSDVSTART_MAX (PVR_-(18+11)*9 - 5*2 ) //  PVR - (Linesize+Vspace)*MENU_HEIGHT - Vborder*2  - outlinewidth*2

#define OSDMENUX_MIN 1//0
#define OSDMENUX_MAX (OSDHSTART_MAX>>3)
#define OSDMENUX_50  (OSDHSTART_MAX>>4)

#define OSDMENUY_MIN 2//0
#define OSDMENUY_MAX (OSDVSTART_MAX>>2)
#define OSDMENUY_50  (OSDVSTART_MAX>>3)

//--------------------------------------------------------------------
// OSD Menu Width, Height 

#define	TITLE_MAX_DESC			25	//
#define TOTAL_MAX_HIGHT			9

#define TOPMENU_WIDTH			2
#define TOTAL_TOP_HEIGHT		5	// Include blank line!

#ifdef SUPPORT_TV
#define TOPMENU_HEIGHT			5	
#else
#define TOPMENU_HEIGHT			4	
#endif

#define MENU_WIDTH				25 
#define MENU_HEIGHT				7//6 


#define BAR_LENGTH 8
#define BARNUM_LENGTH 11
#define BARWIN_WIDTH			25

#define BACK_COLOR				BG_COLOR_CYAN
#define DEFAULT_COLOR			BG_COLOR_CYAN   | CH_COLOR_WHITE
//#define ACTIVE_COLOR			BG_COLOR_YELLOW | CH_COLOR_WHITE
#define TITLE_BACK_COLOR		BG_COLOR_MAGENTA
#define TITLE_COLOR				TITLE_BACK_COLOR | CH_COLOR_YELLOW
#define COMMENT_COLOR			TITLE_BACK_COLOR | CH_COLOR_WHITE
#define CURSOR_COLOR			BG_COLOR_YELLOW | CH_COLOR_BLUE
#define OSD_INFO_COLOR			DEFAULT_COLOR

#define BAR_COLOR				DEFAULT_COLOR	
#define BAR_NUM_COLOR			DEFAULT_COLOR
#define NUM_COLOR				DEFAULT_COLOR

#define OSDMENU_OUTLINE_COLOR	BG_COLOR_BLUE


//DisplayedOSD
//		new	  |	MENU	TVINFO		CC		INPUTINFO		PCINFO		RATINGINFO
//	current   |
//============|=========================================================================
//	MENU	  |			TVINFO		--		INPUTINFO		PCINFO		MENU + RATINGINFO	
//			  |						 
//------------|-------------------------------------------------------------------------
//	TVINFO	  |	MENU	TVINFO		--		INPUTINFO		PCINFO		TVINFO+RATING
//------------|-------------------------------------------------------------------------
//	CC		  |	MENU->	TVINFO->			INPUTINFO->		PCINFO		RATINGINFO
//			  |	 CC		 CC					 CC				 		 
//------------|-------------------------------------------------------------------------
//	INPUTINFO |	MENU	TVINFO		--		INPUTINFO		PCINFO		--
//------------|-------------------------------------------------------------------------
//	PCINFO	  |	MENU	x			x		INPUTINFO		PCINFO		x
//------------|-------------------------------------------------------------------------
//	RATINGINFO|	MENU	TVINFO	   RATING   INPUTINFO		x			RATINGINFO
//									

//=======================================================================================
// OSD Menu Constant define.
//=======================================================================================
//Time type
#define _24H_TIME		1

//for previous, next, parent or child
#define YES				0xfe	
#define NO				0


//#define OVERWRITE		0
//#define POPUP			1

//CursorMove
#define VERT			0
#define HORI			1

//Type of MenuItem
#define OSDMENU			1
#define CHOICEMENU		2
#define ACTION			3
#define BAR				4
#define NUMBER			5
#define CHOICE			6
#define ENUM_STRING		7 //YESNO			7
#define CHOICE1			8
#define TIME			9
#define NUMBER_STRING	10

//Bar type
#define LEFT_FILLED		1
#define RIGHT_FILLED	2
#define NO_FILLED		3

//OSDmenu up and down key
#define UP					1
#define DN					2
#define RIGHT				3
#define LEFT				4

// Action Id
#define	DISP_INFO			0x16

#define	INPUTSELECTION				0x2f

#define CHANGE_TO_COMPOSITE			(0x20|COMPOSITE)			// Low nibble need to start from 1 
#define CHANGE_TO_SVIDEO			(0x20|SVIDEO)				// so that it match with COMPOSITE...
#define CHANGE_TO_COMPONENT			(0x20|COMPONENT)		
#define CHANGE_TO_DTV				(0x20|DTV)		
#define CHANGE_TO_TV				(0x20|TV)					
#define CHANGE_TO_PC				(0x20|PC)					
#define CHANGE_TO_DIGITALVGA		(0x20|DIGITALVGA)			
#define CHANGE_TO_SCART				(0x20|SCART)				


#define OSDPOSITIONMODE     0x10
#define OSD_VPOS			0x11
#define OSD_HPOS			0x12
#define OSD_HALFTONE		0x13
#define OSD_DURATION		0x14
#define RESET_OSDVALUE		0x15
#define OSDLANG				0x16

#define PANEL_CONTRAST		0x58
#define PANEL_BRIGHTNESS	0x59
#define PANEL_HUE			0x5a
#define PANEL_SHARPNESS		0x5b
#define PANEL_SATURATION	0x5c

#define PC_VPOS				0x43
#define PC_HPOS				0x44
#define PC_HSIZE			0x4d

#define PC_CLOCK			0x45
#define PC_PHASE			0x46

#define AUTOADJUST			0x47
#define AUTOADJUST2			0x48
//#define SAVE_AUTOADJUST		0x49
#define RESET_AUTOADJUST	0x4a

#define PCCOLORADJUST		0x4b
#define SAVE_COLORADJUST	0x4c
//#define RESET_COLORADJUST	0x4d

#define RESET_PCVALUE		0x4e

#define PC_COLOR_MODE		0x3f
#define PC_COLOR_TEMP		0x30
#define PC_COLOR_MODE1		0x31
#define PC_COLOR_MODE2		0x32
#define PC_COLOR_MODE3		0x33
#define PC_COLOR_USER		0x34
#define PC_COLOR_R			0x35
#define PC_COLOR_G			0x36
#define PC_COLOR_B			0x37

#define VIDEO_MODE			0x90
#define VIDEO_MODE1		0x91
#define VIDEO_MODE2		0x92
#define VIDEO_MODE3		0x93
#define VIDEO_USER		0x94
#define VIDEO_CONTRAST		0x95
#define VIDEO_BRIGHTNESS	0x96
#define VIDEO_SATURATION	0x97
#define VIDEO_HUE			0x99
#define VIDEO_SHARPNESS		0x9a
#define RESET_VIDEOVALUE	0x9b
#define VIDEOPICTURE		0x9f

#define INPUTSTD			0x6f
#define CHANGE_TO_AUTO		0x60
#define CHANGE_TO_NTSC		(0x60 | NTSC)
#define CHANGE_TO_PAL		(0x60 | PAL)
#define CHANGE_TO_SECAM		(0x60 | SECAM)
#define CHANGE_TO_NTSC4		(0x60 | NTSC4)
#define CHANGE_TO_PALM		(0x60 | PALM)
#define CHANGE_TO_PALN		(0x60 | PALN)
#define CHANGE_TO_PAL60		(0x60 | PAL60)




#define CLOSED_CAPTION		0x7f
#define CLOSEDCAP_OFF		0x70
#define CLOSEDCAP_CC1		0x71
#define CLOSEDCAP_CC2		0x72
#define CLOSEDCAP_CC3		0x73
#define CLOSEDCAP_CC4		0x74
#define CLOSEDCAP_T1		0x75
#define CLOSEDCAP_T2		0x76
#define CLOSEDCAP_T3		0x77
#define CLOSEDCAP_T4		0x78

#define TV_GUIDE			0x8f
#define NO_VCHIP_LOCK		0
#define VCHIP_TV_Y			1
#define VCHIP_TV_Y7			2
#define VCHIP_TV_G			3
#define VCHIP_TV_PG			4
#define VCHIP_TV_14			5
#define VCHIP_TV_MA			6
#define PASSWORD			0x87
#define NEW_PASSWORD		0x88
#define CHK_PASSWORD		0x89
#define RET_CHK_PASSWORD	0x8a

#define MPAA_RATING			0x9f
#define NO_MPAA_RATING		0
#define MPAA_G				1
#define MPAA_PG				2
#define MPAA_PG_13			3
#define MPAA_R				4
#define MPAA_NC_17			5
#define MPAA_X				6

#define TVINSTALL			0xa0
#define SCAN_CHANNEL		0xa1
#define AIR_CABLE_TV		0xa3
#define STORE_CLEAR_TVCHN	0xa4
#define MTS					0xa5
#define EDIT_CHANNEL		0xa6
	#define		MTS_STEREO			0//0x10
	#define		MTS_MONO			1//0x11

#define AUDIO_VOLUME		0xb8
#define AUDIO_BALANCE		0xb9
#define AUDIO_BASS			0xba
#define AUDIO_TREBLE		0xbb
#define AUDIO_LOUDNESS		0xbc
#define AUDIO_EFFECT		0xbd
#define AUDIO_MUTE			0xbe

#define MANUAL_TUNE_CHANNEL	0xab
#define FINE_TUNE_CHANNEL	0xac
#define STORE_PALCHANNEL	0xad

//#define CLEAR_TVCHN			0xb0
//#define STORE_TVCHN			0xb1

#define WIDESCREEN			0xc0
#define WIDESCREEN_NORMAL	0 
#define WIDESCREEN_WIDE		1 
#define WIDESCREEN_PANO		2
#define WIDESCREEN_FULL		3 
#define WIDESCREEN_ZOOM		4 

#define SYSTEM_CLOCK		0xd1
#define SYSTEM_CLOCK_H		0xd2
#define WAKEUP_TIME			0xd3
#define WAKEUP_TIME_H		0xd4
#define WAKEUP_PR			0xd5
#define OFF_TIME			0xd6
#define OFF_TIME_H			0xd7
#define SLEEP_TIMER			0xd8

#define OSDLANGI			0xe8
#define OSDLANGII			OSDLANGI+1
#define OSDLANGIII			OSDLANGI+2
#define OSDLANGIV			OSDLANGI+3


#define TOHIGHMENU			0xf1
#define MOVECURSOR2FIRST	0xf2
#define RESET_ALL			0xf3
#define EXITMENU			0xf4

#define CHOICE1_VAL			0xfc
#define CHOICE_VAL			0xfd
#define BAR_VAL				0xfe
#define NUM_VAL				0xff



#endif	// __OSDMENU__

⌨️ 快捷键说明

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