Skip to content

Collapse stereo pairs into a single leader-controlled speaker#6

Merged
gaelsimon merged 6 commits into
mainfrom
fix/stereo-pair-collapse
Jun 19, 2026
Merged

Collapse stereo pairs into a single leader-controlled speaker#6
gaelsimon merged 6 commits into
mainfrom
fix/stereo-pair-collapse

Conversation

@gaelsimon

@gaelsimon gaelsimon commented Jun 18, 2026

Copy link
Copy Markdown
Owner

A HEOS stereo pair came back as two players plus a group, shown as two separate rows. This treats a pair as one leader-controlled speaker, while keeping genuine multi-room groups expanded.

How it tells them apart: the HEOS CLI gives no signal, but the AIOS GroupControl UPnP service reports each member's audio channel (LEFT/RIGHT for a stereo/surround bond, NORMAL for a plain group). After groups load we read those channels per member (best-effort, non-blocking) and expand only the confirmed all-NORMAL groups. Any failed or missing read leaves the group collapsed, so a stereo pair never regresses to two rows.

  • New GroupControl UPnP client (mirrors the existing ACT client), mock-tested against LEFT/RIGHT and NORMAL responses.
  • Collapsed groups show one leader row named after the group; selection and playback events target the leader. Multi-room members stay individually listed and selectable.
  • Selected-speaker name in the toolbar now matches the list (group name when collapsed).

Fixes #3 and #4 (one row per pair; consistent codec/bitrate since metadata reads off the leader).

Note: validated with mocked UPnP responses built from the real device SCPD; the exact live response of an actual pair couldn't be captured (single device on hand), so the safe fallback is collapse.

Closes #3
Closes #4

@sonarqubecloud

Copy link
Copy Markdown

@gaelsimon gaelsimon merged commit e080688 into main Jun 19, 2026
3 checks passed
gaelsimon added a commit that referenced this pull request Jun 19, 2026
@gaelsimon gaelsimon deleted the fix/stereo-pair-collapse branch June 19, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stereo pair reports different codec/bitrate depending on selected speaker Stereo pair shown as individual speakers in the main list

1 participant