summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/Tracks.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2014-02-07 10:50:43 -0800
committerGlenn Kasten <gkasten@google.com>2014-02-18 12:56:13 -0800
commit25f4aa83efaa9179e65a20583a6d441de2c3ff3f (patch)
tree996653f52a07bb6dc99d058943f852f3182ea637 /services/audioflinger/Tracks.cpp
parentdeca2ae0a7cf8bc54ff3f30b7dc39bbc78b94c0d (diff)
downloadframeworks_av-25f4aa83efaa9179e65a20583a6d441de2c3ff3f.zip
frameworks_av-25f4aa83efaa9179e65a20583a6d441de2c3ff3f.tar.gz
frameworks_av-25f4aa83efaa9179e65a20583a6d441de2c3ff3f.tar.bz2
Move handleSyncStartEvent and clearSyncStartEvent to RecordTrack
Change-Id: I611a63e63acf3eb17e2072c1a77b91fe9e62e36a
Diffstat (limited to 'services/audioflinger/Tracks.cpp')
-rw-r--r--services/audioflinger/Tracks.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/services/audioflinger/Tracks.cpp b/services/audioflinger/Tracks.cpp
index da1b4b8..92ed46a 100644
--- a/services/audioflinger/Tracks.cpp
+++ b/services/audioflinger/Tracks.cpp
@@ -1903,4 +1903,27 @@ void AudioFlinger::RecordThread::RecordTrack::dump(char* buffer, size_t size, bo
}
+void AudioFlinger::RecordThread::RecordTrack::handleSyncStartEvent(const sp<SyncEvent>& event)
+{
+ if (event == mSyncStartEvent) {
+ ssize_t framesToDrop = 0;
+ sp<ThreadBase> threadBase = mThread.promote();
+ if (threadBase != 0) {
+ // TODO: use actual buffer filling status instead of 2 buffers when info is available
+ // from audio HAL
+ framesToDrop = threadBase->mFrameCount * 2;
+ }
+ mFramesToDrop = framesToDrop;
+ }
+}
+
+void AudioFlinger::RecordThread::RecordTrack::clearSyncStartEvent()
+{
+ if (mSyncStartEvent != 0) {
+ mSyncStartEvent->cancel();
+ mSyncStartEvent.clear();
+ }
+ mFramesToDrop = 0;
+}
+
}; // namespace android