summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/device/webusb/src/usb_descriptors.c4
-rw-r--r--src/class/cdc/cdc_device.c2
-rw-r--r--src/class/cdc/cdc_device.h12
-rw-r--r--src/class/custom/custom_device.h2
-rw-r--r--src/class/hid/hid_device.c2
-rw-r--r--src/class/hid/hid_device.h12
-rw-r--r--src/class/hid/hid_host.h4
-rw-r--r--src/class/midi/midi_device.c2
-rw-r--r--src/class/midi/midi_device.h12
-rw-r--r--src/class/msc/msc_device.c2
-rw-r--r--src/class/msc/msc_device.h12
-rw-r--r--src/common/tusb_types.h26
-rw-r--r--src/device/usbd.c20
13 files changed, 60 insertions, 52 deletions
diff --git a/examples/device/webusb/src/usb_descriptors.c b/examples/device/webusb/src/usb_descriptors.c
index 3ea6f117f..f1e9dd979 100644
--- a/examples/device/webusb/src/usb_descriptors.c
+++ b/examples/device/webusb/src/usb_descriptors.c
@@ -77,9 +77,11 @@ uint8_t const * tud_descriptor_device_cb(void)
// BOS Descriptor is required for webUSB
uint8_t const desc_bos[] =
{
+ // total length, number of device caps
TUD_BOS_DESCRIPTOR(BOS_TOTAL_LEN, 1),
- TUD_BOS_WEBUSB_DESCRIPTOR(0x01, 0)
+ // Vendor Code, iLandingPage
+ TUD_BOS_WEBUSB_DESCRIPTOR(0x01, 1)
};
uint8_t const * tud_descriptor_bos_cb(void)
diff --git a/src/class/cdc/cdc_device.c b/src/class/cdc/cdc_device.c
index 6d13dafc0..874f751af 100644
--- a/src/class/cdc/cdc_device.c
+++ b/src/class/cdc/cdc_device.c
@@ -300,7 +300,7 @@ bool cdcd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t
// Invoked when class request DATA stage is finished.
// return false to stall control endpoint (e.g Host send non-sense DATA)
-bool cdcd_control_request_complete(uint8_t rhport, tusb_control_request_t const * request)
+bool cdcd_control_complete(uint8_t rhport, tusb_control_request_t const * request)
{
(void) rhport;
diff --git a/src/class/cdc/cdc_device.h b/src/class/cdc/cdc_device.h
index 8d09094a0..76bb7c622 100644
--- a/src/class/cdc/cdc_device.h
+++ b/src/class/cdc/cdc_device.h
@@ -176,12 +176,12 @@ static inline bool tud_cdc_write_flush (void)
//--------------------------------------------------------------------+
// INTERNAL USBD-CLASS DRIVER API
//--------------------------------------------------------------------+
-void cdcd_init (void);
-bool cdcd_open (uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
-bool cdcd_control_request (uint8_t rhport, tusb_control_request_t const * p_request);
-bool cdcd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
-bool cdcd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes);
-void cdcd_reset (uint8_t rhport);
+void cdcd_init (void);
+bool cdcd_open (uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
+bool cdcd_control_request (uint8_t rhport, tusb_control_request_t const * request);
+bool cdcd_control_complete (uint8_t rhport, tusb_control_request_t const * request);
+bool cdcd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes);
+void cdcd_reset (uint8_t rhport);
#ifdef __cplusplus
}
diff --git a/src/class/custom/custom_device.h b/src/class/custom/custom_device.h
index 02cdba7e5..c4001a89f 100644
--- a/src/class/custom/custom_device.h
+++ b/src/class/custom/custom_device.h
@@ -51,7 +51,7 @@
void cusd_init(void);
bool cusd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
bool cusd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request);
-bool cusd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
+bool cusd_control_complete (uint8_t rhport, tusb_control_request_t const * p_request);
bool cusd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
void cusd_reset(uint8_t rhport);
diff --git a/src/class/hid/hid_device.c b/src/class/hid/hid_device.c
index d3f59ed62..54ba39643 100644
--- a/src/class/hid/hid_device.c
+++ b/src/class/hid/hid_device.c
@@ -276,7 +276,7 @@ bool hidd_control_request(uint8_t rhport, tusb_control_request_t const * p_reque
// Invoked when class request DATA stage is finished.
// return false to stall control endpoint (e.g Host send non-sense DATA)
-bool hidd_control_request_complete(uint8_t rhport, tusb_control_request_t const * p_request)
+bool hidd_control_complete(uint8_t rhport, tusb_control_request_t const * p_request)
{
(void) rhport;
hidd_interface_t* p_hid = get_interface_by_itfnum( (uint8_t) p_request->wIndex );
diff --git a/src/class/hid/hid_device.h b/src/class/hid/hid_device.h
index da239cc84..49512ac4e 100644
--- a/src/class/hid/hid_device.h
+++ b/src/class/hid/hid_device.h
@@ -300,12 +300,12 @@ TU_ATTR_WEAK bool tud_hid_set_idle_cb(uint8_t idle_rate);
//--------------------------------------------------------------------+
// Internal Class Driver API
//--------------------------------------------------------------------+
-void hidd_init(void);
-bool hidd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
-bool hidd_control_request(uint8_t rhport, tusb_control_request_t const * p_request);
-bool hidd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
-bool hidd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
-void hidd_reset(uint8_t rhport);
+void hidd_init (void);
+bool hidd_open (uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
+bool hidd_control_request (uint8_t rhport, tusb_control_request_t const * request);
+bool hidd_control_complete (uint8_t rhport, tusb_control_request_t const * request);
+bool hidd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
+void hidd_reset (uint8_t rhport);
#ifdef __cplusplus
}
diff --git a/src/class/hid/hid_host.h b/src/class/hid/hid_host.h
index 50eabba3e..1c619c570 100644
--- a/src/class/hid/hid_host.h
+++ b/src/class/hid/hid_host.h
@@ -55,7 +55,7 @@ extern uint8_t const hid_keycode_to_ascii_tbl[2][128]; // TODO used weak attr if
* \retval true if device supports Keyboard interface
* \retval false if device does not support Keyboard interface or is not mounted
*/
-bool tuh_hid_keyboard_is_mounted(uint8_t dev_addr);
+bool tuh_hid_keyboard_is_mounted(uint8_t dev_addr);
/** \brief Check if the interface is currently busy or not
* \param[in] dev_addr device address
@@ -64,7 +64,7 @@ bool tuh_hid_keyboard_is_mounted(uint8_t dev_addr);
* \note This function is primarily used for polling/waiting result after \ref tuh_hid_keyboard_get_report.
* Alternatively, asynchronous event API can be used
*/
-bool tuh_hid_keyboard_is_busy(uint8_t dev_addr);
+bool tuh_hid_keyboard_is_busy(uint8_t dev_addr);
/** \brief Perform a get report from Keyboard interface
* \param[in] dev_addr device address
diff --git a/src/class/midi/midi_device.c b/src/class/midi/midi_device.c
index 267167720..1e684edde 100644
--- a/src/class/midi/midi_device.c
+++ b/src/class/midi/midi_device.c
@@ -300,7 +300,7 @@ bool midid_open(uint8_t rhport, tusb_desc_interface_t const * p_interface_desc,
return true;
}
-bool midid_control_request_complete(uint8_t rhport, tusb_control_request_t const * p_request)
+bool midid_control_complete(uint8_t rhport, tusb_control_request_t const * p_request)
{
return false;
}
diff --git a/src/class/midi/midi_device.h b/src/class/midi/midi_device.h
index 490abaf89..f9d13ffb6 100644
--- a/src/class/midi/midi_device.h
+++ b/src/class/midi/midi_device.h
@@ -121,12 +121,12 @@ static inline uint32_t tudi_midi_write24 (uint8_t jack_id, uint8_t b1, uint8_t b
//--------------------------------------------------------------------+
// Internal Class Driver API
//--------------------------------------------------------------------+
-void midid_init (void);
-bool midid_open (uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
-bool midid_control_request (uint8_t rhport, tusb_control_request_t const * p_request);
-bool midid_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
-bool midid_xfer_cb (uint8_t rhport, uint8_t edpt_addr, xfer_result_t result, uint32_t xferred_bytes);
-void midid_reset (uint8_t rhport);
+void midid_init (void);
+bool midid_open (uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
+bool midid_control_request (uint8_t rhport, tusb_control_request_t const * request);
+bool midid_control_complete (uint8_t rhport, tusb_control_request_t const * request);
+bool midid_xfer_cb (uint8_t rhport, uint8_t edpt_addr, xfer_result_t result, uint32_t xferred_bytes);
+void midid_reset (uint8_t rhport);
#ifdef __cplusplus
}
diff --git a/src/class/msc/msc_device.c b/src/class/msc/msc_device.c
index 5681e4f07..86e47ead0 100644
--- a/src/class/msc/msc_device.c
+++ b/src/class/msc/msc_device.c
@@ -178,7 +178,7 @@ bool mscd_control_request(uint8_t rhport, tusb_control_request_t const * p_reque
// Invoked when class request DATA stage is finished.
// return false to stall control endpoint (e.g Host send non-sense DATA)
-bool mscd_control_request_complete(uint8_t rhport, tusb_control_request_t const * p_request)
+bool mscd_control_complete(uint8_t rhport, tusb_control_request_t const * p_request)
{
(void) rhport;
(void) p_request;
diff --git a/src/class/msc/msc_device.h b/src/class/msc/msc_device.h
index 03a4afadb..5998400b1 100644
--- a/src/class/msc/msc_device.h
+++ b/src/class/msc/msc_device.h
@@ -151,12 +151,12 @@ TU_ATTR_WEAK bool tud_msc_is_writable_cb(uint8_t lun);
//--------------------------------------------------------------------+
// Internal Class Driver API
//--------------------------------------------------------------------+
-void mscd_init(void);
-bool mscd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
-bool mscd_control_request(uint8_t rhport, tusb_control_request_t const * p_request);
-bool mscd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
-bool mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
-void mscd_reset(uint8_t rhport);
+void mscd_init (void);
+bool mscd_open (uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
+bool mscd_control_request (uint8_t rhport, tusb_control_request_t const * p_request);
+bool mscd_control_complete (uint8_t rhport, tusb_control_request_t const * p_request);
+bool mscd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
+void mscd_reset (uint8_t rhport);
#ifdef __cplusplus
}
diff --git a/src/common/tusb_types.h b/src/common/tusb_types.h
index 527f84975..7270ec58b 100644
--- a/src/common/tusb_types.h
+++ b/src/common/tusb_types.h
@@ -100,19 +100,19 @@ typedef enum
typedef enum
{
- TUSB_REQ_GET_STATUS = 0 ,
- TUSB_REQ_CLEAR_FEATURE = 1 ,
- TUSB_REQ_RESERVED = 2 ,
- TUSB_REQ_SET_FEATURE = 3 ,
- TUSB_REQ_RESERVED2 = 4 ,
- TUSB_REQ_SET_ADDRESS = 5 ,
- TUSB_REQ_GET_DESCRIPTOR = 6 ,
- TUSB_REQ_SET_DESCRIPTOR = 7 ,
- TUSB_REQ_GET_CONFIGURATION = 8 ,
- TUSB_REQ_SET_CONFIGURATION = 9 ,
- TUSB_REQ_GET_INTERFACE = 10 ,
- TUSB_REQ_SET_INTERFACE = 11 ,
- TUSB_REQ_SYNCH_FRAME = 12
+ TUSB_REQ_GET_STATUS = 0 ,
+ TUSB_REQ_CLEAR_FEATURE = 1 ,
+ TUSB_REQ_RESERVED = 2 ,
+ TUSB_REQ_SET_FEATURE = 3 ,
+ TUSB_REQ_RESERVED2 = 4 ,
+ TUSB_REQ_SET_ADDRESS = 5 ,
+ TUSB_REQ_GET_DESCRIPTOR = 6 ,
+ TUSB_REQ_SET_DESCRIPTOR = 7 ,
+ TUSB_REQ_GET_CONFIGURATION = 8 ,
+ TUSB_REQ_SET_CONFIGURATION = 9 ,
+ TUSB_REQ_GET_INTERFACE = 10 ,
+ TUSB_REQ_SET_INTERFACE = 11 ,
+ TUSB_REQ_SYNCH_FRAME = 12
}tusb_request_code_t;
typedef enum
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 6a70afede..b9d9f9d8a 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -70,7 +70,7 @@ typedef struct {
void (* init ) (void);
bool (* open ) (uint8_t rhport, tusb_desc_interface_t const * desc_intf, uint16_t* p_length);
bool (* control_request ) (uint8_t rhport, tusb_control_request_t const * request);
- bool (* control_request_complete ) (uint8_t rhport, tusb_control_request_t const * request);
+ bool (* control_complete ) (uint8_t rhport, tusb_control_request_t const * request);
bool (* xfer_cb ) (uint8_t rhport, uint8_t ep_addr, xfer_result_t, uint32_t);
void (* sof ) (uint8_t rhport);
void (* reset ) (uint8_t);
@@ -84,7 +84,7 @@ static usbd_class_driver_t const usbd_class_drivers[] =
.init = cdcd_init,
.open = cdcd_open,
.control_request = cdcd_control_request,
- .control_request_complete = cdcd_control_request_complete,
+ .control_complete = cdcd_control_complete,
.xfer_cb = cdcd_xfer_cb,
.sof = NULL,
.reset = cdcd_reset
@@ -97,7 +97,7 @@ static usbd_class_driver_t const usbd_class_drivers[] =
.init = mscd_init,
.open = mscd_open,
.control_request = mscd_control_request,
- .control_request_complete = mscd_control_request_complete,
+ .control_complete = mscd_control_complete,
.xfer_cb = mscd_xfer_cb,
.sof = NULL,
.reset = mscd_reset
@@ -110,7 +110,7 @@ static usbd_class_driver_t const usbd_class_drivers[] =
.init = hidd_init,
.open = hidd_open,
.control_request = hidd_control_request,
- .control_request_complete = hidd_control_request_complete,
+ .control_complete = hidd_control_complete,
.xfer_cb = hidd_xfer_cb,
.sof = NULL,
.reset = hidd_reset
@@ -123,7 +123,7 @@ static usbd_class_driver_t const usbd_class_drivers[] =
.init = midid_init,
.open = midid_open,
.control_request = midid_control_request,
- .control_request_complete = midid_control_request_complete,
+ .control_complete = midid_control_complete,
.xfer_cb = midid_xfer_cb,
.sof = NULL,
.reset = midid_reset
@@ -136,7 +136,7 @@ static usbd_class_driver_t const usbd_class_drivers[] =
.init = cusd_init,
.open = cusd_open,
.control_request = cusd_control_request,
- .control_request_complete = cusd_control_request_complete,
+ .control_complete = cusd_control_complete,
.xfer_cb = cusd_xfer_cb,
.sof = NULL,
.reset = cusd_reset
@@ -347,6 +347,12 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const
{
usbd_control_set_complete_callback(NULL);
+ // Vendor request
+// if ( p_request->bmRequestType_bit.type == TUSB_REQ_TYPE_VENDOR )
+// {
+//
+// }
+
switch ( p_request->bmRequestType_bit.recipient )
{
//------------- Device Requests e.g in enumeration -------------//
@@ -431,7 +437,7 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const
TU_VERIFY(drvid < USBD_CLASS_DRIVER_COUNT);
- usbd_control_set_complete_callback(usbd_class_drivers[drvid].control_request_complete );
+ usbd_control_set_complete_callback(usbd_class_drivers[drvid].control_complete );
// stall control endpoint if driver return false
return usbd_class_drivers[drvid].control_request(rhport, p_request);