diff options
author | Glenn Kasten <gkasten@google.com> | 2012-12-04 12:12:34 -0800 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-12-12 09:38:48 -0800 |
commit | 5736c35b841de56ce394b4879389f669b61425e6 (patch) | |
tree | b14624b7de512d74aab43e22b1f84fe08c29f647 /services/audioflinger/PlaybackTracks.h | |
parent | efc0cfb61e34c3bc688a7cbcc1ccef23922251c1 (diff) | |
download | frameworks_av-5736c35b841de56ce394b4879389f669b61425e6.zip frameworks_av-5736c35b841de56ce394b4879389f669b61425e6.tar.gz frameworks_av-5736c35b841de56ce394b4879389f669b61425e6.tar.bz2 |
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
Diffstat (limited to 'services/audioflinger/PlaybackTracks.h')
-rw-r--r-- | services/audioflinger/PlaybackTracks.h | 3 |
1 files changed, 3 insertions, 0 deletions
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 { |