summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/export/usb_drv.h7
-rw-r--r--firmware/usbstack/usb_core.c29
2 files changed, 11 insertions, 25 deletions
diff --git a/firmware/export/usb_drv.h b/firmware/export/usb_drv.h
index b5b5a7f065..7ef7c8b7ee 100644
--- a/firmware/export/usb_drv.h
+++ b/firmware/export/usb_drv.h
@@ -80,4 +80,11 @@ bool usb_drv_connected(void);
int usb_drv_request_endpoint(int type, int dir);
void usb_drv_release_endpoint(int ep);
+/* USB_STRING_INITIALIZER(u"Example String") */
+#define USB_STRING_INITIALIZER(S) { \
+ sizeof(struct usb_string_descriptor) + sizeof(S) - sizeof(*S), \
+ USB_DT_STRING, \
+ S \
+}
+
#endif /* _USB_DRV_H */
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c
index 038aef241f..3d187c8cab 100644
--- a/firmware/usbstack/usb_core.c
+++ b/firmware/usbstack/usb_core.c
@@ -120,43 +120,22 @@ static const struct usb_qualifier_descriptor __attribute__((aligned(2)))
static const struct usb_string_descriptor __attribute__((aligned(2)))
usb_string_iManufacturer =
-{
- 24,
- USB_DT_STRING,
- {'R', 'o', 'c', 'k', 'b', 'o', 'x', '.', 'o', 'r', 'g'}
-};
+USB_STRING_INITIALIZER(u"Rockbox.org");
static const struct usb_string_descriptor __attribute__((aligned(2)))
usb_string_iProduct =
-{
- 42,
- USB_DT_STRING,
- {'R', 'o', 'c', 'k', 'b', 'o', 'x', ' ',
- 'm', 'e', 'd', 'i', 'a', ' ',
- 'p', 'l', 'a', 'y', 'e', 'r'}
-};
+USB_STRING_INITIALIZER(u"Rockbox media player");
static struct usb_string_descriptor __attribute__((aligned(2)))
usb_string_iSerial =
-{
- 84,
- USB_DT_STRING,
- {'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
- '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
- '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
- '0', '0', '0', '0', '0', '0', '0', '0'}
-};
+USB_STRING_INITIALIZER(u"00000000000000000000000000000000000000000");
/* Generic for all targets */
/* this is stringid #0: languages supported */
static const struct usb_string_descriptor __attribute__((aligned(2)))
lang_descriptor =
-{
- 4,
- USB_DT_STRING,
- {0x0409} /* LANGID US English */
-};
+USB_STRING_INITIALIZER(u"\x0409"); /* LANGID US English */
static const struct usb_string_descriptor* const usb_strings[] =
{