aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-usb-hid/src/lib.rs16
-rw-r--r--embassy-usb-serial/src/lib.rs4
-rw-r--r--embassy-usb/src/builder.rs6
-rw-r--r--embassy-usb/src/lib.rs2
-rw-r--r--examples/nrf/src/bin/usb_hid_keyboard.rs4
-rw-r--r--examples/nrf/src/bin/usb_hid_mouse.rs4
-rw-r--r--examples/nrf/src/bin/usb_serial.rs4
-rw-r--r--examples/nrf/src/bin/usb_serial_multitask.rs4
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;
16use embassy_usb::{ 16use 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
100fn build<'d, D: Driver<'d>>( 100fn 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};
11use embassy::blocking_mutex::CriticalSectionMutex; 11use embassy::blocking_mutex::CriticalSectionMutex;
12use embassy_usb::control::{self, ControlHandler, InResponse, OutResponse, Request}; 12use embassy_usb::control::{self, ControlHandler, InResponse, OutResponse, Request};
13use embassy_usb::driver::{Endpoint, EndpointError, EndpointIn, EndpointOut}; 13use embassy_usb::driver::{Endpoint, EndpointError, EndpointIn, EndpointOut};
14use embassy_usb::{driver::Driver, types::*, UsbDeviceBuilder}; 14use 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`.
17pub const USB_CLASS_CDC: u8 = 0x02; 17pub 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.
121pub struct UsbDeviceBuilder<'d, D: Driver<'d>> { 121pub 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
137impl<'d, D: Driver<'d>> UsbDeviceBuilder<'d, D> { 137impl<'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::*;
19use self::driver::{Bus, Driver, Event}; 19use self::driver::{Bus, Driver, Event};
20use self::types::*; 20use self::types::*;
21 21
22pub use self::builder::Builder;
22pub use self::builder::Config; 23pub use self::builder::Config;
23pub 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;
17use embassy_nrf::usb::Driver; 17use embassy_nrf::usb::Driver;
18use embassy_nrf::Peripherals; 18use embassy_nrf::Peripherals;
19use embassy_usb::control::OutResponse; 19use embassy_usb::control::OutResponse;
20use embassy_usb::{Config, DeviceStateHandler, UsbDeviceBuilder}; 20use embassy_usb::{Builder, Config, DeviceStateHandler};
21use embassy_usb_hid::{HidReaderWriter, ReportId, RequestHandler, State}; 21use embassy_usb_hid::{HidReaderWriter, ReportId, RequestHandler, State};
22use futures::future::join; 22use futures::future::join;
23use usbd_hid::descriptor::{KeyboardReport, SerializedDescriptor}; 23use 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;
12use embassy_nrf::usb::Driver; 12use embassy_nrf::usb::Driver;
13use embassy_nrf::Peripherals; 13use embassy_nrf::Peripherals;
14use embassy_usb::control::OutResponse; 14use embassy_usb::control::OutResponse;
15use embassy_usb::{Config, UsbDeviceBuilder}; 15use embassy_usb::{Builder, Config};
16use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; 16use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State};
17use futures::future::join; 17use futures::future::join;
18use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; 18use 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;
11use embassy_nrf::usb::{Driver, Instance}; 11use embassy_nrf::usb::{Driver, Instance};
12use embassy_nrf::Peripherals; 12use embassy_nrf::Peripherals;
13use embassy_usb::driver::EndpointError; 13use embassy_usb::driver::EndpointError;
14use embassy_usb::{Config, UsbDeviceBuilder}; 14use embassy_usb::{Builder, Config};
15use embassy_usb_serial::{CdcAcmClass, State}; 15use embassy_usb_serial::{CdcAcmClass, State};
16use futures::future::join; 16use 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;
12use embassy_nrf::Peripherals; 12use embassy_nrf::Peripherals;
13use embassy_nrf::{interrupt, peripherals}; 13use embassy_nrf::{interrupt, peripherals};
14use embassy_usb::driver::EndpointError; 14use embassy_usb::driver::EndpointError;
15use embassy_usb::{Config, UsbDevice, UsbDeviceBuilder}; 15use embassy_usb::{Builder, Config, UsbDevice};
16use embassy_usb_serial::{CdcAcmClass, State}; 16use embassy_usb_serial::{CdcAcmClass, State};
17 17
18use defmt_rtt as _; // global logger 18use 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,