diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2014-02-08 14:46:18 +0200 |
---|---|---|
committer | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2016-03-09 18:17:23 +0000 |
commit | 38b8d8de47cff05e22cef76415599f425f27052c (patch) | |
tree | 7f4a8300ef483c647900424f09f1b03f12389552 | |
parent | ea2eb124f88f8b94eb27cd8b14b11de0582cfffc (diff) | |
download | bluez-baserock/pedroalvarez/5.37-17-g0879a80-v2.tar.gz |
plugins/service: Add Blocked propertybaserock/pedroalvarez/5.37-17-g0879a80-v2
-rw-r--r-- | plugins/service.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/plugins/service.c b/plugins/service.c index bca3abd81..d1db27864 100644 --- a/plugins/service.c +++ b/plugins/service.c @@ -269,6 +269,39 @@ static void set_auto_connect(const GDBusPropertyTable *property, g_dbus_pending_property_success(id); } +static gboolean get_blocked(const GDBusPropertyTable *property, + DBusMessageIter *iter, void *user_data) +{ + struct service_data *data = user_data; + dbus_bool_t value = btd_service_is_blocked(data->service); + + dbus_message_iter_append_basic(iter, DBUS_TYPE_BOOLEAN, &value); + + return TRUE; +} + +static void set_blocked(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_blocked(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 }, @@ -276,6 +309,7 @@ static const GDBusPropertyTable service_properties[] = { { "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 }, + { "Blocked", "b", get_blocked, set_blocked, NULL }, { } }; |