diff options
author | Alexander Orlenko <zxteam@gmail.com> | 2010-10-10 21:59:20 +1100 |
---|---|---|
committer | Alexander Orlenko <zxteam@gmail.com> | 2010-10-10 21:59:20 +1100 |
commit | 788d6554613da5da1577d24485ae414037b444c0 (patch) | |
tree | 93c88fada450da5fedf2b20fa9b8068aaf2f54da | |
parent | 51f655b61a70ec0c0d479048d15e324fe035bcbb (diff) | |
download | bluez-tools-788d6554613da5da1577d24485ae414037b444c0.tar.gz |
GObjects updated
-rw-r--r-- | src/lib/bluez/device.c | 28 | ||||
-rw-r--r-- | src/lib/bluez/device.h | 1 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/lib/bluez/device.c b/src/lib/bluez/device.c index 8824593..7cc6bc0 100644 --- a/src/lib/bluez/device.c +++ b/src/lib/bluez/device.c @@ -55,6 +55,7 @@ struct _DevicePrivate { gboolean legacy_pairing; gchar *name; gboolean paired; + GPtrArray *services; gboolean trusted; gchar **uuids; }; @@ -75,6 +76,7 @@ enum { PROP_LEGACY_PAIRING, /* readonly */ PROP_NAME, /* readonly */ PROP_PAIRED, /* readonly */ + PROP_SERVICES, /* readonly */ PROP_TRUSTED, /* readwrite */ PROP_UUIDS /* readonly */ }; @@ -108,6 +110,7 @@ static void device_dispose(GObject *gobject) g_free(self->priv->alias); g_free(self->priv->icon); g_free(self->priv->name); + g_ptr_array_unref(self->priv->services); g_strfreev(self->priv->uuids); /* Proxy free */ @@ -179,6 +182,10 @@ static void device_class_init(DeviceClass *klass) pspec = g_param_spec_boolean("Paired", NULL, NULL, FALSE, G_PARAM_READABLE); g_object_class_install_property(gobject_class, PROP_PAIRED, pspec); + /* array{object} Services [readonly] */ + pspec = g_param_spec_boxed("Services", NULL, NULL, G_TYPE_PTR_ARRAY, G_PARAM_READABLE); + g_object_class_install_property(gobject_class, PROP_SERVICES, pspec); + /* boolean Trusted [readwrite] */ pspec = g_param_spec_boolean("Trusted", NULL, NULL, FALSE, G_PARAM_READWRITE); g_object_class_install_property(gobject_class, PROP_TRUSTED, pspec); @@ -325,6 +332,13 @@ static void device_post_init(Device *self, const gchar *dbus_object_path) self->priv->paired = FALSE; } + /* array{object} Services [readonly] */ + if (g_hash_table_lookup(properties, "Services")) { + self->priv->services = g_value_dup_boxed(g_hash_table_lookup(properties, "Services")); + } else { + self->priv->services = g_ptr_array_new(); + } + /* boolean Trusted [readwrite] */ if (g_hash_table_lookup(properties, "Trusted")) { self->priv->trusted = g_value_get_boolean(g_hash_table_lookup(properties, "Trusted")); @@ -392,6 +406,10 @@ static void _device_get_property(GObject *object, guint property_id, GValue *val g_value_set_boolean(value, device_get_paired(self)); break; + case PROP_SERVICES: + g_value_set_boxed(value, device_get_services(self)); + break; + case PROP_TRUSTED: g_value_set_boolean(value, device_get_trusted(self)); break; @@ -601,6 +619,13 @@ const gboolean device_get_paired(Device *self) return self->priv->paired; } +const GPtrArray *device_get_services(Device *self) +{ + g_assert(DEVICE_IS(self)); + + return self->priv->services; +} + const gboolean device_get_trusted(Device *self) { g_assert(DEVICE_IS(self)); @@ -670,6 +695,9 @@ static void property_changed_handler(DBusGProxy *dbus_g_proxy, const gchar *name self->priv->name = g_value_dup_string(value); } else if (g_strcmp0(name, "Paired") == 0) { self->priv->paired = g_value_get_boolean(value); + } else if (g_strcmp0(name, "Services") == 0) { + g_ptr_array_unref(self->priv->services); + self->priv->services = g_value_dup_boxed(value); } else if (g_strcmp0(name, "Trusted") == 0) { self->priv->trusted = g_value_get_boolean(value); } else if (g_strcmp0(name, "UUIDs") == 0) { diff --git a/src/lib/bluez/device.h b/src/lib/bluez/device.h index 98cb3a6..c4f6e2f 100644 --- a/src/lib/bluez/device.h +++ b/src/lib/bluez/device.h @@ -78,6 +78,7 @@ const gchar *device_get_icon(Device *self); const gboolean device_get_legacy_pairing(Device *self); const gchar *device_get_name(Device *self); const gboolean device_get_paired(Device *self); +const GPtrArray *device_get_services(Device *self); const gboolean device_get_trusted(Device *self); void device_set_trusted(Device *self, const gboolean value); const gchar **device_get_uuids(Device *self); |