Loading audio/aidl/default/Module.cpp +20 −14 Original line number Original line Diff line number Diff line Loading @@ -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; } } Loading audio/aidl/default/include/core-impl/Module.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -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); Loading @@ -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); Loading Loading
audio/aidl/default/Module.cpp +20 −14 Original line number Original line Diff line number Diff line Loading @@ -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; } } Loading
audio/aidl/default/include/core-impl/Module.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -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); Loading @@ -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); Loading