Three interrelated fixes for G522 LIGHTSPEED headset support: 1. Deferred init for silent 0x50 dongles: When the probe fails and feature discovery returns nothing (dongle silently drops all frames with device_addr=0x00), return a "pending" CenturionReceiver instead of falling through to the broken create_device direct-device path. The listener thread starts reading; when the first unsolicited frame arrives, _unwrap_centurion_frame learns device_addr, the notification handler detects the pending state, and re-runs feature discovery with the correct address — finding the bridge and creating the child device. 2. Centurion protocol version floor: The G522 dongle reports protocol 1.1 (major=1, minor=1), which routes all protocol < 2.0 gates into HID++ 1.0 code paths (battery register reads, etc.) that crash with INVALID_SUB_ID_COMMAND. Centurion devices always use HID++ 2.0 features, so the protocol property now returns 2.0 as a floor for any device with centurion=True. 3. CI segfault fix: Mock probe_centurion_device_addr in the two Centurion device tests so fake handles never reach the real hidapi C extension on macOS. |
||
|---|---|---|
| .. | ||
| hid_parser | ||
| hidapi | ||
| logitech_receiver | ||
| solaar | ||
| test_keysyms | ||
| __init__.py | ||