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

Commit 00a7a24e authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Gerrit Code Review
Browse files

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

parents 00e273d0 918a6a5c
Loading
Loading
Loading
Loading
+20 −14
Original line number Original line Diff line number Diff line
@@ -286,22 +286,28 @@ std::set<int32_t> Module::portIdsFromPortConfigIds(C portConfigIds) {
    return result;
    return result;
}
}


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

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


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