Merge "Fix issue 2909189: System property ro.audio.silent no longer mutes system." into gingerbread

This commit is contained in:
Eric Laurent
2010-08-13 08:00:14 -07:00
committed by Android (Google) Code Review

View File

@ -1675,6 +1675,9 @@ uint32_t AudioFlinger::MixerThread::prepareTracks_l(const SortedVector< wp<Track
float masterVolume = mMasterVolume; float masterVolume = mMasterVolume;
bool masterMute = mMasterMute; bool masterMute = mMasterMute;
if (masterMute) {
masterVolume = 0;
}
#ifdef LVMX #ifdef LVMX
bool tracksConnectedChanged = false; bool tracksConnectedChanged = false;
bool stateChanged = false; bool stateChanged = false;
@ -1696,10 +1699,7 @@ uint32_t AudioFlinger::MixerThread::prepareTracks_l(const SortedVector< wp<Track
// Delegate master volume control to effect in output mix effect chain if needed // Delegate master volume control to effect in output mix effect chain if needed
sp<EffectChain> chain = getEffectChain_l(AudioSystem::SESSION_OUTPUT_MIX); sp<EffectChain> chain = getEffectChain_l(AudioSystem::SESSION_OUTPUT_MIX);
if (chain != 0) { if (chain != 0) {
uint32_t v = 0; uint32_t v = (uint32_t)(masterVolume * (1 << 24));
if (!masterMute) {
v = (uint32_t)(masterVolume * (1 << 24));
}
chain->setVolume_l(&v, &v); chain->setVolume_l(&v, &v);
masterVolume = (float)((v + (1 << 23)) >> 24); masterVolume = (float)((v + (1 << 23)) >> 24);
chain.clear(); chain.clear();