Solaar/lib/logitech_receiver
Ken Sanislo 0d95ec840c Add read-only HeadsetAdvancedEQ (0x020D) display
The G522 exposes AdvancedParaEQ (0x020D), a different EQ feature than
the PRO X 2's OnboardEQ (0x0636). Key differences:

- 3-byte-per-band wire format ([freq_hi, freq_lo, gain]) vs 0x0636's
  4-byte-per-band ([freq_hi, freq_lo, gain, Q])
- Device handles biquad coefficient computation — no host-side DSP math
- Has explicit direction (playback/capture), multiple preset slots with
  getActiveEQ/setActiveEQ for switching, preset friendly names

Adds new advanced_para_eq.py module with getInfos, getActiveEQ, and
getCustomEQ helpers (function 0, 3, 1 respectively). Re-exported from
hidpp20.py following the onboard_eq.py pattern.

HeadsetAdvancedEQ setting displays the currently-active playback EQ
using the same RangeFieldSetting + PackedRangeValidator UI pattern as
HeadsetOnboardEQ, so the graphic EQ widget looks the same.

**Writes are intentionally disabled for now** — prepare_write returns
None and write() logs "read-only mode" without sending anything. This
lets us verify the wire format matches the protocol doc against real
hardware before risking a write that could misconfigure the DSP. Once
read output is confirmed sensible, we'll wire up setCustomEQ (function
2) to enable writes.
2026-04-17 17:44:33 -07:00
..
__init__.py
…
advanced_para_eq.py Add read-only HeadsetAdvancedEQ (0x020D) display 2026-04-17 17:44:33 -07:00
base.py Tighten Centurion probe and silence FeaturesArray query spam 2026-04-16 22:46:10 -07:00
base_usb.py
…
centurion.py
…
centurion_constants.py
…
common.py
…
descriptors.py
…
desktop_notifications.py
…
device.py Guard Centurion feature lookups against HID++ 2.0 enum collisions 2026-04-16 23:36:47 -07:00
diversion.py
…
exceptions.py
…
hidpp10.py cli: Fix crash when showing notification flags. (#3070) 2025-12-12 04:54:10 -05:00
hidpp10_constants.py
…
hidpp20.py Add read-only HeadsetAdvancedEQ (0x020D) display 2026-04-17 17:44:33 -07:00
hidpp20_constants.py
…
i18n.py Unify imports in logitech package 2024-05-23 16:42:18 -04:00
listener.py
…
notifications.py
…
onboard_eq.py
…
receiver.py
…
settings.py
…
settings_new.py
…
settings_templates.py Add read-only HeadsetAdvancedEQ (0x020D) display 2026-04-17 17:44:33 -07:00
settings_validator.py
…
special_keys.py
…