summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Mower <mowerm@gmail.com>2016-10-18 01:00:31 -0500
committerMatt Mower <mowerm@gmail.com>2016-10-25 17:14:36 -0500
commitd7a7351153d29ad653842afd86e3a950f09d249c (patch)
tree9dec23b077b16402ca10717540df15dfc469e34a
parent2cd66eb4beb1e9cc397f9f129fc74f620205922d (diff)
downloadandroid_hardware_qcom_audio-d7a7351153d29ad653842afd86e3a950f09d249c.tar.gz
android_hardware_qcom_audio-d7a7351153d29ad653842afd86e3a950f09d249c.tar.bz2
android_hardware_qcom_audio-d7a7351153d29ad653842afd86e3a950f09d249c.zip
hal: Additional checks for dedicated VOIP input
Enable use of dedicated VOIP input devices under the following conditions: SND_DEVICE_IN_VOIP_SPEAKER_MIC: If fluence_in_spkr_mode==true, the device used for VOIP_SPEAKER_MIC is expected to be dualmic (note there is no separate VOIP_SPEAKER_DMIC). If instead, fluence_in_spkr_mode==false and a dedicated voip device is desired, then an echo reference is set. SND_DEVICE_IN_VOIP_HANDSET_MIC: If fluence_in_voice_call==true, the device used for VOIP_HANDSET_MIC is expected to be dualmic (note there is no separate VOIP_HANDSET_DMIC). If instead fluence_in_voice_call==false and a dedicated voip device is desired, then an echo reference is set. SND_DEVICE_IN_VOIP_HEADSET_MIC: Never uses dualmic, so an echo reference is always set. Change-Id: Iba2a33f7520b4f03c5857a0c7bd8a30d3d1caedb
-rw-r--r--hal/msm8960/platform.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c
index c5361368..b7fa98ac 100644
--- a/hal/msm8960/platform.c
+++ b/hal/msm8960/platform.c
@@ -1534,13 +1534,25 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
snd_device = SND_DEVICE_IN_AANC_HANDSET_MIC;
} else if (my_data->fluence_type == FLUENCE_NONE ||
my_data->fluence_in_voice_call == false) {
- snd_device = SND_DEVICE_IN_HANDSET_MIC;
+ if (voice_extn_compress_voip_is_active(adev) &&
+ voice_extn_dedicated_voip_device_prop_check())
+ snd_device = SND_DEVICE_IN_VOIP_HANDSET_MIC;
+ else
+ snd_device = SND_DEVICE_IN_HANDSET_MIC;
set_echo_reference(adev, true);
} else {
- snd_device = SND_DEVICE_IN_VOICE_DMIC;
+ if (voice_extn_compress_voip_is_active(adev) &&
+ voice_extn_dedicated_voip_device_prop_check())
+ snd_device = SND_DEVICE_IN_VOIP_HANDSET_MIC;
+ else
+ snd_device = SND_DEVICE_IN_VOICE_DMIC;
}
} else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADSET) {
- snd_device = SND_DEVICE_IN_VOICE_HEADSET_MIC;
+ if (voice_extn_compress_voip_is_active(adev) &&
+ voice_extn_dedicated_voip_device_prop_check())
+ snd_device = SND_DEVICE_IN_VOIP_HEADSET_MIC;
+ else
+ snd_device = SND_DEVICE_IN_VOICE_HEADSET_MIC;
set_echo_reference(adev, true);
} else if (out_device & AUDIO_DEVICE_OUT_ALL_SCO) {
if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ)
@@ -1553,11 +1565,18 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
my_data->fluence_in_spkr_mode) {
if(my_data->fluence_type & FLUENCE_QUAD_MIC) {
snd_device = SND_DEVICE_IN_VOICE_SPEAKER_QMIC;
+ } else if (voice_extn_compress_voip_is_active(adev) &&
+ voice_extn_dedicated_voip_device_prop_check()) {
+ snd_device = SND_DEVICE_IN_VOIP_SPEAKER_MIC;
} else {
snd_device = SND_DEVICE_IN_VOICE_SPEAKER_DMIC;
}
} else {
- snd_device = SND_DEVICE_IN_VOICE_SPEAKER_MIC;
+ if (voice_extn_compress_voip_is_active(adev) &&
+ voice_extn_dedicated_voip_device_prop_check())
+ snd_device = SND_DEVICE_IN_VOIP_SPEAKER_MIC;
+ else
+ snd_device = SND_DEVICE_IN_VOICE_SPEAKER_MIC;
set_echo_reference(adev, true);
}
} else if (out_device & AUDIO_DEVICE_OUT_TELEPHONY_TX)