diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2012-10-11 10:42:16 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-10-12 18:02:33 +0300 |
commit | 89bf85768c4fcabb704c957cae56f839ecbbde70 (patch) | |
tree | d918da3441735fcdf3fd1a14fc1e3302c356bd3a /src | |
parent | 389d4f1c80e8afdd55b2aeec28cc785b55a0a43d (diff) |
device: Add LegacyPairing and RSSI properties
These are needed for the new device discovery where we create objects
for each found device.
Diffstat (limited to 'src')
-rw-r--r-- | src/device.c | 67 | ||||
-rw-r--r-- | src/device.h | 2 |
2 files changed, 69 insertions, 0 deletions
diff --git a/src/device.c b/src/device.c index 0635dee4..22686028 100644 --- a/src/device.c +++ b/src/device.c @@ -184,6 +184,9 @@ struct btd_device { gboolean bonded; gboolean auto_connect; + bool legacy; + int8_t rssi; + gint ref; GIOChannel *att_io; @@ -625,6 +628,36 @@ static gboolean dev_property_get_paired(const GDBusPropertyTable *property, return TRUE; } +static gboolean dev_property_get_legacy(const GDBusPropertyTable *property, + DBusMessageIter *iter, void *data) +{ + struct btd_device *device = data; + dbus_bool_t val = device->legacy; + + dbus_message_iter_append_basic(iter, DBUS_TYPE_BOOLEAN, &val); + + return TRUE; +} + +static gboolean dev_property_get_rssi(const GDBusPropertyTable *property, + DBusMessageIter *iter, void *data) +{ + struct btd_device *dev = data; + dbus_int16_t val = dev->rssi; + + dbus_message_iter_append_basic(iter, DBUS_TYPE_INT16, &val); + + return TRUE; +} + +static gboolean dev_property_exists_rssi(const GDBusPropertyTable *property, + void *data) +{ + struct btd_device *dev = data; + + return dev->rssi ? TRUE : FALSE; +} + static gboolean dev_property_get_trusted(const GDBusPropertyTable *property, DBusMessageIter *iter, void *data) { @@ -1272,6 +1305,8 @@ static const GDBusPropertyTable device_properties[] = { { "Paired", "b", dev_property_get_paired }, { "Trusted", "b", dev_property_get_trusted, dev_property_set_trusted }, { "Blocked", "b", dev_property_get_blocked, dev_property_set_blocked }, + { "LegacyPairing", "b", dev_property_get_legacy }, + { "RSSI", "n", dev_property_get_rssi, NULL, dev_property_exists_rssi }, { "Connected", "b", dev_property_get_connected }, { "UUIDs", "as", dev_property_get_uuids }, { "Services", "ao", dev_property_get_services }, @@ -2763,6 +2798,38 @@ void device_set_bonded(struct btd_device *device, gboolean bonded) device->bonded = bonded; } +void device_set_legacy(struct btd_device *device, bool legacy) +{ + if (!device) + return; + + DBG("legacy %d", legacy); + + if (device->legacy == legacy) + return; + + device->legacy = legacy; + + g_dbus_emit_property_changed(btd_get_dbus_connection(), device->path, + DEVICE_INTERFACE, "LegacyPairing"); +} + +void device_set_rssi(struct btd_device *device, int8_t rssi) +{ + if (!device) + return; + + DBG("rssi %d", rssi); + + if (device->rssi == rssi) + return; + + device->rssi = rssi; + + g_dbus_emit_property_changed(btd_get_dbus_connection(), device->path, + DEVICE_INTERFACE, "RSSI"); +} + void device_set_auto_connect(struct btd_device *device, gboolean enable) { char addr[18]; diff --git a/src/device.h b/src/device.h index 46cecb4a..99322b68 100644 --- a/src/device.h +++ b/src/device.h @@ -71,6 +71,8 @@ gboolean device_is_trusted(struct btd_device *device); void device_set_paired(struct btd_device *device, gboolean paired); void device_set_temporary(struct btd_device *device, gboolean temporary); void device_set_bonded(struct btd_device *device, gboolean bonded); +void device_set_legacy(struct btd_device *device, bool legacy); +void device_set_rssi(struct btd_device *device, int8_t rssi); void device_set_auto_connect(struct btd_device *device, gboolean enable); gboolean device_is_connected(struct btd_device *device); DBusMessage *device_create_bonding(struct btd_device *device, DBusMessage *msg, |