libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
enums_tpg.h
Go to the documentation of this file.
1
10#pragma once
11
12
13#include <promeki/config.h>
14#if PROMEKI_ENABLE_CORE
15#include <promeki/namespace.h>
16#include <promeki/enum.h>
17
18PROMEKI_NAMESPACE_BEGIN
19
48class VideoPattern : public TypedEnum<VideoPattern> {
49 public:
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"},
54 {"Grid", 3, "Grid"},
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)"}); // default: ColorBars
71
72 using TypedEnum<VideoPattern>::TypedEnum;
73
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;
94};
95
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};
116
124class BurnPosition : public TypedEnum<BurnPosition> {
125 public:
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"}); // default: BottomCenter
134
135 using TypedEnum<BurnPosition>::TypedEnum;
136
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;
144};
145
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};
153
244class AudioPattern : public TypedEnum<AudioPattern> {
245 public:
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"}); // default: Tone
265
266 using TypedEnum<AudioPattern>::TypedEnum;
267
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;
286};
287
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};
306
309PROMEKI_NAMESPACE_END
310
311#endif // PROMEKI_ENABLE_CORE