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

Commit 2ddafc22 authored by Shunkai Yao's avatar Shunkai Yao
Browse files

[AIDL CTS] pass EnvReverb implementation cts

Bug: 270158223
Test: atest android.media.audio.cts.EnvReverbTest
Change-Id: Ie7fcc2d65a8daaef5d7a76cc6ca3ec6e13d4b547
parent 5283f81f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ union EnvironmentalReverb {
  int roomHfLevelMb;
  int decayTimeMs;
  int decayHfRatioPm;
  int reflectionsLevelMb;
  int reflectionsDelayMs;
  int levelMb;
  int delayMs;
  int diffusionPm;
+8 −0
Original line number Diff line number Diff line
@@ -58,6 +58,14 @@ union EnvironmentalReverb {
     * HF decay ratio in permilles.
     */
    int decayHfRatioPm;
    /**
     * Reverb reflections level in millibels.
     */
    int reflectionsLevelMb;
    /**
     * Reverb reflections delay in milliseconds.
     */
    int reflectionsDelayMs;
    /**
     * Reverb level in millibels.
     */
+24 −0
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ const std::vector<Range::EnvironmentalReverbRange> EnvReverbSw::kRanges = {
        MAKE_RANGE(EnvironmentalReverb, roomHfLevelMb, -4000, 0),
        MAKE_RANGE(EnvironmentalReverb, decayTimeMs, 0, 7000),
        MAKE_RANGE(EnvironmentalReverb, decayHfRatioPm, 100, 2000),
        MAKE_RANGE(EnvironmentalReverb, reflectionsLevelMb, -6000, 0),
        MAKE_RANGE(EnvironmentalReverb, reflectionsDelayMs, 0, 65),
        MAKE_RANGE(EnvironmentalReverb, levelMb, -6000, 0),
        MAKE_RANGE(EnvironmentalReverb, delayMs, 0, 65),
        MAKE_RANGE(EnvironmentalReverb, diffusionPm, 0, 1000),
@@ -125,6 +127,20 @@ ndk::ScopedAStatus EnvReverbSw::setParameterSpecific(const Parameter::Specific&
                    EX_ILLEGAL_ARGUMENT, "setDecayHfRatioFailed");
            return ndk::ScopedAStatus::ok();
        }
        case EnvironmentalReverb::reflectionsLevelMb: {
            RETURN_IF(mContext->setErReflectionsLevel(
                              erParam.get<EnvironmentalReverb::reflectionsLevelMb>()) !=
                              RetCode::SUCCESS,
                      EX_ILLEGAL_ARGUMENT, "setReflectionsLevelFailed");
            return ndk::ScopedAStatus::ok();
        }
        case EnvironmentalReverb::reflectionsDelayMs: {
            RETURN_IF(mContext->setErReflectionsDelay(
                              erParam.get<EnvironmentalReverb::reflectionsDelayMs>()) !=
                              RetCode::SUCCESS,
                      EX_ILLEGAL_ARGUMENT, "setReflectionsDelayFailed");
            return ndk::ScopedAStatus::ok();
        }
        case EnvironmentalReverb::levelMb: {
            RETURN_IF(mContext->setErLevel(erParam.get<EnvironmentalReverb::levelMb>()) !=
                              RetCode::SUCCESS,
@@ -201,6 +217,14 @@ ndk::ScopedAStatus EnvReverbSw::getParameterEnvironmentalReverb(const Environmen
            erParam.set<EnvironmentalReverb::decayHfRatioPm>(mContext->getErDecayHfRatio());
            break;
        }
        case EnvironmentalReverb::reflectionsLevelMb: {
            erParam.set<EnvironmentalReverb::reflectionsLevelMb>(mContext->getErReflectionsLevel());
            break;
        }
        case EnvironmentalReverb::reflectionsDelayMs: {
            erParam.set<EnvironmentalReverb::reflectionsDelayMs>(mContext->getErReflectionsDelay());
            break;
        }
        case EnvironmentalReverb::levelMb: {
            erParam.set<EnvironmentalReverb::levelMb>(mContext->getErLevel());
            break;
+14 −1
Original line number Diff line number Diff line
@@ -58,12 +58,23 @@ class EnvReverbSwContext final : public EffectContext {
    int getErDensity() const { return mDensity; }

    RetCode setErBypass(bool bypass) {
        // TODO : Add implementation to apply new bypass
        mBypass = bypass;
        return RetCode::SUCCESS;
    }
    bool getErBypass() const { return mBypass; }

    RetCode setErReflectionsDelay(int delay) {
        mReflectionsDelayMs = delay;
        return RetCode::SUCCESS;
    }
    bool getErReflectionsDelay() const { return mReflectionsDelayMs; }

    RetCode setErReflectionsLevel(int level) {
        mReflectionsLevelMb = level;
        return RetCode::SUCCESS;
    }
    bool getErReflectionsLevel() const { return mReflectionsLevelMb; }

  private:
    int mRoomLevel = -6000;                                        // Default room level
    int mRoomHfLevel = 0;                                          // Default room hf level
@@ -71,6 +82,8 @@ class EnvReverbSwContext final : public EffectContext {
    int mDecayHfRatio = 500;                                       // Default decay hf ratio
    int mLevel = -6000;                                            // Default level
    int mDelay = 40;                                               // Default delay
    int mReflectionsLevelMb = 0;
    int mReflectionsDelayMs = 0;
    int mDiffusion = 1000;                                         // Default diffusion
    int mDensity = 1000;                                           // Default density
    bool mBypass = false;                                          // Default bypass