📄 setup.h
字号:
// Following define the data allocation in EEPROM
// 1st line means EEPROM address
// 2nd line means the bytes needed
#define SETUP_ADDR_BASE 0x10
#define SETUP_ADDR_IDENTIFY (SETUP_ADDR_BASE + 0)
// split Identify into 2 fields, ID+VERSION
#define EPROM_IDENTIFY_BYTE 8
#define SETUP_ADDR_VERSION (SETUP_ADDR_IDENTIFY + EPROM_IDENTIFY_BYTE)
#define EPROM_VERSION_BYTE 1
#define SETUP_ADDR_PASSSTRING (SETUP_ADDR_VERSION + EPROM_VERSION_BYTE)
#define EPROM_PASSSTRING_BYTE 2
#define SETUP_ADDR_ASPECT (SETUP_ADDR_PASSSTRING + EPROM_PASSSTRING_BYTE)
#define EPROM_ASPECT_BYTE 1
#define SETUP_ADDR_SCREEN_SAVER (SETUP_ADDR_ASPECT + EPROM_ASPECT_BYTE)
#define EPROM_SCREEN_SAVER_BYTE 1
#define SETUP_ADDR_TV_SYTEM (SETUP_ADDR_SCREEN_SAVER + EPROM_SCREEN_SAVER_BYTE)
#define EPROM_TV_SYSTEM_BYTE 1
//Kevin0.87b, add
#define SETUP_ADDR_SCAN_MODE (SETUP_ADDR_TV_SYTEM + EPROM_TV_SYSTEM_BYTE)
#define EPROM_SCAN_MODE_BYTE 1
//Kevin0.87b, modify
//#define SETUP_ADDR_BRIGHTNESS (SETUP_ADDR_TV_SYTEM + EPROM_TV_SYSTEM_BYTE)
#define SETUP_ADDR_BRIGHTNESS (SETUP_ADDR_SCAN_MODE + EPROM_SCAN_MODE_BYTE)
#define EPROM_BRIGHTNESS_BYTE 1
#define SETUP_ADDR_CONTRAST (SETUP_ADDR_BRIGHTNESS + EPROM_BRIGHTNESS_BYTE)
#define EPROM_CONTRAST_BYTE 1
// Brian1.25, Chroma phase
#define SETUP_ADDR_CHROM_PHASE (SETUP_ADDR_CONTRAST + EPROM_CONTRAST_BYTE)
#define EPROM_CHROM_PHASE_BYTE 1
#define SETUP_ADDR_VIDEO_OUTPUT (SETUP_ADDR_CHROM_PHASE + EPROM_CHROM_PHASE_BYTE)
#define EPROM_VIDEO_OUTPUT_BYTE 1
//Kevin0.87b, cross out later (consider all modules that use __SetupInfo.bAudioOutput)
#define SETUP_ADDR_AUDIO_OUTPUT (SETUP_ADDR_VIDEO_OUTPUT + EPROM_VIDEO_OUTPUT_BYTE)
#define EPROM_AUDIO_OUTPUT_BYTE 1
// Brian0.84-2nd
#define SETUP_ADDR_AUDIO_DIGITAL_OUT (SETUP_ADDR_AUDIO_OUTPUT + EPROM_AUDIO_OUTPUT_BYTE)
#define EPROM_AUDIO_DIGITAL_OUT_BYTE 1
#define SETUP_ADDR_AUDIO_ANALOG_OUT (SETUP_ADDR_AUDIO_DIGITAL_OUT + EPROM_AUDIO_DIGITAL_OUT_BYTE)
#define EPROM_AUDIO_ANALOG_OUT_BYTE 1
#define SETUP_ADDR_AUDIO_LPCM (SETUP_ADDR_AUDIO_ANALOG_OUT + EPROM_AUDIO_ANALOG_OUT_BYTE)
#define EPROM_AUDIO_LPCM_BYTE 1
#define SETUP_ADDR_REGION_CTL (SETUP_ADDR_AUDIO_LPCM + EPROM_AUDIO_LPCM_BYTE)
#define EPROM_REGION_CTL_BYTE 1
#define SETUP_ADDR_APS_CTL (SETUP_ADDR_REGION_CTL + EPROM_REGION_CTL_BYTE)
#define EPROM_APS_CTL_BYTE 1
#define SETUP_ADDR_PARENTAL_CTL_LEVEL (SETUP_ADDR_APS_CTL + EPROM_APS_CTL_BYTE)
//#define EPROM_PARENTAL_CTL_LEVEL_BYTE 2
// Brian0.87, change to BYTE
#define EPROM_PARENTAL_CTL_LEVEL_BYTE 1 //Kevin0.87b, BYTE wParentalCtl
#define SETUP_ADDR_OSD_LANGUAGE (SETUP_ADDR_PARENTAL_CTL_LEVEL + EPROM_PARENTAL_CTL_LEVEL_BYTE)
#define EPROM_OSD_LANGUAGE_BYTE 1
//After LOGO is displayed.
#define SETUP_ADDR_AUDIO_CENTER (SETUP_ADDR_OSD_LANGUAGE + EPROM_OSD_LANGUAGE_BYTE)
#define EPROM_AUDIO_CENTER_BYTE 1
#define SETUP_ADDR_AUDIO_REAR (SETUP_ADDR_AUDIO_CENTER + EPROM_AUDIO_CENTER_BYTE)
#define EPROM_AUDIO_REAR_BYTE 1
#define SETUP_ADDR_AUDIO_SUBWOOFER (SETUP_ADDR_AUDIO_REAR + EPROM_AUDIO_REAR_BYTE)
#define EPROM_AUDIO_SUBWOOFER_BYTE 1
#define SETUP_ADDR_AUDIO_DNR (SETUP_ADDR_AUDIO_SUBWOOFER + EPROM_AUDIO_SUBWOOFER_BYTE)
#define EPROM_AUDIO_DNR_BYTE 1
#define SETUP_ADDR_AUDIO_KARAOKE (SETUP_ADDR_AUDIO_DNR + EPROM_AUDIO_DNR_BYTE)
#define EPROM_AUDIO_KARAOKE_BYTE 1
#define SETUP_ADDR_PARENTAL_CTL (SETUP_ADDR_AUDIO_KARAOKE + EPROM_AUDIO_KARAOKE_BYTE)
#define EPROM_PARENTAL_CTL_BYTE 1
#define SETUP_ADDR_MENU_LANGUAGE (SETUP_ADDR_PARENTAL_CTL + EPROM_PARENTAL_CTL_BYTE)
#define EPROM_MENU_LANGUAGE_BYTE 1
#define SETUP_ADDR_AUDIO_LANGUAGE (SETUP_ADDR_MENU_LANGUAGE + EPROM_MENU_LANGUAGE_BYTE)
#define EPROM_AUDIO_LANGUAGE_BYTE 1
#define SETUP_ADDR_SPST_LANGUAGE (SETUP_ADDR_AUDIO_LANGUAGE + EPROM_AUDIO_LANGUAGE_BYTE)
#define EPROM_SPST_LANGUAGE_BYTE 1
#define SETUP_ADDR_MENU_LANGUAGE_CODE (SETUP_ADDR_SPST_LANGUAGE + EPROM_SPST_LANGUAGE_BYTE)
#define EPROM_MENU_LANGUAGE_CODE_BYTE 2
#define SETUP_ADDR_AUDIO_LANGUAGE_CODE (SETUP_ADDR_MENU_LANGUAGE_CODE + EPROM_MENU_LANGUAGE_CODE_BYTE)
#define EPROM_AUDIO_LANGUAGE_CODE_BYTE 2
#define SETUP_ADDR_SPST_LANGUAGE_CODE (SETUP_ADDR_AUDIO_LANGUAGE_CODE + EPROM_AUDIO_LANGUAGE_CODE_BYTE)
#define EPROM_SPST_LANGUAGE_CODE_BYTE 2
#define SETUP_ADDR_ANGLE_MARK_DISPLAY (SETUP_ADDR_SPST_LANGUAGE_CODE + EPROM_SPST_LANGUAGE_CODE_BYTE)
#define EPROM_ANGLE_MARK_DISPLAY_BYTE 1
#define SETUP_ADDR_VCD_CTL (SETUP_ADDR_ANGLE_MARK_DISPLAY + EPROM_ANGLE_MARK_DISPLAY_BYTE) // ** TCH2.74;
#define EPROM_VCD_CTL_BYTE 1 // ** TCH2.74;
#define SETUP_ADDR_AUDIO_PROLOGIC (SETUP_ADDR_VCD_CTL + EPROM_VCD_CTL_BYTE) // Brian2.78b-2
#define EPROM_AUDIO_PROLOGIC_BYTE 1 // Brian2.78b-2
//*************************************************************
//* brian.277a, ADDR_LAST is in fact the next available address
//*************************************************************
#define SETUP_ADDR_LAST (SETUP_ADDR_AUDIO_PROLOGIC+EPROM_AUDIO_PROLOGIC_BYTE) // Brian2.78b-2
#define SETUP_ADDR_NEXT SETUP_ADDR_LAST //(SETUP_ADDR_LAST+1)
#define EPROM_DATA_BYTES (SETUP_ADDR_LAST-SETUP_ADDR_BASE) //(SETUP_ADDR_LAST-SETUP_ADDR_BASE+1)
// To add one more entry in EEPROM, must allocate
// [USER] (1) EEPROM address, (2) Bytes
// [USER] (3) Add one entry to SetupInfo.
// [USER] (4) EEPROM last address
// add here
// Brian1.23, add for resume usage
// Ming2.36, support multi-disc resume from EEPROM.
// Use the new RESUME mechanism, so mark it.
//#define SETUP_ADDR_RESUME_BASE SETUP_ADDR_LAST //(SETUP_ADDR_AUDIO_PROLOGIC + EPROM_AUDIO_PROLOGIC_BYTE)
//#define SETUP_ADDR_RESUME_FLAG (SETUP_ADDR_RESUME_BASE)
//#define RESUME_FLAG_LENGTH 7
//#define SETUP_ADDR_RESUME_TYPE (SETUP_ADDR_RESUME_FLAG + RESUME_FLAG_LENGTH)
//#define RESUME_TYPE_LENGTH 1
//#define SETUP_ADDR_RESUME_INFO (SETUP_ADDR_RESUME_TYPE + RESUME_TYPE_LENGTH)
//#define RESUME_INFO_LENGTH 40
//
//#define SETUP_ADDR_RESUME_LAST (SETUP_ADDR_RESUME_INFO+RESUME_INFO_LENGTH) // Brian1.24-3
// Ming2.36, support multi-disc resume from EEPROM.
#define RESUME_INFO_NUM 3
#define RESUME_ID_ENTRY_SIZE 4
#define RESUME_INFO_ENTRY_SIZE 20
#if (RESUME_INFO_NUM > 15)
#error "RESUME_INFO_NUM cannot exceed 15"
#endif
#if (RESUME_ID_ENTRY_SIZE != 4)
#error "RESUME_ID_ENTRY_SIZE must be euqal to 4"
#endif
#if (RESUME_INFO_ENTRY_SIZE != 20)
#error "RESUME_INFO_ENTRY_SIZE must be euqal to 20"
#endif
#define SETUP_ADDR_RESUME_BASE SETUP_ADDR_LAST
#define SETUP_ADDR_RESUME_FLAG (SETUP_ADDR_RESUME_BASE)
#define RESUME_FLAG_LENGTH 4
#define SETUP_ADDR_RESUME_ID (SETUP_ADDR_RESUME_FLAG+RESUME_FLAG_LENGTH)
#define RESUME_ID_LENGTH (RESUME_ID_ENTRY_SIZE*RESUME_INFO_NUM)
#define SETUP_ADDR_RESUME_INFO (SETUP_ADDR_RESUME_ID + RESUME_ID_LENGTH)
#define RESUME_INFO_LENGTH (RESUME_INFO_ENTRY_SIZE*RESUME_INFO_NUM)
#define SETUP_ADDR_RESUME_LAST (SETUP_ADDR_RESUME_INFO + RESUME_INFO_LENGTH) //(SETUP_ADDR_RESUME_FLAG+RESUME_FLAG_LENGTH+RESUME_ID_LENGTH+RESUME_INFO_LENGTH)
//Kevin1.25,comment
/*
//Kevin1.24aDVD_T, add
#define SETUP_ADDR_SEEK_FLAG SETUP_ADDR_RESUME_LAST
#define SEEK_FLAG_LENGTH 1
#define SETUP_ADDR_SEEK_LAST (SETUP_ADDR_SEEK_FLAG+SEEK_FLAG_LENGTH) // Brian1.24a
*/
#ifdef TFT_CONTROL
#define TFT_ADDR_BEGIN SETUP_ADDR_RESUME_LAST
#define SETUP_ADDR_TFT_BRIGHT TFT_ADDR_BEGIN // Brian2.78b-2
#define EPROM_TFT_BRIGHT_BYTE 1 // Brian2.78b-2
#define SETUP_ADDR_TFT_CONTRAST (SETUP_ADDR_TFT_BRIGHT + EPROM_TFT_BRIGHT_BYTE) // Brian2.78b-2
#define EPROM_TFT_CONTRAST_BYTE 1 // Brian2.78b-2
#define SETUP_ADDR_TFT_COLOR (SETUP_ADDR_TFT_CONTRAST + EPROM_TFT_CONTRAST_BYTE) // Brian2.78b-2
#define EPROM_TFT_COLOR_BYTE 1 // Brian2.78b-2
#define TFT_ADDR_END SETUP_ADDR_TFT_COLOR+EPROM_TFT_COLOR_BYTE
// LLY.277a, reserve 2 bytes gap between setup info+game. and AV system usage
// Others will be used for AV system application
// Notice: EPROM location:
// starting address : 0x10
// setup info used space : 41 bytes
// So, the starting address of AV system : 57th byte (count from addr 0), and need 41 bytes
#define AVSYS_ADDR_BEGIN TFT_ADDR_END
#else
#define AVSYS_ADDR_BEGIN SETUP_ADDR_RESUME_LAST //SETUP_ADDR_SEEK_LAST //Kevin1.25
#endif
// wyc.278, modify the address mapping for support per-channel volume control individually.
#define AVSYS_ADDR_ALL_VOLUME (AVSYS_ADDR_BEGIN)
#define EPROM_ALL_VOLUME_BYTE 1
#define AVSYS_ADDR_PER_CHANNEL_VOLUME (AVSYS_ADDR_ALL_VOLUME + EPROM_ALL_VOLUME_BYTE)
#define EPROM_PER_CHANNEL_VOLUME_BYTE (AUDIO_CHANNEL_END+1)
// LLY.277a, define the address for tuner
#define AVSYS_ADDR_STATION_INFO (AVSYS_ADDR_PER_CHANNEL_VOLUME + EPROM_PER_CHANNEL_VOLUME_BYTE)
#define EPROM_STATION_INFO_BYTE STATION_INFO_LENGTH // 5 bytes
#define AVSYS_ADDR_MEMORY_STATION (AVSYS_ADDR_STATION_INFO + EPROM_STATION_INFO_BYTE)
#define EPROM_MEMORY_STATION_BYTE MEMORY_STATION_LENGTH // 30 bytes
// ** brian.277a, ADDR_LAST is in fact the next available address
#define AVSYS_ADDR_LAST (AVSYS_ADDR_MEMORY_STATION + EPROM_MEMORY_STATION_BYTE)
// brian.277a, moved from game.h
// Game uses 13 bytes EPROM
// add by hwtan for OSD game 048 , use EEPROM to store the score of games
//#define EPROM_GAME_ID_ADDR (SETUP_ADDR_SPST_LANGUAGE_CODE+EPROM_SPST_LANGUAGE_CODE_BYTE)
//#define EPROM_GAME_ID_ADDR (SETUP_ADDR_LAST+1) // ** TCH2.74;
#define EPROM_GAME_ID_ADDR AVSYS_ADDR_LAST // ** brian.277a
#define EPROM_GAME_ID 1
#define GAME_ID 1
#define EPROM_GAME_SNAKE_SCORE_ADDR (EPROM_GAME_ID_ADDR + EPROM_GAME_ID)
#define EPROM_GAME_SNAKE_SCORE 3
#define EPROM_GAME_MINE_SCORE_ADDR (EPROM_GAME_SNAKE_SCORE_ADDR+EPROM_GAME_SNAKE_SCORE)
#define EPROM_GAME_MINE_SCORE 6
#define EPROM_GAME_TETRIS_SCORE_ADDR (EPROM_GAME_MINE_SCORE_ADDR+EPROM_GAME_MINE_SCORE)
#define EPROM_GAME_TETRIS_SCORE 3
// hwtan end
// ** brian.277a, ADDR_LAST is in fact the next available address
#define GAME_ADDR_LAST (EPROM_GAME_TETRIS_SCORE_ADDR+EPROM_GAME_TETRIS_SCORE)
// the data sequence must follow the address sequence.
typedef struct tagSETUPINFO
{
char cSetupIdentify[EPROM_IDENTIFY_BYTE];
BYTE bSetupVersion;
WORD wDefaultPassword;
// external reference
BYTE bAspectRatio; //TV type
BYTE bSCRControl; //Screen Saver
BYTE bTVSystem; //TV system
BYTE bProgressiveScan; //Progressive Video Output: On/Off, Brian0.81,
BYTE bBrightness; //Brightness
BYTE bContrast; //Contrast
// Brian1.25, Chroma phase
BYTE bChromPhaseOffset; //Video hue adjustment
BYTE bVideoOutput; //Video Output, no mapping UI
BYTE bAudioOutput; //Audio output //Kevin0.87b, cross out later (consider all modules that use __SetupInfo.bAudioOutput)
BYTE bAudioDigitalOut; //Audio Digital Output
BYTE bAudioAnalogOut; //Audio Analog Output
BYTE bAudioLPCM; //Audio LPCM
BYTE bRegionControl; //Region control
BYTE bAPSControl; //APS control for back door
//WORD wParentalCtl; //Parental control level
// Brian0.87, only Byte is used, keep it to BYTE will be convenient for Menu structure to handle
BYTE wParentalCtl; //Parental control level
BYTE bOSDLanguage; //OSD Language
//After LOGO is displayed
BYTE bAudioCenter; //Audio Center
BYTE bAudioRear; //Audio Rear
BYTE bAudioSubwoofer; //Audio Subwoofer
BYTE bAudioDNR; //Audio DNR compression
BYTE bAudioKaraoke; //Audio karaoke
BYTE bParentalControl; //Parental control for back door
BYTE bMenuLanguage; //Menu Language
BYTE bAudioLanguage; //Audio Language
BYTE bSPSTLanguage; //Subtitle Language
WORD wMenuLanguageCode; //Record other menu language code
WORD wAudioLanguageCode; //Record other audio language code
WORD wSPSTLanguageCode; //Record other SPST language code
BYTE bAngleMarkDisplay; //Angle mark display
BYTE bVCDControl; // ** TCH2.74; "1" mean can;t play VCD-relative title
BYTE bAudioPrologic; // Brian2.78b-2, prologic on/off
// data are not stored in EEPROM
char cReserved[10];
// brian.170a, as Micky request another variable that actually contains the OSD dispaly time
// for Angle message
BYTE bAngleMarkTime; // 0 when SETUP_CUSTOM_ANGLE_MARK_OFF; 0xFF when SETUP_CUSTOM_ANGLE_MARK_ON
BYTE bAudioTestTone;
} SETUPINFO;
typedef enum tagID_LIST
{
SETUP_ID_BASE=0,
// Main menu item
SETUP_MAIN_BASE=SETUP_ID_BASE,
SETUP_MAIN_LANGUAGE=SETUP_MAIN_BASE,
SETUP_MAIN_SCREEN,
SETUP_MAIN_AUDIO,
SETUP_MAIN_CUSTOM,
SETUP_MAIN_EXIT,
// Main->Language sub menu
SETUP_LANGUAGE_BASE=6,
SETUP_LANGUAGE_OSD=SETUP_LANGUAGE_BASE,
SETUP_LANGUAGE_MENU,
SETUP_LANGUAGE_AUDIO,
SETUP_LANGUAGE_SUBTITLE,
// Main->Screen sub menu
SETUP_SCREEN_BASE=10,
SETUP_SCREEN_TV_TYPE=SETUP_SCREEN_BASE,
#ifndef NO_SCREEN_SAVER // Brian1.20
SETUP_SCREEN_SAVER,
#endif
SETUP_SCREEN_TV_SYSTEM,
SETUP_SCREEN_VIDEO_OUTPUT,
//SETUP_SCREEN_PROGRESSIVE_SCAN, // Brian1.06, P-SCAN is integrated into Video Output
SETUP_SCREEN_BRIGHTNESS,
SETUP_SCREEN_CONTRAST,
#ifdef SUPPORT_ADJUST_CHROM_PHASE // Brian1.25, Chroma phase
SETUP_SCREEN_CHROM_PHASE,
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -