diff --git a/audio/aidl/Android.bp b/audio/aidl/Android.bp index 01af9400ab..d14151400c 100644 --- a/audio/aidl/Android.bp +++ b/audio/aidl/Android.bp @@ -225,8 +225,8 @@ aidl_interface { ], srcs: [ "android/hardware/audio/effect/AcousticEchoCanceler.aidl", - "android/hardware/audio/effect/AutomaticGainControl.aidl", "android/hardware/audio/effect/AutomaticGainControlV1.aidl", + "android/hardware/audio/effect/AutomaticGainControlV2.aidl", "android/hardware/audio/effect/BassBoost.aidl", "android/hardware/audio/effect/Capability.aidl", "android/hardware/audio/effect/CommandId.aidl", diff --git a/audio/aidl/TEST_MAPPING b/audio/aidl/TEST_MAPPING index a166e61872..f030af0ff3 100644 --- a/audio/aidl/TEST_MAPPING +++ b/audio/aidl/TEST_MAPPING @@ -40,7 +40,7 @@ "name": "VtsHalAECTargetTest" }, { - "name": "VtsHalAGCTargetTest" + "name": "VtsHalAGC2TargetTest" }, { "name": "VtsHalNSTargetTest" diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/AutomaticGainControl.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/AutomaticGainControlV2.aidl similarity index 91% rename from audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/AutomaticGainControl.aidl rename to audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/AutomaticGainControlV2.aidl index f3dd523281..bdb481c75b 100644 --- a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/AutomaticGainControl.aidl +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/AutomaticGainControlV2.aidl @@ -33,15 +33,15 @@ package android.hardware.audio.effect; @VintfStability -union AutomaticGainControl { +union AutomaticGainControlV2 { android.hardware.audio.effect.VendorExtension vendor; int fixedDigitalGainMb; - android.hardware.audio.effect.AutomaticGainControl.LevelEstimator levelEstimator; + android.hardware.audio.effect.AutomaticGainControlV2.LevelEstimator levelEstimator; int saturationMarginMb; @VintfStability union Id { int vendorExtensionTag; - android.hardware.audio.effect.AutomaticGainControl.Tag commonTag; + android.hardware.audio.effect.AutomaticGainControlV2.Tag commonTag; } @Backing(type="int") @VintfStability enum LevelEstimator { diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Descriptor.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Descriptor.aidl index 990d369373..c738c2720c 100644 --- a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Descriptor.aidl +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Descriptor.aidl @@ -41,7 +41,7 @@ parcelable Descriptor { const String EFFECT_TYPE_UUID_EQUALIZER = "0bed4300-ddd6-11db-8f34-0002a5d5c51b"; const String EFFECT_TYPE_UUID_BASS_BOOST = "0634f220-ddd4-11db-a0fc-0002a5d5c51b"; const String EFFECT_TYPE_UUID_VIRTUALIZER = "37cc2c00-dddd-11db-8577-0002a5d5c51b"; - const String EFFECT_TYPE_UUID_AGC = "0a8abfe0-654c-11e0-ba26-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_AGC2 = "ae3c653b-be18-4ab8-8938-418f0a7f06ac"; const String EFFECT_TYPE_UUID_AEC = "7b491460-8d4d-11e0-bd61-0002a5d5c51b"; const String EFFECT_TYPE_UUID_NS = "58b4b260-8e06-11e0-aa8e-0002a5d5c51b"; const String EFFECT_TYPE_UUID_LOUDNESS_ENHANCER = "fe3199be-aed0-413f-87bb-11260eb63cf1"; diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Parameter.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Parameter.aidl index 3ba44a0440..19b1752ff0 100644 --- a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Parameter.aidl +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Parameter.aidl @@ -44,7 +44,7 @@ union Parameter { union Id { int vendorEffectTag; android.hardware.audio.effect.AcousticEchoCanceler.Id acousticEchoCancelerTag; - android.hardware.audio.effect.AutomaticGainControl.Id automaticGainControlTag; + android.hardware.audio.effect.AutomaticGainControlV2.Id automaticGainControlV2Tag; android.hardware.audio.effect.BassBoost.Id bassBoostTag; android.hardware.audio.effect.Downmix.Id downmixTag; android.hardware.audio.effect.DynamicsProcessing.Id dynamicsProcessingTag; @@ -75,7 +75,7 @@ union Parameter { union Specific { android.hardware.audio.effect.VendorExtension vendorEffect; android.hardware.audio.effect.AcousticEchoCanceler acousticEchoCanceler; - android.hardware.audio.effect.AutomaticGainControl automaticGainControl; + android.hardware.audio.effect.AutomaticGainControlV2 automaticGainControlV2; android.hardware.audio.effect.BassBoost bassBoost; android.hardware.audio.effect.Downmix downmix; android.hardware.audio.effect.DynamicsProcessing dynamicsProcessing; diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Range.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Range.aidl index 14e9cd874f..93edc5edfa 100644 --- a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Range.aidl +++ b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Range.aidl @@ -36,8 +36,8 @@ package android.hardware.audio.effect; union Range { android.hardware.audio.effect.Range.VendorExtensionRange[] vendorExtension = {}; android.hardware.audio.effect.Range.AcousticEchoCancelerRange[] acousticEchoCanceler; - android.hardware.audio.effect.Range.AutomaticGainControlRange[] automaticGainControl; android.hardware.audio.effect.Range.AutomaticGainControlV1Range[] automaticGainControlV1; + android.hardware.audio.effect.Range.AutomaticGainControlV2Range[] automaticGainControlV2; android.hardware.audio.effect.Range.BassBoostRange[] bassBoost; android.hardware.audio.effect.Range.DownmixRange[] downmix; android.hardware.audio.effect.Range.DynamicsProcessingRange[] dynamicsProcessing; @@ -56,16 +56,16 @@ union Range { android.hardware.audio.effect.AcousticEchoCanceler max; } @VintfStability - parcelable AutomaticGainControlRange { - android.hardware.audio.effect.AutomaticGainControl min; - android.hardware.audio.effect.AutomaticGainControl max; - } - @VintfStability parcelable AutomaticGainControlV1Range { android.hardware.audio.effect.AutomaticGainControlV1 min; android.hardware.audio.effect.AutomaticGainControlV1 max; } @VintfStability + parcelable AutomaticGainControlV2Range { + android.hardware.audio.effect.AutomaticGainControlV2 min; + android.hardware.audio.effect.AutomaticGainControlV2 max; + } + @VintfStability parcelable BassBoostRange { android.hardware.audio.effect.BassBoost min; android.hardware.audio.effect.BassBoost max; diff --git a/audio/aidl/android/hardware/audio/effect/AutomaticGainControl.aidl b/audio/aidl/android/hardware/audio/effect/AutomaticGainControlV2.aidl similarity index 72% rename from audio/aidl/android/hardware/audio/effect/AutomaticGainControl.aidl rename to audio/aidl/android/hardware/audio/effect/AutomaticGainControlV2.aidl index 0c984b51c4..836d6b8caf 100644 --- a/audio/aidl/android/hardware/audio/effect/AutomaticGainControl.aidl +++ b/audio/aidl/android/hardware/audio/effect/AutomaticGainControlV2.aidl @@ -19,28 +19,29 @@ package android.hardware.audio.effect; import android.hardware.audio.effect.VendorExtension; /** - * Automatic Gain Control (AGC) is an audio pre-processor which automatically normalizes the output - * of the captured signal by boosting or lowering input from the microphone to match a preset level - * so that the output signal level is virtually constant. AGC can be used by applications where the - * input signal dynamic range is not important but where a constant strong capture level is desired. + * Automatic Gain Control V2 (AGC2) is an audio pre-processor which automatically normalizes the + * output of the captured signal by boosting or lowering input from the microphone to match a preset + * level so that the output signal level is virtually constant. AGC can be used by applications + * where the input signal dynamic range is not important but where a constant strong capture level + * is desired. * - * All parameter settings must be inside the range of Capability.Range.automaticGainControl + * All parameter settings must be inside the range of Capability.Range.automaticGainControlV2 * definition if the definition for the corresponding parameter tag exist. See more detals about * Range in Range.aidl. */ @VintfStability -union AutomaticGainControl { +union AutomaticGainControlV2 { /** * Effect parameter tag to identify the parameters for getParameter(). */ @VintfStability union Id { int vendorExtensionTag; - AutomaticGainControl.Tag commonTag; + AutomaticGainControlV2.Tag commonTag; } /** - * Vendor AutomaticGainControl implementation definition for additional parameters. + * Vendor AutomaticGainControlV2 implementation definition for additional parameters. */ VendorExtension vendor; diff --git a/audio/aidl/android/hardware/audio/effect/Descriptor.aidl b/audio/aidl/android/hardware/audio/effect/Descriptor.aidl index 47c88dc8d3..9b045b41f8 100644 --- a/audio/aidl/android/hardware/audio/effect/Descriptor.aidl +++ b/audio/aidl/android/hardware/audio/effect/Descriptor.aidl @@ -57,9 +57,9 @@ parcelable Descriptor { */ const String EFFECT_TYPE_UUID_VIRTUALIZER = "37cc2c00-dddd-11db-8577-0002a5d5c51b"; /** - * UUID for Automatic Gain Control (AGC) type. + * UUID for Automatic Gain Control V2 (AGC2) type. */ - const String EFFECT_TYPE_UUID_AGC = "0a8abfe0-654c-11e0-ba26-0002a5d5c51b"; + const String EFFECT_TYPE_UUID_AGC2 = "ae3c653b-be18-4ab8-8938-418f0a7f06ac"; /** * UUID for Acoustic Echo Canceler (AEC) type. */ diff --git a/audio/aidl/android/hardware/audio/effect/Parameter.aidl b/audio/aidl/android/hardware/audio/effect/Parameter.aidl index be7144ff0e..1d23221c9b 100644 --- a/audio/aidl/android/hardware/audio/effect/Parameter.aidl +++ b/audio/aidl/android/hardware/audio/effect/Parameter.aidl @@ -17,7 +17,7 @@ package android.hardware.audio.effect; import android.hardware.audio.effect.AcousticEchoCanceler; -import android.hardware.audio.effect.AutomaticGainControl; +import android.hardware.audio.effect.AutomaticGainControlV2; import android.hardware.audio.effect.BassBoost; import android.hardware.audio.effect.Downmix; import android.hardware.audio.effect.DynamicsProcessing; @@ -83,7 +83,7 @@ union Parameter { * */ AcousticEchoCanceler.Id acousticEchoCancelerTag; - AutomaticGainControl.Id automaticGainControlTag; + AutomaticGainControlV2.Id automaticGainControlV2Tag; BassBoost.Id bassBoostTag; Downmix.Id downmixTag; DynamicsProcessing.Id dynamicsProcessingTag; @@ -165,7 +165,7 @@ union Parameter { union Specific { VendorExtension vendorEffect; AcousticEchoCanceler acousticEchoCanceler; - AutomaticGainControl automaticGainControl; + AutomaticGainControlV2 automaticGainControlV2; BassBoost bassBoost; Downmix downmix; DynamicsProcessing dynamicsProcessing; diff --git a/audio/aidl/android/hardware/audio/effect/Range.aidl b/audio/aidl/android/hardware/audio/effect/Range.aidl index 30e2359aeb..567320a0bb 100644 --- a/audio/aidl/android/hardware/audio/effect/Range.aidl +++ b/audio/aidl/android/hardware/audio/effect/Range.aidl @@ -17,8 +17,8 @@ package android.hardware.audio.effect; import android.hardware.audio.effect.AcousticEchoCanceler; -import android.hardware.audio.effect.AutomaticGainControl; import android.hardware.audio.effect.AutomaticGainControlV1; +import android.hardware.audio.effect.AutomaticGainControlV2; import android.hardware.audio.effect.BassBoost; import android.hardware.audio.effect.Downmix; import android.hardware.audio.effect.DynamicsProcessing; @@ -102,18 +102,18 @@ union Range { AcousticEchoCanceler max; } - @VintfStability - parcelable AutomaticGainControlRange { - AutomaticGainControl min; - AutomaticGainControl max; - } - @VintfStability parcelable AutomaticGainControlV1Range { AutomaticGainControlV1 min; AutomaticGainControlV1 max; } + @VintfStability + parcelable AutomaticGainControlV2Range { + AutomaticGainControlV2 min; + AutomaticGainControlV2 max; + } + @VintfStability parcelable BassBoostRange { BassBoost min; @@ -203,8 +203,8 @@ union Range { */ VendorExtensionRange[] vendorExtension = {}; AcousticEchoCancelerRange[] acousticEchoCanceler; - AutomaticGainControlRange[] automaticGainControl; AutomaticGainControlV1Range[] automaticGainControlV1; + AutomaticGainControlV2Range[] automaticGainControlV2; BassBoostRange[] bassBoost; DownmixRange[] downmix; DynamicsProcessingRange[] dynamicsProcessing; diff --git a/audio/aidl/default/audio_effects_config.xml b/audio/aidl/default/audio_effects_config.xml index 6714a7ea76..14995d70fb 100644 --- a/audio/aidl/default/audio_effects_config.xml +++ b/audio/aidl/default/audio_effects_config.xml @@ -29,7 +29,7 @@ --> - + @@ -67,7 +67,7 @@ - + diff --git a/audio/aidl/default/automaticGainControl/Android.bp b/audio/aidl/default/automaticGainControlV2/Android.bp similarity index 95% rename from audio/aidl/default/automaticGainControl/Android.bp rename to audio/aidl/default/automaticGainControlV2/Android.bp index 17d64168df..631cf58d23 100644 --- a/audio/aidl/default/automaticGainControl/Android.bp +++ b/audio/aidl/default/automaticGainControlV2/Android.bp @@ -24,14 +24,14 @@ package { } cc_library_shared { - name: "libagcsw", + name: "libagc2sw", defaults: [ "aidlaudioeffectservice_defaults", "latest_android_media_audio_common_types_ndk_shared", "latest_android_hardware_audio_effect_ndk_shared", ], srcs: [ - "AutomaticGainControlSw.cpp", + "AutomaticGainControlV2Sw.cpp", ":effectCommonFile", ], relative_install_path: "soundfx", diff --git a/audio/aidl/default/automaticGainControl/AutomaticGainControlSw.cpp b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp similarity index 54% rename from audio/aidl/default/automaticGainControl/AutomaticGainControlSw.cpp rename to audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp index 30d7910553..8441f229fb 100644 --- a/audio/aidl/default/automaticGainControl/AutomaticGainControlSw.cpp +++ b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp @@ -17,29 +17,29 @@ #include #include #include -#define LOG_TAG "AHAL_AutomaticGainControlSw" +#define LOG_TAG "AHAL_AutomaticGainControlV2Sw" #include #include #include #include -#include "AutomaticGainControlSw.h" +#include "AutomaticGainControlV2Sw.h" -using aidl::android::hardware::audio::effect::AutomaticGainControlSw; +using aidl::android::hardware::audio::effect::AutomaticGainControlV2Sw; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::IEffect; -using aidl::android::hardware::audio::effect::kAutomaticGainControlSwImplUUID; +using aidl::android::hardware::audio::effect::kAutomaticGainControlV2SwImplUUID; using aidl::android::media::audio::common::AudioUuid; extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid, std::shared_ptr* instanceSpp) { - if (!in_impl_uuid || *in_impl_uuid != kAutomaticGainControlSwImplUUID) { + if (!in_impl_uuid || *in_impl_uuid != kAutomaticGainControlV2SwImplUUID) { LOG(ERROR) << __func__ << "uuid not supported"; return EX_ILLEGAL_ARGUMENT; } if (instanceSpp) { - *instanceSpp = ndk::SharedRefBase::make(); + *instanceSpp = ndk::SharedRefBase::make(); LOG(DEBUG) << __func__ << " instance " << instanceSpp->get() << " created"; return EX_NONE; } else { @@ -49,68 +49,69 @@ extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid, } extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) { - if (!in_impl_uuid || *in_impl_uuid != kAutomaticGainControlSwImplUUID) { + if (!in_impl_uuid || *in_impl_uuid != kAutomaticGainControlV2SwImplUUID) { LOG(ERROR) << __func__ << "uuid not supported"; return EX_ILLEGAL_ARGUMENT; } - *_aidl_return = AutomaticGainControlSw::kDescriptor; + *_aidl_return = AutomaticGainControlV2Sw::kDescriptor; return EX_NONE; } namespace aidl::android::hardware::audio::effect { -const std::string AutomaticGainControlSw::kEffectName = "AutomaticGainControlSw"; +const std::string AutomaticGainControlV2Sw::kEffectName = "AutomaticGainControlV2Sw"; -const std::vector AutomaticGainControlSw::kRanges = { - MAKE_RANGE(AutomaticGainControl, fixedDigitalGainMb, 0, 50000), - MAKE_RANGE(AutomaticGainControl, saturationMarginMb, 0, 10000)}; +const std::vector AutomaticGainControlV2Sw::kRanges = { + MAKE_RANGE(AutomaticGainControlV2, fixedDigitalGainMb, 0, 50000), + MAKE_RANGE(AutomaticGainControlV2, saturationMarginMb, 0, 10000)}; -const Capability AutomaticGainControlSw::kCapability = {.range = AutomaticGainControlSw::kRanges}; +const Capability AutomaticGainControlV2Sw::kCapability = { + .range = AutomaticGainControlV2Sw::kRanges}; -const Descriptor AutomaticGainControlSw::kDescriptor = { - .common = {.id = {.type = kAutomaticGainControlTypeUUID, - .uuid = kAutomaticGainControlSwImplUUID, +const Descriptor AutomaticGainControlV2Sw::kDescriptor = { + .common = {.id = {.type = kAutomaticGainControlV2TypeUUID, + .uuid = kAutomaticGainControlV2SwImplUUID, .proxy = std::nullopt}, .flags = {.type = Flags::Type::INSERT, .insert = Flags::Insert::FIRST, .volume = Flags::Volume::CTRL}, - .name = AutomaticGainControlSw::kEffectName, + .name = AutomaticGainControlV2Sw::kEffectName, .implementor = "The Android Open Source Project"}, - .capability = AutomaticGainControlSw::kCapability}; + .capability = AutomaticGainControlV2Sw::kCapability}; -ndk::ScopedAStatus AutomaticGainControlSw::getDescriptor(Descriptor* _aidl_return) { +ndk::ScopedAStatus AutomaticGainControlV2Sw::getDescriptor(Descriptor* _aidl_return) { LOG(DEBUG) << __func__ << kDescriptor.toString(); *_aidl_return = kDescriptor; return ndk::ScopedAStatus::ok(); } -ndk::ScopedAStatus AutomaticGainControlSw::setParameterSpecific( +ndk::ScopedAStatus AutomaticGainControlV2Sw::setParameterSpecific( const Parameter::Specific& specific) { - RETURN_IF(Parameter::Specific::automaticGainControl != specific.getTag(), EX_ILLEGAL_ARGUMENT, + RETURN_IF(Parameter::Specific::automaticGainControlV2 != specific.getTag(), EX_ILLEGAL_ARGUMENT, "EffectNotSupported"); RETURN_IF(!mContext, EX_NULL_POINTER, "nullContext"); - auto& param = specific.get(); + auto& param = specific.get(); RETURN_IF(!inRange(param, kRanges), EX_ILLEGAL_ARGUMENT, "outOfRange"); auto tag = param.getTag(); switch (tag) { - case AutomaticGainControl::fixedDigitalGainMb: { + case AutomaticGainControlV2::fixedDigitalGainMb: { RETURN_IF(mContext->setDigitalGain( - param.get()) != + param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "digitalGainNotSupported"); return ndk::ScopedAStatus::ok(); } - case AutomaticGainControl::levelEstimator: { - RETURN_IF( - mContext->setLevelEstimator( - param.get()) != RetCode::SUCCESS, - EX_ILLEGAL_ARGUMENT, "levelEstimatorNotSupported"); + case AutomaticGainControlV2::levelEstimator: { + RETURN_IF(mContext->setLevelEstimator( + param.get()) != + RetCode::SUCCESS, + EX_ILLEGAL_ARGUMENT, "levelEstimatorNotSupported"); return ndk::ScopedAStatus::ok(); } - case AutomaticGainControl::saturationMarginMb: { + case AutomaticGainControlV2::saturationMarginMb: { RETURN_IF(mContext->setSaturationMargin( - param.get()) != + param.get()) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT, "saturationMarginNotSupported"); return ndk::ScopedAStatus::ok(); @@ -118,71 +119,72 @@ ndk::ScopedAStatus AutomaticGainControlSw::setParameterSpecific( default: { LOG(ERROR) << __func__ << " unsupported tag: " << toString(tag); return ndk::ScopedAStatus::fromExceptionCodeWithMessage( - EX_ILLEGAL_ARGUMENT, "AutomaticGainControlTagNotSupported"); + EX_ILLEGAL_ARGUMENT, "AutomaticGainControlV2TagNotSupported"); } } } -ndk::ScopedAStatus AutomaticGainControlSw::getParameterSpecific(const Parameter::Id& id, - Parameter::Specific* specific) { +ndk::ScopedAStatus AutomaticGainControlV2Sw::getParameterSpecific(const Parameter::Id& id, + Parameter::Specific* specific) { auto tag = id.getTag(); - RETURN_IF(Parameter::Id::automaticGainControlTag != tag, EX_ILLEGAL_ARGUMENT, "wrongIdTag"); - auto specificId = id.get(); + RETURN_IF(Parameter::Id::automaticGainControlV2Tag != tag, EX_ILLEGAL_ARGUMENT, "wrongIdTag"); + auto specificId = id.get(); auto specificIdTag = specificId.getTag(); switch (specificIdTag) { - case AutomaticGainControl::Id::commonTag: - return getParameterAutomaticGainControl( - specificId.get(), specific); + case AutomaticGainControlV2::Id::commonTag: + return getParameterAutomaticGainControlV2( + specificId.get(), specific); default: LOG(ERROR) << __func__ << " unsupported tag: " << toString(tag); return ndk::ScopedAStatus::fromExceptionCodeWithMessage( - EX_ILLEGAL_ARGUMENT, "AutomaticGainControlTagNotSupported"); + EX_ILLEGAL_ARGUMENT, "AutomaticGainControlV2TagNotSupported"); } } -ndk::ScopedAStatus AutomaticGainControlSw::getParameterAutomaticGainControl( - const AutomaticGainControl::Tag& tag, Parameter::Specific* specific) { +ndk::ScopedAStatus AutomaticGainControlV2Sw::getParameterAutomaticGainControlV2( + const AutomaticGainControlV2::Tag& tag, Parameter::Specific* specific) { RETURN_IF(!mContext, EX_NULL_POINTER, "nullContext"); - AutomaticGainControl param; + AutomaticGainControlV2 param; switch (tag) { - case AutomaticGainControl::fixedDigitalGainMb: { - param.set(mContext->getDigitalGain()); + case AutomaticGainControlV2::fixedDigitalGainMb: { + param.set(mContext->getDigitalGain()); break; } - case AutomaticGainControl::levelEstimator: { - param.set(mContext->getLevelEstimator()); + case AutomaticGainControlV2::levelEstimator: { + param.set(mContext->getLevelEstimator()); break; } - case AutomaticGainControl::saturationMarginMb: { - param.set(mContext->getSaturationMargin()); + case AutomaticGainControlV2::saturationMarginMb: { + param.set(mContext->getSaturationMargin()); break; } default: { LOG(ERROR) << __func__ << " unsupported tag: " << toString(tag); return ndk::ScopedAStatus::fromExceptionCodeWithMessage( - EX_ILLEGAL_ARGUMENT, "AutomaticGainControlTagNotSupported"); + EX_ILLEGAL_ARGUMENT, "AutomaticGainControlV2TagNotSupported"); } } - specific->set(param); + specific->set(param); return ndk::ScopedAStatus::ok(); } -std::shared_ptr AutomaticGainControlSw::createContext( +std::shared_ptr AutomaticGainControlV2Sw::createContext( const Parameter::Common& common) { if (mContext) { LOG(DEBUG) << __func__ << " context already exist"; } else { - mContext = std::make_shared(1 /* statusFmqDepth */, common); + mContext = + std::make_shared(1 /* statusFmqDepth */, common); } return mContext; } -std::shared_ptr AutomaticGainControlSw::getContext() { +std::shared_ptr AutomaticGainControlV2Sw::getContext() { return mContext; } -RetCode AutomaticGainControlSw::releaseContext() { +RetCode AutomaticGainControlV2Sw::releaseContext() { if (mContext) { mContext.reset(); } @@ -190,7 +192,7 @@ RetCode AutomaticGainControlSw::releaseContext() { } // Processing method running in EffectWorker thread. -IEffect::Status AutomaticGainControlSw::effectProcessImpl(float* in, float* out, int samples) { +IEffect::Status AutomaticGainControlV2Sw::effectProcessImpl(float* in, float* out, int samples) { // TODO: get data buffer and process. LOG(DEBUG) << __func__ << " in " << in << " out " << out << " samples " << samples; for (int i = 0; i < samples; i++) { @@ -199,31 +201,31 @@ IEffect::Status AutomaticGainControlSw::effectProcessImpl(float* in, float* out, return {STATUS_OK, samples, samples}; } -RetCode AutomaticGainControlSwContext::setDigitalGain(int gain) { +RetCode AutomaticGainControlV2SwContext::setDigitalGain(int gain) { mDigitalGain = gain; return RetCode::SUCCESS; } -int AutomaticGainControlSwContext::getDigitalGain() { +int AutomaticGainControlV2SwContext::getDigitalGain() { return mDigitalGain; } -RetCode AutomaticGainControlSwContext::setLevelEstimator( - AutomaticGainControl::LevelEstimator levelEstimator) { +RetCode AutomaticGainControlV2SwContext::setLevelEstimator( + AutomaticGainControlV2::LevelEstimator levelEstimator) { mLevelEstimator = levelEstimator; return RetCode::SUCCESS; } -AutomaticGainControl::LevelEstimator AutomaticGainControlSwContext::getLevelEstimator() { +AutomaticGainControlV2::LevelEstimator AutomaticGainControlV2SwContext::getLevelEstimator() { return mLevelEstimator; } -RetCode AutomaticGainControlSwContext::setSaturationMargin(int margin) { +RetCode AutomaticGainControlV2SwContext::setSaturationMargin(int margin) { mSaturationMargin = margin; return RetCode::SUCCESS; } -int AutomaticGainControlSwContext::getSaturationMargin() { +int AutomaticGainControlV2SwContext::getSaturationMargin() { return mSaturationMargin; } diff --git a/audio/aidl/default/automaticGainControl/AutomaticGainControlSw.h b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h similarity index 70% rename from audio/aidl/default/automaticGainControl/AutomaticGainControlSw.h rename to audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h index 93274106e5..0b50f4de0b 100644 --- a/audio/aidl/default/automaticGainControl/AutomaticGainControlSw.h +++ b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h @@ -26,35 +26,35 @@ namespace aidl::android::hardware::audio::effect { -class AutomaticGainControlSwContext final : public EffectContext { +class AutomaticGainControlV2SwContext final : public EffectContext { public: - AutomaticGainControlSwContext(int statusDepth, const Parameter::Common& common) + AutomaticGainControlV2SwContext(int statusDepth, const Parameter::Common& common) : EffectContext(statusDepth, common) { LOG(DEBUG) << __func__; } RetCode setDigitalGain(int gain); int getDigitalGain(); - RetCode setLevelEstimator(AutomaticGainControl::LevelEstimator levelEstimator); - AutomaticGainControl::LevelEstimator getLevelEstimator(); + RetCode setLevelEstimator(AutomaticGainControlV2::LevelEstimator levelEstimator); + AutomaticGainControlV2::LevelEstimator getLevelEstimator(); RetCode setSaturationMargin(int margin); int getSaturationMargin(); private: int mDigitalGain = 0; - AutomaticGainControl::LevelEstimator mLevelEstimator = - AutomaticGainControl::LevelEstimator::RMS; + AutomaticGainControlV2::LevelEstimator mLevelEstimator = + AutomaticGainControlV2::LevelEstimator::RMS; int mSaturationMargin = 0; }; -class AutomaticGainControlSw final : public EffectImpl { +class AutomaticGainControlV2Sw final : public EffectImpl { public: static const std::string kEffectName; static const bool kStrengthSupported; static const Capability kCapability; static const Descriptor kDescriptor; - AutomaticGainControlSw() { LOG(DEBUG) << __func__; } - ~AutomaticGainControlSw() { + AutomaticGainControlV2Sw() { LOG(DEBUG) << __func__; } + ~AutomaticGainControlV2Sw() { cleanUp(); LOG(DEBUG) << __func__; } @@ -72,9 +72,9 @@ class AutomaticGainControlSw final : public EffectImpl { IEffect::Status effectProcessImpl(float* in, float* out, int samples) override; private: - static const std::vector kRanges; - std::shared_ptr mContext; - ndk::ScopedAStatus getParameterAutomaticGainControl(const AutomaticGainControl::Tag& tag, - Parameter::Specific* specific); + static const std::vector kRanges; + std::shared_ptr mContext; + ndk::ScopedAStatus getParameterAutomaticGainControlV2(const AutomaticGainControlV2::Tag& tag, + Parameter::Specific* specific); }; } // namespace aidl::android::hardware::audio::effect diff --git a/audio/aidl/default/include/effect-impl/EffectUUID.h b/audio/aidl/default/include/effect-impl/EffectUUID.h index 7703091e84..f40661082a 100644 --- a/audio/aidl/default/include/effect-impl/EffectUUID.h +++ b/audio/aidl/default/include/effect-impl/EffectUUID.h @@ -45,18 +45,18 @@ static const AudioUuid kAcousticEchoCancelerSwImplUUID = {static_cast(0 0x11e0, 0xa896, {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}}; -// 0xae3c653b-be18-4ab8-8938-418f0a7f06ac -static const AudioUuid kAutomaticGainControlTypeUUID = {static_cast(0xae3c653b), - 0xbe18, - 0x4ab8, - 0x8938, - {0x41, 0x8f, 0x0a, 0x7f, 0x06, 0xac}}; +// ae3c653b-be18-4ab8-8938-418f0a7f06ac +static const AudioUuid kAutomaticGainControlV2TypeUUID = {static_cast(0xae3c653b), + 0xbe18, + 0x4ab8, + 0x8938, + {0x41, 0x8f, 0x0a, 0x7f, 0x06, 0xac}}; // 89f38e65-d4d2-4d64-ad0e-2b3e799ea886 -static const AudioUuid kAutomaticGainControlSwImplUUID = {static_cast(0x89f38e65), - 0xd4d2, - 0x4d64, - 0xad0e, - {0x2b, 0x3e, 0x79, 0x9e, 0xa8, 0x86}}; +static const AudioUuid kAutomaticGainControlV2SwImplUUID = {static_cast(0x89f38e65), + 0xd4d2, + 0x4d64, + 0xad0e, + {0x2b, 0x3e, 0x79, 0x9e, 0xa8, 0x86}}; // 0634f220-ddd4-11db-a0fc-0002a5d5c51b static const AudioUuid kBassBoostTypeUUID = {static_cast(0x0634f220), 0xddd4, @@ -306,7 +306,7 @@ static const AudioUuid kVolumeBundleImplUUID = {static_cast(0x119341a0) */ static const std::map kUuidNameTypeMap = { {"acoustic_echo_canceler", kAcousticEchoCancelerTypeUUID}, - {"automatic_gain_control", kAutomaticGainControlTypeUUID}, + {"automatic_gain_control_v2", kAutomaticGainControlV2TypeUUID}, {"bassboost", kBassBoostTypeUUID}, {"downmix", kDownmixTypeUUID}, {"dynamics_processing", kDynamicsProcessingTypeUUID}, diff --git a/audio/aidl/vts/Android.bp b/audio/aidl/vts/Android.bp index f9d12ddea0..a1a2bd9abe 100644 --- a/audio/aidl/vts/Android.bp +++ b/audio/aidl/vts/Android.bp @@ -141,9 +141,9 @@ cc_test { } cc_test { - name: "VtsHalAGCTargetTest", + name: "VtsHalAGC2TargetTest", defaults: ["VtsHalAudioTargetTestDefaults"], - srcs: ["VtsHalAGCTargetTest.cpp"], + srcs: ["VtsHalAGC2TargetTest.cpp"], } cc_test { diff --git a/audio/aidl/vts/VtsHalAGCTargetTest.cpp b/audio/aidl/vts/VtsHalAGC2TargetTest.cpp similarity index 69% rename from audio/aidl/vts/VtsHalAGCTargetTest.cpp rename to audio/aidl/vts/VtsHalAGC2TargetTest.cpp index 974c2e7d05..fd3a866006 100644 --- a/audio/aidl/vts/VtsHalAGCTargetTest.cpp +++ b/audio/aidl/vts/VtsHalAGC2TargetTest.cpp @@ -19,17 +19,17 @@ #include #include -#define LOG_TAG "VtsHalAGCParamTest" +#define LOG_TAG "VtsHalAGC2ParamTest" #include "EffectHelper.h" using namespace android; -using aidl::android::hardware::audio::effect::AutomaticGainControl; +using aidl::android::hardware::audio::effect::AutomaticGainControlV2; using aidl::android::hardware::audio::effect::Descriptor; using aidl::android::hardware::audio::effect::IEffect; using aidl::android::hardware::audio::effect::IFactory; -using aidl::android::hardware::audio::effect::kAutomaticGainControlTypeUUID; +using aidl::android::hardware::audio::effect::kAutomaticGainControlV2TypeUUID; using aidl::android::hardware::audio::effect::Parameter; enum ParamName { @@ -38,13 +38,13 @@ enum ParamName { PARAM_SATURATION_MARGIN, PARAM_LEVEL_ESTIMATOR }; -using AGCParamTestParam = +using AGC2ParamTestParam = std::tuple, Descriptor>, int /* gain */, - int /* margin */, AutomaticGainControl::LevelEstimator>; + int /* margin */, AutomaticGainControlV2::LevelEstimator>; -class AGCParamTest : public ::testing::TestWithParam, public EffectHelper { +class AGC2ParamTest : public ::testing::TestWithParam, public EffectHelper { public: - AGCParamTest() + AGC2ParamTest() : mGain(std::get(GetParam())), mMargin(std::get(GetParam())), mLevelEstimator(std::get(GetParam())) { @@ -70,10 +70,10 @@ class AGCParamTest : public ::testing::TestWithParam, public } Parameter::Specific getDefaultParamSpecific() { - AutomaticGainControl AGC = - AutomaticGainControl::make(0); + AutomaticGainControlV2 AGC2 = + AutomaticGainControlV2::make(0); Parameter::Specific specific = - Parameter::Specific::make(AGC); + Parameter::Specific::make(AGC2); return specific; } @@ -83,24 +83,25 @@ class AGCParamTest : public ::testing::TestWithParam, public Descriptor mDescriptor; int mGain; int mMargin; - AutomaticGainControl::LevelEstimator mLevelEstimator; + AutomaticGainControlV2::LevelEstimator mLevelEstimator; void SetAndGetParameters() { for (auto& it : mTags) { auto& tag = it.first; - auto& AGC = it.second; + auto& AGC2 = it.second; // validate parameter Descriptor desc; ASSERT_STATUS(EX_NONE, mEffect->getDescriptor(&desc)); const bool valid = - isParameterValid(AGC, desc); + isParameterValid(AGC2, + desc); const binder_exception_t expected = valid ? EX_NONE : EX_ILLEGAL_ARGUMENT; // set parameter Parameter expectParam; Parameter::Specific specific; - specific.set(AGC); + specific.set(AGC2); expectParam.set(specific); EXPECT_STATUS(expected, mEffect->setParameter(expectParam)) << expectParam.toString(); @@ -108,9 +109,9 @@ class AGCParamTest : public ::testing::TestWithParam, public if (expected == EX_NONE) { Parameter getParam; Parameter::Id id; - AutomaticGainControl::Id specificId; - specificId.set(tag); - id.set(specificId); + AutomaticGainControlV2::Id specificId; + specificId.set(tag); + id.set(specificId); EXPECT_STATUS(EX_NONE, mEffect->getParameter(id, &getParam)); EXPECT_EQ(expectParam, getParam) << "\nexpect:" << expectParam.toString() @@ -120,62 +121,62 @@ class AGCParamTest : public ::testing::TestWithParam, public } void addDigitalGainParam(int gain) { - AutomaticGainControl AGC; - AGC.set(gain); - mTags.push_back({AutomaticGainControl::fixedDigitalGainMb, AGC}); + AutomaticGainControlV2 AGC2; + AGC2.set(gain); + mTags.push_back({AutomaticGainControlV2::fixedDigitalGainMb, AGC2}); } void addSaturationMarginParam(int margin) { - AutomaticGainControl AGC; - AGC.set(margin); - mTags.push_back({AutomaticGainControl::saturationMarginMb, AGC}); + AutomaticGainControlV2 AGC2; + AGC2.set(margin); + mTags.push_back({AutomaticGainControlV2::saturationMarginMb, AGC2}); } - void addLevelEstimatorParam(AutomaticGainControl::LevelEstimator levelEstimator) { - AutomaticGainControl AGC; - AGC.set(levelEstimator); - mTags.push_back({AutomaticGainControl::levelEstimator, AGC}); + void addLevelEstimatorParam(AutomaticGainControlV2::LevelEstimator levelEstimator) { + AutomaticGainControlV2 AGC2; + AGC2.set(levelEstimator); + mTags.push_back({AutomaticGainControlV2::levelEstimator, AGC2}); } - static std::set getLevelEstimatorValues() { - return {ndk::enum_range().begin(), - ndk::enum_range().end()}; + static std::set getLevelEstimatorValues() { + return {ndk::enum_range().begin(), + ndk::enum_range().end()}; } private: - std::vector> mTags; + std::vector> mTags; void CleanUp() { mTags.clear(); } }; -TEST_P(AGCParamTest, SetAndGetDigitalGainParam) { +TEST_P(AGC2ParamTest, SetAndGetDigitalGainParam) { EXPECT_NO_FATAL_FAILURE(addDigitalGainParam(mGain)); SetAndGetParameters(); } -TEST_P(AGCParamTest, SetAndGetSaturationMargin) { +TEST_P(AGC2ParamTest, SetAndGetSaturationMargin) { EXPECT_NO_FATAL_FAILURE(addSaturationMarginParam(mMargin)); SetAndGetParameters(); } -TEST_P(AGCParamTest, SetAndGetLevelEstimator) { +TEST_P(AGC2ParamTest, SetAndGetLevelEstimator) { EXPECT_NO_FATAL_FAILURE(addLevelEstimatorParam(mLevelEstimator)); SetAndGetParameters(); } std::vector, Descriptor>> kDescPair; INSTANTIATE_TEST_SUITE_P( - AGCParamTest, AGCParamTest, + AGC2ParamTest, AGC2ParamTest, ::testing::Combine( testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors( - IFactory::descriptor, kAutomaticGainControlTypeUUID)), + IFactory::descriptor, kAutomaticGainControlV2TypeUUID)), testing::ValuesIn(EffectHelper::getTestValueSet< - AutomaticGainControl, int, Range::automaticGainControl, - AutomaticGainControl::fixedDigitalGainMb>( + AutomaticGainControlV2, int, Range::automaticGainControlV2, + AutomaticGainControlV2::fixedDigitalGainMb>( kDescPair, EffectHelper::expandTestValueBasic)), testing::ValuesIn(EffectHelper::getTestValueSet< - AutomaticGainControl, int, Range::automaticGainControl, - AutomaticGainControl::saturationMarginMb>( + AutomaticGainControlV2, int, Range::automaticGainControlV2, + AutomaticGainControlV2::saturationMarginMb>( kDescPair, EffectHelper::expandTestValueBasic)), - testing::ValuesIn(AGCParamTest::getLevelEstimatorValues())), - [](const testing::TestParamInfo& info) { + testing::ValuesIn(AGC2ParamTest::getLevelEstimatorValues())), + [](const testing::TestParamInfo& info) { auto descriptor = std::get(info.param).second; std::string gain = std::to_string(std::get(info.param)); std::string estimator = aidl::android::hardware::audio::effect::toString( @@ -192,7 +193,7 @@ INSTANTIATE_TEST_SUITE_P( return name; }); -GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(AGCParamTest); +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(AGC2ParamTest); int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv);