[Xfce4-commits] <xfce4-mixer:gber/improvements> Handle a negative minimal volume correctly

Guido Berhoerster noreply at xfce.org
Fri Sep 21 17:18:02 CEST 2012


Updating branch refs/heads/gber/improvements
         to 626dbba8864ab23ef406259cfd750f54cfabf391 (commit)
       from c0c6816a9d37f3915ec421e4fab0e58edf5847d7 (commit)

commit 626dbba8864ab23ef406259cfd750f54cfabf391
Author: Guido Berhoerster <guido+xfce at berhoerster.name>
Date:   Fri Sep 21 12:00:36 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