Author: dannym Date: 2009-01-11 19:46:39 +0000 (Sun, 11 Jan 2009) New Revision: 29174
Modified: xfce4-mixer/branches/xfce_4_4/settings/mixer-settingsbox.gob xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox-private.h xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox.c xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox.h Log: add a 'device removed' callback to the settings dialog (disconnects from the sound device). Note that it only reconnects when you enter the dialog again. Modified: xfce4-mixer/branches/xfce_4_4/settings/mixer-settingsbox.gob =================================================================== --- xfce4-mixer/branches/xfce_4_4/settings/mixer-settingsbox.gob 2009-01-11 19:37:33 UTC (rev 29173) +++ xfce4-mixer/branches/xfce_4_4/settings/mixer-settingsbox.gob 2009-01-11 19:46:39 UTC (rev 29174) @@ -42,6 +42,14 @@ return s; } +static void volume_event_cb(char const *control, volchanger_callback_event_t kind, void *p_settings_box) +{ + if (kind == VE_REMOVED) { + g_warning ("sound device was removed."); + vc_close_device (); + } +} + %} class Xfce:Mixer:Settingsbox from Gtk:VBox { @@ -219,7 +227,9 @@ gtk_label_set_text (self->dev_label, s); TRACE ("set vc device"); + vc_set_volume_callback (NULL, NULL); vc_set_device (s); + vc_set_volume_callback (volume_event_cb, self); TRACE ("free sel_device"); if (self->sel_device) { g_free (self->sel_device); Modified: xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox-private.h =================================================================== --- xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox-private.h 2009-01-11 19:37:33 UTC (rev 29173) +++ xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox-private.h 2009-01-11 19:46:39 UTC (rev 29174) @@ -1,4 +1,4 @@ -/* Generated by GOB (v2.0.14) (do not edit directly) */ +/* Generated by GOB (v2.0.15) (do not edit directly) */ #ifndef __XFCE_MIXER_SETTINGSBOX_PRIVATE_H__ #define __XFCE_MIXER_SETTINGSBOX_PRIVATE_H__ Modified: xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox.c =================================================================== --- xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox.c 2009-01-11 19:37:33 UTC (rev 29173) +++ xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox.c 2009-01-11 19:46:39 UTC (rev 29174) @@ -1,16 +1,13 @@ -/* Generated by GOB (v2.0.14) (do not edit directly) */ +/* Generated by GOB (v2.0.15) (do not edit directly) */ /* End world hunger, donate to the World Food Programme, http://www.wfp.org */ #define GOB_VERSION_MAJOR 2 #define GOB_VERSION_MINOR 0 -#define GOB_VERSION_PATCHLEVEL 14 +#define GOB_VERSION_PATCHLEVEL 15 #define selfp (self->_priv) -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif #include <string.h> /* memset() */ #include "xfce-mixer-settingsbox.h" @@ -37,7 +34,7 @@ #include <libxfcegui4/xfce_framebox.h> #include <libxfce4mcs/mcs-manager.h> -#line 41 "xfce-mixer-settingsbox.c" +#line 38 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" @@ -73,8 +70,16 @@ return s; } +static void volume_event_cb(char const *control, volchanger_callback_event_t kind, void *p_settings_box) +{ + if (kind == VE_REMOVED) { + g_warning ("sound device was removed."); + vc_close_device (); + } +} -#line 78 "xfce-mixer-settingsbox.c" + +#line 83 "xfce-mixer-settingsbox.c" /* self casting macros */ #define SELF(x) XFCE_MIXER_SETTINGSBOX(x) #define SELF_CONST(x) XFCE_MIXER_SETTINGSBOX_CONST(x) @@ -161,26 +166,26 @@ #define device_lst (self->device_lst) #define VAR device_lst { -#line 59 "mixer-settingsbox.gob" +#line 67 "mixer-settingsbox.gob" stringlist_free(VAR); VAR = NULL; } -#line 170 "xfce-mixer-settingsbox.c" +#line 175 "xfce-mixer-settingsbox.c" memset(&device_lst, 0, sizeof(device_lst)); #undef VAR #undef device_lst #define sel_device (self->sel_device) #define VAR sel_device { -#line 64 "mixer-settingsbox.gob" +#line 72 "mixer-settingsbox.gob" if (VAR) { g_free (VAR); VAR = NULL; } } -#line 184 "xfce-mixer-settingsbox.c" +#line 189 "xfce-mixer-settingsbox.c" memset(&sel_device, 0, sizeof(sel_device)); #undef VAR #undef sel_device @@ -198,50 +203,50 @@ g_object_class->finalize = ___finalize; } #undef __GOB_FUNCTION__ -#line 114 "mixer-settingsbox.gob" +#line 122 "mixer-settingsbox.gob" static void xfce_mixer_settingsbox_init (XfceMixerSettingsbox * self G_GNUC_UNUSED) -#line 205 "xfce-mixer-settingsbox.c" +#line 210 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::init" #line 12 "mixer-settingsbox.gob" self->dev_frame = NULL; -#line 210 "xfce-mixer-settingsbox.c" +#line 215 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" self->dev_label = NULL; -#line 213 "xfce-mixer-settingsbox.c" +#line 218 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" self->useful_frame = NULL; -#line 216 "xfce-mixer-settingsbox.c" +#line 221 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" self->useful_tv = NULL; -#line 219 "xfce-mixer-settingsbox.c" +#line 224 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" self->useful_model = NULL; -#line 222 "xfce-mixer-settingsbox.c" +#line 227 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" self->useful_sc = NULL; -#line 225 "xfce-mixer-settingsbox.c" +#line 230 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" self->devlist_om = NULL; -#line 228 "xfce-mixer-settingsbox.c" +#line 233 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" self->cols = NULL; -#line 231 "xfce-mixer-settingsbox.c" +#line 236 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" self->right_box = NULL; -#line 234 "xfce-mixer-settingsbox.c" +#line 239 "xfce-mixer-settingsbox.c" #line 12 "mixer-settingsbox.gob" self->device_lst = NULL; -#line 237 "xfce-mixer-settingsbox.c" -#line 59 "mixer-settingsbox.gob" +#line 242 "xfce-mixer-settingsbox.c" +#line 67 "mixer-settingsbox.gob" self->sel_device = NULL; -#line 240 "xfce-mixer-settingsbox.c" -#line 64 "mixer-settingsbox.gob" +#line 245 "xfce-mixer-settingsbox.c" +#line 72 "mixer-settingsbox.gob" self->manager = NULL; -#line 243 "xfce-mixer-settingsbox.c" +#line 248 "xfce-mixer-settingsbox.c" { -#line 115 "mixer-settingsbox.gob" +#line 123 "mixer-settingsbox.gob" self->cols = GTK_BOX (gtk_hbox_new (FALSE, 5)); gtk_widget_show (GTK_WIDGET (self->cols)); @@ -312,25 +317,25 @@ gtk_widget_set_size_request (GTK_WIDGET (self), -1, 300); -#line 316 "xfce-mixer-settingsbox.c" +#line 321 "xfce-mixer-settingsbox.c" } } #undef __GOB_FUNCTION__ -#line 73 "mixer-settingsbox.gob" +#line 81 "mixer-settingsbox.gob" void xfce_mixer_settingsbox_load (XfceMixerSettingsbox * self) -#line 325 "xfce-mixer-settingsbox.c" +#line 330 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::load" -#line 73 "mixer-settingsbox.gob" +#line 81 "mixer-settingsbox.gob" g_return_if_fail (self != NULL); -#line 73 "mixer-settingsbox.gob" +#line 81 "mixer-settingsbox.gob" g_return_if_fail (XFCE_IS_MIXER_SETTINGSBOX (self)); -#line 332 "xfce-mixer-settingsbox.c" +#line 337 "xfce-mixer-settingsbox.c" { -#line 74 "mixer-settingsbox.gob" +#line 82 "mixer-settingsbox.gob" McsSetting *setting; gchar* sel_device; @@ -357,22 +362,22 @@ self_reselect_device (self); }} -#line 361 "xfce-mixer-settingsbox.c" +#line 366 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ -#line 101 "mixer-settingsbox.gob" +#line 109 "mixer-settingsbox.gob" void xfce_mixer_settingsbox_save (XfceMixerSettingsbox * self) -#line 367 "xfce-mixer-settingsbox.c" +#line 372 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::save" -#line 101 "mixer-settingsbox.gob" +#line 109 "mixer-settingsbox.gob" g_return_if_fail (self != NULL); -#line 101 "mixer-settingsbox.gob" +#line 109 "mixer-settingsbox.gob" g_return_if_fail (XFCE_IS_MIXER_SETTINGSBOX (self)); -#line 374 "xfce-mixer-settingsbox.c" +#line 379 "xfce-mixer-settingsbox.c" { -#line 102 "mixer-settingsbox.gob" +#line 110 "mixer-settingsbox.gob" if (!self->manager) return; @@ -384,42 +389,42 @@ } mcs_manager_notify (self->manager, CHANNEL); }} -#line 388 "xfce-mixer-settingsbox.c" +#line 393 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ -#line 191 "mixer-settingsbox.gob" +#line 199 "mixer-settingsbox.gob" static void xfce_mixer_settingsbox_device_changed_t_cb (XfceMixerSettingsbox * self, GtkOptionMenu * om) -#line 395 "xfce-mixer-settingsbox.c" +#line 400 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::device_changed_t_cb" -#line 191 "mixer-settingsbox.gob" +#line 199 "mixer-settingsbox.gob" g_return_if_fail (self != NULL); -#line 191 "mixer-settingsbox.gob" +#line 199 "mixer-settingsbox.gob" g_return_if_fail (XFCE_IS_MIXER_SETTINGSBOX (self)); -#line 402 "xfce-mixer-settingsbox.c" +#line 407 "xfce-mixer-settingsbox.c" { -#line 192 "mixer-settingsbox.gob" +#line 200 "mixer-settingsbox.gob" self_device_changed_cb (self); }} -#line 408 "xfce-mixer-settingsbox.c" +#line 413 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ -#line 196 "mixer-settingsbox.gob" +#line 204 "mixer-settingsbox.gob" void xfce_mixer_settingsbox_device_changed_cb (XfceMixerSettingsbox * self) -#line 414 "xfce-mixer-settingsbox.c" +#line 419 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::device_changed_cb" -#line 196 "mixer-settingsbox.gob" +#line 204 "mixer-settingsbox.gob" g_return_if_fail (self != NULL); -#line 196 "mixer-settingsbox.gob" +#line 204 "mixer-settingsbox.gob" g_return_if_fail (XFCE_IS_MIXER_SETTINGSBOX (self)); -#line 421 "xfce-mixer-settingsbox.c" +#line 426 "xfce-mixer-settingsbox.c" { -#line 197 "mixer-settingsbox.gob" +#line 205 "mixer-settingsbox.gob" gchar const *s; GList *g; @@ -445,7 +450,9 @@ gtk_label_set_text (self->dev_label, s); TRACE ("set vc device"); + vc_set_volume_callback (NULL, NULL); vc_set_device (s); + vc_set_volume_callback (volume_event_cb, self); TRACE ("free sel_device"); if (self->sel_device) { g_free (self->sel_device); @@ -493,22 +500,22 @@ mcs_manager_notify (self->manager, CHANNEL); }} -#line 497 "xfce-mixer-settingsbox.c" +#line 504 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ -#line 271 "mixer-settingsbox.gob" +#line 281 "mixer-settingsbox.gob" void xfce_mixer_settingsbox_devicelst_updated (XfceMixerSettingsbox * self) -#line 503 "xfce-mixer-settingsbox.c" +#line 510 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::devicelst_updated" -#line 271 "mixer-settingsbox.gob" +#line 281 "mixer-settingsbox.gob" g_return_if_fail (self != NULL); -#line 271 "mixer-settingsbox.gob" +#line 281 "mixer-settingsbox.gob" g_return_if_fail (XFCE_IS_MIXER_SETTINGSBOX (self)); -#line 510 "xfce-mixer-settingsbox.c" +#line 517 "xfce-mixer-settingsbox.c" { -#line 272 "mixer-settingsbox.gob" +#line 282 "mixer-settingsbox.gob" gint i; gint cnt; @@ -553,22 +560,22 @@ if (old_sel_device) g_free (old_sel_device); }} -#line 557 "xfce-mixer-settingsbox.c" +#line 564 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ -#line 317 "mixer-settingsbox.gob" +#line 327 "mixer-settingsbox.gob" void xfce_mixer_settingsbox_reselect_device (XfceMixerSettingsbox * self) -#line 563 "xfce-mixer-settingsbox.c" +#line 570 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::reselect_device" -#line 317 "mixer-settingsbox.gob" +#line 327 "mixer-settingsbox.gob" g_return_if_fail (self != NULL); -#line 317 "mixer-settingsbox.gob" +#line 327 "mixer-settingsbox.gob" g_return_if_fail (XFCE_IS_MIXER_SETTINGSBOX (self)); -#line 570 "xfce-mixer-settingsbox.c" +#line 577 "xfce-mixer-settingsbox.c" { -#line 318 "mixer-settingsbox.gob" +#line 328 "mixer-settingsbox.gob" gint cnt; gint i; @@ -589,44 +596,44 @@ self_device_changed_cb (self); } }} -#line 593 "xfce-mixer-settingsbox.c" +#line 600 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ -#line 339 "mixer-settingsbox.gob" +#line 349 "mixer-settingsbox.gob" static gchar * xfce_mixer_settingsbox_mcs_s_name (XfceMixerSettingsbox * self) -#line 599 "xfce-mixer-settingsbox.c" +#line 606 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::mcs_s_name" -#line 339 "mixer-settingsbox.gob" +#line 349 "mixer-settingsbox.gob" g_return_val_if_fail (self != NULL, (gchar * )0); -#line 339 "mixer-settingsbox.gob" +#line 349 "mixer-settingsbox.gob" g_return_val_if_fail (XFCE_IS_MIXER_SETTINGSBOX (self), (gchar * )0); -#line 606 "xfce-mixer-settingsbox.c" +#line 613 "xfce-mixer-settingsbox.c" { -#line 340 "mixer-settingsbox.gob" +#line 350 "mixer-settingsbox.gob" if (!self->sel_device) return NULL; return g_strdup_printf (MIXER_USEFUL_FMT, self->sel_device); }} -#line 615 "xfce-mixer-settingsbox.c" +#line 622 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ -#line 347 "mixer-settingsbox.gob" +#line 357 "mixer-settingsbox.gob" void xfce_mixer_settingsbox_fill_right_box (XfceMixerSettingsbox * self) -#line 621 "xfce-mixer-settingsbox.c" +#line 628 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::fill_right_box" -#line 347 "mixer-settingsbox.gob" +#line 357 "mixer-settingsbox.gob" g_return_if_fail (self != NULL); -#line 347 "mixer-settingsbox.gob" +#line 357 "mixer-settingsbox.gob" g_return_if_fail (XFCE_IS_MIXER_SETTINGSBOX (self)); -#line 628 "xfce-mixer-settingsbox.c" +#line 635 "xfce-mixer-settingsbox.c" { -#line 348 "mixer-settingsbox.gob" +#line 358 "mixer-settingsbox.gob" gchar *n; gchar *s; @@ -700,22 +707,22 @@ /*g_free (all);*/ TRACE ("leave fill"); }} -#line 704 "xfce-mixer-settingsbox.c" +#line 711 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ -#line 422 "mixer-settingsbox.gob" +#line 432 "mixer-settingsbox.gob" void xfce_mixer_settingsbox_apply_right_box (XfceMixerSettingsbox * self) -#line 710 "xfce-mixer-settingsbox.c" +#line 717 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::apply_right_box" -#line 422 "mixer-settingsbox.gob" +#line 432 "mixer-settingsbox.gob" g_return_if_fail (self != NULL); -#line 422 "mixer-settingsbox.gob" +#line 432 "mixer-settingsbox.gob" g_return_if_fail (XFCE_IS_MIXER_SETTINGSBOX (self)); -#line 717 "xfce-mixer-settingsbox.c" +#line 724 "xfce-mixer-settingsbox.c" { -#line 423 "mixer-settingsbox.gob" +#line 433 "mixer-settingsbox.gob" gchar *n; gchar *v; @@ -770,19 +777,19 @@ TRACE ("leave apply_right_box"); }} -#line 774 "xfce-mixer-settingsbox.c" +#line 781 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ -#line 478 "mixer-settingsbox.gob" +#line 488 "mixer-settingsbox.gob" XfceMixerSettingsbox * xfce_mixer_settingsbox_new (void) -#line 780 "xfce-mixer-settingsbox.c" +#line 787 "xfce-mixer-settingsbox.c" { #define __GOB_FUNCTION__ "Xfce:Mixer:Settingsbox::new" { -#line 479 "mixer-settingsbox.gob" +#line 489 "mixer-settingsbox.gob" return XFCE_MIXER_SETTINGSBOX (GET_NEW); }} -#line 788 "xfce-mixer-settingsbox.c" +#line 795 "xfce-mixer-settingsbox.c" #undef __GOB_FUNCTION__ Modified: xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox.h =================================================================== --- xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox.h 2009-01-11 19:37:33 UTC (rev 29173) +++ xfce4-mixer/branches/xfce_4_4/settings/xfce-mixer-settingsbox.h 2009-01-11 19:46:39 UTC (rev 29174) @@ -1,4 +1,4 @@ -/* Generated by GOB (v2.0.14) (do not edit directly) */ +/* Generated by GOB (v2.0.15) (do not edit directly) */ #include <glib.h> #include <glib-object.h> _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits