diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-09-01 14:46:18 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-09-01 14:46:18 +0000 |
commit | 2b3c1967c118346c1d73491877cc346e142191e3 (patch) | |
tree | 960c73e7ecb6022d17c191f4b1c64ea5d258339e /src/SinkInputWindow.cc | |
parent | f3831b677aa2b95777044ca176db94ef9a5eba4c (diff) |
show volumes in dB as well
git-svn-id: file:///home/lennart/svn/public/paman/trunk@27 cdefa82f-4ce1-0310-97f5-ab6066f37c3c
Diffstat (limited to 'src/SinkInputWindow.cc')
-rw-r--r-- | src/SinkInputWindow.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/SinkInputWindow.cc b/src/SinkInputWindow.cc index e78b567..bfbbbfa 100644 --- a/src/SinkInputWindow.cc +++ b/src/SinkInputWindow.cc @@ -57,6 +57,7 @@ SinkInputWindow* SinkInputWindow::create() { void SinkInputWindow::updateInfo(const SinkInputInfo &i) { char t[80], ss[PA_SAMPLE_SNPRINT_MAX_LENGTH]; + double percent, db; nameLabel->set_text(i.name); snprintf(t, sizeof(t), "#%u", i.index); @@ -84,9 +85,14 @@ void SinkInputWindow::updateInfo(const SinkInputInfo &i) { clientLabel->set_text(client->name); } - volumeScale->set_value((double) i.volume * 100 / 0x100); - snprintf(t, sizeof(t), "%u%%", (i.volume * 100)/ 0x100); - volumeLabel->set_text(t); + percent = ((double) i.volume / 0x100) * 100; + db = pa_volume_to_dB(i.volume); + volumeScale->set_value(percent); + if (db != PA_DECIBEL_MININFTY) + snprintf(t, sizeof(t), "%0.0f%% (%0.2fdB)", percent, db); + else + snprintf(t, sizeof(t), "%0.0f%% (-∞dB)", percent); + volumeLabel->set_markup(t); set_title("Sink Input: "+i.name); |