summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2013-08-26 09:36:23 -0700
committerGlenn Kasten <gkasten@google.com>2013-08-29 09:24:28 -0700
commit573d80a8f463f648a515fc0975bf83951b272993 (patch)
treec50d730bd7bd113a0f86c091730f9b861354f395
parent53cec22821072719ee02c856e9ac2dda2496c570 (diff)
downloadframeworks_av-573d80a8f463f648a515fc0975bf83951b272993.zip
frameworks_av-573d80a8f463f648a515fc0975bf83951b272993.tar.gz
frameworks_av-573d80a8f463f648a515fc0975bf83951b272993.tar.bz2
Add AudioFlinger::PlaybackThread::Track::getTimestamp()
with a dummy implementation initially, and use it in AudioFlinger::TrackHandle::getTimestamp() Change-Id: I2da88fc52a135a7f0d9fd9538986e919dc8ccd3b
-rw-r--r--services/audioflinger/PlaybackTracks.h1
-rw-r--r--services/audioflinger/Tracks.cpp13
2 files changed, 13 insertions, 1 deletions
diff --git a/services/audioflinger/PlaybackTracks.h b/services/audioflinger/PlaybackTracks.h
index 5600411c..d34833f 100644
--- a/services/audioflinger/PlaybackTracks.h
+++ b/services/audioflinger/PlaybackTracks.h
@@ -59,6 +59,7 @@ public:
void setMainBuffer(int16_t *buffer) { mMainBuffer = buffer; }
int16_t *mainBuffer() const { return mMainBuffer; }
int auxEffectId() const { return mAuxEffectId; }
+ virtual status_t getTimestamp(AudioTimestamp& timestamp);
// implement FastMixerState::VolumeProvider interface
virtual uint32_t getVolumeLR();
diff --git a/services/audioflinger/Tracks.cpp b/services/audioflinger/Tracks.cpp
index d1ab3c8..687217b 100644
--- a/services/audioflinger/Tracks.cpp
+++ b/services/audioflinger/Tracks.cpp
@@ -285,7 +285,7 @@ status_t AudioFlinger::TrackHandle::setParameters(const String8& keyValuePairs)
status_t AudioFlinger::TrackHandle::getTimestamp(AudioTimestamp& timestamp)
{
- return INVALID_OPERATION;
+ return mTrack->getTimestamp(timestamp);
}
status_t AudioFlinger::TrackHandle::onTransact(
@@ -716,6 +716,17 @@ status_t AudioFlinger::PlaybackThread::Track::setParameters(const String8& keyVa
}
}
+status_t AudioFlinger::PlaybackThread::Track::getTimestamp(AudioTimestamp& timestamp)
+{
+ sp<ThreadBase> thread = mThread.promote();
+ if (thread == 0) {
+ return false;
+ }
+ Mutex::Autolock _l(thread->mLock);
+ PlaybackThread *playbackThread = (PlaybackThread *)thread.get();
+ return INVALID_OPERATION;
+}
+
status_t AudioFlinger::PlaybackThread::Track::attachAuxEffect(int EffectId)
{
status_t status = DEAD_OBJECT;