Add managed macOS Core Audio voice path
.NET port / test (macos-latest) (push) Canceled after 0s
.NET port / test (ubuntu-24.04) (push) Canceled after 0s
.NET port / test (windows-latest) (push) Canceled after 0s
.NET port / apple-client (push) Canceled after 0s
.NET port / cpp-conformance (push) Canceled after 0s

This commit is contained in:
2026-09-16 22:05:40 +02:00
parent e5ff484cac
commit edd7783a5c
8 changed files with 314 additions and 34 deletions
+12 -6
View File
@@ -851,12 +851,18 @@ Per §8.2. AppKit port, ScreenCaptureKit per-app audio selection, VoiceOver pari
build produced.
**Checkpoint (2026-09-16):** `clients/apple/dotnet/VoiceCat.Mac` is a separate .NET 10
AppKit application that consumes `VoiceCat.Core` directly. Its first shell implements guest
connection, interactive TOFU approval, channel browsing, roster/chat, voice subscription,
disconnect state and native accessibility labels. A macOS CI job stages the shared native
codec/DSP shim and compiles the Apple solution. The existing Swift app remains the release
client until Core Audio input/output, the rest of the account/moderation/settings surface,
ScreenCaptureKit sharing, VoiceOver validation, signing and notarization are complete.
AppKit application that consumes `VoiceCat.Core` directly. It implements guest connection,
interactive TOFU approval, channel browsing, roster/chat, voice subscription, native
accessibility labels and default-device microphone/playback. Core Audio capture is resampled
and converted through `AVAudioConverter` before entering the managed audio engine. Stereo
playback uses `AVAudioSourceNode` and the shared bounded PCM ring; its render callback does
not allocate, lock or block. Voice stream lifetime follows subscription, disconnect and
channel changes. Current Apple API calls compile warning-free against Microsoft's
26.4.10259 macOS reference assembly, and a macOS CI job builds the native codec/DSP shim and
Apple solution. A real macOS device run and listen test remain required. The existing Swift
app remains the release client until saved servers/accounts, selectable devices, the rest of
the moderation/settings surface, ScreenCaptureKit, VoiceOver validation, signing and
notarization are complete.
---