diff options
author | James Buren <braewoods+rb@braewoods.net> | 2021-03-25 13:10:50 -0500 |
---|---|---|
committer | James Buren <braewoods+rb@braewoods.net> | 2021-03-25 13:26:03 -0500 |
commit | 018372bf39d8bc994c9aec325fd71640c4de2f9e (patch) | |
tree | 7115c79c89cde5f34b9e6facacca12e493dbdb38 /firmware | |
parent | 7652e6f8dfc1c19876e6c897bc1e7c9a556f58a2 (diff) | |
download | rockbox-018372bf39d8bc994c9aec325fd71640c4de2f9e.tar.gz rockbox-018372bf39d8bc994c9aec325fd71640c4de2f9e.zip |
usb: implement macro for initializing USB strings
This uses the new unicode string literal feature that is available
now to greatly simplify the initialization of these special string
types. This makes them much more readable at a quick glance.
Change-Id: Iad8b49aa763486608e3bb7e83fb8abfb48ce0a7b
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/export/usb_drv.h | 7 | ||||
-rw-r--r-- | firmware/usbstack/usb_core.c | 29 |
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); | |||
80 | int usb_drv_request_endpoint(int type, int dir); | 80 | int usb_drv_request_endpoint(int type, int dir); |
81 | void usb_drv_release_endpoint(int ep); | 81 | void usb_drv_release_endpoint(int ep); |
82 | 82 | ||
83 | /* USB_STRING_INITIALIZER(u"Example String") */ | ||
84 | #define USB_STRING_INITIALIZER(S) { \ | ||
85 | sizeof(struct usb_string_descriptor) + sizeof(S) - sizeof(*S), \ | ||
86 | USB_DT_STRING, \ | ||
87 | S \ | ||
88 | } | ||
89 | |||
83 | #endif /* _USB_DRV_H */ | 90 | #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))) | |||
120 | 120 | ||
121 | static const struct usb_string_descriptor __attribute__((aligned(2))) | 121 | static const struct usb_string_descriptor __attribute__((aligned(2))) |
122 | usb_string_iManufacturer = | 122 | usb_string_iManufacturer = |
123 | { | 123 | USB_STRING_INITIALIZER(u"Rockbox.org"); |
124 | 24, | ||
125 | USB_DT_STRING, | ||
126 | {'R', 'o', 'c', 'k', 'b', 'o', 'x', '.', 'o', 'r', 'g'} | ||
127 | }; | ||
128 | 124 | ||
129 | static const struct usb_string_descriptor __attribute__((aligned(2))) | 125 | static const struct usb_string_descriptor __attribute__((aligned(2))) |
130 | usb_string_iProduct = | 126 | usb_string_iProduct = |
131 | { | 127 | USB_STRING_INITIALIZER(u"Rockbox media player"); |
132 | 42, | ||
133 | USB_DT_STRING, | ||
134 | {'R', 'o', 'c', 'k', 'b', 'o', 'x', ' ', | ||
135 | 'm', 'e', 'd', 'i', 'a', ' ', | ||
136 | 'p', 'l', 'a', 'y', 'e', 'r'} | ||
137 | }; | ||
138 | 128 | ||
139 | static struct usb_string_descriptor __attribute__((aligned(2))) | 129 | static struct usb_string_descriptor __attribute__((aligned(2))) |
140 | usb_string_iSerial = | 130 | usb_string_iSerial = |
141 | { | 131 | USB_STRING_INITIALIZER(u"00000000000000000000000000000000000000000"); |
142 | 84, | ||
143 | USB_DT_STRING, | ||
144 | {'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', | ||
145 | '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', | ||
146 | '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', | ||
147 | '0', '0', '0', '0', '0', '0', '0', '0'} | ||
148 | }; | ||
149 | 132 | ||
150 | /* Generic for all targets */ | 133 | /* Generic for all targets */ |
151 | 134 | ||
152 | /* this is stringid #0: languages supported */ | 135 | /* this is stringid #0: languages supported */ |
153 | static const struct usb_string_descriptor __attribute__((aligned(2))) | 136 | static const struct usb_string_descriptor __attribute__((aligned(2))) |
154 | lang_descriptor = | 137 | lang_descriptor = |
155 | { | 138 | USB_STRING_INITIALIZER(u"\x0409"); /* LANGID US English */ |
156 | 4, | ||
157 | USB_DT_STRING, | ||
158 | {0x0409} /* LANGID US English */ | ||
159 | }; | ||
160 | 139 | ||
161 | static const struct usb_string_descriptor* const usb_strings[] = | 140 | static const struct usb_string_descriptor* const usb_strings[] = |
162 | { | 141 | { |