summaryrefslogtreecommitdiff
path: root/examples/device/webusb_serial/src/main.c
diff options
context:
space:
mode:
authorhathach <[email protected]>2019-07-30 00:34:25 +0700
committerhathach <[email protected]>2019-07-30 00:34:25 +0700
commitaf3c301ea5152ea4926e005159f4daa894b5df53 (patch)
treed3fde63c86a845c0cdd62384e036b180bccc2d07 /examples/device/webusb_serial/src/main.c
parentd79a209aefe498f78350ee3e08b96b8e17fda6b1 (diff)
added BOS MS OS 2.0 descriptor to webusb example, it work with windows
Diffstat (limited to 'examples/device/webusb_serial/src/main.c')
-rw-r--r--examples/device/webusb_serial/src/main.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/examples/device/webusb_serial/src/main.c b/examples/device/webusb_serial/src/main.c
index 4990fe24f..d81cf058b 100644
--- a/examples/device/webusb_serial/src/main.c
+++ b/examples/device/webusb_serial/src/main.c
@@ -153,6 +153,19 @@ bool tud_vendor_control_request_cb(uint8_t rhport, tusb_control_request_t const
// Get landing page url
return tud_control_xfer(rhport, request, (void*) &desc_url, desc_url.bLength);
+ case VENDOR_REQUEST_MICROSOFT:
+ if ( request->wIndex == 7 )
+ {
+ // Get Microsoft OS 2.0 compatible descriptor
+ uint16_t total_len;
+ memcpy(&total_len, desc_ms_os_20+8, 2);
+
+ return tud_control_xfer(rhport, request, (void*) desc_ms_os_20, total_len);
+ }else
+ {
+ return false;
+ }
+
case 0x22:
// Webserial simulate the CDC_REQUEST_SET_CONTROL_LINE_STATE (0x22) to
// connect and disconnect.
@@ -175,6 +188,8 @@ bool tud_vendor_control_request_cb(uint8_t rhport, tusb_control_request_t const
// stall unknown request
return false;
}
+
+ return true;
}
// Invoked when DATA Stage of VENDOR's request is complete