Skip to content

feat: show paired Bluetooth outputs in the main device list - #438

Open
hwong103 wants to merge 2 commits into
ronitsingh10:mainfrom
hwong103:feat/paired-bluetooth-output-selection
Open

hwong103 wants to merge 2 commits into
ronitsingh10:mainfrom
hwong103:feat/paired-bluetooth-output-selection

Conversation

@hwong103

@hwong103 hwong103 commented Sep 4, 2026

Copy link
Copy Markdown

Summary

  • show paired-but-disconnected Bluetooth audio outputs below connected outputs in the normal popup
  • connect a paired device from either the normal list or priority-edit view
  • automatically make the matching CoreAudio device the default output once the Bluetooth connection completes
  • clear pending selection state after the existing 12-second connection window

Why

Previously paired Bluetooth outputs are only visible after entering priority-edit mode. This makes a common output switch harder to discover than the native macOS audio selector.

This is a narrow, current-main alternative to #222. It intentionally leaves the URL-scheme additions from that PR out so the UI behavior can be reviewed independently.

Verification

  • swiftc -parse FineTune/Views/MenuBarPopupView.swift
  • git diff --check

A full Xcode build and hardware test were not run on this machine because full Xcode is not installed; xcodebuild is currently backed only by Command Line Tools.

lucascossitt added a commit to lucascossitt/FineTune that referenced this pull request Sep 17, 2026
…ssues novas

Sem Xcode na máquina: os 4 merges (ronitsingh10#429-fix, ronitsingh10#438, ronitsingh10#413, ronitsingh10#423) estão em
integration-next, typecheckados com as dependências SPM reais mas não
buildados nem testados. integration segue sendo a build instalada.
lucascossitt added a commit to lucascossitt/FineTune that referenced this pull request Sep 17, 2026
…ssues novas

Sem Xcode na máquina: os 4 merges (ronitsingh10#429-fix, ronitsingh10#438, ronitsingh10#413, ronitsingh10#423) estão em
integration-next, typecheckados com as dependências SPM reais mas não
buildados nem testados. integration segue sendo a build instalada.
lucascossitt added a commit to lucascossitt/FineTune that referenced this pull request Sep 17, 2026
…onitsingh10#423

Brings the PR sweep from integration-next without the FX Deck / DJ prototype
(archived at tag arquivo/prototipo-fx-dj):
- ronitsingh10#429 / ronitsingh10#371: silence gate scans every channel (hard-panned audio no longer drops)
- ronitsingh10#438: paired Bluetooth outputs listed with connect-and-select
- ronitsingh10#413: call passthrough, apps capturing the mic are left untapped (ronitsingh10#113, ronitsingh10#404)
- ronitsingh10#423: dynamic headroom preamp in loudness compensation, with the ceiling tests

Conflicts with the PeakLimiter / EQ headroom work: the loudness compensator keeps
ronitsingh10#423's preamp and uses BiquadMath.cascadeMagnitude; the tap protocol and mock
carry both setEQHeadroomMode and update(listeningVolume:digitalGain:).

Also ports the non-FX fix that lived in the FX Deck commit: AudioApp.isStreaming
is snapshotted by the process monitor and used by AudioEngine.apps, and
releaseCallPassthroughTaps walks every known process. Without it the ronitsingh10#413
call-passthrough tests fail against the ronitsingh10#409 silent-app filter.

xcodebuild test (Xcode 27.0): 829 tests, 0 failures.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@hwong103
hwong103 force-pushed the feat/paired-bluetooth-output-selection branch from 342229c to c03a97a Compare September 25, 2026 21:41
Upstream PR runs sit at action_required because GitHub requires maintainer
approval before executing workflows contributed by a fork. Adding
workflow_dispatch lets the same build-and-test job run against our own
fork on demand, for any branch.
hwong103 added a commit to hwong103/FineTune that referenced this pull request Sep 25, 2026
Brings PR ronitsingh10#438 (ronitsingh10#438) into the fork so the installed
build can select paired-but-disconnected Bluetooth outputs from the normal
device list and makes the matching CoreAudio device default once the
connection completes.
@Asatoshi314

Copy link
Copy Markdown

oh i really need this feature😭

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.

2 participants