[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