浏览代码

obs: Fix label in volume control

Use a dedicated method for setting the dB label in the volume control
and make sure to call it regardless if the volume was changed through
the slider or from somewhere else.
fryshorts 11 年之前
父节点
当前提交
0f8b2faed4
共有 2 个文件被更改,包括 7 次插入0 次删除
  1. 6 0
      obs/volume-control.cpp
  2. 1 0
      obs/volume-control.hpp

+ 6 - 0
obs/volume-control.cpp

@@ -36,6 +36,7 @@ void VolControl::OBSVolumeLevel(void *data, calldata_t *calldata)
 void VolControl::VolumeChanged()
 {
 	slider->setValue((int) (obs_fader_get_deflection(obs_fader) * 100.0f));
+	updateText();
 }
 
 void VolControl::VolumeLevel(float mag, float peak, float peakHold)
@@ -46,6 +47,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"));
 }

+ 1 - 0
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);