diff --git a/UI/api-interface.cpp b/UI/api-interface.cpp index a2139efa4..30723660a 100644 --- a/UI/api-interface.cpp +++ b/UI/api-interface.cpp @@ -151,6 +151,17 @@ struct OBSStudioAPI : obs_frontend_callbacks { "setValue", Q_ARG(int, duration)); } + void obs_frontend_release_tbar(void) override + { + QMetaObject::invokeMethod(main, "TBarReleased"); + } + + void obs_frontend_set_tbar_position(int position) override + { + QMetaObject::invokeMethod(main, "TBarChanged", + Q_ARG(int, position)); + } + void obs_frontend_get_scene_collections( std::vector &strings) override { diff --git a/UI/obs-frontend-api/obs-frontend-api.cpp b/UI/obs-frontend-api/obs-frontend-api.cpp index 8066666c5..851be20d8 100644 --- a/UI/obs-frontend-api/obs-frontend-api.cpp +++ b/UI/obs-frontend-api/obs-frontend-api.cpp @@ -142,6 +142,18 @@ void obs_frontend_set_transition_duration(int duration) c->obs_frontend_set_transition_duration(duration); } +void obs_frontend_release_tbar(void) +{ + if (callbacks_valid()) + c->obs_frontend_release_tbar(); +} + +void obs_frontend_set_tbar_position(int position) +{ + if (callbacks_valid()) + c->obs_frontend_set_tbar_position(position); +} + char **obs_frontend_get_scene_collections(void) { if (!callbacks_valid()) diff --git a/UI/obs-frontend-api/obs-frontend-api.h b/UI/obs-frontend-api/obs-frontend-api.h index 18e9d4e1c..67802999d 100644 --- a/UI/obs-frontend-api/obs-frontend-api.h +++ b/UI/obs-frontend-api/obs-frontend-api.h @@ -100,6 +100,8 @@ EXPORT obs_source_t *obs_frontend_get_current_transition(void); EXPORT void obs_frontend_set_current_transition(obs_source_t *transition); EXPORT int obs_frontend_get_transition_duration(void); EXPORT void obs_frontend_set_transition_duration(int duration); +EXPORT void obs_frontend_release_tbar(void); +EXPORT void obs_frontend_set_tbar_position(int position); EXPORT char **obs_frontend_get_scene_collections(void); EXPORT char *obs_frontend_get_current_scene_collection(void); diff --git a/UI/obs-frontend-api/obs-frontend-internal.hpp b/UI/obs-frontend-api/obs-frontend-internal.hpp index a5ba063b9..2c8f4a517 100644 --- a/UI/obs-frontend-api/obs-frontend-internal.hpp +++ b/UI/obs-frontend-api/obs-frontend-internal.hpp @@ -23,6 +23,8 @@ struct obs_frontend_callbacks { obs_frontend_set_current_transition(obs_source_t *transition) = 0; virtual int obs_frontend_get_transition_duration(void) = 0; virtual void obs_frontend_set_transition_duration(int duration) = 0; + virtual void obs_frontend_release_tbar(void) = 0; + virtual void obs_frontend_set_tbar_position(int position) = 0; virtual void obs_frontend_get_scene_collections( std::vector &strings) = 0; diff --git a/UI/window-basic-main-transitions.cpp b/UI/window-basic-main-transitions.cpp index ea2d9a8f6..362d0c959 100644 --- a/UI/window-basic-main-transitions.cpp +++ b/UI/window-basic-main-transitions.cpp @@ -915,6 +915,8 @@ void OBSBasic::TBarChanged(int value) OBSSource transition = obs_get_output_source(0); obs_source_release(transition); + tBar->setValue(value); + if (!tBarActive) { OBSSource sceneSource = GetCurrentSceneSource(); OBSSource tBarTr = GetOverrideTransition(sceneSource);