1f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa/* 2f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * Copyright 2016, The Android Open Source Project 3f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * 4f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * Licensed under the Apache License, Version 2.0 (the "License"); 5f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * you may not use this file except in compliance with the License. 6f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * You may obtain a copy of the License at 7f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * 8f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * http://www.apache.org/licenses/LICENSE-2.0 9f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * 10f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * Unless required by applicable law or agreed to in writing, software 11f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * distributed under the License is distributed on an "AS IS" BASIS, 12f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * See the License for the specific language governing permissions and 14f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa * limitations under the License. 15f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa */ 16f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 17f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa#ifndef ANDROID_HARDWARE_MEDIA_OMX_V1_0_WOMXPRODUCERLISTENER_H 18f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa#define ANDROID_HARDWARE_MEDIA_OMX_V1_0_WOMXPRODUCERLISTENER_H 19f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 20f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa#include <hidl/MQDescriptor.h> 21f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa#include <hidl/Status.h> 22f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 23f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa#include <binder/IBinder.h> 24f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa#include <gui/IProducerListener.h> 25f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 2604563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasa#include <android/hardware/graphics/bufferqueue/1.0/IProducerListener.h> 270d3a5edf232916e81adbc46fc0f4a1753166b066Pawin Vongmasa 28f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasanamespace android { 29f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasanamespace hardware { 30f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasanamespace media { 31f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasanamespace omx { 32f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasanamespace V1_0 { 33f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasanamespace implementation { 34f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 35f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasausing ::android::hidl::base::V1_0::IBase; 36f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasausing ::android::hardware::hidl_array; 37f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasausing ::android::hardware::hidl_memory; 38f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasausing ::android::hardware::hidl_string; 39f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasausing ::android::hardware::hidl_vec; 40f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasausing ::android::hardware::Return; 41f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasausing ::android::hardware::Void; 42f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasausing ::android::sp; 43f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 4404563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasatypedef ::android::hardware::graphics::bufferqueue::V1_0::IProducerListener 4504563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasa HProducerListener; 4604563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasatypedef ::android::IProducerListener 4704563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasa BProducerListener; 488ff40189817e95c7a56e347398d20e60d7534ee6Pawin Vongmasausing ::android::BnProducerListener; 49f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 5004563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasastruct TWProducerListener : public HProducerListener { 5104563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasa sp<BProducerListener> mBase; 5204563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasa TWProducerListener(sp<BProducerListener> const& base); 53f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa Return<void> onBufferReleased() override; 54f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa Return<bool> needsReleaseNotify() override; 55f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa}; 56f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 5704563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasaclass LWProducerListener : public BnProducerListener { 58f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasapublic: 5904563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasa sp<HProducerListener> mBase; 6004563aafa0debc95d50951ca944abf37ef2777cePawin Vongmasa LWProducerListener(sp<HProducerListener> const& base); 61f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa void onBufferReleased() override; 62f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa bool needsReleaseNotify() override; 63f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa}; 64f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 65f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa} // namespace implementation 66f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa} // namespace V1_0 67f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa} // namespace omx 68f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa} // namespace media 69f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa} // namespace hardware 70f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa} // namespace android 71f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa 72f62ea8018813951e8f6a182880cadb3217e4ce37Pawin Vongmasa#endif // ANDROID_HARDWARE_MEDIA_OMX_V1_0_WOMXPRODUCERLISTENER_H 73