summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2015-06-09 17:18:58 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-09 17:18:59 +0000
commitc75a989a38a157d48ca34bf127d5b4533e9356a7 (patch)
tree6ba0deebf4deddd63f66874fa6346784192db009 /include
parent9b132a7bdde8388f124e4db5ff54a88a93f8cdb6 (diff)
parenteecd7659823504c6c65a2b0f4267515a8e3f24cb (diff)
downloadframeworks_av-c75a989a38a157d48ca34bf127d5b4533e9356a7.zip
frameworks_av-c75a989a38a157d48ca34bf127d5b4533e9356a7.tar.gz
frameworks_av-c75a989a38a157d48ca34bf127d5b4533e9356a7.tar.bz2
Merge "Use only strong references to AudioEffect" into mnc-dev
Diffstat (limited to 'include')
-rw-r--r--include/media/AudioEffect.h28
1 files changed, 22 insertions, 6 deletions
diff --git a/include/media/AudioEffect.h b/include/media/AudioEffect.h
index 61da4f2..5af6c10 100644
--- a/include/media/AudioEffect.h
+++ b/include/media/AudioEffect.h
@@ -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:
@@ -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();