~cjcurran/indicator-sound/banshee-offline-speciality

« back to all changes in this revision

Viewing changes to src/volume-widget.c

  • Committer: Conor Curran
  • Date: 2011-03-21 13:04:13 UTC
  • Revision ID: conor.curran@canonical.com-20110321130413-z1d184jyf9fyth2d
some extra trace around sliders to track the volume zero app start madness

Show diffs side-by-side

added added

removed removed

Lines of Context:
131
131
  g_return_if_fail (IS_VOLUME_WIDGET (userdata)); 
132
132
  VolumeWidget* mitem = VOLUME_WIDGET(userdata);
133
133
  VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(mitem);
134
 
 
135
134
  if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_LEVEL, property) == 0){
136
135
    g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_DOUBLE) );
137
136
    if(priv->grabbed == FALSE){
138
137
      GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
139
138
      GtkRange *range = (GtkRange*)slider;
140
139
      gdouble update = g_variant_get_double (value);
 
140
/*
 
141
      g_debug ("volume widget volume prop update with %f", update);
 
142
*/
141
143
      gtk_range_set_value(range, update);
142
144
      update_accessible_desc(priv->indicator);
143
145
    }
144
146
  }
145
147
  if(g_ascii_strcasecmp(DBUSMENU_VOLUME_MENUITEM_MUTE, property) == 0){
 
148
/*
146
149
    g_debug ("volume widget - mute update ");
 
150
*/
 
151
    g_return_if_fail (g_variant_is_of_type (value, G_VARIANT_TYPE_INT32) );
147
152
    if(priv->grabbed == FALSE){
148
153
      GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
149
154
      GtkRange *range = (GtkRange*)slider;
150
155
      gint update = g_variant_get_int32 (value);
151
156
      gdouble level;
152
157
 
 
158
/*
153
159
      g_debug ("volume widget - mute update %i", update);
 
160
*/
154
161
 
155
162
      if (update == 1){
156
163
        level = 0;
160
167
                                                                              DBUSMENU_VOLUME_MENUITEM_LEVEL));
161
168
      }
162
169
      gtk_range_set_value(range, level);
 
170
/*
163
171
      g_debug ("volume-widget - update mute with value %i", update);
 
172
*/
164
173
    }
165
174
  }
166
175
}
197
206
{
198
207
  g_return_val_if_fail (IS_VOLUME_WIDGET (user_data), FALSE);
199
208
  VolumeWidget* mitem = VOLUME_WIDGET(user_data);
200
 
  //g_debug ("changed value %f", new_value);
201
 
  volume_widget_update(mitem, new_value);
 
209
/*
 
210
  g_debug ("changed value %f", new_value);
 
211
*/
 
212
  volume_widget_update(mitem, new_value, "change-value");
202
213
  return FALSE;
203
214
}
204
215
 
215
226
  VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(mitem);
216
227
  GtkWidget *slider = ido_scale_menu_item_get_scale((IdoScaleMenuItem*)priv->ido_volume_slider);
217
228
  gdouble current_value =  CLAMP(gtk_range_get_value(GTK_RANGE(slider)), 0, 100);
218
 
  //g_debug ("value changed %f", gtk_range_get_value(GTK_RANGE(slider)));
 
229
/*
 
230
  g_debug ("value changed %f", gtk_range_get_value(GTK_RANGE(slider)));
 
231
*/
 
232
 
219
233
  gint mute = g_variant_get_int32 (dbusmenu_menuitem_property_get_variant (priv->twin_item,
220
234
                                                                           DBUSMENU_VOLUME_MENUITEM_MUTE));
221
235
 
222
236
  if((current_value == 0 && mute != 1) || current_value == 100){
223
 
    volume_widget_update(mitem, current_value);
 
237
/*
 
238
    g_debug ("value changed - actual set %f", current_value);
 
239
*/
 
240
    volume_widget_update(mitem, current_value, "value-changed");
224
241
  }
225
242
 
226
243
  return FALSE;
227
244
}
228
245
 
229
246
void 
230
 
volume_widget_update(VolumeWidget* self, gdouble update)
 
247
volume_widget_update(VolumeWidget* self, gdouble update, gchar* label)
231
248
{
 
249
  gchar* source = NULL;
 
250
  source = label;
 
251
  if (label == NULL){
 
252
    source = "v widget update";
 
253
  }
232
254
  VolumeWidgetPrivate * priv = VOLUME_WIDGET_GET_PRIVATE(self);
233
255
  gdouble clamped = CLAMP(update, 0, 100);
234
256
  GVariant* new_volume = g_variant_new_double(clamped);
235
 
  dbusmenu_menuitem_handle_event (priv->twin_item, "update", new_volume, 0);
 
257
  dbusmenu_menuitem_handle_event (priv->twin_item, source, new_volume, 0);
236
258
}
237
259
 
238
260
GtkWidget*