audio: add separate audio Input path feature
- Separate audio input path can be set using input source of audio parameter
1. Voice Recognition
2. Camcording
3. etc.
Change-Id: I7ab3b529a8d39af412d10d2d7ab4ce111db967bb
diff --git a/alsa_sound/alsa_default.cpp b/alsa_sound/alsa_default.cpp
index 6c329e8..d589f5c 100644
--- a/alsa_sound/alsa_default.cpp
+++ b/alsa_sound/alsa_default.cpp
@@ -67,6 +67,11 @@
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);
+#ifdef SEPERATED_AUDIO_INPUT
+static void s_setInput(int);
+
+static int input_source;
+#endif
static char mic_type[25];
static char curRxUCMDevice[50];
@@ -137,6 +142,9 @@
dev->setVocRecMode = s_set_voc_rec_mode;
dev->setVoLTEMicMute = s_set_volte_mic_mute;
dev->setVoLTEVolume = s_set_volte_volume;
+#ifdef SEPERATED_AUDIO_INPUT
+ dev->setInput = s_setInput;
+#endif
*device = &dev->common;
@@ -1383,8 +1391,17 @@
return strdup(SND_USE_CASE_DEV_SSR_QUAD_MIC); /* SSR Quad MIC */
}
#endif
+#ifdef SEPERATED_AUDIO_INPUT
+ if(input_source == AUDIO_SOURCE_VOICE_RECOGNITION) {
+ ALOGV("getUCMdevice returned the VOICE_RECOGNITION UCM by input source = %d", input_source);
+ return strdup(SND_USE_CASE_DEV_VOICE_RECOGNITION ); /* VOICE RECOGNITION TX */
+ } else if(input_source == AUDIO_SOURCE_CAMCORDER) {
+ ALOGV("getUCMdevice returned the Camcorder Tx UCM by input source = %d", input_source);
+ return strdup(SND_USE_CASE_DEV_CAMCORDER_TX ); /* CAMCORDER TX */
+ }
+#endif
else {
- return strdup(SND_USE_CASE_DEV_LINE); /* BUILTIN-MIC TX */
+ return strdup(SND_USE_CASE_DEV_HANDSET); /* BUILTIN-MIC TX */
}
}
} else if (devices & AudioSystem::DEVICE_IN_AUX_DIGITAL) {
@@ -1644,4 +1661,11 @@
return err;
}
+#ifdef SEPERATED_AUDIO_INPUT
+void s_setInput(int input)
+{
+ input_source = input;
+ ALOGD("s_setInput() : input_source = %d",input_source);
+}
+#endif
}