summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/Tracks.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-12-17 18:04:15 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-12-17 18:04:15 +0000
commit85aca658ac7d20584b0647427256df50a5f243ef (patch)
tree0a368cd14a99953de3943fa6f43334a8aea9f19f /services/audioflinger/Tracks.cpp
parent22dfb93254de370d401706728aba1f032ef1b172 (diff)
parentd33712d7ec5dcf427cc0be9b7d2ca1c99823c8e6 (diff)
downloadframeworks_av-85aca658ac7d20584b0647427256df50a5f243ef.zip
frameworks_av-85aca658ac7d20584b0647427256df50a5f243ef.tar.gz
frameworks_av-85aca658ac7d20584b0647427256df50a5f243ef.tar.bz2
am d33712d7: am 145cf5d8: Merge "audioflinger: implement pause/resume for direct outputs" into lmp-mr1-dev
* commit 'd33712d7ec5dcf427cc0be9b7d2ca1c99823c8e6': audioflinger: implement pause/resume for direct outputs
Diffstat (limited to 'services/audioflinger/Tracks.cpp')
-rw-r--r--services/audioflinger/Tracks.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/services/audioflinger/Tracks.cpp b/services/audioflinger/Tracks.cpp
index fcbf8f8..e970036 100644
--- a/services/audioflinger/Tracks.cpp
+++ b/services/audioflinger/Tracks.cpp
@@ -823,12 +823,11 @@ void AudioFlinger::PlaybackThread::Track::flush()
// this will be done by prepareTracks_l() when the track is stopped.
// prepareTracks_l() will see mState == FLUSHED, then
// remove from active track list, reset(), and trigger presentation complete
+ if (isDirect()) {
+ mFlushHwPending = true;
+ }
if (playbackThread->mActiveTracks.indexOf(this) < 0) {
reset();
- if (thread->type() == ThreadBase::DIRECT) {
- DirectOutputThread *t = (DirectOutputThread *)playbackThread;
- t->flushHw_l();
- }
}
}
// Prevent flush being lost if the track is flushed and then resumed
@@ -841,7 +840,7 @@ void AudioFlinger::PlaybackThread::Track::flush()
// must be called with thread lock held
void AudioFlinger::PlaybackThread::Track::flushAck()
{
- if (!isOffloaded())
+ if (!isOffloaded() && !isDirect())
return;
mFlushHwPending = false;