From 4c1c8801a51335aa4a74e7db0868b861803d0c61 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sat, 6 Jul 2019 13:09:27 -0400 Subject: am: Add RequestExit event to AppletMessageQueue Tested against libnx, signals to games to begin cleanup. --- src/core/hle/service/am/am.cpp | 4 ++++ src/core/hle/service/am/am.h | 2 ++ 2 files changed, 6 insertions(+) (limited to 'src/core/hle/service') diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index 6c594dcaf..c98fefdeb 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp @@ -550,6 +550,10 @@ void AppletMessageQueue::OperationModeChanged() { on_operation_mode_changed.writable->Signal(); } +void AppletMessageQueue::RequestExit() { + PushMessage(AppletMessage::ExitRequested); +} + ICommonStateGetter::ICommonStateGetter(Core::System& system, std::shared_ptr msg_queue) : ServiceFramework("ICommonStateGetter"), system(system), msg_queue(std::move(msg_queue)) { diff --git a/src/core/hle/service/am/am.h b/src/core/hle/service/am/am.h index 28f870302..9d2c8b2ca 100644 --- a/src/core/hle/service/am/am.h +++ b/src/core/hle/service/am/am.h @@ -45,6 +45,7 @@ class AppletMessageQueue { public: enum class AppletMessage : u32 { NoMessage = 0, + ExitRequested = 4, FocusStateChanged = 15, OperationModeChanged = 30, PerformanceModeChanged = 31, @@ -59,6 +60,7 @@ public: AppletMessage PopMessage(); std::size_t GetMessageCount() const; void OperationModeChanged(); + void RequestExit(); private: std::queue messages; -- cgit v1.2.3