5#include "declarative/PropertyMacros.h"
8enum class TestPatternType {
26 TestPatternType
pattern = TestPatternType::GRADIENT;
32 template<
typename PropsT>
35 const std::map<std::string, apra::ScalarPropertyValue>& values,
36 std::vector<std::string>& missingRequired
40 apra::applyProp(props.maxFrames,
"maxFrames", values,
false, missingRequired);
43 auto patternIt = values.find(
"pattern");
44 if (patternIt != values.end()) {
45 if (std::holds_alternative<std::string>(patternIt->second)) {
46 std::string patternStr = std::get<std::string>(patternIt->second);
47 if (patternStr ==
"GRADIENT") props.pattern = TestPatternType::GRADIENT;
48 else if (patternStr ==
"CHECKERBOARD") props.pattern = TestPatternType::CHECKERBOARD;
49 else if (patternStr ==
"COLOR_BARS") props.pattern = TestPatternType::COLOR_BARS;
50 else if (patternStr ==
"GRID") props.pattern = TestPatternType::GRID;
51 }
else if (std::holds_alternative<int64_t>(patternIt->second)) {
52 props.pattern =
static_cast<TestPatternType
>(std::get<int64_t>(patternIt->second));
58 if (propName ==
"width")
return static_cast<int64_t
>(
width);
59 if (propName ==
"height")
return static_cast<int64_t
>(
height);
60 if (propName ==
"maxFrames")
return static_cast<int64_t
>(
maxFrames);
61 if (propName ==
"pattern") {
63 case TestPatternType::GRADIENT:
return std::string(
"GRADIENT");
64 case TestPatternType::CHECKERBOARD:
return std::string(
"CHECKERBOARD");
65 case TestPatternType::COLOR_BARS:
return std::string(
"COLOR_BARS");
66 case TestPatternType::GRID:
return std::string(
"GRID");
69 throw std::runtime_error(
"Unknown property: " + propName);
73 throw std::runtime_error(
"Cannot modify static property '" + propName +
"' after initialization");
83 template <
class Archive>
84 void serialize(Archive &ar,
const unsigned int version)
86 ar &boost::serialization::base_object<ModuleProps>(*
this);
Definition TestSignalGeneratorSrc.h:16
int maxFrames
Definition TestSignalGeneratorSrc.h:27
int width
Definition TestSignalGeneratorSrc.h:24
~TestSignalGeneratorProps()
Definition TestSignalGeneratorSrc.h:22
static std::vector< std::string > dynamicPropertyNames()
Definition TestSignalGeneratorSrc.h:76
apra::ScalarPropertyValue getProperty(const std::string &propName) const
Definition TestSignalGeneratorSrc.h:57
void serialize(Archive &ar, const unsigned int version)
Definition TestSignalGeneratorSrc.h:84
int height
Definition TestSignalGeneratorSrc.h:25
bool setProperty(const std::string &propName, const apra::ScalarPropertyValue &value)
Definition TestSignalGeneratorSrc.h:72
TestPatternType pattern
Definition TestSignalGeneratorSrc.h:26
friend class boost::serialization::access
Definition TestSignalGeneratorSrc.h:81
static void applyProperties(PropsT &props, const std::map< std::string, apra::ScalarPropertyValue > &values, std::vector< std::string > &missingRequired)
Definition TestSignalGeneratorSrc.h:33
TestSignalGeneratorProps(int _width, int _height, TestPatternType _pattern=TestPatternType::GRADIENT, int _maxFrames=0)
Definition TestSignalGeneratorSrc.h:19
TestSignalGeneratorProps()
Definition TestSignalGeneratorSrc.h:18
Definition TestSignalGeneratorSrc.cpp:7
Definition TestSignalGeneratorSrc.h:95
bool produce()
Definition TestSignalGeneratorSrc.cpp:238
boost::shared_ptr< Detail > mDetail
Definition TestSignalGeneratorSrc.h:114
void setProps(TestSignalGeneratorProps &props)
Definition TestSignalGeneratorSrc.cpp:278
std::string mOutputPinId
Definition TestSignalGeneratorSrc.h:117
void setMetadata(framemetadata_sp &metadata)
Definition TestSignalGeneratorSrc.cpp:261
~TestSignalGenerator()
Definition TestSignalGeneratorSrc.cpp:204
bool validateOutputPins()
Definition TestSignalGeneratorSrc.cpp:209
TestSignalGenerator(TestSignalGeneratorProps _props)
Definition TestSignalGeneratorSrc.cpp:196
framemetadata_sp mOutputMetadata
Definition TestSignalGeneratorSrc.h:116
size_t outputFrameSize
Definition TestSignalGeneratorSrc.h:115
bool init()
Definition TestSignalGeneratorSrc.cpp:227
TestSignalGeneratorProps getProps()
Definition TestSignalGeneratorSrc.cpp:283
bool term()
Definition TestSignalGeneratorSrc.cpp:256
bool handlePropsChange(frame_sp &frame)
Definition TestSignalGeneratorSrc.cpp:269
void applyProp(T &member, const char *propName, const std::map< std::string, ScalarPropertyValue > &values, bool isRequired, std::vector< std::string > &missingRequired)
Definition PropertyMacros.h:36
std::variant< int64_t, double, bool, std::string > ScalarPropertyValue
Definition ModuleRegistry.h:30