summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvnflinger/consumer_listener.h
blob: 74a193988380ef8c3ee6b79f3274244e3e93530e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-FileCopyrightText: Copyright 2014 The Android Open Source Project
// SPDX-License-Identifier: GPL-3.0-or-later
// Parts of this implementation were based on:
// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/IConsumerListener.h

#pragma once

namespace Service::android {

class BufferItem;

/// ConsumerListener is the interface through which the BufferQueue notifies the consumer of events
/// that the consumer may wish to react to.
class IConsumerListener {
public:
    IConsumerListener() = default;
    virtual ~IConsumerListener() = default;

    virtual void OnFrameAvailable(const BufferItem& item) = 0;
    virtual void OnFrameReplaced(const BufferItem& item) = 0;
    virtual void OnBuffersReleased() = 0;
    virtual void OnSidebandStreamChanged() = 0;
};

}; // namespace Service::android