diff options
Diffstat (limited to 'services')
-rw-r--r-- | services/audioflinger/PlaybackTracks.h | 1 | ||||
-rw-r--r-- | services/audioflinger/Tracks.cpp | 13 |
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; |