Merge lp:~cjcurran/indicator-sound/rogue-mute into lp:~indicator-applet-developers/indicator-sound/trunk_3

Proposed by Conor Curran
Status: Merged
Merged at revision: 228
Proposed branch: lp:~cjcurran/indicator-sound/rogue-mute
Merge into: lp:~indicator-applet-developers/indicator-sound/trunk_3
Diff against target: 288 lines (+52/-43)
6 files modified
src/playlists-menu-item.vala (+1/-1)
src/slider-menu-item.c (+9/-6)
src/sound-service.c (+2/-0)
src/voip-input-menu-item.c (+4/-1)
src/voip-input-widget.c (+5/-2)
src/volume-widget.c (+31/-33)
To merge this branch: bzr merge lp:~cjcurran/indicator-sound/rogue-mute
Reviewer Review Type Date Requested Status
Kalle Valo (community) Approve
Review via email: mp+54414@code.launchpad.net

Description of the change

Places more added protection in the slider widgets so as any irregular spam coming from dbusmenu will not find its way onto a gtk_range_set_value.

Refactored the volume widget so as the mute property is a boolean (makes sense) and updated the various handle event calls so as each source can be identified via the name param.

To post a comment you must log in.
Revision history for this message
Kalle Valo (kvalo) wrote :

Commented out code:

//this.root_item.child_delete (item);

Otherwise looks good. Approved.

review: Approve
Revision history for this message
Conor Curran (cjcurran) wrote :

Oh well spotted.

231. By Conor Curran

