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 + -
显示快捷键?