Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
BrightnessContrastControlXform.h
1#pragma once
2
3#include "Module.h"
4#include "declarative/PropertyMacros.h"
5
7{
8public:
9 BrightnessContrastControlProps(double _contrast, double _brightness) : contrast(_contrast), brightness(_brightness)
10 {
11 }
12
16
17 double contrast;
18 double brightness;
19
21 {
22 return ModuleProps::getSerializeSize() + sizeof(contrast) + sizeof(brightness);
23 }
24
25 // ============================================================
26 // Property Binding for Declarative Pipeline
27 // ============================================================
28 template<typename PropsT>
29 static void applyProperties(
30 PropsT& props,
31 const std::map<std::string, apra::ScalarPropertyValue>& values,
32 std::vector<std::string>& missingRequired
33 ) {
34 apra::applyProp(props.contrast, "contrast", values, false, missingRequired);
35 apra::applyProp(props.brightness, "brightness", values, false, missingRequired);
36 }
37
38 apra::ScalarPropertyValue getProperty(const std::string& propName) const {
39 if (propName == "contrast") return contrast;
40 if (propName == "brightness") return brightness;
41 throw std::runtime_error("Unknown property: " + propName);
42 }
43
44 bool setProperty(const std::string& propName, const apra::ScalarPropertyValue& value) {
45 if (propName == "contrast") { contrast = std::get<double>(value); return true; }
46 if (propName == "brightness") { brightness = std::get<double>(value); return true; }
47 throw std::runtime_error("Unknown property: " + propName);
48 }
49
50 static std::vector<std::string> dynamicPropertyNames() {
51 return {"contrast", "brightness"};
52 }
53
54private:
56
57 template <class Archive>
58 void serialize(Archive &ar, const unsigned int version)
59 {
60 ar &boost::serialization::base_object<ModuleProps>(*this);
62 }
63};
64
66{
67
68public:
71 bool init();
72 bool term();
75
76protected:
77 bool process(frame_container &frames);
78 bool processSOS(frame_sp &frame);
79 bool validateInputPins();
80 bool validateOutputPins();
81 void addInputPin(framemetadata_sp &metadata, string &pinId);
82 bool handlePropsChange(frame_sp &frame);
83
84private:
85 void setMetadata(framemetadata_sp &metadata);
86 class Detail;
87 boost::shared_ptr<Detail> mDetail;
88};
Definition BrightnessContrastControlXform.h:7
size_t getSerializeSize()
Definition BrightnessContrastControlXform.h:20
bool setProperty(const std::string &propName, const apra::ScalarPropertyValue &value)
Definition BrightnessContrastControlXform.h:44
apra::ScalarPropertyValue getProperty(const std::string &propName) const
Definition BrightnessContrastControlXform.h:38
BrightnessContrastControlProps(double _contrast, double _brightness)
Definition BrightnessContrastControlXform.h:9
static void applyProperties(PropsT &props, const std::map< std::string, apra::ScalarPropertyValue > &values, std::vector< std::string > &missingRequired)
Definition BrightnessContrastControlXform.h:29
double brightness
Definition BrightnessContrastControlXform.h:18
double contrast
Definition BrightnessContrastControlXform.h:17
BrightnessContrastControlProps()
Definition BrightnessContrastControlXform.h:13
friend class boost::serialization::access
Definition BrightnessContrastControlXform.h:55
static std::vector< std::string > dynamicPropertyNames()
Definition BrightnessContrastControlXform.h:50
void serialize(Archive &ar, const unsigned int version)
Definition BrightnessContrastControlXform.h:58
Definition BrightnessContrastControlXform.cpp:12
Definition BrightnessContrastControlXform.h:66
virtual ~BrightnessContrastControl()
Definition BrightnessContrastControlXform.cpp:44
boost::shared_ptr< Detail > mDetail
Definition BrightnessContrastControlXform.h:87
bool term()
Definition BrightnessContrastControlXform.cpp:105
void setProps(BrightnessContrastControlProps &props)
Definition BrightnessContrastControlXform.cpp:174
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition BrightnessContrastControlXform.cpp:92
bool init()
Definition BrightnessContrastControlXform.cpp:100
bool validateInputPins()
Definition BrightnessContrastControlXform.cpp:46
void setMetadata(framemetadata_sp &metadata)
Definition BrightnessContrastControlXform.cpp:124
bool process(frame_container &frames)
Definition BrightnessContrastControlXform.cpp:110
bool handlePropsChange(frame_sp &frame)
Definition BrightnessContrastControlXform.cpp:166
bool processSOS(frame_sp &frame)
Definition BrightnessContrastControlXform.cpp:153
BrightnessContrastControlProps getProps()
Definition BrightnessContrastControlXform.cpp:160
bool validateOutputPins()
Definition BrightnessContrastControlXform.cpp:73
BrightnessContrastControl(BrightnessContrastControlProps _props)
Definition BrightnessContrastControlXform.cpp:39
Definition Module.h:33
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Module.h:151
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