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;