summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
Diffstat (limited to 'services')
-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 43fb946..2f37dbb 100644
--- a/services/audioflinger/PlaybackTracks.h
+++ b/services/audioflinger/PlaybackTracks.h
@@ -60,6 +60,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 fd7be30..392707b 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(
@@ -725,6 +725,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;