Loading media/libaudiohal/impl/EffectConversionHelperAidl.cpp +16 −4 Original line number Diff line number Diff line Loading @@ -182,8 +182,9 @@ status_t EffectConversionHelperAidl::handleSetConfig(uint32_t cmdSize, const voi RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(mEffect->getState(&state))); // in case of buffer/ioHandle re-configure for an opened effect, close it and re-open if (state != State::INIT && mCommon != common) { ALOGI("%s at state %s, closing effect", __func__, android::internal::ToString(state).c_str()); ALOGI("%s at state %s, common parameter change from %s to %s, closing effect", __func__, android::internal::ToString(state).c_str(), mCommon.toString().c_str(), common.toString().c_str()); RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(mEffect->close())); RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(mEffect->getState(&state))); mStatusQ.reset(); Loading Loading @@ -476,8 +477,9 @@ status_t EffectConversionHelperAidl::updateEventFlags() { efGroup); status = (status == OK) ? BAD_VALUE : status; } } else if (isBypassing()) { // for effect with bypass (no processing) flag, it's okay to not have statusQ } else if (isBypassingOrOffload()) { // for effect with bypass (no processing) or offloadIndication flag, it's okay to not have // statusQ return OK; } Loading @@ -485,12 +487,22 @@ status_t EffectConversionHelperAidl::updateEventFlags() { return status; } bool EffectConversionHelperAidl::isBypassingOrOffload() const { return isBypassing() || isOffload(); } bool EffectConversionHelperAidl::isBypassing() const { return mEffect && (mDesc.common.flags.bypass || (mIsProxyEffect && std::static_pointer_cast<EffectProxy>(mEffect)->isBypassing())); } bool EffectConversionHelperAidl::isOffload() const { return mEffect && (mDesc.common.flags.offloadIndication || (mIsProxyEffect && std::static_pointer_cast<EffectProxy>(mEffect)->isOffload())); } Descriptor EffectConversionHelperAidl::getDescriptor() const { if (!mIsProxyEffect) { return mDesc; Loading media/libaudiohal/impl/EffectConversionHelperAidl.h +3 −0 Original line number Diff line number Diff line Loading @@ -41,7 +41,10 @@ class EffectConversionHelperAidl { std::shared_ptr<DataMQ> getInputMQ() { return mInputQ; } std::shared_ptr<DataMQ> getOutputMQ() { return mOutputQ; } std::shared_ptr<android::hardware::EventFlag> getEventFlagGroup() { return mEfGroup; } bool isBypassing() const; bool isOffload() const; bool isBypassingOrOffload() const; ::aidl::android::hardware::audio::effect::Descriptor getDescriptor() const; Loading media/libaudiohal/impl/EffectProxy.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,10 @@ bool EffectProxy::isBypassing() const { return mSubEffects[mActiveSubIdx].descriptor.common.flags.bypass; } bool EffectProxy::isOffload() const { return mSubEffects[mActiveSubIdx].descriptor.common.flags.offloadIndication; } binder_status_t EffectProxy::dump(int fd, const char** args, uint32_t numArgs) { const std::string dumpString = toString(); write(fd, dumpString.c_str(), dumpString.size()); Loading media/libaudiohal/impl/EffectProxy.h +1 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ class EffectProxy final : public ::aidl::android::hardware::audio::effect::BnEff } bool isBypassing() const; bool isOffload() const; // call dump for all sub-effects binder_status_t dump(int fd, const char** args, uint32_t numArgs) override; Loading Loading
media/libaudiohal/impl/EffectConversionHelperAidl.cpp +16 −4 Original line number Diff line number Diff line Loading @@ -182,8 +182,9 @@ status_t EffectConversionHelperAidl::handleSetConfig(uint32_t cmdSize, const voi RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(mEffect->getState(&state))); // in case of buffer/ioHandle re-configure for an opened effect, close it and re-open if (state != State::INIT && mCommon != common) { ALOGI("%s at state %s, closing effect", __func__, android::internal::ToString(state).c_str()); ALOGI("%s at state %s, common parameter change from %s to %s, closing effect", __func__, android::internal::ToString(state).c_str(), mCommon.toString().c_str(), common.toString().c_str()); RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(mEffect->close())); RETURN_STATUS_IF_ERROR(statusTFromBinderStatus(mEffect->getState(&state))); mStatusQ.reset(); Loading Loading @@ -476,8 +477,9 @@ status_t EffectConversionHelperAidl::updateEventFlags() { efGroup); status = (status == OK) ? BAD_VALUE : status; } } else if (isBypassing()) { // for effect with bypass (no processing) flag, it's okay to not have statusQ } else if (isBypassingOrOffload()) { // for effect with bypass (no processing) or offloadIndication flag, it's okay to not have // statusQ return OK; } Loading @@ -485,12 +487,22 @@ status_t EffectConversionHelperAidl::updateEventFlags() { return status; } bool EffectConversionHelperAidl::isBypassingOrOffload() const { return isBypassing() || isOffload(); } bool EffectConversionHelperAidl::isBypassing() const { return mEffect && (mDesc.common.flags.bypass || (mIsProxyEffect && std::static_pointer_cast<EffectProxy>(mEffect)->isBypassing())); } bool EffectConversionHelperAidl::isOffload() const { return mEffect && (mDesc.common.flags.offloadIndication || (mIsProxyEffect && std::static_pointer_cast<EffectProxy>(mEffect)->isOffload())); } Descriptor EffectConversionHelperAidl::getDescriptor() const { if (!mIsProxyEffect) { return mDesc; Loading
media/libaudiohal/impl/EffectConversionHelperAidl.h +3 −0 Original line number Diff line number Diff line Loading @@ -41,7 +41,10 @@ class EffectConversionHelperAidl { std::shared_ptr<DataMQ> getInputMQ() { return mInputQ; } std::shared_ptr<DataMQ> getOutputMQ() { return mOutputQ; } std::shared_ptr<android::hardware::EventFlag> getEventFlagGroup() { return mEfGroup; } bool isBypassing() const; bool isOffload() const; bool isBypassingOrOffload() const; ::aidl::android::hardware::audio::effect::Descriptor getDescriptor() const; Loading
media/libaudiohal/impl/EffectProxy.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,10 @@ bool EffectProxy::isBypassing() const { return mSubEffects[mActiveSubIdx].descriptor.common.flags.bypass; } bool EffectProxy::isOffload() const { return mSubEffects[mActiveSubIdx].descriptor.common.flags.offloadIndication; } binder_status_t EffectProxy::dump(int fd, const char** args, uint32_t numArgs) { const std::string dumpString = toString(); write(fd, dumpString.c_str(), dumpString.size()); Loading
media/libaudiohal/impl/EffectProxy.h +1 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ class EffectProxy final : public ::aidl::android::hardware::audio::effect::BnEff } bool isBypassing() const; bool isOffload() const; // call dump for all sub-effects binder_status_t dump(int fd, const char** args, uint32_t numArgs) override; Loading