diff options
Diffstat (limited to 'services')
-rw-r--r-- | services/surfaceflinger/Layer.cpp | 4 | ||||
-rw-r--r-- | services/surfaceflinger/MonitoredProducer.cpp | 9 | ||||
-rw-r--r-- | services/surfaceflinger/MonitoredProducer.h | 7 |
3 files changed, 12 insertions, 8 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index 7f2ee2a..58a3040 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -117,8 +117,8 @@ Layer::Layer(SurfaceFlinger* flinger, const sp<Client>& client, void Layer::onFirstRef() { // Creates a custom BufferQueue for SurfaceFlingerConsumer to use - sp<BnGraphicBufferProducer> producer; - sp<BnGraphicBufferConsumer> consumer; + sp<IGraphicBufferProducer> producer; + sp<IGraphicBufferConsumer> consumer; BufferQueue::createBufferQueue(&producer, &consumer); mProducer = new MonitoredProducer(producer, mFlinger); mSurfaceFlingerConsumer = new SurfaceFlingerConsumer(consumer, mTextureName); diff --git a/services/surfaceflinger/MonitoredProducer.cpp b/services/surfaceflinger/MonitoredProducer.cpp index 8fed676..cd3fdf1 100644 --- a/services/surfaceflinger/MonitoredProducer.cpp +++ b/services/surfaceflinger/MonitoredProducer.cpp @@ -20,7 +20,7 @@ namespace android { -MonitoredProducer::MonitoredProducer(const sp<BnGraphicBufferProducer>& producer, +MonitoredProducer::MonitoredProducer(const sp<IGraphicBufferProducer>& producer, const sp<SurfaceFlinger>& flinger) : mProducer(producer), mFlinger(flinger) {} @@ -49,8 +49,7 @@ MonitoredProducer::~MonitoredProducer() { wp<IBinder> mProducer; }; - mFlinger->postMessageAsync(new MessageCleanUpList(mFlinger, - static_cast<BnGraphicBufferProducer*>(this))); + mFlinger->postMessageAsync(new MessageCleanUpList(mFlinger, asBinder())); } status_t MonitoredProducer::requestBuffer(int slot, sp<GraphicBuffer>* buf) { @@ -101,5 +100,9 @@ status_t MonitoredProducer::setSidebandStream(const sp<NativeHandle>& stream) { return mProducer->setSidebandStream(stream); } +IBinder* MonitoredProducer::onAsBinder() { + return mProducer->asBinder().get(); +} + // --------------------------------------------------------------------------- }; // namespace android diff --git a/services/surfaceflinger/MonitoredProducer.h b/services/surfaceflinger/MonitoredProducer.h index f78be20..7ac6f06 100644 --- a/services/surfaceflinger/MonitoredProducer.h +++ b/services/surfaceflinger/MonitoredProducer.h @@ -27,9 +27,9 @@ class SurfaceFlinger; // MonitoredProducer wraps an IGraphicBufferProducer so that SurfaceFlinger will // be notified upon its destruction -class MonitoredProducer : public BnGraphicBufferProducer { +class MonitoredProducer : public IGraphicBufferProducer { public: - MonitoredProducer(const sp<BnGraphicBufferProducer>& producer, + MonitoredProducer(const sp<IGraphicBufferProducer>& producer, const sp<SurfaceFlinger>& flinger); virtual ~MonitoredProducer(); @@ -49,9 +49,10 @@ public: bool producerControlledByApp, QueueBufferOutput* output); virtual status_t disconnect(int api); virtual status_t setSidebandStream(const sp<NativeHandle>& stream); + virtual IBinder* onAsBinder(); private: - sp<BnGraphicBufferProducer> mProducer; + sp<IGraphicBufferProducer> mProducer; sp<SurfaceFlinger> mFlinger; }; |