summaryrefslogtreecommitdiffstats
path: root/libs/gui
diff options
context:
space:
mode:
authorDan Stoza <stoza@google.com>2015-05-11 15:33:01 -0700
committerDan Stoza <stoza@google.com>2015-05-11 15:33:01 -0700
commitdc13c5b85b099050c73297a19f1ef89308f7620b (patch)
tree1e69e2eb637a4c4a5c71b9a0807b27bfff9c337c /libs/gui
parentbe451b57b97c21747c637f4af06743318d42c36c (diff)
downloadframeworks_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.cpp8
-rw-r--r--libs/gui/ConsumerBase.cpp15
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);