13#include <promeki/config.h>
14#if PROMEKI_ENABLE_CORE
18PROMEKI_NAMESPACE_BEGIN
37class NdiBandwidth :
public TypedEnum<NdiBandwidth> {
39 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"NdiBandwidth",
"NDI Bandwidth", 0,
40 {
"Highest", 0,
"Highest (Full Quality)"},
41 {
"Lowest", 1,
"Lowest (Preview Quality)"},
42 {
"AudioOnly", 2,
"Audio Only"},
43 {
"MetadataOnly", 3,
"Metadata Only"});
45 using TypedEnum<NdiBandwidth>::TypedEnum;
47 static const NdiBandwidth Highest;
48 static const NdiBandwidth Lowest;
49 static const NdiBandwidth AudioOnly;
50 static const NdiBandwidth MetadataOnly;
53inline const NdiBandwidth NdiBandwidth::Highest{0};
54inline const NdiBandwidth NdiBandwidth::Lowest{1};
55inline const NdiBandwidth NdiBandwidth::AudioOnly{2};
56inline const NdiBandwidth NdiBandwidth::MetadataOnly{3};
82class NdiColorFormat :
public TypedEnum<NdiColorFormat> {
84 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"NdiColorFormat",
"NDI Color Format", 0,
85 {
"Best", 0,
"Best (Native FourCC)"},
86 {
"Fastest", 1,
"Fastest (On-Wire Format)"},
87 {
"UyvyBgra", 2,
"UYVY / BGRA"}, {
"UyvyRgba", 3,
"UYVY / RGBA"},
88 {
"BgrxBgra", 4,
"BGRX / BGRA"},
89 {
"RgbxRgba", 5,
"RGBX / RGBA"});
91 using TypedEnum<NdiColorFormat>::TypedEnum;
93 static const NdiColorFormat Best;
94 static const NdiColorFormat Fastest;
95 static const NdiColorFormat UyvyBgra;
96 static const NdiColorFormat UyvyRgba;
97 static const NdiColorFormat BgrxBgra;
98 static const NdiColorFormat RgbxRgba;
101inline const NdiColorFormat NdiColorFormat::Best{0};
102inline const NdiColorFormat NdiColorFormat::Fastest{1};
103inline const NdiColorFormat NdiColorFormat::UyvyBgra{2};
104inline const NdiColorFormat NdiColorFormat::UyvyRgba{3};
105inline const NdiColorFormat NdiColorFormat::BgrxBgra{4};
106inline const NdiColorFormat NdiColorFormat::RgbxRgba{5};
129class NdiReceiveBitDepth :
public TypedEnum<NdiReceiveBitDepth> {
131 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY(
"NdiReceiveBitDepth",
"NDI Receive Bit Depth", 0,
132 {
"Auto", 0,
"Automatic (16-bit)"}, {
"Bits10", 10,
"10-bit"},
133 {
"Bits12", 12,
"12-bit"}, {
"Bits16", 16,
"16-bit"});
135 using TypedEnum<NdiReceiveBitDepth>::TypedEnum;
137 static const NdiReceiveBitDepth Auto;
138 static const NdiReceiveBitDepth Bits10;
139 static const NdiReceiveBitDepth Bits12;
140 static const NdiReceiveBitDepth Bits16;
143inline const NdiReceiveBitDepth NdiReceiveBitDepth::Auto{0};
144inline const NdiReceiveBitDepth NdiReceiveBitDepth::Bits10{10};
145inline const NdiReceiveBitDepth NdiReceiveBitDepth::Bits12{12};
146inline const NdiReceiveBitDepth NdiReceiveBitDepth::Bits16{16};