[Xfce4-commits] r29174 - xfce4-mixer/branches/xfce_4_4/settings

Danny Milosavljevic dannym at xfce.org
Sun Jan 11 20:46:39 CET 2009


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>




More information about the Xfce4-commits mailing list