Loading media/libaudiohal/Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,12 @@ cc_library_shared { cc_library_headers { name: "libaudiohal_headers", header_libs: [ "libeffectsconfig_headers", ], export_header_lib_headers: ["libeffectsconfig_headers"], export_include_dirs: ["include"], } Loading media/libaudiohal/impl/Android.bp +3 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ cc_defaults { "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libaudiohal_deathhandler", "libeffectsconfig", "libhidlbase", "libhidlmemory", ], Loading Loading @@ -281,15 +282,16 @@ cc_library_shared { "android.hardware.common.fmq-V1-ndk", ], shared_libs: [ "libbinder_ndk", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_core_ndk", "libaudio_aidl_conversion_effect_ndk", "libaudioaidlcommon", "libbinder_ndk", ], header_libs: [ "libaudio_system_headers", "libeffectsconfig_headers", ], cflags: [ "-Wall", Loading media/libaudiohal/impl/EffectsFactoryHalAidl.cpp +23 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ //#define LOG_NDEBUG 0 #include <error/expected_utils.h> #include <aidl/android/media/audio/common/AudioStreamType.h> #include <android/binder_manager.h> #include <media/AidlConversionCppNdk.h> #include <media/AidlConversionEffect.h> Loading @@ -35,11 +36,13 @@ #include "EffectsFactoryHalAidl.h" using ::aidl::android::legacy2aidl_audio_uuid_t_AudioUuid; using aidl::android::aidl_utils::statusTFromBinderStatus; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::IFactory; using aidl::android::media::audio::common::AudioUuid; using android::detail::AudioHalVersionInfo; using ::aidl::android::aidl_utils::statusTFromBinderStatus; using ::aidl::android::hardware::audio::effect::Descriptor; using ::aidl::android::hardware::audio::effect::IFactory; using ::aidl::android::hardware::audio::effect::Processing; using ::aidl::android::media::audio::common::AudioUuid; using ::android::base::unexpected; using ::android::detail::AudioHalVersionInfo; namespace android { namespace effect { Loading Loading @@ -92,7 +95,8 @@ EffectsFactoryHalAidl::EffectsFactoryHalAidl(std::shared_ptr<IFactory> effectsFa [](const Descriptor& desc) { return !desc.common.id.proxy.has_value(); }); return list; }()), mEffectCount(mNonProxyDescList.size() + mProxyDescList.size()) { mEffectCount(mNonProxyDescList.size() + mProxyDescList.size()), mEffectProcessings(nullptr /* TODO: add AIDL implementation */) { ALOG_ASSERT(mFactory != nullptr, "Provided IEffectsFactory service is NULL"); ALOGI("%s with %zu nonProxyEffects and %zu proxyEffects", __func__, mNonProxyDescList.size(), mProxyDescList.size()); Loading Loading @@ -269,6 +273,19 @@ bool EffectsFactoryHalAidl::isProxyEffect(const AudioUuid& uuid) const { return 0 != mUuidProxyMap.count(uuid); } std::shared_ptr<const effectsConfig::Processings> EffectsFactoryHalAidl::getProcessings() const { return mEffectProcessings; } ::android::error::Result<size_t> EffectsFactoryHalAidl::getSkippedElements() const { if (!mEffectProcessings) { return ::android::base::unexpected(BAD_VALUE); } // Only return 0 for AIDL, because the AIDL interface doesn't aware of configuration file return 0; } } // namespace effect // When a shared library is built from a static library, even explicit Loading media/libaudiohal/impl/EffectsFactoryHalAidl.h +6 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,10 @@ class EffectsFactoryHalAidl final : public EffectsFactoryHalInterface { detail::AudioHalVersionInfo getHalVersion() const override; std::shared_ptr<const effectsConfig::Processings> getProcessings() const override; ::android::error::Result<size_t> getSkippedElements() const override; private: const std::shared_ptr<IFactory> mFactory; const detail::AudioHalVersionInfo mHalVersion; Loading @@ -77,6 +81,8 @@ class EffectsFactoryHalAidl final : public EffectsFactoryHalInterface { const std::vector<Descriptor> mNonProxyDescList; // total number of effects including proxy effects const size_t mEffectCount; // Query result of pre and post processing from effect factory const std::shared_ptr<const effectsConfig::Processings> mEffectProcessings; std::mutex mLock; uint64_t mEffectIdCounter GUARDED_BY(mLock) = 0; // Align with HIDL (0 is INVALID_ID) Loading media/libaudiohal/impl/EffectsFactoryHalHidl.cpp +18 −4 Original line number Diff line number Diff line Loading @@ -33,10 +33,11 @@ #include "android/media/AudioHalVersion.h" using ::android::base::unexpected; using ::android::detail::AudioHalVersionInfo; using ::android::hardware::Return; using ::android::hardware::audio::common::CPP_VERSION::implementation::UuidUtils; using ::android::hardware::audio::effect::CPP_VERSION::implementation::EffectUtils; using ::android::hardware::Return; namespace android { namespace effect { Loading Loading @@ -78,9 +79,11 @@ EffectDescriptorCache::QueryResult EffectDescriptorCache::queryAllDescriptors( } EffectsFactoryHalHidl::EffectsFactoryHalHidl(sp<IEffectsFactory> effectsFactory) : EffectConversionHelperHidl("EffectsFactory"), mCache(new EffectDescriptorCache) { ALOG_ASSERT(effectsFactory != nullptr, "Provided IEffectsFactory service is NULL"); mEffectsFactory = std::move(effectsFactory); : EffectConversionHelperHidl("EffectsFactory"), mEffectsFactory(std::move(effectsFactory)), mCache(new EffectDescriptorCache), mParsingResult(effectsConfig::parse()) { ALOG_ASSERT(mEffectsFactory != nullptr, "Provided IEffectsFactory service is NULL"); } status_t EffectsFactoryHalHidl::queryNumberEffects(uint32_t *pNumEffects) { Loading Loading @@ -228,6 +231,17 @@ AudioHalVersionInfo EffectsFactoryHalHidl::getHalVersion() const { return AudioHalVersionInfo(AudioHalVersionInfo::Type::HIDL, MAJOR_VERSION, MINOR_VERSION); } std::shared_ptr<const effectsConfig::Processings> EffectsFactoryHalHidl::getProcessings() const { return mParsingResult.parsedConfig; } ::android::error::Result<size_t> EffectsFactoryHalHidl::getSkippedElements() const { if (!mParsingResult.parsedConfig) { return ::android::base::unexpected(BAD_VALUE); } return mParsingResult.nbSkippedElement; } } // namespace effect // When a shared library is built from a static library, even explicit Loading Loading
media/libaudiohal/Android.bp +6 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,12 @@ cc_library_shared { cc_library_headers { name: "libaudiohal_headers", header_libs: [ "libeffectsconfig_headers", ], export_header_lib_headers: ["libeffectsconfig_headers"], export_include_dirs: ["include"], } Loading
media/libaudiohal/impl/Android.bp +3 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ cc_defaults { "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libaudiohal_deathhandler", "libeffectsconfig", "libhidlbase", "libhidlmemory", ], Loading Loading @@ -281,15 +282,16 @@ cc_library_shared { "android.hardware.common.fmq-V1-ndk", ], shared_libs: [ "libbinder_ndk", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_core_ndk", "libaudio_aidl_conversion_effect_ndk", "libaudioaidlcommon", "libbinder_ndk", ], header_libs: [ "libaudio_system_headers", "libeffectsconfig_headers", ], cflags: [ "-Wall", Loading
media/libaudiohal/impl/EffectsFactoryHalAidl.cpp +23 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ //#define LOG_NDEBUG 0 #include <error/expected_utils.h> #include <aidl/android/media/audio/common/AudioStreamType.h> #include <android/binder_manager.h> #include <media/AidlConversionCppNdk.h> #include <media/AidlConversionEffect.h> Loading @@ -35,11 +36,13 @@ #include "EffectsFactoryHalAidl.h" using ::aidl::android::legacy2aidl_audio_uuid_t_AudioUuid; using aidl::android::aidl_utils::statusTFromBinderStatus; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::IFactory; using aidl::android::media::audio::common::AudioUuid; using android::detail::AudioHalVersionInfo; using ::aidl::android::aidl_utils::statusTFromBinderStatus; using ::aidl::android::hardware::audio::effect::Descriptor; using ::aidl::android::hardware::audio::effect::IFactory; using ::aidl::android::hardware::audio::effect::Processing; using ::aidl::android::media::audio::common::AudioUuid; using ::android::base::unexpected; using ::android::detail::AudioHalVersionInfo; namespace android { namespace effect { Loading Loading @@ -92,7 +95,8 @@ EffectsFactoryHalAidl::EffectsFactoryHalAidl(std::shared_ptr<IFactory> effectsFa [](const Descriptor& desc) { return !desc.common.id.proxy.has_value(); }); return list; }()), mEffectCount(mNonProxyDescList.size() + mProxyDescList.size()) { mEffectCount(mNonProxyDescList.size() + mProxyDescList.size()), mEffectProcessings(nullptr /* TODO: add AIDL implementation */) { ALOG_ASSERT(mFactory != nullptr, "Provided IEffectsFactory service is NULL"); ALOGI("%s with %zu nonProxyEffects and %zu proxyEffects", __func__, mNonProxyDescList.size(), mProxyDescList.size()); Loading Loading @@ -269,6 +273,19 @@ bool EffectsFactoryHalAidl::isProxyEffect(const AudioUuid& uuid) const { return 0 != mUuidProxyMap.count(uuid); } std::shared_ptr<const effectsConfig::Processings> EffectsFactoryHalAidl::getProcessings() const { return mEffectProcessings; } ::android::error::Result<size_t> EffectsFactoryHalAidl::getSkippedElements() const { if (!mEffectProcessings) { return ::android::base::unexpected(BAD_VALUE); } // Only return 0 for AIDL, because the AIDL interface doesn't aware of configuration file return 0; } } // namespace effect // When a shared library is built from a static library, even explicit Loading
media/libaudiohal/impl/EffectsFactoryHalAidl.h +6 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,10 @@ class EffectsFactoryHalAidl final : public EffectsFactoryHalInterface { detail::AudioHalVersionInfo getHalVersion() const override; std::shared_ptr<const effectsConfig::Processings> getProcessings() const override; ::android::error::Result<size_t> getSkippedElements() const override; private: const std::shared_ptr<IFactory> mFactory; const detail::AudioHalVersionInfo mHalVersion; Loading @@ -77,6 +81,8 @@ class EffectsFactoryHalAidl final : public EffectsFactoryHalInterface { const std::vector<Descriptor> mNonProxyDescList; // total number of effects including proxy effects const size_t mEffectCount; // Query result of pre and post processing from effect factory const std::shared_ptr<const effectsConfig::Processings> mEffectProcessings; std::mutex mLock; uint64_t mEffectIdCounter GUARDED_BY(mLock) = 0; // Align with HIDL (0 is INVALID_ID) Loading
media/libaudiohal/impl/EffectsFactoryHalHidl.cpp +18 −4 Original line number Diff line number Diff line Loading @@ -33,10 +33,11 @@ #include "android/media/AudioHalVersion.h" using ::android::base::unexpected; using ::android::detail::AudioHalVersionInfo; using ::android::hardware::Return; using ::android::hardware::audio::common::CPP_VERSION::implementation::UuidUtils; using ::android::hardware::audio::effect::CPP_VERSION::implementation::EffectUtils; using ::android::hardware::Return; namespace android { namespace effect { Loading Loading @@ -78,9 +79,11 @@ EffectDescriptorCache::QueryResult EffectDescriptorCache::queryAllDescriptors( } EffectsFactoryHalHidl::EffectsFactoryHalHidl(sp<IEffectsFactory> effectsFactory) : EffectConversionHelperHidl("EffectsFactory"), mCache(new EffectDescriptorCache) { ALOG_ASSERT(effectsFactory != nullptr, "Provided IEffectsFactory service is NULL"); mEffectsFactory = std::move(effectsFactory); : EffectConversionHelperHidl("EffectsFactory"), mEffectsFactory(std::move(effectsFactory)), mCache(new EffectDescriptorCache), mParsingResult(effectsConfig::parse()) { ALOG_ASSERT(mEffectsFactory != nullptr, "Provided IEffectsFactory service is NULL"); } status_t EffectsFactoryHalHidl::queryNumberEffects(uint32_t *pNumEffects) { Loading Loading @@ -228,6 +231,17 @@ AudioHalVersionInfo EffectsFactoryHalHidl::getHalVersion() const { return AudioHalVersionInfo(AudioHalVersionInfo::Type::HIDL, MAJOR_VERSION, MINOR_VERSION); } std::shared_ptr<const effectsConfig::Processings> EffectsFactoryHalHidl::getProcessings() const { return mParsingResult.parsedConfig; } ::android::error::Result<size_t> EffectsFactoryHalHidl::getSkippedElements() const { if (!mParsingResult.parsedConfig) { return ::android::base::unexpected(BAD_VALUE); } return mParsingResult.nbSkippedElement; } } // namespace effect // When a shared library is built from a static library, even explicit Loading