summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2012-10-11 10:42:16 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2012-10-12 18:02:33 +0300
commit89bf85768c4fcabb704c957cae56f839ecbbde70 (patch)
treed918da3441735fcdf3fd1a14fc1e3302c356bd3a /src
parent389d4f1c80e8afdd55b2aeec28cc785b55a0a43d (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.c67
-rw-r--r--src/device.h2
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,