13#include <promeki/config.h>
14#if PROMEKI_ENABLE_CORE
18PROMEKI_NAMESPACE_BEGIN
48class VideoPattern :
public TypedEnum<VideoPattern> {
50 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"VideoPattern",
"Video Test Pattern", 0,
51 {
"ColorBars", 0,
"Color Bars (100%)"},
52 {
"ColorBars75", 1,
"Color Bars (75%)"},
53 {
"Ramp", 2,
"Luminance Ramp"},
55 {
"Crosshatch", 4,
"Crosshatch"},
56 {
"Checkerboard", 5,
"Checkerboard"},
57 {
"SolidColor", 6,
"Solid Color"},
58 {
"White", 7,
"White Field"},
59 {
"Black", 8,
"Black Field"},
60 {
"Noise", 9,
"Random Noise"},
61 {
"ZonePlate", 10,
"Zone Plate"},
62 {
"ColorChecker", 11,
"Color Checker Chart"},
63 {
"SMPTE219", 12,
"SMPTE RP 219 Bars"},
64 {
"AvSync", 13,
"A/V Sync Marker"},
65 {
"MultiBurst", 14,
"Multiburst"},
66 {
"LimitRange", 15,
"Range Limit Check"},
67 {
"CircularZone", 16,
"Circular Zone Plate"},
68 {
"Alignment", 17,
"Alignment Grid"},
69 {
"SDIPathEQ", 18,
"SDI Pathological (Equalizer)"},
70 {
"SDIPathPLL", 19,
"SDI Pathological (PLL)"});
72 using TypedEnum<VideoPattern>::TypedEnum;
74 static const VideoPattern ColorBars;
75 static const VideoPattern ColorBars75;
76 static const VideoPattern Ramp;
77 static const VideoPattern Grid;
78 static const VideoPattern Crosshatch;
79 static const VideoPattern Checkerboard;
80 static const VideoPattern SolidColor;
81 static const VideoPattern White;
82 static const VideoPattern Black;
83 static const VideoPattern Noise;
84 static const VideoPattern ZonePlate;
85 static const VideoPattern ColorChecker;
86 static const VideoPattern SMPTE219;
87 static const VideoPattern AvSync;
88 static const VideoPattern MultiBurst;
89 static const VideoPattern LimitRange;
90 static const VideoPattern CircularZone;
91 static const VideoPattern Alignment;
92 static const VideoPattern SDIPathEQ;
93 static const VideoPattern SDIPathPLL;
96inline const VideoPattern VideoPattern::ColorBars{0};
97inline const VideoPattern VideoPattern::ColorBars75{1};
98inline const VideoPattern VideoPattern::Ramp{2};
99inline const VideoPattern VideoPattern::Grid{3};
100inline const VideoPattern VideoPattern::Crosshatch{4};
101inline const VideoPattern VideoPattern::Checkerboard{5};
102inline const VideoPattern VideoPattern::SolidColor{6};
103inline const VideoPattern VideoPattern::White{7};
104inline const VideoPattern VideoPattern::Black{8};
105inline const VideoPattern VideoPattern::Noise{9};
106inline const VideoPattern VideoPattern::ZonePlate{10};
107inline const VideoPattern VideoPattern::ColorChecker{11};
108inline const VideoPattern VideoPattern::SMPTE219{12};
109inline const VideoPattern VideoPattern::AvSync{13};
110inline const VideoPattern VideoPattern::MultiBurst{14};
111inline const VideoPattern VideoPattern::LimitRange{15};
112inline const VideoPattern VideoPattern::CircularZone{16};
113inline const VideoPattern VideoPattern::Alignment{17};
114inline const VideoPattern VideoPattern::SDIPathEQ{18};
115inline const VideoPattern VideoPattern::SDIPathPLL{19};
124class BurnPosition :
public TypedEnum<BurnPosition> {
126 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"BurnPosition",
"Burn-In Position", 4,
127 {
"TopLeft", 0,
"Top Left"},
128 {
"TopCenter", 1,
"Top Center"},
129 {
"TopRight", 2,
"Top Right"},
130 {
"BottomLeft", 3,
"Bottom Left"},
131 {
"BottomCenter", 4,
"Bottom Center"},
132 {
"BottomRight", 5,
"Bottom Right"},
133 {
"Center", 6,
"Center"});
135 using TypedEnum<BurnPosition>::TypedEnum;
137 static const BurnPosition TopLeft;
138 static const BurnPosition TopCenter;
139 static const BurnPosition TopRight;
140 static const BurnPosition BottomLeft;
141 static const BurnPosition BottomCenter;
142 static const BurnPosition BottomRight;
143 static const BurnPosition Center;
146inline const BurnPosition BurnPosition::TopLeft{0};
147inline const BurnPosition BurnPosition::TopCenter{1};
148inline const BurnPosition BurnPosition::TopRight{2};
149inline const BurnPosition BurnPosition::BottomLeft{3};
150inline const BurnPosition BurnPosition::BottomCenter{4};
151inline const BurnPosition BurnPosition::BottomRight{5};
152inline const BurnPosition BurnPosition::Center{6};
244class AudioPattern :
public TypedEnum<AudioPattern> {
246 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"AudioPattern",
"Audio Test Pattern", 0,
247 {
"Tone", 0,
"Sine Tone"},
248 {
"Silence", 1,
"Silence"},
249 {
"LTC", 2,
"Linear Timecode (LTC)"},
250 {
"AvSync", 3,
"A/V Sync Tone Burst"},
251 {
"SrcProbe", 4,
"Sample-Rate Probe (997 Hz)"},
252 {
"ChannelId", 5,
"Channel ID Tone"},
253 {
"PcmMarker", 6,
"PCM Marker"},
254 {
"WhiteNoise", 7,
"White Noise"},
255 {
"PinkNoise", 8,
"Pink Noise"},
256 {
"Chirp", 9,
"Logarithmic Chirp"},
257 {
"DualTone", 10,
"Dual Tone (SMPTE IMD)"},
258 {
"Sweep", 11,
"Linear Sweep"},
259 {
"Polarity", 12,
"Polarity Pulse"},
260 {
"SteppedTone", 13,
"Stepped Tone"},
261 {
"Blits", 14,
"EBU BLITS Sequence"},
262 {
"EbuLineup", 15,
"EBU Line-Up Tone"},
263 {
"Dialnorm", 16,
"Dialnorm Pink Noise"},
264 {
"Iec60958", 17,
"IEC 60958 Channel Status"});
266 using TypedEnum<AudioPattern>::TypedEnum;
268 static const AudioPattern Tone;
269 static const AudioPattern Silence;
270 static const AudioPattern LTC;
271 static const AudioPattern AvSync;
272 static const AudioPattern SrcProbe;
273 static const AudioPattern ChannelId;
274 static const AudioPattern PcmMarker;
275 static const AudioPattern WhiteNoise;
276 static const AudioPattern PinkNoise;
277 static const AudioPattern Chirp;
278 static const AudioPattern DualTone;
279 static const AudioPattern Sweep;
280 static const AudioPattern Polarity;
281 static const AudioPattern SteppedTone;
282 static const AudioPattern Blits;
283 static const AudioPattern EbuLineup;
284 static const AudioPattern Dialnorm;
285 static const AudioPattern Iec60958;
288inline const AudioPattern AudioPattern::Tone{0};
289inline const AudioPattern AudioPattern::Silence{1};
290inline const AudioPattern AudioPattern::LTC{2};
291inline const AudioPattern AudioPattern::AvSync{3};
292inline const AudioPattern AudioPattern::SrcProbe{4};
293inline const AudioPattern AudioPattern::ChannelId{5};
294inline const AudioPattern AudioPattern::PcmMarker{6};
295inline const AudioPattern AudioPattern::WhiteNoise{7};
296inline const AudioPattern AudioPattern::PinkNoise{8};
297inline const AudioPattern AudioPattern::Chirp{9};
298inline const AudioPattern AudioPattern::DualTone{10};
299inline const AudioPattern AudioPattern::Sweep{11};
300inline const AudioPattern AudioPattern::Polarity{12};
301inline const AudioPattern AudioPattern::SteppedTone{13};
302inline const AudioPattern AudioPattern::Blits{14};
303inline const AudioPattern AudioPattern::EbuLineup{15};
304inline const AudioPattern AudioPattern::Dialnorm{16};
305inline const AudioPattern AudioPattern::Iec60958{17};