From 5e741b8a5b227a6e46db0ce99ff72ad8d945598f Mon Sep 17 00:00:00 2001 From: Matt Morrissette Date: Wed, 6 Dec 2017 18:12:19 -0800 Subject: [PATCH] UI: Add frontend API funcs for enabling/disable preview Closes jp9000/obs-studio#1106 --- UI/api-interface.cpp | 11 +++++++++++ UI/obs-frontend-api/obs-frontend-api.cpp | 13 +++++++++++++ UI/obs-frontend-api/obs-frontend-api.h | 3 +++ UI/obs-frontend-api/obs-frontend-internal.hpp | 2 ++ 4 files changed, 29 insertions(+) diff --git a/UI/api-interface.cpp b/UI/api-interface.cpp index b7d0a8c3b..a580b721c 100644 --- a/UI/api-interface.cpp +++ b/UI/api-interface.cpp @@ -405,6 +405,17 @@ struct OBSStudioAPI : obs_frontend_callbacks { main->SetPreviewProgramMode(enable); } + bool obs_frontend_preview_enabled(void) override + { + return main->previewEnabled; + } + + void obs_frontend_set_preview_enabled(bool enable) override + { + if (main->previewEnabled != enable) + main->EnablePreviewDisplay(enable); + } + obs_source_t *obs_frontend_get_current_preview_scene(void) override { OBSSource source = nullptr; diff --git a/UI/obs-frontend-api/obs-frontend-api.cpp b/UI/obs-frontend-api/obs-frontend-api.cpp index 9c1b421d6..ee47fff00 100644 --- a/UI/obs-frontend-api/obs-frontend-api.cpp +++ b/UI/obs-frontend-api/obs-frontend-api.cpp @@ -369,6 +369,19 @@ void obs_frontend_set_preview_program_mode(bool enable) c->obs_frontend_set_preview_program_mode(enable); } +void obs_frontend_set_preview_enabled(bool enable) +{ + if (callbacks_valid()) + c->obs_frontend_set_preview_enabled(enable); +} + +bool obs_frontend_preview_enabled(void) +{ + return !!callbacks_valid() + ? c->obs_frontend_preview_enabled() + : false; +} + obs_source_t *obs_frontend_get_current_preview_scene(void) { return !!callbacks_valid() diff --git a/UI/obs-frontend-api/obs-frontend-api.h b/UI/obs-frontend-api/obs-frontend-api.h index bd504a7fe..05483ff53 100644 --- a/UI/obs-frontend-api/obs-frontend-api.h +++ b/UI/obs-frontend-api/obs-frontend-api.h @@ -165,6 +165,9 @@ 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_set_preview_enabled(bool enable); +EXPORT bool obs_frontend_preview_enabled(void); + EXPORT obs_source_t *obs_frontend_get_current_preview_scene(void); EXPORT void obs_frontend_set_current_preview_scene(obs_source_t *scene); diff --git a/UI/obs-frontend-api/obs-frontend-internal.hpp b/UI/obs-frontend-api/obs-frontend-internal.hpp index 575753d9a..0749d2ed5 100644 --- a/UI/obs-frontend-api/obs-frontend-internal.hpp +++ b/UI/obs-frontend-api/obs-frontend-internal.hpp @@ -83,6 +83,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 bool obs_frontend_preview_enabled(void)=0; + virtual void obs_frontend_set_preview_enabled(bool enable)=0; virtual obs_source_t *obs_frontend_get_current_preview_scene(void)=0; virtual void obs_frontend_set_current_preview_scene(obs_source_t *scene)=0;