summaryrefslogtreecommitdiff
path: root/tinyusb/device
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-06-11 17:35:53 +0700
committerhathach <[email protected]>2013-06-11 17:35:53 +0700
commit5ae9c72f84af82e9c42ac04cdcf5f623b4677dfd (patch)
tree095f7f1f217b83a2c2d8518adb15c5e302e43646 /tinyusb/device
parentcae19b8f567e3de9c02281cc2dae1477b2d46402 (diff)
[lpc176x][device] get pass get string descriptors
Diffstat (limited to 'tinyusb/device')
-rw-r--r--tinyusb/device/usbd.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/tinyusb/device/usbd.c b/tinyusb/device/usbd.c
index 851803901..58b79f7a5 100644
--- a/tinyusb/device/usbd.c
+++ b/tinyusb/device/usbd.c
@@ -93,6 +93,24 @@ void std_get_descriptor(uint8_t coreid)
break;
case TUSB_DESC_TYPE_CONFIGURATION:
+ {
+ uint16_t const requested_length = min16_of(usbd_devices[coreid].setup_packet.wLength, sizeof(app_tusb_desc_configuration)-1);
+ for(uint16_t i=0; i<requested_length; i += 64)
+ {
+ dcd_pipe_control_write(coreid, ((uint8_t*)&app_tusb_desc_configuration) + i, min16_of(64, requested_length - i));
+ }
+ }
+ break;
+
+ case TUSB_DESC_TYPE_STRING:
+ {
+ uint8_t *p_string = (uint8_t*) &app_tusb_desc_strings;
+ for(uint8_t index =0; index < desc_index; index++)
+ {
+ p_string += (*p_string);
+ }
+ dcd_pipe_control_write(coreid, p_string, *p_string);
+ }
break;
default:
@@ -131,7 +149,7 @@ tusb_error_t usbd_init (void)
ASSERT_STATUS ( dcd_init() );
uint16_t length = 0;
- #if TUSB_CFG_DEVICE_HID_KEYBOARD
+ #if TUSB_CFG_DEVICE_HID_KEYBOARD && 0
ASSERT_STATUS( hidd_init(&app_tusb_desc_configuration.keyboard_interface, &length) );
#endif