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

Commit 4125bf3b authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Automerger Merge Worker
Browse files

Merge "audio: Allow Module subclasses to customize Configuration" into main...

Merge "audio: Allow Module subclasses to customize Configuration" into main am: 00a7a24e am: 97672865

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2656082



Change-Id: I747ab85d71680548f64d241a10186c98f7de277a
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 609c5af5 97672865
Loading
Loading
Loading
Loading
+20 −14
Original line number Diff line number Diff line
@@ -286,22 +286,28 @@ std::set<int32_t> Module::portIdsFromPortConfigIds(C portConfigIds) {
    return result;
}

internal::Configuration& Module::getConfig() {
    if (!mConfig) {
        switch (mType) {
std::unique_ptr<internal::Configuration> Module::initializeConfig() {
    std::unique_ptr<internal::Configuration> config;
    switch (getType()) {
        case Type::DEFAULT:
                mConfig = std::move(internal::getPrimaryConfiguration());
            config = std::move(internal::getPrimaryConfiguration());
            break;
        case Type::R_SUBMIX:
                mConfig = std::move(internal::getRSubmixConfiguration());
            config = std::move(internal::getRSubmixConfiguration());
            break;
        case Type::STUB:
                mConfig = std::move(internal::getStubConfiguration());
            config = std::move(internal::getStubConfiguration());
            break;
        case Type::USB:
                mConfig = std::move(internal::getUsbConfiguration());
            config = std::move(internal::getUsbConfiguration());
            break;
    }
    return config;
}

internal::Configuration& Module::getConfig() {
    if (!mConfig) {
        mConfig = std::move(initializeConfig());
    }
    return *mConfig;
}
+2 −0
Original line number Diff line number Diff line
@@ -182,6 +182,7 @@ class Module : public BnModule {
            const ::aidl::android::media::audio::common::AudioPort& audioPort, bool connected);
    virtual ndk::ScopedAStatus onMasterMuteChanged(bool mute);
    virtual ndk::ScopedAStatus onMasterVolumeChanged(float volume);
    virtual std::unique_ptr<internal::Configuration> initializeConfig();

    // Utility and helper functions accessible to subclasses.
    void cleanUpPatch(int32_t patchId);
@@ -202,6 +203,7 @@ class Module : public BnModule {
    bool getMicMute() const { return mMicMute; }
    const Patches& getPatches() const { return mPatches; }
    const Streams& getStreams() const { return mStreams; }
    Type getType() const { return mType; }
    bool isMmapSupported();
    template <typename C>
    std::set<int32_t> portIdsFromPortConfigIds(C portConfigIds);