diff options
author | ty.lee <ty.lee@lge.com> | 2012-12-16 12:58:59 +0900 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2012-12-20 12:12:23 -0800 |
commit | 1c9f3b09a8fcdf65be0bdfa6cb832e6d2ec82fd3 (patch) | |
tree | 19739df0397a61cb3b89f7814423656a1260e035 | |
parent | 6ae807c434c814a2ba6a84198a536d3a4b4153de (diff) | |
download | audio-1c9f3b09a8fcdf65be0bdfa6cb832e6d2ec82fd3.tar.gz |
audio: separate calibration data for TMUS
When inserting TMUS SIM, we use different acoustic parameters in call.
Bug: 7716204
Change-Id: Ifce8d6ceb07e4474c28c8c9fe81c4457397e6d0c
-rw-r--r-- | alsa_sound/alsa_default.cpp | 41 | ||||
-rw-r--r-- | libalsa-intf/msm8960_use_cases.h | 4 |
2 files changed, 43 insertions, 2 deletions
diff --git a/alsa_sound/alsa_default.cpp b/alsa_sound/alsa_default.cpp index 7c2449e..55fe32d 100644 --- a/alsa_sound/alsa_default.cpp +++ b/alsa_sound/alsa_default.cpp @@ -78,11 +78,13 @@ static void s_enable_slow_talk(bool flag); static void s_set_voc_rec_mode(uint8_t mode); static void s_set_volte_mic_mute(int state); static void s_set_volte_volume(int vol); +static bool s_is_tmus(); #ifdef SEPERATED_AUDIO_INPUT static void s_setInput(int); static int input_source; #endif +static int mccmnc; #ifdef QCOM_CSDCLIENT_ENABLED static void s_set_csd_handle(void*); #endif @@ -1307,6 +1309,8 @@ static void disableDevice(alsa_handle_t *handle) char *getUCMDevice(uint32_t devices, int input, char *rxDevice) { + bool is_tmus = s_is_tmus(); + if (!input) { if (!(mDevSettingsFlag & TTY_OFF) && (callMode == AudioSystem::MODE_IN_CALL) && @@ -1349,7 +1353,10 @@ char *getUCMDevice(uint32_t devices, int input, char *rxDevice) #endif } else if (devices & AudioSystem::DEVICE_OUT_EARPIECE) { if (callMode == AudioSystem::MODE_IN_CALL) { - return strdup(SND_USE_CASE_DEV_VOC_EARPIECE); /* Voice HANDSET RX */ + if(is_tmus) + return strdup(SND_USE_CASE_DEV_VOC_EARPIECE_TMUS); /* Voice HANDSET RX for TMUS */ + else + return strdup(SND_USE_CASE_DEV_VOC_EARPIECE); /* Voice HANDSET RX */ } else return strdup(SND_USE_CASE_DEV_EARPIECE); /* HANDSET RX */ } else if (devices & AudioSystem::DEVICE_OUT_SPEAKER) { @@ -1439,7 +1446,10 @@ char *getUCMDevice(uint32_t devices, int input, char *rxDevice) #ifdef USES_FLUENCE_INCALL if(callMode == AudioSystem::MODE_IN_CALL) { if (fluence_mode == FLUENCE_MODE_ENDFIRE) { - return strdup(SND_USE_CASE_DEV_DUAL_MIC_ENDFIRE); /* DUALMIC EF TX */ + if(is_tmus) + return strdup(SND_USE_CASE_DEV_DUAL_MIC_ENDFIRE_TMUS); /* DUALMIC EF TX */ + else + return strdup(SND_USE_CASE_DEV_DUAL_MIC_ENDFIRE); /* DUALMIC EF TX */ } else if (fluence_mode == FLUENCE_MODE_BROADSIDE) { return strdup(SND_USE_CASE_DEV_DUAL_MIC_BROADSIDE); /* DUALMIC BS TX */ } else { @@ -1776,4 +1786,31 @@ static void s_set_csd_handle(void* handle) } #endif +static bool s_is_tmus() +{ + char value[128]; + bool ret = false; + + if (mccmnc == 0) { + property_get("gsm.sim.operator.numeric",value,"0"); + mccmnc = atoi(value); + } + + ALOGD("%s: mnc_mcc : %d", __FUNCTION__, mccmnc); + switch(mccmnc) + { + //TMUS MCC(310), MNC(490, 260, 026) + case 310490: + case 310260: + case 310026: + ret = true; + break; + default: + ret = false; + break; + } + + return ret; +} + } diff --git a/libalsa-intf/msm8960_use_cases.h b/libalsa-intf/msm8960_use_cases.h index ba8b6de..103b508 100644 --- a/libalsa-intf/msm8960_use_cases.h +++ b/libalsa-intf/msm8960_use_cases.h @@ -44,6 +44,7 @@ extern "C" { #define CAP_TX 0x2 #define CAP_VOICE 0x4 #define DEVICE_HANDSET_RX_ACDB_ID 7 // HANDSET_SPKR +#define DEVICE_HANDSET_RX_TMUS_ACDB_ID 81// HANDSET_SPKR #define DEVICE_HANDSET_TX_ACDB_ID 4 // HANDSET_MIC #define DEVICE_SPEAKER_MONO_RX_ACDB_ID 14// SPKR_PHONE_SPKR_MONO #define DEVICE_SPEAKER_STEREO_RX_ACDB_ID 15// SPKR_PHONE_SPKR_STEREO @@ -52,6 +53,7 @@ extern "C" { #define DEVICE_HEADSET_TX_ACDB_ID 8 // HEADSET_MIC #define DEVICE_DUALMIC_HANDSET_TX_BROADSIDE_ACDB_ID 5 // HANDSET_MIC_BROADSIDE #define DEVICE_DUALMIC_HANDSET_TX_ENDFIRE_ACDB_ID 6 // HANDSET_MIC_ENDFIRE +#define DEVICE_DUALMIC_HANDSET_TX_ENDFIRE_TMUS_ACDB_ID 91// HANDSET_MIC_ENDFIRE #define DEVICE_DUALMIC_SPEAKER_TX_BROADSIDE_ACDB_ID 12// SPKR_PHONE_MIC_BROADSIDE #define DEVICE_DUALMIC_SPEAKER_TX_ENDFIRE_ACDB_ID 13// SPKR_PHONE_MIC_ENDFIRE #define DEVICE_TTY_HEADSET_MONO_RX_ACDB_ID 17// TTY_HEADSET_SPKR @@ -231,6 +233,7 @@ static card_mapping_t card_mapping_list[] = { #define SND_USE_CASE_DEV_TTY_HANDSET_ANALOG_TX "TTY Handset Analog Tx" #define SND_USE_CASE_DEV_DUAL_MIC_BROADSIDE "DMIC Broadside" #define SND_USE_CASE_DEV_DUAL_MIC_ENDFIRE "DMIC Endfire" +#define SND_USE_CASE_DEV_DUAL_MIC_ENDFIRE_TMUS "DMIC Endfire TMUS" #define SND_USE_CASE_DEV_SPEAKER_DUAL_MIC_BROADSIDE "Speaker DMIC Broadside" #define SND_USE_CASE_DEV_SPEAKER_DUAL_MIC_ENDFIRE "Speaker DMIC Endfire" #define SND_USE_CASE_DEV_HDMI_TX "HDMI Tx" @@ -256,6 +259,7 @@ static card_mapping_t card_mapping_list[] = { #define SND_USE_CASE_DEV_CAMCORDER_TX "Camcorder Tx" #define SND_USE_CASE_DEV_VOICE_RECOGNITION "Voice Recognition" #define SND_USE_CASE_DEV_VOC_EARPIECE "Voice Earpiece" +#define SND_USE_CASE_DEV_VOC_EARPIECE_TMUS "Voice Earpiece TMUS" #define SND_USE_CASE_DEV_VOC_HEADPHONE "Voice Headphones" #define SND_USE_CASE_DEV_VOC_HEADSET "Voice Headset" #define SND_USE_CASE_DEV_VOC_ANC_HEADSET "Voice ANC Headset" |