alsa_sound: Add support for "Voice Earpiece Extra Gain" mode
Uses "Voice Earpiece Extra Gain" mode instead of "Voice Earpiece" during
voice calls when persist.audio.voc_ep.xgain=1.
Change-Id: I9f00a81687fa9605c68308a74e0ffaaea7e698fc
diff --git a/alsa_sound/ALSADevice.cpp b/alsa_sound/ALSADevice.cpp
index b8bdf6d..5b52f8b 100644
--- a/alsa_sound/ALSADevice.cpp
+++ b/alsa_sound/ALSADevice.cpp
@@ -677,7 +677,8 @@
if (rxDevice != NULL && txDevice != NULL &&
(!strcmp(txDevice, SND_USE_CASE_DEV_DUAL_MIC_ENDFIRE) ||
!strcmp(txDevice, SND_USE_CASE_DEV_DUAL_MIC_BROADSIDE)) &&
- !strcmp(rxDevice, SND_USE_CASE_DEV_VOC_EARPIECE)) {
+ (!strcmp(rxDevice, SND_USE_CASE_DEV_VOC_EARPIECE) ||
+ !strcmp(rxDevice, SND_USE_CASE_DEV_VOC_EARPIECE_XGAIN))) {
setA2220Mode(A2220_PATH_INCALL_RECEIVER_NSON);
} else {
setA2220Mode(A2220_PATH_INCALL_RECEIVER_NSOFF);
@@ -1437,6 +1438,8 @@
char* ALSADevice::getUCMDevice(uint32_t devices, int input, char *rxDevice)
{
+ char value[PROPERTY_VALUE_MAX];
+
if (!input) {
ALOGV("getUCMDevice for output device: devices:%x is input device:%d",devices,input);
if (!(mDevSettingsFlag & TTY_OFF) &&
@@ -1520,7 +1523,10 @@
} else if (devices & AudioSystem::DEVICE_OUT_EARPIECE) {
if (mCallMode == AUDIO_MODE_IN_CALL ||
mCallMode == AUDIO_MODE_IN_COMMUNICATION) {
- return strdup(SND_USE_CASE_DEV_VOC_EARPIECE); /* Voice HANDSET RX */
+ property_get("persist.audio.voc_ep.xgain", value, "");
+ return strdup(strcmp(value, "1") == 0 ?
+ SND_USE_CASE_DEV_VOC_EARPIECE_XGAIN :
+ SND_USE_CASE_DEV_VOC_EARPIECE); /* Voice HANDSET RX */
} else {
return strdup(SND_USE_CASE_DEV_EARPIECE); /* HANDSET RX */
}
diff --git a/libalsa-intf/msm8960_use_cases.h b/libalsa-intf/msm8960_use_cases.h
index cafca1d..c23ac8a 100644
--- a/libalsa-intf/msm8960_use_cases.h
+++ b/libalsa-intf/msm8960_use_cases.h
@@ -290,6 +290,7 @@
#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_XGAIN "Voice Earpiece Extra Gain"
#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"