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

📄 osd3.h

📁 车载电子影音系统dvd播放系统原程序代码
💻 H
📖 第 1 页 / 共 4 页
字号:
/**************************************************************************

        (C)Copyright Cheertek Inc. 2002-2003,
           D300, all right reserved.

        Product : WinAV Firmware

        Date    : 2003.01.14
        Author  : Cheertek (D300 BrianCheng)
        Purpose : OSD module 3
                  The moudle provides (Setup) menu UI functions
        Sources : osd3.h/ osd3.c

------------------------------------------------------------
        Update

        Date    : 
        Name    : Cheertek (D300 BrianCheng)
        Description     :

                        Item                                    Source
        ----------------------------------------        -------------------
        . 
****************************************************************************/

#ifndef __OSD3_H__
#define __OSD3_H__

#include "chips.h"

// *** BE AWARE OF THIS
// *** String Tool doesn't modify this. If the OSD language number is different ==>
// *** Please modify it manually
#if (OSD_LANGUAGE_GROUP == EUROPE_AREA_OSD)
#define OSD_LANGUAGE_NUMBER 6
#else
#define OSD_LANGUAGE_NUMBER 2
#endif

// Brian1.24, this value will offset the entire Menu UI
// *** Must not < -16, or some X-position will overflow, ex, DIALOG_INPUT_PASSWORD_OSD_X1
#define MENU_GLOBAL_OFFSET     SETUP_GLOBAL_OFFSET


#define OSD_MENU_INITIAL(TYPE)\
    {\
    _bMenuType = TYPE;\
    OSDMENU_Initial();\
    }


#define OSDMENU_SET_ITEM_ENABLE(MENUID, ITEMID, ENABLE)\
	{\
		_bMENUTemp = MENUID;\
		_wMENUTemp = ITEMID;\
		_bMENUTemp2 = ENABLE;\
		OSDMENU_SetItemEnable();\
	}

#define MENU_LEVEL 3        // How many level of menu.


// *** the sequence of MENU_ID must be exactly the same as _SetupMenuIndex[] array
typedef enum tagMENU_ID
{
    SETUP_MENU_MAIN=0,
    SETUP_MENU_MAIN_WITH_PROLOGIC, // Brian1.08, support runtime change menu for Audio Prologic
    SETUP_MENU_LANGUAGE,
    SETUP_MENU_SCREEN,
    SETUP_MENU_AUDIO,
    SETUP_MENU_AUDIO_WITH_PROLOGIC, // Brian1.08, support runtime change menu for Audio Prologic
    SETUP_MENU_CUSTOM,
    SETUP_MENU_LANGUAGE_OSD,
    SETUP_MENU_LANGUAGE_MENU,
    SETUP_MENU_LANGUAGE_AUDIO,
    SETUP_MENU_LANGUAGE_SP,
    SETUP_MENU_SCREEN_TV_TYPE,
#ifndef NO_SCREEN_SAVER // Brian1.20
    SETUP_MENU_SCREEN_SAVER,
#endif
    SETUP_MENU_SCREENTV_SYSTEM,
    SETUP_MENU_SCREEN_VIDEO_OUTPUT,
    SETUP_MENU_SCREEN_PROGRESSIVE_SCAN,
    SETUP_MENU_SCREEN_BRIGHTNESS,
    SETUP_MENU_SCREEN_CONTRAST,
#ifdef SUPPORT_ADJUST_CHROM_PHASE // Brian1.25
	SETUP_MENU_SCREEN_CHROM_PHASE,
#endif
    SETUP_MENU_AUDIO_DIGITAL_OUT,
    SETUP_MENU_AUDIO_ANALOG_OUT,
    SETUP_MENU_AUDIO_PROLOGIC,  // Brian1.08, support runtime change menu for Audio Prologic
    SETUP_MENU_AUDIO_CENTER,
    SETUP_MENU_AUDIO_REAR,
    SETUP_MENU_AUDIO_SUBWOOFER,
#ifndef REMOVE_SETUP_SPEAKER_TEST
    SETUP_MENU_AUDIO_SPEAKER_TEST,
#endif
    SETUP_MENU_AUDIO_DNR,
    SETUP_MENU_CUSTOM_PARENTAL_CONTROL,
    SETUP_MENU_CUSTOM_ANGLE_MARK,
    SETUP_MENU_CUSTOM_DEFAULT_VALUE,
	// AV system
	AVSYS_MENU_EQ,
    AVSYS_MENU_CHANNEL

} MENU_ID;

