hal: add primary output validity check during voip device switch
When voip uses primary output in rx path, primary output needs to
check before getting its output device during device swtich.
AUDIO_SOURCE_VOICE_COMMUNICATION is added for voip tx to avoid
other record tx device is changed.
CRs-Fixed: 2331640
Change-Id: I6380cb422f847d9c778a411628d95792cee23d18
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 1594be2..79be457 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -2143,13 +2143,14 @@
out_snd_device = platform_get_output_snd_device(adev->platform,
usecase->stream.out);
voip_usecase = get_usecase_from_list(adev, USECASE_AUDIO_PLAYBACK_VOIP);
- if (voip_usecase == NULL)
+ if (voip_usecase == NULL && adev->primary_output && !adev->primary_output->standby)
voip_usecase = get_usecase_from_list(adev, adev->primary_output->usecase);
if ((usecase->stream.out != NULL &&
voip_usecase != NULL &&
usecase->stream.out->usecase == voip_usecase->id) &&
adev->active_input &&
+ adev->active_input->source == AUDIO_SOURCE_VOICE_COMMUNICATION &&
out_snd_device != usecase->out_snd_device) {
select_devices(adev, adev->active_input->usecase);
}