aboutsummaryrefslogtreecommitdiff
path: root/src/core/core.h
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2021-09-25 23:14:49 -0400
committerMorph <39850852+Morph1984@users.noreply.github.com>2021-10-01 23:39:54 -0400
commitd8467ca6c0eff0ea0fc619043893abb0a2cebf9f (patch)
treea41258ebddf8f93e8e3c3259157584af1ac0781f /src/core/core.h
parent3a33519598063175fb7c16c67e32784ed97d5017 (diff)
core: Add Exit and ExitCallback
This allows ISelfController::Exit to stop the currently running application. This is typically used by homebrew to exit back to the homebrew menu after calling consoleExit with libnx.
Diffstat (limited to 'src/core/core.h')
-rw-r--r--src/core/core.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/core/core.h b/src/core/core.h
index 715ab88e7f..a796472b22 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -387,6 +387,18 @@ public:
*/
void ExecuteProgram(std::size_t program_index);
+ /// Type used for the frontend to designate a callback for System to exit the application.
+ using ExitCallback = std::function<void()>;
+
+ /**
+ * Registers a callback from the frontend for System to exit the application.
+ * @param callback Callback from the frontend to exit the application.
+ */
+ void RegisterExitCallback(ExitCallback&& callback);
+
+ /// Instructs the frontend to exit the application.
+ void Exit();
+
/// Applies any changes to settings to this core instance.
void ApplySettings();