mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-01 22:58:47 -04:00
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:
parent
a9c3f2fb0f
commit
d0be10191e
2 changed files with 9 additions and 0 deletions
|
|
@ -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"));
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ typedef enum pa_bt_audio_state {
|
|||
/* Hook data: pa_bluetooth_device pointer. */
|
||||
typedef enum pa_bluetooth_device_hook {
|
||||
PA_BLUETOOTH_DEVICE_HOOK_REMOVED, /* Call data: NULL. */
|
||||
PA_BLUETOOTH_DEVICE_HOOK_UUID_ADDED, /* Call data: const char *uuid. */
|
||||
PA_BLUETOOTH_DEVICE_HOOK_MAX
|
||||
} pa_bluetooth_device_hook_t;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue