IDS peak AFL v2.1.0
Loading...
Searching...
No Matches
peak_afl_advanced_auto_features.hpp
Go to the documentation of this file.
1
6
7#pragma once
8
10
13
14namespace peak
15{
16namespace pipeline
17{
18namespace modules
19{
61{
62public:
81 explicit AdvancedAutoFeatures(const std::shared_ptr<peak::core::Device>& device)
82 : m_genericModule{ device }
83 {}
84
104 {
105 m_genericModule.Serialize(archive);
106 }
107
128 {
129 m_genericModule.Deserialize(archive);
130 }
131
141 PEAK_COMMON_NO_DISCARD const char* GetType() const override
142 {
143 return "AdvancedAutoFeatures";
144 }
145
166 PEAK_COMMON_NO_DISCARD peak::common::Any Process(const peak::common::Any& input) const override
167 {
168 return m_genericModule.Process(input);
169 }
170
187 void ResetToDefault() override
188 {
189 m_genericModule.ResetToDefault();
190 }
191
207 void SetGainModule(std::shared_ptr<peak::pipeline::modules::IGain> gainModule) override
208 {
209 m_genericModule.SetGainModule(gainModule);
210 }
211
231 void SetColorCorrectionMatrix(const std::array<float, 9>& ccm) override
232 {
233 m_genericModule.SetColorCorrectionMatrix(ccm);
234 }
235
252 void SetEnabled(const bool enabled) override
253 {
254 m_genericModule.SetEnabled(enabled);
255 }
256
268 PEAK_COMMON_NO_DISCARD bool IsEnabled() const override
269 {
270 return m_genericModule.IsEnabled();
271 }
272
293 {
294 auto* controller = m_genericModule.GetController(autofeature::ControllerType::Brightness);
295 if (controller != nullptr)
296 {
297 return *static_cast<autofeature::AdvancedAutoBrightness*>(controller);
298 }
300 "Brightness controller is not supported for the current device!", PEAK_AFL_STATUS_NOT_SUPPORTED);
301 }
302
314 PEAK_COMMON_NO_DISCARD bool HasAutoBrightness() const
315 {
316 return m_genericModule.HasController(autofeature::ControllerType::Brightness);
317 }
318
338 PEAK_COMMON_NO_DISCARD autofeature::AdvancedAutoFocus& AutoFocus() const
339 {
340 auto* controller = m_genericModule.GetController(autofeature::ControllerType::Focus);
341 if (controller != nullptr)
342 {
343 return *static_cast<autofeature::AdvancedAutoFocus*>(controller);
344 }
345
347 "Focus controller is not supported for the current device!", PEAK_AFL_STATUS_NOT_SUPPORTED);
348 }
349
361 PEAK_COMMON_NO_DISCARD bool HasAutoFocus() const
362 {
363 return m_genericModule.HasController(autofeature::ControllerType::Focus);
364 }
365
386 {
387 auto* controller = m_genericModule.GetController(autofeature::ControllerType::WhiteBalance);
388 if (controller != nullptr)
389 {
390 return *static_cast<autofeature::AdvancedAutoWhiteBalance*>(controller);
391 }
392
394 "White balance controller is not supported for the current device!", PEAK_AFL_STATUS_NOT_SUPPORTED);
395 }
396
408 PEAK_COMMON_NO_DISCARD bool HasAutoWhiteBalance() const
409 {
410 return m_genericModule.HasController(autofeature::ControllerType::WhiteBalance);
411 }
412
413private:
420 detail::GenericAutoFeatures m_genericModule;
421};
422} /* namespace modules */
423} /* namespace pipeline */
424} /* namespace peak */
The exception thrown when a functionality is not supported.
Definition peak_afl.hpp:461
A type-erased container for any copyable value.
Definition peak_common_any.hpp:31
Interface for a hierarchical key-value archive system.
Definition peak_common_iarchive.hpp:54
const char * GetType() const override
Returns the type identifier for this advanced auto features implementation.
Definition peak_afl_advanced_auto_features.hpp:141
void SetEnabled(const bool enabled) override
Sets the enabled state for all advanced auto feature controllers.
Definition peak_afl_advanced_auto_features.hpp:252
autofeature::AdvancedAutoBrightness & AutoBrightness() const
Gets a reference to the advanced brightness controller.
Definition peak_afl_advanced_auto_features.hpp:292
autofeature::AdvancedAutoFocus & AutoFocus() const
Gets a reference to the advanced focus controller.
Definition peak_afl_advanced_auto_features.hpp:338
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:207
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:231
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:103
autofeature::AdvancedAutoWhiteBalance & AutoWhiteBalance() const
Gets a reference to the advanced white balance controller.
Definition peak_afl_advanced_auto_features.hpp:385
bool HasAutoFocus() const
Checks if advanced focus control is available.
Definition peak_afl_advanced_auto_features.hpp:361
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:166
bool HasAutoBrightness() const
Checks if advanced brightness control is available.
Definition peak_afl_advanced_auto_features.hpp:314
void Deserialize(const peak::common::serialization::IArchive &archive) override
Deserializes advanced auto features state from an archive.
Definition peak_afl_advanced_auto_features.hpp:127
AdvancedAutoFeatures(const std::shared_ptr< peak::core::Device > &device)
Constructs an AdvancedAutoFeatures instance with the specified device.
Definition peak_afl_advanced_auto_features.hpp:81
void ResetToDefault() override
Resets all advanced auto feature controllers to their default settings.
Definition peak_afl_advanced_auto_features.hpp:187
bool IsEnabled() const override
Checks if advanced auto features are currently enabled.
Definition peak_afl_advanced_auto_features.hpp:268
bool HasAutoWhiteBalance() const
Checks if advanced white balance control is available.
Definition peak_afl_advanced_auto_features.hpp:408
Interface for modules that provide auto feature functionality.
Definition peak_common_iautofeature_module.hpp:31
Advanced automatic brightness controller with comprehensive feature set.
Definition peak_afl_advanced_auto_brightness.hpp:79
Advanced automatic focus controller with comprehensive feature set.
Definition peak_afl_advanced_auto_focus.hpp:73
Advanced automatic white balance controller with comprehensive feature set.
Definition peak_afl_advanced_auto_white_balance.hpp:53
@ PEAK_AFL_STATUS_NOT_SUPPORTED
Feature or operation not supported.
Definition peak_afl.h:462
@ WhiteBalance
Automatic white balance controller - manages color correction.
Definition peak_afl_icontroller.hpp:42
@ Brightness
Automatic brightness controller - manages exposure and gain.
Definition peak_afl_icontroller.hpp:40
@ Focus
Automatic focus controller - manages lens focus positioning.
Definition peak_afl_icontroller.hpp:38
Interface definitions and implementations for individual module types used within a pipeline.
Definition peak_afl_generic_auto_brightness.hpp:35
Interfaces and implementations for defining and controlling data processing pipelines.
Definition peak_afl_generic_auto_brightness.hpp:33