📄 mconfig.h
字号:
UInt reserved_6 : 1; UInt reserved_7 : 1;} AUTO_MODE_STRUCT;typedef __packed union{ uint8 all; AUTO_MODE_STRUCT field;} AUTO_MODE_UNION;/*!\brief playback scope */typedef __packed struct{ UInt reserved_0 : 1; UInt reserved_1 : 1; UInt reserved_2 : 1; UInt reserved_3 : 1; UInt reserved_4 : 1; UInt reserved_5 : 1; UInt reserved_6 : 1; UInt current_directory : 1;} PLAYBACK_SCOPE_CFG_STRUCT;typedef __packed union{ uint8 all; PLAYBACK_SCOPE_CFG_STRUCT field;} PLAYBACK_SCOPE_CFG_UNION;/*!\brief eject distance */typedef __packed struct{ UInt additional_eject_distance : 5; UInt conservative_behavior_Shinwa_CDC02 : 1; UInt conservative_behavior_Tanashin : 1; UInt reserved_7 : 1;} LOADER_CFG_1_STRUCT;typedef __packed union{ uint8 all; LOADER_CFG_1_STRUCT field;} LOADER_CFG_1_UNION;#define MAX_SAFE_EJECT_DISTANCE_SHINWA_CLC01 0x0E /* 14 mm */#define MAX_SAFE_EJECT_DISTANCE_SHINWA_CDC02 0x19 /* 25 mm *//*!\brief loader cfg */typedef __packed struct{ UInt loader_retries : 3; UInt reverse_direction : 1; UInt eject_repositioning : 1; UInt eject_without_disc : 1; UInt insert_without_disc : 1; UInt reject_8cm_disc : 1;} LOADER_CFG_2_STRUCT;typedef __packed union{ uint8 all; LOADER_CFG_2_STRUCT field;} LOADER_CFG_2_UNION;typedef __packed struct{ UInt numbering_sort : 1; UInt reserved_1 : 1; UInt reserved_2 : 1; UInt reserved_3 : 1; UInt reserved_4 : 1; UInt reserved_5 : 1; UInt reserved_6 : 1; UInt reserved_7 : 1; } FOLDER_NUMBERING_SORT_STRUCT;typedef __packed union{ uint8 all; FOLDER_NUMBERING_SORT_STRUCT field;} FOLDER_NUMBERING_SORT_UNION;typedef __packed struct{ UInt playlist_enabled : 1; UInt report_available_playlists : 1; UInt report_available_playlist_content : 1; UInt best_guess_config : 5;} PLAYLIST_CFG_STRUCT;typedef __packed union{ uint8 all; PLAYLIST_CFG_STRUCT field;} PLAYLIST_CFG_UNION;typedef __packed struct{ UInt remove_ext_in_msg_entry_name : 1; UInt reserved_2 : 1; UInt reserved_3 : 1; UInt reserved_4 : 1; UInt reserved_5 : 1; UInt reserved_6 : 1; UInt reserved_7 : 1;} MSG_ENTRY_NAME_CFG_STRUCT;typedef __packed union{ uint8 all; MSG_ENTRY_NAME_CFG_STRUCT field;} MSG_ENTRY_NAME_CFG_UNION;typedef __packed struct{ UInt enable_hub_support : 1; UInt enable_vbus_control : 1; UInt reserved_3 : 1; UInt reserved_4 : 1; UInt reserved_5 : 1; UInt reserved_6 : 1; UInt reserved_7 : 1;} USB_OPTIONS_CFG_STRUCT;typedef __packed union{ uint8 all; USB_OPTIONS_CFG_STRUCT field;} USB_OPTIONS_CFG_UNION;typedef __packed struct{ UInt enable_v1 : 1; UInt enable_v2 : 1; UInt priority_v2 : 1; UInt reserved_4 : 1; UInt reserved_5 : 1; UInt reserved_6 : 1; UInt reserved_7 : 1;} ID3_CFG_STRUCT;typedef __packed union{ uint8 all; ID3_CFG_STRUCT field;} ID3_CFG_UNION;#if (0!=IPOD_AP)typedef __packed struct{ UInt enable_iAP : 1; UInt reserved_1 : 1; UInt reserved_2 : 1; UInt reserved_3 : 1; UInt reserved_4 : 1; UInt reserved_5 : 1; UInt reserved_6 : 1; UInt reserved_7 : 1;} IPOD_CFG_STRUCT;typedef __packed union{ uint8 all; IPOD_CFG_STRUCT field; } IPOD_CFG_UNION;#endif /* IPOD_AP */#define UPDATE_IMAGE_LENGTH 20/*!\brief module configuration */typedef __packed struct{ uint8 i2c_address; /* addr 0x00 */ AUDIO_OUTPUT_CFG_UNION audio_output_cfg; /* addr 0x01 */ ROM_DATA_CFG_UNION rom_data_cfg; /* addr 0x02 */ uint8 load_action; /* addr 0x03 */ uint8 language_cfg_1; /* addr 0x04 */ uint8 language_cfg_2; /* addr 0x05 */ uint8 language_cfg_3; /* addr 0x06 */ uint8 language_cfg_4; /* addr 0x07 */ uint8 language_cfg_5; /* addr 0x08 */ uint8 text_info_setting_item; /* addr 0x09 */ uint8 text_info_setting_code; /* addr 0x0A */ uint8 text_info_setting_length; /* addr 0x0B */ MEDIA_INFO_SETTING_UNION media_info_setting; /* addr 0x0C */ LAST_FILE_REPORTING_CFG_UNION last_file_reporting_cfg; /* addr 0x0D */ AUDIO_FORMAT_CFG_UNION audio_format; /* addr 0x0E */ FUNCTION_CFG_UNION function_cfg; /* addr 0x0F */ HYBRID_DISC_CFG_UNION hybrid_disc_cfg; /* addr 0x10 */ WRAP_CFG_UNION wrap_cfg; /* addr 0x11 */ PLAY_MODE_UNION play_mode; /* addr 0x12 */ AUTO_MODE_UNION auto_mode; /* addr 0x13 */ PLAYBACK_SCOPE_CFG_UNION playback_scope; /* addr 0x14 */ LOADER_CFG_1_UNION loader_cfg_1; /* addr 0x15 */ LOADER_CFG_2_UNION loader_cfg_2; /* addr 0x16 */ FOLDER_NUMBERING_SORT_UNION folder_numbering_sort; /* addr 0x17 */ uint8 search_speed; /* addr 0x18 */ uint8 size_of_sdram_h; /* addr 0x19 */ uint8 size_of_sdram_l; /* addr 0x1A */ uint8 size_of_flash; /* addr 0x1B */ uint8 MemCheck; /* addr 0x1C */ PLAYLIST_CFG_UNION playlist_cfg; /* addr 0x1D */ uint8 search_play_time; /* addr 0x1E */ #if (1 == HAVE_FSHRINK) uint8 file_shrink_step; /* addr 0x1F */ uint8 file_shrink_max; /* addr 0x20 */ uint8 file_shrink_min; /* addr 0x21 */ uint8 dir_shrink_step; /* addr 0x22 */ uint8 dir_shrink_max; /* addr 0x23 */ uint8 dir_shrink_min; /* addr 0x24 */#else // even if feature not present keep reserved field to avoid changing addresses of following fields (if any) uint8 reserved1; /* addr 0x1F */ uint8 reserved2; /* addr 0x20 */ uint8 reserved3; /* addr 0x21 */ uint8 reserved4; /* addr 0x22 */ uint8 reserved5; /* addr 0x23 */ uint8 reserved6; /* addr 0x24 */#endif // HAVE_FSHRINK MSG_ENTRY_NAME_CFG_UNION msg_entry_name; /* addr 0x25 */ USB_OPTIONS_CFG_UNION usb_options; /* addr 0x26 */ ID3_CFG_UNION id3_cfg; /* addr 0x27 */ char update_filename[UPDATE_IMAGE_LENGTH]; /* addr 0x28 - 0x3B */ uint8 host_update_method; /* addr 0x3C */ uint8 shockproof_size; /* addr 0x3D */ uint16 filesystem_limit; /* addr 0x3E - 0x3F */ uint8 error_sectors_mp3; /* addr 0x40 */ uint8 error_sectors_aac; /* addr 0x41 */ uint8 error_sectors_wma; /* addr 0x42 */#if (0!=IPOD_AP) IPOD_CFG_UNION ipod_cfg;#endif } MODULE_CONFIGURATION_STRUCT;/*!\brief module configuration */typedef __packed union{ uint8 raw[sizeof(MODULE_CONFIGURATION_STRUCT)]; MODULE_CONFIGURATION_STRUCT data;} MODULE_CONFIGURATION_UNION;#define SEEK_MAX_SPEED 30#define SEEK_MIN_SPEED 2#define SEEK_PLAY_TIME_MAX 30#define SEEK_PLAY_TIME_MIN 3#define CADDR_I2C_ADDRESS 0x00#define CADDR_AUDIO_OUTPUT_CFG 0x01#define CADDR_ROM_DATA_CFG 0x02#define CADDR_LOAD_ACTION 0x03#define CADDR_LANGUAGE_CFG_1 0x04#define CADDR_LANGUAGE_CFG_2 0x05#define CADDR_LANGUAGE_CFG_3 0x06#define CADDR_LANGUAGE_CFG_4 0x07#define CADDR_LANGUAGE_CFG_5 0x08#define CADDR_TEXT_INFO_SETTING_ITEM 0x09#define CADDR_TEXT_INFO_SETTING_CODE 0x0A#define CADDR_TEXT_INFO_SETTING_LENGTH 0x0B#define CADDR_MEDIA_INFO_SETTING 0x0C#define CADDR_LAST_FILE_REPORTING_CFG 0x0D#define CADDR_AUDIO_FORMAT 0x0E#define CADDR_FUNCTION_CFG 0x0F#define CADDR_HYBRID_DISC_CFG 0x10#define CADDR_WRAP_CFG 0x11#define CADDR_PLAY_MODE 0x12#define CADDR_AUTO_MODE 0x13#define CADDR_PLAYBACK_SCOPE 0x14#define CADDR_LOADER_CFG_1 0x15#define CADDR_LOADER_CFG_2 0x16#define CADDR_FOLDER_NUMBERING_SORT 0x17#define CADDR_SEARCH_SPEED 0x18#define CADDR_SIZE_OF_SDRAM_H 0x19#define CADDR_SIZE_OF_SDRAM_L 0x1A#define CADDR_SIZE_OF_FLASH 0x1B#define CADDR_MEM_CHECK_CFG 0x1C#define CADDR_PLAYLIST_CFG 0x1D#define CADDR_SEARCH_PLAY_TIME 0x1E#define CADDR_FSHRINK_FILE_STEP 0x1F#define CADDR_FSHRINK_FILE_MAX 0x20#define CADDR_FSHRINK_FILE_MIN 0x21#define CADDR_FSHRINK_DIR_STEP 0x22#define CADDR_FSHRINK_DIR_MAX 0x23#define CADDR_FSHRINK_DIR_MIN 0x24#define CADDR_MSG_ENTRY_NAME 0x25#define CADDR_USB_OPTIONS_CFG 0x26#define CADDR_ID3_CFG 0x27#define CADDR_HOST_UPDATE_NAME 0x28 /* occupies more bytes! length = UPDATE_IMAGE_LENGTH */ #define CADDR_HOST_UPDATE_METHOD 0x3C#define CADDR_ESP_SIZE 0x3D#define CADDR_FILESYSTEM_LIMIT 0x3E /* occupies 2 bytes! */#define CADDR_ERR_SECTORS_MP3 0x40#define CADDR_ERR_SECTORS_AAC 0x41#define CADDR_ERR_SECTORS_WMA 0x42#if (0!=IPOD_AP)#define CADDR_IPOD_CFG 0x43#define MODULE_CONFIG_SIZE (CADDR_IPOD_CFG + 1) #else #define MODULE_CONFIG_SIZE (CADDR_ERR_SECTORS_WMA + 1) #endif /* IPOD_AP */#define DFLT_I2C_ADDRESS 0xE0#define DFLT_AUDIO_OUTPUT_CFG 0x40 #define DFLT_ROM_DATA_CFG 0x00#define DFLT_LOAD_ACTION 0x64#define DFLT_LANGUAGE_CFG_1 LNG_ENGLISH#define DFLT_LANGUAGE_CFG_2 LNG_CHINESE#define DFLT_LANGUAGE_CFG_3 LNG_ITALIAN#define DFLT_LANGUAGE_CFG_4 LNG_GERMAN#define DFLT_LANGUAGE_CFG_5 LNG_FRENCH#define DFLT_TEXT_INFO_SETTING_ITEM 0x00#define DFLT_TEXT_INFO_SETTING_CODE 0x00#define DFLT_TEXT_INFO_SETTING_LENGTH MAX_TEXT_LENGTH#define DFLT_MEDIA_INFO_SETTING 0x10#define DFLT_LAST_FILE_REPORTING_CFG 0x00#if (HAVE_AAC != 0)#define DFLT_AUDIO_FORMAT 0x0B#else#define DFLT_AUDIO_FORMAT 0x03#endif#define DFLT_FUNCTION_CFG 0x01#define DFLT_HYBRID_DISC_CFG 0x03#define DFLT_WRAP_CFG 0x00#define DFLT_PLAY_MODE 0x00#define DFLT_AUTO_MODE 0x00#define DFLT_PLAYBACK_SCOPE 0x00#define DFLT_LOADER_CFG_1 0x00 // initialization done in loader_cfg_init()#define DFLT_LOADER_CFG_2 0x00 // initialization done in loader_cfg_init()#define DFLT_FOLDER_NUMBERING_SORT 0x00#define DFLT_SEARCH_SPEED SEEK_MIN_SPEED#define DFLT_SIZE_OF_SDRAM_H 0x00#define DFLT_SIZE_OF_SDRAM_L 0x00#define DFLT_SIZE_OF_FLASH 0x00#define DFLT_MEM_CHECK_CFG 0x00 //JS added, only guess what can be dafault value? #define DFLT_PLAYLIST_CFG 0x06#define DFLT_SEARCH_PLAY_TIME SEEK_PLAY_TIME_MIN#if (1 == HAVE_FSHRINK) #define DFLT_FSHRINK_FILE_STEP 0x04 #define DFLT_FSHRINK_FILE_MAX 0x00 // disable first step (when name is inserted for the first time) #define DFLT_FSHRINK_FILE_MIN 0x0A #define DFLT_FSHRINK_DIR_STEP 0x04 #define DFLT_FSHRINK_DIR_MAX 0x00 // disable first step (when name is inserted for the first time) #define DFLT_FSHRINK_DIR_MIN 0x0A#else // put some 'strange' values to indicate feature is not present #define DFLT_FSHRINK_FILE_STEP 0xFF #define DFLT_FSHRINK_FILE_MAX 0xFF #define DFLT_FSHRINK_FILE_MIN 0xFF #define DFLT_FSHRINK_DIR_STEP 0xFF #define DFLT_FSHRINK_DIR_MAX 0xFF #define DFLT_FSHRINK_DIR_MIN 0xFF#endif#define DFLT_MSG_ENTRY_NAME 0x00#define DFLT_USB_OPTIONS_CFG 0x03#define DFLT_ID3_CFG 0x03 // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20#define DFLT_UPDATE_NAME 'U','P','D','A','T','E','.','B','I','N','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0'#define DFLT_HOST_UPDATE_METHOD 0x00 #define DFLT_ESP_SIZE 0x09#define DFLT_FILESYSTEM_LIMIT 0x00,0x00#define DFLT_ERR_SECTORS_MP3 0xff#define DFLT_ERR_SECTORS_AAC 0xff#define DFLT_ERR_SECTORS_WMA 0x00#define DFLT_IPOD_CFG 0x00/* module configuration array */extern MODULE_CONFIGURATION_UNION module_config;/***********************//* interface functions *//**********************/void mconfig_init(void);void mconfig_update_params(uint8 addr, uint8 len);void mconfig_write_byte(uint8 addr, uint8 data);uint8 mconfig_read_byte(uint8 addr);void mconfig_write_bits(uint8 addr, uint8 mask_0, uint8 mask_1);uint8 audio_output_cfg_update(void);#endif /* __MCONFIG_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -