diff --git a/UI/api-interface.cpp b/UI/api-interface.cpp index a29d66b26..07a991a0d 100644 --- a/UI/api-interface.cpp +++ b/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; diff --git a/UI/obs-frontend-api/obs-frontend-api.cpp b/UI/obs-frontend-api/obs-frontend-api.cpp index 0539a3e10..8d9806ba2 100644 --- a/UI/obs-frontend-api/obs-frontend-api.cpp +++ b/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()) diff --git a/UI/obs-frontend-api/obs-frontend-api.h b/UI/obs-frontend-api/obs-frontend-api.h index b2d28cb12..c41111d3e 100644 --- a/UI/obs-frontend-api/obs-frontend-api.h +++ b/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); diff --git a/UI/obs-frontend-api/obs-frontend-internal.hpp b/UI/obs-frontend-api/obs-frontend-internal.hpp index 05dcd135e..8eb2f8f6d 100644 --- a/UI/obs-frontend-api/obs-frontend-internal.hpp +++ b/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; diff --git a/docs/sphinx/reference-frontend-api.rst b/docs/sphinx/reference-frontend-api.rst index e9d08422f..3b5b86db6 100644 --- a/docs/sphinx/reference-frontend-api.rst +++ b/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