#define SETUP_OLD_PASSWORD 1
#define SETUP_NEW_PASSWORD 2
#define SETUP_VERIFY_PASSWORD 3


// The multiple language string structure for menu item string
typedef struct tagMULTI_STRING
{
    WORD code * pbStr[OSD_LANGUAGE_NUMBER];
} MULTI_STRING, *PMULTI_STRING;

// The menu structure
typedef struct tagMENU_STRUCT
{
    PMULTI_STRING pbItemText;
    struct tagMENU_STRUCT code *pSubMenu;
    BYTE    bAttribute;      // bit0~2: 0:item, 1:value, 2:..., 3: --,   bit4: 0:string, 1:icon
    //ID_LIST Id;
    BYTE    Id;
} MENU_STRUCT, *PMENU_STRUCT;


// use in _bMenuType
#define MENU_TYPE_SETUP     0
#define MENU_TYPE_AV_SYS    1
#define MENU_TYPE_EQUALIZER 2


#ifdef MENU_MAIN_FILE

#include "SetupStr.lan" // Brian1.07, use .lan file to include the string file
/*
#if OSD_LANGUAGE_GROUP == CHINA_AREA_OSD
#include "SetupStr.chi"
#endif  

#if OSD_LANGUAGE_GROUP == EUROPE_AREA_OSD
#include "SetupStr.eur"
#endif  

#if OSD_LANGUAGE_GROUP == JAPAN_AREA_OSD
#include "SetupStr.jpn"
#endif
*/


// Brian1.08a
#ifdef SUPPORT_SETUP_HORIZONTAL_ICON_MENU

// UI layout for horizontal icon menu

// Level 0 menu location and width 
#define SETUP_MENU_ROOT_X   (72+MENU_GLOBAL_OFFSET) // Brian1.24 
#define SETUP_MENU_ROOT_Y   18
#define SETUP_MENU_ROOT_W   (60+4)      // each icon is 60 pixel wide plus 2*2 pixel border
#define SETUP_MENU_ROOT_R   5       // can display x icons in the list

// Level 1 menu location (x, y), width and height (how may row of text)
#define SETUP_MENU_ITEM_X   (68+MENU_GLOBAL_OFFSET) // Brian1.24
#define SETUP_MENU_ITEM_Y   90
#define SETUP_MENU_ITEM_W   250
#define SETUP_MENU_ITEM_R   4 //2

// Level 2 menu location (x, y), width and height (how may row of text)
#define SETUP_MENU_VALUE_X   (328+MENU_GLOBAL_OFFSET) // Brian1.24
#define SETUP_MENU_VALUE_Y   90
#define SETUP_MENU_VALUE_W   215
#define SETUP_MENU_VALUE_R   5

#else

// UI layout for vertical icon menu

// Level 0 menu location and width 
#define SETUP_MENU_ROOT_X   (30+MENU_GLOBAL_OFFSET) // Brian1.24
#define SETUP_MENU_ROOT_Y   48

#ifdef REMOVE_SETUP_ICON	//xuli1118
#define SETUP_MENU_ROOT_W   (60+8)      // let frame a little bit wider than text
#else
#define SETUP_MENU_ROOT_W   (60+4)      // each icon is 60 pixel wide plus 2*2 pixel border
#endif

#define SETUP_MENU_ROOT_R   5       // can display x icons in the list

// Level 1 menu location (x, y), width and height (how may row of text)
#define SETUP_MENU_ITEM_X   (104+MENU_GLOBAL_OFFSET) // Brian1.24
#define SETUP_MENU_ITEM_Y   90
#define SETUP_MENU_ITEM_W   250
#define SETUP_MENU_ITEM_R   4 //2

// Level 2 menu location (x, y), width and height (how may row of text)
#define SETUP_MENU_VALUE_X   (364+MENU_GLOBAL_OFFSET) // Brian1.24
#define SETUP_MENU_VALUE_Y   90
#define SETUP_MENU_VALUE_W   215
#define SETUP_MENU_VALUE_R   5

#endif



// bAttribute: bit 0~1
#define IS_ITEM     0   // the item is an "item", 
#define IS_VALUE    1   // the item is a "value"
#define IS_DIALOG   2   // the item is a "..."
#define IS_LINE     3   // the item is a seperate line

