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

📄 osd.h

📁 车载电子影音系统dvd播放系统原程序代码
💻 H
📖 第 1 页 / 共 3 页
字号:
//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 + -