Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion crates/openlogi-hid/src/route.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,11 @@ pub const BOLT_PIDS: &[u16] = &[0xc548];

/// USB product IDs that identify Logi Unifying receivers. Used by callers that
/// need to construct the correct [`DeviceRoute`] variant from a raw inventory.
pub const UNIFYING_PIDS: &[u16] = &[0xc52b, 0xc532];
///
/// `0xc539` is the Lightspeed gaming receiver: a distinct product line, but it
/// answers the same HID++ 1.0 enumeration and pairing-information registers as
/// Unifying, so it routes as [`DeviceRoute::Unifying`].
pub const UNIFYING_PIDS: &[u16] = &[0xc52b, 0xc532, 0xc539];

impl DeviceRoute {
/// The HID++ device index features are addressed at for this route: the
Expand Down
6 changes: 5 additions & 1 deletion crates/openlogi-hidpp/src/receiver/unifying.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ use crate::{

/// All USB vendor & product ID pairs that are known to identify Unifying
/// receivers.
pub const VPID_PAIRS: &[(u16, u16)] = &[(0x046d, 0xc52b), (0x046d, 0xc532)];
///
/// `046d:c539` is the Lightspeed gaming receiver, which answers the same
/// HID++ 1.0 registers (pairing count, connection state, pairing information)
/// as Unifying receivers.
pub const VPID_PAIRS: &[(u16, u16)] = &[(0x046d, 0xc52b), (0x046d, 0xc532), (0x046d, 0xc539)];

/// All known registers of the Unifying receiver.
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, IntoPrimitive, TryFromPrimitive)]
Expand Down