From 4762351258438245d039f73d841354444edf3d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20L?= Date: Thu, 9 May 2019 08:29:31 +0200 Subject: [PATCH] obs-frontend-api: Add func to trigger a Studio Mode transition --- UI/api-interface.cpp | 5 +++++ UI/obs-frontend-api/obs-frontend-api.cpp | 6 ++++++ UI/obs-frontend-api/obs-frontend-api.h | 1 + UI/obs-frontend-api/obs-frontend-internal.hpp | 2 ++ docs/sphinx/reference-frontend-api.rst | 6 ++++++ 5 files changed, 20 insertions(+) diff --git a/UI/api-interface.cpp b/UI/api-interface.cpp index a933a945d..e1474b3f2 100644 --- a/UI/api-interface.cpp +++ b/UI/api-interface.cpp @@ -439,6 +439,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 f0b9022cf..5b6a0ada2 100644 --- a/UI/obs-frontend-api/obs-frontend-api.cpp +++ b/UI/obs-frontend-api/obs-frontend-api.cpp @@ -395,6 +395,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 86d53abdc..23b41903c 100644 --- a/UI/obs-frontend-api/obs-frontend-api.h +++ b/UI/obs-frontend-api/obs-frontend-api.h @@ -169,6 +169,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 331f509ab..5f890d80a 100644 --- a/UI/obs-frontend-api/obs-frontend-internal.hpp +++ b/UI/obs-frontend-api/obs-frontend-internal.hpp @@ -87,6 +87,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 3746135ca..5a078934c 100644 --- a/docs/sphinx/reference-frontend-api.rst +++ b/docs/sphinx/reference-frontend-api.rst @@ -473,6 +473,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