hal: Fix device selection at start of the voice call
Voice call setup latency value is exceeding 500 msec. It is due to primary output selecting handset instead of voice handset causing the extra delay. Fix this by selecting voice handset when the mode is set to MODE_IN_CALL. CRs-Fixed: 855783 Change-Id: Ibfaee75d658bffbcf2e9cdeaa589e0487c214b41
This commit is contained in:
parent
67d99afbe0
commit
5cd79b8d59
|
@ -2230,7 +2230,8 @@ snd_device_t platform_get_output_snd_device(void *platform, struct stream_out *o
|
|||
goto exit;
|
||||
}
|
||||
|
||||
if (voice_is_in_call(adev) || voice_extn_compress_voip_is_active(adev)) {
|
||||
if ((mode == AUDIO_MODE_IN_CALL) ||
|
||||
voice_extn_compress_voip_is_active(adev)) {
|
||||
if (devices & AUDIO_DEVICE_OUT_WIRED_HEADPHONE ||
|
||||
devices & AUDIO_DEVICE_OUT_WIRED_HEADSET) {
|
||||
if ((adev->voice.tty_mode != TTY_MODE_OFF) &&
|
||||
|
@ -2382,8 +2383,8 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
|
|||
ALOGV("%s: enter: out_device(%#x) in_device(%#x)",
|
||||
__func__, out_device, in_device);
|
||||
if (my_data->external_mic) {
|
||||
if ((out_device != AUDIO_DEVICE_NONE && voice_is_in_call(adev)) ||
|
||||
voice_extn_compress_voip_is_active(adev) || audio_extn_hfp_is_active(adev)) {
|
||||
if ((out_device != AUDIO_DEVICE_NONE) && ((mode == AUDIO_MODE_IN_CALL) ||
|
||||
voice_extn_compress_voip_is_active(adev) || audio_extn_hfp_is_active(adev))) {
|
||||
if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE ||
|
||||
out_device & AUDIO_DEVICE_OUT_EARPIECE ||
|
||||
out_device & AUDIO_DEVICE_OUT_SPEAKER )
|
||||
|
@ -2397,7 +2398,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
|
|||
if (snd_device != AUDIO_DEVICE_NONE)
|
||||
goto exit;
|
||||
|
||||
if ((out_device != AUDIO_DEVICE_NONE) && ((voice_is_in_call(adev)) ||
|
||||
if ((out_device != AUDIO_DEVICE_NONE) && ((mode == AUDIO_MODE_IN_CALL) ||
|
||||
voice_extn_compress_voip_is_active(adev) || audio_extn_hfp_is_active(adev))) {
|
||||
if ((adev->voice.tty_mode != TTY_MODE_OFF) &&
|
||||
!voice_extn_compress_voip_is_active(adev)) {
|
||||
|
|
|
@ -676,7 +676,7 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi
|
|||
goto exit;
|
||||
}
|
||||
|
||||
if (voice_is_in_call(adev)) {
|
||||
if (mode == AUDIO_MODE_IN_CALL) {
|
||||
if (devices & AUDIO_DEVICE_OUT_WIRED_HEADPHONE ||
|
||||
devices & AUDIO_DEVICE_OUT_WIRED_HEADSET) {
|
||||
if (adev->voice.tty_mode == TTY_MODE_FULL)
|
||||
|
@ -768,7 +768,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
|
|||
|
||||
ALOGV("%s: enter: out_device(%#x) in_device(%#x)",
|
||||
__func__, out_device, in_device);
|
||||
if ((out_device != AUDIO_DEVICE_NONE) && voice_is_in_call(adev)) {
|
||||
if ((out_device != AUDIO_DEVICE_NONE) && (mode == AUDIO_MODE_IN_CALL)) {
|
||||
if (adev->voice.tty_mode != TTY_MODE_OFF) {
|
||||
if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE ||
|
||||
out_device & AUDIO_DEVICE_OUT_WIRED_HEADSET) {
|
||||
|
|
|
@ -2059,7 +2059,7 @@ snd_device_t platform_get_output_snd_device(void *platform, struct stream_out *o
|
|||
goto exit;
|
||||
}
|
||||
|
||||
if (voice_is_in_call(adev) ||
|
||||
if ((mode == AUDIO_MODE_IN_CALL) ||
|
||||
voice_extn_compress_voip_is_active(adev)) {
|
||||
if (devices & AUDIO_DEVICE_OUT_WIRED_HEADPHONE ||
|
||||
devices & AUDIO_DEVICE_OUT_WIRED_HEADSET) {
|
||||
|
@ -2182,8 +2182,8 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
|
|||
ALOGV("%s: enter: out_device(%#x) in_device(%#x)",
|
||||
__func__, out_device, in_device);
|
||||
if (my_data->external_mic) {
|
||||
if ((out_device != AUDIO_DEVICE_NONE && voice_is_in_call(adev)) ||
|
||||
voice_extn_compress_voip_is_active(adev) || audio_extn_hfp_is_active(adev)) {
|
||||
if ((out_device != AUDIO_DEVICE_NONE) && ((mode == AUDIO_MODE_IN_CALL) ||
|
||||
voice_extn_compress_voip_is_active(adev) || audio_extn_hfp_is_active(adev))) {
|
||||
if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE ||
|
||||
out_device & AUDIO_DEVICE_OUT_EARPIECE ||
|
||||
out_device & AUDIO_DEVICE_OUT_SPEAKER )
|
||||
|
@ -2197,7 +2197,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
|
|||
if (snd_device != AUDIO_DEVICE_NONE)
|
||||
goto exit;
|
||||
|
||||
if ((out_device != AUDIO_DEVICE_NONE) && ((voice_is_in_call(adev)) ||
|
||||
if ((out_device != AUDIO_DEVICE_NONE) && ((mode == AUDIO_MODE_IN_CALL) ||
|
||||
voice_extn_compress_voip_is_active(adev) || audio_extn_hfp_is_active(adev))) {
|
||||
if ((adev->voice.tty_mode != TTY_MODE_OFF) &&
|
||||
!voice_extn_compress_voip_is_active(adev)) {
|
||||
|
|
Loading…
Reference in New Issue