1f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam/* 2f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * Copyright (C) 2012 The Android Open Source Project 3f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * 4f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * Licensed under the Apache License, Version 2.0 (the "License"); 5f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * you may not use this file except in compliance with the License. 6f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * You may obtain a copy of the License at 7f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * 8f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * http://www.apache.org/licenses/LICENSE-2.0 9f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * 10f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * Unless required by applicable law or agreed to in writing, software 11f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * distributed under the License is distributed on an "AS IS" BASIS, 12f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * See the License for the specific language governing permissions and 14f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam * limitations under the License. 15f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam */ 16f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam 17f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam#ifndef ANDROID_GUI_DUMMYCONSUMER_H 18f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam#define ANDROID_GUI_DUMMYCONSUMER_H 19f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam 20f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam#include <gui/BufferQueue.h> 21f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam 22f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lamnamespace android { 23f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam// ---------------------------------------------------------------------------- 24f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam 25f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam 26f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam// The DummyConsumer does not keep a reference to BufferQueue 27f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam// unlike SurfaceTexture. This prevents a circular reference from 289d61a28d72d85ac0460fb7fba9f85f8a955354c7Daniel Lam// forming without having to use a ProxyConsumerListener 299d61a28d72d85ac0460fb7fba9f85f8a955354c7Daniel Lamclass DummyConsumer : public BufferQueue::ConsumerListener { 30f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lampublic: 319d61a28d72d85ac0460fb7fba9f85f8a955354c7Daniel Lam DummyConsumer(); 32f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam virtual ~DummyConsumer(); 33f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lamprotected: 34f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam 35f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam // Implementation of the BufferQueue::ConsumerListener interface. These 36f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam // calls are used to notify the SurfaceTexture of asynchronous events in the 37f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam // BufferQueue. 38f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam virtual void onFrameAvailable(); 39f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam virtual void onBuffersReleased(); 40f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam 41f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam}; 42f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam 43f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam// ---------------------------------------------------------------------------- 44f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam}; // namespace android 45f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam 46f71c4ae136f7749b9dfdaa2dd64d771868eeeb2dDaniel Lam#endif // ANDROID_GUI_DUMMYCONSUMER_H 47