Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
尘离序散
obs-studio
提交
64598732
O
obs-studio
项目概览
尘离序散
/
obs-studio
与 Fork 源项目一致
从无法访问的项目Fork
通知
30
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
obs-studio
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
64598732
编写于
7月 16, 2019
作者:
C
Clayton Groeneveld
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
frontend-tools: Add option to pause output timer when rec is paused
上级
8af49016
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
269 addition
and
212 deletion
+269
-212
UI/frontend-plugins/frontend-tools/data/locale/en-US.ini
UI/frontend-plugins/frontend-tools/data/locale/en-US.ini
+1
-0
UI/frontend-plugins/frontend-tools/forms/output-timer.ui
UI/frontend-plugins/frontend-tools/forms/output-timer.ui
+227
-211
UI/frontend-plugins/frontend-tools/output-timer.cpp
UI/frontend-plugins/frontend-tools/output-timer.cpp
+37
-1
UI/frontend-plugins/frontend-tools/output-timer.hpp
UI/frontend-plugins/frontend-tools/output-timer.hpp
+4
-0
未找到文件。
UI/frontend-plugins/frontend-tools/data/locale/en-US.ini
浏览文件 @
64598732
...
...
@@ -24,6 +24,7 @@ OutputTimer.Stream.StoppingIn="Streaming stopping in:"
OutputTimer.Record.StoppingIn
=
"Recording stopping in:"
OutputTimer.Stream.EnableEverytime
=
"Enable streaming timer every time"
OutputTimer.Record.EnableEverytime
=
"Enable recording timer every time"
OutputTimer.Record.PauseTimer
=
"Pause timer when recording is paused"
Scripts
=
"Scripts"
LoadedScripts
=
"Loaded Scripts"
...
...
UI/frontend-plugins/frontend-tools/forms/output-timer.ui
浏览文件 @
64598732
<?xml version="1.0" encoding="UTF-8"?>
<ui
version=
"4.0"
>
<class>
OutputTimer
</class>
<widget
class=
"QDialog"
name=
"OutputTimer"
>
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
600
</width>
<height>
200
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
<string>
OutputTimer
</string>
</property>
<layout
class=
"QGridLayout"
name=
"timerLayout"
>
<item
row=
"0"
column=
"1"
>
<widget
class=
"QLabel"
name=
"streamingLabel"
>
<property
name=
"text"
>
<string>
OutputTimer.Stream
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"2"
>
<widget
class=
"QSpinBox"
name=
"streamingTimerHours"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
24
</number>
</property>
<property
name=
"value"
>
<number>
0
</number>
</property>
</widget>
</item>
<item
row=
"0"
column=
"3"
>
<widget
class=
"QLabel"
name=
"hoursLabel"
>
<property
name=
"text"
>
<string>
Hours
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"4"
>
<widget
class=
"QSpinBox"
name=
"streamingTimerMinutes"
>
<property
name=
"maximum"
>
<number>
59
</number>
</property>
<property
name=
"value"
>
<number>
0
</number>
</property>
</widget>
</item>
<item
row=
"0"
column=
"5"
>
<widget
class=
"QLabel"
name=
"minutesLabel"
>
<property
name=
"text"
>
<string>
Minutes
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"6"
>
<widget
class=
"QSpinBox"
name=
"streamingTimerSeconds"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
59
</number>
</property>
<property
name=
"value"
>
<number>
30
</number>
</property>
</widget>
</item>
<item
row=
"0"
column=
"7"
>
<widget
class=
"QLabel"
name=
"secondsLabel"
>
<property
name=
"text"
>
<string>
Seconds
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"8"
>
<widget
class=
"QPushButton"
name=
"outputTimerStream"
>
<property
name=
"text"
>
<string>
Start
</string>
</property>
</widget>
</item>
<item
row=
"2"
column=
"1"
>
<widget
class=
"QLabel"
name=
"streamStoppingIn"
>
<property
name=
"text"
>
<string>
OutputTimer.Stream.StoppingIn
</string>
</property>
</widget>
</item>
<item
row=
"2"
column=
"2"
>
<widget
class=
"QLabel"
name=
"streamTime"
>
<property
name=
"text"
>
<string>
00:00:00
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"1"
>
<widget
class=
"QLabel"
name=
"recordingLabel"
>
<property
name=
"text"
>
<string>
OutputTimer.Record
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"2"
>
<widget
class=
"QSpinBox"
name=
"recordingTimerHours"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
24
</number>
</property>
<property
name=
"value"
>
<number>
0
</number>
</property>
</widget>
</item>
<item
row=
"3"
column=
"3"
>
<widget
class=
"QLabel"
name=
"hoursLabel_2"
>
<property
name=
"text"
>
<string>
Hours
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"4"
>
<widget
class=
"QSpinBox"
name=
"recordingTimerMinutes"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
59
</number>
</property>
<property
name=
"value"
>
<number>
0
</number>
</property>
</widget>
</item>
<item
row=
"3"
column=
"5"
>
<widget
class=
"QLabel"
name=
"minutesLabel_2"
>
<property
name=
"text"
>
<string>
Minutes
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"6"
>
<widget
class=
"QSpinBox"
name=
"recordingTimerSeconds"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
59
</number>
</property>
<property
name=
"value"
>
<number>
30
</number>
</property>
</widget>
</item>
<item
row=
"3"
column=
"7"
>
<widget
class=
"QLabel"
name=
"secondsLabel_2"
>
<property
name=
"text"
>
<string>
Seconds
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"8"
>
<widget
class=
"QPushButton"
name=
"outputTimerRecord"
>
<property
name=
"text"
>
<string>
Start
</string>
</property>
</widget>
</item>
<item
row=
"5"
column=
"1"
>
<widget
class=
"QLabel"
name=
"recordStoppingIn"
>
<property
name=
"text"
>
<string>
OutputTimer.Record.StoppingIn
</string>
</property>
</widget>
</item>
<item
row=
"5"
column=
"2"
>
<widget
class=
"QLabel"
name=
"recordTime"
>
<property
name=
"text"
>
<string>
00:00:00
</string>
</property>
</widget>
</item>
<item
row=
"1"
column=
"1"
colspan=
"3"
>
<widget
class=
"QCheckBox"
name=
"autoStartStreamTimer"
>
<property
name=
"text"
>
<string>
OutputTimer.Stream.EnableEverytime
</string>
</property>
</widget>
</item>
<item
row=
"4"
column=
"1"
colspan=
"3"
>
<widget
class=
"QCheckBox"
name=
"autoStartRecordTimer"
>
<property
name=
"text"
>
<string>
OutputTimer.Record.EnableEverytime
</string>
</property>
</widget>
</item>
<item
row=
"6"
column=
"8"
>
<widget
class=
"QDialogButtonBox"
name=
"buttonBox"
>
<property
name=
"standardButtons"
>
<set>
QDialogButtonBox::Close
</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources
/>
<connections
/>
<widget
class=
"QDialog"
name=
"OutputTimer"
>
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
697
</width>
<height>
240
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
<string>
OutputTimer
</string>
</property>
<layout
class=
"QGridLayout"
name=
"timerLayout"
>
<item
row=
"0"
column=
"3"
>
<widget
class=
"QLabel"
name=
"hoursLabel"
>
<property
name=
"text"
>
<string>
Hours
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"2"
>
<widget
class=
"QSpinBox"
name=
"recordingTimerHours"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
24
</number>
</property>
<property
name=
"value"
>
<number>
0
</number>
</property>
</widget>
</item>
<item
row=
"0"
column=
"6"
>
<widget
class=
"QSpinBox"
name=
"streamingTimerSeconds"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
59
</number>
</property>
<property
name=
"value"
>
<number>
30
</number>
</property>
</widget>
</item>
<item
row=
"0"
column=
"8"
>
<widget
class=
"QPushButton"
name=
"outputTimerStream"
>
<property
name=
"text"
>
<string>
Start
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"4"
>
<widget
class=
"QSpinBox"
name=
"recordingTimerMinutes"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
59
</number>
</property>
<property
name=
"value"
>
<number>
0
</number>
</property>
</widget>
</item>
<item
row=
"0"
column=
"1"
>
<widget
class=
"QLabel"
name=
"streamingLabel"
>
<property
name=
"text"
>
<string>
OutputTimer.Stream
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"4"
>
<widget
class=
"QSpinBox"
name=
"streamingTimerMinutes"
>
<property
name=
"maximum"
>
<number>
59
</number>
</property>
<property
name=
"value"
>
<number>
0
</number>
</property>
</widget>
</item>
<item
row=
"3"
column=
"8"
>
<widget
class=
"QPushButton"
name=
"outputTimerRecord"
>
<property
name=
"text"
>
<string>
Start
</string>
</property>
</widget>
</item>
<item
row=
"6"
column=
"1"
>
<widget
class=
"QLabel"
name=
"recordStoppingIn"
>
<property
name=
"text"
>
<string>
OutputTimer.Record.StoppingIn
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"7"
>
<widget
class=
"QLabel"
name=
"secondsLabel_2"
>
<property
name=
"text"
>
<string>
Seconds
</string>
</property>
</widget>
</item>
<item
row=
"2"
column=
"2"
>
<widget
class=
"QLabel"
name=
"streamTime"
>
<property
name=
"text"
>
<string>
00:00:00
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"5"
>
<widget
class=
"QLabel"
name=
"minutesLabel_2"
>
<property
name=
"text"
>
<string>
Minutes
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"2"
>
<widget
class=
"QSpinBox"
name=
"streamingTimerHours"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
24
</number>
</property>
<property
name=
"value"
>
<number>
0
</number>
</property>
</widget>
</item>
<item
row=
"6"
column=
"2"
>
<widget
class=
"QLabel"
name=
"recordTime"
>
<property
name=
"text"
>
<string>
00:00:00
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"5"
>
<widget
class=
"QLabel"
name=
"minutesLabel"
>
<property
name=
"text"
>
<string>
Minutes
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"1"
>
<widget
class=
"QLabel"
name=
"recordingLabel"
>
<property
name=
"text"
>
<string>
OutputTimer.Record
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"6"
>
<widget
class=
"QSpinBox"
name=
"recordingTimerSeconds"
>
<property
name=
"minimum"
>
<number>
0
</number>
</property>
<property
name=
"maximum"
>
<number>
59
</number>
</property>
<property
name=
"value"
>
<number>
30
</number>
</property>
</widget>
</item>
<item
row=
"1"
column=
"1"
colspan=
"3"
>
<widget
class=
"QCheckBox"
name=
"autoStartStreamTimer"
>
<property
name=
"text"
>
<string>
OutputTimer.Stream.EnableEverytime
</string>
</property>
</widget>
</item>
<item
row=
"2"
column=
"1"
>
<widget
class=
"QLabel"
name=
"streamStoppingIn"
>
<property
name=
"text"
>
<string>
OutputTimer.Stream.StoppingIn
</string>
</property>
</widget>
</item>
<item
row=
"4"
column=
"1"
colspan=
"3"
>
<widget
class=
"QCheckBox"
name=
"autoStartRecordTimer"
>
<property
name=
"text"
>
<string>
OutputTimer.Record.EnableEverytime
</string>
</property>
</widget>
</item>
<item
row=
"7"
column=
"8"
>
<widget
class=
"QDialogButtonBox"
name=
"buttonBox"
>
<property
name=
"standardButtons"
>
<set>
QDialogButtonBox::Close
</set>
</property>
</widget>
</item>
<item
row=
"3"
column=
"3"
>
<widget
class=
"QLabel"
name=
"hoursLabel_2"
>
<property
name=
"text"
>
<string>
Hours
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"7"
>
<widget
class=
"QLabel"
name=
"secondsLabel"
>
<property
name=
"text"
>
<string>
Seconds
</string>
</property>
</widget>
</item>
<item
row=
"5"
column=
"1"
colspan=
"3"
>
<widget
class=
"QCheckBox"
name=
"pauseRecordTimer"
>
<property
name=
"sizePolicy"
>
<sizepolicy
hsizetype=
"Minimum"
vsizetype=
"Fixed"
>
<horstretch>
0
</horstretch>
<verstretch>
0
</verstretch>
</sizepolicy>
</property>
<property
name=
"text"
>
<string>
OutputTimer.Record.PauseTimer
</string>
</property>
<property
name=
"checked"
>
<bool>
true
</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
UI/frontend-plugins/frontend-tools/output-timer.cpp
浏览文件 @
64598732
...
...
@@ -181,7 +181,13 @@ void OutputTimer::UpdateStreamTimerDisplay()
void
OutputTimer
::
UpdateRecordTimerDisplay
()
{
int
remainingTime
=
recordingTimer
->
remainingTime
()
/
1000
;
int
remainingTime
=
0
;
if
(
obs_frontend_recording_paused
()
&&
ui
->
pauseRecordTimer
->
isChecked
())
remainingTime
=
recordingTimeLeft
/
1000
;
else
remainingTime
=
recordingTimer
->
remainingTime
()
/
1000
;
int
seconds
=
remainingTime
%
60
;
int
minutes
=
(
remainingTime
%
3600
)
/
60
;
...
...
@@ -192,6 +198,26 @@ void OutputTimer::UpdateRecordTimerDisplay()
ui
->
recordTime
->
setText
(
text
);
}
void
OutputTimer
::
PauseRecordingTimer
()
{
if
(
!
ui
->
pauseRecordTimer
->
isChecked
())
return
;
if
(
recordingTimer
->
isActive
())
{
recordingTimeLeft
=
recordingTimer
->
remainingTime
();
recordingTimer
->
stop
();
}
}
void
OutputTimer
::
UnpauseRecordingTimer
()
{
if
(
!
ui
->
pauseRecordTimer
->
isChecked
())
return
;
if
(
!
recordingTimer
->
isActive
())
recordingTimer
->
start
(
recordingTimeLeft
);
}
void
OutputTimer
::
ShowHideDialog
()
{
if
(
!
isVisible
())
{
...
...
@@ -239,6 +265,9 @@ static void SaveOutputTimer(obs_data_t *save_data, bool saving, void *)
obs_data_set_bool
(
obj
,
"autoStartRecordTimer"
,
ot
->
ui
->
autoStartRecordTimer
->
isChecked
());
obs_data_set_bool
(
obj
,
"pauseRecordTimer"
,
ot
->
ui
->
pauseRecordTimer
->
isChecked
());
obs_data_set_obj
(
save_data
,
"output-timer"
,
obj
);
obs_data_release
(
obj
);
...
...
@@ -267,6 +296,9 @@ static void SaveOutputTimer(obs_data_t *save_data, bool saving, void *)
ot
->
ui
->
autoStartRecordTimer
->
setChecked
(
obs_data_get_bool
(
obj
,
"autoStartRecordTimer"
));
ot
->
ui
->
pauseRecordTimer
->
setChecked
(
obs_data_get_bool
(
obj
,
"pauseRecordTimer"
));
obs_data_release
(
obj
);
}
}
...
...
@@ -286,6 +318,10 @@ static void OBSEvent(enum obs_frontend_event event, void *)
ot
->
RecordTimerStart
();
}
else
if
(
event
==
OBS_FRONTEND_EVENT_RECORDING_STOPPING
)
{
ot
->
RecordTimerStop
();
}
else
if
(
event
==
OBS_FRONTEND_EVENT_RECORDING_PAUSED
)
{
ot
->
PauseRecordingTimer
();
}
else
if
(
event
==
OBS_FRONTEND_EVENT_RECORDING_UNPAUSED
)
{
ot
->
UnpauseRecordingTimer
();
}
}
...
...
UI/frontend-plugins/frontend-tools/output-timer.hpp
浏览文件 @
64598732
...
...
@@ -15,6 +15,8 @@ public:
OutputTimer
(
QWidget
*
parent
);
void
closeEvent
(
QCloseEvent
*
event
)
override
;
void
PauseRecordingTimer
();
void
UnpauseRecordingTimer
();
public
slots
:
void
StreamingTimerButton
();
...
...
@@ -37,4 +39,6 @@ private:
QTimer
*
recordingTimer
;
QTimer
*
streamingTimerDisplay
;
QTimer
*
recordingTimerDisplay
;
int
recordingTimeLeft
;
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录