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

📄 osdnd.h

📁 车载电子影音系统dvd播放系统原程序代码
💻 H
字号:
//**************************************************************************
//         Copyright (c) 2003, Cheertek Inc . All rights reserved.
//         D300, all right reserved.

//	Product	: WinDVD Firmware

//	Date	: 2003.1.23
//	Author	: Cheertek (D300 CoCo Chiang)
//	Purpose	: Provide the UI for normal display.
//	Sources	: OSDVP.c
//***************************************************************************
#ifndef __OSDND_H__
#define __OSDND_H__

//The definitions for normal display
//define the mix ratio of the background for normal display.
#define OSDND_MIX_RATIO_BACKGROUND                      28

#ifdef SUPPORT_FONT_26
#define OSDND_FONT_HEIGHT                               26
#else
#define OSDND_FONT_HEIGHT                               32
#endif

//define the index of the font
#define OSDND_FONT_INDEX                                1

//define max "dot" when loading disc. For example, the max number of dots are 3 in "Loading..."
#define OSDND_MAX_DOT_NUM_FOR_LOADING                   3

//define the regions
#define OSDND_UPPER_RIGHT_REGION                        0
#define OSDND_BOTTOM_REGION                             1
#define OSDND_UNKNOWN_REGION                            2

//define the distance between the end of the background and the display.
#ifdef SAMLL_DISPLAY_MODE_2 //CoCo.230, show small display mode.
#define OSDND_UPPER_BACKGROUND_RIGHT_DISPLAY_DISTANCE_H 0 //24 //CoCo1.24, for OSD's horizontal position move
#define OSDND_UPPER_BACKGROUND_RIGHT_DISPLAY_DISTANCE_V 0 //6
#else
#define OSDND_UPPER_BACKGROUND_RIGHT_DISPLAY_DISTANCE_H 40 //24 //CoCo1.24, for OSD's horizontal position move
#define OSDND_UPPER_BACKGROUND_RIGHT_DISPLAY_DISTANCE_V 20 //6
#endif

//define the background region for upper right message
#define OSDND_UPPER_BACKGROUND_START_H                  0
#define OSDND_UPPER_BACKGROUND_START_V                  0
#ifdef SAMLL_DISPLAY_MODE_2 //CoCo.230, show small display mode.
#define OSDND_UPPER_BACKGROUND_RIGHT                    592
#else
#define OSDND_UPPER_BACKGROUND_RIGHT                    640
#endif
#define OSDND_UPPER_BACKGROUND_BOTTOM                   (OSDND_UPPER_BACKGROUND_START_V+OSDND_UPPER_BACKGROUND_RIGHT_DISPLAY_DISTANCE_V+OSDND_FONT_HEIGHT-1)



//define the end the upper right message
#define OSDND_DISPLAY_UPPER_RIGHT_POS_H                 (OSDND_UPPER_BACKGROUND_RIGHT-OSDND_UPPER_BACKGROUND_RIGHT_DISPLAY_DISTANCE_H)
#define OSDND_DISPLAY_UPPER_RIGHT_POS_V                 (OSDND_UPPER_BACKGROUND_START_V+OSDND_UPPER_BACKGROUND_RIGHT_DISPLAY_DISTANCE_V)

//define the background region for bottom message
#ifdef SAMLL_DISPLAY_MODE_2 //CoCo.230, show small display mode.
#define OSDND_BOTTOM_BACKGROUND_START_H                 0
#define OSDND_BOTTOM_BACKGROUND_START_V                 64
#define OSDND_BOTTOM_BACKGROUND_START_RIGHT             592
#define OSDND_BOTTOM_BACKGROUND_START_BOTTOM            (OSDND_BOTTOM_BACKGROUND_START_V+OSDND_FONT_HEIGHT-1)
#else
#define OSDND_BOTTOM_BACKGROUND_START_H                 0
#define OSDND_BOTTOM_BACKGROUND_START_V                 360
#define OSDND_BOTTOM_BACKGROUND_START_RIGHT             640
#define OSDND_BOTTOM_BACKGROUND_START_BOTTOM            460
#endif

//define the distance between the background and the content for bottom message.
#define OSDND_BOTTOM_BACKGROUND_DISPLAY_DISTANCE_H      16
#define OSDND_BOTTOM_BACKGROUND_DISPLAY_DISTANCE_V      0

//define the starting position for bottom message
#define OSDND_DISPLAY_BOTTOM_START_H                    (OSDND_BOTTOM_BACKGROUND_START_H+OSDND_BOTTOM_BACKGROUND_DISPLAY_DISTANCE_H)
#define OSDND_DISPLAY_BOTTOM_START_V                    (OSDND_BOTTOM_BACKGROUND_START_V+OSDND_BOTTOM_BACKGROUND_DISPLAY_DISTANCE_V)

