kiibohd-usb

Rust docs.rs Crates.io Crates.io Crates.io

Combination USB HID interface from the kiibohd project. Instanciates the following USB HID interfaces: * Boot mode keyboard (supports auto-switching through SET_PROTOCOL and manual switching) * NKRO mode keyboard * Consumer Ctrl and System Ctrl * Mouse * HID-IO

Usage

```rust let (mut kbdproducer, mut kbdconsumer) = KBDQUEUE.split(); let (mut mouseproducer, mut mouseconsumer) = MOUSEQUEUE.split(); let (mut ctrlproducer, mut ctrlconsumer) = CTRLQUEUE.split(); let (mut hidiorxproducer, mut hidiorxconsumer) = HIDIORXQUEUE.split(); let (mut hidiotxproducer, mut hidiotxconsumer) = HIDIOTXQUEUE.split(); let usbhid = HidInterface::new( usbbus, /* UsbBusAllocator */ HidCountryCode::NotSupported, kbdconsumer, mouseconsumer, ctrlconsumer, hidiorxproducer, hidiotxconsumer, );

usbhid.poll(); // Poll HID-IO usbhid.push(); // Push hid reports and poll HID-IO ```

See docs.rs for more details.

WIP

License

Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.