|
|
@@ -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)
|