tidy up

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/playlists-menu-item.vala'
--- src/playlists-menu-item.vala 2011-03-17 16:10:03 +0000
+++ src/playlists-menu-item.vala 2011-03-23 10:16:44 +0000
@@ -80,7 +80,7 @@
80 if (this.root_item.property_get (MENUITEM_PATH) == item.property_get (MENUITEM_PATH)){80 if (this.root_item.property_get (MENUITEM_PATH) == item.property_get (MENUITEM_PATH)){
81 this.root_item.property_set (MENUITEM_PROP_LABEL, _("Choose Playlist")); 81 this.root_item.property_set (MENUITEM_PROP_LABEL, _("Choose Playlist"));
82 }82 }
83 this.root_item.child_delete (item); 83 this.root_item.child_delete (item);
84 }84 }
85 }85 }
86 }86 }
8787
=== modified file 'src/slider-menu-item.c'
--- src/slider-menu-item.c 2011-03-21 13:04:13 +0000
+++ src/slider-menu-item.c 2011-03-23 10:16:44 +0000
@@ -69,9 +69,6 @@
69static void69static void
70slider_menu_item_init (SliderMenuItem *self)70slider_menu_item_init (SliderMenuItem *self)
71{71{
72/*
73 g_debug("Building new Slider Menu Item");
74*/
75 dbusmenu_menuitem_property_set( DBUSMENU_MENUITEM(self),72 dbusmenu_menuitem_property_set( DBUSMENU_MENUITEM(self),
76 DBUSMENU_MENUITEM_PROP_TYPE,73 DBUSMENU_MENUITEM_PROP_TYPE,
77 DBUSMENU_VOLUME_MENUITEM_TYPE );74 DBUSMENU_VOLUME_MENUITEM_TYPE );
@@ -108,11 +105,13 @@
108105
109 SliderMenuItemPrivate* priv = SLIDER_MENU_ITEM_GET_PRIVATE (SLIDER_MENU_ITEM (mi));106 SliderMenuItemPrivate* priv = SLIDER_MENU_ITEM_GET_PRIVATE (SLIDER_MENU_ITEM (mi));
110 gdouble volume_input = g_variant_get_double (value);107 gdouble volume_input = g_variant_get_double (value);
108
111/*109/*
112 g_debug ("slider menu item handle event with value %f on name %s",110 g_debug ("slider menu item handle event with value %f on name %s",
113 volume_input,111 volume_input,
114 name);112 name);
115*/113*/
114
116 slider_menu_item_update_volume (SLIDER_MENU_ITEM (mi), volume_input);115 slider_menu_item_update_volume (SLIDER_MENU_ITEM (mi), volume_input);
117 device_ensure_sink_is_unmuted (priv->a_sink);116 device_ensure_sink_is_unmuted (priv->a_sink);
118}117}
@@ -135,7 +134,7 @@
135 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self),134 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self),
136 DBUSMENU_VOLUME_MENUITEM_LEVEL,135 DBUSMENU_VOLUME_MENUITEM_LEVEL,
137 new_volume);136 new_volume);
138 GVariant* new_mute_update = g_variant_new_int32 (update->mute);137 GVariant* new_mute_update = g_variant_new_boolean (update->mute == 1);
139 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self),138 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self),
140 DBUSMENU_VOLUME_MENUITEM_MUTE,139 DBUSMENU_VOLUME_MENUITEM_MUTE,
141 new_mute_update);140 new_mute_update);
@@ -147,6 +146,7 @@
147static void146static void
148slider_menu_item_update_volume (SliderMenuItem* self, gdouble percent)147slider_menu_item_update_volume (SliderMenuItem* self, gdouble percent)
149{148{
149
150/*150/*
151 g_debug ("slider menu item update volume - about to set the volume to %f", percent);151 g_debug ("slider menu item update volume - about to set the volume to %f", percent);
152*/152*/
@@ -177,18 +177,21 @@
177 gdouble volume_percent = ((gdouble) vol * 100) / PA_VOLUME_NORM;177 gdouble volume_percent = ((gdouble) vol * 100) / PA_VOLUME_NORM;
178178
179 GVariant* new_volume = g_variant_new_double (volume_percent);179 GVariant* new_volume = g_variant_new_double (volume_percent);
180
180/*181/*
181 g_debug ("slider menu item update - volume update to ui to %f", volume_percent);182 g_debug ("slider menu item update - volume update to ui to %f", volume_percent);
182*/183*/
184
183 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self),185 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self),
184 DBUSMENU_VOLUME_MENUITEM_LEVEL,186 DBUSMENU_VOLUME_MENUITEM_LEVEL,
185 new_volume);187 new_volume);
188
186 if (priv->mute != update->mute){189 if (priv->mute != update->mute){
187 priv->mute = update->mute;190 priv->mute = update->mute;
188/*191/*
189 g_debug ("volume menu item - update - mute on ui = %i", update->mute);192 g_debug ("volume menu item - update - mute on ui = %i", update->mute);
190*/193*/
191 GVariant* new_mute_update = g_variant_new_int32 (update->mute);194 GVariant* new_mute_update = g_variant_new_boolean (update->mute == 1);
192 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self),195 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(self),
193 DBUSMENU_VOLUME_MENUITEM_MUTE,196 DBUSMENU_VOLUME_MENUITEM_MUTE,
194 new_mute_update);197 new_mute_update);
@@ -241,4 +244,4 @@
241 SliderMenuItemPrivate* priv = SLIDER_MENU_ITEM_GET_PRIVATE (self);244 SliderMenuItemPrivate* priv = SLIDER_MENU_ITEM_GET_PRIVATE (self);
242 priv->a_sink = sink;245 priv->a_sink = sink;
243 return self;246 return self;
244}
245\ No newline at end of file247\ No newline at end of file
248}
246249
=== modified file 'src/sound-service.c'
--- src/sound-service.c 2011-03-21 16:01:03 +0000
+++ src/sound-service.c 2011-03-23 10:16:44 +0000
@@ -22,6 +22,8 @@
22#include "sound-service-dbus.h"22#include "sound-service-dbus.h"
23#include "music-player-bridge.h"23#include "music-player-bridge.h"
2424
25#include <locale.h>
26
25static GMainLoop *mainloop = NULL;27static GMainLoop *mainloop = NULL;
2628
27/**********************************************************************************************************************/29/**********************************************************************************************************************/
2830
=== modified file 'src/voip-input-menu-item.c'
--- src/voip-input-menu-item.c 2011-03-14 19:47:59 +0000
+++ src/voip-input-menu-item.c 2011-03-23 10:16:44 +0000
@@ -73,7 +73,6 @@
73static void73static void
74voip_input_menu_item_init (VoipInputMenuItem *self)74voip_input_menu_item_init (VoipInputMenuItem *self)
75{75{
76 g_debug("Building new Slider Menu Item");
77 dbusmenu_menuitem_property_set( DBUSMENU_MENUITEM(self),76 dbusmenu_menuitem_property_set( DBUSMENU_MENUITEM(self),
78 DBUSMENU_MENUITEM_PROP_TYPE,77 DBUSMENU_MENUITEM_PROP_TYPE,
79 DBUSMENU_VOIP_INPUT_MENUITEM_TYPE );78 DBUSMENU_VOIP_INPUT_MENUITEM_TYPE );
@@ -117,7 +116,9 @@
117 if (value != NULL){116 if (value != NULL){
118 if (IS_VOIP_INPUT_MENU_ITEM (mi)) {117 if (IS_VOIP_INPUT_MENU_ITEM (mi)) {
119 VoipInputMenuItemPrivate* priv = VOIP_INPUT_MENU_ITEM_GET_PRIVATE (VOIP_INPUT_MENU_ITEM (mi));118 VoipInputMenuItemPrivate* priv = VOIP_INPUT_MENU_ITEM_GET_PRIVATE (VOIP_INPUT_MENU_ITEM (mi));
119/*
120 g_debug ("Handle event in the voip input level backend instance - %f", percent);120 g_debug ("Handle event in the voip input level backend instance - %f", percent);
121*/
121 pa_cvolume new_volume;122 pa_cvolume new_volume;
122 pa_cvolume_init(&new_volume);123 pa_cvolume_init(&new_volume);
123 new_volume.channels = 1;124 new_volume.channels = 1;
@@ -167,7 +168,9 @@
167 // Only send over the mute updates if the state has changed.168 // Only send over the mute updates if the state has changed.
168 // in this order - volume first mute last!!169 // in this order - volume first mute last!!
169 if (priv->mute != source->mute){170 if (priv->mute != source->mute){
171/*
170 g_debug ("voip menu item - update - mute = %i", priv->mute);172 g_debug ("voip menu item - update - mute = %i", priv->mute);
173*/
171 GVariant* new_mute_update = g_variant_new_int32 (source->mute);174 GVariant* new_mute_update = g_variant_new_int32 (source->mute);
172 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(item),175 dbusmenu_menuitem_property_set_variant (DBUSMENU_MENUITEM(item),
173 DBUSMENU_VOIP_INPUT_MENUITEM_MUTE,176 DBUSMENU_VOIP_INPUT_MENUITEM_MUTE,
174177
=== modified file 'src/voip-input-widget.c'
--- src/voip-input-widget.c 2011-03-21 13:04:13 +0000
+++ src/voip-input-widget.c 2011-03-23 10:16:44 +0000
@@ -141,6 +141,7 @@
141 }141 }
142 if(g_ascii_strcasecmp(DBUSMENU_VOIP_INPUT_MENUITEM_MUTE, property) == 0){142 if(g_ascii_strcasecmp(DBUSMENU_VOIP_INPUT_MENUITEM_MUTE, property) == 0){
143 if(priv->grabbed == FALSE){143 if(priv->grabbed == FALSE){
144 g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_INT32));
144 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_voip_input_slider);145 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_voip_input_slider);
145 GtkRange *range = (GtkRange*)slider;146 GtkRange *range = (GtkRange*)slider;
146 gint update = g_variant_get_int32 (value);147 gint update = g_variant_get_int32 (value);
@@ -149,8 +150,10 @@
149 level = 0;150 level = 0;
150 }151 }
151 else{152 else{
152 level = g_variant_get_double (dbusmenu_menuitem_property_get_variant (priv->twin_item,153 GVariant* variant = dbusmenu_menuitem_property_get_variant (priv->twin_item,
153 DBUSMENU_VOIP_INPUT_MENUITEM_LEVEL));154 DBUSMENU_VOIP_INPUT_MENUITEM_LEVEL);
155 g_return_if_fail (g_variant_is_of_type (variant, G_VARIANT_TYPE_DOUBLE));
156 level = g_variant_get_double (variant);
154 }157 }
155 gtk_range_set_value(range, level);158 gtk_range_set_value(range, level);
156159
157160
=== modified file 'src/volume-widget.c'
--- src/volume-widget.c 2011-03-21 13:04:13 +0000
+++ src/volume-widget.c 2011-03-23 10:16:44 +0000
@@ -128,48 +128,48 @@
128volume_widget_property_update( DbusmenuMenuitem* item, gchar* property, 128volume_widget_property_update( DbusmenuMenuitem* item, gchar* property,
129 GVariant* value, gpointer userdata)129 GVariant* value, gpointer userdata)
130{ 130{
131 g_return_if_fail (IS_VOLUME_WIDGET (userdata)); 131 g_return_if_fail (IS_VOLUME_WIDGET(userdata));
132 VolumeWidget* mitem = VOLUME_WIDGET(userdata);132 VolumeWidget* mitem = VOLUME_WIDGET(userdata);
133 VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(mitem);133 VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(mitem);
134
134 if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_LEVEL, property) == 0){135 if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_LEVEL, property) == 0){
135 g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_DOUBLE) );136 g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_DOUBLE) );
136 if(priv->grabbed == FALSE){137 if(priv->grabbed == FALSE){
137 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);138 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
138 GtkRange *range = (GtkRange*)slider;139 GtkRange *range = (GtkRange*)slider;
139 gdouble update = g_variant_get_double (value);140 gdouble update = g_variant_get_double (value);
140/*
141 g_debug ("volume widget volume prop update with %f", update);
142*/
143 gtk_range_set_value(range, update);141 gtk_range_set_value(range, update);
142/*
143 g_debug ("volume-widget::volume_widget_property_update - volume - value %f", update);
144*/
144 update_accessible_desc(priv->indicator);145 update_accessible_desc(priv->indicator);
145 }146 }
146 }147 }
147 if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_MUTE, property) == 0){148 else if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_MUTE, property) == 0){
148/*149 g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_BOOLEAN));
149 g_debug ("volume widget - mute update ");
150*/
151 g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_INT32) );
152 if(priv->grabbed == FALSE){150 if(priv->grabbed == FALSE){
153 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);151 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
154 GtkRange *range = (GtkRange*)slider;152 GtkRange *range = (GtkRange*)slider;
155 gint update = g_variant_get_int32 (value);153 gboolean update = g_variant_get_boolean (value);
156 gdouble level;154 gdouble level;
157155
158/*156 if (update == TRUE){
159 g_debug ("volume widget - mute update %i", update);
160*/
161
162 if (update == 1){
163 level = 0;157 level = 0;
164 }158 }
165 else{159 else{
166 level = g_variant_get_double (dbusmenu_menuitem_property_get_variant (priv->twin_item,160 GVariant* variant = dbusmenu_menuitem_property_get_variant (priv->twin_item,
167 DBUSMENU_VOLUME_MENUITEM_LEVEL));161 DBUSMENU_VOLUME_MENUITEM_LEVEL);
162/*
163 g_debug ("variant for the volume - is it null = %i", variant == NULL);
164*/
165 g_return_if_fail (g_variant_is_of_type (variant, G_VARIANT_TYPE_DOUBLE) );
166
167 level = g_variant_get_double (variant);
168 }168 }
169/*
170 g_debug ("volume-widget::volume_widget_property_update - mute - value %i and level = %f", update, level);
171*/
169 gtk_range_set_value(range, level);172 gtk_range_set_value(range, level);
170/*
171 g_debug ("volume-widget - update mute with value %i", update);
172*/
173 }173 }
174 }174 }
175}175}
@@ -185,13 +185,13 @@
185 G_CALLBACK(volume_widget_property_update), self);185 G_CALLBACK(volume_widget_property_update), self);
186 gdouble initial_level = g_variant_get_double (dbusmenu_menuitem_property_get_variant(twin_item,186 gdouble initial_level = g_variant_get_double (dbusmenu_menuitem_property_get_variant(twin_item,
187 DBUSMENU_VOLUME_MENUITEM_LEVEL));187 DBUSMENU_VOLUME_MENUITEM_LEVEL));
188 gint initial_mute = g_variant_get_int32 (dbusmenu_menuitem_property_get_variant(twin_item,188 gboolean initial_mute = g_variant_get_boolean (dbusmenu_menuitem_property_get_variant(twin_item,
189 DBUSMENU_VOLUME_MENUITEM_MUTE));189 DBUSMENU_VOLUME_MENUITEM_MUTE));
190190
191 //g_debug("volume_widget_set_twin_item initial level = %f", initial_level);191 //g_debug("volume_widget_set_twin_item initial level = %f", initial_level);
192 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);192 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
193 GtkRange *range = (GtkRange*)slider;193 GtkRange *range = (GtkRange*)slider;
194 if(initial_mute == 1){194 if(initial_mute == TRUE){
195 initial_level = 0;195 initial_level = 0;
196 }196 }
197 gtk_range_set_value(range, initial_level);197 gtk_range_set_value(range, initial_level);
@@ -206,9 +206,11 @@
206{206{
207 g_return_val_if_fail (IS_VOLUME_WIDGET (user_data), FALSE);207 g_return_val_if_fail (IS_VOLUME_WIDGET (user_data), FALSE);
208 VolumeWidget* mitem = VOLUME_WIDGET(user_data);208 VolumeWidget* mitem = VOLUME_WIDGET(user_data);
209
209/*210/*
210 g_debug ("changed value %f", new_value);211 g_debug ("changed value %f", new_value);
211*/212*/
213
212 volume_widget_update(mitem, new_value, "change-value");214 volume_widget_update(mitem, new_value, "change-value");
213 return FALSE;215 return FALSE;
214}216}
@@ -222,22 +224,18 @@
222{224{
223225
224 g_return_val_if_fail (IS_VOLUME_WIDGET (user_data), FALSE);226 g_return_val_if_fail (IS_VOLUME_WIDGET (user_data), FALSE);
225 VolumeWidget* mitem = VOLUME_WIDGET(user_data);227 VolumeWidget* mitem = VOLUME_WIDGET (user_data);
226 VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(mitem);228 VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(mitem);
227 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);229 GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
228 gdouble current_value = CLAMP(gtk_range_get_value(GTK_RANGE(slider)), 0, 100);230 gdouble current_value = CLAMP(gtk_range_get_value(GTK_RANGE(slider)), 0, 100);
229/*231
230 g_debug ("value changed %f", gtk_range_get_value(GTK_RANGE(slider)));232 gboolean mute = g_variant_get_boolean (dbusmenu_menuitem_property_get_variant (priv->twin_item,
231*/233 DBUSMENU_VOLUME_MENUITEM_MUTE));
232234 if((current_value == 0 && mute == FALSE) || current_value == 100){
233 gint mute = g_variant_get_int32 (dbusmenu_menuitem_property_get_variant (priv->twin_item,
234 DBUSMENU_VOLUME_MENUITEM_MUTE));
235
236 if((current_value == 0 && mute != 1) || current_value == 100){
237/*235/*
238 g_debug ("value changed - actual set %f", current_value);236 g_debug ("value changed - actual set %f", current_value);
239*/237*/
240 volume_widget_update(mitem, current_value, "value-changed");238 volume_widget_update (mitem, current_value, "value-changed");
241 }239 }
242240
243 return FALSE;241 return FALSE;

Subscribers

People subscribed via source and target branches