29#if (CFG_TUH_ENABLED && CFG_TUH_VENDOR)
50 return TUSB_ERROR_DEVICE_NOT_READY;
53 TU_ASSERT( p_buffer != NULL && length != 0, TUSB_ERROR_INVALID_PARA);
55 return TUSB_ERROR_NONE;
66 return TUSB_ERROR_INTERFACE_IS_BUSY;
71 return TUSB_ERROR_NONE;
80 return TUSB_ERROR_INTERFACE_IS_BUSY;
85 return TUSB_ERROR_NONE;
93 tu_memclr(&
custom_interface,
sizeof(custom_interface_info_t) * CFG_TUH_DEVICE_MAX);
99 uint8_t
const *p_desc = (uint8_t
const *) p_interface_desc;
103 for(uint32_t i=0; i<2; i++)
111 TU_ASSERT ( pipehandle_is_valid(*p_pipe_hdl), TUSB_ERROR_HCD_OPEN_PIPE_FAILED );
117 return TUSB_ERROR_NONE;
127 tusb_error_t err1, err2;
131 if( pipehandle_is_valid( p_interface->pipe_in ) )
133 err1 = hcd_pipe_close( p_interface->pipe_in );
136 if ( pipehandle_is_valid( p_interface->pipe_out ) )
138 err2 = hcd_pipe_close( p_interface->pipe_out );
141 tu_memclr(p_interface,
sizeof(custom_interface_info_t));
143 TU_ASSERT(err1 == TUSB_ERROR_NONE && err2 == TUSB_ERROR_NONE, (
void) 0 );
AUDIO Channel Cluster Descriptor (4.1)
uint8_t bDescriptorType
Descriptor Type. Value: TUSB_DESC_CS_INTERFACE.
@ TUSB_CLASS_VENDOR_SPECIFIC
struct TU_ATTR_PACKED tusb_desc_interface_t
USB Interface Descriptor.
static TU_ATTR_ALWAYS_INLINE uint8_t const * tu_desc_next(void const *desc)
static TU_ATTR_ALWAYS_INLINE bool usbh_edpt_xfer(uint8_t dev_addr, uint8_t ep_addr, uint8_t *buffer, uint16_t total_bytes)
tusb_error_t tusbh_custom_write(uint8_t dev_addr, uint16_t vendor_id, uint16_t product_id, void const *p_data, uint16_t length)
void cush_isr(pipe_handle_t pipe_hdl, xfer_result_t event)
static tusb_error_t cush_validate_paras(uint8_t dev_addr, uint16_t vendor_id, uint16_t product_id, void *p_buffer, uint16_t length)
tusb_error_t cush_open_subtask(uint8_t dev_addr, tusb_desc_interface_t const *p_interface_desc, uint16_t *p_length)
custom_interface_info_t custom_interface[CFG_TUH_DEVICE_MAX]
tusb_error_t tusbh_custom_read(uint8_t dev_addr, uint16_t vendor_id, uint16_t product_id, void *p_buffer, uint16_t length)
void cush_close(uint8_t dev_addr)
static bool tusbh_custom_is_mounted(uint8_t dev_addr, uint16_t vendor_id, uint16_t product_id)