plugins/service: Add AutoConnect property
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 7 Feb 2014 14:56:41 +0000 (16:56 +0200)
committerMikko Ylinen <mikko.ylinen@intel.com>
Tue, 23 Sep 2014 18:29:47 +0000 (21:29 +0300)
plugins/service.c

index c2584c0..bca3abd 100644 (file)
@@ -236,12 +236,46 @@ static gboolean get_version(const GDBusPropertyTable *property,
        return TRUE;
 }
 
+static gboolean get_auto_connect(const GDBusPropertyTable *property,
+                                       DBusMessageIter *iter, void *user_data)
+{
+       struct service_data *data = user_data;
+       dbus_bool_t value = btd_service_get_auto_connect(data->service);
+
+       dbus_message_iter_append_basic(iter, DBUS_TYPE_BOOLEAN, &value);
+
+       return TRUE;
+}
+
+static void set_auto_connect(const GDBusPropertyTable *property,
+                                               DBusMessageIter *value,
+                                               GDBusPendingPropertySet id,
+                                               void *user_data)
+{
+       struct service_data *data = user_data;
+       dbus_bool_t b;
+
+       if (dbus_message_iter_get_arg_type(value) != DBUS_TYPE_BOOLEAN) {
+               g_dbus_pending_property_error(id,
+                                       ERROR_INTERFACE ".InvalidArguments",
+                                       "Invalid arguments in method call");
+               return;
+       }
+
+       dbus_message_iter_get_basic(value, &b);
+
+       btd_service_set_auto_connect(data->service, b);
+
+       g_dbus_pending_property_success(id);
+}
+
 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 },
        { "Version", "q", get_version, NULL, version_exists },
+       { "AutoConnect", "b", get_auto_connect, set_auto_connect, NULL },
        { }
 };