Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44f49409 authored by Laxminath Kasam's avatar Laxminath Kasam
Browse files

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
parent 5c6f1f29
Loading
Loading
Loading
Loading
+55 −0
Original line number Diff line number Diff line
@@ -4171,3 +4171,58 @@ int platform_set_audio_device_interface(const char * device_name,
done:
    return ret;
}

/*
 * 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, "", ""},
};

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_set_spkr_device_tz_names(snd_device_t index,
                                      const char *spkr_1_tz_name, const char *spkr_2_tz_name)
{
    int ret = 0;
    int i;

    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;
}
+6 −0
Original line number Diff line number Diff line
@@ -298,4 +298,10 @@ struct audio_device_to_audio_interface {
    char device_name[100];
    char interface_name[100];
};

struct speaker_device_to_tz_names {
    snd_device_t snd_device;
    char spkr_1_tz_name[100];
    char spkr_2_tz_name[100];
};
#endif // QCOM_AUDIO_PLATFORM_H
+6 −0
Original line number Diff line number Diff line
@@ -1169,3 +1169,9 @@ int platform_set_audio_device_interface(const char * device_name __unused,
{
    return -ENOSYS;
}

int platform_set_spkr_device_tz_names(snd_device_t index,
                                      const char *spkr_1_tz_name, const char *spkr_2_tz_name)
{
    return -ENOSYS;
}
+55 −0
Original line number Diff line number Diff line
@@ -1346,6 +1346,22 @@ const char *platform_get_snd_device_name(snd_device_t snd_device)
        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)
{
@@ -3772,6 +3788,15 @@ end:
    return ret;
}

/*
 * 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, "", ""},
};

/*
 * This is a lookup table to map android audio input device to audio h/w interface (backend).
 * The table can be extended for other input devices by adding appropriate entries.
@@ -3823,3 +3848,33 @@ int platform_set_audio_device_interface(const char *device_name, const char *int
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;
    int i;

    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;
}
+6 −0
Original line number Diff line number Diff line
@@ -382,4 +382,10 @@ struct audio_device_to_audio_interface {
    char device_name[100];
    char interface_name[100];
};

struct speaker_device_to_tz_names {
    snd_device_t snd_device;
    char spkr_1_tz_name[100];
    char spkr_2_tz_name[100];
};
#endif // QCOM_AUDIO_PLATFORM_H
Loading