Browse Source

obs-frontend-api: Add scripting shutdown event

This event is for when scripts need to know when OBS is exiting.
Currently scripts are destroyed before the current exit event.
Clayton Groeneveld 4 years ago
parent
commit
8d349ea4aa

+ 1 - 0
UI/obs-frontend-api/obs-frontend-api.h

@@ -57,6 +57,7 @@ enum obs_frontend_event {
 	OBS_FRONTEND_EVENT_TBAR_VALUE_CHANGED,
 	OBS_FRONTEND_EVENT_SCENE_COLLECTION_CHANGING,
 	OBS_FRONTEND_EVENT_PROFILE_CHANGING,
+	OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN,
 };
 
 /* ------------------------------------------------------------------------- */

+ 3 - 0
UI/window-basic-main.cpp

@@ -4590,6 +4590,9 @@ void OBSBasic::closeEvent(QCloseEvent *event)
 	ClearExtraBrowserDocks();
 #endif
 
+	if (api)
+		api->on_event(OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN);
+
 	disableSaving++;
 
 	/* Clear all scene data (dialogs, widgets, widget sub-items, scenes,

+ 4 - 0
docs/sphinx/reference-frontend-api.rst

@@ -93,6 +93,10 @@ Structures/Enumerations
 
      Triggered when a profile has been added/removed/renamed.
 
+   - **OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN**
+
+     Triggered when scripts are unloaded when exiting OBS.
+
    - **OBS_FRONTEND_EVENT_EXIT**
 
      Triggered when the program is about to exit.