audio: Add dedicated streams for VoIP call
Add dedicated streams for VoIP usecase. This includes adding
a new direct output and input types that use audio playback
and record paths respectively. It falls back to compress VoIP
wherever this feature is not applicable.
Change-Id: I9b7654819b9d8deb00f8888fbfc31f0fbbae5266
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 2836974..b0a4f85 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -365,6 +365,8 @@
AFE_PROXY_RECORD_PCM_DEVICE},
[USECASE_AUDIO_PLAYBACK_EXT_DISP_SILENCE] = {MULTIMEDIA9_PCM_DEVICE, -1},
[USECASE_AUDIO_TRANSCODE_LOOPBACK] = {TRANSCODE_LOOPBACK_RX_DEV_ID, TRANSCODE_LOOPBACK_TX_DEV_ID},
+ [USECASE_AUDIO_PLAYBACK_VOIP] = {AUDIO_PLAYBACK_VOIP_PCM_DEVICE, AUDIO_PLAYBACK_VOIP_PCM_DEVICE},
+ [USECASE_AUDIO_RECORD_VOIP] = {AUDIO_RECORD_VOIP_PCM_DEVICE, AUDIO_RECORD_VOIP_PCM_DEVICE},
};
@@ -6736,9 +6738,7 @@
list_for_each(node, &adev->usecase_list) {
usecase = node_to_item(node, struct audio_usecase, list);
- if (usecase != NULL &&
- usecase->type == PCM_PLAYBACK &&
- usecase->stream.out->devices & AUDIO_DEVICE_OUT_SPEAKER) {
+ if (usecase != NULL && usecase->type == PCM_PLAYBACK) {
int new_snd_device[2] = {0};
int i, num_devices = 1;
diff --git a/hal/msm8916/platform.h b/hal/msm8916/platform.h
index f8c7280..17bd8f2 100644
--- a/hal/msm8916/platform.h
+++ b/hal/msm8916/platform.h
@@ -330,6 +330,8 @@
#define PLAYBACK_OFFLOAD_DEVICE 9
#define PLAYBACK_OFFLOAD_DEVICE2 24
#define COMPRESS_VOIP_CALL_PCM_DEVICE 3
+#define AUDIO_PLAYBACK_VOIP_PCM_DEVICE 16
+#define AUDIO_RECORD_VOIP_PCM_DEVICE 16
/* Define macro for Internal FM volume mixer */
#ifdef PLATFORM_MSMFALCON