diff options
| author | sakimisu <[email protected]> | 2023-01-29 16:15:28 +0800 |
|---|---|---|
| committer | sakimisu <[email protected]> | 2023-01-29 16:15:28 +0800 |
| commit | 201b3ebb2c2e61c59fe940ce114884e5dc42bfa9 (patch) | |
| tree | 49996fd7fb6531b0cafd3a8c6d2f60cf9ab691fa /core | |
| parent | 68c97798983bdd7f7eb8ecf154c377b8a2dfeee5 (diff) | |
add webusb support
Diffstat (limited to 'core')
| -rw-r--r-- | core/usbd_core.c | 13 | ||||
| -rw-r--r-- | core/usbd_core.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/core/usbd_core.c b/core/usbd_core.c index cbe7a97b..e2ced33c 100644 --- a/core/usbd_core.c +++ b/core/usbd_core.c @@ -821,6 +821,19 @@ static int usbd_vendor_request_handler(struct usb_setup_packet *setup, uint8_t * return -1; } } + } else if (usbd_core_cfg.descriptors->webusb_url_descriptor) { + if (setup->bRequest == usbd_core_cfg.descriptors->webusb_url_descriptor->vendor_code) { + switch (setup->wIndex) { + case WINUSB_REQUEST_GET_DESCRIPTOR_SET: + USB_LOG_INFO("GET Webusb url Descriptor\r\n"); + *data = (uint8_t *)usbd_core_cfg.descriptors->webusb_url_descriptor->string; + *len = usbd_core_cfg.descriptors->webusb_url_descriptor->string_len; + return 0; + default: + USB_LOG_ERR("unknown vendor code\r\n"); + return -1; + } + } } #else if (msosv1_desc) { diff --git a/core/usbd_core.h b/core/usbd_core.h index 8d7d10c6..1c978d19 100644 --- a/core/usbd_core.h +++ b/core/usbd_core.h @@ -72,6 +72,7 @@ struct usb_descriptor { const char **string_descriptor; struct usb_msosv1_descriptor *msosv1_descriptor; struct usb_msosv2_descriptor *msosv2_descriptor; + struct usb_webusb_url_ex_descriptor *webusb_url_descriptor; struct usb_bos_descriptor *bos_descriptor; }; |
