Simplify flow by having all mActiveTrack.clear() continue

Change-Id: Icd160b0aa79a747bd19fabaa7feee813afb155e0
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 @@
                 acquireWakeLock_l();
                 continue;
             }
+
             if (activeTrack->isTerminated()) {
                 removeTrack_l(activeTrack);
                 mActiveTrack.clear();
-            } else {
-                switch (activeTrack->mState) {
-                case TrackBase::PAUSING:
-                    standby();
-                    mActiveTrack.clear();
-                    mStartStopCond.broadcast();
-                    break;
-
-                case TrackBase::RESUMING:
-                    if (mReqChannelCount != activeTrack->channelCount()) {
-                        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();
-                    }
-                    mStandby = false;
-                    break;
-
-                case TrackBase::ACTIVE:
-                    break;
-
-                case TrackBase::IDLE:
-                    break;
-
-                default:
-                    LOG_FATAL("Unexpected activeTrack->mState %d", activeTrack->mState);
-                }
-
-            }
-            if (mActiveTrack == 0) {
                 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();
+                    continue;
+                }
+                if (readOnce) {
+                    mStartStopCond.broadcast();
+                    // record start succeeds only if first read from audio input succeeds
+                    if (mBytesRead < 0) {
+                        mActiveTrack.clear();
+                        continue;
+                    }
+                    activeTrack->mState = TrackBase::ACTIVE;
+                }
+                break;
+
+            case TrackBase::ACTIVE:
+                break;
+
+            case TrackBase::IDLE:
+                break;
+
+            default:
+                LOG_FATAL("Unexpected activeTrack->mState %d", activeTrack->mState);
+            }
+
             lockEffectChains_l(effectChains);
         }