Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Obs Studio
提交
b240a567
O
Obs Studio
项目概览
小白菜888
/
Obs Studio
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Obs Studio
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b240a567
编写于
3月 05, 2020
作者:
C
Clayton Groeneveld
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
UI: Do not disable t-bar
上级
46dcc9c2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
70 addition
and
45 deletion
+70
-45
UI/window-basic-main-transitions.cpp
UI/window-basic-main-transitions.cpp
+67
-43
UI/window-basic-main.hpp
UI/window-basic-main.hpp
+3
-2
未找到文件。
UI/window-basic-main-transitions.cpp
浏览文件 @
b240a567
...
...
@@ -345,34 +345,20 @@ void OBSBasic::TransitionToScene(OBSSource source, bool force,
if
(
usingPreviewProgram
&&
stillTransitioning
)
goto
cleanup
;
tBarActive
=
false
;
if
(
force
)
{
obs_transition_set
(
transition
,
source
);
if
(
api
)
api
->
on_event
(
OBS_FRONTEND_EVENT_SCENE_CHANGED
);
}
else
{
/* check for scene override */
OBSData
data
=
obs_source_get_private_settings
(
source
);
obs_data_release
(
data
);
const
char
*
trOverrideName
=
obs_data_get_string
(
data
,
"transition"
);
int
duration
=
ui
->
transitionDuration
->
value
();
if
(
trOverrideName
&&
*
trOverrideName
&&
!
quickTransition
)
{
OBSSource
trOverride
=
FindTransition
(
trOverrideName
);
if
(
trOverride
)
{
transition
=
trOverride
;
obs_data_set_default_int
(
data
,
"transition_duration"
,
300
);
/* check for scene override */
OBSSource
trOverride
=
GetOverrideTransition
(
source
);
duration
=
(
int
)
obs_data_get_int
(
data
,
"transition_duration"
);
OverrideTransition
(
trOverride
);
overridingTransition
=
true
;
}
if
(
trOverride
&&
!
overridingTransition
&&
!
quickTransition
)
{
duration
=
GetOverrideTransitionDuration
(
source
);
OverrideTransition
(
trOverride
);
overridingTransition
=
true
;
}
if
(
black
&&
!
prevFTBSource
)
{
...
...
@@ -456,7 +442,6 @@ void OBSBasic::on_transitions_currentIndexChanged(int)
{
OBSSource
transition
=
GetCurrentTransition
();
SetTransition
(
transition
);
EnableTBar
();
}
void
OBSBasic
::
AddTransition
()
...
...
@@ -909,8 +894,19 @@ void OBSBasic::TBarReleased()
tBarActive
=
false
;
EnableTransitionWidgets
(
true
);
}
}
static
bool
ValidTBarTransition
(
OBSSource
transition
)
{
if
(
!
transition
)
return
false
;
QString
id
=
QT_UTF8
(
obs_source_get_id
(
transition
));
tBarDown
=
false
;
if
(
id
==
"cut_transition"
||
id
==
"obs_stinger_transition"
)
return
false
;
return
true
;
}
void
OBSBasic
::
TBarChanged
(
int
value
)
...
...
@@ -918,34 +914,33 @@ void OBSBasic::TBarChanged(int value)
OBSSource
transition
=
obs_get_output_source
(
0
);
obs_source_release
(
transition
);
if
(
!
tBarDown
)
{
if
(
!
tBarActive
)
{
OBSSource
sceneSource
=
GetCurrentSceneSource
();
OBSSource
tBarTr
=
GetOverrideTransition
(
sceneSource
);
if
(
!
ValidTBarTransition
(
tBarTr
))
{
tBarTr
=
GetCurrentTransition
();
if
(
!
ValidTBarTransition
(
tBarTr
))
tBarTr
=
FindTransition
(
obs_source_get_display_name
(
"fade_transition"
));
OverrideTransition
(
tBarTr
);
overridingTransition
=
true
;
transition
=
tBarTr
;
}
obs_transition_set_manual_torque
(
transition
,
8.0
f
,
0.05
f
);
TransitionToScene
(
GetCurrentSceneSource
(),
false
,
false
,
false
,
0
,
true
);
TransitionToScene
(
sceneSource
,
false
,
false
,
false
,
0
,
true
);
tBarActive
=
true
;
tBarDown
=
true
;
}
obs_transition_set_manual_time
(
transition
,
(
float
)
value
/
T_BAR_PRECISION_F
);
}
void
OBSBasic
::
EnableTBar
()
{
if
(
!
previewProgramMode
)
return
;
const
char
*
id
=
obs_source_get_id
(
GetCurrentTransition
());
if
(
!
id
||
strcmp
(
id
,
"cut_transition"
)
==
0
||
strcmp
(
id
,
"obs_stinger_transition"
)
==
0
)
{
tBar
->
setValue
(
0
);
tBar
->
setEnabled
(
false
);
}
else
{
tBar
->
setEnabled
(
true
);
}
}
void
OBSBasic
::
on_modeSwitch_clicked
()
{
SetPreviewProgramMode
(
!
IsPreviewProgramMode
());
...
...
@@ -1318,7 +1313,6 @@ void OBSBasic::SetPreviewProgramMode(bool enabled)
CreateProgramDisplay
();
CreateProgramOptions
();
EnableTBar
();
OBSScene
curScene
=
GetCurrentScene
();
...
...
@@ -1530,3 +1524,33 @@ void OBSBasic::LoadTransitions(obs_data_array_t *transitions)
obs_source_release
(
source
);
}
}
OBSSource
OBSBasic
::
GetOverrideTransition
(
OBSSource
source
)
{
if
(
!
source
)
return
nullptr
;
OBSData
data
=
obs_source_get_private_settings
(
source
);
obs_data_release
(
data
);
const
char
*
trOverrideName
=
obs_data_get_string
(
data
,
"transition"
);
OBSSource
trOverride
=
nullptr
;
if
(
trOverrideName
&&
*
trOverrideName
)
trOverride
=
FindTransition
(
trOverrideName
);
return
trOverride
;
}
int
OBSBasic
::
GetOverrideTransitionDuration
(
OBSSource
source
)
{
if
(
!
source
)
return
300
;
OBSData
data
=
obs_source_get_private_settings
(
source
);
obs_data_release
(
data
);
obs_data_set_default_int
(
data
,
"transition_duration"
,
300
);
return
(
int
)
obs_data_get_int
(
data
,
"transition_duration"
);
}
UI/window-basic-main.hpp
浏览文件 @
b240a567
...
...
@@ -509,8 +509,9 @@ private:
QSlider
*
tBar
;
bool
tBarActive
=
false
;
bool
tBarDown
=
false
;
void
EnableTBar
();
OBSSource
GetOverrideTransition
(
OBSSource
source
);
int
GetOverrideTransitionDuration
(
OBSSource
source
);
public
slots
:
void
DeferSaveBegin
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录