This commit is contained in:
hathach 2020-11-20 15:32:16 +07:00
parent e2abb089f4
commit 8813f9d3b8
2 changed files with 76 additions and 73 deletions

View File

@ -375,6 +375,9 @@ uint16_t midid_open(uint8_t rhport, tusb_desc_interface_t const * desc_itf, uint
return drv_len; return drv_len;
} }
// Invoked when a control transfer occurred on an interface of this class
// Driver response accordingly to the request and the transfer stage (setup/data/ack)
// return false to stall control endpoint (e.g unsupported request)
bool midid_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t const * request) bool midid_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t const * request)
{ {
(void) rhport; (void) rhport;

View File

@ -93,43 +93,43 @@ static usbd_class_driver_t const _usbd_driver[] =
{ {
#if CFG_TUD_CDC #if CFG_TUD_CDC
{ {
DRIVER_NAME("CDC") DRIVER_NAME("CDC")
.init = cdcd_init, .init = cdcd_init,
.reset = cdcd_reset, .reset = cdcd_reset,
.open = cdcd_open, .open = cdcd_open,
.control_xfer_cb = cdcd_control_xfer_cb, .control_xfer_cb = cdcd_control_xfer_cb,
.xfer_cb = cdcd_xfer_cb, .xfer_cb = cdcd_xfer_cb,
.sof = NULL .sof = NULL
}, },
#endif #endif
#if CFG_TUD_MSC #if CFG_TUD_MSC
{ {
DRIVER_NAME("MSC") DRIVER_NAME("MSC")
.init = mscd_init, .init = mscd_init,
.reset = mscd_reset, .reset = mscd_reset,
.open = mscd_open, .open = mscd_open,
.control_xfer_cb = mscd_control_xfer_cb, .control_xfer_cb = mscd_control_xfer_cb,
.xfer_cb = mscd_xfer_cb, .xfer_cb = mscd_xfer_cb,
.sof = NULL .sof = NULL
}, },
#endif #endif
#if CFG_TUD_HID #if CFG_TUD_HID
{ {
DRIVER_NAME("HID") DRIVER_NAME("HID")
.init = hidd_init, .init = hidd_init,
.reset = hidd_reset, .reset = hidd_reset,
.open = hidd_open, .open = hidd_open,
.control_xfer_cb = hidd_control_xfer_cb, .control_xfer_cb = hidd_control_xfer_cb,
.xfer_cb = hidd_xfer_cb, .xfer_cb = hidd_xfer_cb,
.sof = NULL .sof = NULL
}, },
#endif #endif
#if CFG_TUD_AUDIO #if CFG_TUD_AUDIO
{ {
DRIVER_NAME("AUDIO") DRIVER_NAME("AUDIO")
.init = audiod_init, .init = audiod_init,
.reset = audiod_reset, .reset = audiod_reset,
.open = audiod_open, .open = audiod_open,
@ -137,83 +137,83 @@ static usbd_class_driver_t const _usbd_driver[] =
.control_complete = audiod_control_complete, .control_complete = audiod_control_complete,
.xfer_cb = audiod_xfer_cb, .xfer_cb = audiod_xfer_cb,
.sof = NULL .sof = NULL
}, },
#endif #endif
#if CFG_TUD_MIDI #if CFG_TUD_MIDI
{ {
DRIVER_NAME("MIDI") DRIVER_NAME("MIDI")
.init = midid_init, .init = midid_init,
.open = midid_open, .open = midid_open,
.reset = midid_reset, .reset = midid_reset,
.control_xfer_cb = midid_control_xfer_cb, .control_xfer_cb = midid_control_xfer_cb,
.xfer_cb = midid_xfer_cb, .xfer_cb = midid_xfer_cb,
.sof = NULL .sof = NULL
}, },
#endif #endif
#if CFG_TUD_VENDOR #if CFG_TUD_VENDOR
{ {
DRIVER_NAME("VENDOR") DRIVER_NAME("VENDOR")
.init = vendord_init, .init = vendord_init,
.reset = vendord_reset, .reset = vendord_reset,
.open = vendord_open, .open = vendord_open,
.control_xfer_cb = tud_vendor_control_request_cb, .control_xfer_cb = tud_vendor_control_request_cb,
.control_complete = tud_vendor_control_complete_cb, .control_complete = tud_vendor_control_complete_cb,
.xfer_cb = vendord_xfer_cb, .xfer_cb = vendord_xfer_cb,
.sof = NULL .sof = NULL
}, },
#endif #endif
#if CFG_TUD_USBTMC #if CFG_TUD_USBTMC
{ {
DRIVER_NAME("TMC") DRIVER_NAME("TMC")
.init = usbtmcd_init_cb, .init = usbtmcd_init_cb,
.reset = usbtmcd_reset_cb, .reset = usbtmcd_reset_cb,
.open = usbtmcd_open_cb, .open = usbtmcd_open_cb,
.control_xfer_cb = usbtmcd_control_request_cb, .control_xfer_cb = usbtmcd_control_request_cb,
.control_complete = usbtmcd_control_complete_cb, .control_complete = usbtmcd_control_complete_cb,
.xfer_cb = usbtmcd_xfer_cb, .xfer_cb = usbtmcd_xfer_cb,
.sof = NULL .sof = NULL
}, },
#endif #endif
#if CFG_TUD_DFU_RT #if CFG_TUD_DFU_RT
{ {
DRIVER_NAME("DFU-RT") DRIVER_NAME("DFU-RT")
.init = dfu_rtd_init, .init = dfu_rtd_init,
.reset = dfu_rtd_reset, .reset = dfu_rtd_reset,
.open = dfu_rtd_open, .open = dfu_rtd_open,
.control_xfer_cb = dfu_rtd_control_request, .control_xfer_cb = dfu_rtd_control_request,
.control_complete = dfu_rtd_control_complete, .control_complete = dfu_rtd_control_complete,
.xfer_cb = dfu_rtd_xfer_cb, .xfer_cb = dfu_rtd_xfer_cb,
.sof = NULL .sof = NULL
}, },
#endif #endif
#if CFG_TUD_NET #if CFG_TUD_NET
{ {
DRIVER_NAME("NET") DRIVER_NAME("NET")
.init = netd_init, .init = netd_init,
.reset = netd_reset, .reset = netd_reset,
.open = netd_open, .open = netd_open,
.control_xfer_cb = netd_control_request, .control_xfer_cb = netd_control_request,
.control_complete = netd_control_complete, .control_complete = netd_control_complete,
.xfer_cb = netd_xfer_cb, .xfer_cb = netd_xfer_cb,
.sof = NULL, .sof = NULL,
}, },
#endif #endif
#if CFG_TUD_BTH #if CFG_TUD_BTH
{ {
DRIVER_NAME("BTH") DRIVER_NAME("BTH")
.init = btd_init, .init = btd_init,
.reset = btd_reset, .reset = btd_reset,
.open = btd_open, .open = btd_open,
.control_xfer_cb = btd_control_request, .control_xfer_cb = btd_control_request,
.control_complete = btd_control_complete, .control_complete = btd_control_complete,
.xfer_cb = btd_xfer_cb, .xfer_cb = btd_xfer_cb,
.sof = NULL .sof = NULL
}, },
#endif #endif
}; };