diff options
| author | Dario Nieuwenhuis <[email protected]> | 2022-04-16 01:59:40 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2022-04-16 01:59:40 +0200 |
| commit | c0de54a341dc40b600574a5009a3d4c54e52d5c8 (patch) | |
| tree | a26059f90bfd8a2a1d204414415951593c6822a2 /examples/nrf/src/bin | |
| parent | 94090e068ec8c56e4fd6676330d87305c5dfee3e (diff) | |
usb-hid: Simplify API.
- Renamed structs to HidReaderWriter, HidReader, HidWriter.
- Removed unused const generics on `State`.
- Simplified generics on `HidReaderWriter`.
The class type previously was `HidClass<D, Driver<'d, USBD>, ReportReader<'d, Driver<'d, USBD>, OUT_N>, IN_N>`
It's now `HidClass<D, Driver<'d, USBD>, IN_N, OUT_N>`. Note that the driver type `Driver<'d, USBD>` is no longer repeated.
- Constructors are now: `HidWriter::new()` for IN-only, `HidReaderWriter::new()` for IN+OUT. No complicated bounds.
- HidReaderWriter has all the methods from HidReader, HidWriter.
Diffstat (limited to 'examples/nrf/src/bin')
| -rw-r--r-- | examples/nrf/src/bin/usb_hid_keyboard.rs | 14 | ||||
| -rw-r--r-- | examples/nrf/src/bin/usb_hid_mouse.rs | 8 |
2 files changed, 11 insertions, 11 deletions
diff --git a/examples/nrf/src/bin/usb_hid_keyboard.rs b/examples/nrf/src/bin/usb_hid_keyboard.rs index 5f03f5126..4ed49d375 100644 --- a/examples/nrf/src/bin/usb_hid_keyboard.rs +++ b/examples/nrf/src/bin/usb_hid_keyboard.rs | |||
| @@ -18,7 +18,7 @@ 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::{Config, DeviceStateHandler, UsbDeviceBuilder}; |
| 21 | use embassy_usb_hid::{HidClass, 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}; |
| 24 | 24 | ||
| @@ -75,7 +75,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 75 | let request_handler = MyRequestHandler {}; | 75 | let request_handler = MyRequestHandler {}; |
| 76 | let device_state_handler = MyDeviceStateHandler::new(); | 76 | let device_state_handler = MyDeviceStateHandler::new(); |
| 77 | 77 | ||
| 78 | let mut state = State::<8, 1>::new(); | 78 | let mut state = State::new(); |
| 79 | 79 | ||
| 80 | let mut builder = UsbDeviceBuilder::new( | 80 | let mut builder = UsbDeviceBuilder::new( |
| 81 | driver, | 81 | driver, |
| @@ -88,7 +88,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 88 | ); | 88 | ); |
| 89 | 89 | ||
| 90 | // Create classes on the builder. | 90 | // Create classes on the builder. |
| 91 | let hid = HidClass::with_output_ep( | 91 | let hid = HidReaderWriter::<_, 1, 8>::new( |
| 92 | &mut builder, | 92 | &mut builder, |
| 93 | &mut state, | 93 | &mut state, |
| 94 | KeyboardReport::desc(), | 94 | KeyboardReport::desc(), |
| @@ -135,7 +135,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 135 | 135 | ||
| 136 | let mut button = Input::new(p.P0_11.degrade(), Pull::Up); | 136 | let mut button = Input::new(p.P0_11.degrade(), Pull::Up); |
| 137 | 137 | ||
| 138 | let (mut hid_in, hid_out) = hid.split(); | 138 | let (reader, mut writer) = hid.split(); |
| 139 | 139 | ||
| 140 | // Do stuff with the class! | 140 | // Do stuff with the class! |
| 141 | let in_fut = async { | 141 | let in_fut = async { |
| @@ -153,7 +153,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 153 | modifier: 0, | 153 | modifier: 0, |
| 154 | reserved: 0, | 154 | reserved: 0, |
| 155 | }; | 155 | }; |
| 156 | match hid_in.serialize(&report).await { | 156 | match writer.write_serialize(&report).await { |
| 157 | Ok(()) => {} | 157 | Ok(()) => {} |
| 158 | Err(e) => warn!("Failed to send report: {:?}", e), | 158 | Err(e) => warn!("Failed to send report: {:?}", e), |
| 159 | }; | 159 | }; |
| @@ -167,7 +167,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 167 | modifier: 0, | 167 | modifier: 0, |
| 168 | reserved: 0, | 168 | reserved: 0, |
| 169 | }; | 169 | }; |
| 170 | match hid_in.serialize(&report).await { | 170 | match writer.write_serialize(&report).await { |
| 171 | Ok(()) => {} | 171 | Ok(()) => {} |
| 172 | Err(e) => warn!("Failed to send report: {:?}", e), | 172 | Err(e) => warn!("Failed to send report: {:?}", e), |
| 173 | }; | 173 | }; |
| @@ -175,7 +175,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 175 | }; | 175 | }; |
| 176 | 176 | ||
| 177 | let out_fut = async { | 177 | let out_fut = async { |
| 178 | hid_out.run(false, &request_handler).await; | 178 | reader.run(false, &request_handler).await; |
| 179 | }; | 179 | }; |
| 180 | 180 | ||
| 181 | let power_irq = interrupt::take!(POWER_CLOCK); | 181 | let power_irq = interrupt::take!(POWER_CLOCK); |
diff --git a/examples/nrf/src/bin/usb_hid_mouse.rs b/examples/nrf/src/bin/usb_hid_mouse.rs index fe27e76fb..bbdced745 100644 --- a/examples/nrf/src/bin/usb_hid_mouse.rs +++ b/examples/nrf/src/bin/usb_hid_mouse.rs | |||
| @@ -13,7 +13,7 @@ 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::{Config, UsbDeviceBuilder}; |
| 16 | use embassy_usb_hid::{HidClass, 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}; |
| 19 | 19 | ||
| @@ -52,7 +52,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 52 | let mut control_buf = [0; 16]; | 52 | let mut control_buf = [0; 16]; |
| 53 | let request_handler = MyRequestHandler {}; | 53 | let request_handler = MyRequestHandler {}; |
| 54 | 54 | ||
| 55 | let mut control = State::<5, 0>::new(); | 55 | let mut control = State::new(); |
| 56 | 56 | ||
| 57 | let mut builder = UsbDeviceBuilder::new( | 57 | let mut builder = UsbDeviceBuilder::new( |
| 58 | driver, | 58 | driver, |
| @@ -65,7 +65,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 65 | ); | 65 | ); |
| 66 | 66 | ||
| 67 | // Create classes on the builder. | 67 | // Create classes on the builder. |
| 68 | let mut hid = HidClass::new( | 68 | let mut writer = HidWriter::<_, 5>::new( |
| 69 | &mut builder, | 69 | &mut builder, |
| 70 | &mut control, | 70 | &mut control, |
| 71 | MouseReport::desc(), | 71 | MouseReport::desc(), |
| @@ -94,7 +94,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { | |||
| 94 | wheel: 0, | 94 | wheel: 0, |
| 95 | pan: 0, | 95 | pan: 0, |
| 96 | }; | 96 | }; |
| 97 | match hid.input().serialize(&report).await { | 97 | match writer.write_serialize(&report).await { |
| 98 | Ok(()) => {} | 98 | Ok(()) => {} |
| 99 | Err(e) => warn!("Failed to send report: {:?}", e), | 99 | Err(e) => warn!("Failed to send report: {:?}", e), |
| 100 | } | 100 | } |
