summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/Threads.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2013-08-14 14:39:50 -0700
committerGlenn Kasten <gkasten@google.com>2013-08-16 14:10:13 -0700
commit9e98235a9e9bb870e1c76911e3b4d00386a52c39 (patch)
tree39eef4de6e3c0bba45ab950efb8431fc92694985 /services/audioflinger/Threads.cpp
parent5edadd46c76c5ff1c3edabf2ea943c2278e82e1c (diff)
downloadframeworks_av-9e98235a9e9bb870e1c76911e3b4d00386a52c39.zip
frameworks_av-9e98235a9e9bb870e1c76911e3b4d00386a52c39.tar.gz
frameworks_av-9e98235a9e9bb870e1c76911e3b4d00386a52c39.tar.bz2
Simplify flow by having all mActiveTrack.clear() continue
Change-Id: Icd160b0aa79a747bd19fabaa7feee813afb155e0
Diffstat (limited to 'services/audioflinger/Threads.cpp')
-rw-r--r--services/audioflinger/Threads.cpp63
1 files changed, 32 insertions, 31 deletions
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 8a60b2a..44763a6 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -4244,48 +4244,49 @@ bool AudioFlinger::RecordThread::threadLoop()
acquireWakeLock_l();
continue;
}
+
if (activeTrack->isTerminated()) {
removeTrack_l(activeTrack);
mActiveTrack.clear();
- } else {
- switch (activeTrack->mState) {
- case TrackBase::PAUSING:
- standby();
+ continue;
+ }
+
+ switch (activeTrack->mState) {
+ case TrackBase::PAUSING:
+ standby();
+ mActiveTrack.clear();
+ mStartStopCond.broadcast();
+ doSleep = true;
+ continue;
+
+ case TrackBase::RESUMING:
+ mStandby = false;
+ if (mReqChannelCount != activeTrack->channelCount()) {
mActiveTrack.clear();
mStartStopCond.broadcast();
- break;
-
- case TrackBase::RESUMING:
- if (mReqChannelCount != activeTrack->channelCount()) {
+ continue;
+ }
+ if (readOnce) {
+ mStartStopCond.broadcast();
+ // record start succeeds only if first read from audio input succeeds
+ if (mBytesRead < 0) {
mActiveTrack.clear();
- mStartStopCond.broadcast();
- } else if (readOnce) {
- // record start succeeds only if first read from audio input
- // succeeds
- if (mBytesRead >= 0) {
- activeTrack->mState = TrackBase::ACTIVE;
- } else {
- mActiveTrack.clear();
- }
- mStartStopCond.broadcast();
+ continue;
}
- mStandby = false;
- break;
-
- case TrackBase::ACTIVE:
- break;
+ activeTrack->mState = TrackBase::ACTIVE;
+ }
+ break;
- case TrackBase::IDLE:
- break;
+ case TrackBase::ACTIVE:
+ break;
- default:
- LOG_FATAL("Unexpected activeTrack->mState %d", activeTrack->mState);
- }
+ case TrackBase::IDLE:
+ break;
+ default:
+ LOG_FATAL("Unexpected activeTrack->mState %d", activeTrack->mState);
}
- if (mActiveTrack == 0) {
- continue;
- }
+
lockEffectChains_l(effectChains);
}