Solaar/lib/logitech_receiver
Ken Sanislo d1c288dafa AdvancedParaEQ: add V2 wire-format support; keep V0/V1
G522's 0x020D V2 uses a 5-byte band stride
[freq_hi, freq_lo, gain_i8, q_hi, q_lo] and a 13-byte getEQInfos
(gain bounds, gain_steps, format, xy, preset counts). Frequency and
Q are opaque u16 round-trip values — the u16->Hz and u16->Q mappings
need a LGHUB pcap to pin down (documented in
~/ghub/HEADSET_ADVANCED_PARA_EQ_WIRE_PROTOCOL.md).

get_advanced_eq_info now returns a dict with a `version` discriminator
and the union of V0/V1 and V2 fields; step_db is derived from the
gain_min/gain_max/gain_steps triple on V2 (0.05 dB/LSB on G522).

get_advanced_eq_params version-switches: V2 uses parse_v2_bands which
probes header length {5, 2, 0} until the tail is a clean multiple of
5, strips trailing all-zero terminator entries. V0/V1 falls through
to the legacy 3-byte stride so older devices still work.

HeadsetAdvancedEQ.build() no longer requires band_count from
getEQInfos (V2 doesn't advertise it); derives from getCustomEQ length
per the wire-protocol doc's recommendation. V2 band labels use
"Band N" since u16->Hz isn't confirmed. Read-only still — writes
stay gated until pcap confirms the encodings.
2026-04-19 11:30:32 -07:00
..
__init__.py Refactor: Distinguish module from package 2024-09-15 09:18:51 -04:00
advanced_para_eq.py AdvancedParaEQ: add V2 wire-format support; keep V0/V1 2026-04-19 11:30:32 -07:00
base.py Tighten Centurion probe and silence FeaturesArray query spam 2026-04-16 22:46:10 -07:00
base_usb.py cli: allow to change LED settings 2025-12-21 18:03:53 -05:00
centurion.py Fix FeatureNotSupported crash on pending CenturionReceiver 2026-04-16 09:35:57 -07:00
centurion_constants.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
common.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
descriptors.py Add G522 LIGHTSPEED headset support (Centurion 0x50 transport variant) 2026-04-14 10:52:08 -07:00
desktop_notifications.py testing: upgrade desktop notifications tests to take notifications availability into account 2025-01-02 10:47:53 -05:00
device.py Add diagnostic logging for EQ setting build failures 2026-04-19 00:50:20 -07:00
diversion.py rules: remove use of XTest and use uinput in all cases 2026-03-08 20:58:43 -04:00
exceptions.py Use double quotes for module level docstrings 2024-06-02 09:54:21 -04:00
hidpp10.py cli: Fix crash when showing notification flags. (#3070) 2025-12-12 04:54:10 -05:00
hidpp10_constants.py device: Fix crash in NotificationFlag.flag_names when flags is None (#3185) 2026-04-13 12:46:43 -04:00
hidpp20.py AdvancedParaEQ: add V2 wire-format support; keep V0/V1 2026-04-19 11:30:32 -07:00
hidpp20_constants.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
i18n.py Unify imports in logitech package 2024-05-23 16:42:18 -04:00
listener.py Add G522 LIGHTSPEED headset support (Centurion 0x50 transport variant) 2026-04-14 10:52:08 -07:00
notifications.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
onboard_eq.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
receiver.py udev: correctly re-raise access exception 2025-10-17 19:41:23 -04:00
settings.py Don't misreport empty-ACK writes as failed (Setting.write) 2026-04-17 19:49:20 -07:00
settings_new.py settings: add setting for HAPTIC feature 2025-11-12 14:50:46 -05:00
settings_templates.py AdvancedParaEQ: add V2 wire-format support; keep V0/V1 2026-04-19 11:30:32 -07:00
settings_validator.py centurion: support PRO X 2 LIGHTSPEED headphones Centurion features (#3150) 2026-04-14 11:43:23 -04:00
special_keys.py device: add special keys from Logitech 2025-10-16 20:57:15 -04:00