From c0de54a341dc40b600574a5009a3d4c54e52d5c8 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Sat, 16 Apr 2022 01:59:40 +0200 Subject: 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, ReportReader<'d, Driver<'d, USBD>, OUT_N>, IN_N>` It's now `HidClass, 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. --- examples/nrf/src/bin/usb_hid_keyboard.rs | 14 +++++++------- examples/nrf/src/bin/usb_hid_mouse.rs | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'examples') 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; use embassy_nrf::Peripherals; use embassy_usb::control::OutResponse; use embassy_usb::{Config, DeviceStateHandler, UsbDeviceBuilder}; -use embassy_usb_hid::{HidClass, ReportId, RequestHandler, State}; +use embassy_usb_hid::{HidReaderWriter, ReportId, RequestHandler, State}; use futures::future::join; use usbd_hid::descriptor::{KeyboardReport, SerializedDescriptor}; @@ -75,7 +75,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { let request_handler = MyRequestHandler {}; let device_state_handler = MyDeviceStateHandler::new(); - let mut state = State::<8, 1>::new(); + let mut state = State::new(); let mut builder = UsbDeviceBuilder::new( driver, @@ -88,7 +88,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { ); // Create classes on the builder. - let hid = HidClass::with_output_ep( + let hid = HidReaderWriter::<_, 1, 8>::new( &mut builder, &mut state, KeyboardReport::desc(), @@ -135,7 +135,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { let mut button = Input::new(p.P0_11.degrade(), Pull::Up); - let (mut hid_in, hid_out) = hid.split(); + let (reader, mut writer) = hid.split(); // Do stuff with the class! let in_fut = async { @@ -153,7 +153,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { modifier: 0, reserved: 0, }; - match hid_in.serialize(&report).await { + match writer.write_serialize(&report).await { Ok(()) => {} Err(e) => warn!("Failed to send report: {:?}", e), }; @@ -167,7 +167,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { modifier: 0, reserved: 0, }; - match hid_in.serialize(&report).await { + match writer.write_serialize(&report).await { Ok(()) => {} Err(e) => warn!("Failed to send report: {:?}", e), }; @@ -175,7 +175,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { }; let out_fut = async { - hid_out.run(false, &request_handler).await; + reader.run(false, &request_handler).await; }; 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; use embassy_nrf::Peripherals; use embassy_usb::control::OutResponse; use embassy_usb::{Config, UsbDeviceBuilder}; -use embassy_usb_hid::{HidClass, ReportId, RequestHandler, State}; +use embassy_usb_hid::{HidWriter, ReportId, RequestHandler, State}; use futures::future::join; use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; @@ -52,7 +52,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { let mut control_buf = [0; 16]; let request_handler = MyRequestHandler {}; - let mut control = State::<5, 0>::new(); + let mut control = State::new(); let mut builder = UsbDeviceBuilder::new( driver, @@ -65,7 +65,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { ); // Create classes on the builder. - let mut hid = HidClass::new( + let mut writer = HidWriter::<_, 5>::new( &mut builder, &mut control, MouseReport::desc(), @@ -94,7 +94,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { wheel: 0, pan: 0, }; - match hid.input().serialize(&report).await { + match writer.write_serialize(&report).await { Ok(()) => {} Err(e) => warn!("Failed to send report: {:?}", e), } -- cgit