Change BufferQueue into producer/consumer wrapper
Now that BufferQueue has been split into core + producer + consumer,
rewrite BufferQueue to be a thin layer over a producer and consumer
interface. Eventually, this layer will be deprecated in favor of
only using either the producer or consumer interface, as applicable.
Change-Id: I340ae5f5b633b244fb594615ff52ba50b9e2f7e4
diff --git a/include/gui/BufferQueueProducer.h b/include/gui/BufferQueueProducer.h
index 7f063aa..8912097 100644
--- a/include/gui/BufferQueueProducer.h
+++ b/include/gui/BufferQueueProducer.h
@@ -17,7 +17,7 @@
#ifndef ANDROID_GUI_BUFFERQUEUEPRODUCER_H
#define ANDROID_GUI_BUFFERQUEUEPRODUCER_H
-#include <gui/BufferQueueCore.h>
+#include <gui/BufferQueueDefs.h>
#include <gui/IGraphicBufferProducer.h>
namespace android {
@@ -26,8 +26,9 @@
class BufferQueueProducer : public BnGraphicBufferProducer,
private IBinder::DeathRecipient {
-
public:
+ friend class BufferQueue; // Needed to access binderDied
+
BufferQueueProducer(const sp<BufferQueueCore>& core);
virtual ~BufferQueueProducer();
@@ -151,7 +152,9 @@
virtual void binderDied(const wp<IBinder>& who);
sp<BufferQueueCore> mCore;
- BufferQueueCore::SlotsType& mSlots;
+
+ // This references mCore->mSlots. Lock mCore->mMutex while accessing.
+ BufferQueueDefs::SlotsType& mSlots;
// This is a cached copy of the name stored in the BufferQueueCore.
// It's updated during connect and dequeueBuffer (which should catch