From 28dbde32c2fa4a19a8bf3875e1756fb2a787695c Mon Sep 17 00:00:00 2001 From: Dan Stoza Date: Mon, 2 Mar 2015 22:12:37 -0800 Subject: [PATCH] Surface: Permit an IProducerListener on connect This change allows clients of Surface to provide an IProducerListener callback object to Surface::connect, which will be passed down to the underlying IGraphicBufferProducer Change-Id: I5ea5229bf3a329bf02c6bd20e7247039c75d136b --- include/gui/Surface.h | 1 + libs/gui/Surface.cpp | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/gui/Surface.h b/include/gui/Surface.h index f2cf018a9f..5e752b50f4 100644 --- a/include/gui/Surface.h +++ b/include/gui/Surface.h @@ -157,6 +157,7 @@ protected: virtual int lockBuffer_DEPRECATED(ANativeWindowBuffer* buffer); + virtual int connect(int api, const sp& listener); virtual int connect(int api); virtual int disconnect(int api); virtual int setBufferCount(int bufferCount); diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp index 0e2baa28fd..9bd0d0dd55 100644 --- a/libs/gui/Surface.cpp +++ b/libs/gui/Surface.cpp @@ -546,9 +546,13 @@ int Surface::dispatchSetSidebandStream(va_list args) { } int Surface::connect(int api) { + static sp listener = new DummyProducerListener(); + return connect(api, listener); +} + +int Surface::connect(int api, const sp& listener) { ATRACE_CALL(); ALOGV("Surface::connect"); - static sp listener = new DummyProducerListener(); Mutex::Autolock lock(mMutex); IGraphicBufferProducer::QueueBufferOutput output; int err = mGraphicBufferProducer->connect(listener, api, mProducerControlledByApp, &output); -- 2.11.0