Updating branch refs/heads/master to ddda5c6e98f17d407405a7020d7b7804f9ba4b2a (commit) from 554fb0d71bd9a9df86f8aea912cbe34d3f080a81 (commit)
commit ddda5c6e98f17d407405a7020d7b7804f9ba4b2a Author: Guido Berhoerster <guido+x...@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@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)); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits