pub mod arcade;
pub mod auxiliary_display;
pub mod barcode_scanner;
pub mod battery_system;
pub mod braille_display;
pub mod camera_control;
pub mod consumer;
pub mod digitizers;
pub mod eye_head_trackers;
pub mod fido_alliance;
pub mod game_controls;
pub mod generic_desktop;
pub mod generic_device_controls;
pub mod haptics;
pub mod keyboard_keypad;
pub mod led_page;
pub mod lighting_illumination;
pub mod magnetic_stripe_reader;
pub mod medical_instrument;
pub mod monitor;
pub mod physical_input_device;
pub mod power;
pub mod scales;
pub mod sensors;
pub mod simulation_controls;
pub mod soc;
pub mod sport_controls;
pub mod telephony_device;
pub mod vesa_virtual_controls;
pub mod vr_controls;
use num_enum::{IntoPrimitive, TryFromPrimitive};
use crate::Ident;
#[expect(missing_docs)]
#[derive(Clone, Copy, Debug, PartialEq, TryFromPrimitive, IntoPrimitive)]
#[repr(u16)]
pub enum KnownUsagePage {
Undefined = 0x00,
GenericDesktop = 0x01,
SimulationControls = 0x02,
VrControls = 0x03,
SportControls = 0x04,
GameControls = 0x05,
GenericDeviceControls = 0x06,
KeyboardKeypad = 0x07,
Led = 0x08,
Button = 0x09,
Ordinal = 0x0A,
TelephonyDevice = 0x0B,
Consumer = 0x0C,
Digitizers = 0x0D,
Haptics = 0x0E,
PhysicalInputDevice = 0x0F,
Unicode = 0x10,
Soc = 0x11,
EyeAndHeadTrackers = 0x12,
AuxiliaryDisplay = 0x14,
Sensors = 0x20,
MedicalInstrument = 0x40,
BrailleDisplay = 0x41,
LightingAndIllumination = 0x59,
Monitor = 0x80,
MonitorEnumerated = 0x81,
VesaVirtualControls = 0x82,
Power = 0x84,
BatterySystem = 0x85,
BarcodeScanner = 0x8C,
Scales = 0x8D,
MagneticStripeReader = 0x8E,
CameraControl = 0x90,
Arcade = 0x91,
GamingDevice = 0x92,
FidoAlliance = 0xF1D0,
}
pub type UsagePage = Ident<KnownUsagePage, u16>;