1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use usb_device::bus::UsbBusAllocator;
use usb_device::prelude::*;
pub mod action;
pub mod chording;
pub mod debounce;
pub mod hid;
pub mod key_code;
pub mod keyboard;
pub mod layout;
pub mod matrix;
pub type Class<'a, B, L> = hid::HidClass<'a, B, keyboard::Keyboard<L>>;
const VID: u16 = 0x16c0;
const PID: u16 = 0x27db;
pub fn new_class<B, L>(bus: &UsbBusAllocator<B>, leds: L) -> Class<'_, B, L>
where
B: usb_device::bus::UsbBus,
L: keyboard::Leds,
{
hid::HidClass::new(keyboard::Keyboard::new(leds), bus)
}
pub fn new_device<B>(bus: &UsbBusAllocator<B>) -> usb_device::device::UsbDevice<'_, B>
where
B: usb_device::bus::UsbBus,
{
UsbDeviceBuilder::new(bus, UsbVidPid(VID, PID))
.manufacturer("RIIR Task Force")
.product("Keyberon")
.serial_number(env!("CARGO_PKG_VERSION"))
.build()
}