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

Commit 609fd781 authored by François Gaffie's avatar François Gaffie
Browse files

audiopolicy: cap engine: fallback on default configuration



As default engine, allow to fallback on default config if the Cap Engine
could not find its top configuration file.

Bug: 379596346
Test: m

Change-Id: I24447bb818e0753e8d37b4c28a7e53e0c32bcda4
Signed-off-by: default avatarFrançois Gaffie <francois.gaffie@ampere.cars>
parent df83624e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -178,6 +178,8 @@ public:

    void updateDeviceSelectionCache() override;

    void setDefaultConfiguration();

protected:
    DeviceVector getPreferredAvailableDevicesForProductStrategy(
        const DeviceVector& availableOutputDevices, product_strategy_t strategy) const;
+6 −0
Original line number Diff line number Diff line
@@ -125,6 +125,12 @@ std::string EngineBase::getProductStrategyName(product_strategy_t id) const {
    return "";
}

void EngineBase::setDefaultConfiguration() {
    mProductStrategies.clear();
    mVolumeGroups.clear();
    (void) processParsingResult({std::make_unique<engineConfig::Config>(gDefaultEngineConfig), 1});
}

engineConfig::ParsingResult EngineBase::loadAudioPolicyEngineConfig(
        const media::audio::common::AudioHalEngineConfig& aidlConfig, bool)
{
+8 −6
Original line number Diff line number Diff line
@@ -97,9 +97,10 @@ status_t Engine::loadFromHalConfigWithFallback(
    };
    loadCriteria(capResult.parsedConfig->capCriteria);
    std::string error;
    if (mPolicyParameterMgr == nullptr || mPolicyParameterMgr->start(error) != NO_ERROR) {
        ALOGE("%s: could not start Policy PFW: %s", __FUNCTION__, error.c_str());
        return NO_INIT;
    if (mPolicyParameterMgr->start(error) != NO_ERROR) {
        ALOGE("%s: could not start Policy PFW: %s, fallback on default", __func__ , error.c_str());
        setDefaultConfiguration();
        return NO_ERROR;
    }
    return mPolicyParameterMgr->setConfiguration(capResult);
}
@@ -108,9 +109,10 @@ status_t Engine::loadFromXmlConfigWithFallback(const std::string& xmlFilePath)
{
    status_t status = loadWithFallback(xmlFilePath);
    std::string error;
    if (mPolicyParameterMgr == nullptr || mPolicyParameterMgr->start(error) != NO_ERROR) {
        ALOGE("%s: could not start Policy PFW: %s", __FUNCTION__, error.c_str());
        return NO_INIT;
    if (mPolicyParameterMgr->start(error) != NO_ERROR) {
        ALOGE("%s: could not start Policy PFW: %s, fallback on default", __func__ , error.c_str());
        setDefaultConfiguration();
        return NO_ERROR;
    }
    return status;
}