aboutsummaryrefslogtreecommitdiff
path: root/embassy-usb/src/builder.rs
diff options
context:
space:
mode:
authorMatt Ickstadt <[email protected]>2023-01-13 12:08:25 -0600
committerMatt Ickstadt <[email protected]>2023-01-13 12:10:36 -0600
commit7ecb05ff77ba8cd87d87c1c6bc3b8c1a1624ad15 (patch)
treeeca67b5e9632a51f7c018e929d04a03811dbbf39 /embassy-usb/src/builder.rs
parentb0c8c688c7458785826c60a3afb05c3338d70427 (diff)
usb: allow setting the interface string for interface alt settings
Diffstat (limited to 'embassy-usb/src/builder.rs')
-rw-r--r--embassy-usb/src/builder.rs19
1 files changed, 15 insertions, 4 deletions
diff --git a/embassy-usb/src/builder.rs b/embassy-usb/src/builder.rs
index 87a8333bb..785dc6f87 100644
--- a/embassy-usb/src/builder.rs
+++ b/embassy-usb/src/builder.rs
@@ -306,14 +306,25 @@ impl<'a, 'd, D: Driver<'d>> InterfaceBuilder<'a, 'd, D> {
306 /// Alternate setting numbers are guaranteed to be allocated consecutively, starting from 0. 306 /// Alternate setting numbers are guaranteed to be allocated consecutively, starting from 0.
307 /// 307 ///
308 /// The first alternate setting, with number 0, is the default one. 308 /// The first alternate setting, with number 0, is the default one.
309 pub fn alt_setting(&mut self, class: u8, subclass: u8, protocol: u8) -> InterfaceAltBuilder<'_, 'd, D> { 309 pub fn alt_setting(
310 &mut self,
311 class: u8,
312 subclass: u8,
313 protocol: u8,
314 interface_string: Option<StringIndex>,
315 ) -> InterfaceAltBuilder<'_, 'd, D> {
310 let number = self.next_alt_setting_number; 316 let number = self.next_alt_setting_number;
311 self.next_alt_setting_number += 1; 317 self.next_alt_setting_number += 1;
312 self.builder.interfaces[self.interface_number.0 as usize].num_alt_settings += 1; 318 self.builder.interfaces[self.interface_number.0 as usize].num_alt_settings += 1;
313 319
314 self.builder 320 self.builder.config_descriptor.interface_alt(
315 .config_descriptor 321 self.interface_number,
316 .interface_alt(self.interface_number, number, class, subclass, protocol, None); 322 number,
323 class,
324 subclass,
325 protocol,
326 interface_string,
327 );
317 328
318 InterfaceAltBuilder { 329 InterfaceAltBuilder {
319 builder: self.builder, 330 builder: self.builder,