aboutsummaryrefslogtreecommitdiff
path: root/embassy-usb/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-02-07 20:49:10 +0100
committerDario Nieuwenhuis <[email protected]>2023-02-08 00:16:04 +0100
commit1d841cc8ac74feacc4d231958ce2c46419ae3bda (patch)
tree44dbe827369eceb661c287d2c47ea17f00878c11 /embassy-usb/src
parent4a224efe75c7986f5b3d8c5d6083fa17cb774f12 (diff)
usb: make max interface count configurable at compile time.
Diffstat (limited to 'embassy-usb/src')
-rw-r--r--embassy-usb/src/builder.rs5
-rw-r--r--embassy-usb/src/lib.rs9
2 files changed, 10 insertions, 4 deletions
diff --git a/embassy-usb/src/builder.rs b/embassy-usb/src/builder.rs
index d1cbf674b..d89fc4017 100644
--- a/embassy-usb/src/builder.rs
+++ b/embassy-usb/src/builder.rs
@@ -308,7 +308,10 @@ impl<'a, 'd, D: Driver<'d>> FunctionBuilder<'a, 'd, D> {
308 }; 308 };
309 309
310 if self.builder.interfaces.push(iface).is_err() { 310 if self.builder.interfaces.push(iface).is_err() {
311 panic!("max interface count reached") 311 panic!(
312 "embassy-usb: interface list full. Increase the `max_interface_count` compile-time setting. Current value: {}",
313 MAX_INTERFACE_COUNT
314 )
312 } 315 }
313 316
314 InterfaceBuilder { 317 InterfaceBuilder {
diff --git a/embassy-usb/src/lib.rs b/embassy-usb/src/lib.rs
index aec18524b..f8983318e 100644
--- a/embassy-usb/src/lib.rs
+++ b/embassy-usb/src/lib.rs
@@ -16,10 +16,16 @@ mod descriptor_reader;
16pub mod msos; 16pub mod msos;
17pub mod types; 17pub mod types;
18 18
19mod config {
20 #![allow(unused)]
21 include!(concat!(env!("OUT_DIR"), "/config.rs"));
22}
23
19use embassy_futures::select::{select, Either}; 24use embassy_futures::select::{select, Either};
20use heapless::Vec; 25use heapless::Vec;
21 26
22pub use crate::builder::{Builder, Config}; 27pub use crate::builder::{Builder, Config};
28use crate::config::*;
23use crate::control::*; 29use crate::control::*;
24use crate::descriptor::*; 30use crate::descriptor::*;
25use crate::descriptor_reader::foreach_endpoint; 31use crate::descriptor_reader::foreach_endpoint;
@@ -71,9 +77,6 @@ pub const CONFIGURATION_NONE: u8 = 0;
71/// The bConfiguration value for the single configuration supported by this device. 77/// The bConfiguration value for the single configuration supported by this device.
72pub const CONFIGURATION_VALUE: u8 = 1; 78pub const CONFIGURATION_VALUE: u8 = 1;
73 79
74/// Maximum interface count, configured at compile time.
75pub const MAX_INTERFACE_COUNT: usize = 4;
76
77const STRING_INDEX_MANUFACTURER: u8 = 1; 80const STRING_INDEX_MANUFACTURER: u8 = 1;
78const STRING_INDEX_PRODUCT: u8 = 2; 81const STRING_INDEX_PRODUCT: u8 = 2;
79const STRING_INDEX_SERIAL_NUMBER: u8 = 3; 82const STRING_INDEX_SERIAL_NUMBER: u8 = 3;