Skip to content

Fix AirPlay output selection and retained tap routing - #478

Open
jonathanenlared wants to merge 1 commit into
ronitsingh10:mainfrom
jonathanenlared:fix/airplay-output-selection
Open

jonathanenlared wants to merge 1 commit into
ronitsingh10:mainfrom
jonathanenlared:fix/airplay-output-selection

Conversation

@jonathanenlared

Copy link
Copy Markdown

Selecting an AirPlay receiver in macOS Control Center can immediately revert the output to the Mac speakers and disconnect the receiver. This was reproduced with a WiiM receiver on FineTune 1.9.0 and macOS 27.0.1, including with no audio playing. Quitting FineTune, connecting AirPlay, and reopening it worked around the problem.

The captured sequence shows the default-output notification arriving before the device-list refresh. FineTune defers the unknown default, then handleDeviceConnected calls restoreConfirmedDefault roughly 50 ms later. The AirPlay receiver disconnects immediately afterward.

This change preserves macOS's output selection when an AirPlay device appears and avoids entering the automatic-switch suppression state for that connection. It also routes retained process taps that temporarily disappear from the app list during output changes, using each tap's actual destination rather than the optimistic routing map to decide whether a switch is needed.

AirPlay connection-time selection now follows macOS rather than FineTune's priority enforcement for that transport. Bluetooth and wired-device connection priority handling is unchanged.

Validation:

  • Debug build with Xcode 27.1 succeeded; local app signature verification passed.
  • Tested on the affected Mac with the WiiM receiver: connection works with FineTune open, and playback follows changes between WiiM and Mac speakers after the retained-tap fix.
  • git diff --check passed.
  • Automated regression tests and broader device coverage have not been run. Crossfade timeouts were observed during testing; this change does not claim to resolve all crossfade glitches.

The local app was built with a separate bundle identity and settings directory for testing; those packaging changes are excluded from this PR.

Fixes #334. Related: #188 and #41.

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.

While FineTune is running I can't connect to airplay or cast speaker

1 participant