IDS peak AFL v2.0.2
Loading...
Searching...
No Matches
peak_afl_auto_tolerance.hpp
Go to the documentation of this file.
1
10
11#pragma once
12
13#include <peak_afl/peak_afl.hpp>
15
18
19#include <memory>
20
21namespace peak
22{
23namespace pipeline
24{
25namespace modules
26{
27namespace autofeature
28{
29namespace features
30{
60class AutoTolerance : public IRangeFeature<uint32_t>
61{
62public:
75 explicit AutoTolerance(std::shared_ptr<peak::afl::Controller> controller)
76 : m_controller{ std::move(controller) }
77 {}
78
101 void Set(const uint32_t& value) override
102 {
103 m_controller->SetAutoTolerance(value);
104 }
105
122 PEAK_COMMON_NO_DISCARD uint32_t Get() const override
123 {
124 return m_controller->GetAutoTolerance();
125 }
126
147 PEAK_COMMON_NO_DISCARD peak::common::RangeU GetRange() const override
148 {
149 const auto result = m_controller->GetAutoToleranceRange();
150 return { result.min, result.max, result.inc };
151 }
152
168 {
169 archive.SetInt("AutoTolerance", Get());
170 }
171
188 {
189 Set(static_cast<uint32_t>(archive.GetInt("AutoTolerance")));
190 }
191
192private:
200 std::shared_ptr<peak::afl::Controller> m_controller;
201};
202} // namespace features
203} // namespace autofeature
204} // namespace modules
205} // namespace pipeline
206} // namespace peak
Interface for a hierarchical key-value archive system.
Definition peak_common_iarchive.hpp:59
virtual void SetInt(const std::string &key, int64_t value)=0
Stores a 64-bit signed integer.
virtual int64_t GetInt(const std::string &key) const =0
Retrieves a 64-bit signed integer by key.
AutoTolerance(std::shared_ptr< peak::afl::Controller > controller)
Constructs an AutoTolerance feature with the specified controller.
Definition peak_afl_auto_tolerance.hpp:75
void Set(const uint32_t &value) override
Sets the auto tolerance value.
Definition peak_afl_auto_tolerance.hpp:101
uint32_t Get() const override
Gets the current auto tolerance value.
Definition peak_afl_auto_tolerance.hpp:122
void Serialize(peak::common::serialization::IArchive &archive) const override
Serializes the current auto tolerance value to an archive.
Definition peak_afl_auto_tolerance.hpp:167
peak::common::RangeU GetRange() const override
Gets the valid range for auto tolerance values.
Definition peak_afl_auto_tolerance.hpp:147
void Deserialize(const peak::common::serialization::IArchive &archive) override
Deserializes the auto tolerance value from an archive.
Definition peak_afl_auto_tolerance.hpp:187
Interface for features that have a valid range of values.
Definition peak_afl_ifeature.hpp:126
detail::RangeT< uint32_t > RangeU
Alias for a range of 32-bit unsigned integers.
Definition peak_common_range.hpp:172
Interface definitions and implementations for individual module types used within a pipeline.
Definition peak_afl_generic_auto_brightness.hpp:39
Interfaces and implementations for defining and controlling data processing pipelines.
Definition peak_afl_generic_auto_brightness.hpp:37