5#include "device/usbd.h"
6#include "device/usbd_pvt.h"
17#ifdef TUD_AUDIO20_DESC_IAD_LEN
18#define TU_AUDIO_EDPT_XFER(rp, ep, buf, sz) usbd_edpt_xfer(rp, ep, buf, sz, false)
20#define TU_AUDIO_EDPT_XFER(rp, ep, buf, sz) usbd_edpt_xfer(rp, ep, buf, sz)
33#if TUSB_VERSION_NUMBER >= 1600
34#define TU_SOF_ENABLE(rp, en) usbd_sof_enable(rp, SOF_CONSUMER_AUDIO, en)
36#define TU_SOF_ENABLE(rp, en) usbd_sof_enable(rp, en)
52 return usbd_edpt_open(rhport, &d);
56 usbd_edpt_close(rhport, ep_addr);
60 bool clearStall(uint8_t rhport, uint8_t ep_addr)
override {
61 usbd_edpt_clear_stall(rhport, ep_addr);
66#ifdef TUP_DCD_EDPT_ISO_ALLOC
74 uint16_t max_packet_size)
override {
75 return usbd_edpt_iso_alloc(rhport, ep_addr, max_packet_size);
81 return usbd_edpt_iso_activate(rhport, &d);
85 return usbd_edpt_release(rhport, ep_addr);
89 return usbd_edpt_claim(rhport, ep_addr);
92 bool transfer(uint8_t rhport, uint8_t ep_addr, uint8_t* buffer,
93 uint16_t length)
override {
98 uint8_t* buffer, uint16_t length)
override {
100 return tud_control_xfer(rhport, &r, buffer, length);
105 return tud_control_status(rhport, &r);
109 switch (tud_speed_get()) {
110 case TUSB_SPEED_FULL:
112 case TUSB_SPEED_HIGH:
121 bool mounted()
const override {
return tud_mounted(); }
131 tusb_desc_endpoint_t d{};
132 d.bLength =
sizeof(tusb_desc_endpoint_t);
133 d.bDescriptorType = TUSB_DESC_ENDPOINT;
135 d.bmAttributes.xfer = (uint8_t)ep.
xferType;
136 d.bmAttributes.sync = ep.
sync;
137 d.bmAttributes.usage = ep.
usage;
154 tusb_control_request_t r{};
185 static usbd_class_driver_t driver;
195#if TUSB_VERSION_NUMBER >= 1600
196 driver.name =
"AUDIO";
199#if TUSB_VERSION_NUMBER >= 1600
206 driver.deinit = []() {
210 driver.reset = [](uint8_t rhport) {
213 driver.open = [](uint8_t rhport, tusb_desc_interface_t
const* itf_desc,
218 rhport, view, (uint8_t
const*)itf_desc, max_len);
220 driver.control_xfer_cb = [](uint8_t rhport, uint8_t stage,
221 tusb_control_request_t
const* request) {
226 driver.xfer_cb = [](uint8_t rhport, uint8_t ep_addr, xfer_result_t result,
227 uint32_t xferred_bytes) {
232 rhport, ep_addr, r, xferred_bytes);
234 driver.sof = [](uint8_t rhport, uint32_t frame_count) {
#define TU_AUDIO_EDPT_XFER(rp, ep, buf, sz)
Definition USBAudioBackendTinyUSB.h:20
#define TU_SOF_ENABLE(rp, en)
Definition USBAudioBackendTinyUSB.h:36
usbd_class_driver_t const * usbd_app_driver_get_cb(uint8_t *count)
Definition USBAudioBackendTinyUSB.h:259