plugins/service: Add Device property
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 28 Jan 2014 17:43:53 +0000 (09:43 -0800)
committerMikko Ylinen <mikko.ylinen@intel.com>
Tue, 23 Sep 2014 18:29:47 +0000 (21:29 +0300)
plugins/service.c

index 69bae8f..128ad7c 100644 (file)
@@ -150,6 +150,18 @@ static const char *data_get_state(struct service_data *data)
        return "unknown";
 }
 
+static gboolean get_device(const GDBusPropertyTable *property,
+                                       DBusMessageIter *iter, void *user_data)
+{
+       struct service_data *data = user_data;
+       struct btd_device *dev = btd_service_get_device(data->service);
+       const char *path = btd_device_get_path(dev);
+
+       dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, &path);
+
+       return TRUE;
+}
+
 static gboolean get_state(const GDBusPropertyTable *property,
                                        DBusMessageIter *iter, void *user_data)
 {
@@ -205,6 +217,7 @@ static gboolean get_local_uuid(const GDBusPropertyTable *property,
 }
 
 static const GDBusPropertyTable service_properties[] = {
+       { "Device", "o", get_device, NULL, NULL },
        { "State", "s", get_state, NULL, NULL },
        { "RemoteUUID", "s", get_remote_uuid, NULL, remote_uuid_exists },
        { "LocalUUID", "s", get_local_uuid, NULL, local_uuid_exists },