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

Commit b82d0d60 authored by Shunkai Yao's avatar Shunkai Yao
Browse files

EffectHalAidl: set the datamq event flag at intialization time

Bug: 363428226
Test: atest AudioEffectTest
Test: YouTubeMusic with effect enabled
Change-Id: Iaa163d7d01c4efb9356312351b7febc0bff37bc0
parent 688613e2
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -80,7 +80,9 @@ EffectHalAidl::EffectHalAidl(const std::shared_ptr<IFactory>& factory,
          int version = 0;
          // use factory HAL version because effect can be an EffectProxy instance
          return factory->getInterfaceVersion(&version).isOk() ? version : 0;
      }()) {
      }()),
      mEventFlagDataMqNotEmpty(mHalVersion >= kReopenSupportedVersion ? kEventFlagDataMqNotEmpty
                                                                      : kEventFlagNotEmpty) {
    assert(mFactory != nullptr);
    assert(mEffect != nullptr);
    createAidlConversion(effect, sessionId, ioId, desc);
@@ -249,9 +251,7 @@ size_t EffectHalAidl::writeToHalInputFmqAndSignal(
        return 0;
    }

    // for V2 audio effect HAL, expect different EventFlag to avoid bit conflict with FMQ_NOT_EMPTY
    efGroup->wake(mHalVersion >= kReopenSupportedVersion ? kEventFlagDataMqNotEmpty
                                                         : kEventFlagNotEmpty);
    efGroup->wake(mEventFlagDataMqNotEmpty);
    return samplesToWrite;
}

+4 −1
Original line number Diff line number Diff line
@@ -73,7 +73,10 @@ class EffectHalAidl : public EffectHalInterface {
    const int32_t mSessionId;
    const int32_t mIoId;
    const bool mIsProxyEffect;
    const int mHalVersion;
    const int32_t mHalVersion;
    // Audio effect HAL v2+ changes flag to kEventFlagDataMqNotEmpty to avoid conflict from using
    // kEventFlagNotEmpty
    const uint32_t mEventFlagDataMqNotEmpty;
    bool mIsHapticGenerator = false;
    std::string mEffectName;