Skip to main content

openlogi_core/
hid.rs

1//! Wire-format types for HID++ device control that need no device I/O.
2//!
3//! These are the addressing scheme ([`route`]), read-back snapshots (DPI,
4//! SmartShift), and command/error vocabularies that cross the agent↔GUI IPC
5//! boundary. The actual HID++ transport lives in the sibling `openlogi-hid`
6//! crate, which re-exports every type here unchanged so its existing callers
7//! keep using `openlogi_hid::X`; the GUI (a pure IPC client with no device
8//! I/O of its own) depends on this module directly instead of linking the
9//! HID stack.
10
11pub mod dpi;
12pub mod error;
13pub mod light;
14pub mod pairing;
15pub mod route;
16pub mod smartshift;
17
18pub use dpi::{DpiCapabilities, DpiInfo};
19pub use error::{HidppFeatureErrorKind, HidppOperation, WriteError};
20pub use light::{LightCommand, commands_for_light_settings};
21pub use pairing::{Click, PairingError, PasskeyMethod, ReceiverSelector};
22pub use route::{
23    BOLT_PIDS, DIRECT_DEVICE_INDEX, DeviceRoute, LIGHTSPEED_PIDS, UNIFYING_PIDS, is_receiver_pid,
24    receiver_display_name, speaks_unifying_protocol,
25};
26pub use smartshift::{AUTO_DISENGAGE_PERMANENT, SmartShiftMode, SmartShiftStatus};