diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-02-07 20:49:10 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-02-08 00:16:04 +0100 |
| commit | 1d841cc8ac74feacc4d231958ce2c46419ae3bda (patch) | |
| tree | 44dbe827369eceb661c287d2c47ea17f00878c11 /embassy-usb/src | |
| parent | 4a224efe75c7986f5b3d8c5d6083fa17cb774f12 (diff) | |
usb: make max interface count configurable at compile time.
Diffstat (limited to 'embassy-usb/src')
| -rw-r--r-- | embassy-usb/src/builder.rs | 5 | ||||
| -rw-r--r-- | embassy-usb/src/lib.rs | 9 |
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; | |||
| 16 | pub mod msos; | 16 | pub mod msos; |
| 17 | pub mod types; | 17 | pub mod types; |
| 18 | 18 | ||
| 19 | mod config { | ||
| 20 | #![allow(unused)] | ||
| 21 | include!(concat!(env!("OUT_DIR"), "/config.rs")); | ||
| 22 | } | ||
| 23 | |||
| 19 | use embassy_futures::select::{select, Either}; | 24 | use embassy_futures::select::{select, Either}; |
| 20 | use heapless::Vec; | 25 | use heapless::Vec; |
| 21 | 26 | ||
| 22 | pub use crate::builder::{Builder, Config}; | 27 | pub use crate::builder::{Builder, Config}; |
| 28 | use crate::config::*; | ||
| 23 | use crate::control::*; | 29 | use crate::control::*; |
| 24 | use crate::descriptor::*; | 30 | use crate::descriptor::*; |
| 25 | use crate::descriptor_reader::foreach_endpoint; | 31 | use 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. |
| 72 | pub const CONFIGURATION_VALUE: u8 = 1; | 78 | pub const CONFIGURATION_VALUE: u8 = 1; |
| 73 | 79 | ||
| 74 | /// Maximum interface count, configured at compile time. | ||
| 75 | pub const MAX_INTERFACE_COUNT: usize = 4; | ||
| 76 | |||
| 77 | const STRING_INDEX_MANUFACTURER: u8 = 1; | 80 | const STRING_INDEX_MANUFACTURER: u8 = 1; |
| 78 | const STRING_INDEX_PRODUCT: u8 = 2; | 81 | const STRING_INDEX_PRODUCT: u8 = 2; |
| 79 | const STRING_INDEX_SERIAL_NUMBER: u8 = 3; | 82 | const STRING_INDEX_SERIAL_NUMBER: u8 = 3; |
