From 5736c35b841de56ce394b4879389f669b61425e6 Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Tue, 4 Dec 2012 12:12:34 -0800 Subject: Prepare for track invalidation to be done by proxy Don't rely on control block to determine whether track has been marked invalid. Instead, use a local flag that can't be corrupted by client. Change-Id: I783dafe828f93c1c3d2d0e5a08105ea536436efb --- services/audioflinger/PlaybackTracks.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'services/audioflinger/PlaybackTracks.h') diff --git a/services/audioflinger/PlaybackTracks.h b/services/audioflinger/PlaybackTracks.h index 37e39a0..aaa5333 100644 --- a/services/audioflinger/PlaybackTracks.h +++ b/services/audioflinger/PlaybackTracks.h @@ -103,6 +103,8 @@ protected: public: void triggerEvents(AudioSystem::sync_event_t type); + void invalidate(); + bool isInvalid() const { return mIsInvalid; } virtual bool isTimedTrack() const { return false; } bool isFastTrack() const { return (mFlags & IAudioFlinger::TRACK_FAST) != 0; } virtual bool isOut() const; @@ -143,6 +145,7 @@ private: volatile float mCachedVolume; // combined master volume and stream type volume; // 'volatile' means accessed without lock or // barrier, but is read/written atomically + bool mIsInvalid; // non-resettable latch, set by invalidate() }; // end of Track class TimedTrack : public Track { -- cgit v1.1