📄 osd.h
字号:
#define MSG_SHOWDISPLAY (UPPER_MSG_BASE+ 50)
// DVD.036, add two message for title/chapte selection function
//alex1.22a,20040204 combine gototime , search,bookmark
//Combine MSG_Search/MSG_GoToTime
/**********************************************************************/
//#define MSG_SETSEARCH (UPPER_MSG_BASE+ 50)
//#define MSG_SEARCH (UPPER_MSG_BASE+ 51)
#define MSG_SETSEARCH MSG_SETGOTOTIME
#define MSG_SEARCH MSG_GOTOTIME
/**********************************************************************/
//DVD_039-1
#define MSG_TITLE_TIME (UPPER_MSG_BASE+ 52)
#define MSG_REMAIN_TITLE_TIME (UPPER_MSG_BASE+ 53)
#define MSG_CHAPTER_TIME (UPPER_MSG_BASE+ 54)
#define MSG_REMAIN_CHAPTER_TIME (UPPER_MSG_BASE+ 55)
// LLY.101-2
#define MSG_STRING (UPPER_MSG_BASE+ 56)
#define MSG_VIDEO_OUTPUT (UPPER_MSG_BASE+ 57)
#define MSG_ERRCODE (UPPER_MSG_BASE+ 58)
// LLY.161-4, add new message for abnormal disc
// Ex. Encrypt CVD/ Error Region Code DVD/ CDROM disc/ Scratched disc
#define MSG_ABNORMAL_DISC (UPPER_MSG_BASE+ 59)
//CoCo.jpeg
#define MSG_THUMBNAIL_PAGE (UPPER_MSG_BASE+ 60)
// LLY.274p-2, add rotate/ flip message for JPEG title
#define MSG_ROTATE (UPPER_MSG_BASE+ 61)
#define MSG_FLIP (UPPER_MSG_BASE+ 62)
#define MSG_JPEG_EFFECT (UPPER_MSG_BASE+ 63)
// LLY2.78b-3, support "Program Play" message
#define MSG_PROGRAM_PLAY (UPPER_MSG_BASE+ 64)
#define MSG_DECODE_ERROR (UPPER_MSG_BASE+ 65) //CoCo2.32, add this message to show the count of decode error
// LLY.049-1, in CENTRAL_OSD mode, following message display in UPPER1 corner
#ifdef CENTRAL_OSD
#define MSG_SPST_CTL (UPPER_MSG_BASE+ 66)
#define MSG_AST_CTL (UPPER_MSG_BASE+ 67) // LLY.099b-1
#define MSG_AUDIO_OUTPUT_CTL (UPPER_MSG_BASE+ 68)
#endif // #ifdef CENTRAL_OSD
// Notice: The last message can't exceed (UPPER_MSG_BASE+69)
// (MSG_OSD_BASE+ 70)==(UPPER_MSG_BASE+69), because (MSG_OSD_BASE+1)==(UPPER_MSG_BASE)
#define UPPER_MSG_END (MSG_OSD_BASE+ 70) // index 70
// ------------------------------------------------------------------
// [2] Center Corner Messages
#define CENTER_MSG_BASE UPPER_MSG_END // index 70
#define MSG_CLEARPROGRAM (CENTER_MSG_BASE+0) //MSG_OSD_BASE+ 70
#define MSG_PROGRAM (CENTER_MSG_BASE+1) //MSG_OSD_BASE+ 71
#define MSG_SETPROGRAM (CENTER_MSG_BASE+2) //MSG_OSD_BASE+ 72
#define MSG_ENTER (CENTER_MSG_BASE+3) //MSG_OSD_BASE+ 73
#define MSG_BOOKMARK (CENTER_MSG_BASE+4) //MSG_OSD_BASE+ 74
// LLY.172p, add for auto-upgrade usage
#define MSG_AUTOUPGRADE (CENTER_MSG_BASE+5) //MSG_OSD_BASE+ 75
#define CENTER_MSG_END (MSG_OSD_BASE+ 80)
// ------------------------------------------------------------------
// [3] Bottom Corner Messages, if CENTRAL_OSD mode, it means UPPER2 message
#define BOTTOM_MSG_BASE CENTER_MSG_END // index 80
#define MSG_AUDIO (BOTTOM_MSG_BASE+0) //MSG_OSD_BASE+ 80
#define MSG_VOLUME (BOTTOM_MSG_BASE+1) //MSG_OSD_BASE+ 81
#define MSG_MUTE (BOTTOM_MSG_BASE+2) //MSG_OSD_BASE+ 82
// Brian1.00
// MSG_KEYUP, MSG_KEYDOWN and MSG_KEY_NORMAL is replaced by MSG_KEY
#define MSG_KEY (BOTTOM_MSG_BASE+3) //MSG_OSD_BASE+ 83
#define MSG_KEY_DUMMY1 (BOTTOM_MSG_BASE+4) //MSG_OSD_BASE+ 84
#define MSG_KEY_DUMMY2 (BOTTOM_MSG_BASE+5) //MSG_OSD_BASE+ 85
//#define MSG_KEYUP (BOTTOM_MSG_BASE+3) //MSG_OSD_BASE+ 83
//#define MSG_KEYDOWN (BOTTOM_MSG_BASE+4) //MSG_OSD_BASE+ 84
//#define MSG_KEYNORMAL (BOTTOM_MSG_BASE+5) //MSG_OSD_BASE+ 85
#define MSG_ECHO (BOTTOM_MSG_BASE+6) //MSG_OSD_BASE+ 86
#define MSG_SURROUND (BOTTOM_MSG_BASE+7) //MSG_OSD_BASE+ 87
#define MSG_3D (BOTTOM_MSG_BASE+8) //MSG_OSD_BASE+ 88
#define MSG_ANGLE_CTL (BOTTOM_MSG_BASE+9) //MSG_OSD_BASE+ 89
// LLY.278, add for sound effect message
// Notice: SOUND_EFFECT may contain Surround/ Equalize !!
#define MSG_SOUND_EFFECT (BOTTOM_MSG_BASE+10) //MSG_OSD_BASE+ 90
// LLY.049-1, in non-CENTRAL_OSD mode, following message display in LB corner
#ifndef CENTRAL_OSD
#define MSG_SPST_CTL (BOTTOM_MSG_BASE+17) //MSG_OSD_BASE+ 97
#define MSG_AUDIO_LANGUAGE_CTL (BOTTOM_MSG_BASE+18) //MSG_OSD_BASE+ 98
#define MSG_AST_CTL (MSG_AUDIO_LANGUAGE_CTL) //MSG_OSD_BASE+ 98
#define MSG_AUDIO_OUTPUT_CTL (BOTTOM_MSG_BASE+19) //MSG_OSD_BASE+ 99
#endif // #ifndef CENTRAL_OSD
#define BOTTOM_MSG_END (MSG_OSD_BASE+ 100)
// ------------------------------------------------------------------
// [4] Other Messages, which may don't display MSG
// Other Messages that don't belong to upper/center/bottom corner
#define OTHER_MSG_BASE BOTTOM_MSG_END // index 100
#define MSG_STOPWAIT (OTHER_MSG_BASE+0) //MSG_OSD_BASE+ 100
#define MSG_PLAYLIST (OTHER_MSG_BASE+1) //MSG_OSD_BASE+ 101
#define MSG_LOGO (OTHER_MSG_BASE+2) //MSG_OSD_BASE+ 102
#define MSG_DIGESTNUMBER (OTHER_MSG_BASE+3) //MSG_OSD_BASE+ 103
#define MSG_MOTION (OTHER_MSG_BASE+4) //MSG_OSD_BASE+ 104
#define MSG_POWER (OTHER_MSG_BASE+5) //MSG_OSD_BASE+ 105
#define MSG_OSDRECOVER (OTHER_MSG_BASE+6) //MSG_OSD_BASE+ 106
#define MSG_IGNORENEXT (OTHER_MSG_BASE+7) //MSG_OSD_BASE+ 107
//#define MSG_FORCEDISPLAY (OTHER_MSG_BASE+8) //MSG_OSD_BASE+ 108
#define MSG_DISCSTATUS (OTHER_MSG_BASE+9) //MSG_OSD_BASE+ 109
#define MSG_CDROM_DECODE (OTHER_MSG_BASE+10) //MSG_OSD_BASE+ 110
#define MSG_TOTALTRACKS (OTHER_MSG_BASE+11) //MSG_OSD_BASE+ 111
// LLY.160, merger MSG_SCR and MSG_OSDGAME into MSG_OSDAPP
#define MSG_OSDAPP (OTHER_MSG_BASE+12) //MSG_OSD_BASE+ 112
// Messages that are not used in OSD module (only used in PANEL module)
#define MSG_PALTITLE (OTHER_MSG_BASE+13) //MSG_OSD_BASE+ 113
// *TCH** 97.6.30; Please be continue NO.
#define MSG_LED1 (OTHER_MSG_BASE+14) //MSG_OSD_BASE+ 114
#define MSG_LED2 (OTHER_MSG_BASE+15) //MSG_OSD_BASE+ 115
#define MSG_LED3 (OTHER_MSG_BASE+16) //MSG_OSD_BASE+ 116
#define MSG_LED4 (OTHER_MSG_BASE+17) //MSG_OSD_BASE+ 117
// ** TCH0.361; begin...
#define MSG_UPDATE (OTHER_MSG_BASE+18) //MSG_OSD_BASE+ 118
// Brian0.84-2nd, sue for FM, Thumbnail, ... to inform OSD module when enter/exit their UI
#define MSG_GUI (OTHER_MSG_BASE+19) //MSG_OSD_BASE+ 119
#define MSG_FOLDER (OTHER_MSG_BASE+20) //MSG_OSD_BASE+ 120
#define MSG_PSCAN (OTHER_MSG_BASE+21) //MSG_OSD_BASE+ 121
#define MSG_STATUS (OTHER_MSG_BASE+22) //MSG_OSD_BASE+ 122 // Brian0.90
#ifndef SHOW_POWERON_BAR // Xuli1.05
#define OTHER_MSG_END (MSG_OSD_BASE+ 123)
#else
#define MSG_PWRON_BAR (OTHER_MSG_BASE+23) //MSG_OSD_BASE+ 123
#define OTHER_MSG_END (MSG_OSD_BASE+ 124)
#endif //#ifndef SHOW_POWERON_BAR
// ------------------------------------------------------------------
// [5] Display Corner Messages
#define DISP_MSG_BASE OTHER_MSG_END
#define MSG_DISPLAY (DISP_MSG_BASE+ 0) //MSG_OSD_BASE+ 123
//#define MSG_DISCTYPE (DISP_MSG_BASE+ 1) //MSG_OSD_BASE+ 124
#define DISP_MSG_END (MSG_OSD_BASE+ 130)
// ------------------------------------------------------------------
// [6] MP3 Menu Message
// LLY.049, add and rename some message for MP3 selection and active highlight
// LLY.045, pull-up MP3 relative message than Setup relative message
#define MP3_MSG_BASE DISP_MSG_END
#define MSG_MP3_MENU (MP3_MSG_BASE+ 0) // MSG_OSD_BASE+ 130
#define MSG_MP3_ACTIVE (MP3_MSG_BASE+ 1) // MSG_OSD_BASE+ 131
#define MSG_MP3_XACTIVE (MP3_MSG_BASE+ 2) // MSG_OSD_BASE+ 132
#define MSG_MP3_SELECT (MP3_MSG_BASE+ 3) // MSG_OSD_BASE+ 133
#define MSG_MP3_XSELECT (MP3_MSG_BASE+ 4) // MSG_OSD_BASE+ 134
#define MP3_MSG_END (MSG_OSD_BASE+ 140)
// ------------------------------------------------------------------
// define max OSD message number for check -- aMsgChk[]
// because it's unnecessary to check Setup menu part message
#define MAX_MSGNO_FOR_CHECK (MP3_MSG_END)
// [7] Setup Menu Message
#define SETUP_MSG_BASE MP3_MSG_END
#define SETUP_MSG_END (MSG_SETUP_MAIN_BASE+1) //(MSG_OSD_BASE+ 200)
//CoCo.052
//Message definitions for MAIN menu:
#define MSG_SETUP_MAIN_BASE SETUP_MSG_BASE
/////////////////////////////////////////////////////////
// ******* Extern variable Area *************
// Notice: Put in last area is better, because some item must refer constant define
// [1] the boundary for screen saver mode -- LLY.043
extern WORD __wMinSCRX; // left boundary
extern WORD __wMinSCRY; // top boundary
extern WORD __wMaxSCRX; // right boundary
extern WORD __wMaxSCRY; // bottom boundary
extern BYTE _bRegMaxChar; // keep max char number within one region
extern BYTE _bSpace_1stOSD; // keep the space from to 1st OSD
extern BYTE _bSpace_LastOSD; // keep the space from last OSD to CHARNUM
extern WORD _wRegStartPxl; // keep the start pixel for active region
extern WORD _wRegEndPxl; // keep the end pixel for each region
extern BYTE __bMsgString[MAXNO_OF_MSG_STRING+1]; // for MSG_STRING usage
extern STATUS gcShowStatus; // ** TCH2.37;
// [3] The accessing index to fill (CHAR_INDEX | FONT_INDEX) -- LLY.172r
#ifdef USE_LITTLE_ENDIAN
extern BYTE aFontArrayIdx[CHARNUM];
#endif // #ifdef USE_LITTLE_ENDIAN
// [4] Keep LOGO format -- LLY.276p
extern BYTE __bLOGO;
#define LOGO_NONE 0
#define LOGO_DEFAULT 1
#define LOGO_JPEG 2
#define LOGO_CDG 3 //LJY1.10, for CDG
// LLY2.80, use "bit[7]" to check if the LOGO cause from OPEN/CLOSE action
#define LOGO_FROM_OPEN 0x80
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
// function prototype
void OSD_Initial(void);
void OSD_LoadOSDLanguage(BYTE bLangType); // LLY.100
void OSD_Output(BYTE bMessage, WORD wParam, BYTE bSeconds);
void OSD_SetPosition(int row, int column);
void OSD_Trigger(WORD wTime);
void OSD_ShowBitmap(BYTE bSCRMode); // LLY.043
void OSD_SetSCR_Position(void); // brian.155
void OSD_FillHeadtoDRAM(BYTE bStage); // LLY.101
// Brian0.91, trigger function for those OSD operation that need to be partitioned into stages
void OSD_StageTrigger(void);
void OSD_RecoverOSD(void); // Brian1.25
void OSD_LoadFontTable(void); // Brian1.25, always call this to load font table
// Alan2.36, always call this to load local font table
#ifdef SUPPORT_UNICODE
#define FONTABLE_ADDR 0x180000L
extern void OSD_LoadLocalFontTable(void);
extern void OSD_LoadLocalFontTable0(DWORD dwAddr, WORD wSize);
extern void OSD_LoadLocalFontTable1(DWORD dwAddr, WORD wSize);
/*
extern void OSD_LoadLocalFontTable2(DWORD dwAddr, WORD wSize);
extern void OSD_LoadLocalFontTable3(DWORD dwAddr, WORD wSize);
extern void OSD_LoadLocalFontTable4(DWORD dwAddr, WORD wSize);
extern void OSD_LoadLocalFontTable5(DWORD dwAddr, WORD wSize);
extern void OSD_LoadLocalFontTable6(DWORD dwAddr, WORD wSize);
*/
#endif
#ifdef SUPPORT_FONT_TABLE_CHECKSUM // Brian1.25
extern WORD __wFontableChecksum;
extern WORD OSD_FontableChecksum(void);
#endif
/////////////////////////////////////////////////////////
// penal relative function prototyep
void PANEL_Initial(void);
void PANEL_Output(BYTE bMessage, WORD wParam);
void PANEL_Trigger(WORD wTime);
///////////////////////////////////////////////////////////
// protect function: internal function
// while will be used for OSD relative module
void _OSD_FillFontTabletoDRAM(DWORD dwAddr, BYTE* pbArray); // LLY.047
void _OSD_PushMessage(BYTE bMessage, WORD wParam, BYTE bSec, BYTE bCorner);
void _OSD_SwitchOSDLanguage(BYTE bOSDLanguage);
BYTE _OSD_LoadCommonFontTable(BYTE bTable); // LLY.171-4
void _OSD_LoadFontTable(BYTE bFontType); // LLY.100
void _OSD_PreInitial(BYTE bFontType); // LLY.100
void _OSD_SetNormalOSDRegion(void); //CoCo.230, set the normal OSD region.
// Brian2.39
void OSD_AdjustOSDPos(void);
void OSD_ShowHighlight (BYTE bShow); // Brian2.39a-2
// [5] The depth for each corner's message stack -- LLY.172r
#define MAX_DEPTH_OF_MSG_STACK 4
// for VP
#define MSG_INITIAL 0
#define MSG_CLEAR 100
#define MSG_INITIAL_PALETTE 101
#define MSG_DEFAULT_STATE 102
#define MSG_CLEAR_ALL 103
#ifdef SHOW_6_DISPLAY_MODE
#define MSG_DIS_OFF 104 //wendy
#define MSG_DISC 105//wendy
#define MSG_ELAPSETIME 106//wendy
#define MSG_REMAINTIME 107//wendy
#endif
#define CHAR_UNKNOW CHAR_DASH
//void _OSD_ClearNUStackMessage(BYTE bMessage)
void _OSD_RecoverUI(BYTE bMessage);
void _OSD_OutputProcess(BYTE bMessage, WORD wParam, BYTE bSec);
#define OSD_OUTPUT_PROCESS_MACRO(mbMessage, mwParam, mbSec)\
{\
_OSD_OutputProcess(mbMessage, mwParam, mbSec);\
PANEL_Output(mbMessage, mwParam);\
}
#define OSD_UI_NONE 0
#define OSD_UI_DISPLAY 1
#define OSD_UI_FM 2
#define OSD_UI_CDDA 3
#define OSD_UI_SETUP 4
#define OSD_UI_THUMBNAIL 5
#define OSD_UI_PROGRAM_LIST 6
#define OSD_UI_SEARCH 7
#define OSD_UI_DVD_PROGRAM 8
#define OSD_UI_DIGEST 9 // Brian1.00
#define OSD_UI_NUM (OSD_UI_DIGEST+1)
// Brian1.00
#define VOL_DISPLAYED 1
#define KEY_DISPLAYED 2
#define ECHO_DISPLAYED 4
typedef struct
{
BYTE bMessage;
WORD wParam;
BYTE bSec;
} OSDMESSAGE;
extern BYTE _bCurrentUI;
#ifdef __cplusplus
}
#endif // #ifdef __cplusplus
#endif //__OSD_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -