소스 검색

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()
 void VolControl::VolumeChanged()
 {
 {
 	slider->setValue((int) (obs_fader_get_deflection(obs_fader) * 100.0f));
 	slider->setValue((int) (obs_fader_get_deflection(obs_fader) * 100.0f));
+	updateText();
 }
 }
 
 
 void VolControl::VolumeLevel(float mag, float peak, float peakHold)
 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)
 void VolControl::SliderChanged(int vol)
 {
 {
 	obs_fader_set_deflection(obs_fader, float(vol) * 0.01f);
 	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)
 	volLabel->setText(QString::number(obs_fader_get_db(obs_fader), 'f', 1)
 			.append(" dB"));
 			.append(" dB"));
 }
 }

+ 1 - 0
obs/volume-control.hpp

@@ -44,6 +44,7 @@ private slots:
 	void VolumeChanged();
 	void VolumeChanged();
 	void VolumeLevel(float mag, float peak, float peakHold);
 	void VolumeLevel(float mag, float peak, float peakHold);
 	void SliderChanged(int vol);
 	void SliderChanged(int vol);
+	void updateText();
 
 
 public:
 public:
 	VolControl(OBSSource source);
 	VolControl(OBSSource source);