Agora Java API Reference for Android
media_sdk_script
rte_sdk
interface
cpp
api2
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
11
namespace
agora {
12
namespace
rtc {
13
14
struct
ExtensionVersion
{
15
// Extension Framework Version : major.minor.micro
16
int
major_v;
17
int
minor_v;
18
int
micro_v;
19
20
ExtensionVersion
()
21
: major_v(0), minor_v(0), micro_v(0) {}
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 && minor_v == other.minor_v && micro_v == other.micro_v;
31
}
32
};
33
34
#define BUMP_MAJOR_VERSION(VERSION) \
35
ExtensionVersion(VERSION.major_v + 1, 0, 0); \
36
37
#define BUMP_MINOR_VERSION(VERSION) \
38
ExtensionVersion(VERSION.major_v, VERSION.minor_v + 1, 0); \
39
40
#define BUMP_MICRO_VERSION(VERSION) \
41
ExtensionVersion(VERSION.major_v, VERSION.minor_v, VERSION.micro_v + 1); \
42
43
class
IExtensionProvider
;
44
class
IExtensionProviderV2
;
45
class
IAudioFilter
;
46
class
IExtensionVideoFilter
;
47
48
template
<
class
T>
49
struct
ExtensionInterfaceVersion
;
50
51
template
<>
52
struct
ExtensionInterfaceVersion
<
IExtensionProvider
> {
53
static
ExtensionVersion
version() {
54
return
ExtensionVersion
(1, 0, 0);
55
}
56
};
57
58
template
<>
59
struct
ExtensionInterfaceVersion
<
IExtensionProviderV2
> {
60
static
ExtensionVersion
version() {
61
return
BUMP_MAJOR_VERSION(
ExtensionInterfaceVersion<IExtensionProvider>::version
());
62
}
63
};
64
65
template
<>
66
struct
ExtensionInterfaceVersion
<
IAudioFilter
> {
67
static
ExtensionVersion
version() {
68
return
ExtensionVersion
(1, 0, 0);
69
}
70
};
71
72
template
<>
73
struct
ExtensionInterfaceVersion
<
IExtensionVideoFilter
> {
74
static
ExtensionVersion
version() {
75
return
ExtensionVersion
(1, 0, 0);
76
}
77
};
78
79
}
// namespace rtc
80
}
// namespace agora
agora::rtc::ExtensionVersion
Definition:
AgoraExtensionVersion.h:14
agora::rtc::IExtensionProviderV2
Definition:
NGIAgoraExtensionProvider.h:71
agora::rtc::IAudioFilter
Definition:
NGIAgoraMediaNode.h:67
agora::rtc::IExtensionProvider
Definition:
NGIAgoraExtensionProvider.h:29
agora::rtc::IExtensionVideoFilter
Definition:
NGIAgoraMediaNode.h:242
agora::rtc::ExtensionInterfaceVersion
Definition:
AgoraExtensionVersion.h:49
Generated by
1.8.18