Browse Source

Merge pull request #1873 from Palakis/feature/frontend-api-studio-mode-transition

obs-frontend-api: Add method to trigger a Studio Mode transition
Jim 6 years ago
parent
commit
3a3cfce29d

+ 5 - 0
UI/api-interface.cpp

@@ -450,6 +450,11 @@ struct OBSStudioAPI : obs_frontend_callbacks {
 		main->SetPreviewProgramMode(enable);
 	}
 
+	void obs_frontend_preview_program_trigger_transition(void) override
+	{
+		QMetaObject::invokeMethod(main, "TransitionClicked");
+	}
+
 	bool obs_frontend_preview_enabled(void) override
 	{
 		return main->previewEnabled;

+ 6 - 0
UI/obs-frontend-api/obs-frontend-api.cpp

@@ -408,6 +408,12 @@ void obs_frontend_set_preview_program_mode(bool enable)
 		c->obs_frontend_set_preview_program_mode(enable);
 }
 
+void obs_frontend_preview_program_trigger_transition(void)
+{
+	if (callbacks_valid())
+		c->obs_frontend_preview_program_trigger_transition();
+}
+
 void obs_frontend_set_preview_enabled(bool enable)
 {
 	if (callbacks_valid())

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

@@ -171,6 +171,7 @@ EXPORT void obs_frontend_save_streaming_service(void);
 
 EXPORT bool obs_frontend_preview_program_mode_active(void);
 EXPORT void obs_frontend_set_preview_program_mode(bool enable);
+EXPORT void obs_frontend_preview_program_trigger_transition(void);
 
 EXPORT void obs_frontend_set_preview_enabled(bool enable);
 EXPORT bool obs_frontend_preview_enabled(void);

+ 2 - 0
UI/obs-frontend-api/obs-frontend-internal.hpp

@@ -89,6 +89,8 @@ struct obs_frontend_callbacks {
 
 	virtual bool obs_frontend_preview_program_mode_active(void)=0;
 	virtual void obs_frontend_set_preview_program_mode(bool enable)=0;
+	virtual void obs_frontend_preview_program_trigger_transition(void)=0;
+
 	virtual bool obs_frontend_preview_enabled(void)=0;
 	virtual void obs_frontend_set_preview_enabled(bool enable)=0;
 

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

@@ -485,6 +485,12 @@ Functions
 
 ---------------------------------------
 
+.. function:: void obs_frontend_preview_program_trigger_transition(void)
+
+   Triggers a preview-to-program transition if studio mode is active.
+
+---------------------------------------
+
 .. function:: obs_source_t *obs_frontend_get_current_preview_scene(void)
 
    :return: A new reference to the current preview scene if studio mode