1 /* 2 * Copyright (C) 2019 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef ANDROID_GUI_BUFFERITEMCONSUMER_H 18 #define ANDROID_GUI_BUFFERITEMCONSUMER_H 19 20 #include <gui/ConsumerBase.h> 21 #include <gui/IGraphicBufferConsumer.h> 22 #include <utils/RefBase.h> 23 24 namespace android { 25 26 class BufferItemConsumer : public ConsumerBase { 27 public: BufferItemConsumer(const sp<IGraphicBufferConsumer> & consumer,uint64_t consumerUsage,int bufferCount,bool controlledByApp)28 BufferItemConsumer(const sp<IGraphicBufferConsumer>& consumer, uint64_t consumerUsage, 29 int bufferCount, bool controlledByApp) 30 : mConsumer(consumer) {} 31 32 status_t acquireBuffer(BufferItem* item, nsecs_t presentWhen, bool waitForFence = true) { 33 return mConsumer->acquireBuffer(item, presentWhen, 0); 34 } 35 36 status_t releaseBuffer(const BufferItem& item, 37 const sp<Fence>& releaseFence = Fence::NO_FENCE) { 38 return OK; 39 } 40 setName(const String8 & name)41 void setName(const String8& name) {} 42 setFrameAvailableListener(const wp<FrameAvailableListener> & listener)43 void setFrameAvailableListener(const wp<FrameAvailableListener>& listener) {} 44 setDefaultBufferSize(uint32_t width,uint32_t height)45 status_t setDefaultBufferSize(uint32_t width, uint32_t height) { 46 return mConsumer->setDefaultBufferSize(width, height); 47 } 48 setDefaultBufferFormat(PixelFormat defaultFormat)49 status_t setDefaultBufferFormat(PixelFormat defaultFormat) { 50 return mConsumer->setDefaultBufferFormat(defaultFormat); 51 } 52 setDefaultBufferDataSpace(android_dataspace defaultDataSpace)53 status_t setDefaultBufferDataSpace(android_dataspace defaultDataSpace) { 54 return mConsumer->setDefaultBufferDataSpace(defaultDataSpace); 55 } 56 abandon()57 void abandon() {} 58 detachBuffer(int slot)59 status_t detachBuffer(int slot) { 60 return OK; 61 } 62 discardFreeBuffers()63 status_t discardFreeBuffers() { 64 return OK; 65 } 66 freeBufferLocked(int slotIndex)67 void freeBufferLocked(int slotIndex) {} 68 addReleaseFenceLocked(int slot,const sp<GraphicBuffer> graphicBuffer,const sp<Fence> & fence)69 status_t addReleaseFenceLocked(int slot, const sp<GraphicBuffer> graphicBuffer, 70 const sp<Fence>& fence) { 71 return OK; 72 } 73 74 private: 75 sp<IGraphicBufferConsumer> mConsumer; 76 }; 77 78 } // namespace android 79 80 #endif // ANDROID_GUI_BUFFERITEMCONSUMER_H 81