summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorty.lee <ty.lee@lge.com>2012-12-16 12:58:59 +0900
committerIliyan Malchev <malchev@google.com>2012-12-20 12:12:23 -0800
commit1c9f3b09a8fcdf65be0bdfa6cb832e6d2ec82fd3 (patch)
tree19739df0397a61cb3b89f7814423656a1260e035
parent6ae807c434c814a2ba6a84198a536d3a4b4153de (diff)
downloadaudio-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.cpp41
-rw-r--r--libalsa-intf/msm8960_use_cases.h4
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"