[Xfce4-commits] [panel-plugins/xfce4-pulseaudio-plugin] 04/04: Limit volume to newly introduced volume-max rather than to 100%

noreply at xfce.org noreply at xfce.org
Tue Apr 7 02:06:13 CEST 2015


This is an automated email from the git hooks/post-receive script.

andrzejr pushed a commit to branch master
in repository panel-plugins/xfce4-pulseaudio-plugin.

commit cd0675635c81f3705eef48a1976788aaca85e709
Author: Andrzej <ndrwrdck at gmail.com>
Date:   Tue Apr 7 01:05:46 2015 +0100

    Limit volume to newly introduced volume-max rather than to 100%
---
 panel-plugin/pulseaudio-button.c |   10 +++++-----
 panel-plugin/pulseaudio-menu.c   |    6 ++++--
 panel-plugin/pulseaudio-plugin.c |    4 ++--
 panel-plugin/pulseaudio-volume.c |   17 +++++++++++++----
 panel-plugin/scalemenuitem.c     |    2 ++
 5 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/panel-plugin/pulseaudio-button.c b/panel-plugin/pulseaudio-button.c
index d634463..b094b7d 100644
--- a/panel-plugin/pulseaudio-button.c
+++ b/panel-plugin/pulseaudio-button.c
@@ -223,13 +223,13 @@ pulseaudio_button_button_press (GtkWidget      *widget,
 static gboolean
 pulseaudio_button_scroll_event (GtkWidget *widget, GdkEventScroll *event)
 {
-  PulseaudioButton *button = PULSEAUDIO_BUTTON (widget);
-  gdouble volume =  pulseaudio_volume_get_volume (button->volume);
-  gdouble volume_step = pulseaudio_config_get_volume_step (button->config) / 100.0;
-  gdouble new_volume;
+  PulseaudioButton *button      = PULSEAUDIO_BUTTON (widget);
+  gdouble           volume      = pulseaudio_volume_get_volume (button->volume);
+  gdouble           volume_step = pulseaudio_config_get_volume_step (button->config) / 100.0;
+  gdouble           new_volume;
 
 
-  new_volume = MIN (MAX (volume + (1.0 - 2.0 * event->direction) * volume_step, 0.0), 1.0);
+  new_volume = volume + (1.0 - 2.0 * event->direction) * volume_step;
   pulseaudio_volume_set_volume (button->volume, new_volume);
   //g_debug ("dir: %d %f -> %f", event->direction, volume, new_volume);
 
diff --git a/panel-plugin/pulseaudio-menu.c b/panel-plugin/pulseaudio-menu.c
index f811303..e055f71 100644
--- a/panel-plugin/pulseaudio-menu.c
+++ b/panel-plugin/pulseaudio-menu.c
@@ -119,7 +119,7 @@ pulseaudio_menu_output_range_scroll (GtkWidget        *widget,
 
   scroll_event = (GdkEventScroll*)event;
 
-  new_volume = MIN (MAX (volume + (1.0 - 2.0 * scroll_event->direction) * volume_step, 0.0), 1.0);
+  new_volume = volume + (1.0 - 2.0 * scroll_event->direction) * volume_step;
   pulseaudio_volume_set_volume (menu->volume, new_volume);
   //printf ("scroll %d %g %g\n", scroll_event->direction, volume, new_volume);
 }
@@ -210,6 +210,7 @@ pulseaudio_menu_new (PulseaudioVolume *volume,
   GdkScreen      *gscreen;
   GtkWidget      *mi;
   GtkWidget      *img = NULL;
+  gdouble         volume_max;
 
   g_return_val_if_fail (IS_PULSEAUDIO_VOLUME (volume), NULL);
   g_return_val_if_fail (IS_PULSEAUDIO_CONFIG (config), NULL);
@@ -232,7 +233,8 @@ pulseaudio_menu_new (PulseaudioVolume *volume,
                               G_CALLBACK (pulseaudio_menu_volume_changed), menu);
 
   /* output volume slider */
-  mi = scale_menu_item_new_with_range (0.0, 100.0, 1.0);
+  volume_max = pulseaudio_config_get_volume_max (menu->config);
+  mi = scale_menu_item_new_with_range (0.0, volume_max, 1.0);
 
   img = gtk_image_new_from_icon_name ("audio-volume-high-symbolic", GTK_ICON_SIZE_DND);
   gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), img);
diff --git a/panel-plugin/pulseaudio-plugin.c b/panel-plugin/pulseaudio-plugin.c
index 156eaff..a434853 100644
--- a/panel-plugin/pulseaudio-plugin.c
+++ b/panel-plugin/pulseaudio-plugin.c
@@ -294,9 +294,9 @@ pulseaudio_plugin_volume_key_pressed (const char            *keystring,
   pulseaudio_debug ("%s pressed", keystring);
 
   if (strcmp (keystring, PULSEAUDIO_PLUGIN_RAISE_VOLUME_KEY) == 0)
-    pulseaudio_volume_set_volume (pulseaudio_plugin->volume, MIN (MAX (volume + volume_step, 0.0), 1.0));
+    pulseaudio_volume_set_volume (pulseaudio_plugin->volume, volume + volume_step);
   else if (strcmp (keystring, PULSEAUDIO_PLUGIN_LOWER_VOLUME_KEY) == 0)
-    pulseaudio_volume_set_volume (pulseaudio_plugin->volume, MIN (MAX (volume - volume_step, 0.0), 1.0));
+    pulseaudio_volume_set_volume (pulseaudio_plugin->volume, volume - volume_step);
 }
 
 
diff --git a/panel-plugin/pulseaudio-volume.c b/panel-plugin/pulseaudio-volume.c
index 688ea29..c528909 100644
--- a/panel-plugin/pulseaudio-volume.c
+++ b/panel-plugin/pulseaudio-volume.c
@@ -306,13 +306,16 @@ pulseaudio_volume_v2d (PulseaudioVolume *volume,
                        pa_volume_t       pa_volume)
 {
   gdouble vol;
+  gdouble vol_max;
 
   g_return_val_if_fail (IS_PULSEAUDIO_VOLUME (volume), 0.0);
 
+  vol_max = pulseaudio_config_get_volume_max (volume->config) / 100.0;
+
   vol = (gdouble) pa_volume - PA_VOLUME_MUTED;
   vol /= (gdouble) (PA_VOLUME_NORM - PA_VOLUME_MUTED);
   /* for safety */
-  vol = MIN (MAX (vol, 0.0), 1.0);
+  vol = MIN (MAX (vol, 0.0), vol_max);
   return vol;
 }
 
@@ -329,7 +332,7 @@ pulseaudio_volume_d2v (PulseaudioVolume *volume,
   pa_volume = (PA_VOLUME_NORM - PA_VOLUME_MUTED) * vol;
   pa_volume = (pa_volume_t) pa_volume + PA_VOLUME_MUTED;
   /* for safety */
-  pa_volume = MIN (MAX (pa_volume, PA_VOLUME_MUTED), PA_VOLUME_NORM);
+  pa_volume = MIN (MAX (pa_volume, PA_VOLUME_MUTED), PA_VOLUME_MAX);
   return pa_volume;
 }
 
@@ -449,12 +452,18 @@ void
 pulseaudio_volume_set_volume (PulseaudioVolume *volume,
                               gdouble           vol)
 {
+  gdouble vol_max;
+  gdouble vol_trim;
+
   g_return_if_fail (IS_PULSEAUDIO_VOLUME (volume));
   g_return_if_fail (pa_context_get_state (volume->pa_context) == PA_CONTEXT_READY);
 
-  if (volume->volume != vol)
+  vol_max = pulseaudio_config_get_volume_max (volume->config) / 100.0;
+  vol_trim = MIN (MAX (vol, 0.0), vol_max);
+
+  if (volume->volume != vol_trim)
     {
-      volume->volume = vol;
+      volume->volume = vol_trim;
       pa_context_get_server_info (volume->pa_context, pulseaudio_volume_set_volume_cb1, volume);
     }
 }
diff --git a/panel-plugin/scalemenuitem.c b/panel-plugin/scalemenuitem.c
index 13707ae..2755075 100644
--- a/panel-plugin/scalemenuitem.c
+++ b/panel-plugin/scalemenuitem.c
@@ -402,6 +402,8 @@ scale_menu_item_new_with_range (gdouble           min,
   gtk_widget_set_size_request (priv->scale, 100, -1);
   gtk_range_set_inverted (GTK_RANGE(priv->scale), FALSE);
   gtk_scale_set_draw_value (GTK_SCALE(priv->scale), FALSE);
+  if (max > 100.0)
+    gtk_scale_add_mark (GTK_SCALE (priv->scale), 100.0, GTK_POS_BOTTOM, NULL);
 
   update_packing (scale_item);
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list