Loading services/audiopolicy/engine/common/include/EngineBase.h +1 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,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; } Loading services/audiopolicy/engine/common/src/EngineBase.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; Loading services/audiopolicy/engine/interface/EngineInterface.h +8 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #pragma once #include <string> #include <utility> #include <AudioPolicyManagerObserver.h> Loading Loading @@ -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. * Loading services/audiopolicy/engineconfigurable/src/Collection.h +4 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,10 @@ public: { collectionSupported(); } ~Collection() { clear(); } /** * Add a policy element to the collection. Policy elements are streams, strategies, input Loading services/audiopolicy/engineconfigurable/src/Engine.cpp +8 −11 Original line number Diff line number Diff line Loading @@ -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() Loading Loading @@ -179,9 +178,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) { Loading Loading @@ -401,5 +400,3 @@ AudioPolicyPluginInterface *Engine::queryInterface() } // namespace audio_policy } // namespace android Loading
services/audiopolicy/engine/common/include/EngineBase.h +1 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,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; } Loading
services/audiopolicy/engine/common/src/EngineBase.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; Loading
services/audiopolicy/engine/interface/EngineInterface.h +8 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #pragma once #include <string> #include <utility> #include <AudioPolicyManagerObserver.h> Loading Loading @@ -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. * Loading
services/audiopolicy/engineconfigurable/src/Collection.h +4 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,10 @@ public: { collectionSupported(); } ~Collection() { clear(); } /** * Add a policy element to the collection. Policy elements are streams, strategies, input Loading
services/audiopolicy/engineconfigurable/src/Engine.cpp +8 −11 Original line number Diff line number Diff line Loading @@ -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() Loading Loading @@ -179,9 +178,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) { Loading Loading @@ -401,5 +400,3 @@ AudioPolicyPluginInterface *Engine::queryInterface() } // namespace audio_policy } // namespace android