mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
bluetooth: Fix missing state checks for a2dp_source
Profile a2dp_source, just like any other card profile, should have state guards when the profile is being changed. If the BlueZ interface is not connected, the profile should be set to "off".
This commit is contained in:
parent
d59275599a
commit
33e5802df2
1 changed files with 5 additions and 1 deletions
|
|
@ -1969,7 +1969,10 @@ static int card_set_profile(pa_card *c, pa_card_profile *new_profile) {
|
|||
pa_log_warn("HSP is not connected, refused to switch profile");
|
||||
return -PA_ERR_IO;
|
||||
} else if (device->audio_sink_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_A2DP) {
|
||||
pa_log_warn("A2DP is not connected, refused to switch profile");
|
||||
pa_log_warn("A2DP Sink is not connected, refused to switch profile");
|
||||
return -PA_ERR_IO;
|
||||
} else if (device->audio_source_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_A2DP_SOURCE) {
|
||||
pa_log_warn("A2DP Source is not connected, refused to switch profile");
|
||||
return -PA_ERR_IO;
|
||||
} else if (device->hfgw_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_HFGW) {
|
||||
pa_log_warn("HandsfreeGateway is not connected, refused to switch profile");
|
||||
|
|
@ -2225,6 +2228,7 @@ static int add_card(struct userdata *u, const pa_bluetooth_device *device) {
|
|||
|
||||
if ((device->headset_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_HSP) ||
|
||||
(device->audio_sink_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_A2DP) ||
|
||||
(device->audio_source_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_A2DP_SOURCE) ||
|
||||
(device->hfgw_state < PA_BT_AUDIO_STATE_CONNECTED && *d == PROFILE_HFGW)) {
|
||||
pa_log_warn("Default profile not connected, selecting off profile");
|
||||
u->card->active_profile = pa_hashmap_get(u->card->profiles, "off");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue