hal: enable sidetone for VoIP calls on voice path
Add support for sidetone for VoIP calls on voice path.
Enable/disbale sidetone during VoIP call set up/tear down
and also during device switch.
CRs-fixed: 890371
Change-Id: Ib79eed79ddcd2bfed1d9bc322195036736a67cb2
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 821b339..3fa45fe 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -918,8 +918,14 @@
(usecase->in_snd_device != SND_DEVICE_NONE) &&
(usecase->out_snd_device != SND_DEVICE_NONE)) {
status = platform_switch_voice_call_device_pre(adev->platform);
- /* Disable sidetone only if voice call already exists */
- if (voice_is_call_state_active(adev))
+ }
+
+ if (((usecase->type == VOICE_CALL) ||
+ (usecase->type == VOIP_CALL)) &&
+ (usecase->out_snd_device != SND_DEVICE_NONE)) {
+ /* Disable sidetone only if voice/voip call already exists */
+ if (voice_is_call_state_active(adev) ||
+ voice_extn_compress_voip_is_started(adev))
voice_set_sidetone(adev, usecase->out_snd_device, false);
}
@@ -963,8 +969,9 @@
out_snd_device,
in_snd_device);
enable_audio_route_for_voice_usecases(adev, usecase);
- /* Enable sidetone only if voice call already exists */
- if (voice_is_call_state_active(adev))
+ /* Enable sidetone only if voice/voip call already exists */
+ if (voice_is_call_state_active(adev) ||
+ voice_extn_compress_voip_is_started(adev))
voice_set_sidetone(adev, out_snd_device, true);
}