summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger
diff options
context:
space:
mode:
authorDan Stoza <stoza@google.com>2014-04-11 17:57:11 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-04-11 17:57:12 +0000
commitfd34b65f717b84fa06d8c37f41b070f41d0ad3a3 (patch)
tree80315086e606f5184add4bab55c28e7687ccc931 /services/surfaceflinger
parent88a34b2f4351fe58b042f11af08ffd967ef7ce4c (diff)
parentf0eaf25e9247edf4d124bedaeb863f7abdf35a3e (diff)
downloadframeworks_native-fd34b65f717b84fa06d8c37f41b070f41d0ad3a3.zip
frameworks_native-fd34b65f717b84fa06d8c37f41b070f41d0ad3a3.tar.gz
frameworks_native-fd34b65f717b84fa06d8c37f41b070f41d0ad3a3.tar.bz2
Merge "BufferQueue: Add producer buffer-released callback"
Diffstat (limited to 'services/surfaceflinger')
-rw-r--r--services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp5
-rw-r--r--services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h3
-rw-r--r--services/surfaceflinger/MonitoredProducer.cpp6
-rw-r--r--services/surfaceflinger/MonitoredProducer.h4
4 files changed, 10 insertions, 8 deletions
diff --git a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
index f4cb8b5..67229d5 100644
--- a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
+++ b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
@@ -454,11 +454,12 @@ int VirtualDisplaySurface::query(int what, int* value) {
return mSource[SOURCE_SINK]->query(what, value);
}
-status_t VirtualDisplaySurface::connect(const sp<IBinder>& token,
+status_t VirtualDisplaySurface::connect(const sp<IProducerListener>& listener,
int api, bool producerControlledByApp,
QueueBufferOutput* output) {
QueueBufferOutput qbo;
- status_t result = mSource[SOURCE_SINK]->connect(token, api, producerControlledByApp, &qbo);
+ status_t result = mSource[SOURCE_SINK]->connect(listener, api,
+ producerControlledByApp, &qbo);
if (result == NO_ERROR) {
updateQueueBufferOutput(qbo);
*output = mQueueBufferOutput;
diff --git a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
index 09e5544..165224a 100644
--- a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
+++ b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
@@ -27,6 +27,7 @@ namespace android {
// ---------------------------------------------------------------------------
class HWComposer;
+class IProducerListener;
/* This DisplaySurface implementation supports virtual displays, where GLES
* and/or HWC compose into a buffer that is then passed to an arbitrary
@@ -105,7 +106,7 @@ private:
const QueueBufferInput& input, QueueBufferOutput* output);
virtual void cancelBuffer(int pslot, const sp<Fence>& fence);
virtual int query(int what, int* value);
- virtual status_t connect(const sp<IBinder>& token,
+ virtual status_t connect(const sp<IProducerListener>& listener,
int api, bool producerControlledByApp, QueueBufferOutput* output);
virtual status_t disconnect(int api);
virtual status_t setSidebandStream(const sp<NativeHandle>& stream);
diff --git a/services/surfaceflinger/MonitoredProducer.cpp b/services/surfaceflinger/MonitoredProducer.cpp
index cd3fdf1..1a2b7e5 100644
--- a/services/surfaceflinger/MonitoredProducer.cpp
+++ b/services/surfaceflinger/MonitoredProducer.cpp
@@ -87,9 +87,9 @@ int MonitoredProducer::query(int what, int* value) {
return mProducer->query(what, value);
}
-status_t MonitoredProducer::connect(const sp<IBinder>& token, int api,
- bool producerControlledByApp, QueueBufferOutput* output) {
- return mProducer->connect(token, api, producerControlledByApp, output);
+status_t MonitoredProducer::connect(const sp<IProducerListener>& listener,
+ int api, bool producerControlledByApp, QueueBufferOutput* output) {
+ return mProducer->connect(listener, api, producerControlledByApp, output);
}
status_t MonitoredProducer::disconnect(int api) {
diff --git a/services/surfaceflinger/MonitoredProducer.h b/services/surfaceflinger/MonitoredProducer.h
index 7ac6f06..1e6431e 100644
--- a/services/surfaceflinger/MonitoredProducer.h
+++ b/services/surfaceflinger/MonitoredProducer.h
@@ -21,7 +21,7 @@
namespace android {
-class IBinder;
+class IProducerListener;
class NativeHandle;
class SurfaceFlinger;
@@ -45,7 +45,7 @@ public:
QueueBufferOutput* output);
virtual void cancelBuffer(int slot, const sp<Fence>& fence);
virtual int query(int what, int* value);
- virtual status_t connect(const sp<IBinder>& token, int api,
+ virtual status_t connect(const sp<IProducerListener>& token, int api,
bool producerControlledByApp, QueueBufferOutput* output);
virtual status_t disconnect(int api);
virtual status_t setSidebandStream(const sp<NativeHandle>& stream);