diff options
Diffstat (limited to 'src/SinkWindow.cc')
-rw-r--r-- | src/SinkWindow.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/SinkWindow.cc b/src/SinkWindow.cc index bcf1681..ed21820 100644 --- a/src/SinkWindow.cc +++ b/src/SinkWindow.cc @@ -75,8 +75,9 @@ void SinkWindow::updateInfo(const SinkInfo &i) { SourceInfo *source = serverInfoManager->getSourceInfo(i.monitor_source); monitorSourceLabel->set_text(source->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; @@ -111,7 +112,7 @@ void SinkWindow::onToOwnerModuleButton() { void SinkWindow::onVolumeScaleValueChanged() { if (scaleEnabled) - serverInfoManager->setSinkVolume(index, pa_volume_from_user(volumeScale->get_value()/100)); + serverInfoManager->setSinkVolume(index, pa_sw_volume_from_linear(volumeScale->get_value()/100)); } void SinkWindow::onVolumeResetButton() { |