Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
AgoraExtensionVersion.h
1//
2// Copyright (c) 2021 Agora.io. All rights reserved
3
4// This program is confidential and proprietary to Agora.io.
5// And may not be copied, reproduced, modified, disclosed to others, published
6// or used, in whole or in part, without the express prior written permission
7// of Agora.io.
8
9#pragma once
10
11namespace agora {
12namespace rtc {
13
15 // Extension Framework Version : major.minor.micro
19
22 ExtensionVersion(int majorV, int minorV = 0, int microV = 0)
23 : major_v(majorV), minor_v(minorV), micro_v(microV) {}
24
25 bool operator==(const ExtensionVersion& other) const {
26 return major_v == other.major_v && minor_v == other.minor_v && micro_v == other.micro_v;
27 }
28
29 bool operator>(const ExtensionVersion& other) const {
30 return major_v > other.major_v || (major_v == other.major_v && minor_v > other.minor_v)
31 || (major_v == other.major_v && minor_v == other.minor_v && micro_v > other.micro_v);
32 }
33
34 bool operator<(const ExtensionVersion& other) const {
35 return major_v < other.major_v || (major_v == other.major_v && minor_v < other.minor_v)
36 || (major_v == other.major_v && minor_v == other.minor_v && micro_v < other.micro_v);
37 }
38
39 bool operator<=(const ExtensionVersion& other) const {
40 return !operator>(other);
41 }
42
43 bool operator>=(const ExtensionVersion& other) const {
44 return !operator<(other);
45 }
46};
47
48#define BUMP_MAJOR_VERSION(VERSION) \
49 ExtensionVersion(VERSION.major_v + 1, 0, 0); \
50
51#define BUMP_MINOR_VERSION(VERSION) \
52 ExtensionVersion(VERSION.major_v, VERSION.minor_v + 1, 0); \
53
54#define BUMP_MICRO_VERSION(VERSION) \
55 ExtensionVersion(VERSION.major_v, VERSION.minor_v, VERSION.micro_v + 1); \
56
57class IExtensionProvider;
58class IExtensionProviderV2;
59class IExtensionProviderV3;
60class IAudioFilter;
61class IAudioFilterV2;
62class IExtensionVideoFilter;
63class IScreenCaptureSource;
64
65template <class T>
67
68template <>
74
75template <>
81
82template <>
85 return ExtensionVersion(1, 0, 0);
86 }
87};
88
89template <>
95
96template <>
102
103template <>
109
110} // namespace rtc
111} // namespace agora
Definition AgoraExtensions.h:12
Definition AgoraExtensions.h:83
Definition NGIAgoraExtensionProvider.h:35
Definition NGIAgoraExtensionProvider.h:139
Definition AgoraExtensions.h:114
Definition NGIAgoraExtensionScreenSource.h:41
Definition AgoraExtensions.h:5
Definition AgoraAtomicOps.h:21
static ExtensionVersion Version()
Definition AgoraExtensionVersion.h:84
static ExtensionVersion Version()
Definition AgoraExtensionVersion.h:91
static ExtensionVersion Version()
Definition AgoraExtensionVersion.h:70
static ExtensionVersion Version()
Definition AgoraExtensionVersion.h:77
static ExtensionVersion Version()
Definition AgoraExtensionVersion.h:98
static ExtensionVersion Version()
Definition AgoraExtensionVersion.h:105
Definition AgoraExtensionVersion.h:66
Definition AgoraExtensionVersion.h:14
int micro_v
Definition AgoraExtensionVersion.h:18
bool operator==(const ExtensionVersion &other) const
Definition AgoraExtensionVersion.h:25
bool operator<(const ExtensionVersion &other) const
Definition AgoraExtensionVersion.h:34
ExtensionVersion()
Definition AgoraExtensionVersion.h:20
bool operator>(const ExtensionVersion &other) const
Definition AgoraExtensionVersion.h:29
bool operator<=(const ExtensionVersion &other) const
Definition AgoraExtensionVersion.h:39
bool operator>=(const ExtensionVersion &other) const
Definition AgoraExtensionVersion.h:43
int major_v
Definition AgoraExtensionVersion.h:16
ExtensionVersion(int majorV, int minorV=0, int microV=0)
Definition AgoraExtensionVersion.h:22
int minor_v
Definition AgoraExtensionVersion.h:17