?? osd.h
字號:
//Brian0.83b,
// Be careful, when we actually replace osd.h with this osd_bmp.h
// must remember to check __OSD_H__
#ifndef __OSD_H__
#define __OSD_H__
#ifdef __cplusplus
extern "C"{
#endif
#define CT908_UI
#include "gdi.h"
#include "osdfm.h"
#include "OSDVP.h"
// [1] STATUS structure
typedef struct
{
//BYTE bDiscNumber; // current disc number //--CoCo1.21, remove it because no one use it.
BYTE bPBCMode; // PBC on/off
WORD wTotalTracks; // total tracks of disc, LLY.050P, extend BYTE to WORD unit
BYTE bSetProgram; // indicate input program mode on/off
BYTE bPlayingMode; // playing mode
BYTE bTVMODE; // display TV format
BYTE bOsdDisplay; // osd display on/off
//BYTE bSetTime; // input GOTOTIME on/off //CoCo1.23, Alex suggested to remove it.
BYTE bStill; // current play item is motion or still
WORD wCurrentTime; // current time Min:Sec
WORD wCurrentTrack; // current play track number, LLY.050p, extend BYTE to WORD unit
BYTE bPowerDown; // power down flag
BYTE bSetSearch; // indicate input search mode on/off
BYTE bSearch; // indicate in "input search data" or not
} STATUS;
// LLY.100,
// if define it, it will only support one chinese OSD language
// ie, simple or traditional mode
#define SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
// LLY.047, if define it, OSD will split top/bottom data
#define SPLIT_TOP_BOTTOM_DATA
// If define NO_MULTIPLE_OSD, F/W must disable some OSD relative info. automatically
// while it has been defined
// [1] Un-define SPLIT_TOP_BOTTOM_DATA -- for code size issue (LLY.161-4)
// [2] Un-define SUPPORT_32_32_FONT -- for code size issue (LLY.171)
// [3] Un-define COMPRESS_OSD_FONT -- because no tool to compress "Eng_min.txt" (LLY.273)
#ifdef NO_MULTIPLE_OSD
#ifdef SPLIT_TOP_BOTTOM_DATA
#undef SPLIT_TOP_BOTTOM_DATA
#endif // #ifdef SPLIT_TOP_BOTTOM_DATA
#ifdef SUPPORT_32_32_FONT
#undef SUPPORT_32_32_FONT
#endif // #ifdef SUPPORT_32_32_FONT
#ifdef COMPRESSION_OSD_FONT
#undef COMPRESSION_OSD_FONT
#endif // #ifdef COMPRESSION_OSD_FONT
#endif // #ifdef NO_MULTIPLE_OSD
// for Normal & DISPLAY Group switch setting
#define NO_SWITCH_DISP_NORMAL_GRP // LLY.029
// [3] Give max number for MSG_STRING usage -- LLY.102
#define MAXNO_OF_MSG_STRING 18
// [6] All channel volume control bar relative info. -- LLY.277a
// The max volume control bar NO
#define MAX_VOLCTL_BAR 16
// The volume gap of each volume control bar
#ifndef SUPPORT_AV_SYSTEM
#define VOLCTL_BAR_GAP 1
#else // #ifdef SUPPORT_AV_SYSTEM
#define VOLCTL_BAR_GAP 2
#endif // #ifdef SUPPORT_AV_SYSTEM
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// ***** OSD DRAM address usage definition Area *****
// LLY.050, re-arrange the DRAM allocation to enhance LPCM performance
// LLY.047, re-arrange the DRAM allocation, let font table in last space
// because it may be enlarge... (max can't exceed 0x00020000)
// only for testing top/bottom splition and font_table space is 4K*2 DW
// WYC.100, re-allocate WPXL space to another DRAM address to support DVD digest
// LLY.049, re-allocate WPXL space to NV buffer
//#define OSD_DRAM_WPIXEL_START 0x00004600L // 0.5K DW
#define OSD_DRAM_WPIXEL_START W99AV_DRAM_ADDR_WPIXEL_START //0x00002200L // 0.5K DW
#ifdef ENHANCE_LPCM_PERFORMANCE // must use new RISC code
#define OSD_DRAM_PAL_TABLE_START 0x0001E600L // 0.25K DW (only used 0.125K)
#ifdef SPLIT_TOP_BOTTOM_DATA
#define OSD_DRAM_REGION_START 0x0001E700L // 1.25K DW (only used 1.1K)
#define OSD_DRAM_FONT_TABLE0_START 0x0001EC00L // 4K DW for None multiple bitmap; only 2K DW can be used when multiple bitmap
#define OSD_DRAM_FONT_TABLE1_START 0x0001FC00L // 4K DW for None multiple bitmap; only 2K DW can be used when multiple bitmap
// Brian.155, add DRAM area definition of another bitmap OSD buffer
#define OSD_DRAM_FONT_TABLE0_START_EX 0x0001F400L // 2K DW, we partition the sapce by half to give another buffer for multiple bitmap
#define OSD_DRAM_FONT_TABLE1_START_EX 0x00020400L // 2K DW, we partition the sapce by half to give another buffer for multiple bitmap
// Brian.170, CDDA & MP3 SCR mode use unused-MP3 Audio bitstream buffer (0x64000 ~ 0x7F000)
#define OSD_DRAM_CDDA_SCR0_START 0x00064000L // 54K DW for None multiple bitmap; 27K DW can be used when multiple bitmap
#define OSD_DRAM_CDDA_SCR1_START 0x00071800L // 54K DW for None multiple bitmap; 27K DW can be used when multiple bitmap
#define OSD_DRAM_CDDA_SCR0_START_EX 0x0006AC00L // 27K DW, we partition the sapce by half to give another buffer for multiple bitmap
#define OSD_DRAM_CDDA_SCR1_START_EX 0x00078400L // 27K DW, we partition the sapce by half to give another buffer for multiple bitmap
#else // #ifdef SPLIT_TOP_BOTTOM_DATA
#define OSD_DRAM_REGION_START 0x0001E700L // 0.75K DW (only used 0.55K)
#define OSD_DRAM_FONT_TABLE_START 0x0001EA00L // 5K DW ? should be 8K DW
#define OSD_DRAM_FONT_TABLE_START_EX 0x0001FA00L // 4K DW, we partition the sapce by half to give another buffer for multiple bitmap
// Brian.170, CDDA & MP3 SCR mode use unused-MP3 Audio bitstream buffer
#define OSD_DRAM_CDDA_SCR_START 0x00064000L // 108K DW for None multiple bitmap; 54K DW can be used when multiple bitmap
#define OSD_DRAM_CDDA_SCR_START_EX 0x00071800L // 54K K DW can be used when multiple bitmap
#endif //#ifdef SPLIT_TOP_BOTTOM_DATA
#else // #ifdef ENHANCE_LPCM_PERFORMANCE
#define OSD_DRAM_PAL_TABLE_START 0x0001DA00L // 0.25K DW (only used 0.125K)
#ifdef SPLIT_TOP_BOTTOM_DATA
#define OSD_DRAM_REGION_START 0x0001DB00L // 1.25K DW (only used 1.1K)
#define OSD_DRAM_FONT_TABLE0_START 0x0001E000L // 4K DW
#define OSD_DRAM_FONT_TABLE1_START 0x0001F000L // 4K DW
#define OSD_DRAM_FONT_TABLE0_START_EX 0x0001E800L // 2K DW, we partition the sapce by half to give another buffer for multiple bitmap
#define OSD_DRAM_FONT_TABLE1_START_EX 0x0001F800L // 2K DW, we partition the sapce by half to give another buffer for multiple bitmap
// Brian.170, CDDA & MP3 SCR mode use unused-MP3 Audio bitstream buffer (0x64000 ~ 0x7F000)
#define OSD_DRAM_CDDA_SCR0_START 0x00064000L // 54K DW for None multiple bitmap; 27K DW can be used when multiple bitmap
#define OSD_DRAM_CDDA_SCR1_START 0x00071800L // 54K DW for None multiple bitmap; 27K DW can be used when multiple bitmap
#define OSD_DRAM_CDDA_SCR0_START_EX 0x0006AC00L // 27K DW, we partition the sapce by half to give another buffer for multiple bitmap
#define OSD_DRAM_CDDA_SCR1_START_EX 0x00078400L // 27K DW, we partition the sapce by half to give another buffer for multiple bitmap
#else // #ifdef SPLIT_TOP_BOTTOM_DATA
#define OSD_DRAM_REGION_START 0x0001DB00L // 0.75K DW (only used 0.55K)
#define OSD_DRAM_FONT_TABLE_START 0x0001DE00L // 5K DW ? should be 8K DW
#define OSD_DRAM_FONT_TABLE_START_EX 0x0001EA00L // 4K DW, we partition the sapce by half to give another buffer for multiple bitmap
// Brian.170, CDDA & MP3 SCR mode use unused-MP3 Audio bitstream buffer
#define OSD_DRAM_CDDA_SCR_START 0x00064000L // 108K DW for None multiple bitmap; 54K DW can be used when multiple bitmap
#define OSD_DRAM_CDDA_SCR_START_EX 0x00071800L // 54K K DW can be used when multiple bitmap
#endif //#ifdef SPLIT_TOP_BOTTOM_DATA
#endif // #ifdef ENHANCE_LPCM_PERFORMANCE
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// **** Different OSD language group relative info. definition Area *****
// [0] OSD language group define
#define CHINA_AREA_OSD 0
#define EUROPE_AREA_OSD 1
#define JAPAN_AREA_OSD 2 // LLY.276-5, for Japanese OSD
#define KOREAN_AREA_OSD 3 // Brian1.07, Jeff 20030916 Add for Korean OSD
// [1] Chinese OSD language mode define
#define SIMPLE_CHINESE 0
#define TRADITIONAL_CHINESE 1
#define ALL_CHINESE 2
// [2] choose one suitable OSD language group base on sell destination
// **** China Area OSD *****
#if SELL_DESTINATION == CHINA
#define OSD_LANGUAGE_GROUP CHINA_AREA_OSD
#ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#define CHINESE_OSD_MODE SIMPLE_CHINESE
#else // #ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#define CHINESE_OSD_MODE ALL_CHINESE
#endif // #ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#endif // #if SELL_DESTINATION == CHINA
#if SELL_DESTINATION == TAIWAN
#define OSD_LANGUAGE_GROUP CHINA_AREA_OSD
#ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#define CHINESE_OSD_MODE TRADITIONAL_CHINESE
#else // #ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#define CHINESE_OSD_MODE ALL_CHINESE
#endif // #ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#endif // #if SELL_DESTINATION == TAIWAN
#if SELL_DESTINATION == HONGKONG
#define OSD_LANGUAGE_GROUP CHINA_AREA_OSD
#ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#define CHINESE_OSD_MODE TRADITIONAL_CHINESE
#else // #ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#define CHINESE_OSD_MODE ALL_CHINESE
#endif // #ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#endif // #if SELL_DESTINATION == HONGKONG
// **** Europe Area OSD ****
#if SELL_DESTINATION == FRANCE
#define OSD_LANGUAGE_GROUP EUROPE_AREA_OSD
#endif // #if SELL_DESTINATION == FRANCH
#if SELL_DESTINATION == GERMANY
#define OSD_LANGUAGE_GROUP EUROPE_AREA_OSD
#endif // #if SELL_DESTINATION == GERMANY
#if SELL_DESTINATION == ITALY
#define OSD_LANGUAGE_GROUP EUROPE_AREA_OSD
#endif // #if SELL_DESTINATION == ITALY
#if SELL_DESTINATION == SPAIN
#define OSD_LANGUAGE_GROUP EUROPE_AREA_OSD
#endif // #if SELL_DESTINATION == SPAIN
#if SELL_DESTINATION == PORTUGAL
#define OSD_LANGUAGE_GROUP EUROPE_AREA_OSD
#endif // #if SELL_DESTINATION == PORTUGAL
#if SELL_DESTINATION == AMERICA
#define OSD_LANGUAGE_GROUP EUROPE_AREA_OSD
#endif // #if SELL_DESTINATION == AMERICA
#if SELL_DESTINATION == BRITISH
#define OSD_LANGUAGE_GROUP EUROPE_AREA_OSD
#endif // #if SELL_DESTINATION == BRITISH
// **** Japan Area OSD ****
#if SELL_DESTINATION == JAPAN // LLY.276-5, for Japanese OSD
#define OSD_LANGUAGE_GROUP JAPAN_AREA_OSD
#endif // #if SELL_DESTINATION == JAPAN
#if SELL_DESTINATION == KOREA // Brian1.07, Jeff 20030916 Add for Korean OSD
#define OSD_LANGUAGE_GROUP KOREAN_AREA_OSD
#endif // #if SELL_DESTINATION == KOREA
// [3] Define some necessary info. base on different OSD language group
// [3-1] OSD message array index for _bOSDLang reference, ex OSD_LoadFontTable()
// Notice: only support max 128 OSD language,
// So, if "ID > 0x80" means it not support
// [3-2] Max OSD language number
#if OSD_LANGUAGE_GROUP == CHINA_AREA_OSD
// OSD message array index
#define OSD_FONT_ENGLISH 0x0
#define OSD_FONT_CHINESE 0x1
#define OSD_FONT_FRENCH 0x80
#define OSD_FONT_GERMAN 0x81
#define OSD_FONT_ITALIAN 0x82
#define OSD_FONT_SPANISH 0x83
#define OSD_FONT_PORTUGUESE 0x84
#define OSD_FONT_JAPANESE 0x85 // LLY.276-5
// Max OSD language number
#ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#define MAX_OSD_LANGUAGE 2
#else // #ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#define MAX_OSD_LANGUAGE 3
#endif // #ifdef SUPPORT_ONLY_ONE_CHINESE_OSD_LANGUAGE
#endif // #if OSD_LANGUAGE_GROUP == CHINA_AREA_OSD
#if OSD_LANGUAGE_GROUP == EUROPE_AREA_OSD
// OSD message array index
#define OSD_FONT_ENGLISH 0x0
#define OSD_FONT_FRENCH 0x1
#define OSD_FONT_GERMAN 0x2
#define OSD_FONT_ITALIAN 0x3
#define OSD_FONT_SPANISH 0x4
#define OSD_FONT_PORTUGUESE 0x80 // 0x5
#define OSD_FONT_CHINESE 0x81
#define OSD_FONT_JAPANESE 0x82 // LLY.276-5
// Max OSD language number
#define MAX_OSD_LANGUAGE 5 //6
#endif // #if OSD_LANGUAGE_GROUP == EUROPE_AREA_OSD
#if OSD_LANGUAGE_GROUP == JAPAN_AREA_OSD // LLY.276-5, for Japanese OSD
// OSD message array index
#define OSD_FONT_ENGLISH 0x0
#define OSD_FONT_JAPANESE 0x1
#define OSD_FONT_FRENCH 0x80
#define OSD_FONT_GERMAN 0x81
#define OSD_FONT_ITALIAN 0x82
#define OSD_FONT_SPANISH 0x83
#define OSD_FONT_PORTUGUESE 0x84
#define OSD_FONT_CHINESE 0x85
// Max OSD language number
#define MAX_OSD_LANGUAGE 2
#endif // #if OSD_LANGUAGE_GROUP == JAPAN_AREA_OSD
// [6] define LOGO ID for MSG_LOGO usage -- LLY.099
#define OSD_LOGO_DEFAULT 0x0
#define OSD_LOGO_ENCRYPT 0x1
// LLY2.80, add extra ID to tell HAL_AdjustTVMode() that the LOGO cause from Open/ Close action
// Use to support "don't re-program TV encoder while open/close w/ auto mode setting"
#define OSD_LOGO_FROM_OPEN 0xFE
#define OSD_LOGO_CLEAR 0xFF
// [7] define for _bOSDAppMode and MSG_OSDAPP usage -- LLY.160
// bit[7:4] means the different mode group
// bit[3:0] means sub-type within this mode group
// The value must be 1, 2, 4, 8 for F/W easy control -- ex __bOSDAppMode & OSD_APP_XXX
// Notice: OSD_APPMODE_EXIT/NORMAL must use "==" operation for checking, because it's value is zero
// LLY.170, re-adjust the value defines
// LLY.172, add one extra item for auto-upgrade application
// The base mode group
#define OSD_APPMODE_NORMAL 0x00
#define OSD_APPMODE_EXIT OSD_APPMODE_NORMAL
#define OSD_APPMODE_AUTOUPGRADE 0x10
#define OSD_APPMODE_SETUP 0x20
#define OSD_APPMODE_GAME 0x40
#define OSD_APPMODE_SCR 0x80
#define OSD_APPMODE_NON_NORMAL 0xF0 //0xE0
// The sub-type for each mode
#define SUBTYPE_MODE1 0x01
#define SUBTYPE_MODE2 0x02
#define SUBTYPE_MODE3 0x04
// The different screen saver mode
#define OSD_APPMODE_SCR1 0x81 // OSD_APPMODE_SCR | SUBTYPE_MODE1
#define OSD_APPMODE_SCR2 0x82 // OSD_APPMODE_SCR | SUBTYPE_MODE2
#define OSD_APPMODE_SCR3 0x84 // OSD_APPMODE_SCR | SUBTYPE_MODE3
// The different type for exit mode
#define RELOAD_PALETTE 0x01
#define RELOAD_FONTTABLE 0x02
#define RELOAD_HEADER 0x04
#define RECOVER_ALL 0x07 // RELOAD_PALETTE | RELOAD_FONTTABLE | RELOAD_HEADER
#define EXIT_AUTOUPGRADE 0x08 // LLY.172
// [8] define recover type for OSD_Recover() -- DVD.038
#define OSD_RECOVER_PALETTE 0
#define OSD_RECOVER_HEADER 1
#define OSD_RECOVER_FONTTABLE 2
#define OSD_RECOVER_ALL 3
// [9] define color palette group for OSD_LoadPalette() -- DVD.042-2
#define OSD_PALETTE_FONT 0
#define OSD_PALETTE_BMP1 1
#define OSD_PALETTE_BMP2 2
#define OSD_PALETTE_BMP3 3
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -