diff --git a/obs/adv-audio-control.cpp b/obs/adv-audio-control.cpp index da1c0e32b..77bacb63a 100644 --- a/obs/adv-audio-control.cpp +++ b/obs/adv-audio-control.cpp @@ -180,7 +180,9 @@ void OBSAdvAudioCtrl::SourceFlagsChanged(uint32_t flags) void OBSAdvAudioCtrl::SourceVolumeChanged(float value) { + volume->blockSignals(true); volume->setValue(int(value * 100)); + volume->blockSignals(false); } void OBSAdvAudioCtrl::SourceSyncChanged(int64_t offset) diff --git a/obs/volume-control.cpp b/obs/volume-control.cpp index 1d88e212d..5df19dda3 100644 --- a/obs/volume-control.cpp +++ b/obs/volume-control.cpp @@ -35,7 +35,11 @@ void VolControl::OBSVolumeLevel(void *data, calldata_t *calldata) void VolControl::VolumeChanged() { + slider->blockSignals(true); slider->setValue((int) (obs_fader_get_deflection(obs_fader) * 100.0f)); + slider->blockSignals(false); + + updateText(); } void VolControl::VolumeLevel(float mag, float peak, float peakHold) @@ -46,6 +50,11 @@ void VolControl::VolumeLevel(float mag, float peak, float peakHold) void VolControl::SliderChanged(int vol) { obs_fader_set_deflection(obs_fader, float(vol) * 0.01f); + updateText(); +} + +void VolControl::updateText() +{ volLabel->setText(QString::number(obs_fader_get_db(obs_fader), 'f', 1) .append(" dB")); } diff --git a/obs/volume-control.hpp b/obs/volume-control.hpp index 087626fdb..ddc541c75 100644 --- a/obs/volume-control.hpp +++ b/obs/volume-control.hpp @@ -44,6 +44,7 @@ private slots: void VolumeChanged(); void VolumeLevel(float mag, float peak, float peakHold); void SliderChanged(int vol); + void updateText(); public: VolControl(OBSSource source);