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