mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-05 13:29:57 -05:00
bluetooth: Don't mark device valid before it has an adapter
At this point this doesn't make any other practical difference than making the code more logical, but in the next patch I'll fire the DEVICE_CONNECTION_CHANGED hook in set_device_info_valid(), and at that point it's important that the device isn't marked valid too early, because otherwise external code would see "valid" devices that however don't have the adapter set.
This commit is contained in:
parent
f4f4c42fc6
commit
6633c1f9ff
1 changed files with 13 additions and 3 deletions
|
|
@ -634,7 +634,12 @@ static int parse_device_properties(pa_bluetooth_device *d, DBusMessageIter *i, b
|
|||
return -1;
|
||||
}
|
||||
|
||||
set_device_info_valid(d, 1);
|
||||
if (!is_property_change && d->adapter)
|
||||
set_device_info_valid(d, 1);
|
||||
|
||||
/* If d->adapter is NULL, device_info_valid will be left as 0, and updated
|
||||
* after all interfaces have been parsed. */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -813,14 +818,19 @@ static void parse_interfaces_and_properties(pa_bluetooth_discovery *y, DBusMessa
|
|||
dbus_message_iter_next(&element_i);
|
||||
}
|
||||
|
||||
PA_HASHMAP_FOREACH(d, y->devices, state)
|
||||
PA_HASHMAP_FOREACH(d, y->devices, state) {
|
||||
if (d->device_info_valid != 0)
|
||||
continue;
|
||||
|
||||
if (!d->adapter && d->adapter_path) {
|
||||
d->adapter = pa_hashmap_get(d->discovery->adapters, d->adapter_path);
|
||||
if (!d->adapter) {
|
||||
pa_log_error("Device %s is child of nonexistent adapter %s", d->path, d->adapter_path);
|
||||
set_device_info_valid(d, -1);
|
||||
}
|
||||
} else
|
||||
set_device_info_valid(d, 1);
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue