11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
24PROMEKI_NAMESPACE_BEGIN
82class SdiOutputFanoutConfig {
84 PROMEKI_DATATYPE(SdiOutputFanoutConfig, DataTypeSdiOutputFanoutConfig, 1)
87 using PortList = ::promeki::List<VideoPortRef>;
89 using GroupList = ::promeki::List<PortList>;
96 SdiOutputFanoutConfig();
102 SdiOutputFanoutConfig(SdiLinkStandard standard, GroupList groups);
105 SdiLinkStandard standard() const;
114 const GroupList &groups() const;
122 int groupCount() const;
125 void setStandard(SdiLinkStandard standard);
128 void setGroups(GroupList groups);
131 void appendGroup(PortList group);
143 SdiSignalConfig primary() const;
164 static SdiOutputFanoutConfig fromSignal(const SdiSignalConfig &sig);
174 ::promeki::List<SdiSignalConfig> asSignalConfigs() const;
184 bool isValid() const;
192 String toString() const;
205 static Result<SdiOutputFanoutConfig> fromString(const String &s);
208 bool operator==(const SdiOutputFanoutConfig &other) const;
211 bool operator!=(const SdiOutputFanoutConfig &other)
const {
return !(*
this == other); }
217 Error writeToStream(DataStream &s)
const;
223 template <u
int32_t V>
static Result<SdiOutputFanoutConfig> readFromStream(DataStream &s);
230 PROMEKI_SHARED_FINAL(Impl)
232 SdiLinkStandard standard = SdiLinkStandard::Auto;