Add macOS native Audio Backend

Adds Ryujinx.Audio.Backends.Apple, which is a AudioToolbox based audio backend for macOS (and by extension iOS). Also added in MeloNX.

* Expose AudioToolkit in UI

Co-authored-by: GreemDev <greemdev@ryujinx.app>
This commit is contained in:
Stossy11
2026-01-31 02:25:41 -06:00
committed by KeatonTheBot
co-authored by GreemDev
parent 061bfb4074
commit 3cdae775b1
12 changed files with 647 additions and 1 deletions
+7
View File
@@ -5,6 +5,7 @@ using Avalonia.Input;
using Avalonia.Threading;
using Gommon;
using LibHac.Tools.FsSystem;
using Ryujinx.Audio.Backends.Apple;
using Ryujinx.Audio.Backends.Dummy;
using Ryujinx.Audio.Backends.OpenAL;
using Ryujinx.Audio.Backends.SDL2;
@@ -968,6 +969,9 @@ namespace Ryujinx.Ava
AudioBackend.Dummy,
};
if (OperatingSystem.IsMacOS())
availableBackends.Insert(0, AudioBackend.AudioToolbox);
AudioBackend preferredBackend = ConfigurationState.Instance.System.AudioBackend.Value;
for (int i = 0; i < availableBackends.Count; i++)
@@ -1001,6 +1005,9 @@ namespace Ryujinx.Ava
deviceDriver = currentBackend switch
{
#pragma warning disable CA1416 // Platform compatibility is enforced in AppleHardwareDeviceDriver.IsSupported, before any potentially platform-sensitive code can run.
AudioBackend.AudioToolbox => InitializeAudioBackend<AppleHardwareDeviceDriver>(AudioBackend.AudioToolbox, nextBackend),
#pragma warning restore CA1416
AudioBackend.SDL2 => InitializeAudioBackend<SDL2HardwareDeviceDriver>(AudioBackend.SDL2, nextBackend),
AudioBackend.SoundIo => InitializeAudioBackend<SoundIoHardwareDeviceDriver>(AudioBackend.SoundIo, nextBackend),
AudioBackend.OpenAl => InitializeAudioBackend<OpenALHardwareDeviceDriver>(AudioBackend.OpenAl, nextBackend),