2010-12-23 21:33:07

by Sheldon Demario

[permalink] [raw]
Subject: [PATCH] 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.
---
doc/adapter-api.txt | 3 ++-
src/adapter.c | 8 ++++++++
2 files changed, 10 insertions(+), 1 deletions(-)

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 @@ Signals PropertyChanged(string name, variant value)
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 @@ void adapter_emit_device_found(struct btd_adapter *adapter,
}

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;
}
--
1.7.3.2



2010-12-23 22:40:10

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] Add Broadcaster property in DeviceFound signal

Hi Sheldon,

On Thu, Dec 23, 2010, Sheldon Demario wrote:
> 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.
> ---
> doc/adapter-api.txt | 3 ++-
> src/adapter.c | 8 ++++++++
> 2 files changed, 10 insertions(+), 1 deletions(-)

Pushed upstream after I reformated your commit message to properly fit a
80 column wide terminal. Please pay attention to that in the future.

Johan