diff options
Diffstat (limited to 'src/SinkInputWindow.cc')
-rw-r--r-- | src/SinkInputWindow.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/SinkInputWindow.cc b/src/SinkInputWindow.cc index 784cb90..09d5433 100644 --- a/src/SinkInputWindow.cc +++ b/src/SinkInputWindow.cc @@ -91,8 +91,9 @@ void SinkInputWindow::updateInfo(const SinkInputInfo &i) { clientLabel->set_text(client->name); } - percent = pa_volume_to_user(i.volume) * 100; - db = pa_volume_to_dB(i.volume); + percent = pa_sw_volume_to_linear(pa_cvolume_avg(&i.volume)) * 100; + /* FIXME: Hardware volume doesn't translate well to dB. */ + db = pa_sw_volume_to_dB(pa_cvolume_avg(&i.volume)); scaleEnabled = false; volumeScale->set_value(percent); scaleEnabled = true; @@ -134,7 +135,7 @@ void SinkInputWindow::onToClientButton() { void SinkInputWindow::onVolumeScaleValueChanged() { if (scaleEnabled) - serverInfoManager->setSinkInputVolume(index, pa_volume_from_user(volumeScale->get_value()/100)); + serverInfoManager->setSinkInputVolume(index, pa_sw_volume_from_linear(volumeScale->get_value()/100)); } void SinkInputWindow::onVolumeResetButton() { |