From 9f3bb4a13f9007ca9020bd054e448a916b85166e Mon Sep 17 00:00:00 2001 From: Palakis Date: Wed, 26 Apr 2017 09:16:37 +0200 Subject: [PATCH] UI: Add front-end API functions to get/modify service This commit adds functions to get, set and save the service and its settings, and is plugged straight into the existing internal functions serving this purpose (Jim: Fixed commit message and missing newline at end of file) Closes jp9000/obs-studio#895 --- UI/api-interface.cpp | 15 +++++++++++++++ UI/obs-frontend-api/obs-frontend-api.cpp | 19 +++++++++++++++++++ UI/obs-frontend-api/obs-frontend-api.h | 4 ++++ UI/obs-frontend-api/obs-frontend-internal.hpp | 5 +++++ 4 files changed, 43 insertions(+) diff --git a/UI/api-interface.cpp b/UI/api-interface.cpp index 4612100f8..025dd2cf0 100644 --- a/UI/api-interface.cpp +++ b/UI/api-interface.cpp @@ -354,6 +354,21 @@ struct OBSStudioAPI : obs_frontend_callbacks { App()->PopUITranslation(); } + void obs_frontend_set_streaming_service(obs_service_t *service) override + { + main->SetService(service); + } + + obs_service_t *obs_frontend_get_streaming_service(void) override + { + return main->GetService(); + } + + void obs_frontend_save_streaming_service(void) override + { + main->SaveService(); + } + void on_load(obs_data_t *settings) override { for (auto cb : saveCallbacks) diff --git a/UI/obs-frontend-api/obs-frontend-api.cpp b/UI/obs-frontend-api/obs-frontend-api.cpp index 6951bc920..030fded56 100644 --- a/UI/obs-frontend-api/obs-frontend-api.cpp +++ b/UI/obs-frontend-api/obs-frontend-api.cpp @@ -317,3 +317,22 @@ void obs_frontend_pop_ui_translation(void) if (callbacks_valid()) c->obs_frontend_pop_ui_translation(); } + +void obs_frontend_set_streaming_service(obs_service_t *service) +{ + if (callbacks_valid()) + c->obs_frontend_set_streaming_service(service); +} + +obs_service_t* obs_frontend_get_streaming_service(void) +{ + return !!callbacks_valid() + ? c->obs_frontend_get_streaming_service() + : nullptr; +} + +void obs_frontend_save_streaming_service(void) +{ + if (callbacks_valid()) + c->obs_frontend_save_streaming_service(); +} diff --git a/UI/obs-frontend-api/obs-frontend-api.h b/UI/obs-frontend-api/obs-frontend-api.h index 7be113cee..99187058c 100644 --- a/UI/obs-frontend-api/obs-frontend-api.h +++ b/UI/obs-frontend-api/obs-frontend-api.h @@ -137,6 +137,10 @@ EXPORT void obs_frontend_push_ui_translation( obs_frontend_translate_ui_cb translate); EXPORT void obs_frontend_pop_ui_translation(void); +EXPORT void obs_frontend_set_streaming_service(obs_service_t *service); +EXPORT obs_service_t* obs_frontend_get_streaming_service(void); +EXPORT void obs_frontend_save_streaming_service(void); + /* ------------------------------------------------------------------------- */ #ifdef __cplusplus diff --git a/UI/obs-frontend-api/obs-frontend-internal.hpp b/UI/obs-frontend-api/obs-frontend-internal.hpp index 5784eeba5..d9e452282 100644 --- a/UI/obs-frontend-api/obs-frontend-internal.hpp +++ b/UI/obs-frontend-api/obs-frontend-internal.hpp @@ -70,6 +70,11 @@ struct obs_frontend_callbacks { obs_frontend_translate_ui_cb translate)=0; virtual void obs_frontend_pop_ui_translation(void)=0; + virtual void obs_frontend_set_streaming_service( + obs_service_t *service)=0; + virtual obs_service_t *obs_frontend_get_streaming_service(void)=0; + virtual void obs_frontend_save_streaming_service()=0; + virtual void on_load(obs_data_t *settings)=0; virtual void on_save(obs_data_t *settings)=0; virtual void on_event(enum obs_frontend_event event)=0;