Loading include/media/AudioEffect.h +22 −6 Original line number Diff line number Diff line Loading @@ -429,7 +429,8 @@ protected: private: // Implements the IEffectClient interface class EffectClient : public android::BnEffectClient, public android::IBinder::DeathRecipient class EffectClient : public android::BnEffectClient, public android::IBinder::DeathRecipient { public: Loading @@ -437,24 +438,39 @@ private: // IEffectClient virtual void controlStatusChanged(bool controlGranted) { mEffect->controlStatusChanged(controlGranted); sp<AudioEffect> effect = mEffect.promote(); if (effect != 0) { effect->controlStatusChanged(controlGranted); } } virtual void enableStatusChanged(bool enabled) { mEffect->enableStatusChanged(enabled); sp<AudioEffect> effect = mEffect.promote(); if (effect != 0) { effect->enableStatusChanged(enabled); } } virtual void commandExecuted(uint32_t cmdCode, uint32_t cmdSize, void *pCmdData, uint32_t replySize, void *pReplyData) { mEffect->commandExecuted(cmdCode, cmdSize, pCmdData, replySize, pReplyData); sp<AudioEffect> effect = mEffect.promote(); if (effect != 0) { effect->commandExecuted( cmdCode, cmdSize, pCmdData, replySize, pReplyData); } } // IBinder::DeathRecipient virtual void binderDied(const wp<IBinder>& who) {mEffect->binderDied();} virtual void binderDied(const wp<IBinder>& who) { sp<AudioEffect> effect = mEffect.promote(); if (effect != 0) { effect->binderDied(); } } private: AudioEffect *mEffect; wp<AudioEffect> mEffect; }; void binderDied(); Loading media/libmedia/AudioEffect.cpp +7 −4 Original line number Diff line number Diff line Loading @@ -134,12 +134,14 @@ status_t AudioEffect::set(const effect_uuid_t *type, if (iEffect == 0 || (mStatus != NO_ERROR && mStatus != ALREADY_EXISTS)) { ALOGE("set(): AudioFlinger could not create effect, status: %d", mStatus); if (iEffect == 0) { mStatus = NO_INIT; } return mStatus; } mEnabled = (volatile int32_t)enabled; mIEffect = iEffect; cblk = iEffect->getCblk(); if (cblk == 0) { mStatus = NO_INIT; Loading @@ -147,6 +149,7 @@ status_t AudioEffect::set(const effect_uuid_t *type, return mStatus; } mIEffect = iEffect; mCblkMemory = cblk; mCblk = static_cast<effect_param_cblk_t*>(cblk->pointer()); int bufOffset = ((sizeof(effect_param_cblk_t) - 1) / sizeof(int) + 1) * sizeof(int); Loading Loading @@ -177,11 +180,11 @@ AudioEffect::~AudioEffect() mIEffect->disconnect(); IInterface::asBinder(mIEffect)->unlinkToDeath(mIEffectClient); } IPCThreadState::self()->flushCommands(); } mIEffect.clear(); mIEffectClient.clear(); mCblkMemory.clear(); mIEffectClient.clear(); IPCThreadState::self()->flushCommands(); } } Loading Loading
include/media/AudioEffect.h +22 −6 Original line number Diff line number Diff line Loading @@ -429,7 +429,8 @@ protected: private: // Implements the IEffectClient interface class EffectClient : public android::BnEffectClient, public android::IBinder::DeathRecipient class EffectClient : public android::BnEffectClient, public android::IBinder::DeathRecipient { public: Loading @@ -437,24 +438,39 @@ private: // IEffectClient virtual void controlStatusChanged(bool controlGranted) { mEffect->controlStatusChanged(controlGranted); sp<AudioEffect> effect = mEffect.promote(); if (effect != 0) { effect->controlStatusChanged(controlGranted); } } virtual void enableStatusChanged(bool enabled) { mEffect->enableStatusChanged(enabled); sp<AudioEffect> effect = mEffect.promote(); if (effect != 0) { effect->enableStatusChanged(enabled); } } virtual void commandExecuted(uint32_t cmdCode, uint32_t cmdSize, void *pCmdData, uint32_t replySize, void *pReplyData) { mEffect->commandExecuted(cmdCode, cmdSize, pCmdData, replySize, pReplyData); sp<AudioEffect> effect = mEffect.promote(); if (effect != 0) { effect->commandExecuted( cmdCode, cmdSize, pCmdData, replySize, pReplyData); } } // IBinder::DeathRecipient virtual void binderDied(const wp<IBinder>& who) {mEffect->binderDied();} virtual void binderDied(const wp<IBinder>& who) { sp<AudioEffect> effect = mEffect.promote(); if (effect != 0) { effect->binderDied(); } } private: AudioEffect *mEffect; wp<AudioEffect> mEffect; }; void binderDied(); Loading
media/libmedia/AudioEffect.cpp +7 −4 Original line number Diff line number Diff line Loading @@ -134,12 +134,14 @@ status_t AudioEffect::set(const effect_uuid_t *type, if (iEffect == 0 || (mStatus != NO_ERROR && mStatus != ALREADY_EXISTS)) { ALOGE("set(): AudioFlinger could not create effect, status: %d", mStatus); if (iEffect == 0) { mStatus = NO_INIT; } return mStatus; } mEnabled = (volatile int32_t)enabled; mIEffect = iEffect; cblk = iEffect->getCblk(); if (cblk == 0) { mStatus = NO_INIT; Loading @@ -147,6 +149,7 @@ status_t AudioEffect::set(const effect_uuid_t *type, return mStatus; } mIEffect = iEffect; mCblkMemory = cblk; mCblk = static_cast<effect_param_cblk_t*>(cblk->pointer()); int bufOffset = ((sizeof(effect_param_cblk_t) - 1) / sizeof(int) + 1) * sizeof(int); Loading Loading @@ -177,11 +180,11 @@ AudioEffect::~AudioEffect() mIEffect->disconnect(); IInterface::asBinder(mIEffect)->unlinkToDeath(mIEffectClient); } IPCThreadState::self()->flushCommands(); } mIEffect.clear(); mIEffectClient.clear(); mCblkMemory.clear(); mIEffectClient.clear(); IPCThreadState::self()->flushCommands(); } } Loading