80 using ProcessingCallback = std::function<void()>;
83 friend BrightnessComponent;
102 : IController(manager)
103 , m_genericController{ manager, std::move(callback),
124 PEAK_COMMON_NO_DISCARD std::string
GetName()
const override
126 return "AdvancedAutoBrightness";
150 m_genericController.Serialize(archive);
170 m_genericController.Deserialize(archive);
184 return m_genericController.GetType();
200 m_genericController.SetMode(mode);
216 return m_genericController.GetMode();
232 return m_genericController.IsRunning();
329 return m_genericController.
Roi();
348 return m_genericController.AnalysisAlgorithm();
367 PEAK_COMMON_NO_DISCARD BrightnessComponent&
Exposure()
const
369 return m_genericController.ExposureComponent();
385 return m_genericController.HasExposureComponent();
406 PEAK_COMMON_NO_DISCARD BrightnessComponent&
AnalogGain()
const
408 return m_genericController.AnalogGainComponent();
424 return m_genericController.HasAnalogGainComponent();
447 return m_genericController.DigitalGainComponent();
463 return m_genericController.HasDigitalGainComponent();
486 return m_genericController.CombinedGainComponent();
502 return m_genericController.HasCombinedGainComponent();
523 PEAK_COMMON_NO_DISCARD BrightnessComponent&
HostGain()
const
525 return m_genericController.HostGainComponent();
541 return m_genericController.HasHostGainComponent();
560 PEAK_COMMON_NO_DISCARD std::vector<BrightnessComponent*>
GetComponents()
const
562 return m_genericController.GetComponents();
582 return m_genericController.GetComponent(componentType);
605 m_genericController.ResetToDefault();
626 return m_genericController.RegisterFinishedCallback(callback);
643 m_genericController.UnregisterFinishedCallback(callbackHandle);
647 detail::GenericAutoBrightness m_genericController;
Central coordination object for automatic camera feature control.
Definition peak_afl.hpp:708
Interface for a hierarchical key-value archive system.
Definition peak_common_iarchive.hpp:54
features::BrightnessAlgorithm & AnalysisAlgorithm()
Gets access to the brightness algorithm feature for algorithm selection.
Definition peak_afl_advanced_auto_brightness.hpp:346
void UnregisterFinishedCallback(IController::FinishedCallbackHandle callbackHandle)
Unregisters a previously registered completion callback.
Definition peak_afl_advanced_auto_brightness.hpp:641
features::AutoTolerance & AutoTolerance()
Gets access to the auto tolerance feature for brightness stability control.
Definition peak_afl_advanced_auto_brightness.hpp:290
features::AutoTarget & AutoTarget()
Gets access to the auto target feature for brightness target configuration.
Definition peak_afl_advanced_auto_brightness.hpp:270
BrightnessComponent & DigitalGain() const
Gets access to the digital gain component for post-processing gain control.
Definition peak_afl_advanced_auto_brightness.hpp:445
~AdvancedAutoBrightness() override=default
Destructor for AdvancedAutoBrightness.
ControllerMode GetMode() const override
Gets the current operation mode of the brightness controller.
Definition peak_afl_advanced_auto_brightness.hpp:214
BrightnessComponent * GetComponent(BrightnessComponentType componentType) const
Gets a specific brightness component by type.
Definition peak_afl_advanced_auto_brightness.hpp:580
features::AutoPercentile & AutoPercentile()
Gets access to the auto percentile feature used for automatic brightness adjustment.
Definition peak_afl_advanced_auto_brightness.hpp:309
std::vector< BrightnessComponent * > GetComponents() const
Gets a vector of all available brightness components.
Definition peak_afl_advanced_auto_brightness.hpp:560
std::string GetName() const override
Gets the name identifier for this controller.
Definition peak_afl_advanced_auto_brightness.hpp:124
features::SkipFrames & SkipFrames()
Gets access to the skip frames feature.
Definition peak_afl_advanced_auto_brightness.hpp:250
bool HasDigitalGain() const
Checks if the digital gain component is available on the current device.
Definition peak_afl_advanced_auto_brightness.hpp:461
void Serialize(peak::common::serialization::IArchive &archive) const override
Serializes the current controller state and configuration to an archive.
Definition peak_afl_advanced_auto_brightness.hpp:148
bool HasExposure() const
Checks if the exposure component is available on the current device.
Definition peak_afl_advanced_auto_brightness.hpp:383
bool HasHostGain() const
Checks if the host gain component is available on the current device.
Definition peak_afl_advanced_auto_brightness.hpp:539
BrightnessComponent & AnalogGain() const
Gets access to the analog gain component for sensor-level gain control.
Definition peak_afl_advanced_auto_brightness.hpp:406
IController::FinishedCallbackHandle RegisterFinishedCallback(const IController::FinishedCallback &callback)
Registers a callback function to be invoked when brightness adjustment completes.
Definition peak_afl_advanced_auto_brightness.hpp:624
BrightnessComponent & HostGain() const
Gets access to the host gain component for software-based gain control.
Definition peak_afl_advanced_auto_brightness.hpp:523
void SetMode(ControllerMode mode) override
Sets the operation mode for the brightness controller.
Definition peak_afl_advanced_auto_brightness.hpp:198
bool HasCombinedGain() const
Checks if the combined gain component is available on the current device.
Definition peak_afl_advanced_auto_brightness.hpp:500
void Deserialize(const peak::common::serialization::IArchive &archive) override
Deserializes controller state and configuration from an archive.
Definition peak_afl_advanced_auto_brightness.hpp:168
ControllerType GetType() const override
Gets the controller type identifier.
Definition peak_afl_advanced_auto_brightness.hpp:182
void ResetToDefault() override
Resets all controller settings and components to their default values.
Definition peak_afl_advanced_auto_brightness.hpp:603
BrightnessComponent & CombinedGain() const
Gets access to the combined gain component for unified gain control.
Definition peak_afl_advanced_auto_brightness.hpp:484
bool IsRunning() const override
Checks if the brightness controller is currently running.
Definition peak_afl_advanced_auto_brightness.hpp:230
BrightnessComponent & Exposure() const
Gets access to the exposure component for exposure time control.
Definition peak_afl_advanced_auto_brightness.hpp:367
bool HasAnalogGain() const
Checks if the analog gain component is available on the current device.
Definition peak_afl_advanced_auto_brightness.hpp:422
AdvancedAutoBrightness(peak::afl::Manager &manager, ProcessingCallback callback)
Constructs an AdvancedAutoBrightness controller with the specified manager and callback.
Definition peak_afl_advanced_auto_brightness.hpp:101
features::Roi & Roi()
Gets access to the region of interest (ROI) feature for selective brightness analysis.
Definition peak_afl_advanced_auto_brightness.hpp:327
Abstract base interface for all automatic controllers.
Definition peak_afl_icontroller.hpp:223
Auto percentile feature implementation for auto controllers.
Definition peak_afl_auto_percentile.hpp:54
AutoPercentile(std::shared_ptr< peak::afl::Controller > controller)
Constructs an AutoPercentile feature with the specified controller.
Definition peak_afl_auto_percentile.hpp:68
Auto target feature implementation for auto controllers.
Definition peak_afl_auto_target.hpp:55
AutoTarget(std::shared_ptr< peak::afl::Controller > controller)
Constructs an AutoTarget feature with the specified controller.
Definition peak_afl_auto_target.hpp:69
Auto tolerance feature implementation for auto controllers.
Definition peak_afl_auto_tolerance.hpp:57
AutoTolerance(std::shared_ptr< peak::afl::Controller > controller)
Constructs an AutoTolerance feature with the specified controller.
Definition peak_afl_auto_tolerance.hpp:71
Brightness algorithm feature implementation for auto controllers.
Definition peak_afl_brightness_algorithm.hpp:171
Region of Interest (ROI) feature implementation for auto controllers.
Definition peak_afl_roi.hpp:57
Roi(std::shared_ptr< peak::afl::Controller > controller)
Constructs a Roi feature with the specified controller.
Definition peak_afl_roi.hpp:71
Skip frames feature implementation for auto controllers.
Definition peak_afl_skip_frames.hpp:53
SkipFrames(std::shared_ptr< peak::afl::Controller > controller)
Constructs a SkipFrames feature with the specified controller.
Definition peak_afl_skip_frames.hpp:67
ControllerMode
Controller operation mode enumeration.
Definition peak_afl_icontroller.hpp:55
ControllerType
Controller type enumeration.
Definition peak_afl_icontroller.hpp:36
BrightnessComponentType
Brightness component type enumeration.
Definition peak_afl_brightness_component.hpp:34
@ CombinedGain
Combined gain component - both analog and digital (combined) gain.
Definition peak_afl_brightness_component.hpp:44
@ AnalogGain
Analog gain component - hardware gain applied before digitization.
Definition peak_afl_brightness_component.hpp:40
@ DigitalGain
Digital gain component - gain applied after digitization.
Definition peak_afl_brightness_component.hpp:42
@ HostGain
Host gain component - software-based gain processing.
Definition peak_afl_brightness_component.hpp:46
@ Exposure
Exposure time component - controls sensor integration time.
Definition peak_afl_brightness_component.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