?? osd3.h
字號:
/**************************************************************************
(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 + -