Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Obs Studio
提交
03c9d930
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,发现更多精彩内容 >>
提交
03c9d930
编写于
4月 28, 2019
作者:
C
Clayton Groeneveld
提交者:
jp9000
5月 08, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
UI: Change volume to dB in adv audio properties
上级
528daad1
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
39 addition
and
12 deletion
+39
-12
UI/adv-audio-control.cpp
UI/adv-audio-control.cpp
+23
-9
UI/adv-audio-control.hpp
UI/adv-audio-control.hpp
+3
-2
UI/data/locale/en-US.ini
UI/data/locale/en-US.ini
+1
-1
libobs/obs-audio-controls.c
libobs/obs-audio-controls.c
+9
-0
libobs/obs-audio-controls.h
libobs/obs-audio-controls.h
+3
-0
未找到文件。
UI/adv-audio-control.cpp
浏览文件 @
03c9d930
...
...
@@ -13,6 +13,9 @@
#define NSEC_PER_MSEC 1000000
#endif
#define MIN_DB -96.0
#define MAX_DB 26.0
OBSAdvAudioCtrl
::
OBSAdvAudioCtrl
(
QGridLayout
*
,
obs_source_t
*
source_
)
:
source
(
source_
)
{
...
...
@@ -29,7 +32,7 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_)
labelL
=
new
QLabel
();
labelR
=
new
QLabel
();
nameLabel
=
new
QLabel
();
volume
=
new
QSpinBox
();
volume
=
new
Q
Double
SpinBox
();
forceMono
=
new
QCheckBox
();
balance
=
new
BalanceSlider
();
#if defined(_WIN32) || defined(__APPLE__) || HAVE_PULSEAUDIO
...
...
@@ -71,9 +74,15 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_)
nameLabel
->
setText
(
QT_UTF8
(
sourceName
));
nameLabel
->
setAlignment
(
Qt
::
AlignHCenter
|
Qt
::
AlignVCenter
);
volume
->
setMinimum
(
0
);
volume
->
setMaximum
(
2000
);
volume
->
setValue
(
int
(
vol
*
100.0
f
));
volume
->
setMinimum
(
MIN_DB
-
0.1
);
volume
->
setMaximum
(
MAX_DB
);
volume
->
setSingleStep
(
0.1
);
volume
->
setDecimals
(
1
);
volume
->
setSuffix
(
" dB"
);
volume
->
setValue
(
obs_mul_to_db
(
vol
));
if
(
volume
->
value
()
<
MIN_DB
)
volume
->
setSpecialValueText
(
"-inf dB"
);
forceMono
->
setChecked
((
flags
&
OBS_SOURCE_FLAG_FORCE_MONO
)
!=
0
);
...
...
@@ -147,8 +156,8 @@ OBSAdvAudioCtrl::OBSAdvAudioCtrl(QGridLayout *, obs_source_t *source_)
mixerContainer
->
layout
()
->
addWidget
(
mixer5
);
mixerContainer
->
layout
()
->
addWidget
(
mixer6
);
QWidget
::
connect
(
volume
,
SIGNAL
(
valueChanged
(
int
)),
this
,
SLOT
(
volumeChanged
(
int
)));
QWidget
::
connect
(
volume
,
SIGNAL
(
valueChanged
(
double
)),
this
,
SLOT
(
volumeChanged
(
double
)));
QWidget
::
connect
(
forceMono
,
SIGNAL
(
clicked
(
bool
)),
this
,
SLOT
(
downmixMonoChanged
(
bool
)));
QWidget
::
connect
(
balance
,
SIGNAL
(
valueChanged
(
int
)),
...
...
@@ -259,7 +268,7 @@ void OBSAdvAudioCtrl::SourceFlagsChanged(uint32_t flags)
void
OBSAdvAudioCtrl
::
SourceVolumeChanged
(
float
value
)
{
volume
->
blockSignals
(
true
);
volume
->
setValue
(
int
(
round
(
value
*
100.0
f
)
));
volume
->
setValue
(
obs_mul_to_db
(
value
));
volume
->
blockSignals
(
false
);
}
...
...
@@ -281,9 +290,14 @@ void OBSAdvAudioCtrl::SourceMixersChanged(uint32_t mixers)
/* ------------------------------------------------------------------------- */
/* Qt control callbacks */
void
OBSAdvAudioCtrl
::
volumeChanged
(
int
percentage
)
void
OBSAdvAudioCtrl
::
volumeChanged
(
double
db
)
{
float
val
=
float
(
percentage
)
/
100.0
f
;
if
(
db
<
MIN_DB
)
{
volume
->
setSpecialValueText
(
"-inf dB"
);
db
=
-
INFINITY
;
}
float
val
=
obs_db_to_mul
(
db
);
obs_source_set_volume
(
source
,
val
);
}
...
...
UI/adv-audio-control.hpp
浏览文件 @
03c9d930
...
...
@@ -3,6 +3,7 @@
#include <obs.hpp>
#include <QWidget>
#include <QPointer>
#include <QDoubleSpinBox>
#include "balance-slider.hpp"
class
QGridLayout
;
...
...
@@ -22,7 +23,7 @@ private:
QPointer
<
QWidget
>
balanceContainer
;
QPointer
<
QLabel
>
nameLabel
;
QPointer
<
Q
SpinBox
>
volume
;
QPointer
<
Q
DoubleSpinBox
>
volume
;
QPointer
<
QCheckBox
>
forceMono
;
QPointer
<
BalanceSlider
>
balance
;
QPointer
<
QLabel
>
labelL
;
...
...
@@ -59,7 +60,7 @@ public slots:
void
SourceSyncChanged
(
int64_t
offset
);
void
SourceMixersChanged
(
uint32_t
mixers
);
void
volumeChanged
(
int
percentage
);
void
volumeChanged
(
double
db
);
void
downmixMonoChanged
(
bool
checked
);
void
balanceChanged
(
int
val
);
void
syncOffsetChanged
(
int
milliseconds
);
...
...
UI/data/locale/en-US.ini
浏览文件 @
03c9d930
...
...
@@ -824,7 +824,7 @@ Basic.Settings.Advanced.AutoRemux.MP4="(record as mkv)"
# advanced audio properties
Basic.AdvAudio
=
"Advanced Audio Properties"
Basic.AdvAudio.Name
=
"Name"
Basic.AdvAudio.Volume
=
"Volume
(%)
"
Basic.AdvAudio.Volume
=
"Volume"
Basic.AdvAudio.Mono
=
"Downmix to Mono"
Basic.AdvAudio.Balance
=
"Balance"
Basic.AdvAudio.SyncOffset
=
"Sync Offset (ms)"
...
...
libobs/obs-audio-controls.c
浏览文件 @
03c9d930
...
...
@@ -932,3 +932,12 @@ void obs_volmeter_remove_callback(obs_volmeter_t *volmeter,
pthread_mutex_unlock
(
&
volmeter
->
callback_mutex
);
}
float
obs_mul_to_db
(
float
mul
)
{
return
mul_to_db
(
mul
);
}
float
obs_db_to_mul
(
float
db
)
{
return
db_to_mul
(
db
);
}
libobs/obs-audio-controls.h
浏览文件 @
03c9d930
...
...
@@ -273,6 +273,9 @@ EXPORT void obs_volmeter_add_callback(obs_volmeter_t *volmeter,
EXPORT
void
obs_volmeter_remove_callback
(
obs_volmeter_t
*
volmeter
,
obs_volmeter_updated_t
callback
,
void
*
param
);
EXPORT
float
obs_mul_to_db
(
float
mul
);
EXPORT
float
obs_db_to_mul
(
float
db
);
#ifdef __cplusplus
}
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录