audio_hal : examine SCO device in the stream list before routing to SCO
when BT_SCO=ON arrive we are routing all usecase to SCO device
but sometime SCO device not updated to stream list,so again
device switched to previous device. To avoid that we check
SCO device availability in the stream list then routing to SCO.
Change-Id: I599e07b56527f0e087bb59254b16fcc9ca278520
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 8fc2961..8bf3dac 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -8763,13 +8763,13 @@
usecase = node_to_item(node, struct audio_usecase, list);
if (usecase->stream.in && (usecase->type == PCM_CAPTURE ||
usecase->type == VOICE_CALL) &&
- (!is_btsco_device(SND_DEVICE_NONE, usecase->in_snd_device))) {
+ (!is_btsco_device(SND_DEVICE_NONE, usecase->in_snd_device)) && (is_sco_in_device_type(&usecase->stream.in->device_list))) {
ALOGD("BT_SCO ON, switch all in use case to it");
select_devices(adev, usecase->id);
}
if (usecase->stream.out && (usecase->type == PCM_PLAYBACK ||
usecase->type == VOICE_CALL) &&
- (!is_btsco_device(usecase->out_snd_device, SND_DEVICE_NONE))) {
+ (!is_btsco_device(usecase->out_snd_device, SND_DEVICE_NONE)) && (is_sco_out_device_type(&usecase->stream.out->device_list))) {
ALOGD("BT_SCO ON, switch all out use case to it");
select_devices(adev, usecase->id);
}