libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
sdioutputfanoutconfig.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
13
14#include <promeki/datatype.h>
15#include <promeki/error.h>
16#include <promeki/list.h>
17#include <promeki/namespace.h>
18#include <promeki/result.h>
20#include <promeki/sharedptr.h>
21#include <promeki/string.h>
23
24PROMEKI_NAMESPACE_BEGIN
25
26class DataStream;
27
82class SdiOutputFanoutConfig {
83 public:
84 PROMEKI_DATATYPE(SdiOutputFanoutConfig, DataTypeSdiOutputFanoutConfig, 1)
85
86
87 using PortList = ::promeki::List<VideoPortRef>;
89 using GroupList = ::promeki::List<PortList>;
90
96 SdiOutputFanoutConfig();
97
102 SdiOutputFanoutConfig(SdiLinkStandard standard, GroupList groups);
103
105 SdiLinkStandard standard() const;
106
114 const GroupList &groups() const;
115
122 int groupCount() const;
123
125 void setStandard(SdiLinkStandard standard);
126
128 void setGroups(GroupList groups);
129
131 void appendGroup(PortList group);
132
143 SdiSignalConfig primary() const;
144
164 static SdiOutputFanoutConfig fromSignal(const SdiSignalConfig &sig);
165
174 ::promeki::List<SdiSignalConfig> asSignalConfigs() const;
175
184 bool isValid() const;
185
192 String toString() const;
193
205 static Result<SdiOutputFanoutConfig> fromString(const String &s);
206
208 bool operator==(const SdiOutputFanoutConfig &other) const;
209
211 bool operator!=(const SdiOutputFanoutConfig &other) const { return !(*this == other); }
212
217 Error writeToStream(DataStream &s) const;
218
223 template <uint32_t V> static Result<SdiOutputFanoutConfig> readFromStream(DataStream &s);
224
229 struct Impl {
230 PROMEKI_SHARED_FINAL(Impl)
231
232 SdiLinkStandard standard = SdiLinkStandard::Auto;
233 GroupList groups;
234 };
235
236 private:
237 SharedPtr<Impl> _d;
238};
239
240PROMEKI_NAMESPACE_END
241
242#endif // PROMEKI_ENABLE_CORE