Isolate references to outputTracks/mOutputTracks
Move all references to DuplicatingThread::outputTracks and
DuplicatingThread::mOutputTracks from the common threadLoop() into
virtual methods. This allows them to be moved from PlaybackThread to
DuplicatingThread, and to be marked private.
Also use vector assignment to copy mOutputTracks to outputTracks.
Change-Id: Ieb1cf1ad36b8a65143e61e6c92a65fb43427e5e2
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index 8ca4f89..518a99c 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -920,6 +920,10 @@
// Code snippets that are temporarily lifted up out of threadLoop() until the merge
void checkSilentMode_l();
+ // Non-trivial for DUPLICATING only
+ virtual void saveOutputTracks() { }
+ virtual void clearOutputTracks() { }
+
private:
friend class AudioFlinger;
@@ -972,9 +976,7 @@
// activeTrack was local to the while !exitingPending loop
sp<Track> activeTrack;
// DUPLICATING only
- SortedVector < sp<OutputTrack> > outputTracks;
uint32_t writeFrames;
- SortedVector < sp<OutputTrack> > mOutputTracks;
};
class MixerThread : public PlaybackThread {
@@ -1070,9 +1072,13 @@
// called from threadLoop, addOutputTrack, removeOutputTrack
virtual void updateWaitTime_l();
+ virtual void saveOutputTracks();
+ virtual void clearOutputTracks();
private:
uint32_t mWaitTimeMs;
+ SortedVector < sp<OutputTrack> > outputTracks;
+ SortedVector < sp<OutputTrack> > mOutputTracks;
};
PlaybackThread *checkPlaybackThread_l(audio_io_handle_t output) const;