[Xfce4-commits] <xfce4-mixer:master> Handle a negative minimal volume correctly
Guido Berhoerster
noreply at xfce.org
Thu Sep 27 16:46:01 CEST 2012
Updating branch refs/heads/master
to ddda5c6e98f17d407405a7020d7b7804f9ba4b2a (commit)
from 554fb0d71bd9a9df86f8aea912cbe34d3f080a81 (commit)
commit ddda5c6e98f17d407405a7020d7b7804f9ba4b2a
Author: Guido Berhoerster <guido+xfce at berhoerster.name>
Date: Sat Sep 22 09:15:32 2012 +0200
Handle a negative minimal volume correctly
NEWS | 5 +++++
configure.in.in | 4 ++--
libxfce4mixer/libxfce4mixer.c | 3 +++
panel-plugin/xfce-mixer-plugin.c | 6 +++++-
4 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/NEWS b/NEWS
index 06eed79..41ffe45 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+4.9.0
+=====
+- Handle a negative minimal volume correctly.
+
+
4.8.0
=====
- Fix too small plugin button in the new panel.
diff --git a/configure.in.in b/configure.in.in
index 0f3f977..e043134 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -21,11 +21,11 @@ dnl ***************************
dnl *** Version information ***
dnl ***************************
m4_define([xfce4_mixer_version_major], [4])
-m4_define([xfce4_mixer_version_minor], [8])
+m4_define([xfce4_mixer_version_minor], [9])
m4_define([xfce4_mixer_version_micro], [0])
m4_define([xfce4_mixer_version_nano], []) dnl leave this empty to have no nano version
m4_define([xfce4_mixer_version_build], [r at REVISION@])
-m4_define([xfce4_mixer_version_tag], [])
+m4_define([xfce4_mixer_version_tag], [git])
m4_define([xfce4_mixer_version], [xfce4_mixer_version_major().xfce4_mixer_version_minor().xfce4_mixer_version_micro()ifelse(xfce4_mixer_version_nano(), [], [], [.xfce4_mixer_version_nano()])ifelse(xfce4_mixer_version_tag(), [svn], [xfce4_mixer_version_tag()-xfce4_mixer_version_build()], [xfce4_mixer_version_tag()])])
dnl *******************************************
diff --git a/libxfce4mixer/libxfce4mixer.c b/libxfce4mixer/libxfce4mixer.c
index 69746c0..d75c571 100644
--- a/libxfce4mixer/libxfce4mixer.c
+++ b/libxfce4mixer/libxfce4mixer.c
@@ -218,6 +218,9 @@ xfce_mixer_get_max_volume (gint *volumes,
g_return_val_if_fail (volumes != NULL, 0);
+ if (num_channels > 0)
+ max = volumes[0];
+
for (--num_channels; num_channels >= 0; --num_channels)
if (volumes[num_channels] > max)
max = volumes[num_channels];
diff --git a/panel-plugin/xfce-mixer-plugin.c b/panel-plugin/xfce-mixer-plugin.c
index f6cf276..d56d43f 100644
--- a/panel-plugin/xfce-mixer-plugin.c
+++ b/panel-plugin/xfce-mixer-plugin.c
@@ -525,6 +525,7 @@ xfce_mixer_plugin_update_track (XfceMixerPlugin *mixer_plugin)
{
XfceMixerTrackType track_type;
gboolean muted = FALSE;
+ gint volume_range;
gdouble volume;
gint *volumes;
gchar *tip_text;
@@ -537,8 +538,11 @@ xfce_mixer_plugin_update_track (XfceMixerPlugin *mixer_plugin)
volumes = g_new (gint, mixer_plugin->track->num_channels);
gst_mixer_get_volume (GST_MIXER (mixer_plugin->card), mixer_plugin->track, volumes);
+ /* Determine difference between max and min volume */
+ volume_range = mixer_plugin->track->max_volume - mixer_plugin->track->min_volume;
+
/* Determine maximum value as double between 0.0 and 1.0 */
- volume = ((gdouble) xfce_mixer_get_max_volume (volumes, mixer_plugin->track->num_channels)) / mixer_plugin->track->max_volume;
+ volume = ((gdouble) xfce_mixer_get_max_volume (volumes, mixer_plugin->track->num_channels) - mixer_plugin->track->min_volume) / volume_range;
/* Set tooltip (e.g. 'Master: 50%') */
tip_text = g_strdup_printf (_("%s: %i%%"), mixer_plugin->track_label, (gint) (volume * 100));
More information about the Xfce4-commits
mailing list