📄 capture.h
字号:
uint16 input_buffer_size; uint16 input_sector_size; uint16 warning_overflow_thrs; uint16 warning_underflow_thrs; } esp_params;} t_cap_config;/*---------------------------------------------------------------------------*//*!\brief Capture Task Input/Output Events Structures and generic defs *//*---------------------------------------------------------------------------*/typedef enum cap_state{ CAP_STATE_NONE = 0, CAP_STATE_INIT, CAP_STATE_INIT_FOR_NEW_MEDIA, CAP_STATE_STOP, CAP_STATE_START, CAP_STATE_SET_SPEED, CAP_STATE_PAUSE, CAP_STATE_TOC_JUMP, CAP_STATE_WRITE_DATA, CAP_STATE_READ_DATA, CAP_STATE_ERROR, CAP_STATE_IDLE} t_cap_state;typedef enum cap_transition_state{ CAP_STATE_INIT_TRANSITION, CAP_STATE_XFER_STOP, CAP_STATE_XFER_STOP_CHECK, CAP_STATE_XFER_EVAL, CAP_STATE_XFER_START, CAP_STATE_XFER_CHECK, CAP_STATE_XFER_CONTINUE, CAP_STATE_XFER_END, CAP_STATE_XFER_ESP_START, CAP_STATE_XFER_ESP_OVERFLOW, CAP_STATE_XFER_ESP_MEDIA_PAUSE, CAP_STATE_XFER_ESP_PAUSE, CAP_STATE_XFER_ESP_WAIT, CAP_STATE_XFER_IDLE, CAP_STATE_INTERNAL_ERROR} t_cap_transition_state;typedef struct cap_esp{ uint8 data_type; uint32 last_good_lba; int16 last_good_ptr; int16 xfer_pointer; t_lba xfer_sector_start; // [FH] 06/Apl/2007 t_lba xfer_sector_end; uint8 xfer_condition; uint8 xfer_chunk_level;} t_cap_esp;/* capture status */typedef struct cap_status{ t_cap_state state; t_cap_transition_state write_state; t_cap_transition_state read_state; t_cap_transition_state forward_state; t_cap_transition_state error_state; t_cap_esp write; t_cap_esp read; struct { RETVAL fsm_result; RETVAL error_reason; } result; struct { UInt g_retries : 8; UInt g_servo_retries : 4; UInt g_good_sectors : 3; UInt g_bd_sector_it : 8; UInt chk_lba : 8; /* To count invalid sector on CDDA [FH] 25/Sep/2007 */ t_lba g_good_lba; /* [FH] 13/Apl/2007 */ } count; struct { UInt transition : 1; UInt continue_xfer : 1; } flags;} t_cap_status;/* capture command event */struct t_init_event{ UInt unused : 32;};struct t_init_for_new_media_event{ UInt unused : 32;};struct t_stop_event{ UInt force_execution : 1; UInt unused : 31;};struct t_start_event{ UInt unused : 32;};typedef uint8 t_capture_set_speed_event;#define t_pause_event SEEK_STRUCT_SID#define t_toc_jump_event TOC_JUMP_STRUCT/* unbuffered path, if needed */#define t_seek_event SEEK_STRUCT_SIDtypedef enum{ CAP_DATA_REQUEST, CAP_SECTOR_REQUEST, CAP_SYNC_SECTOR_REQUEST, CAP_HEADER_SECTOR_REQUEST, CAP_SB_HDR_SECTOR_REQUEST, CAP_SECTOR_TRAILER_REQUEST }t_cap_header_trailer;//DR060926atypedef struct read_event{ uint8 *dest; uint16 offset; uint32 count; uint32 Sector_Read; t_cap_header_trailer Header_Trailer; //DR060926a } t_cap_read_event;/*Header_Trailer Read CommandsHeader_Trailer = 0 ;Only data is requestedHeader_Trailer = 1 ;Complete sector is requestedHeader_Trailer = 2 ;Sync with data is requestedHeader_Trailer = 3 ;Header with data is requestedHeader_Trailer = 4 ;Sub-header with data is requestedHeader_Trailer = 5 ;Data with trailer is requestedHeader_Trailer = 6 ;Only data is requestedHeader_Trailer = 7 ;Only data is requested*/typedef struct write_event{ t_lba sector_start; t_lba sector_stop; uint8 start_mode; uint8 end_mode; uint8 data_mode; UInt data_type : 4; UInt force_execution : 1; UInt Play_Mode :1;//DR060912 (if 1 then Access Buffer in Play Mode otherwsie ROM Mode) UInt dont_ignore_first_track_change : 1; UInt FB_mode : 1; UInt update_process : 1; uint8 cur_TNO; } t_write_event;typedef enum{ CAP_CMD_NONE = NO_EVENT, CAP_CMD_INIT, CAP_CMD_INIT_FOR_NEW_MEDIA, CAP_CMD_STOP, CAP_CMD_START, CAP_CMD_SET_SPEED, CAP_CMD_PAUSE, CAP_CMD_TOC_JUMP, CAP_CMD_XFER_DATA, /* unbuffered path, if needed */ CAP_CMD_SEEK} t_cap_command;typedef struct cap_cmd_event{ t_duid did; t_cap_command command; union { struct t_init_event init_params; struct t_init_for_new_media_event init_for_new_media_params; struct t_stop_event stop_params; struct t_start_event start_params; t_capture_set_speed_event set_speed_params; t_pause_event pause_params; t_write_event xfer_params; t_toc_jump_event toc_jump_params; /* unbuffered path, if needed */ t_seek_event seek_params; } command_params;} t_cap_cmd_event;/* buffer structure */struct t_cap_block_fl{ t_lba lba; uint16 pos;};struct t_cap_block_cu{ t_lba lba; uint16 pos; uint16 first_byte;};typedef struct cap_esp_buf{ struct t_cap_block_fl first; struct t_cap_block_fl last; UInt fill : 1;} t_cap_esp_buf;#define t_capture_subcode_event t_acq_subcode_eventtypedef struct{ uint8 DataType; uint8 b1; uint8 b2; uint8 b3; uint8 b4; uint8 SubcodeStatus; uint16 SectorFlags;} BLOCK_INFO_STRUCT;/*---------------------------------------------------------------------------*//*!\brief capture functions *//*---------------------------------------------------------------------------*/void cap_fsm_init(void);void cap_update_config(void);RETVAL cap_cmd(t_cap_cmd_event *cmd_event);RETVAL cap_read_cmd(t_cap_read_event *cmd_event);void cap_esp_write_controller_update_isr(void);extern uint8 new_cap_config;extern t_cap_config cap_config;extern int16 cap_esp_margin;extern t_cap_esp_buf cap_esp_buf;#if (0 == HAVE_SHOCK_MEMORY)extern uint8 cap_input_buffer_IntRAM[];#elseextern t_cap_cmd_event cap_cmd_event;extern uint8 *cap_input_buffer_SDRAM;extern uint16 CAP_CHIN_SECTOR_SIZE;extern uint16 CAP_INPUT_BUFFER_SIZE_SDRAM;#endifextern tQsubcode_event capture_subcode_event[];#endif/*************************************************************************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -