From fe9d5a1981cfe43c4535b7473064c9858addb3b5 Mon Sep 17 00:00:00 2001 From: mpnico Date: Sat, 18 Sep 2021 14:31:44 +0200 Subject: Fix problems added by Pause (#2645) * Disable Pause/Resume menu instead of trying to hide them * Fix Resume menu being active before renderer starts * Fix emulator not being able to close properly --- Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs | 8 ++++++++ Ryujinx.Audio/Renderer/Server/AudioRendererManager.cs | 18 ++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) (limited to 'Ryujinx.Audio/Renderer/Server') diff --git a/Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs b/Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs index 6aed3c5d..afbe56a6 100644 --- a/Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs +++ b/Ryujinx.Audio/Renderer/Server/AudioRenderSystem.cs @@ -395,6 +395,14 @@ namespace Ryujinx.Audio.Renderer.Server Logger.Info?.Print(LogClass.AudioRenderer, $"Stopped renderer id {_sessionId}"); } + public void Disable() + { + lock (_lock) + { + _isActive = false; + } + } + public ResultCode Update(Memory output, Memory performanceOutput, ReadOnlyMemory input) { lock (_lock) diff --git a/Ryujinx.Audio/Renderer/Server/AudioRendererManager.cs b/Ryujinx.Audio/Renderer/Server/AudioRendererManager.cs index f471a2e7..7518c447 100644 --- a/Ryujinx.Audio/Renderer/Server/AudioRendererManager.cs +++ b/Ryujinx.Audio/Renderer/Server/AudioRendererManager.cs @@ -219,7 +219,21 @@ namespace Ryujinx.Audio.Renderer.Server /// public void StopSendingCommands() { - _isRunning = false; + lock (_sessionLock) + { + foreach (AudioRenderSystem renderer in _sessions) + { + renderer?.Disable(); + } + } + + lock (_audioProcessorLock) + { + if (_isRunning) + { + StopLocked(); + } + } } /// @@ -234,7 +248,7 @@ namespace Ryujinx.Audio.Renderer.Server { lock (_sessionLock) { - foreach(AudioRenderSystem renderer in _sessions) + foreach (AudioRenderSystem renderer in _sessions) { renderer?.SendCommands(); } -- cgit v1.2.3