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

Commit e67a0fda authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

Use managed pointer for 'ParameterManagerWrapper'

A follow up to aosp/3438629. Manage ParameterManagerWrapper
instance in the configurable engine using a smart pointer.

Bug: 379596346
Test: build and run CF Auto with CAP
Change-Id: Ie2b4458178d47832d89ca829fbad20534c7f0a72
parent 6018d613
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@
#include <EngineConfig.h>
#include <policy.h>
#include <AudioIODescriptorInterface.h>
#include <ParameterManagerWrapper.h>
#include <media/AudioContainers.h>

#include <media/TypeConverter.h>
@@ -79,7 +78,7 @@ status_t Engine::loadFromHalConfigWithFallback(
        return loadFromXmlConfigWithFallback(engineConfig::DEFAULT_PATH);
    }
#endif
    mPolicyParameterMgr = new ParameterManagerWrapper();
    mPolicyParameterMgr = std::make_unique<ParameterManagerWrapper>();
    auto capResult = capEngineConfig::convert(aidlConfig);
    if (capResult.parsedConfig == nullptr) {
        ALOGE("%s CapEngine Config invalid", __func__);
@@ -110,7 +109,7 @@ status_t Engine::loadFromHalConfigWithFallback(

status_t Engine::loadFromXmlConfigWithFallback(const std::string& xmlFilePath)
{
    mPolicyParameterMgr = new ParameterManagerWrapper(/* useLegacyVendorFile= */ true);
    mPolicyParameterMgr = std::make_unique<ParameterManagerWrapper>(true /*useLegacyVendorFile*/);
    status_t status = loadWithFallback(xmlFilePath);
    std::string error;
    if (mPolicyParameterMgr->start(error) != NO_ERROR) {
+5 −3
Original line number Diff line number Diff line
@@ -16,24 +16,26 @@

#pragma once

#include <memory>

#include "Collection.h"
#include "EngineBase.h"
#include <AudioPolicyPluginInterface.h>
#include <CapEngineConfig.h>
#include <EngineInterface.h>
#include <ParameterManagerWrapper.h>

namespace android {
class AudioPolicyManagerObserver;

namespace audio_policy {

class ParameterManagerWrapper;
class VolumeProfile;

class Engine : public EngineBase, AudioPolicyPluginInterface
{
public:
    Engine() {}
    Engine() = default;
    virtual ~Engine() = default;

    template <class RequestedInterface>
@@ -157,7 +159,7 @@ private:
    /**
     * Policy Parameter Manager hidden through a wrapper.
     */
    ParameterManagerWrapper *mPolicyParameterMgr;
    std::unique_ptr<ParameterManagerWrapper> mPolicyParameterMgr;
};

} // namespace audio_policy