hal: Add support for voip record low-latency
Add support for voip record low-latency path if app requests
for audio record with fast flag.
Change-Id: I2152a796cdb8c29142315c23cad7ec32f771f6b3
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 0be37a4..247e3d4 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -484,6 +484,7 @@
[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},
+ [USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, LOWLATENCY_PCM_DEVICE},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM1] =
{PLAYBACK_INTERACTIVE_STRM_DEVICE1, PLAYBACK_INTERACTIVE_STRM_DEVICE1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM2] =
@@ -1417,6 +1418,7 @@
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_PHONE)},
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER)},
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_REAR_SEAT)},
+ {TO_NAME_INDEX(USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY)},
};
static const struct name_to_index usecase_type_index[USECASE_TYPE_MAX] = {
@@ -1992,6 +1994,8 @@
{
struct platform_data *my_data = (struct platform_data *)adev->platform;
char ec_ref_mixer_path[MIXER_PATH_MAX_LENGTH] = "echo-reference";
+ struct audio_usecase *uc = NULL;
+ struct listnode *node;
audio_extn_sound_trigger_update_ec_ref_status(enable);
@@ -2003,8 +2007,14 @@
if (enable) {
if (!voice_extn_is_compress_voip_supported()) {
- if (adev->mode == AUDIO_MODE_IN_COMMUNICATION)
+ if (adev->mode == AUDIO_MODE_IN_COMMUNICATION) {
strlcat(ec_ref_mixer_path, "-voip", MIXER_PATH_MAX_LENGTH);
+ list_for_each(node, &adev->usecase_list) {
+ uc = node_to_item(node, struct audio_usecase, list);
+ if (uc->id == USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY)
+ strlcat(ec_ref_mixer_path, "-low-latency", MIXER_PATH_MAX_LENGTH);
+ }
+ }
}
strlcpy(my_data->ec_ref_mixer_path, ec_ref_mixer_path,
MIXER_PATH_MAX_LENGTH);
@@ -9072,6 +9082,7 @@
case USECASE_INCALL_MUSIC_UPLINK:
case USECASE_INCALL_MUSIC_UPLINK2:
case USECASE_AUDIO_RECORD_VOIP:
+ case USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY:
needs_event = true;
break;
default: