From 2f54c2ee626a102c6805e80b8b82e5c5ff3398e5 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Thu, 19 Sep 2024 20:52:01 +0200 Subject: [PATCH] Increase volume meter scale from -100 to 0 dB This was done to enable users to to use higher precision values in the "Audio" condition type. Previously, the UI would reset the selected values to the minimum value possible to display in the volume meter widget, which was -60 dB. --- lib/utils/volume-control.cpp | 2 +- plugins/base/macro-condition-audio.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/utils/volume-control.cpp b/lib/utils/volume-control.cpp index 2de9e966..7db2dee0 100644 --- a/lib/utils/volume-control.cpp +++ b/lib/utils/volume-control.cpp @@ -619,7 +619,7 @@ VolumeMeter::VolumeMeter(QWidget *parent, obs_volmeter_t *obs_volmeter, magnitudeColor.setRgb(0x00, 0x00, 0x00); // Black majorTickColor.setRgb(0xff, 0xff, 0xff); // Black minorTickColor.setRgb(0xcc, 0xcc, 0xcc); // Black - minimumLevel = -60.0; // -60 dB + minimumLevel = -100.0; // -100 dB warningLevel = -20.0; // -20 dB errorLevel = -9.0; // -9 dB clipLevel = -0.5; // -0.5 dB diff --git a/plugins/base/macro-condition-audio.cpp b/plugins/base/macro-condition-audio.cpp index d80c6a0b..4e7d0ec1 100644 --- a/plugins/base/macro-condition-audio.cpp +++ b/plugins/base/macro-condition-audio.cpp @@ -657,7 +657,7 @@ void MacroConditionAudioEdit::SyncSliderAndValueSelection(bool sliderMoved) if (sliderMoved) { auto sliderPosition = _volMeter->GetSlider()->DoubleValue(); // Adjust to the dB scale on the volume meter widget - auto dBScaleValue = ((sliderPosition * 3.0) / 5.0) - 60.0; + auto dBScaleValue = sliderPosition - 100.0; if (_entryData->_useDb) { _volumeDB->SetFixedValue(dBScaleValue); @@ -677,7 +677,7 @@ void MacroConditionAudioEdit::SyncSliderAndValueSelection(bool sliderMoved) ? _entryData->_volumeDB.GetFixedValue() : PercentToDecibel(_entryData->_volumePercent / 100.0); - auto sliderPosition = (dBValue + 60.0) * 5 / 3.0; + auto sliderPosition = (dBValue + 100); _volMeter->GetSlider()->SetDoubleVal(sliderPosition); } }