hal: audio: add tz_names extn to support from audio platform_info xml
To add Speaker TZ names from audio_platform_info xml, add required
support.
Change-Id: Idd31ed9e7b7235245c3dda4ccb11b47762db5ee8
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 28a75df..b30eb97 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -696,6 +696,14 @@
static int msm_be_id_array_len =
sizeof(msm_device_to_be_id) / sizeof(msm_device_to_be_id[0]);
+/*
+ * This is a lookup table to map names of speaker device with respective left and right TZ names.
+ * Also the tz names for a particular left or right speaker can be overriden by adding
+ * corresponding entry in audio_platform_info.xml file.
+ */
+struct speaker_device_to_tz_names speaker_device_tz_names = {
+ {SND_DEVICE_OUT_SPEAKER, "", ""},
+};
#define DEEP_BUFFER_PLATFORM_DELAY (29*1000LL)
#define LOW_LATENCY_PLATFORM_DELAY (13*1000LL)
@@ -1375,6 +1383,22 @@
return "";
}
+const char *platform_get_spkr_1_tz_name(snd_device_t snd_device)
+{
+ if (snd_device >= SND_DEVICE_MIN && snd_device < SND_DEVICE_MAX)
+ return speaker_device_tz_names.spkr_1_tz_name;
+ else
+ return "";
+}
+
+const char *platform_get_spkr_2_tz_name(snd_device_t snd_device)
+{
+ if (snd_device >= SND_DEVICE_MIN && snd_device < SND_DEVICE_MAX)
+ return speaker_device_tz_names.spkr_2_tz_name;
+ else
+ return "";
+}
+
int platform_get_snd_device_name_extn(void *platform, snd_device_t snd_device,
char *device_name)
{
@@ -3993,3 +4017,32 @@
done:
return ret;
}
+
+int platform_set_spkr_device_tz_names(snd_device_t index,
+ const char *spkr_1_tz_name, const char *spkr_2_tz_name)
+{
+ int ret = 0;
+
+ if (spkr_1_tz_name == NULL && spkr_2_tz_name == NULL) {
+ ALOGE("%s: Invalid input", __func__);
+ ret = -EINVAL;
+ goto done;
+ }
+ if (index != speaker_device_tz_names.snd_device) {
+ ALOGE("%s: not matching speaker device\n");
+ ret = -EINVAL;
+ goto done;
+ }
+ ALOGD("%s: Enter, spkr_1_tz_name :%s, spkr_2_tz_name:%s",
+ __func__, spkr_1_tz_name, spkr_2_tz_name);
+
+ if (spkr_1_tz_name != NULL)
+ strlcpy(speaker_device_tz_names.spkr_1_tz_name, spkr_1_tz_name,
+ sizeof(speaker_device_tz_names.spkr_1_tz_name));
+
+ if (spkr_2_tz_name != NULL)
+ strlcpy(speaker_device_tz_names.spkr_2_tz_name, spkr_2_tz_name,
+ sizeof(speaker_device_tz_names.spkr_2_tz_name));
+done:
+ return ret;
+}