[gnome-bluetooth/moblin-dev] Add a default-adaptor-discoverable property
- From: Ross Burton <rburton src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-bluetooth/moblin-dev] Add a default-adaptor-discoverable property
- Date: Thu, 25 Feb 2010 13:33:41 +0000 (UTC)
commit baae07340272e55b748aae48ac5b7430b6d78203
Author: Ross Burton <ross linux intel com>
Date: Thu Feb 25 13:30:07 2010 +0000
Add a default-adaptor-discoverable property
lib/bluetooth-client.c | 29 ++++++++++++++++++++++++++---
1 files changed, 26 insertions(+), 3 deletions(-)
---
diff --git a/lib/bluetooth-client.c b/lib/bluetooth-client.c
index 725b4d5..6eb8de4 100644
--- a/lib/bluetooth-client.c
+++ b/lib/bluetooth-client.c
@@ -102,12 +102,14 @@ struct _BluetoothClientPrivate {
GtkTreeStore *store;
char *default_adapter;
gboolean default_adapter_powered;
+ gboolean default_adapter_discoverable;
};
enum {
PROP_0,
PROP_DEFAULT_ADAPTER,
PROP_DEFAULT_ADAPTER_POWERED,
+ PROP_DEFAULT_ADAPTER_DISCOVERABLE
};
G_DEFINE_TYPE(BluetoothClient, bluetooth_client, G_TYPE_OBJECT)
@@ -911,10 +913,18 @@ static void adapter_changed(DBusGProxy *adapter, const char *property,
}
} else if (g_str_equal(property, "Discoverable") == TRUE) {
gboolean discoverable = g_value_get_boolean(value);
+ gboolean is_default;
gtk_tree_store_set(priv->store, &iter,
BLUETOOTH_COLUMN_DISCOVERABLE, discoverable, -1);
notify = TRUE;
+
+ gtk_tree_model_get(GTK_TREE_MODEL(priv->store), &iter,
+ BLUETOOTH_COLUMN_DEFAULT, &is_default, -1);
+ if (is_default != FALSE && discoverable != priv->default_adapter_discoverable) {
+ priv->default_adapter_discoverable = discoverable;
+ g_object_notify (G_OBJECT (client), "default-adapter-discoverable");
+ }
}
if (notify != FALSE) {
@@ -1066,8 +1076,10 @@ static void adapter_removed(DBusGProxy *manager,
g_free(priv->default_adapter);
priv->default_adapter = NULL;
priv->default_adapter_powered = FALSE;
+ priv->default_adapter_discoverable = FALSE;
g_object_notify (G_OBJECT (client), "default-adapter");
g_object_notify (G_OBJECT (client), "default-adapter-powered");
+ g_object_notify (G_OBJECT (client), "default-adapter-discoverable");
}
}
@@ -1087,11 +1099,13 @@ static void default_adapter_changed(DBusGProxy *manager,
while (cont == TRUE) {
DBusGProxy *adapter;
const char *adapter_path;
- gboolean found, powered;
+ gboolean found, powered, discoverable;
gtk_tree_model_get(GTK_TREE_MODEL(priv->store), &iter,
BLUETOOTH_COLUMN_PROXY, &adapter,
- BLUETOOTH_COLUMN_POWERED, &powered, -1);
+ BLUETOOTH_COLUMN_POWERED, &powered,
+ BLUETOOTH_COLUMN_DISCOVERABLE, &discoverable,
+ -1);
adapter_path = dbus_g_proxy_get_path(adapter);
@@ -1099,8 +1113,10 @@ static void default_adapter_changed(DBusGProxy *manager,
g_object_unref(adapter);
- if (found != FALSE)
+ if (found != FALSE) {
priv->default_adapter_powered = powered;
+ priv->default_adapter_discoverable = discoverable;
+ }
gtk_tree_store_set(priv->store, &iter,
BLUETOOTH_COLUMN_DEFAULT, found, -1);
@@ -1114,6 +1130,7 @@ static void default_adapter_changed(DBusGProxy *manager,
priv->default_adapter = g_strdup(path);
g_object_notify (G_OBJECT (client), "default-adapter");
g_object_notify (G_OBJECT (client), "default-adapter-powered");
+ g_object_notify (G_OBJECT (client), "default-adapter-discoverable");
}
static void name_owner_changed(DBusGProxy *dbus, const char *name,
@@ -1211,6 +1228,9 @@ bluetooth_client_get_property (GObject *object,
case PROP_DEFAULT_ADAPTER_POWERED:
g_value_set_boolean (value, priv->default_adapter_powered);
break;
+ case PROP_DEFAULT_ADAPTER_DISCOVERABLE:
+ g_value_set_boolean (value, priv->default_adapter_discoverable);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
break;
@@ -1292,6 +1312,9 @@ static void bluetooth_client_class_init(BluetoothClientClass *klass)
g_object_class_install_property (object_class, PROP_DEFAULT_ADAPTER_POWERED,
g_param_spec_boolean ("default-adapter-powered", NULL, NULL,
FALSE, G_PARAM_READWRITE));
+ g_object_class_install_property (object_class, PROP_DEFAULT_ADAPTER_DISCOVERABLE,
+ g_param_spec_boolean ("default-adapter-discoverable", 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]