Added fallbacks for all Audio Backends

This commit is contained in:
Mou-Ikkai 2021-08-22 01:10:38 -04:00
parent 5e99bff7de
commit ffb2bbaa56
No known key found for this signature in database
GPG key ID: 6EE6073B3CAE11BB
2 changed files with 75 additions and 5 deletions

View file

@ -519,7 +519,7 @@ namespace Ryujinx.Configuration
System.EnablePtc.Value = true; System.EnablePtc.Value = true;
System.EnableFsIntegrityChecks.Value = true; System.EnableFsIntegrityChecks.Value = true;
System.FsGlobalAccessLogMode.Value = 0; System.FsGlobalAccessLogMode.Value = 0;
System.AudioBackend.Value = AudioBackend.OpenAl; System.AudioBackend.Value = AudioBackend.SDL2;
System.MemoryManagerMode.Value = MemoryManagerMode.HostMappedUnsafe; System.MemoryManagerMode.Value = MemoryManagerMode.HostMappedUnsafe;
System.ExpandRam.Value = false; System.ExpandRam.Value = false;
System.IgnoreMissingServices.Value = false; System.IgnoreMissingServices.Value = false;

View file

@ -408,10 +408,38 @@ namespace Ryujinx.Ui
if (SDL2HardwareDeviceDriver.IsSupported) if (SDL2HardwareDeviceDriver.IsSupported)
{ {
deviceDriver = new SDL2HardwareDeviceDriver(); deviceDriver = new SDL2HardwareDeviceDriver();
} }
else else
{ {
Logger.Warning?.Print(LogClass.Audio, "SDL2 audio is not supported, falling back to dummy audio out."); Logger.Warning?.Print(LogClass.Audio, "SDL2 is not supported, trying to fall back to OpenAL.");
if (OpenALHardwareDeviceDriver.IsSupported)
{
Logger.Warning?.Print(LogClass.Audio, "Found OpenAL, changing configuration.");
ConfigurationState.Instance.System.AudioBackend.Value = AudioBackend.OpenAl;
SaveConfig();
deviceDriver = new OpenALHardwareDeviceDriver();
}
else
{
Logger.Warning?.Print(LogClass.Audio, "OpenAL is not supported, trying to fall back to SoundIO.");
}
if (SoundIoHardwareDeviceDriver.IsSupported)
{
Logger.Warning?.Print(LogClass.Audio, "Found SoundIO, changing configuration.");
ConfigurationState.Instance.System.AudioBackend.Value = AudioBackend.SoundIo;
SaveConfig();
deviceDriver = new SoundIoHardwareDeviceDriver();
}
else
{
Logger.Warning?.Print(LogClass.Audio, "SoundIO is not supported, falling back to dummy audio out.");
}
} }
} }
else if (ConfigurationState.Instance.System.AudioBackend.Value == AudioBackend.SoundIo) else if (ConfigurationState.Instance.System.AudioBackend.Value == AudioBackend.SoundIo)
@ -422,7 +450,35 @@ namespace Ryujinx.Ui
} }
else else
{ {
Logger.Warning?.Print(LogClass.Audio, "SoundIO is not supported, falling back to dummy audio out."); Logger.Warning?.Print(LogClass.Audio, "SoundIO is not supported, trying to fall back to SDL2.");
if (SDL2HardwareDeviceDriver.IsSupported)
{
Logger.Warning?.Print(LogClass.Audio, "Found SDL2, changing configuration.");
ConfigurationState.Instance.System.AudioBackend.Value = AudioBackend.SDL2;
SaveConfig();
deviceDriver = new SDL2HardwareDeviceDriver();
}
else
{
Logger.Warning?.Print(LogClass.Audio, "SDL2 is not supported, trying to fall back to OpenAL.");
}
if (OpenALHardwareDeviceDriver.IsSupported)
{
Logger.Warning?.Print(LogClass.Audio, "Found OpenAL, changing configuration.");
ConfigurationState.Instance.System.AudioBackend.Value = AudioBackend.OpenAl;
SaveConfig();
deviceDriver = new OpenALHardwareDeviceDriver();
}
else
{
Logger.Warning?.Print(LogClass.Audio, "OpenAL is not supported, falling back to dummy audio out.");
}
} }
} }
else if (ConfigurationState.Instance.System.AudioBackend.Value == AudioBackend.OpenAl) else if (ConfigurationState.Instance.System.AudioBackend.Value == AudioBackend.OpenAl)
@ -433,8 +489,22 @@ namespace Ryujinx.Ui
} }
else else
{ {
Logger.Warning?.Print(LogClass.Audio, "OpenAL is not supported, trying to fall back to SoundIO."); Logger.Warning?.Print(LogClass.Audio, "OpenAL is not supported, trying to fall back to SDL2.");
if (SDL2HardwareDeviceDriver.IsSupported)
{
Logger.Warning?.Print(LogClass.Audio, "Found SDL2, changing configuration.");
ConfigurationState.Instance.System.AudioBackend.Value = AudioBackend.SDL2;
SaveConfig();
deviceDriver = new SDL2HardwareDeviceDriver();
}
else
{
Logger.Warning?.Print(LogClass.Audio, "SDL2 is not supported, trying to fall back to SoundIO.");
}
if (SoundIoHardwareDeviceDriver.IsSupported) if (SoundIoHardwareDeviceDriver.IsSupported)
{ {
Logger.Warning?.Print(LogClass.Audio, "Found SoundIO, changing configuration."); Logger.Warning?.Print(LogClass.Audio, "Found SoundIO, changing configuration.");