Loading services/audioflinger/Effects.cpp +30 −3 Original line number Diff line number Diff line Loading @@ -3258,6 +3258,8 @@ status_t AudioFlinger::DeviceEffectProxy::checkPort(const PatchPanel::Patch& pat } else { mHalEffect->setDevices({mDevice}); } mHalEffect->configure(); *handle = new EffectHandle(mHalEffect, nullptr, nullptr, 0 /*priority*/, mNotifyFramesProcessed); status = (*handle)->initCheck(); Loading Loading @@ -3306,15 +3308,22 @@ status_t AudioFlinger::DeviceEffectProxy::checkPort(const PatchPanel::Patch& pat } void AudioFlinger::DeviceEffectProxy::onReleasePatch(audio_patch_handle_t patchHandle) { sp<EffectHandle> effect; { Mutex::Autolock _l(mProxyLock); if (mEffectHandles.find(patchHandle) != mEffectHandles.end()) { effect = mEffectHandles.at(patchHandle); mEffectHandles.erase(patchHandle); } } } size_t AudioFlinger::DeviceEffectProxy::removeEffect(const sp<EffectModule>& effect) { Mutex::Autolock _l(mProxyLock); if (effect == mHalEffect) { mHalEffect->release_l(); mHalEffect.clear(); mDevicePort.id = AUDIO_PORT_HANDLE_NONE; } Loading Loading @@ -3462,7 +3471,7 @@ status_t AudioFlinger::DeviceEffectProxy::ProxyCallback::removeEffectFromHal( if (proxy == nullptr) { return NO_INIT; } return proxy->addEffectToHal(effect); return proxy->removeEffectFromHal(effect); } bool AudioFlinger::DeviceEffectProxy::ProxyCallback::isOutput() const { Loading Loading @@ -3514,4 +3523,22 @@ uint32_t AudioFlinger::DeviceEffectProxy::ProxyCallback::outChannelCount() const return proxy->channelCount(); } void AudioFlinger::DeviceEffectProxy::ProxyCallback::onEffectEnable( const sp<EffectBase>& effectBase) { sp<EffectModule> effect = effectBase->asEffectModule(); if (effect == nullptr) { return; } effect->start(); } void AudioFlinger::DeviceEffectProxy::ProxyCallback::onEffectDisable( const sp<EffectBase>& effectBase) { sp<EffectModule> effect = effectBase->asEffectModule(); if (effect == nullptr) { return; } effect->stop(); } } // namespace android services/audioflinger/Effects.h +2 −2 Original line number Diff line number Diff line Loading @@ -766,8 +766,8 @@ private: void resetVolume() override {} product_strategy_t strategy() const override { return static_cast<product_strategy_t>(0); } int32_t activeTrackCnt() const override { return 0; } void onEffectEnable(const sp<EffectBase>& effect __unused) override {} void onEffectDisable(const sp<EffectBase>& effect __unused) override {} void onEffectEnable(const sp<EffectBase>& effect __unused) override; void onEffectDisable(const sp<EffectBase>& effect __unused) override; wp<EffectChain> chain() const override { return nullptr; } Loading Loading
services/audioflinger/Effects.cpp +30 −3 Original line number Diff line number Diff line Loading @@ -3258,6 +3258,8 @@ status_t AudioFlinger::DeviceEffectProxy::checkPort(const PatchPanel::Patch& pat } else { mHalEffect->setDevices({mDevice}); } mHalEffect->configure(); *handle = new EffectHandle(mHalEffect, nullptr, nullptr, 0 /*priority*/, mNotifyFramesProcessed); status = (*handle)->initCheck(); Loading Loading @@ -3306,15 +3308,22 @@ status_t AudioFlinger::DeviceEffectProxy::checkPort(const PatchPanel::Patch& pat } void AudioFlinger::DeviceEffectProxy::onReleasePatch(audio_patch_handle_t patchHandle) { sp<EffectHandle> effect; { Mutex::Autolock _l(mProxyLock); if (mEffectHandles.find(patchHandle) != mEffectHandles.end()) { effect = mEffectHandles.at(patchHandle); mEffectHandles.erase(patchHandle); } } } size_t AudioFlinger::DeviceEffectProxy::removeEffect(const sp<EffectModule>& effect) { Mutex::Autolock _l(mProxyLock); if (effect == mHalEffect) { mHalEffect->release_l(); mHalEffect.clear(); mDevicePort.id = AUDIO_PORT_HANDLE_NONE; } Loading Loading @@ -3462,7 +3471,7 @@ status_t AudioFlinger::DeviceEffectProxy::ProxyCallback::removeEffectFromHal( if (proxy == nullptr) { return NO_INIT; } return proxy->addEffectToHal(effect); return proxy->removeEffectFromHal(effect); } bool AudioFlinger::DeviceEffectProxy::ProxyCallback::isOutput() const { Loading Loading @@ -3514,4 +3523,22 @@ uint32_t AudioFlinger::DeviceEffectProxy::ProxyCallback::outChannelCount() const return proxy->channelCount(); } void AudioFlinger::DeviceEffectProxy::ProxyCallback::onEffectEnable( const sp<EffectBase>& effectBase) { sp<EffectModule> effect = effectBase->asEffectModule(); if (effect == nullptr) { return; } effect->start(); } void AudioFlinger::DeviceEffectProxy::ProxyCallback::onEffectDisable( const sp<EffectBase>& effectBase) { sp<EffectModule> effect = effectBase->asEffectModule(); if (effect == nullptr) { return; } effect->stop(); } } // namespace android
services/audioflinger/Effects.h +2 −2 Original line number Diff line number Diff line Loading @@ -766,8 +766,8 @@ private: void resetVolume() override {} product_strategy_t strategy() const override { return static_cast<product_strategy_t>(0); } int32_t activeTrackCnt() const override { return 0; } void onEffectEnable(const sp<EffectBase>& effect __unused) override {} void onEffectDisable(const sp<EffectBase>& effect __unused) override {} void onEffectEnable(const sp<EffectBase>& effect __unused) override; void onEffectDisable(const sp<EffectBase>& effect __unused) override; wp<EffectChain> chain() const override { return nullptr; } Loading