diff options
Diffstat (limited to 'services/audioflinger/AudioFlinger.cpp')
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 9fb666e..d267497 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -646,12 +646,14 @@ status_t AudioFlinger::setMasterMute(bool muted) float AudioFlinger::masterVolume() const { - return mMasterVolume; + Mutex::Autolock _l(mLock); + return masterVolume_l(); } bool AudioFlinger::masterMute() const { - return mMasterMute; + Mutex::Autolock _l(mLock); + return masterMute_l(); } status_t AudioFlinger::setStreamVolume(int stream, float value, int output) @@ -1379,8 +1381,10 @@ AudioFlinger::PlaybackThread::PlaybackThread(const sp<AudioFlinger>& audioFlinge readOutputParameters(); - mMasterVolume = mAudioFlinger->masterVolume(); - mMasterMute = mAudioFlinger->masterMute(); + // Assumes constructor is called by AudioFlinger with it's mLock held, + // but it would be safer to explicitly pass these as parameters + mMasterVolume = mAudioFlinger->masterVolume_l(); + mMasterMute = mAudioFlinger->masterMute_l(); for (int stream = 0; stream < AUDIO_STREAM_CNT; stream++) { mStreamTypes[stream].volume = mAudioFlinger->streamVolumeInternal(stream); |