11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
22PROMEKI_NAMESPACE_BEGIN
70class VideoReferenceConfig {
72 PROMEKI_DATATYPE(VideoReferenceConfig, DataTypeVideoReferenceConfig, 1)
81 VideoReferenceConfig();
91 VideoReferenceConfig(VideoReferenceSource source,
92 VideoReferenceRateFamily family = VideoReferenceRateFamily::Auto);
101 bool isValid() const;
104 VideoReferenceSource source() const;
107 VideoReferenceRateFamily family() const;
116 VideoPortRef signalPort() const;
119 void setSource(VideoReferenceSource source);
122 void setFamily(VideoReferenceRateFamily family);
125 void setSignalPort(VideoPortRef signalPort);
132 String toString() const;
144 static Result<VideoReferenceConfig> fromString(const String &s);
147 bool operator==(const VideoReferenceConfig &other) const;
150 bool operator!=(const VideoReferenceConfig &other)
const {
return !(*
this == other); }
156 Error writeToStream(DataStream &s)
const;
162 template <u
int32_t V>
static Result<VideoReferenceConfig> readFromStream(DataStream &s);
169 PROMEKI_SHARED_FINAL(Impl)
171 VideoReferenceSource source = VideoReferenceSource::FreeRun;
172 VideoReferenceRateFamily family = VideoReferenceRateFamily::Auto;
173 VideoPortRef signalPort;