summaryrefslogtreecommitdiffstats
path: root/media/libmedia
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2010-08-09 20:00:11 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-08-09 20:00:11 -0700
commitbc417c0531332635df9525df4683274a08fb987f (patch)
tree31bd0fa84c97515e46abddc36f2884fc2fd3a338 /media/libmedia
parent2bb8c0e7c4e4093f4161ff5e98cef51c87193859 (diff)
parentbcc4fdd9de1b0f6b645c663f98bda838bd41242d (diff)
downloadframeworks_av-bc417c0531332635df9525df4683274a08fb987f.zip
frameworks_av-bc417c0531332635df9525df4683274a08fb987f.tar.gz
frameworks_av-bc417c0531332635df9525df4683274a08fb987f.tar.bz2
am 1ece7d68: am 2a6b80bc: Fixed several audio effects problems.
Merge commit '1ece7d6873027068a3e7b055597045e9387b217c' * commit '1ece7d6873027068a3e7b055597045e9387b217c': Fixed several audio effects problems.
Diffstat (limited to 'media/libmedia')
-rw-r--r--media/libmedia/AudioEffect.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/media/libmedia/AudioEffect.cpp b/media/libmedia/AudioEffect.cpp
index 3cdf48a..0f3e245 100644
--- a/media/libmedia/AudioEffect.cpp
+++ b/media/libmedia/AudioEffect.cpp
@@ -218,7 +218,7 @@ status_t AudioEffect::setEnabled(bool enabled)
return mIEffect->disable();
}
}
- return INVALID_OPERATION;
+ return NO_ERROR;
}
status_t AudioEffect::command(uint32_t cmdCode,
@@ -231,7 +231,22 @@ status_t AudioEffect::command(uint32_t cmdCode,
return INVALID_OPERATION;
}
- return mIEffect->command(cmdCode, cmdSize, cmdData, replySize, replyData);
+ status_t status = mIEffect->command(cmdCode, cmdSize, cmdData, replySize, replyData);
+ if (status != NO_ERROR) {
+ return status;
+ }
+ status = *(status_t *)replyData;
+ if (status != NO_ERROR) {
+ return status;
+ }
+
+ if (cmdCode == EFFECT_CMD_ENABLE) {
+ android_atomic_or(1, &mEnabled);
+ }
+ if (cmdCode == EFFECT_CMD_DISABLE) {
+ android_atomic_and(~1, &mEnabled);
+ }
+ return status;
}
@@ -347,7 +362,11 @@ void AudioEffect::enableStatusChanged(bool enabled)
{
LOGV("enableStatusChanged %p enabled %d mCbf %p", this, enabled, mCbf);
if (mStatus == ALREADY_EXISTS) {
- mEnabled = enabled;
+ if (enabled) {
+ android_atomic_or(1, &mEnabled);
+ } else {
+ android_atomic_and(~1, &mEnabled);
+ }
if (mCbf) {
mCbf(EVENT_ENABLE_STATUS_CHANGED, mUserData, &enabled);
}