From 117e32a6fffc30cdb895aa98483af7df353a8dd1 Mon Sep 17 00:00:00 2001 From: mpnico Date: Sat, 11 Sep 2021 22:08:25 +0200 Subject: Implement a "Pause Emulation" option & hotkey (#2428) * Add a "Pause Emulation" option and hotkey Closes Ryujinx#1604 * Refactoring how pause is handled * Applied suggested changes from review * Applied suggested fixes * Pass correct suspend type to threads for suspend/resume * Fix NRE after stoping emulation * Removing SimulateWakeUpMessage call after resuming emulation * Skip suspending non game process * Pause the tickCounter in the ExecutionContext * Refactoring tickCounter pause/resume as suggested * Fix Config migration to add pause hotkey * Fixed pausing only application threads * Fix exiting emulator while paused * Avoid pause/resume while already paused/resumed * Cleanup unused code * Avoid restarting audio if stopping emulation while in pause. * Added suggested changes * Fix ConfigurationState --- ARMeilleure/State/ExecutionContext.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'ARMeilleure/State') diff --git a/ARMeilleure/State/ExecutionContext.cs b/ARMeilleure/State/ExecutionContext.cs index 9a221569..a6f74cd0 100644 --- a/ARMeilleure/State/ExecutionContext.cs +++ b/ARMeilleure/State/ExecutionContext.cs @@ -145,6 +145,16 @@ namespace ARMeilleure.State _nativeContext.SetCounter(0); } + public static void SuspendCounter() + { + _tickCounter.Stop(); + } + + public static void ResumeCounter() + { + _tickCounter.Start(); + } + public void Dispose() { _nativeContext.Dispose(); -- cgit v1.2.3