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

Commit 7a094eae authored by Artem Borisov's avatar Artem Borisov Committed by Nolen Johnson
Browse files

msm8960: treblize configuration

Loosely based on f62e17db

Change-Id: I63e873b743d2de85d6c44491bf2aed4c8e41e0e5
parent dd208e3b
Loading
Loading
Loading
Loading
+26 −2
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@
 * This is the sysfs path for the HDMI audio data block
 */
#define AUDIO_DATA_BLOCK_PATH "/sys/class/graphics/fb1/audio_data_block"
#define MIXER_XML_PATH "/system/etc/mixer_paths.xml"
#define MIXER_XML_PATH "mixer_paths.xml"

/*
 * This file will have a maximum of 38 bytes:
@@ -266,12 +266,35 @@ static int set_echo_reference(struct mixer *mixer, const char* ec_ref)
    return 0;
}

// Treblized config files will be located in /odm/etc or /vendor/etc.
static const char *kConfigLocationList[] =
        {"/odm/etc", "/vendor/etc", "/system/etc"};
static const int kConfigLocationListSize =
        (sizeof(kConfigLocationList) / sizeof(kConfigLocationList[0]));

bool resolveConfigFile(char file_name[MIXER_PATH_MAX_LENGTH]) {
    char full_config_path[MIXER_PATH_MAX_LENGTH];
    for (int i = 0; i < kConfigLocationListSize; i++) {
        snprintf(full_config_path,
                 MIXER_PATH_MAX_LENGTH,
                 "%s/%s",
                 kConfigLocationList[i],
                 file_name);
        if (F_OK == access(full_config_path, 0)) {
            strcpy(file_name, full_config_path);
            return true;
        }
    }
    return false;
}

void *platform_init(struct audio_device *adev)
{
    char platform[PROPERTY_VALUE_MAX];
    char baseband[PROPERTY_VALUE_MAX];
    char value[PROPERTY_VALUE_MAX];
    struct platform_data *my_data;
    char mixer_xml_file[MIXER_PATH_MAX_LENGTH] = MIXER_XML_PATH;

    adev->mixer = mixer_open(MIXER_CARD);

@@ -280,7 +303,8 @@ void *platform_init(struct audio_device *adev)
        return NULL;
    }

    adev->audio_route = audio_route_init(MIXER_CARD, MIXER_XML_PATH);
    resolveConfigFile(mixer_xml_file);
    adev->audio_route = audio_route_init(MIXER_CARD, mixer_xml_file);
    if (!adev->audio_route) {
        ALOGE("%s: Failed to init audio route controls, aborting.", __func__);
        return NULL;