IDS peak AFL v2.0.0
Loading...
Searching...
No Matches
IController Class Referenceabstract

Abstract base interface for all automatic controllers. More...

#include <peak_afl/pipeline/modules/controllers/detail/peak_afl_icontroller.hpp>

Inheritance diagram for IController:
ISerializable AdvancedAutoBrightness AdvancedAutoFocus AdvancedAutoWhiteBalance BasicAutoBrightness BasicAutoFocus BasicAutoWhiteBalance

Public Types

using FinishedCallback
 Callback function type for operation completion notifications.
using FinishedCallbackHandle
 Handle type for managing callback registrations.

Public Member Functions

virtual ~IController ()=default
 Virtual destructor for proper cleanup of derived classes.
 IController (const IController &)=delete
 Copy constructor deleted to prevent copying.
IController & operator= (const IController &)=delete
 Copy assignment deleted to prevent copying.
 IController (IController &&)=delete
 Move constructor deleted to prevent moving.
IController & operator= (IController &&)=delete
 Move assignment deleted to prevent moving.
virtual std::string GetName () const =0
 Gets the unique name of this controller.
virtual ControllerType GetType () const =0
 Gets the type of this controller.
virtual void SetMode (ControllerMode mode)=0
 Sets the operational mode for this controller.
virtual ControllerMode GetMode () const =0
 Gets the current operational mode of this controller.
virtual bool IsRunning () const =0
 Checks if the controller is currently running.
virtual void ResetToDefault ()=0
 Resets the controller to its default configuration.
Public Member Functions inherited from ISerializable
virtual void Serialize (IArchive &archive) const =0
 Serializes the current object into the provided archive.
virtual void Deserialize (const IArchive &archive)=0
 Deserializes the object's state from the provided archive.

Protected Member Functions

peak::afl::Manager & GetManager ()
 Gets a reference to the API manager.

Detailed Description

Abstract base interface for all automatic controllers.

The IController class defines the fundamental interface that all automatic controllers must implement. This interface provides the common functionality required for controller management, mode control, and integration with the auto feature pipeline system.

Core Responsibilities:

  • Controller Identity: Provide name and type identification
  • Mode Management: Control operational modes (Off, Continuous, Once)
  • Status Monitoring: Report running state and operational status
  • Configuration Management: Support serialization and default reset
  • Manager Integration: Coordinate with the API manager system
Note
This class is non-copyable and non-movable to ensure proper resource management
All controllers require a valid API manager for camera communication
Derived classes should implement thread-safe operations where applicable
See also
BasicAutoBrightness
AdvancedAutoBrightness
BasicAutoFocus
AdvancedAutoFocus
BasicAutoWhiteBalance
AdvancedAutoWhiteBalance
Since
1.8

Member Typedef Documentation

◆ FinishedCallback

Callback function type for operation completion notifications.

Since
1.8

◆ FinishedCallbackHandle

Handle type for managing callback registrations.

Since
1.8

Constructor & Destructor Documentation

◆ ~IController()

virtual ~IController ( )
virtualdefault

Virtual destructor for proper cleanup of derived classes.

Since
1.8

◆ IController() [1/2]

IController ( const IController & )
delete

Copy constructor deleted to prevent copying.

Since
1.8

◆ IController() [2/2]

IController ( IController && )
delete

Move constructor deleted to prevent moving.

Since
1.8

Member Function Documentation

◆ GetManager()

peak::afl::Manager & GetManager ( )
inlineprotected

Gets a reference to the API manager.

Provides derived classes with access to the API manager for camera communication and system coordination.

Returns
Reference to the API manager instance
Since
1.8

◆ GetMode()

virtual ControllerMode GetMode ( ) const
pure virtual

Gets the current operational mode of this controller.

Returns the currently configured operational mode that determines when and how the automatic algorithms are executed.

Returns
Current ControllerMode of this controller
See also
SetMode()
ControllerMode
Since
1.8

Implemented in AdvancedAutoBrightness, AdvancedAutoFocus, AdvancedAutoWhiteBalance, BasicAutoBrightness, BasicAutoFocus, and BasicAutoWhiteBalance.

◆ GetName()

virtual std::string GetName ( ) const
pure virtual

Gets the unique name of this controller.

Returns a human-readable name that uniquely identifies this controller instance. This name is used for logging, debugging, and user interface display purposes.

Returns
Unique string name for this controller
Since
1.8

Implemented in AdvancedAutoBrightness, AdvancedAutoFocus, and AdvancedAutoWhiteBalance.

◆ GetType()

virtual ControllerType GetType ( ) const
pure virtual

Gets the type of this controller.

Returns the controller type enumeration that identifies what kind of automatic functionality this controller provides (Focus, Brightness, or WhiteBalance).

Returns
ControllerType enumeration identifying the controller type
Since
1.8

Implemented in AdvancedAutoBrightness, AdvancedAutoFocus, and AdvancedAutoWhiteBalance.

◆ IsRunning()

virtual bool IsRunning ( ) const
pure virtual

Checks if the controller is currently running.

Returns true if the controller is actively processing or executing automatic algorithms, false if it is idle or disabled.

Returns
true if controller is running, false otherwise
Since
1.8

Implemented in AdvancedAutoBrightness, AdvancedAutoFocus, AdvancedAutoWhiteBalance, BasicAutoBrightness, BasicAutoFocus, and BasicAutoWhiteBalance.

◆ operator=() [1/2]

IController & operator= ( const IController & )
delete

Copy assignment deleted to prevent copying.

Since
1.8

◆ operator=() [2/2]

IController & operator= ( IController && )
delete

Move assignment deleted to prevent moving.

Since
1.8

◆ ResetToDefault()

virtual void ResetToDefault ( )
pure virtual

Resets the controller to its default configuration.

Restores all controller parameters, features, and settings to their default values. This provides a clean state for reconfiguration.

Exceptions
Implementation-specificexceptions may be thrown if the reset operation fails or if the controller is in an invalid state
Since
1.8

Implemented in AdvancedAutoBrightness, AdvancedAutoFocus, AdvancedAutoWhiteBalance, BasicAutoBrightness, BasicAutoFocus, and BasicAutoWhiteBalance.

◆ SetMode()

virtual void SetMode ( ControllerMode mode)
pure virtual

Sets the operational mode for this controller.

Configures how the controller operates: Off (disabled), Continuous (automatic processing on every frame), or Once (single operation).

Parameters
[in]modeThe operational mode to set
Exceptions
Implementation-specificexceptions may be thrown if the mode cannot be set or if the controller is in an invalid state
See also
GetMode()
ControllerMode
Since
1.8

Implemented in AdvancedAutoBrightness, AdvancedAutoFocus, AdvancedAutoWhiteBalance, BasicAutoBrightness, BasicAutoFocus, and BasicAutoWhiteBalance.


The documentation for this class was generated from the following file: