gnome-bluetooth r380 - trunk/common



Author: hadess
Date: Fri Feb 27 00:04:22 2009
New Revision: 380
URL: http://svn.gnome.org/viewvc/gnome-bluetooth?rev=380&view=rev

Log:
Add default-adapter-powered property

To know whether the default adapter is actually powered :)

Modified:
   trunk/common/bluetooth-client.c

Modified: trunk/common/bluetooth-client.c
==============================================================================
--- trunk/common/bluetooth-client.c	(original)
+++ trunk/common/bluetooth-client.c	Fri Feb 27 00:04:22 2009
@@ -72,11 +72,13 @@
 	DBusGProxy *manager;
 	GtkTreeStore *store;
 	char *default_adapter;
+	gboolean default_adapter_powered;
 };
 
 enum {
 	PROP_0,
 	PROP_DEFAULT_ADAPTER,
+	PROP_DEFAULT_ADAPTER_POWERED,
 };
 
 G_DEFINE_TYPE(BluetoothClient, bluetooth_client, G_TYPE_OBJECT)
@@ -516,6 +518,8 @@
 		/* Need to update those properties! */
 		adapter_get_properties(adapter, &hash, NULL);
 		if (hash != NULL) {
+			gboolean is_default;
+
 			value = g_hash_table_lookup(hash, "Address");
 			address = value ? g_value_get_string(value) : NULL;
 
@@ -536,6 +540,15 @@
 					   -1);
 			notify = TRUE;
 
+			/* Update the power setting */
+			gtk_tree_model_get(GTK_TREE_MODEL (priv->store), &iter,
+					   BLUETOOTH_COLUMN_DEFAULT, &is_default,
+					   -1);
+			if (is_default) {
+				priv->default_adapter_powered = powered;
+				g_object_notify (G_OBJECT (client), "default-adapter-powered");
+			}
+
 			adapter_list_devices(adapter, &array, NULL);
 			if (array != NULL) {
 				int i;
@@ -720,10 +733,11 @@
 	while (cont == TRUE) {
 		DBusGProxy *adapter;
 		const char *adapter_path;
-		gboolean found;
+		gboolean found, powered;
 
 		gtk_tree_model_get(GTK_TREE_MODEL(priv->store), &iter,
-					BLUETOOTH_COLUMN_PROXY, &adapter, -1);
+				   BLUETOOTH_COLUMN_PROXY, &adapter,
+				   BLUETOOTH_COLUMN_POWERED, &powered, -1);
 
 		adapter_path = dbus_g_proxy_get_path(adapter);
 
@@ -731,6 +745,9 @@
 
 		g_object_unref(adapter);
 
+		if (found != FALSE)
+			priv->default_adapter_powered = powered;
+
 		gtk_tree_store_set(priv->store, &iter,
 					BLUETOOTH_COLUMN_DEFAULT, found, -1);
 
@@ -742,6 +759,7 @@
 	g_free(priv->default_adapter);
 	priv->default_adapter = g_strdup(path);
 	g_object_notify (G_OBJECT (client), "default-adapter");
+	g_object_notify (G_OBJECT (client), "default-adapter-powered");
 }
 
 static void name_owner_changed(DBusGProxy *dbus, const char *name,
@@ -835,6 +853,9 @@
 	case PROP_DEFAULT_ADAPTER:
 		g_value_set_string (value, priv->default_adapter);
 		break;
+	case PROP_DEFAULT_ADAPTER_POWERED:
+		g_value_set_boolean (value, priv->default_adapter_powered);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
 		break;
@@ -883,6 +904,9 @@
 	g_object_class_install_property (object_class, PROP_DEFAULT_ADAPTER,
 					 g_param_spec_string ("default-adapter", NULL, NULL,
 							      NULL, G_PARAM_READABLE));
+	g_object_class_install_property (object_class, PROP_DEFAULT_ADAPTER_POWERED,
+					 g_param_spec_boolean ("default-adapter-powered", NULL, NULL,
+					 		       FALSE, G_PARAM_READABLE));
 
 	dbus_g_object_register_marshaller(marshal_VOID__STRING_BOXED,
 						G_TYPE_NONE, G_TYPE_STRING,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]