G522 LIGHTSPEED headphones support
End-to-end support for the G522 LIGHTSPEED gaming headset (and the
infrastructure that comes with it for related Centurion-bridged headsets).
Hardware/protocol layer:
- centurion.py — CenturionReceiver: lightweight receiver-like wrapper
for Centurion-bridged dongles (PRO X 2 LIGHTSPEED already, G522 added
here). Handles deferred init for 0x50 devices that don't respond to
the initial probe, sub-device feature discovery via bridge, online
detection via ping.
- base.py — Centurion handle state, device_addr probe (256-candidate
scan), 0x50/0x51 frame routing, bridge TX/RX framing.
- hidpp20.py — Centurion sub-device feature query and bridge request
routing. CENTURION_DEVICE_INFO / CENTURION_BATTERY_SOC / CENTURION_*
query helpers in centurion.py for parent + sub paths.
- device.py — Centurion device creation path, USB product-string
fallback for naming, bridge sub-device error handling.
- notifications.py — HEADSET_ADVANCED_PARA_EQ band-change events,
HEADSET_MIC_MUTE state-change events; both route to the relevant
setting via setting_callback.
Headset settings:
- HeadsetEcoMode, HeadsetDoNotDisturb, HeadsetMicMute, HeadsetMicSNR,
HeadsetAINR / HeadsetAINRLevel, HeadsetSidetone, HeadsetMicGain,
HeadsetMixBalance, HeadsetAutoSleep — bool / range / choice settings
for the headset-specific feature pages.
- HeadsetOnboardEQ + HeadsetActiveEQPreset — onboard EQ slot picker
with active-preset tracking via the EQ change event subscription.
- HeadsetAdvancedEQ — multi-band parametric EQ (advanced_para_eq.py
module handles getEQInfos / getCustomEQ / band-change subscription;
setting builds the per-band sliders).
- HeadsetLEDControl + HeadsetLedsPrimary + HeadsetPerZoneLighting —
RGB feature set (0x0620 HEADSET_RGB_HOSTMODE) with shared zone-write
helper (headset_rgb.py) and the G522 layout for the per-key painter
(perkey/layouts/headset_g522.py).
- LogiVoice family (12 settings: NR / NG / Compressor / De-esser /
Depopper / Limiter / HPF, each with state + parameters) — voice
processing pipeline. logivoice.py module handles probe + parsing.
Probes:
- rgb_effects_probe.py — runtime probe for headset RGB feature
variants (0x0621 onboard-effects, 0x0622 signature-effects, 0x0623).
Tests:
- test_base.py / test_device.py / test_hidpp20_complex.py — Centurion
framing, device-creation path, sub-device feature parsing.
- test_setting_templates.py — fixtures for the new headset settings.
Closes pwr-Solaar/Solaar#3181.