Loading services/audioflinger/Threads.cpp +19 −4 Original line number Diff line number Diff line Loading @@ -1490,9 +1490,7 @@ status_t AudioFlinger::PlaybackThread::addTrack_l(const sp<Track>& track) status = NO_ERROR; } ALOGV("signal playback thread"); broadcast_l(); onAddNewTrack_l(); return status; } Loading Loading @@ -2758,6 +2756,12 @@ void AudioFlinger::PlaybackThread::threadLoop_standby() } } void AudioFlinger::PlaybackThread::onAddNewTrack_l() { ALOGV("signal playback thread"); broadcast_l(); } void AudioFlinger::MixerThread::threadLoop_mix() { // obtain the presentation timestamp of the next output buffer Loading Loading @@ -4080,7 +4084,6 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr // seek when resuming. if (previousTrack->sessionId() != track->sessionId()) { previousTrack->invalidate(); mFlushPending = true; } } } Loading Loading @@ -4223,6 +4226,18 @@ void AudioFlinger::OffloadThread::flushHw_l() } } void AudioFlinger::OffloadThread::onAddNewTrack_l() { sp<Track> previousTrack = mPreviousTrack.promote(); sp<Track> latestTrack = mLatestActiveTrack.promote(); if (previousTrack != 0 && latestTrack != 0 && (previousTrack->sessionId() != latestTrack->sessionId())) { mFlushPending = true; } PlaybackThread::onAddNewTrack_l(); } // ---------------------------------------------------------------------------- AudioFlinger::DuplicatingThread::DuplicatingThread(const sp<AudioFlinger>& audioFlinger, Loading services/audioflinger/Threads.h +2 −1 Original line number Diff line number Diff line Loading @@ -394,7 +394,7 @@ protected: virtual bool waitingAsyncCallback(); virtual bool waitingAsyncCallback_l(); virtual bool shouldStandby_l(); virtual void onAddNewTrack_l(); // ThreadBase virtuals virtual void preExit(); Loading Loading @@ -753,6 +753,7 @@ protected: virtual bool waitingAsyncCallback(); virtual bool waitingAsyncCallback_l(); virtual bool shouldStandby_l(); virtual void onAddNewTrack_l(); private: void flushHw_l(); Loading Loading
services/audioflinger/Threads.cpp +19 −4 Original line number Diff line number Diff line Loading @@ -1490,9 +1490,7 @@ status_t AudioFlinger::PlaybackThread::addTrack_l(const sp<Track>& track) status = NO_ERROR; } ALOGV("signal playback thread"); broadcast_l(); onAddNewTrack_l(); return status; } Loading Loading @@ -2758,6 +2756,12 @@ void AudioFlinger::PlaybackThread::threadLoop_standby() } } void AudioFlinger::PlaybackThread::onAddNewTrack_l() { ALOGV("signal playback thread"); broadcast_l(); } void AudioFlinger::MixerThread::threadLoop_mix() { // obtain the presentation timestamp of the next output buffer Loading Loading @@ -4080,7 +4084,6 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr // seek when resuming. if (previousTrack->sessionId() != track->sessionId()) { previousTrack->invalidate(); mFlushPending = true; } } } Loading Loading @@ -4223,6 +4226,18 @@ void AudioFlinger::OffloadThread::flushHw_l() } } void AudioFlinger::OffloadThread::onAddNewTrack_l() { sp<Track> previousTrack = mPreviousTrack.promote(); sp<Track> latestTrack = mLatestActiveTrack.promote(); if (previousTrack != 0 && latestTrack != 0 && (previousTrack->sessionId() != latestTrack->sessionId())) { mFlushPending = true; } PlaybackThread::onAddNewTrack_l(); } // ---------------------------------------------------------------------------- AudioFlinger::DuplicatingThread::DuplicatingThread(const sp<AudioFlinger>& audioFlinger, Loading
services/audioflinger/Threads.h +2 −1 Original line number Diff line number Diff line Loading @@ -394,7 +394,7 @@ protected: virtual bool waitingAsyncCallback(); virtual bool waitingAsyncCallback_l(); virtual bool shouldStandby_l(); virtual void onAddNewTrack_l(); // ThreadBase virtuals virtual void preExit(); Loading Loading @@ -753,6 +753,7 @@ protected: virtual bool waitingAsyncCallback(); virtual bool waitingAsyncCallback_l(); virtual bool shouldStandby_l(); virtual void onAddNewTrack_l(); private: void flushHw_l(); Loading