diff options
| -rw-r--r-- | embassy-usb-hid/src/lib.rs | 16 | ||||
| -rw-r--r-- | embassy-usb-serial/src/lib.rs | 4 | ||||
| -rw-r--r-- | embassy-usb/src/builder.rs | 6 | ||||
| -rw-r--r-- | embassy-usb/src/lib.rs | 2 | ||||
| -rw-r--r-- | examples/nrf/src/bin/usb_hid_keyboard.rs | 4 | ||||
| -rw-r--r-- | examples/nrf/src/bin/usb_hid_mouse.rs | 4 | ||||
| -rw-r--r-- | examples/nrf/src/bin/usb_serial.rs | 4 | ||||
| -rw-r--r-- | examples/nrf/src/bin/usb_serial_multitask.rs | 4 |
8 files changed, 18 insertions, 26 deletions
diff --git a/embassy-usb-hid/src/lib.rs b/embassy-usb-hid/src/lib.rs index abcd6b5d9..fa4b47438 100644 --- a/embassy-usb-hid/src/lib.rs +++ b/embassy-usb-hid/src/lib.rs | |||
| @@ -16,7 +16,7 @@ use embassy_usb::driver::EndpointOut; | |||
| 16 | use embassy_usb::{ | 16 | use embassy_usb::{ |
| 17 | control::{ControlHandler, InResponse, OutResponse, Request, RequestType}, | 17 | control::{ControlHandler, InResponse, OutResponse, Request, RequestType}, |
| 18 | driver::{Driver, Endpoint, EndpointError, EndpointIn}, | 18 | driver::{Driver, Endpoint, EndpointError, EndpointIn}, |
| 19 | UsbDeviceBuilder, | 19 | Builder, |
| 20 | }; | 20 | }; |
| 21 | 21 | ||
| 22 | #[cfg(feature = "usbd-hid")] | 22 | #[cfg(feature = "usbd-hid")] |
| @@ -98,7 +98,7 @@ pub struct HidReaderWriter<'d, D: Driver<'d>, const READ_N: usize, const WRITE_N | |||
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | fn build<'d, D: Driver<'d>>( | 100 | fn build<'d, D: Driver<'d>>( |
| 101 | builder: &mut UsbDeviceBuilder<'d, D>, | 101 | builder: &mut Builder<'d, D>, |
| 102 | state: &'d mut State<'d>, | 102 | state: &'d mut State<'d>, |
| 103 | config: Config<'d>, | 103 | config: Config<'d>, |
| 104 | with_out_endpoint: bool, | 104 | with_out_endpoint: bool, |
| @@ -160,11 +160,7 @@ impl<'d, D: Driver<'d>, const READ_N: usize, const WRITE_N: usize> | |||
| 160 | /// This will allocate one IN and one OUT endpoints. If you only need writing (sending) | 160 | /// This will allocate one IN and one OUT endpoints. If you only need writing (sending) |
| 161 | /// HID reports, consider using [`HidWriter::new`] instead, which allocates an IN endpoint only. | 161 | /// HID reports, consider using [`HidWriter::new`] instead, which allocates an IN endpoint only. |
| 162 | /// | 162 | /// |
| 163 | pub fn new( | 163 | pub fn new(builder: &mut Builder<'d, D>, state: &'d mut State<'d>, config: Config<'d>) -> Self { |
| 164 | builder: &mut UsbDeviceBuilder<'d, D>, | ||
| 165 | state: &'d mut State<'d>, | ||
| 166 | config: Config<'d>, | ||
| 167 | ) -> Self { | ||
| 168 | let (ep_out, ep_in, offset) = build(builder, state, config, true); | 164 | let (ep_out, ep_in, offset) = build(builder, state, config, true); |
| 169 | 165 | ||
| 170 | Self { | 166 | Self { |
| @@ -246,11 +242,7 @@ impl<'d, D: Driver<'d>, const N: usize> HidWriter<'d, D, N> { | |||
| 246 | /// HID reports. A lower value means better throughput & latency, at the expense | 242 | /// HID reports. A lower value means better throughput & latency, at the expense |
| 247 | /// of CPU on the device & bandwidth on the bus. A value of 10 is reasonable for | 243 | /// of CPU on the device & bandwidth on the bus. A value of 10 is reasonable for |
| 248 | /// high performance uses, and a value of 255 is good for best-effort usecases. | 244 | /// high performance uses, and a value of 255 is good for best-effort usecases. |
| 249 | pub fn new( | 245 | pub fn new(builder: &mut Builder<'d, D>, state: &'d mut State<'d>, config: Config<'d>) -> Self { |
| 250 | builder: &mut UsbDeviceBuilder<'d, D>, | ||
| 251 | state: &'d mut State<'d>, | ||
| 252 | config: Config<'d>, | ||
| 253 | ) -> Self { | ||
| 254 | let (ep_out, ep_in, _offset) = build(builder, state, config, false); | 246 | let (ep_out, ep_in, _offset) = build(builder, state, config, false); |
| 255 | 247 | ||
| 256 | assert!(ep_out.is_none()); | 248 | assert!(ep_out.is_none()); |
diff --git a/embassy-usb-serial/src/lib.rs b/embassy-usb-serial/src/lib.rs index 7b25398d0..43273902a 100644 --- a/embassy-usb-serial/src/lib.rs +++ b/embassy-usb-serial/src/lib.rs | |||
| @@ -11,7 +11,7 @@ use core::sync::atomic::{AtomicBool, Ordering}; | |||
| 11 | use embassy::blocking_mutex::CriticalSectionMutex; | 11 | use embassy::blocking_mutex::CriticalSectionMutex; |
| 12 | use embassy_usb::control::{self, ControlHandler, InResponse, OutResponse, Request}; | 12 | use embassy_usb::control::{self, ControlHandler, InResponse, OutResponse, Request}; |
| 13 | use embassy_usb::driver::{Endpoint, EndpointError, EndpointIn, EndpointOut}; | 13 | use embassy_usb::driver::{Endpoint, EndpointError, EndpointIn, EndpointOut}; |
| 14 | use embassy_usb::{driver::Driver, types::*, UsbDeviceBuilder}; | 14 | use embassy_usb::{driver::Driver, types::*, Builder}; |
| 15 | 15 | ||
| 16 | /// This should be used as `device_class` when building the `UsbDevice`. | 16 | /// This should be used as `device_class` when building the `UsbDevice`. |
| 17 | pub const USB_CLASS_CDC: u8 = 0x02; | 17 | pub const USB_CLASS_CDC: u8 = 0x02; |
| @@ -163,7 +163,7 @@ impl<'d, D: Driver<'d>> CdcAcmClass<'d, D> { | |||
| 163 | /// Creates a new CdcAcmClass with the provided UsbBus and max_packet_size in bytes. For | 163 | /// Creates a new CdcAcmClass with the provided UsbBus and max_packet_size in bytes. For |
| 164 | /// full-speed devices, max_packet_size has to be one of 8, 16, 32 or 64. | 164 | /// full-speed devices, max_packet_size has to be one of 8, 16, 32 or 64. |
| 165 | pub fn new( | 165 | pub fn new( |
| 166 | builder: &mut UsbDeviceBuilder<'d, D>, | 166 | builder: &mut Builder<'d, D>, |
| 167 | state: &'d mut State<'d>, | 167 | state: &'d mut State<'d>, |
| 168 | max_packet_size: u16, | 168 | max_packet_size: u16, |
| 169 | ) -> Self { | 169 | ) -> Self { |
diff --git a/embassy-usb/src/builder.rs b/embassy-usb/src/builder.rs index 486672055..41cbfa940 100644 --- a/embassy-usb/src/builder.rs +++ b/embassy-usb/src/builder.rs | |||
| @@ -118,7 +118,7 @@ impl<'a> Config<'a> { | |||
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | /// Used to build new [`UsbDevice`]s. | 120 | /// Used to build new [`UsbDevice`]s. |
| 121 | pub struct UsbDeviceBuilder<'d, D: Driver<'d>> { | 121 | pub struct Builder<'d, D: Driver<'d>> { |
| 122 | config: Config<'d>, | 122 | config: Config<'d>, |
| 123 | handler: Option<&'d dyn DeviceStateHandler>, | 123 | handler: Option<&'d dyn DeviceStateHandler>, |
| 124 | interfaces: Vec<(u8, &'d mut dyn ControlHandler), MAX_INTERFACE_COUNT>, | 124 | interfaces: Vec<(u8, &'d mut dyn ControlHandler), MAX_INTERFACE_COUNT>, |
| @@ -134,7 +134,7 @@ pub struct UsbDeviceBuilder<'d, D: Driver<'d>> { | |||
| 134 | pub bos_descriptor: BosWriter<'d>, | 134 | pub bos_descriptor: BosWriter<'d>, |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | impl<'d, D: Driver<'d>> UsbDeviceBuilder<'d, D> { | 137 | impl<'d, D: Driver<'d>> Builder<'d, D> { |
| 138 | /// Creates a builder for constructing a new [`UsbDevice`]. | 138 | /// Creates a builder for constructing a new [`UsbDevice`]. |
| 139 | /// | 139 | /// |
| 140 | /// `control_buf` is a buffer used for USB control request data. It should be sized | 140 | /// `control_buf` is a buffer used for USB control request data. It should be sized |
| @@ -175,7 +175,7 @@ impl<'d, D: Driver<'d>> UsbDeviceBuilder<'d, D> { | |||
| 175 | config_descriptor.configuration(&config); | 175 | config_descriptor.configuration(&config); |
| 176 | bos_descriptor.bos(); | 176 | bos_descriptor.bos(); |
| 177 | 177 | ||
| 178 | UsbDeviceBuilder { | 178 | Builder { |
| 179 | driver, | 179 | driver, |
| 180 | handler, | 180 | handler, |
| 181 | config, | 181 | config, |
diff --git a/embassy-usb/src/lib.rs b/embassy-usb/src/lib.rs index baeca099f..7cd00fbaf 100644 --- a/embassy-usb/src/lib.rs +++ b/embassy-usb/src/lib.rs | |||
| @@ -19,8 +19,8 @@ use self::descriptor::*; | |||
| 19 | use self::driver::{Bus, Driver, Event}; | 19 | use self::driver::{Bus, Driver, Event}; |
| 20 | use self::types::*; | 20 | use self::types::*; |
| 21 | 21 | ||
| 22 | pub use self::builder::Builder; | ||
| 22 | pub use self::builder::Config; | 23 | pub use self::builder::Config; |
| 23 | pub use self::builder::UsbDeviceBuilder; | ||
| 24 | 24 | ||
| 25 | /// The global state of the USB device. | 25 | /// The global state of the USB device. |
| 26 | /// | 26 | /// |
diff --git a/examples/nrf/src/bin/usb_hid_keyboard.rs b/examples/nrf/src/bin/usb_hid_keyboard.rs index a2d78b08e..9fa7ab334 100644 --- a/examples/nrf/src/bin/usb_hid_keyboard.rs +++ b/examples/nrf/src/bin/usb_hid_keyboard.rs | |||
| @@ -17,7 +17,7 @@ use embassy_nrf::pac; | |||
| 17 | use embassy_nrf::usb::Driver; | 17 | use embassy_nrf::usb::Driver; |
| 18 | use embassy_nrf::Peripherals; | 18 | use embassy_nrf::Peripherals; |
| 19 | use embassy_usb::control::OutResponse; | 19 | use embassy_usb::control::OutResponse; |
| 20 | use embassy_usb::{Config, DeviceStateHandler, UsbDeviceBuilder}; | 20 | use embassy_usb::{Builder, Config, DeviceStateHandler}; |
| 21 | use embassy_usb_hid::{HidReaderWriter, ReportId, RequestHandler, State}; | 21 | use embassy_usb_hid::{HidReaderWriter, ReportId, RequestHandler, State}; |
| 22 | use futures::future::join; | 22 | use futures::future::join; |
| 23 | use usbd_hid::descriptor::{KeyboardReport, SerializedDescriptor}; | 23 | use usbd_hid::descriptor::{KeyboardReport, SerializedDescriptor}; |
| @@ -77,7 +77,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 77 | 77 | ||
| 78 | let mut state = State::new(); | 78 | let mut state = State::new(); |
| 79 | 79 | ||
| 80 | let mut builder = UsbDeviceBuilder::new( | 80 | let mut builder = Builder::new( |
| 81 | driver, | 81 | driver, |
| 82 | config, | 82 | config, |
| 83 | &mut device_descriptor, | 83 | &mut device_descriptor, |
diff --git a/examples/nrf/src/bin/usb_hid_mouse.rs b/examples/nrf/src/bin/usb_hid_mouse.rs index 1e98dd1ae..92aeffda2 100644 --- a/examples/nrf/src/bin/usb_hid_mouse.rs +++ b/examples/nrf/src/bin/usb_hid_mouse.rs | |||
| @@ -12,7 +12,7 @@ use embassy_nrf::pac; | |||
| 12 | use embassy_nrf::usb::Driver; | 12 | use embassy_nrf::usb::Driver; |
| 13 | use embassy_nrf::Peripherals; | 13 | use embassy_nrf::Peripherals; |
| 14 | use embassy_usb::control::OutResponse; | 14 | use embassy_usb::control::OutResponse; |
| 15 | use embassy_usb::{Config, UsbDeviceBuilder}; | 15 | use embassy_usb::{Builder, Config}; |
| 16 | use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; | 16 | use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; |
| 17 | use futures::future::join; | 17 | use futures::future::join; |
| 18 | use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; | 18 | use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; |
| @@ -54,7 +54,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 54 | 54 | ||
| 55 | let mut state = State::new(); | 55 | let mut state = State::new(); |
| 56 | 56 | ||
| 57 | let mut builder = UsbDeviceBuilder::new( | 57 | let mut builder = Builder::new( |
| 58 | driver, | 58 | driver, |
| 59 | config, | 59 | config, |
| 60 | &mut device_descriptor, | 60 | &mut device_descriptor, |
diff --git a/examples/nrf/src/bin/usb_serial.rs b/examples/nrf/src/bin/usb_serial.rs index 987cc4139..6081ee917 100644 --- a/examples/nrf/src/bin/usb_serial.rs +++ b/examples/nrf/src/bin/usb_serial.rs | |||
| @@ -11,7 +11,7 @@ use embassy_nrf::pac; | |||
| 11 | use embassy_nrf::usb::{Driver, Instance}; | 11 | use embassy_nrf::usb::{Driver, Instance}; |
| 12 | use embassy_nrf::Peripherals; | 12 | use embassy_nrf::Peripherals; |
| 13 | use embassy_usb::driver::EndpointError; | 13 | use embassy_usb::driver::EndpointError; |
| 14 | use embassy_usb::{Config, UsbDeviceBuilder}; | 14 | use embassy_usb::{Builder, Config}; |
| 15 | use embassy_usb_serial::{CdcAcmClass, State}; | 15 | use embassy_usb_serial::{CdcAcmClass, State}; |
| 16 | use futures::future::join; | 16 | use futures::future::join; |
| 17 | 17 | ||
| @@ -47,7 +47,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 47 | 47 | ||
| 48 | let mut state = State::new(); | 48 | let mut state = State::new(); |
| 49 | 49 | ||
| 50 | let mut builder = UsbDeviceBuilder::new( | 50 | let mut builder = Builder::new( |
| 51 | driver, | 51 | driver, |
| 52 | config, | 52 | config, |
| 53 | &mut device_descriptor, | 53 | &mut device_descriptor, |
diff --git a/examples/nrf/src/bin/usb_serial_multitask.rs b/examples/nrf/src/bin/usb_serial_multitask.rs index 5fcb0e052..d4b3000e7 100644 --- a/examples/nrf/src/bin/usb_serial_multitask.rs +++ b/examples/nrf/src/bin/usb_serial_multitask.rs | |||
| @@ -12,7 +12,7 @@ use embassy_nrf::usb::Driver; | |||
| 12 | use embassy_nrf::Peripherals; | 12 | use embassy_nrf::Peripherals; |
| 13 | use embassy_nrf::{interrupt, peripherals}; | 13 | use embassy_nrf::{interrupt, peripherals}; |
| 14 | use embassy_usb::driver::EndpointError; | 14 | use embassy_usb::driver::EndpointError; |
| 15 | use embassy_usb::{Config, UsbDevice, UsbDeviceBuilder}; | 15 | use embassy_usb::{Builder, Config, UsbDevice}; |
| 16 | use embassy_usb_serial::{CdcAcmClass, State}; | 16 | use embassy_usb_serial::{CdcAcmClass, State}; |
| 17 | 17 | ||
| 18 | use defmt_rtt as _; // global logger | 18 | use defmt_rtt as _; // global logger |
| @@ -72,7 +72,7 @@ async fn main(spawner: Spawner, p: Peripherals) { | |||
| 72 | }); | 72 | }); |
| 73 | 73 | ||
| 74 | // Create embassy-usb DeviceBuilder using the driver and config. | 74 | // Create embassy-usb DeviceBuilder using the driver and config. |
| 75 | let mut builder = UsbDeviceBuilder::new( | 75 | let mut builder = Builder::new( |
| 76 | driver, | 76 | driver, |
| 77 | config, | 77 | config, |
| 78 | &mut res.device_descriptor, | 78 | &mut res.device_descriptor, |
