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.
This commit is contained in:
Dario Nieuwenhuis
2022-04-16 01:59:40 +02:00
parent 94090e068e
commit c0de54a341
3 changed files with 160 additions and 134 deletions

View File

@ -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),
}