hostif_high.h
来自「本程序为ST公司开发的源代码」· C头文件 代码 · 共 818 行 · 第 1/3 页
H
818 行
{ HSP_STATUS_ERROR_SLEDGE_HOME_NOT_DONE = 0x00, HSP_STATUS_ERROR_FE_ADJUST_NOT_DONE = 0x01, HSP_STATUS_ERROR_TE_ADJUST_NOT_DONE = 0x02, HSP_STATUS_ERROR_AGC_FOCUS_NOT_DONE = 0x03, HSP_STATUS_ERROR_AGC_TRACKING_NOT_DONE = 0x04, HSP_STATUS_OK = 0x08, HSP_STATUS_RESTART = 0x10, HSP_STATUS_UPDATE_AWAITED = 0x80, HSP_STATUS_STARTUP_UPDATE_AWAITED = HSP_STATUS_UPDATE_AWAITED, HSP_STATUS_STARTUP_ERROR_SLEDGE_HOME_NOT_DONE = HSP_STATUS_ERROR_SLEDGE_HOME_NOT_DONE, HSP_STATUS_STARTUP_ERROR_FE_ADJUST_NOT_DONE = HSP_STATUS_ERROR_FE_ADJUST_NOT_DONE, HSP_STATUS_STARTUP_ERROR_TE_ADJUST_NOT_DONE = HSP_STATUS_ERROR_TE_ADJUST_NOT_DONE, HSP_STATUS_STARTUP_ERROR_AGC_FOCUS_NOT_DONE = HSP_STATUS_ERROR_AGC_FOCUS_NOT_DONE, HSP_STATUS_STARTUP_ERROR_AGC_TRACKING_NOT_DONE = HSP_STATUS_ERROR_AGC_TRACKING_NOT_DONE, HSP_STATUS_STARTUP_OK = HSP_STATUS_OK, HSP_STATUS_RESTART_UPDATE_AWAITED = HSP_STATUS_UPDATE_AWAITED | HSP_STATUS_RESTART, HSP_STATUS_RESTART_ERROR_AGC_FOCUS_NOT_DONE = HSP_STATUS_RESTART | HSP_STATUS_ERROR_AGC_FOCUS_NOT_DONE, HSP_STATUS_RESTART_ERROR_AGC_TRACKING_NOT_DONE = HSP_STATUS_RESTART | HSP_STATUS_ERROR_AGC_TRACKING_NOT_DONE, HSP_STATUS_RESTART_OK = HSP_STATUS_RESTART | HSP_STATUS_OK} t_hsp_status;/* BlockResponse message ErrorCode values for Transport Layer */typedef enum TLBlockResponseCode_tag { ErrOk, /* no error; packet correctly transmitted */ ErrBusy, /* Transport layer busy; previous transport layer session */ /* need to be finished or aborted first */ ErrAbort, /* Abort current transport layer session; data will be lost */ ErrCRC, /* CRC of transported block is wrong; block was not correctly received */ ErrSize, /* To many data, exceeding maximum transmittable size */ /* (with current link layer frame length) or number of data */ /* exceeding the allocated size in the block header */ ErrID, /* BlockID doesn't match running transport layer session */ ErrPacketNo, /* packet number not continuous; data packet is missing */ ErrProtocol, /* General protocol error; e.g. trailer without header */ ErrOutOfMemory, ErrTimeOut /* Block transmission was not continued until safeguard timeout; */ /* block transmission is canceled; data are lost */} TLBlockResponseCode;/* Values below are for accessing the bitmask provided in the ReqTextInfo *//* command. Adapted to CIS0.09 */typedef enum tag_textInfoBitmask{ textInfoBitmask_DiskTitle = 0x01, textInfoBitmask_TrackTitle = 0x02, textInfoBitmask_TrackArtist =0x04, textInfoBitmask_TrackGenre = 0x08, textInfoBitmask_TrackYear = 0x10, textInfoBitmask_Comment = 0x20, textInfoBitmask_DiskArtist = 0x40, textInfoBitmask_TrackNo = 0x80 // was Title} t_textInfoBitmask;/* Response to the ReqTextInfo message uses different field codings than *//* the request, so translation is necessary. Adapted to CIS0.09 */typedef enum tag_textInfoValue{ textInfoValue_DiskTitle = 0, textInfoValue_TrackTitle = 1, textInfoValue_DiskArtist = 2, textInfoValue_TrackGenre = 3, textInfoValue_TrackYear = 4, textInfoValue_Comment = 5, textInfoValue_TrackArtist = 6, textInfoValue_TrackNo = 7} t_textInfoValue;/* Parameter to the report_msg_entry_name() function */typedef enum t_msg_directory_entries_tag{ ENTRY_NAME_TYPE_FILE, ENTRY_NAME_TYPE_DIR, ENTRY_NAME_TYPE_PLAYLIST, ENTRY_NAME_TYPE_FILE_PLAYLIST, ENTRY_NAME_TYPE_FILE_SPECIAL } t_msg_directory_entries;/* parameter to the report_msg_entry_name() function */typedef enum t_msgEntryStyle_tag{ USE_SHORT_NAME, USE_LONG_NAME} t_msgEntryStyle;typedef struct tag_textInfoParameters { t_textInfoBitmask fields; uint8 length; uint8 string_offset; uint8 msg_sequence_number;} t_textInfoParameters;typedef struct tag_msgEntryParameters { uint8 length; uint8 string_offset; uint8 msg_sequence_number; uint16 index; uint16 SongOrDirNr; t_msg_directory_entries type; t_dir_num_style playerDirNumbering;} t_msgEntryParameters;typedef struct tag_discContentParameters{ t_duid device; uint16 totalFile; uint16 totalDirs; uint16 msg_sequence_number; /* X_Array index of the last directory included in a ROMMediaContent message */ t_XItem directory_xid; /* index associated to the above directory in last ROMMediaContent message */ uint16 directory_index;} t_discContentParameters;typedef struct tag_dirContentParameters{ int16 saved_root; int16 saved_dir; int16 msg_sequence_number; int16 volume; uint16 saved_DirNr; t_duid device;} t_dirContentParameters;typedef struct tag_absPlaylistContentParameters{ int16 msg_sequence_number; uint16 last_index; uint16 saved_PlaylistNr; t_duid device;} t_playlistAbsContentParameters;typedef struct tag_BinaryUpstreamParameters{ /* Local vars for messaging (packet, block numbering */ uint16 block_index; uint16 packet_index; uint16 offset; /* buffer index (read ptr) */ uint16 packet_size; /* calculates size of next packet (HOSTIF_MAX_BLOCK_SIZE / rest of 2K block) */ t_bool send_msg_now; /* provided buffer info */ uint8 * data_ptr; /* pointer to 1st byte of currently available data */ uint16 data_cnt; /* count of available data */ uint32 DataTag; uint8 flags; /* last data of current transfer */ /* locally stored data (not enough to send current packet ) */ uint8 saved_data_count; uint8 saved_data_buffer[HOSTIF_MAX_BLOCK_SIZE - 1]; /* no need to have complete size of packet, bcs if HOSTIF_MAX_BLOCK_SIZE data available, they are sent. */ } t_BinaryUpstreamParameters;typedef enum { NO_TRANSFER, HOST_UPDATE_MODE, IPOD_MODE, RESUME_MODE } t_binary_trasnfer_mode;extern t_textInfoParameters saved_textInfoParameters;extern t_msgEntryParameters saved_msgEntryParameters, saved_msgLongEntryParameters;extern t_discContentParameters saved_msgDiscContentParameters;#if (0!=IPOD_PASSTHROUGH)extern t_BinaryUpstreamParameters saved_BinaryUpstreamParameters;#endif /*IPOD_PASSTHROUGH*/extern uint8 hostif_servo_parameters_vector[MAX_SERVO_PARAMETER + 1];void report_msg_temperature(void);extern uint32 hostif_pvd_address;void prepare_msg_text_info(t_textInfoBitmask text_info_bitmask, uint8 max_text_packet_length);t_bool report_msg_text_info(void);t_bool report_msg_long_entry_name(void);t_bool report_msg_text_info_single(t_textInfoBitmask field);t_bool report_msg_rom_media_content(void);t_bool report_msg_dir_content(void);t_bool report_msg_update_flash(void);void report_msg_disc_type(uint8 CD_disc_type);void report_msg_device_label(uint8 device);void report_msg_insert_mode(GRESULT mode, uint32 VID, uint32 PID );void report_msg_error_mode(uint8 error_mode);void report_msg_power_mode(uint8 power_mode);void report_msg_loader_mode(uint8 loader_mode, uint8 loader_mode_attribute);void report_msg_player_mode(uint8 player_mode, uint8 player_transition_state, t_bool player_resume_available, uint8 seek_speed);void report_msg_time_info(void);void report_msg_disc_id(void);void report_msg_track_info(void);void report_msg_CA_file_info(void);void process_cmd(uint8* player_par, uint8 cmd_id);void report_msg_current_source(uint8 device);void report_msg_last_file_info(uint8 Type);int32 prepare_msg_entry_name(uint16 SongOrDirNr, t_msg_directory_entries type, t_dir_num_style dirs_numbering_style);void report_msg_usb_serial_number(uint8 length);void report_msg_usb_device_info(void);t_bool report_msg_entry_name(t_msgEntryParameters *saved, t_msgEntryStyle format);void report_msg_directory_entries (uint16 DirNr, uint16 current_song, t_dir_num_style dir_numbering);void report_msg_read_toc(void);void report_msg_device_info(void);void report_msg_device_file_type(t_duid device);void report_msg_playlist_files(uint16 count);void report_msg_config_table(uint8 addr, uint8 length);void report_msg_current_playlist_content(uint16 PlaylistNr, uint32 count);t_bool report_msg_current_playlist_abs_content(void);void reset_hostif_servo_parameters(t_hsp_reset_mode hsp_reset_mode);void store_hostif_servo_parameters(t_hsp_storing_mode hsp_storing_mode);t_bool report_msg_binary_packet(t_BinaryUpstreamParameters * TransferParams);void report_msg_folder_number(uint16 song_nr); // new in sw release 3.2//void hostifAppProcessFileCommandsGroup(char *cmd, uint16 cmd_len);/* OS20 stuff */void InitHostIfTask(void);extern semaphore_t sem_hostif_critical;/* ipod passthrough staff*/#define BLOCK_LENGTH 2048#define PACKET_LENGTH 49#define MAX_IPOD_PACKETS 4#define LAST_PACKET 1 //bEndFlag content#define KB_SHIFT 10typedef struct tag_ipod_buffer{ uint8 data_slot[PACKET_LENGTH]; uint16 length; //amount of data in current slot uint8 flag; //signalling first/last data packet } t_ipod_buffer;/* downstream params */typedef struct tag_BinaryDownstreamParameters{ //internal buffer management uint32 read_slot; uint32 write_slot; uint32 slots_full; /* used ptr to be able share buffer space with some another buffer */ t_ipod_buffer * ipod_buffer; //usb packet counter uint32 usb_packet_nr; t_bool data_pending; //=1 if command sent to USB not yet acknowledged //used for host packets checks (discontinuity of incoming data) uint32 last_block_nr; int32 last_packet_nr; uint32 last_flag; } t_BinaryDownstreamParameters;typedef union{ struct { uint8 lo; uint8 hi; } bytes; uint16 word;} t_uint16;#endif //_HOSTIF_HIGH_H_
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?