Loading hal/audio_hw.c +10 −0 Original line number Diff line number Diff line Loading @@ -2618,6 +2618,14 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs) } } ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_BT_SCO_WB, value, sizeof(value)); if (ret >= 0) { if (strcmp(value, AUDIO_PARAMETER_VALUE_ON) == 0) adev->bt_wb_speech_enabled = true; else adev->bt_wb_speech_enabled = false; } audio_extn_set_parameters(adev, parms); done: Loading Loading @@ -2984,6 +2992,8 @@ static int adev_open(const hw_module_t *module, const char *name, } } adev->bt_wb_speech_enabled = false; *device = &adev->device.common; audio_extn_utils_update_streams_output_cfg_list(adev->platform, adev->mixer, Loading hal/audio_hw.h +1 −0 Original line number Diff line number Diff line Loading @@ -269,6 +269,7 @@ struct audio_device { struct voice voice; unsigned int cur_hdmi_channels; unsigned int cur_wfd_channels; bool bt_wb_speech_enabled; int snd_card; void *platform; Loading hal/msm8916/platform.c +5 −18 Original line number Diff line number Diff line Loading @@ -86,7 +86,6 @@ #define SAMPLE_RATE_16KHZ 16000 #define AUDIO_PARAMETER_KEY_FLUENCE_TYPE "fluence" #define AUDIO_PARAMETER_KEY_BTSCO "bt_samplerate" #define AUDIO_PARAMETER_KEY_SLOWTALK "st_enable" #define AUDIO_PARAMETER_KEY_VOLUME_BOOST "volume_boost" Loading Loading @@ -117,7 +116,6 @@ struct platform_data { bool fluence_in_audio_rec; int fluence_type; char fluence_cap[PROPERTY_VALUE_MAX]; int btsco_sample_rate; bool slowtalk; /* Audio calibration related functions */ void *acdb_handle; Loading Loading @@ -658,7 +656,6 @@ void *platform_init(struct audio_device *adev) } my_data->adev = adev; my_data->btsco_sample_rate = SAMPLE_RATE_8KHZ; my_data->fluence_in_spkr_mode = false; my_data->fluence_in_voice_call = false; my_data->fluence_in_voice_rec = false; Loading Loading @@ -1280,7 +1277,7 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; } } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; Loading Loading @@ -1319,7 +1316,7 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi else snd_device = SND_DEVICE_OUT_SPEAKER; } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; Loading Loading @@ -1405,7 +1402,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d snd_device = SND_DEVICE_IN_VOICE_HEADSET_MIC; set_echo_reference(adev->mixer, EC_REF_RX); } else if (out_device & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1543,7 +1540,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) { snd_device = SND_DEVICE_IN_HEADSET_MIC; } else if (in_device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1572,7 +1569,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) { snd_device = SND_DEVICE_IN_HANDSET_MIC; } else if (out_device & AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1722,16 +1719,6 @@ int platform_set_parameters(void *platform, struct str_parms *parms) ALOGV("%s: enter: %s", __func__, str_parms_to_str(parms)); err = str_parms_get_int(parms, AUDIO_PARAMETER_KEY_BTSCO, &val); if (err >= 0) { str_parms_del(parms, AUDIO_PARAMETER_KEY_BTSCO); my_data->btsco_sample_rate = val; if (val == SAMPLE_RATE_16KHZ) { audio_route_apply_and_update_path(my_data->adev->audio_route, "bt-sco-wb-samplerate"); } } err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SLOWTALK, value, sizeof(value)); if (err >= 0) { bool state = false; Loading hal/msm8960/platform.c +24 −5 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ 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_BT_SCO_WB] = "bt-sco-headset-wb", [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", Loading @@ -140,6 +141,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_HEADSET_MIC] = "voice-headset-mic", [SND_DEVICE_IN_HDMI_MIC] = "hdmi-mic", [SND_DEVICE_IN_BT_SCO_MIC] = "bt-sco-mic", [SND_DEVICE_IN_BT_SCO_MIC_WB] = "bt-sco-mic-wb", [SND_DEVICE_IN_CAMCORDER_MIC] = "camcorder-mic", [SND_DEVICE_IN_VOICE_DMIC] = "voice-dmic-ef", [SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = "voice-speaker-dmic-ef", Loading @@ -164,6 +166,7 @@ static const int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_HDMI] = 18, [SND_DEVICE_OUT_SPEAKER_AND_HDMI] = 14, [SND_DEVICE_OUT_BT_SCO] = 22, [SND_DEVICE_OUT_BT_SCO_WB] = 39, [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = 37, Loading @@ -178,6 +181,7 @@ static const int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_HEADSET_MIC] = 8, [SND_DEVICE_IN_HDMI_MIC] = 4, [SND_DEVICE_IN_BT_SCO_MIC] = 21, [SND_DEVICE_IN_BT_SCO_MIC_WB] = 38, [SND_DEVICE_IN_CAMCORDER_MIC] = 61, [SND_DEVICE_IN_VOICE_DMIC] = 6, [SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = 13, Loading Loading @@ -587,6 +591,9 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi else snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; } else if (devices & AUDIO_DEVICE_OUT_SPEAKER) { snd_device = SND_DEVICE_OUT_VOICE_SPEAKER; Loading Loading @@ -631,6 +638,9 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi else snd_device = SND_DEVICE_OUT_SPEAKER; } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; } else if (devices & AUDIO_DEVICE_OUT_AUX_DIGITAL) { snd_device = SND_DEVICE_OUT_HDMI ; Loading Loading @@ -697,6 +707,9 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADSET) { snd_device = SND_DEVICE_IN_VOICE_HEADSET_MIC; } else if (out_device & AUDIO_DEVICE_OUT_ALL_SCO) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; } else if (out_device & AUDIO_DEVICE_OUT_SPEAKER) { if (my_data->fluence_type != FLUENCE_NONE && Loading Loading @@ -765,6 +778,9 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) { snd_device = SND_DEVICE_IN_HEADSET_MIC; } else if (in_device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; } else if (in_device & AUDIO_DEVICE_IN_AUX_DIGITAL) { snd_device = SND_DEVICE_IN_HDMI_MIC; Loading @@ -783,6 +799,9 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) { snd_device = SND_DEVICE_IN_HANDSET_MIC; } else if (out_device & AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; } else if (out_device & AUDIO_DEVICE_OUT_AUX_DIGITAL) { snd_device = SND_DEVICE_IN_HDMI_MIC; Loading hal/msm8974/platform.c +5 −14 Original line number Diff line number Diff line Loading @@ -86,7 +86,6 @@ #define SAMPLE_RATE_16KHZ 16000 #define AUDIO_PARAMETER_KEY_FLUENCE_TYPE "fluence" #define AUDIO_PARAMETER_KEY_BTSCO "bt_samplerate" #define AUDIO_PARAMETER_KEY_SLOWTALK "st_enable" #define AUDIO_PARAMETER_KEY_VOLUME_BOOST "volume_boost" /* Query external audio device connection status */ Loading Loading @@ -127,7 +126,6 @@ struct platform_data { int fluence_type; int fluence_mode; char fluence_cap[PROPERTY_VALUE_MAX]; int btsco_sample_rate; bool slowtalk; bool is_i2s_ext_modem; /* Audio calibration related functions */ Loading Loading @@ -715,7 +713,6 @@ void *platform_init(struct audio_device *adev) } my_data->adev = adev; my_data->btsco_sample_rate = SAMPLE_RATE_8KHZ; my_data->fluence_in_spkr_mode = false; my_data->fluence_in_voice_call = false; my_data->fluence_in_voice_rec = false; Loading Loading @@ -1393,7 +1390,7 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; } } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; Loading Loading @@ -1436,7 +1433,7 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi else snd_device = SND_DEVICE_OUT_SPEAKER; } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; Loading Loading @@ -1539,7 +1536,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d 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) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1690,7 +1687,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) { snd_device = SND_DEVICE_IN_HEADSET_MIC; } else if (in_device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1719,7 +1716,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) { snd_device = SND_DEVICE_IN_HANDSET_MIC; } else if (out_device & AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1899,12 +1896,6 @@ int platform_set_parameters(void *platform, struct str_parms *parms) ALOGV_IF(kv_pairs != NULL, "%s: enter: %s", __func__, kv_pairs); err = str_parms_get_int(parms, AUDIO_PARAMETER_KEY_BTSCO, &val); if (err >= 0) { str_parms_del(parms, AUDIO_PARAMETER_KEY_BTSCO); my_data->btsco_sample_rate = val; } err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SLOWTALK, value, sizeof(value)); if (err >= 0) { bool state = false; Loading Loading
hal/audio_hw.c +10 −0 Original line number Diff line number Diff line Loading @@ -2618,6 +2618,14 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs) } } ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_BT_SCO_WB, value, sizeof(value)); if (ret >= 0) { if (strcmp(value, AUDIO_PARAMETER_VALUE_ON) == 0) adev->bt_wb_speech_enabled = true; else adev->bt_wb_speech_enabled = false; } audio_extn_set_parameters(adev, parms); done: Loading Loading @@ -2984,6 +2992,8 @@ static int adev_open(const hw_module_t *module, const char *name, } } adev->bt_wb_speech_enabled = false; *device = &adev->device.common; audio_extn_utils_update_streams_output_cfg_list(adev->platform, adev->mixer, Loading
hal/audio_hw.h +1 −0 Original line number Diff line number Diff line Loading @@ -269,6 +269,7 @@ struct audio_device { struct voice voice; unsigned int cur_hdmi_channels; unsigned int cur_wfd_channels; bool bt_wb_speech_enabled; int snd_card; void *platform; Loading
hal/msm8916/platform.c +5 −18 Original line number Diff line number Diff line Loading @@ -86,7 +86,6 @@ #define SAMPLE_RATE_16KHZ 16000 #define AUDIO_PARAMETER_KEY_FLUENCE_TYPE "fluence" #define AUDIO_PARAMETER_KEY_BTSCO "bt_samplerate" #define AUDIO_PARAMETER_KEY_SLOWTALK "st_enable" #define AUDIO_PARAMETER_KEY_VOLUME_BOOST "volume_boost" Loading Loading @@ -117,7 +116,6 @@ struct platform_data { bool fluence_in_audio_rec; int fluence_type; char fluence_cap[PROPERTY_VALUE_MAX]; int btsco_sample_rate; bool slowtalk; /* Audio calibration related functions */ void *acdb_handle; Loading Loading @@ -658,7 +656,6 @@ void *platform_init(struct audio_device *adev) } my_data->adev = adev; my_data->btsco_sample_rate = SAMPLE_RATE_8KHZ; my_data->fluence_in_spkr_mode = false; my_data->fluence_in_voice_call = false; my_data->fluence_in_voice_rec = false; Loading Loading @@ -1280,7 +1277,7 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; } } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; Loading Loading @@ -1319,7 +1316,7 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi else snd_device = SND_DEVICE_OUT_SPEAKER; } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; Loading Loading @@ -1405,7 +1402,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d snd_device = SND_DEVICE_IN_VOICE_HEADSET_MIC; set_echo_reference(adev->mixer, EC_REF_RX); } else if (out_device & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1543,7 +1540,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) { snd_device = SND_DEVICE_IN_HEADSET_MIC; } else if (in_device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1572,7 +1569,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) { snd_device = SND_DEVICE_IN_HANDSET_MIC; } else if (out_device & AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1722,16 +1719,6 @@ int platform_set_parameters(void *platform, struct str_parms *parms) ALOGV("%s: enter: %s", __func__, str_parms_to_str(parms)); err = str_parms_get_int(parms, AUDIO_PARAMETER_KEY_BTSCO, &val); if (err >= 0) { str_parms_del(parms, AUDIO_PARAMETER_KEY_BTSCO); my_data->btsco_sample_rate = val; if (val == SAMPLE_RATE_16KHZ) { audio_route_apply_and_update_path(my_data->adev->audio_route, "bt-sco-wb-samplerate"); } } err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SLOWTALK, value, sizeof(value)); if (err >= 0) { bool state = false; Loading
hal/msm8960/platform.c +24 −5 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ 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_BT_SCO_WB] = "bt-sco-headset-wb", [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", Loading @@ -140,6 +141,7 @@ static const char * const device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_HEADSET_MIC] = "voice-headset-mic", [SND_DEVICE_IN_HDMI_MIC] = "hdmi-mic", [SND_DEVICE_IN_BT_SCO_MIC] = "bt-sco-mic", [SND_DEVICE_IN_BT_SCO_MIC_WB] = "bt-sco-mic-wb", [SND_DEVICE_IN_CAMCORDER_MIC] = "camcorder-mic", [SND_DEVICE_IN_VOICE_DMIC] = "voice-dmic-ef", [SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = "voice-speaker-dmic-ef", Loading @@ -164,6 +166,7 @@ static const int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_OUT_HDMI] = 18, [SND_DEVICE_OUT_SPEAKER_AND_HDMI] = 14, [SND_DEVICE_OUT_BT_SCO] = 22, [SND_DEVICE_OUT_BT_SCO_WB] = 39, [SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES] = 17, [SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET] = 37, Loading @@ -178,6 +181,7 @@ static const int acdb_device_table[SND_DEVICE_MAX] = { [SND_DEVICE_IN_VOICE_HEADSET_MIC] = 8, [SND_DEVICE_IN_HDMI_MIC] = 4, [SND_DEVICE_IN_BT_SCO_MIC] = 21, [SND_DEVICE_IN_BT_SCO_MIC_WB] = 38, [SND_DEVICE_IN_CAMCORDER_MIC] = 61, [SND_DEVICE_IN_VOICE_DMIC] = 6, [SND_DEVICE_IN_VOICE_SPEAKER_DMIC] = 13, Loading Loading @@ -587,6 +591,9 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi else snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; } else if (devices & AUDIO_DEVICE_OUT_SPEAKER) { snd_device = SND_DEVICE_OUT_VOICE_SPEAKER; Loading Loading @@ -631,6 +638,9 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi else snd_device = SND_DEVICE_OUT_SPEAKER; } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; } else if (devices & AUDIO_DEVICE_OUT_AUX_DIGITAL) { snd_device = SND_DEVICE_OUT_HDMI ; Loading Loading @@ -697,6 +707,9 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADSET) { snd_device = SND_DEVICE_IN_VOICE_HEADSET_MIC; } else if (out_device & AUDIO_DEVICE_OUT_ALL_SCO) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; } else if (out_device & AUDIO_DEVICE_OUT_SPEAKER) { if (my_data->fluence_type != FLUENCE_NONE && Loading Loading @@ -765,6 +778,9 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) { snd_device = SND_DEVICE_IN_HEADSET_MIC; } else if (in_device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; } else if (in_device & AUDIO_DEVICE_IN_AUX_DIGITAL) { snd_device = SND_DEVICE_IN_HDMI_MIC; Loading @@ -783,6 +799,9 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) { snd_device = SND_DEVICE_IN_HANDSET_MIC; } else if (out_device & AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) { if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; } else if (out_device & AUDIO_DEVICE_OUT_AUX_DIGITAL) { snd_device = SND_DEVICE_IN_HDMI_MIC; Loading
hal/msm8974/platform.c +5 −14 Original line number Diff line number Diff line Loading @@ -86,7 +86,6 @@ #define SAMPLE_RATE_16KHZ 16000 #define AUDIO_PARAMETER_KEY_FLUENCE_TYPE "fluence" #define AUDIO_PARAMETER_KEY_BTSCO "bt_samplerate" #define AUDIO_PARAMETER_KEY_SLOWTALK "st_enable" #define AUDIO_PARAMETER_KEY_VOLUME_BOOST "volume_boost" /* Query external audio device connection status */ Loading Loading @@ -127,7 +126,6 @@ struct platform_data { int fluence_type; int fluence_mode; char fluence_cap[PROPERTY_VALUE_MAX]; int btsco_sample_rate; bool slowtalk; bool is_i2s_ext_modem; /* Audio calibration related functions */ Loading Loading @@ -715,7 +713,6 @@ void *platform_init(struct audio_device *adev) } my_data->adev = adev; my_data->btsco_sample_rate = SAMPLE_RATE_8KHZ; my_data->fluence_in_spkr_mode = false; my_data->fluence_in_voice_call = false; my_data->fluence_in_voice_rec = false; Loading Loading @@ -1393,7 +1390,7 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi snd_device = SND_DEVICE_OUT_VOICE_HEADPHONES; } } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; Loading Loading @@ -1436,7 +1433,7 @@ snd_device_t platform_get_output_snd_device(void *platform, audio_devices_t devi else snd_device = SND_DEVICE_OUT_SPEAKER; } else if (devices & AUDIO_DEVICE_OUT_ALL_SCO) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_OUT_BT_SCO_WB; else snd_device = SND_DEVICE_OUT_BT_SCO; Loading Loading @@ -1539,7 +1536,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d 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) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1690,7 +1687,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) { snd_device = SND_DEVICE_IN_HEADSET_MIC; } else if (in_device & AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1719,7 +1716,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d } else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) { snd_device = SND_DEVICE_IN_HANDSET_MIC; } else if (out_device & AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) { if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ) if (adev->bt_wb_speech_enabled) snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB; else snd_device = SND_DEVICE_IN_BT_SCO_MIC; Loading Loading @@ -1899,12 +1896,6 @@ int platform_set_parameters(void *platform, struct str_parms *parms) ALOGV_IF(kv_pairs != NULL, "%s: enter: %s", __func__, kv_pairs); err = str_parms_get_int(parms, AUDIO_PARAMETER_KEY_BTSCO, &val); if (err >= 0) { str_parms_del(parms, AUDIO_PARAMETER_KEY_BTSCO); my_data->btsco_sample_rate = val; } err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SLOWTALK, value, sizeof(value)); if (err >= 0) { bool state = false; Loading