mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-07-14 17:24:17 -04:00
UI: Add audio meter decay rate option
The decay rate of the audio meters can now be selected in the audio settings. The values are: - "Fast" (OBS default, 40 dB / 1.7s) - "Medium" (Type I PPM, 20 dB / 1.7s) - "Slow" (Type II PPM, 24 dB / 2.8s) Closes jp9000/obs-studio#1143
This commit is contained in:
@@ -400,6 +400,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
||||
HookWidget(ui->advRBMegsMax, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->channelSetup, COMBO_CHANGED, AUDIO_RESTART);
|
||||
HookWidget(ui->sampleRate, COMBO_CHANGED, AUDIO_RESTART);
|
||||
HookWidget(ui->meterDecayRate, COMBO_CHANGED, AUDIO_CHANGED);
|
||||
HookWidget(ui->desktopAudioDevice1, COMBO_CHANGED, AUDIO_CHANGED);
|
||||
HookWidget(ui->desktopAudioDevice2, COMBO_CHANGED, AUDIO_CHANGED);
|
||||
HookWidget(ui->auxAudioDevice1, COMBO_CHANGED, AUDIO_CHANGED);
|
||||
@@ -2119,6 +2120,8 @@ void OBSBasicSettings::LoadAudioSettings()
|
||||
"SampleRate");
|
||||
const char *speakers = config_get_string(main->Config(), "Audio",
|
||||
"ChannelSetup");
|
||||
double meterDecayRate = config_get_double(main->Config(), "Audio",
|
||||
"MeterDecayRate");
|
||||
|
||||
loading = true;
|
||||
|
||||
@@ -2147,6 +2150,13 @@ void OBSBasicSettings::LoadAudioSettings()
|
||||
else
|
||||
ui->channelSetup->setCurrentIndex(1);
|
||||
|
||||
if (meterDecayRate == VOLUME_METER_DECAY_MEDIUM)
|
||||
ui->meterDecayRate->setCurrentIndex(1);
|
||||
else if (meterDecayRate == VOLUME_METER_DECAY_SLOW)
|
||||
ui->meterDecayRate->setCurrentIndex(2);
|
||||
else
|
||||
ui->meterDecayRate->setCurrentIndex(0);
|
||||
|
||||
LoadAudioDevices();
|
||||
LoadAudioSources();
|
||||
|
||||
@@ -3079,6 +3089,28 @@ void OBSBasicSettings::SaveAudioSettings()
|
||||
config_set_string(main->Config(), "Audio", "ChannelSetup",
|
||||
channelSetup);
|
||||
|
||||
if (WidgetChanged(ui->meterDecayRate)) {
|
||||
double meterDecayRate;
|
||||
switch (ui->meterDecayRate->currentIndex()) {
|
||||
case 0:
|
||||
meterDecayRate = VOLUME_METER_DECAY_FAST;
|
||||
break;
|
||||
case 1:
|
||||
meterDecayRate = VOLUME_METER_DECAY_MEDIUM;
|
||||
break;
|
||||
case 2:
|
||||
meterDecayRate = VOLUME_METER_DECAY_SLOW;
|
||||
break;
|
||||
default:
|
||||
meterDecayRate = VOLUME_METER_DECAY_FAST;
|
||||
break;
|
||||
}
|
||||
config_set_double(main->Config(), "Audio", "MeterDecayRate",
|
||||
meterDecayRate);
|
||||
|
||||
main->UpdateVolumeControlsDecayRate();
|
||||
}
|
||||
|
||||
for (auto &audioSource : audioSources) {
|
||||
auto source = OBSGetStrongRef(get<0>(audioSource));
|
||||
if (!source)
|
||||
|
||||
Reference in New Issue
Block a user