#ifdef GDI_4_BIT_OSD

//define the palette entry
#define OSDND_PALETTE_ENTRY_BACKGROUND                  GDI_ENTRY_4B_COLOR_GENERAL_BG_BLACK
#define OSDND_PALETTE_ENTRY_UPPER_RIGHT_STRING          GDI_ENTRY_4B_COLOR_WHITE
#define OSDND_PALETTE_ENTRY_BOTTOM_STRING               GDI_ENTRY_4B_COLOR_YELLOW
#define OSDND_PALETTE_ENTRY_BAR_FG                      GDI_ENTRY_4B_COLOR_GREEN
#else
//define the starting entry for color palette
#define OSDND_PALETTE_ENTRY_START                       240

//define the palette entry
#define OSDND_PALETTE_ENTRY_BACKGROUND                  OSDND_PALETTE_ENTRY_START
#define OSDND_PALETTE_ENTRY_UPPER_RIGHT_STRING          (OSDND_PALETTE_ENTRY_START+1)
#define OSDND_PALETTE_ENTRY_BOTTOM_STRING               (OSDND_PALETTE_ENTRY_START+2)
#define OSDND_PALETTE_ENTRY_BAR_FG                      (OSDND_PALETTE_ENTRY_START+3)

//define the palette color
#define OSDND_PALETTE_COLOR_BACKGROUND                  0x404040
#define OSDND_PALETTE_COLOR_UPPER_RIGHT_STRING          0xC8C8C8
#define OSDND_PALETTE_COLOR_BOTTOM_STRING               0xE5DD0D
#define OSDND_PALETTE_COLOR_BAR_FG                      0x007F00
#endif //GDI_4_BIT_OSD

//define the size of the volume bar
#define OSDND_DISPLAY_VOLUME_BAR_RANGE                  16
#define OSDND_DISPLAY_VOLUME_BAR_WIDTH_PER_RANGE        15
#define OSDND_DISPLAY_VOLUME_BAR_HEIGHT                 20
#define OSDND_DISPLAY_VOLUME_BAR_WIDTH                  (OSDND_DISPLAY_VOLUME_BAR_RANGE*OSDND_DISPLAY_VOLUME_BAR_WIDTH_PER_RANGE)

//define the distance between the bar the the font
#define OSDND_DISTANCE_FONT_VOLUME_BAR                  8

//define the size of the key bar
#define OSDND_DISPLAY_AUDIO_KEY_BAR_RANGE               12
#define OSDND_DISPLAY_AUDIO_KEY_BAR_WIDTH_PER_RANGE     15
#define OSDND_DISPLAY_AUDIO_KEY_BAR_HEIGHT              20
#define OSDND_DISPLAY_AUDIO_KEY_BAR_WIDTH               (OSDND_DISPLAY_AUDIO_KEY_BAR_RANGE*OSDND_DISPLAY_AUDIO_KEY_BAR_WIDTH_PER_RANGE)

//define the distance between the bar the the font
#define OSDND_DISTANCE_FONT_AUDIO_KEY_BAR               10

//define the size of the Echo bar
#define OSDND_DISPLAY_ECHO_BAR_RANGE                    8
#define OSDND_DISPLAY_ECHO_BAR_WIDTH_PER_RANGE          15
#define OSDND_DISPLAY_ECHO_BAR_HEIGHT                   20
#define OSDND_DISPLAY_ECHO_BAR_WIDTH                    (OSDND_DISPLAY_ECHO_BAR_RANGE*OSDND_DISPLAY_ECHO_BAR_WIDTH_PER_RANGE)

//define the distance between the bar the the font
#define OSDND_DISTANCE_FONT_ECHO_BAR                    10

//The following is for Digest module OSD

//define the palette entry
#define OSDDG_PALETTE_ENTRY_BACKGROUND                  GDI_ENTRY_4B_COLOR_GENERAL_BG_BLACK
#define OSDDG_PALETTE_ENTRY_STRING                      GDI_ENTRY_4B_COLOR_WHITE

//define the mix ratio of the background for Digest
#define OSDDG_MIX_RATIO_BACKGROUND                      28

//define the index of the font
#define OSDDG_NUM_INDEX                                 1

//define the height of the title and page.
#define OSDDG_REGION_HEIGHT                             40

//define the position of title string
#define OSDDG_DISPLAY_TITLE_START_H                     16                    
#define OSDDG_DISPLAY_TITLE_START_V                     54

//defint the position of the page
#define OSDDG_DISPLAY_PAGE_END_H                        600
#define OSDDG_DISPLAY_PAGE_END_V                        54

