From d069f32039c74d89fd158d1a25d8fdf445fd01c1 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Tue, 1 Sep 2009 05:56:26 -0700 Subject: Fix issue 2091594: music chirp after disconnecting A2DP. In AudioFlinger::MixerThread::putTracks(), change the mFillingUpStatus flag to FS_FILLING for active tracks so that mute request is executed without ramping volume down when the track is moved from A2DP to hardware output. Also modified AudioFlinger::setStreamOutput() so that the notification of the change is sent only once to AudioSystem. --- libs/audioflinger/AudioFlinger.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/audioflinger/AudioFlinger.cpp b/libs/audioflinger/AudioFlinger.cpp index 3a419b5..ef71641 100644 --- a/libs/audioflinger/AudioFlinger.cpp +++ b/libs/audioflinger/AudioFlinger.cpp @@ -1449,6 +1449,8 @@ void AudioFlinger::MixerThread::putTracks( int j = activeTracks.indexOf(t); if (j >= 0) { mActiveTracks.add(t); + // force buffer refilling and no ramp volume when the track is mixed for the first time + t->mFillingUpStatus = Track::FS_FILLING; } } } @@ -3512,10 +3514,11 @@ status_t AudioFlinger::setStreamOutput(uint32_t stream, int output) if (tracks.size()) { dstThread->putTracks(tracks, activeTracks); } - dstThread->sendConfigEvent(AudioSystem::STREAM_CONFIG_CHANGED, stream); } } + dstThread->sendConfigEvent(AudioSystem::STREAM_CONFIG_CHANGED, stream); + return NO_ERROR; } -- cgit v1.1