![]() |
IDS peak AFL v1.8.0
|
C API interface for automatic camera feature control. More...
#include <peak_ipl/backend/peak_ipl_backend.h>#include <peak/backend/peak_backend.h>#include <stddef.h>#include <stdint.h>Go to the source code of this file.
Data Structures | |
| struct | peak_afl_process_data |
| Generic process data structure. More... | |
| struct | peak_afl_process_data_brightness |
| Brightness controller process data. More... | |
| struct | peak_afl_process_data_whitebalance |
| White balance controller process data. More... | |
| struct | peak_afl_process_data_focus |
| Focus controller process data. More... | |
| struct | peak_afl_size |
| 2D size structure More... | |
| struct | peak_afl_position |
| 2D position structure More... | |
| struct | peak_afl_rectangle |
| 2D rectangle structure More... | |
| struct | peak_afl_weighted_rectangle |
| Weighted region of interest for focus control. More... | |
| struct | peak_afl_controller_limit |
| Controller parameter limit range. More... | |
| struct | peak_afl_double_limit |
| Floating-point parameter limit range. More... | |
Macros | |
| #define | PEAK_AFL_TRUE |
| Boolean true value. | |
| #define | PEAK_AFL_FALSE |
| Boolean false value. | |
Typedefs | |
| typedef void * | peak_afl_controller_handle |
| Opaque handle for auto feature controllers. | |
| typedef void * | peak_afl_manager_handle |
| Opaque handle for auto feature managers. | |
| typedef void(PEAK_AFL_CALLCONV * | PEAK_AFL_CALLBACK_FINISHED_FUNC) (void *context) |
| Callback function type definition for PEAK_AFL_CONTROLLER_CALLBACK_FINISHED. | |
| typedef void(PEAK_AFL_CALLCONV * | PEAK_AFL_CALLBACK_PROCESSING_FUNC) (peak_afl_process_data *data, void *context) |
| Callback function type definition for PEAK_AFL_CONTROLLER_CALLBACK_PROCESSING. | |
| typedef uint8_t | peak_afl_BOOL8 |
| Custom 8-bit boolean type. | |
Functions | |
| PEAK_AFL_API_STATUS | peak_afl_Init (void) |
| Init the peak_afl auto feature library. | |
| PEAK_AFL_API_STATUS | peak_afl_Exit (void) |
| Exit the peak_afl auto feature library. | |
| PEAK_AFL_API_STATUS | peak_afl_GetLastError (peak_afl_status *lastErrorCode, char *lastErrorMessage, size_t *lastErrorMessageSize) |
| Get the last error message. | |
| PEAK_AFL_API_STATUS | peak_afl_GetVersion (uint32_t *majorVersion, uint32_t *minorVersion, uint32_t *subminorVersion, uint32_t *patchVersion) |
| Query the library version. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Create (peak_afl_manager_handle *handle, PEAK_NODE_MAP_HANDLE nodeMapHandle) |
| Create an automanager instance. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Destroy (peak_afl_manager_handle handle) |
| Destroy an automanager instance. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_AddController (peak_afl_manager_handle handle, peak_afl_controller_handle controller) |
| Add a controller to an auto manager instance. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_RemoveController (peak_afl_manager_handle handle, peak_afl_controller_handle controller) |
| Remove a controller from an auto feature manager instance. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Process (peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle) |
| Process an image through the auto feature pipeline. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_CreateController (peak_afl_manager_handle handle, peak_afl_controller_handle *controller, peak_afl_controllerType controllerType) |
| Create a controller and append it to Manager. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_DestroyAllController (peak_afl_manager_handle handle) |
| Destroy all controllers associated with a manager. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_DestroyController (peak_afl_manager_handle handle, peak_afl_controller_handle controller) |
| Destroy a controller from a manager. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_SetGainIPL (peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle) |
| Set the IPL Gain for image processing. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_SetCCM (peak_afl_manager_handle handle, float *ccm, size_t ccm_size) |
| Set the Color Correction Matrix (CCM) for image processing. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Status (peak_afl_manager_handle handle, peak_afl_BOOL8 *running) |
| Get the processing status of an auto feature manager. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoFeatureManager_Controller_IsSupported (peak_afl_manager_handle handle, peak_afl_controllerType controllerType, peak_afl_BOOL8 *supported) |
| Check if a controller type is supported by the manager. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Create (peak_afl_controller_handle *controller, peak_afl_controllerType controllerType) |
| Create a new auto feature controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Destroy (peak_afl_controller_handle controller) |
| Destroy a standalone controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_SkipFrames_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if skip frames feature is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_SkipFrames_Set (peak_afl_controller_handle controller, uint32_t count) |
| Set number of frames to skip for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_SkipFrames_Get (peak_afl_controller_handle controller, uint32_t *count) |
| Get the current skip frames count for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_SkipFrames_GetRange (peak_afl_controller_handle controller, uint32_t *min, uint32_t *max, uint32_t *inc) |
| Get the valid range for skip frames count. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_ROI_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if region of interest (ROI) feature is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_ROI_Set (peak_afl_controller_handle controller, peak_afl_rectangle roi) |
| Set the region of interest for automatic feature processing. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_ROI_Get (peak_afl_controller_handle controller, peak_afl_rectangle *roi) |
| Get the current region of interest for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_ROI_Preset_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if ROI preset feature is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_ROI_Preset_Set (peak_afl_controller_handle controller, peak_afl_roi_preset roiPreset) |
| Set a predefined region of interest preset for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Mode_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if automatic mode configuration is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Mode_Set (peak_afl_controller_handle controller, peak_afl_controller_automode mode) |
| Set the automatic processing mode for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Mode_Get (peak_afl_controller_handle controller, peak_afl_controller_automode *mode) |
| Get the current automatic processing mode for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_BrightnessAlgorithm_Set (peak_afl_controller_handle controller, peak_afl_controller_brightness_algorithm algorithm) |
| Set the brightness analysis algorithm for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_BrightnessAlgorithm_Get (peak_afl_controller_handle controller, peak_afl_controller_brightness_algorithm *algorithm) |
| Get the current brightness analysis algorithm for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_BrightnessAlgorithm_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if brightness algorithm configuration is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_BrightnessComponent_Mode_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if brightness component mode configuration is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_BrightnessComponent_Unit_IsSupported (peak_afl_controller_handle controller, peak_afl_controller_brightness_component unit, peak_afl_BOOL8 *supported) |
| Check if a specific brightness component unit is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_BrightnessComponent_Mode_Set (peak_afl_controller_handle controller, peak_afl_controller_brightness_component component, peak_afl_controller_automode mode) |
| Set the automatic mode for a specific brightness component. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_BrightnessComponent_Mode_Get (peak_afl_controller_handle controller, peak_afl_controller_brightness_component component, peak_afl_controller_automode *mode) |
| Get the current automatic mode for a specific brightness component. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_BrightnessComponent_Status (peak_afl_controller_handle controller, peak_afl_controller_brightness_component component, peak_afl_controller_status *status) |
| Get the operational status for a specific brightness component. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_BrightnessComponent_Callback_Set (peak_afl_controller_handle controller, peak_afl_controller_brightness_component component, peak_afl_callback_type type, void *funcPtr, void *context) |
| Set a callback function for a specific brightness component. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_ExposureLimit_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if exposure limit configuration is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_ExposureLimit_Set (peak_afl_controller_handle controller, peak_afl_double_limit limit) |
| Set exposure time limits for automatic exposure control. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_ExposureLimit_Get (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get the current exposure time limits for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Status (peak_afl_controller_handle controller, peak_afl_controller_status *status) |
| Get the status for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GetLastAutoAverage (peak_afl_controller_handle controller, uint8_t *average) |
| Get the last auto average for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GetLastAutoAverages (peak_afl_controller_handle controller, uint8_t *averageRed, uint8_t *averageGreen, uint8_t *averageBlue) |
| Get the last auto average for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoTarget_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if auto target is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoTarget_Set (peak_afl_controller_handle controller, uint32_t target) |
| Set the auto target for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoTarget_Get (peak_afl_controller_handle controller, uint32_t *target) |
| Get the currently set auto target for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoTarget_GetRange (peak_afl_controller_handle controller, uint32_t *min, uint32_t *max, uint32_t *inc) |
| Get the auto target range for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoTolerance_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if auto tolerance is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoTolerance_Set (peak_afl_controller_handle controller, uint32_t tolerance) |
| Set the auto tolerance for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoTolerance_Get (peak_afl_controller_handle controller, uint32_t *tolerance) |
| Get the current auto tolerance for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoTolerance_GetRange (peak_afl_controller_handle controller, uint32_t *min, uint32_t *max, uint32_t *inc) |
| Get the auto tolerance range for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoPercentile_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if auto percentile is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoPercentile_Set (peak_afl_controller_handle controller, double percentile) |
| Set the auto percentile for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoPercentile_Get (peak_afl_controller_handle controller, double *percentile) |
| Get the auto percentile for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_AutoPercentile_GetRange (peak_afl_controller_handle controller, double *min, double *max, double *inc) |
| Get the auto percentile range for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Type_Get (peak_afl_controller_handle controller, peak_afl_controllerType *type) |
| Get the controller type. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Algorithm_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if setting an algorithm is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Algorithm_Set (peak_afl_controller_handle controller, peak_afl_controller_algorithm algorithm) |
| Set the used algorithm for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Algorithm_Get (peak_afl_controller_handle controller, peak_afl_controller_algorithm *algorithm) |
| Get the used algorithm for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Algorithm_GetList (peak_afl_controller_handle controller, peak_afl_controller_algorithm *typeList, uint32_t *listSize) |
| Get the list of supported algorithms for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_SharpnessAlgorithm_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if setting a sharpness algorithm is supported by a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_SharpnessAlgorithm_Set (peak_afl_controller_handle controller, peak_afl_controller_sharpness_algorithm algorithm) |
| Set the used sharpness algorithm for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_SharpnessAlgorithm_Get (peak_afl_controller_handle controller, peak_afl_controller_sharpness_algorithm *algorithm) |
| Get the used sharpness algorithm for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_SharpnessAlgorithm_GetList (peak_afl_controller_handle controller, peak_afl_controller_sharpness_algorithm *typeList, uint32_t *listSize) |
| Get the list of supported sharpness algorithms for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Callback_Set (peak_afl_controller_handle controller, peak_afl_callback_type type, void *funcPtr, void *context) |
| Set a callback for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Weighted_ROI_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if weighted region of interest is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Weighted_ROI_Min_Size (peak_afl_controller_handle controller, peak_afl_size *size) |
| Get the autofeature minimum size for the weighted region of interest for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Weighted_ROI_Set (peak_afl_controller_handle controller, const peak_afl_weighted_rectangle *weightedRoiList, uint32_t listSize) |
| Set the autofeature weighted region of interest for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Weighted_ROI_Get (peak_afl_controller_handle controller, peak_afl_weighted_rectangle *weightedRoiList, uint32_t *listSize) |
| Get the autofeature weighted region of interest for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Limit_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if limit is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Limit_Default (peak_afl_controller_handle controller, peak_afl_controller_limit *limit) |
| Get the autofeature default limit. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Limit_Set (peak_afl_controller_handle controller, peak_afl_controller_limit limit) |
| Set the autofeature limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Limit_Get (peak_afl_controller_handle controller, peak_afl_controller_limit *limit) |
| Get the autofeature limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Hysteresis_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if hysteresis is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Hysteresis_Default (peak_afl_controller_handle controller, uint8_t *hysteresis) |
| Get the autofeature hysteresis default. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Hysteresis_Set (peak_afl_controller_handle controller, uint8_t hysteresis) |
| Set the autofeature hysteresis for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Hysteresis_Get (peak_afl_controller_handle controller, uint8_t *hysteresis) |
| Get the autofeature hysteresis for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_Hysteresis_GetRange (peak_afl_controller_handle controller, uint8_t *min, uint8_t *max, uint8_t *inc) |
| Get autofeature hysteresis range for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainLimit_IsSupported (peak_afl_controller_handle controller, peak_afl_BOOL8 *supported) |
| Check if gain limit is supported for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainLimit_Set (peak_afl_controller_handle controller, peak_afl_double_limit limit) |
| Set autofeature gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainLimit_Get (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainLimit_GetRange (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature gain limit range for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainAnalogLimit_Set (peak_afl_controller_handle controller, peak_afl_double_limit limit) |
| Set autofeature analog gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainAnalogLimit_Get (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature analog gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainAnalogLimit_GetRange (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature analog gain limit range for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainDigitalLimit_Set (peak_afl_controller_handle controller, peak_afl_double_limit limit) |
| Set autofeature digital gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainDigitalLimit_Get (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature digital gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainDigitalLimit_GetRange (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature digital gain limit range for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainCombinedLimit_Set (peak_afl_controller_handle controller, peak_afl_double_limit limit) |
| Set autofeature combined gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainCombinedLimit_Get (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature combined gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainCombinedLimit_GetRange (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature combined gain limit range for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainHostLimit_Set (peak_afl_controller_handle controller, peak_afl_double_limit limit) |
| Set autofeature host gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainHostLimit_Get (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature host gain limit for a controller. | |
| PEAK_AFL_API_STATUS | peak_afl_AutoController_GainHostLimit_GetRange (peak_afl_controller_handle controller, peak_afl_double_limit *limit) |
| Get autofeature host gain limit range for a controller. | |
C API interface for automatic camera feature control.
This header provides the complete C API for the auto feature library, enabling automatic control of camera parameters such as brightness, focus, and white balance.
Copyright (c) 2022 - 2025, IDS Imaging Development Systems GmbH. All rights reserved.
| typedef void* peak_afl_controller_handle |
Opaque handle for auto feature controllers.
This handle represents an instance of an automatic feature controller (brightness, focus, or white balance). Controllers are created through manager instances and should be treated as opaque pointers.
| typedef void* peak_afl_manager_handle |
Opaque handle for auto feature managers.
This handle represents an instance of an automatic feature manager that coordinates multiple controllers and processes images. Managers maintain the processing pipeline and handle communication with camera devices.