Merge branch 'dev/p/fp2/fp_apps_bringup' into int/p/fp2
* dev/p/fp2/fp_apps_bringup:
Enable microphone selection
Issue: FP2P-104
Change-Id: I5d900ba6fd2d86f22e30941017be2cfaed47c2ea
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 8fb77e1..b5773f2 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -951,7 +951,25 @@
} else if(usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY) {
out_device = AUDIO_DEVICE_OUT_TELEPHONY_TX;
}
- in_snd_device = platform_get_input_snd_device(adev->platform, out_device);
+
+ /*
+ * Select a specific device microphone if we are in test mode.
+ */
+ switch (mFpTestMicSource) {
+ case FP_TEST_PRIMARY_MIC:
+ ALOGD("FP test selected primary mic.");
+ in_snd_device = SND_DEVICE_IN_HANDSET_MIC;
+ break;
+ case FP_TEST_SECONDARY_MIC:
+ ALOGD("FP test selected secondary mic.");
+ in_snd_device = SND_DEVICE_IN_SPEAKER_MIC;
+ break;
+ case FP_TEST_DEFAULT_MIC:
+ default:
+ ALOGV("FP test disabled");
+ in_snd_device = platform_get_input_snd_device(adev->platform, out_device);
+ break;
+ }
}
}
}
@@ -3268,6 +3286,21 @@
}
}
+ /* Microphone selection in test mode */
+ ret = str_parms_get_str(parms, FP_TEST_KEY, value, sizeof(value));
+ if (ret >= 0) {
+ if (strncmp(FP_TEST_KEY_PRIMARY, value, sizeof(value)) == 0) {
+ ALOGD("FP test requests primary mic.");
+ mFpTestMicSource = FP_TEST_PRIMARY_MIC;
+ } else if (strncmp(FP_TEST_KEY_SECONDARY, value, sizeof(value)) == 0) {
+ ALOGD("FP test requests secondary mic.");
+ mFpTestMicSource = FP_TEST_SECONDARY_MIC;
+ } else {
+ ALOGD("FP test requests to be disabled");
+ mFpTestMicSource = FP_TEST_DEFAULT_MIC;
+ }
+ }
+
audio_extn_set_parameters(adev, parms);
done:
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
index af57cab..3074e4e 100644
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -55,6 +55,16 @@
#define SND_CARD_STATE_OFFLINE 0
#define SND_CARD_STATE_ONLINE 1
+/* Expose microphone selection for testing purposes */
+#define FP_TEST_KEY "fp_test"
+#define FP_TEST_KEY_PRIMARY "primary_mic"
+#define FP_TEST_KEY_SECONDARY "secondary_mic"
+#define FP_TEST_DEFAULT_MIC 0X00000000
+#define FP_TEST_PRIMARY_MIC 0X00000100
+#define FP_TEST_SECONDARY_MIC 0X00000200
+
+static uint32_t mFpTestMicSource = FP_TEST_DEFAULT_MIC;
+
typedef int snd_device_t;
/* These are the supported use cases by the hardware.