aboutsummaryrefslogtreecommitdiff
path: root/ThirdParty/NVIDIAGfeSDK/Include/gfesdk/bindings/cpp/highlights/ihighlights_cpp.h
blob: f15d12af3d7cd8cc021ce90c7532e1cf97a3346a (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* Copyright (c) 2017, NVIDIA CORPORATION.  All rights reserved.
*
* NVIDIA CORPORATION and its licensors retain all intellectual property
* and proprietary rights in and to this software, related documentation
* and any modifications thereto.  Any use, reproduction, disclosure or
* distribution of this software and related documentation without an express
* license agreement from NVIDIA CORPORATION is strictly prohibited.
*/

/*!
* \file
* C++ bindings for GfeSDK.
* Implemented in the header to avoid ABI incompatibilities
*/

#ifndef GFESDK_IHIGHLIGHTS_CPP_H
#define GFESDK_IHIGHLIGHTS_CPP_H

#include <gfesdk/bindings/cpp/isdk_cpp.h>
#include <gfesdk/bindings/cpp/highlights/highlights_types_cpp.h>

namespace GfeSDK
{
// Avoid polluting global namespace with C api, so put it inside namespace
#include <gfesdk/highlights/ihighlights.h>

/*! C++ Highlights interface */
class Highlights
{
public:
    static Highlights* Create(Core* core);
    virtual ~Highlights() {}

    /*! C++ binding for \ref NVGSDK_Highlights_ConfigureAsync */
    virtual void ConfigureAsync(HighlightConfigParams const& params, TCallback cb = nullptr, void* cbContext = nullptr) = 0;
    /*! C++ binding for \ref NVGSDK_Highlights_GetUserSettingsAsync */
    virtual void GetUserSettingsAsync(TGetUserSettingsCallback cb = nullptr, void* cbContext = nullptr) const = 0;
    /*! C++ binding for \ref NVGSDK_Highlights_OpenGroupAsync */
    virtual void OpenGroupAsync(HighlightOpenGroupParams const& params, TCallback cb = nullptr, void* cbContext = nullptr) = 0;
    /*! C++ binding for \ref NVGSDK_Highlights_CloseGroupAsync */
    virtual void CloseGroupAsync(HighlightCloseGroupParams const& params, TCallback cb = nullptr, void* cbContext = nullptr) = 0;
    /*! C++ binding for \ref NVGSDK_Highlights_SetScreenshotHighlightAsync */
    virtual void SetScreenshotHighlightAsync(ScreenshotHighlightParams const& params, TCallback cb = nullptr, void* cbContext = nullptr) = 0;
    /*! C++ binding for \ref NVGSDK_Highlights_SetVideoHighlightAsync */
    virtual void SetVideoHighlightAsync(VideoHighlightParams const& params, TCallback cb = nullptr, void* cbContext = nullptr) = 0;
    /*! C++ binding for \ref NVGSDK_Highlights_OpenSummaryAsync */
    virtual void OpenSummaryAsync(SummaryParams const& params, TCallback cb = nullptr, void* cbContext = nullptr) = 0;
    /*! C++ binding for \ref NVGSDK_Highlights_GetNumberOfHighlightsAsync */
    virtual void GetNumberOfHighlightsAsync(GroupView const& params, TGetNumberOfHighlightsCallback cb = nullptr, void* cbContext = nullptr) = 0;
};
}

#endif //GFESDK_IHIGHLIGHTS_CPP_H