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

Commit 48fbb368 authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Automerger Merge Worker
Browse files

Merge "Move engine loading out from the AudioPolicyManager" am: 8ca78748 am:...

Merge "Move engine loading out from the AudioPolicyManager" am: 8ca78748 am: 578e62d2 am: 1a98b95b am: fd758d61

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



Change-Id: Ie5136350cc0f17f5d1eb49ce505ee15b31051485
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents e92588ab fd758d61
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