mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-16 08:56:45 -05:00
bluez5: release transports on profile change
SCO transports have timer-delayed release, but they need to be released immediately when changing profiles to close connections before switching to A2DP.
This commit is contained in:
parent
6fd870a5f0
commit
511bafb436
3 changed files with 25 additions and 0 deletions
|
|
@ -1184,6 +1184,28 @@ int spa_bt_transport_release(struct spa_bt_transport *transport)
|
|||
return res;
|
||||
}
|
||||
|
||||
static int spa_bt_transport_release_now(struct spa_bt_transport *transport)
|
||||
{
|
||||
int res;
|
||||
|
||||
if (transport->acquire_refcount == 0)
|
||||
return 0;
|
||||
|
||||
spa_bt_transport_stop_release_timer(transport);
|
||||
res = spa_bt_transport_impl(transport, release, 0);
|
||||
if (res >= 0)
|
||||
transport->acquire_refcount = 0;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
int spa_bt_device_release_transports(struct spa_bt_device *device)
|
||||
{
|
||||
struct spa_bt_transport *t;
|
||||
spa_list_for_each(t, &device->transport_list, device_link)
|
||||
spa_bt_transport_release_now(t);
|
||||
}
|
||||
|
||||
static void spa_bt_transport_release_timer_event(struct spa_source *source)
|
||||
{
|
||||
struct spa_bt_transport *transport = source->data;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue