bluetooth: Add hook to announce late UUIDs

UUIDs might be announced at any time, so a hook is needed to notify any
interested module. In practice, the UUIDs are quite stable with the
exception of the pairing procedure, where the UUIDs are reported by
BlueZ as soon as they are discovered.
This commit is contained in:
Mikel Astiz 2012-10-23 16:41:59 +02:00 committed by Tanu Kaskinen
parent a9c3f2fb0f
commit d0be10191e
2 changed files with 9 additions and 0 deletions

View file

@ -383,9 +383,17 @@ static int parse_device_property(pa_bluetooth_discovery *y, pa_bluetooth_device
const char *value;
dbus_message_iter_get_basic(&ai, &value);
if (pa_bluetooth_uuid_has(d->uuids, value)) {
dbus_message_iter_next(&ai);
continue;
}
node = uuid_new(value);
PA_LLIST_PREPEND(pa_bluetooth_uuid, d->uuids, node);
pa_hook_fire(&d->hooks[PA_BLUETOOTH_DEVICE_HOOK_UUID_ADDED], (char *) value);
/* Vudentz said the interfaces are here when the UUIDs are announced */
if (strcasecmp(HSP_AG_UUID, value) == 0 || strcasecmp(HFP_AG_UUID, value) == 0) {
pa_assert_se(m = dbus_message_new_method_call("org.bluez", d->path, "org.bluez.HandsfreeGateway", "GetProperties"));