//defint the region to clear the current page   
#define OSDDG_CLEAR_REGION_PAGE                         48

#ifdef SHOW_POWERON_BAR //Xuli1.05 Define for poweron moving bar
#define POWERONBAR_START_V_NTSC  330//370
#define POWERONBAR_START_V_PAL  380//420
#define POWERONBAR_END_H	616
#define POWERONBAR_FILL_WIDTH 200 
#define POWERONBAR_MOVING_GAP	5 //percentage
#ifdef COLOR_BAR
#define SCROLLING_SPEED	4
#define POWERONBAR_SUB_BAR_WIDTH 4
#define POWERONBAR_SUB_BAR_NO 50
#define POWERONBAR_START_H	(POWERONBAR_END_H-POWERONBAR_SUB_BAR_WIDTH*POWERONBAR_SUB_BAR_NO)/2 //(0x268-POWERONBAR_SUB_BAR_WIDTH*POWERONBAR_SUB_BAR_NO)/2
#else
#define POWERONBAR_START_H	(POWERONBAR_END_H-POWERONBAR_FILL_WIDTH)/2 //(0x268-POWERONBAR_SUB_BAR_WIDTH*POWERONBAR_SUB_BAR_NO)/2
#endif //#ifdef COLOR_BAR
#endif //#ifdef SHOW_POWERON_BAR

//Exported API for OSD control module.
BYTE OSDND_Update(BYTE bMessage, WORD wParam);
BYTE OSDND_GetMessagePos(BYTE bMessage);
BYTE OSDDG_Update(BYTE bMessage, WORD wParam);

//Export APIs for general usage.
void OSD_ShowHourMinSec(BYTE bNumIndex);
void OSD_OutputNumFromIndex(WORD wNum, BYTE bNumIndex);
void OSD_OutputNum(WORD wNum, BYTE bNumIndex);
WORD OSD_TransformChar(char chCode, BYTE bIndex);

//Internal functions for normal display
void _OSDND_ClearRegion(BYTE bRegion);
void _OSDND_ShowUpperRightMessage(void);
void _OSDND_ShowBottomMessage(void);
void _OSDND_ShowSlideTransitionTime(void);
void _OSDND_ShowPlayAction(void);
void _OSDND_ShowTime(void);
void _OSDND_ShowAudio(void);
void _OSDND_SetBarAttribute(void);
void _OSDND_ShowVolume(void);
void _OSDND_ShowAudioKeyControl(void);
void _OSDND_ShowEcho(void);
void _OSDND_ShowSurround(void);
void _OSDND_Show3D(void);
void _OSDND_ShowAudioOutput(void); //CoCo1.23, for MSG_AUDIO_OUTPUT_CTL
void _OSDND_ShowAngle(void);
void _OSDND_InitializeGDI(void);
void _OSDND_ShowJPEGEffect(void);
void _OSDND_DefaultState(void);
void _OSDND_OutputUpString(void);
void _OSDND_OutputBottomString(void);
void _OSDND_Show10Plus(void);
void _OSDND_OutputErrorDisc(void);
void _OSDND_CodeToLanguage(WORD wCode);
void _OSDND_ShowDiscType(void);
void _OSDND_ShowString(void);
void _OSDND_ShowDebugNum(void);
void _OSDND_OutputKeyString(void);
void _OSDND_ShowNext(void);
void _OSDND_ShowPrevious(void);
void _OSDND_ShowRepeatState(void);
void _OSDND_ShowRepeatABState(void);
void _OSDND_ShowPBC(void);
void _OSDND_ShowTVMode(void);
void _OSDND_ShowZoomState(void);
void _OSDND_ShowVideoOutput(void);
BYTE _OSDND_ShowWaitingState(void);
void _OSDND_ShowVocal(void);
void _OSDND_ShowKaraoke(void);
void _OSDND_ShowSelection(void);
void _OSDND_OutputTextEx(WORD code *pw); //CoCo1.21, Port from Brian's 4M flash code reduction.

//The common functions for all display UI
//void _OSD_CodeToLanguage(WORD wCode);
void _OSD_ShowTimeNum(BYTE bNum, BYTE bNumIndex);
void _OSD_FillTransparentRegion(void);
void _OSD_OutputAudioType(void);
void _OSD_OutputAudioChannel(void);

//The API for Digest module.
void _OSDDG_ShowTitle(void);

//OSD global variables
extern BYTE __bOSDFg;
extern BYTE __bOSDBg;
extern WORD __wOSDUpVPos;
extern WORD __wOSDUpHPos;
extern WORD __wOSDBottomVPos;
extern WORD __wOSDBottomHPos;

#endif //__OSDND_H__

⌨️ 快捷键说明

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