|
|
|
@ -284,9 +284,6 @@ static const char * const device_table[SND_DEVICE_MAX] = { |
|
|
|
|
[SND_DEVICE_OUT_HDMI] = "hdmi", |
|
|
|
|
[SND_DEVICE_OUT_SPEAKER_AND_HDMI] = "speaker-and-hdmi", |
|
|
|
|
[SND_DEVICE_OUT_BT_SCO] = "bt-sco-headset", |
|
|
|
|
[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", |
|
|
|
|
|
|
|
|
|
/* Capture sound devices */ |
|
|
|
|
[SND_DEVICE_IN_EARPIECE_MIC] = "earpiece-mic", |
|
|
|
@ -302,9 +299,6 @@ static const char * const device_table[SND_DEVICE_MAX] = { |
|
|
|
|
[SND_DEVICE_IN_CAMCORDER_MIC] = "camcorder-mic", |
|
|
|
|
[SND_DEVICE_IN_VOICE_DMIC_1] = "voice-dmic-1", |
|
|
|
|
[SND_DEVICE_IN_VOICE_SPEAKER_DMIC_1] = "voice-speaker-dmic-1", |
|
|
|
|
[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_REC_HEADSET_MIC] = "voice-rec-headset-mic", |
|
|
|
|
[SND_DEVICE_IN_VOICE_REC_MIC] = "voice-rec-mic", |
|
|
|
|
[SND_DEVICE_IN_VOICE_REC_DMIC_1] = "voice-rec-dmic-1", |
|
|
|
@ -495,14 +489,7 @@ static snd_device_t get_output_snd_device(struct audio_device *adev, audio_devic |
|
|
|
|
if (mode == AUDIO_MODE_IN_CALL) { |
|
|
|
|
if (devices & AUDIO_DEVICE_OUT_WIRED_HEADPHONE || |
|
|
|
|
devices & AUDIO_DEVICE_OUT_WIRED_HEADSET) { |
|
|
|
|
if (adev->tty_mode == TTY_MODE_FULL) |
|
|
|
|
snd_device = SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES; |
|
|
|
|
else if (adev->tty_mode == TTY_MODE_VCO) |
|
|
|
|
snd_device = SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES; |
|
|
|
|
else if (adev->tty_mode == TTY_MODE_HCO) |
|
|
|
|
snd_device = SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET; |
|
|
|
|
else |
|
|
|
|
snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; |
|
|
|
|
snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; |
|
|
|
|
} else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { |
|
|
|
|
snd_device = SND_DEVICE_OUT_BT_SCO; |
|
|
|
|
} else if (devices & AUDIO_DEVICE_OUT_SPEAKER) { |
|
|
|
@ -583,25 +570,7 @@ static snd_device_t get_input_snd_device(struct audio_device *adev, audio_device |
|
|
|
|
ALOGE("%s: No output device set for voice call", __func__); |
|
|
|
|
goto exit; |
|
|
|
|
} |
|
|
|
|
if (adev->tty_mode != TTY_MODE_OFF) { |
|
|
|
|
if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE || |
|
|
|
|
out_device & AUDIO_DEVICE_OUT_WIRED_HEADSET) { |
|
|
|
|
switch (adev->tty_mode) { |
|
|
|
|
case TTY_MODE_FULL: |
|
|
|
|
snd_device = SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC; |
|
|
|
|
break; |
|
|
|
|
case TTY_MODE_VCO: |
|
|
|
|
snd_device = SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC; |
|
|
|
|
break; |
|
|
|
|
case TTY_MODE_HCO: |
|
|
|
|
snd_device = SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
ALOGE("%s: Invalid TTY mode (%#x)", __func__, adev->tty_mode); |
|
|
|
|
} |
|
|
|
|
goto exit; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (out_device & AUDIO_DEVICE_OUT_EARPIECE || |
|
|
|
|
out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) { |
|
|
|
|
snd_device = SND_DEVICE_IN_EARPIECE_MIC; |
|
|
|
@ -3786,29 +3755,6 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs) |
|
|
|
|
ALOGV("%s: enter: %s", __func__, kvpairs); |
|
|
|
|
|
|
|
|
|
parms = str_parms_create_str(kvpairs); |
|
|
|
|
ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_TTY_MODE, value, sizeof(value)); |
|
|
|
|
if (ret >= 0) { |
|
|
|
|
int tty_mode; |
|
|
|
|
|
|
|
|
|
if (strcmp(value, AUDIO_PARAMETER_VALUE_TTY_OFF) == 0) |
|
|
|
|
tty_mode = TTY_MODE_OFF; |
|
|
|
|
else if (strcmp(value, AUDIO_PARAMETER_VALUE_TTY_VCO) == 0) |
|
|
|
|
tty_mode = TTY_MODE_VCO; |
|
|
|
|
else if (strcmp(value, AUDIO_PARAMETER_VALUE_TTY_HCO) == 0) |
|
|
|
|
tty_mode = TTY_MODE_HCO; |
|
|
|
|
else if (strcmp(value, AUDIO_PARAMETER_VALUE_TTY_FULL) == 0) |
|
|
|
|
tty_mode = TTY_MODE_FULL; |
|
|
|
|
else |
|
|
|
|
return -EINVAL; |
|
|
|
|
|
|
|
|
|
pthread_mutex_lock(&adev->lock); |
|
|
|
|
if (tty_mode != adev->tty_mode) { |
|
|
|
|
adev->tty_mode = tty_mode; |
|
|
|
|
if (adev->in_call) |
|
|
|
|
select_devices(adev, USECASE_VOICE_CALL); |
|
|
|
|
} |
|
|
|
|
pthread_mutex_unlock(&adev->lock); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_BT_NREC, value, sizeof(value)); |
|
|
|
|
if (ret >= 0) { |
|
|
|
@ -4199,7 +4145,6 @@ static int adev_open(const hw_module_t *module, const char *name, |
|
|
|
|
adev->active_input = NULL; |
|
|
|
|
adev->primary_output = NULL; |
|
|
|
|
adev->voice_volume = 1.0f; |
|
|
|
|
adev->tty_mode = TTY_MODE_OFF; |
|
|
|
|
adev->bluetooth_nrec = true; |
|
|
|
|
adev->in_call = false; |
|
|
|
|
/* adev->cur_hdmi_channels = 0; by calloc() */ |
|
|
|
|