Add Broadcaster property in DeviceFound signal
Broadcaster property is required to distinguish the device role. If the
remote is sending an advertising event, two possible roles are possible:
Peripheral or Broadcaster.
This change is required to pass on qualification tests which require
filtering Broadcasting devices during General Discovery Procedure.
diff --git a/doc/adapter-api.txt b/doc/adapter-api.txt
index f287f29..5272d74 100644
--- a/doc/adapter-api.txt
+++ b/doc/adapter-api.txt
@@ -185,7 +185,8 @@
The dictionary can contain basically the same values
that are returned by the GetProperties method
from the org.bluez.Device interface. In addition there
- can be values for the RSSI and the TX power level.
+ can be values for the RSSI, the TX power level and
+ Broadcaster role.
DeviceDisappeared(string address)
diff --git a/src/adapter.c b/src/adapter.c
index bf92211..fddf0ad 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -2829,12 +2829,20 @@
}
if (dev->le) {
+ gboolean broadcaster;
+
+ if (dev->flags & (EIR_LIM_DISC | EIR_GEN_DISC))
+ broadcaster = FALSE;
+ else
+ broadcaster = TRUE;
+
emit_device_found(adapter->path, paddr,
"Address", DBUS_TYPE_STRING, &paddr,
"RSSI", DBUS_TYPE_INT16, &rssi,
"Name", DBUS_TYPE_STRING, &dev->name,
"Paired", DBUS_TYPE_BOOLEAN, &paired,
"UUIDs", DBUS_TYPE_ARRAY, &dev->uuids,
+ "Broadcaster", DBUS_TYPE_BOOLEAN, &broadcaster,
dev->uuid_count, NULL);
return;
}