📄 osdmenu.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 + -