libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
hdmisignalconfig.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#include <promeki/datatype.h>
14#include <promeki/enums.h>
15#include <promeki/error.h>
16#include <promeki/namespace.h>
17#include <promeki/result.h>
18#include <promeki/sharedptr.h>
19#include <promeki/string.h>
21
22PROMEKI_NAMESPACE_BEGIN
23
24class DataStream;
25
63class HdmiSignalConfig {
64 public:
65 PROMEKI_DATATYPE(HdmiSignalConfig, DataTypeHdmiSignalConfig, 1)
66
67
68 HdmiSignalConfig();
69
78 HdmiSignalConfig(VideoPortRef port, HdmiSpecVersion versionHint = HdmiSpecVersion::Auto);
79
88 bool isValid() const;
89
91 VideoPortRef port() const;
92
94 HdmiSpecVersion versionHint() const;
95
97 void setPort(VideoPortRef port);
98
100 void setVersionHint(HdmiSpecVersion versionHint);
101
108 String toString() const;
109
120 static Result<HdmiSignalConfig> fromString(const String &s);
121
123 bool operator==(const HdmiSignalConfig &other) const;
124
126 bool operator!=(const HdmiSignalConfig &other) const { return !(*this == other); }
127
132 Error writeToStream(DataStream &s) const;
133
138 template <uint32_t V> static Result<HdmiSignalConfig> readFromStream(DataStream &s);
139
144 struct Impl {
145 PROMEKI_SHARED_FINAL(Impl)
146
147 VideoPortRef port;
148 HdmiSpecVersion versionHint = HdmiSpecVersion::Auto;
149 };
150
151 private:
152 SharedPtr<Impl> _d;
153};
154
155PROMEKI_NAMESPACE_END
156
157#endif // PROMEKI_ENABLE_CORE