diff options
author | Eric Laurent <elaurent@google.com> | 2010-08-09 20:00:11 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-08-09 20:00:11 -0700 |
commit | dbe57fcb497c2bcfd594f4fa003e179751bfeebd (patch) | |
tree | 46682252d225cdb243e71d78b0ea87544526c961 /services/audioflinger | |
parent | a36cb1ebb5f151aa934c69d4d5de1143c6218107 (diff) | |
parent | 1ece7d6873027068a3e7b055597045e9387b217c (diff) | |
download | frameworks_base-dbe57fcb497c2bcfd594f4fa003e179751bfeebd.zip frameworks_base-dbe57fcb497c2bcfd594f4fa003e179751bfeebd.tar.gz frameworks_base-dbe57fcb497c2bcfd594f4fa003e179751bfeebd.tar.bz2 |
am 1ece7d68: am 2a6b80bc: Fixed several audio effects problems.
Merge commit '1ece7d6873027068a3e7b055597045e9387b217c'
* commit '1ece7d6873027068a3e7b055597045e9387b217c':
Fixed several audio effects problems.
Diffstat (limited to 'services/audioflinger')
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 252b42a..1c7faa4 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -1696,7 +1696,10 @@ uint32_t AudioFlinger::MixerThread::prepareTracks_l(const SortedVector< wp<Track // Delegate master volume control to effect in output mix effect chain if needed sp<EffectChain> chain = getEffectChain_l(AudioSystem::SESSION_OUTPUT_MIX); if (chain != 0) { - uint32_t v = (uint32_t)(masterVolume * (1 << 24)); + uint32_t v = 0; + if (!masterMute) { + v = (uint32_t)(masterVolume * (1 << 24)); + } chain->setVolume_l(&v, &v); masterVolume = (float)((v + (1 << 23)) >> 24); chain.clear(); @@ -1750,7 +1753,7 @@ uint32_t AudioFlinger::MixerThread::prepareTracks_l(const SortedVector< wp<Track // compute volume for this track int16_t left, right, aux; - if (track->isMuted() || masterMute || track->isPausing() || + if (track->isMuted() || track->isPausing() || mStreamTypes[track->type()].mute) { left = right = aux = 0; if (track->isPausing()) { @@ -5351,7 +5354,7 @@ void AudioFlinger::EffectModule::process() return; } - if (mState == ACTIVE || mState == STOPPING || mState == STOPPED) { + if (mState == ACTIVE || mState == STOPPING || mState == STOPPED || mState == RESTART) { // do 32 bit to 16 bit conversion for auxiliary effect input buffer if ((mDescriptor.flags & EFFECT_FLAG_TYPE_MASK) == EFFECT_FLAG_TYPE_AUXILIARY) { AudioMixer::ditherAndClamp(mConfig.inputCfg.buffer.s32, @@ -6032,8 +6035,8 @@ void AudioFlinger::EffectHandle::dump(char* buffer, size_t size) AudioFlinger::EffectChain::EffectChain(const wp<ThreadBase>& wThread, int sessionId) : mThread(wThread), mSessionId(sessionId), mActiveTrackCnt(0), mOwnInBuffer(false), - mVolumeCtrlIdx(-1), mLeftVolume(0), mRightVolume(0), - mNewLeftVolume(0), mNewRightVolume(0) + mVolumeCtrlIdx(-1), mLeftVolume(UINT_MAX), mRightVolume(UINT_MAX), + mNewLeftVolume(UINT_MAX), mNewRightVolume(UINT_MAX) { mStrategy = AudioSystem::getStrategyForStream(AudioSystem::MUSIC); } |