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

📄 setup.h

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

// 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 + -