#ifndef SUPPORT_STRING_GENERATOR // Brian1.25

// Declare the menu hierachy

MENU_STRUCT code _MenuLanguageOSD[]={
#if (OSD_LANGUAGE_GROUP == CHINA_AREA_OSD)
#if (CHINESE_OSD_MODE == SIMPLE_CHINESE)
    {(PMULTI_STRING code *)(&(__SetupInfo.bOSDLanguage)),  (struct tagMENU_STRUCT code *)SETUP_MENU_LANGUAGE_OSD, 2, SETUP_LANGUAGE_OSD_BASE},
    {(PMULTI_STRING code *)SETUP_MENU_VALUE_X, (struct tagMENU_STRUCT code *)SETUP_MENU_VALUE_Y, SETUP_MENU_VALUE_R, SETUP_MENU_VALUE_W},
#ifdef OSD_ITEM_TEXT_SAME_AS_LANGUAGE
    {&StrOSDEnglish,   NULL,   0x01,   SETUP_LANGUAGE_OSD_ENGLISH},
    {&StrOSDChinese,   NULL,   0x01,   SETUP_LANGUAGE_OSD_SIMP_CHINESE}
#else
    {&StrEnglish,   NULL,   0x01,   SETUP_LANGUAGE_OSD_ENGLISH},
    {&StrChinese,   NULL,   0x01,   SETUP_LANGUAGE_OSD_SIMP_CHINESE}
#endif	//#ifdef OSD_ITEM_TEXT_SAME_AS_LANGUAGE
    };
#elif (CHINESE_OSD_MODE == TRADITIONAL_CHINESE)
    {(PMULTI_STRING code *)(&(__SetupInfo.bOSDLanguage)),  (struct tagMENU_STRUCT code *)SETUP_MENU_LANGUAGE_OSD, 2, SETUP_LANGUAGE_OSD_BASE},
    {(PMULTI_STRING code *)SETUP_MENU_VALUE_X, (struct tagMENU_STRUCT code *)SETUP_MENU_VALUE_Y, SETUP_MENU_VALUE_R, SETUP_MENU_VALUE_W},
#ifdef OSD_ITEM_TEXT_SAME_AS_LANGUAGE
    {&StrOSDEnglish,   NULL,   0x01,   SETUP_LANGUAGE_OSD_ENGLISH},
    {&StrOSDChinese,   NULL,   0x01,   SETUP_LANGUAGE_OSD_TRAD_CHINESE}
#else
    {&StrEnglish,   NULL,   0x01,   SETUP_LANGUAGE_OSD_ENGLISH},
    {&StrChinese,   NULL,   0x01,   SETUP_LANGUAGE_OSD_TRAD_CHINESE}
#endif	//#ifdef OSD_ITEM_TEXT_SAME_AS_LANGUAGE
    };
#endif	//#elif (CHINESE_OSD_MODE == TRADITIONAL_CHINESE)
#elif (OSD_LANGUAGE_GROUP == EUROPE_AREA_OSD)
#ifndef SET_OSD_LANGUAGE_TO_ENGLISH_SPANISH_FRENCH_GERMAN
	{(PMULTI_STRING code *)(&(__SetupInfo.bOSDLanguage)),  (struct tagMENU_STRUCT code *)SETUP_MENU_LANGUAGE_OSD, 6, SETUP_LANGUAGE_OSD_BASE},
#else
	{(PMULTI_STRING code *)(&(__SetupInfo.bOSDLanguage)),  (struct tagMENU_STRUCT code *)SETUP_MENU_LANGUAGE_OSD, 4, SETUP_LANGUAGE_OSD_BASE},
#endif
    {(PMULTI_STRING code *)SETUP_MENU_VALUE_X, (struct tagMENU_STRUCT code *)SETUP_MENU_VALUE_Y, SETUP_MENU_VALUE_R, SETUP_MENU_VALUE_W},
#ifdef OSD_ITEM_TEXT_SAME_AS_LANGUAGE
    {&StrOSDEnglish,   NULL,   0x01,   SETUP_LANGUAGE_OSD_ENGLISH},
    {&StrOSDFrench,    NULL,   0x01,   SETUP_LANGUAGE_OSD_FRENCH},
    {&StrOSDGerman,    NULL,   0x01,   SETUP_LANGUAGE_OSD_GERMAN},

⌨️ 快捷键说明

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