From ab8443c81b92a0fd06b3e716972b86735926b5a4 Mon Sep 17 00:00:00 2001 From: Carlos Martinez Romero Date: Wed, 3 Jul 2024 13:50:10 -0700 Subject: Use SurfaceListener instead of IProducerListener IProducerListener is being deprecated outside of libgui, we are limiting IGBP/IGBC usage outside of libgui to allow for future changes. See go/warren-buffers for more information. Bug: 342199105 Test: Pending FLAG: EXEMPT no op refactor BYPASS_IGBP_IGBC_API_REASON: Refactor Change-Id: I37129c645b55fd33d6789b9b2ba85a35e044dcd9 --- libs/gui/Surface.cpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'libs/gui/Surface.cpp') diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp index 87fd448f0c..685391effc 100644 --- a/libs/gui/Surface.cpp +++ b/libs/gui/Surface.cpp @@ -44,8 +44,6 @@ #include #include -#include - #include #include #include @@ -1860,30 +1858,31 @@ bool Surface::transformToDisplayInverse() const { } int Surface::connect(int api) { - static sp listener = new StubProducerListener(); + static sp listener = new StubSurfaceListener(); return connect(api, listener); } -int Surface::connect(int api, const sp& listener) { +int Surface::connect(int api, const sp& listener) { return connect(api, listener, false); } int Surface::connect( int api, bool reportBufferRemoval, const sp& sListener) { - if (sListener != nullptr) { - mListenerProxy = new ProducerListenerProxy(this, sListener); - } - return connect(api, mListenerProxy, reportBufferRemoval); + return connect(api, sListener, reportBufferRemoval); } -int Surface::connect( - int api, const sp& listener, bool reportBufferRemoval) { +int Surface::connect(int api, const sp& listener, bool reportBufferRemoval) { ATRACE_CALL(); ALOGV("Surface::connect"); Mutex::Autolock lock(mMutex); IGraphicBufferProducer::QueueBufferOutput output; mReportRemovedBuffers = reportBufferRemoval; - int err = mGraphicBufferProducer->connect(listener, api, mProducerControlledByApp, &output); + if (listener != nullptr) { + mListenerProxy = new ProducerListenerProxy(this, listener); + } + + int err = + mGraphicBufferProducer->connect(mListenerProxy, api, mProducerControlledByApp, &output); if (err == NO_ERROR) { mDefaultWidth = output.width; mDefaultHeight = output.height; @@ -1911,7 +1910,6 @@ int Surface::connect( return err; } - int Surface::disconnect(int api, IGraphicBufferProducer::DisconnectMode mode) { ATRACE_CALL(); ALOGV("Surface::disconnect"); -- cgit v1.2.3-59-g8ed1b