IDS peak AFL v2.0.2
Loading...
Searching...
No Matches
peak_afl_advanced_auto_features.hpp
Go to the documentation of this file.
1
10
11#pragma once
12
14
17
18namespace peak
19{
20namespace pipeline
21{
22namespace modules
23{
65{
66public:
85 explicit AdvancedAutoFeatures(const std::shared_ptr<peak::core::Device>& device)
86 : m_genericModule{ device }
87 {}
88
108 {
109 m_genericModule.Serialize(archive);
110 }
111
132 {
133 m_genericModule.Deserialize(archive);
134 }
135
145 PEAK_COMMON_NO_DISCARD const char* GetType() const override
146 {
147 return "AdvancedAutoFeatures";
148 }
149
170 PEAK_COMMON_NO_DISCARD peak::common::Any Process(const peak::common::Any& input) const override
171 {
172 return m_genericModule.Process(input);
173 }
174
191 void ResetToDefault() override
192 {
193 m_genericModule.ResetToDefault();
194 }
195
211 void SetGainModule(std::shared_ptr<peak::pipeline::modules::IGain> gainModule) override
212 {
213 m_genericModule.SetGainModule(gainModule);
214 }
215
235 void SetColorCorrectionMatrix(const std::array<float, 9>& ccm) override
236 {
237 m_genericModule.SetColorCorrectionMatrix(ccm);
238 }
239
256 void SetEnabled(const bool enabled) override
257 {
258 m_genericModule.SetEnabled(enabled);
259 }
260
272 PEAK_COMMON_NO_DISCARD bool IsEnabled() const override
273 {
274 return m_genericModule.IsEnabled();
275 }
276
297 {
298 auto* controller = m_genericModule.GetController(autofeature::ControllerType::Brightness);
299 if (controller != nullptr)
300 {
301 return *static_cast<autofeature::AdvancedAutoBrightness*>(controller);
302 }
304 "Brightness controller is not supported for the current device!", PEAK_AFL_STATUS_NOT_SUPPORTED);
305 }
306
318 PEAK_COMMON_NO_DISCARD bool HasAutoBrightness() const
319 {
320 return m_genericModule.HasController(autofeature::ControllerType::Brightness);
321 }
322
342 PEAK_COMMON_NO_DISCARD autofeature::AdvancedAutoFocus& AutoFocus() const
343 {
344 auto* controller = m_genericModule.GetController(autofeature::ControllerType::Focus);
345 if (controller != nullptr)
346 {
347 return *static_cast<autofeature::AdvancedAutoFocus*>(controller);
348 }
349
351 "Focus controller is not supported for the current device!", PEAK_AFL_STATUS_NOT_SUPPORTED);
352 }
353
365 PEAK_COMMON_NO_DISCARD bool HasAutoFocus() const
366 {
367 return m_genericModule.HasController(autofeature::ControllerType::Focus);
368 }
369
390 {
391 auto* controller = m_genericModule.GetController(autofeature::ControllerType::WhiteBalance);
392 if (controller != nullptr)
393 {
394 return *static_cast<autofeature::AdvancedAutoWhiteBalance*>(controller);
395 }
396
398 "White balance controller is not supported for the current device!", PEAK_AFL_STATUS_NOT_SUPPORTED);
399 }
400
412 PEAK_COMMON_NO_DISCARD bool HasAutoWhiteBalance() const
413 {
414 return m_genericModule.HasController(autofeature::ControllerType::WhiteBalance);
415 }
416
417private:
424 detail::GenericAutoFeatures m_genericModule;
425};
426} /* namespace modules */
427} /* namespace pipeline */
428} /* namespace peak */
The exception thrown when a functionality is not supported.
Definition peak_afl.hpp:416
A type-erased container for any copyable value.
Definition peak_common_any.hpp:36
Interface for a hierarchical key-value archive system.
Definition peak_common_iarchive.hpp:59
const char * GetType() const override
Returns the type identifier for this advanced auto features implementation.
Definition peak_afl_advanced_auto_features.hpp:145
void SetEnabled(const bool enabled) override
Sets the enabled state for all advanced auto feature controllers.
Definition peak_afl_advanced_auto_features.hpp:256
autofeature::AdvancedAutoBrightness & AutoBrightness() const
Gets a reference to the advanced brightness controller.
Definition peak_afl_advanced_auto_features.hpp:296
autofeature::AdvancedAutoFocus & AutoFocus() const
Gets a reference to the advanced focus controller.
Definition peak_afl_advanced_auto_features.hpp:342
void SetGainModule(std::shared_ptr< peak::pipeline::modules::IGain > gainModule) override
Sets the gain module for use when host gains are applied.
Definition peak_afl_advanced_auto_features.hpp:211
void SetColorCorrectionMatrix(const std::array< float, 9 > &ccm) override
Sets the color correction matrix for advanced image processing.
Definition peak_afl_advanced_auto_features.hpp:235
void Serialize(peak::common::serialization::IArchive &archive) const override
Serializes the current state of all advanced auto features to an archive.
Definition peak_afl_advanced_auto_features.hpp:107
autofeature::AdvancedAutoWhiteBalance & AutoWhiteBalance() const
Gets a reference to the advanced white balance controller.
Definition peak_afl_advanced_auto_features.hpp:389
bool HasAutoFocus() const
Checks if advanced focus control is available.
Definition peak_afl_advanced_auto_features.hpp:365
peak::common::Any Process(const peak::common::Any &input) const override
Processes input data through all enabled advanced auto feature controllers.
Definition peak_afl_advanced_auto_features.hpp:170
bool HasAutoBrightness() const
Checks if advanced brightness control is available.
Definition peak_afl_advanced_auto_features.hpp:318
void Deserialize(const peak::common::serialization::IArchive &archive) override
Deserializes advanced auto features state from an archive.
Definition peak_afl_advanced_auto_features.hpp:131
AdvancedAutoFeatures(const std::shared_ptr< peak::core::Device > &device)
Constructs an AdvancedAutoFeatures instance with the specified device.
Definition peak_afl_advanced_auto_features.hpp:85
void ResetToDefault() override
Resets all advanced auto feature controllers to their default settings.
Definition peak_afl_advanced_auto_features.hpp:191
bool IsEnabled() const override
Checks if advanced auto features are currently enabled.
Definition peak_afl_advanced_auto_features.hpp:272
bool HasAutoWhiteBalance() const
Checks if advanced white balance control is available.
Definition peak_afl_advanced_auto_features.hpp:412
Interface for modules that provide auto feature functionality.
Definition peak_common_iautofeature_module.hpp:36
Advanced automatic brightness controller with comprehensive feature set.
Definition peak_afl_advanced_auto_brightness.hpp:83
Advanced automatic focus controller with comprehensive feature set.
Definition peak_afl_advanced_auto_focus.hpp:77
Advanced automatic white balance controller with comprehensive feature set.
Definition peak_afl_advanced_auto_white_balance.hpp:57
@ PEAK_AFL_STATUS_NOT_SUPPORTED
Feature or operation not supported.
Definition peak_afl.h:465
@ WhiteBalance
Automatic white balance controller - manages color correction.
Definition peak_afl_icontroller.hpp:46
@ Brightness
Automatic brightness controller - manages exposure and gain.
Definition peak_afl_icontroller.hpp:44
@ Focus
Automatic focus controller - manages lens focus positioning.
Definition peak_afl_icontroller.hpp:42
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