-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathqatemtypes.h
223 lines (197 loc) · 5.85 KB
/
qatemtypes.h
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
/*
Copyright 2014 Peter Simonsson <[email protected]>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef QATEM_TOPOLOGY_H
#define QATEM_TOPOLOGY_H
#include "libqatemcontrol_global.h"
#include <QtGlobal>
#include <QString>
#include <QPointF>
#include <QSizeF>
#include <QColor>
namespace QAtem
{
typedef union
{
quint16 u16;
quint8 u8[2];
} U16_U8;
typedef union
{
quint32 u32;
quint8 u8[4];
} U32_U8;
struct LIBQATEMCONTROLSHARED_EXPORT Topology
{
quint8 MEs;
quint8 sources;
quint8 colorGenerators;
quint8 auxBusses;
quint8 downstreamKeyers;
quint8 upstreamKeyers;
quint8 stingers;
quint8 DVEs;
quint8 supersources;
bool hasSD;
};
struct LIBQATEMCONTROLSHARED_EXPORT VideoMode
{
VideoMode() : index(0), framesPerSecond(0.0) {}
VideoMode(quint8 i, const QString &n, const QSize &s, float f) :
index(i), name(n), size(s), framesPerSecond(f) {}
quint8 index;
QString name;
QSize size;
float framesPerSecond;
};
struct LIBQATEMCONTROLSHARED_EXPORT MultiView
{
MultiView(quint8 i) : index(i) {}
quint8 index;
/// Multi view layout, 0 = prg/prv on top, 1 = prg/prv on bottom, 2 = prg/prv on left, 3 = prg/prv on right
quint8 layout;
quint16 sources[10];
};
struct LIBQATEMCONTROLSHARED_EXPORT InputInfo
{
InputInfo()
{
index = 0;
tally = 0;
externalType = 0;
internalType = 0;
availableExternalTypes = 0;
availability = 0;
meAvailability = 0;
}
quint16 index;
quint8 tally;
quint8 externalType; // 0 = Internal, 1 = SDI, 2 = HDMI, 3 = Composite, 4 = Component, 5 = SVideo
quint8 internalType; // 0 = External, 1 = Black, 2 = Color Bars, 3 = Color Generator, 4 = Media Player Fill, 5 = Media Player Key, 6 = SuperSource, 128 = ME Output, 129 = Auxiliary, 130 = Mask
quint8 availableExternalTypes; // Bit 0: SDI, 1: HDMI, 2: Component, 3: Composite, 4: SVideo
quint8 availability; // Bit 0: Auxiliary, 1: Multiviewer, 2: SuperSource Art, 3: SuperSource Box, 4: Key Sources
quint8 meAvailability; // Bit 0: ME1 + Fill Sources, 1: ME2 + Fill Sources
QString longText;
QString shortText;
};
enum MediaType
{
StillMedia = 1,
ClipMedia = 2,
SoundMedia = 3
};
struct LIBQATEMCONTROLSHARED_EXPORT MediaInfo
{
quint8 index;
bool used;
quint16 frameCount;
QString name;
MediaType type;
QByteArray hash;
};
struct LIBQATEMCONTROLSHARED_EXPORT MediaPlayerState
{
quint8 index;
bool loop;
bool playing;
bool atBegining;
quint8 currentFrame;
};
struct LIBQATEMCONTROLSHARED_EXPORT AudioInput
{
quint16 index;
quint8 type; // 0 = Video input, 1 = Media player, 2 = External
quint8 plugType; // 0 = Internal, 1 = SDI, 2 = HDMI, 3 = Component, 4 = Composite, 5 = SVideo, 32 = XLR, 64 = AES/EBU, 128 = RCA
quint8 state; // 0 = Off, 1 = On, 2 = AFV
float balance;
float gain; // dB
};
struct LIBQATEMCONTROLSHARED_EXPORT AudioLevel
{
quint16 index;
float left;
float right;
float peakLeft;
float peakRight;
};
struct LIBQATEMCONTROLSHARED_EXPORT DveKeyFrame
{
QPointF position;
QSizeF size;
float rotation;
float lightSourceDirection;
quint8 lightSourceAltitude;
QColor borderColor;
float borderOutsideWidth;
float borderInsideWidth;
quint8 borderOutsideSoften;
quint8 borderInsideSoften;
quint8 borderOpacity;
float borderBevelPosition;
quint8 borderBevelSoften;
float maskTop;
float maskBottom;
float maskLeft;
float maskRight;
};
struct LIBQATEMCONTROLSHARED_EXPORT Camera
{
Camera(quint8 i) :
input(i), focus(0), autoFocused(false), iris(0), zoomSpeed(0),
gain(0), whiteBalance(0), shutter(0),
liftR(0), liftG(0), liftB(0), liftY(0),
gammaR(0), gammaG(0), gammaB(0), gammaY(0),
gainR(0), gainG(0), gainB(0), gainY(0),
contrast(0), lumMix(0), hue(0), saturation(0)
{
}
quint8 input;
quint16 focus;
bool autoFocused;
quint16 iris;
qint16 zoomSpeed;
quint16 gain;
quint16 whiteBalance;
quint16 shutter;
float liftR;
float liftG;
float liftB;
float liftY;
float gammaR;
float gammaG;
float gammaB;
float gammaY;
float gainR;
float gainG;
float gainB;
float gainY;
quint8 contrast;
quint8 lumMix;
quint16 hue;
quint8 saturation;
};
struct LIBQATEMCONTROLSHARED_EXPORT MacroInfo
{
quint8 index;
bool used;
QString name;
QString description;
};
enum MacroRunningState
{
MacroStoped,
MacroRunning,
MacroWaiting
};
}
#endif //QATEM_TOPOLOGY_H