Loading hal/msm8974/platform.c +57 −11 Original line number Diff line number Diff line Loading @@ -382,6 +382,8 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = "voice-tty-full-headphones", [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = "voice-tty-vco-headphones", [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = "voice-tty-hco-handset", [SND_DEVICE_OUT_VOICE_TTY_FULL_USB] = "voice-tty-full-usb", [SND_DEVICE_OUT_VOICE_TTY_VCO_USB] = "voice-tty-vco-usb", [SND_DEVICE_OUT_VOICE_TX] = "voice-tx", [SND_DEVICE_OUT_AFE_PROXY] = "afe-proxy", [SND_DEVICE_OUT_USB_HEADSET] = "usb-headset", Loading Loading @@ -441,6 +443,8 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = "voice-tty-full-headset-mic", [SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = "voice-tty-vco-handset-mic", [SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC] = "voice-tty-hco-headset-mic", [SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC] = "voice-tty-full-usb-mic", [SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC] = "voice-tty-hco-usb-mic", [SND_DEVICE_IN_VOICE_RX] = "voice-rx", [SND_DEVICE_IN_VOICE_REC_MIC] = "voice-rec-mic", Loading Loading @@ -518,6 +522,8 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = 37, [SND_DEVICE_OUT_VOICE_TTY_FULL_USB] = 17, [SND_DEVICE_OUT_VOICE_TTY_VCO_USB] = 17, [SND_DEVICE_OUT_VOICE_TX] = 45, [SND_DEVICE_OUT_AFE_PROXY] = 0, [SND_DEVICE_OUT_USB_HEADSET] = 45, Loading Loading @@ -572,6 +578,8 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = 16, [SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = 36, [SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC] = 16, [SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC] = 16, [SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC] = 16, [SND_DEVICE_IN_VOICE_RX] = 44, [SND_DEVICE_IN_VOICE_REC_MIC] = 4, Loading Loading @@ -649,6 +657,8 @@ static struct name_to_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_FULL_USB)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_VCO_USB)}, {TO_NAME_INDEX(SND_DEVICE_OUT_AFE_PROXY)}, {TO_NAME_INDEX(SND_DEVICE_OUT_USB_HEADSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_USB_HEADPHONES)}, Loading Loading @@ -702,6 +712,8 @@ static struct name_to_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_MIC_NS)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_DMIC_STEREO)}, Loading Loading @@ -3369,6 +3381,24 @@ snd_device_t platform_get_output_snd_device(void *platform, struct stream_out *o } else { snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; } } else if (devices & AUDIO_DEVICE_OUT_USB_DEVICE) { if (voice_is_in_call(adev)) { switch (adev->voice.tty_mode) { case TTY_MODE_FULL: snd_device = SND_DEVICE_OUT_VOICE_TTY_FULL_USB; break; case TTY_MODE_VCO: snd_device = SND_DEVICE_OUT_VOICE_TTY_VCO_USB; break; case TTY_MODE_HCO: // since Hearing will be on handset\speaker, use existing device snd_device = SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET; break; default: ALOGE("%s: Invalid TTY mode (%#x)", __func__, adev->voice.tty_mode); } } } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; Loading Loading @@ -3552,6 +3582,22 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d ALOGE("%s: Invalid TTY mode (%#x)", __func__, adev->voice.tty_mode); } goto exit; } else if (out_device & AUDIO_DEVICE_OUT_USB_DEVICE) { switch (adev->voice.tty_mode) { case TTY_MODE_FULL: snd_device = SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC; break; case TTY_MODE_VCO: // since voice will be captured from handset mic, use existing device snd_device = SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC; break; case TTY_MODE_HCO: snd_device = SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC; break; default: ALOGE("%s: Invalid TTY mode (%#x)", __func__, adev->voice.tty_mode); } goto exit; } } if (out_device & AUDIO_DEVICE_OUT_EARPIECE || Loading hal/msm8974/platform.h +4 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,8 @@ enum { SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET, SND_DEVICE_OUT_VOICE_TTY_FULL_USB, SND_DEVICE_OUT_VOICE_TTY_VCO_USB, SND_DEVICE_OUT_VOICE_TX, SND_DEVICE_OUT_AFE_PROXY, SND_DEVICE_OUT_USB_HEADSET, Loading Loading @@ -177,6 +179,8 @@ enum { SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC, SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC, SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC, SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC, SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC, SND_DEVICE_IN_VOICE_REC_MIC, SND_DEVICE_IN_VOICE_REC_MIC_NS, SND_DEVICE_IN_VOICE_REC_DMIC_STEREO, Loading Loading
hal/msm8974/platform.c +57 −11 Original line number Diff line number Diff line Loading @@ -382,6 +382,8 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = "voice-tty-full-headphones", [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = "voice-tty-vco-headphones", [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = "voice-tty-hco-handset", [SND_DEVICE_OUT_VOICE_TTY_FULL_USB] = "voice-tty-full-usb", [SND_DEVICE_OUT_VOICE_TTY_VCO_USB] = "voice-tty-vco-usb", [SND_DEVICE_OUT_VOICE_TX] = "voice-tx", [SND_DEVICE_OUT_AFE_PROXY] = "afe-proxy", [SND_DEVICE_OUT_USB_HEADSET] = "usb-headset", Loading Loading @@ -441,6 +443,8 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = "voice-tty-full-headset-mic", [SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = "voice-tty-vco-handset-mic", [SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC] = "voice-tty-hco-headset-mic", [SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC] = "voice-tty-full-usb-mic", [SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC] = "voice-tty-hco-usb-mic", [SND_DEVICE_IN_VOICE_RX] = "voice-rx", [SND_DEVICE_IN_VOICE_REC_MIC] = "voice-rec-mic", Loading Loading @@ -518,6 +522,8 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = 37, [SND_DEVICE_OUT_VOICE_TTY_FULL_USB] = 17, [SND_DEVICE_OUT_VOICE_TTY_VCO_USB] = 17, [SND_DEVICE_OUT_VOICE_TX] = 45, [SND_DEVICE_OUT_AFE_PROXY] = 0, [SND_DEVICE_OUT_USB_HEADSET] = 45, Loading Loading @@ -572,6 +578,8 @@ static int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC] = 16, [SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC] = 36, [SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC] = 16, [SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC] = 16, [SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC] = 16, [SND_DEVICE_IN_VOICE_RX] = 44, [SND_DEVICE_IN_VOICE_REC_MIC] = 4, Loading Loading @@ -649,6 +657,8 @@ static struct name_to_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_FULL_USB)}, {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_TTY_VCO_USB)}, {TO_NAME_INDEX(SND_DEVICE_OUT_AFE_PROXY)}, {TO_NAME_INDEX(SND_DEVICE_OUT_USB_HEADSET)}, {TO_NAME_INDEX(SND_DEVICE_OUT_USB_HEADPHONES)}, Loading Loading @@ -702,6 +712,8 @@ static struct name_to_index snd_device_name_index[SND_DEVICE_MAX] = { {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_MIC)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_MIC_NS)}, {TO_NAME_INDEX(SND_DEVICE_IN_VOICE_REC_DMIC_STEREO)}, Loading Loading @@ -3369,6 +3381,24 @@ snd_device_t platform_get_output_snd_device(void *platform, struct stream_out *o } else { snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; } } else if (devices & AUDIO_DEVICE_OUT_USB_DEVICE) { if (voice_is_in_call(adev)) { switch (adev->voice.tty_mode) { case TTY_MODE_FULL: snd_device = SND_DEVICE_OUT_VOICE_TTY_FULL_USB; break; case TTY_MODE_VCO: snd_device = SND_DEVICE_OUT_VOICE_TTY_VCO_USB; break; case TTY_MODE_HCO: // since Hearing will be on handset\speaker, use existing device snd_device = SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET; break; default: ALOGE("%s: Invalid TTY mode (%#x)", __func__, adev->voice.tty_mode); } } } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; Loading Loading @@ -3552,6 +3582,22 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d ALOGE("%s: Invalid TTY mode (%#x)", __func__, adev->voice.tty_mode); } goto exit; } else if (out_device & AUDIO_DEVICE_OUT_USB_DEVICE) { switch (adev->voice.tty_mode) { case TTY_MODE_FULL: snd_device = SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC; break; case TTY_MODE_VCO: // since voice will be captured from handset mic, use existing device snd_device = SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC; break; case TTY_MODE_HCO: snd_device = SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC; break; default: ALOGE("%s: Invalid TTY mode (%#x)", __func__, adev->voice.tty_mode); } goto exit; } } if (out_device & AUDIO_DEVICE_OUT_EARPIECE || Loading
hal/msm8974/platform.h +4 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,8 @@ enum { SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES, SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET, SND_DEVICE_OUT_VOICE_TTY_FULL_USB, SND_DEVICE_OUT_VOICE_TTY_VCO_USB, SND_DEVICE_OUT_VOICE_TX, SND_DEVICE_OUT_AFE_PROXY, SND_DEVICE_OUT_USB_HEADSET, Loading Loading @@ -177,6 +179,8 @@ enum { SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC, SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC, SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC, SND_DEVICE_IN_VOICE_TTY_FULL_USB_MIC, SND_DEVICE_IN_VOICE_TTY_HCO_USB_MIC, SND_DEVICE_IN_VOICE_REC_MIC, SND_DEVICE_IN_VOICE_REC_MIC_NS, SND_DEVICE_IN_VOICE_REC_DMIC_STEREO, Loading