libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
enums_network.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
43class NetworkInterfaceKind : public TypedEnum<NetworkInterfaceKind> {
44 public:
45 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("NetworkInterfaceKind", "Network Interface Kind", 0,
46 {"Unknown", 0, "Unknown"},
47 {"Ethernet", 1, "Ethernet (IEEE 802.3)"},
48 {"Wifi", 2, "Wi-Fi (802.11)"}, {"Loopback", 3, "Loopback"},
49 {"Tunnel", 4, "Tunnel"}, {"Bridge", 5, "Software Bridge"},
50 {"Vlan", 6, "VLAN (802.1Q)"}, {"Virtual", 7, "Virtual"},
51 {"Cellular", 8, "Cellular (LTE / 5G)"},
52 {"PointToPoint", 9, "Point-to-Point"}); // default: Unknown
53
54 using TypedEnum<NetworkInterfaceKind>::TypedEnum;
55
56 static const NetworkInterfaceKind Unknown;
57 static const NetworkInterfaceKind Ethernet;
58 static const NetworkInterfaceKind Wifi;
59 static const NetworkInterfaceKind Loopback;
60 static const NetworkInterfaceKind Tunnel;
61 static const NetworkInterfaceKind Bridge;
62 static const NetworkInterfaceKind Vlan;
63 static const NetworkInterfaceKind Virtual;
64 static const NetworkInterfaceKind Cellular;
65 static const NetworkInterfaceKind PointToPoint;
66};
67
68inline const NetworkInterfaceKind NetworkInterfaceKind::Unknown{0};
69inline const NetworkInterfaceKind NetworkInterfaceKind::Ethernet{1};
70inline const NetworkInterfaceKind NetworkInterfaceKind::Wifi{2};
71inline const NetworkInterfaceKind NetworkInterfaceKind::Loopback{3};
72inline const NetworkInterfaceKind NetworkInterfaceKind::Tunnel{4};
73inline const NetworkInterfaceKind NetworkInterfaceKind::Bridge{5};
74inline const NetworkInterfaceKind NetworkInterfaceKind::Vlan{6};
75inline const NetworkInterfaceKind NetworkInterfaceKind::Virtual{7};
76inline const NetworkInterfaceKind NetworkInterfaceKind::Cellular{8};
77inline const NetworkInterfaceKind NetworkInterfaceKind::PointToPoint{9};
78
89class EUI64Format : public TypedEnum<EUI64Format> {
90 public:
91 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("EUI64Format", "EUI-64 Format", 0,
92 {"OctetHyphen", 0, "Hyphen-Separated Octets"},
93 {"OctetColon", 1, "Colon-Separated Octets"},
94 {"IPv6", 2, "IPv6 Identifier Groups"}); // default: OctetHyphen
95
96 using TypedEnum<EUI64Format>::TypedEnum;
97
98 static const EUI64Format OctetHyphen;
99 static const EUI64Format OctetColon;
100 static const EUI64Format IPv6;
101};
102
103inline const EUI64Format EUI64Format::OctetHyphen{0};
104inline const EUI64Format EUI64Format::OctetColon{1};
105inline const EUI64Format EUI64Format::IPv6{2};
106
112class V4l2PowerLineMode : public TypedEnum<V4l2PowerLineMode> {
113 public:
114 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("V4l2PowerLineMode", "V4L2 Power Line Frequency", 3,
115 {"Disabled", 0, "Disabled"}, {"50Hz", 1, "50 Hz"},
116 {"60Hz", 2, "60 Hz"}, {"Auto", 3, "Automatic"}); // default: Auto
117
118 using TypedEnum<V4l2PowerLineMode>::TypedEnum;
119
120 static const V4l2PowerLineMode Disabled;
121 static const V4l2PowerLineMode Hz50;
122 static const V4l2PowerLineMode Hz60;
123 static const V4l2PowerLineMode Auto;
124};
125
126inline const V4l2PowerLineMode V4l2PowerLineMode::Disabled{0};
127inline const V4l2PowerLineMode V4l2PowerLineMode::Hz50{1};
128inline const V4l2PowerLineMode V4l2PowerLineMode::Hz60{2};
129inline const V4l2PowerLineMode V4l2PowerLineMode::Auto{3};
130
136class V4l2ExposureMode : public TypedEnum<V4l2ExposureMode> {
137 public:
138 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("V4l2ExposureMode", "V4L2 Exposure Mode", 3,
139 {"Auto", 0, "Automatic"}, {"Manual", 1, "Manual"},
140 {"ShutterPriority", 2, "Shutter Priority"},
141 {"AperturePriority", 3, "Aperture Priority"}); // default: AperturePriority
142
143 using TypedEnum<V4l2ExposureMode>::TypedEnum;
144
145 static const V4l2ExposureMode Auto;
146 static const V4l2ExposureMode Manual;
147 static const V4l2ExposureMode ShutterPriority;
148 static const V4l2ExposureMode AperturePriority;
149};
150
151inline const V4l2ExposureMode V4l2ExposureMode::Auto{0};
152inline const V4l2ExposureMode V4l2ExposureMode::Manual{1};
153inline const V4l2ExposureMode V4l2ExposureMode::ShutterPriority{2};
154inline const V4l2ExposureMode V4l2ExposureMode::AperturePriority{3};
155
158PROMEKI_NAMESPACE_END
159
160#endif // PROMEKI_ENABLE_CORE