提交 a03189bb 编写于 作者: T tt2468 提交者: jp9000

UI: Add TBar controls to obs-frontend-api

Adds `obs_frontend_set_tbar_position` and `obs_frontend_release_tbar`,
which allow plugins and scripts to control the tbar in OBS.
This specific change is required for the `SetTBarPosition`
request to be added to obs-websocket.
上级 39c3b3d6
......@@ -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<std::string> &strings) override
{
......
......@@ -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())
......
......@@ -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);
......
......@@ -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<std::string> &strings) = 0;
......
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册