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

Commit e0d8a823 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Move engine loading out from the AudioPolicyManager" into udc-dev am:...

Merge "Move engine loading out from the AudioPolicyManager" into udc-dev am: c58e7554 am: 6f936d6e am: 98a5b6d8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/22994664



Change-Id: Ia174a999283cd97dd91b359ea034946d3d280c83
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents bfb9d76d 98a5b6d8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ public:
    status_t getDevicesForRoleAndStrategy(product_strategy_t strategy, device_role_t role,
            AudioDeviceTypeAddrVector &devices) const override;

    engineConfig::ParsingResult loadAudioPolicyEngineConfig();
    engineConfig::ParsingResult loadAudioPolicyEngineConfig(const std::string& xmlFilePath = "");

    const ProductStrategyMap &getProductStrategies() const { return mProductStrategies; }

+4 −3
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ product_strategy_t EngineBase::getProductStrategyByName(const std::string &name)
    return PRODUCT_STRATEGY_NONE;
}

engineConfig::ParsingResult EngineBase::loadAudioPolicyEngineConfig()
engineConfig::ParsingResult EngineBase::loadAudioPolicyEngineConfig(const std::string& xmlFilePath)
{
    auto loadVolumeConfig = [](auto &volumeGroups, auto &volumeConfig) {
        // Ensure name unicity to prevent duplicate
@@ -163,8 +163,9 @@ engineConfig::ParsingResult EngineBase::loadAudioPolicyEngineConfig()
        return stat(path, &fileStat) == 0 && S_ISREG(fileStat.st_mode);
    };

    auto result = fileExists(engineConfig::DEFAULT_PATH) ?
            engineConfig::parse(engineConfig::DEFAULT_PATH) : engineConfig::ParsingResult{};
    const std::string filePath = xmlFilePath.empty() ? engineConfig::DEFAULT_PATH : xmlFilePath;
    auto result = fileExists(filePath.c_str()) ?
            engineConfig::parse(filePath.c_str()) : engineConfig::ParsingResult{};
    if (result.parsedConfig == nullptr) {
        ALOGD("%s: No configuration found, using default matching phone experience.", __FUNCTION__);
        engineConfig::Config config = gDefaultEngineConfig;
+8 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

#pragma once

#include <string>
#include <utility>

#include <AudioPolicyManagerObserver.h>
@@ -45,6 +46,13 @@ using CapturePresetDevicesRoleMap =
class EngineInterface
{
public:
    /**
     * Loads the engine configuration from the specified or the default config file.
     * If loading failed, tries to fall back to some default configuration. If fallback
     * is impossible, returns an error.
     */
    virtual status_t loadFromXmlConfigWithFallback(const std::string& xmlFilePath = "") = 0;

    /**
     * Checks if the engine was correctly initialized.
     *
+4 −0
Original line number Diff line number Diff line
@@ -53,6 +53,10 @@ public:
    {
        collectionSupported();
    }
    ~Collection()
    {
        clear();
    }

    /**
     * Add a policy element to the collection. Policy elements are streams, strategies, input
+8 −11
Original line number Diff line number Diff line
@@ -68,16 +68,15 @@ const InputSourceCollection &Engine::getCollection<audio_source_t>() const

Engine::Engine() : mPolicyParameterMgr(new ParameterManagerWrapper())
{
    status_t loadResult = loadAudioPolicyEngineConfig();
    if (loadResult < 0) {
        ALOGE("Policy Engine configuration is invalid.");
    }
}

Engine::~Engine()
status_t Engine::loadFromXmlConfigWithFallback(const std::string& xmlFilePath)
{
    mStreamCollection.clear();
    mInputSourceCollection.clear();
    status_t loadResult = loadAudioPolicyEngineConfig(xmlFilePath);
    if (loadResult < 0) {
        ALOGE("Policy Engine configuration is invalid.");
    }
    return loadResult;
}

status_t Engine::initCheck()
@@ -194,9 +193,9 @@ status_t Engine::setDeviceConnectionState(const sp<DeviceDescriptor> device,
    return EngineBase::setDeviceConnectionState(device, state);
}

status_t Engine::loadAudioPolicyEngineConfig()
status_t Engine::loadAudioPolicyEngineConfig(const std::string& xmlFilePath)
{
    auto result = EngineBase::loadAudioPolicyEngineConfig();
    auto result = EngineBase::loadAudioPolicyEngineConfig(xmlFilePath);

    // Custom XML Parsing
    auto loadCriteria= [this](const auto& configCriteria, const auto& configCriterionTypes) {
@@ -531,5 +530,3 @@ AudioPolicyPluginInterface *Engine::queryInterface()

} // namespace audio_policy
} // namespace android

Loading