From b8ea0f0a6b11bff6a4bb3f63f09485b2445969de Mon Sep 17 00:00:00 2001 From: Chang Feng Date: Wed, 26 Feb 2020 13:07:15 +0800 Subject: [PATCH 1/5] Add langid support to descriptor string callback. Signed-off-by: Chang Feng --- src/device/usbd.c | 2 +- src/device/usbd.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/device/usbd.c b/src/device/usbd.c index 16670b944..68c5c5160 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -809,7 +809,7 @@ static bool process_get_descriptor(uint8_t rhport, tusb_control_request_t const return false; }else { - uint8_t const* desc_str = (uint8_t const*) tud_descriptor_string_cb(desc_index); + uint8_t const* desc_str = (uint8_t const*) tud_descriptor_string_cb(desc_index, p_request->wIndex); TU_ASSERT(desc_str); // first byte of descriptor is its size diff --git a/src/device/usbd.h b/src/device/usbd.h index 847251caa..d80abf17c 100644 --- a/src/device/usbd.h +++ b/src/device/usbd.h @@ -91,7 +91,7 @@ uint8_t const * tud_descriptor_configuration_cb(uint8_t index); // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index); +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid); // Invoked when device is mounted (configured) TU_ATTR_WEAK void tud_mount_cb(void); From 5c760e1f74a95a972df09f820f0df27a423dae44 Mon Sep 17 00:00:00 2001 From: Chang Feng Date: Wed, 26 Feb 2020 13:11:11 +0800 Subject: [PATCH 2/5] Add langid to example cdc_dual_ports. Signed-off-by: Chang Feng --- examples/device/cdc_dual_ports/src/usb_descriptors.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/device/cdc_dual_ports/src/usb_descriptors.c b/examples/device/cdc_dual_ports/src/usb_descriptors.c index 1e24a0f15..1b1d171b1 100644 --- a/examples/device/cdc_dual_ports/src/usb_descriptors.c +++ b/examples/device/cdc_dual_ports/src/usb_descriptors.c @@ -130,8 +130,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + uint8_t chr_count; if ( index == 0) From 75afeb1266c217445e7834f0aef27f6416d765d0 Mon Sep 17 00:00:00 2001 From: Chang Feng Date: Wed, 26 Feb 2020 13:14:04 +0800 Subject: [PATCH 3/5] Add langid to example cdc_msc. Signed-off-by: Chang Feng --- examples/device/cdc_msc/src/usb_descriptors.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/device/cdc_msc/src/usb_descriptors.c b/examples/device/cdc_msc/src/usb_descriptors.c index e8527df0b..f91d1e6f8 100644 --- a/examples/device/cdc_msc/src/usb_descriptors.c +++ b/examples/device/cdc_msc/src/usb_descriptors.c @@ -155,8 +155,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + uint8_t chr_count; if ( index == 0) From b97d4709c2fcd588b7827fa76d8917d713548744 Mon Sep 17 00:00:00 2001 From: Chang Feng Date: Wed, 26 Feb 2020 13:37:02 +0800 Subject: [PATCH 4/5] Add langid to examples. Signed-off-by: Chang Feng --- examples/device/cdc_msc_hid_freertos/src/usb_descriptors.c | 4 +++- examples/device/dfu_rt/src/usb_descriptors.c | 4 +++- examples/device/hid_composite/src/usb_descriptors.c | 4 +++- examples/device/hid_generic_inout/src/usb_descriptors.c | 4 +++- examples/device/midi_test/src/usb_descriptors.c | 4 +++- examples/device/msc_dual_lun/src/usb_descriptors.c | 4 +++- examples/device/usbtmc/src/usb_descriptors.c | 4 +++- examples/device/webusb_serial/src/usb_descriptors.c | 4 +++- 8 files changed, 24 insertions(+), 8 deletions(-) diff --git a/examples/device/cdc_msc_hid_freertos/src/usb_descriptors.c b/examples/device/cdc_msc_hid_freertos/src/usb_descriptors.c index d60c9a585..84939e2d7 100644 --- a/examples/device/cdc_msc_hid_freertos/src/usb_descriptors.c +++ b/examples/device/cdc_msc_hid_freertos/src/usb_descriptors.c @@ -184,8 +184,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + uint8_t chr_count; if ( index == 0) diff --git a/examples/device/dfu_rt/src/usb_descriptors.c b/examples/device/dfu_rt/src/usb_descriptors.c index 0c7081245..17b3fe87d 100644 --- a/examples/device/dfu_rt/src/usb_descriptors.c +++ b/examples/device/dfu_rt/src/usb_descriptors.c @@ -193,8 +193,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + size_t chr_count; if ( index == 0) diff --git a/examples/device/hid_composite/src/usb_descriptors.c b/examples/device/hid_composite/src/usb_descriptors.c index 01f2cb59b..19689c90b 100644 --- a/examples/device/hid_composite/src/usb_descriptors.c +++ b/examples/device/hid_composite/src/usb_descriptors.c @@ -134,8 +134,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + uint8_t chr_count; if ( index == 0) diff --git a/examples/device/hid_generic_inout/src/usb_descriptors.c b/examples/device/hid_generic_inout/src/usb_descriptors.c index 07989c5fd..87611a432 100644 --- a/examples/device/hid_generic_inout/src/usb_descriptors.c +++ b/examples/device/hid_generic_inout/src/usb_descriptors.c @@ -132,8 +132,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + uint8_t chr_count; if ( index == 0) diff --git a/examples/device/midi_test/src/usb_descriptors.c b/examples/device/midi_test/src/usb_descriptors.c index 2305c9f68..949404826 100644 --- a/examples/device/midi_test/src/usb_descriptors.c +++ b/examples/device/midi_test/src/usb_descriptors.c @@ -123,8 +123,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + uint8_t chr_count; if ( index == 0) diff --git a/examples/device/msc_dual_lun/src/usb_descriptors.c b/examples/device/msc_dual_lun/src/usb_descriptors.c index e0a5904a4..1abc15cae 100644 --- a/examples/device/msc_dual_lun/src/usb_descriptors.c +++ b/examples/device/msc_dual_lun/src/usb_descriptors.c @@ -121,8 +121,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + uint8_t chr_count; if ( index == 0) diff --git a/examples/device/usbtmc/src/usb_descriptors.c b/examples/device/usbtmc/src/usb_descriptors.c index 27e1bdaa9..92b1dce61 100644 --- a/examples/device/usbtmc/src/usb_descriptors.c +++ b/examples/device/usbtmc/src/usb_descriptors.c @@ -216,8 +216,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + size_t chr_count; if ( index == 0) diff --git a/examples/device/webusb_serial/src/usb_descriptors.c b/examples/device/webusb_serial/src/usb_descriptors.c index 740defe4e..2925a66c4 100644 --- a/examples/device/webusb_serial/src/usb_descriptors.c +++ b/examples/device/webusb_serial/src/usb_descriptors.c @@ -204,8 +204,10 @@ static uint16_t _desc_str[32]; // Invoked when received GET STRING DESCRIPTOR request // Application return pointer to descriptor, whose contents must exist long enough for transfer to complete -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + uint8_t chr_count; if ( index == 0) From 8d97e5819287d1317ecd4eeee492f97aa5e820a2 Mon Sep 17 00:00:00 2001 From: Chang Feng Date: Wed, 26 Feb 2020 13:37:26 +0800 Subject: [PATCH 5/5] Add langid to tests. Signed-off-by: Chang Feng --- test/test/device/msc/test_msc_device.c | 4 +++- test/test/device/usbd/test_usbd.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/test/test/device/msc/test_msc_device.c b/test/test/device/msc/test_msc_device.c index 5003ac839..43a8e7438 100644 --- a/test/test/device/msc/test_msc_device.c +++ b/test/test/device/msc/test_msc_device.c @@ -184,8 +184,10 @@ uint8_t const * tud_descriptor_configuration_cb(uint8_t index) return desc_configuration; } -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + return NULL; } diff --git a/test/test/device/usbd/test_usbd.c b/test/test/device/usbd/test_usbd.c index 245353106..af30aaf8f 100644 --- a/test/test/device/usbd/test_usbd.c +++ b/test/test/device/usbd/test_usbd.c @@ -111,8 +111,10 @@ uint8_t const * tud_descriptor_configuration_cb(uint8_t index) return desc_configuration; } -uint16_t const* tud_descriptor_string_cb(uint8_t index) +uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { + (void) langid; + return NULL; }