From 791fe70810f0f0f417c74aaff5446551bed78fee Mon Sep 17 00:00:00 2001 From: gdkchan Date: Mon, 9 Jul 2018 22:49:07 -0300 Subject: Allow sample rate of 0 on OpenAudioOut, fix 5.1 sound output (#240) --- Ryujinx.HLE/OsHle/Services/Aud/IAudioOutManager.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'Ryujinx.HLE') diff --git a/Ryujinx.HLE/OsHle/Services/Aud/IAudioOutManager.cs b/Ryujinx.HLE/OsHle/Services/Aud/IAudioOutManager.cs index 54ffa6d9..8c78d1d4 100644 --- a/Ryujinx.HLE/OsHle/Services/Aud/IAudioOutManager.cs +++ b/Ryujinx.HLE/OsHle/Services/Aud/IAudioOutManager.cs @@ -14,6 +14,10 @@ namespace Ryujinx.HLE.OsHle.Services.Aud { private const string DefaultAudioOutput = "DeviceOut"; + private const int DefaultSampleRate = 48000; + + private const int DefaultChannelsCount = 2; + private Dictionary m_Commands; public override IReadOnlyDictionary Commands => m_Commands; @@ -122,7 +126,12 @@ namespace Ryujinx.HLE.OsHle.Services.Aud int SampleRate = Context.RequestData.ReadInt32(); int Channels = Context.RequestData.ReadInt32(); - if (SampleRate != 48000) + if (SampleRate == 0) + { + SampleRate = DefaultSampleRate; + } + + if (SampleRate != DefaultSampleRate) { Context.Ns.Log.PrintWarning(LogClass.Audio, "Invalid sample rate!"); @@ -133,7 +142,7 @@ namespace Ryujinx.HLE.OsHle.Services.Aud if (Channels == 0) { - Channels = 2; + Channels = DefaultChannelsCount; } KEvent ReleaseEvent = new KEvent(); @@ -145,7 +154,7 @@ namespace Ryujinx.HLE.OsHle.Services.Aud IAalOutput AudioOut = Context.Ns.AudioOut; - int Track = AudioOut.OpenTrack(SampleRate, 2, Callback, out AudioFormat Format); + int Track = AudioOut.OpenTrack(SampleRate, Channels, Callback, out AudioFormat Format); MakeObject(Context, new IAudioOut(AudioOut, ReleaseEvent, Track)); -- cgit v1.2.3