4#include "declarative/PropertyMacros.h"
9 TextOverlayXFormProps(
double _alpha, std::string _text, std::string _position,
bool _isDateTime,
int _fontSize, std::string _fontColor, std::string _backgroundColor) :
alpha(_alpha),
text(_text),
position(_position),
isDateTime(_isDateTime),
fontSize(_fontSize),
fontColor(_fontColor),
backgroundColor(_backgroundColor)
30 template<
typename PropsT>
33 const std::map<std::string, apra::ScalarPropertyValue>& values,
34 std::vector<std::string>& missingRequired
37 apra::applyProp(props.position,
"position", values,
false, missingRequired);
38 apra::applyProp(props.fontColor,
"fontColor", values,
false, missingRequired);
39 apra::applyProp(props.backgroundColor,
"backgroundColor", values,
false, missingRequired);
41 apra::applyProp(props.isDateTime,
"isDateTime", values,
false, missingRequired);
42 apra::applyProp(props.fontSize,
"fontSize", values,
false, missingRequired);
46 if (propName ==
"text")
return text;
47 if (propName ==
"position")
return position;
48 if (propName ==
"fontColor")
return fontColor;
50 if (propName ==
"alpha")
return alpha;
51 if (propName ==
"isDateTime")
return isDateTime;
52 if (propName ==
"fontSize")
return static_cast<int64_t
>(
fontSize);
53 throw std::runtime_error(
"Unknown property: " + propName);
57 if (propName ==
"text") {
text = std::get<std::string>(value);
return true; }
58 if (propName ==
"position") {
position = std::get<std::string>(value);
return true; }
59 if (propName ==
"fontColor") {
fontColor = std::get<std::string>(value);
return true; }
60 if (propName ==
"backgroundColor") {
backgroundColor = std::get<std::string>(value);
return true; }
61 if (propName ==
"alpha") {
alpha = std::get<double>(value);
return true; }
62 if (propName ==
"isDateTime") {
isDateTime = std::get<bool>(value);
return true; }
63 if (propName ==
"fontSize") {
fontSize =
static_cast<int>(std::get<int64_t>(value));
return true; }
64 throw std::runtime_error(
"Unknown property: " + propName);
68 return {
"text",
"position",
"fontColor",
"backgroundColor",
"alpha",
"isDateTime",
"fontSize"};
74 template <
class Archive>
75 void serialize(Archive &ar,
const unsigned int version)
77 ar &boost::serialization::base_object<ModuleProps>(*
this);
94 bool process(frame_container &frames);
98 void addInputPin(framemetadata_sp &metadata,
string &pinId);
virtual size_t getSerializeSize()
Definition Module.h:101
Definition TextOverlayXForm.h:7
std::string fontColor
Definition TextOverlayXForm.h:17
bool isDateTime
Definition TextOverlayXForm.h:19
std::string text
Definition TextOverlayXForm.h:17
size_t getSerializeSize()
Definition TextOverlayXForm.h:22
double alpha
Definition TextOverlayXForm.h:18
static std::vector< std::string > dynamicPropertyNames()
Definition TextOverlayXForm.h:67
std::string position
Definition TextOverlayXForm.h:17
static void applyProperties(PropsT &props, const std::map< std::string, apra::ScalarPropertyValue > &values, std::vector< std::string > &missingRequired)
Definition TextOverlayXForm.h:31
TextOverlayXFormProps()
Definition TextOverlayXForm.h:13
void serialize(Archive &ar, const unsigned int version)
Definition TextOverlayXForm.h:75
TextOverlayXFormProps(double _alpha, std::string _text, std::string _position, bool _isDateTime, int _fontSize, std::string _fontColor, std::string _backgroundColor)
Definition TextOverlayXForm.h:9
friend class boost::serialization::access
Definition TextOverlayXForm.h:72
int fontSize
Definition TextOverlayXForm.h:20
std::string backgroundColor
Definition TextOverlayXForm.h:17
bool setProperty(const std::string &propName, const apra::ScalarPropertyValue &value)
Definition TextOverlayXForm.h:56
apra::ScalarPropertyValue getProperty(const std::string &propName) const
Definition TextOverlayXForm.h:45
Definition TextOverlayXForm.cpp:15
Definition TextOverlayXForm.h:83
void setMetadata(framemetadata_sp &metadata)
Definition TextOverlayXForm.cpp:192
bool process(frame_container &frames)
Definition TextOverlayXForm.cpp:106
bool processSOS(frame_sp &frame)
Definition TextOverlayXForm.cpp:238
bool term()
Definition TextOverlayXForm.cpp:101
bool validateOutputPins()
Definition TextOverlayXForm.cpp:69
TextOverlayXForm(TextOverlayXFormProps _props)
Definition TextOverlayXForm.cpp:43
TextOverlayXFormProps getProps()
Definition TextOverlayXForm.cpp:220
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition TextOverlayXForm.cpp:88
virtual ~TextOverlayXForm()
Definition TextOverlayXForm.cpp:48
bool validateInputPins()
Definition TextOverlayXForm.cpp:50
bool init()
Definition TextOverlayXForm.cpp:96
void setProps(TextOverlayXFormProps &props)
Definition TextOverlayXForm.cpp:225
bool handlePropsChange(frame_sp &frame)
Definition TextOverlayXForm.cpp:230
boost::shared_ptr< Detail > mDetail
Definition TextOverlayXForm.h:104
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