Solaar/lib/solaar/cli
Ken Sanislo 0cc048cdf6 Add G560 audio features: bass level, working equalizer, jack detection
Add the BassTone feature (0x8305) as a 0-100 slider — subwoofer level
on the G560, hardware-verified.

Fix the Equalizer setting (0x8310), which never built on devices
reporting signed dB limits: getEQInfo dbMin/dbMax are signed (the G560
reports -20..+6) but were unpacked unsigned, tripping the validator's
min/max assertion.  The reported bounds are also exclusive — the G560
NACKs writes at exactly dbMin/dbMax — so present dbMin+1..dbMax-1.
Render with the vertical-slider graphic EQ panel.  Note: on the G560
the stored curve round-trips but has no audible effect on USB
playback; whether it shapes the aux input path is still unknown.

Rename HEADSET_OUT (0x8320) to JACK_DETECTION: the feature reports
3.5mm jack presence (getJackStatus statuses/available bitmasks), it
is not an output-mode control.

Fix solaar show sending little-endian feature IDs to ROOT.getFeature,
which silently dropped the flags/version column for every
non-palindromic feature ID and displayed unknown features byte-swapped
(the G560's 0x8305 rendered as "unknown:8305 {0583}").
2026-07-16 23:07:01 -07:00
..
__init__.py device: Support per-slot unpair on Lightspeed receivers (CLI + GUI) (#3183) 2026-04-17 09:34:58 -04:00
config.py cli/config: wrap argv in list for Gio.Application.run (PyGObject 3.56) 2026-05-28 08:19:06 -04:00
pair.py cli: correctly handle timeout in Bolt discovery 2026-01-18 14:21:56 -05:00
probe.py Rewrote string concatenation/format with f strings 2025-01-29 08:40:14 -05:00
profiles.py cli: better error messages for solaar profile 2025-11-19 13:50:54 -05:00
show.py Add G560 audio features: bass level, working equalizer, jack detection 2026-07-16 23:07:01 -07:00
unpair.py device: Support per-slot unpair on Lightspeed receivers (CLI + GUI) (#3183) 2026-04-17 09:34:58 -04:00