diff options
author | Dan Stoza <stoza@google.com> | 2015-05-11 15:33:01 -0700 |
---|---|---|
committer | Dan Stoza <stoza@google.com> | 2015-05-11 15:33:01 -0700 |
commit | dc13c5b85b099050c73297a19f1ef89308f7620b (patch) | |
tree | 1e69e2eb637a4c4a5c71b9a0807b27bfff9c337c /libs/gui | |
parent | be451b57b97c21747c637f4af06743318d42c36c (diff) | |
download | frameworks_native-dc13c5b85b099050c73297a19f1ef89308f7620b.zip frameworks_native-dc13c5b85b099050c73297a19f1ef89308f7620b.tar.gz frameworks_native-dc13c5b85b099050c73297a19f1ef89308f7620b.tar.bz2 |
libgui: Hook up onFrameReplaced
This completes the plumbing from ConsumerListener::onFrameReplaced into
SurfaceFlinger (and other consumers that may care).
Change-Id: I376e78ace95d6748e8662e6b4d47c0dfa697a300
Diffstat (limited to 'libs/gui')
-rw-r--r-- | libs/gui/BufferQueue.cpp | 8 | ||||
-rw-r--r-- | libs/gui/ConsumerBase.cpp | 15 |
2 files changed, 23 insertions, 0 deletions
diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp index 2fcbaf2..ccbb5a2 100644 --- a/libs/gui/BufferQueue.cpp +++ b/libs/gui/BufferQueue.cpp @@ -39,6 +39,14 @@ void BufferQueue::ProxyConsumerListener::onFrameAvailable( } } +void BufferQueue::ProxyConsumerListener::onFrameReplaced( + const BufferItem& item) { + sp<ConsumerListener> listener(mConsumerListener.promote()); + if (listener != NULL) { + listener->onFrameReplaced(item); + } +} + void BufferQueue::ProxyConsumerListener::onBuffersReleased() { sp<ConsumerListener> listener(mConsumerListener.promote()); if (listener != NULL) { diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index e576018..aa9443a 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -114,6 +114,21 @@ void ConsumerBase::onFrameAvailable(const BufferItem& item) { } } +void ConsumerBase::onFrameReplaced(const BufferItem &item) { + CB_LOGV("onFrameReplaced"); + + sp<FrameAvailableListener> listener; + { + Mutex::Autolock lock(mMutex); + listener = mFrameAvailableListener.promote(); + } + + if (listener != NULL) { + CB_LOGV("actually calling onFrameReplaced"); + listener->onFrameReplaced(item); + } +} + void ConsumerBase::onBuffersReleased() { Mutex::Autolock lock(mMutex); |