IDS peak AFL v1.8.0
Loading...
Searching...
No Matches
peak_afl.h
Go to the documentation of this file.
1
16
17#pragma once
18
19#include <peak_ipl/backend/peak_ipl_backend.h>
20#include <peak/backend/peak_backend.h>
21
22/* Function declaration modifiers */
23#if defined(_WIN32)
24# ifndef PEAK_AFL_NO_DECLSPEC_STATEMENTS
25# ifdef PEAK_AFL_EXPORTING
26# define PEAK_AFL_EXPORT __declspec(dllexport)
27# else
28# define PEAK_AFL_EXPORT __declspec(dllimport)
29# endif
30# else
31# define PEAK_AFL_EXPORT
32# endif
33# if defined(_M_IX86) || defined(__i386__)
34# define PEAK_AFL_CALLCONV __cdecl
35# else
36# define PEAK_AFL_CALLCONV
37# endif
38#else
39# define PEAK_AFL_EXPORT
40# define PEAK_AFL_CALLCONV
41#endif
42
43#ifdef __cplusplus
44# include <cstddef>
45# include <cstdint>
46
47extern "C" {
48#else
49# include <stddef.h>
50# include <stdint.h>
51#endif
52
53#if !defined(PEAK_AFL_NO_WARN_DEPRECATED)
54# if defined(__cplusplus) && __cplusplus >= 201402L || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) \
55 || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L)
56# define PEAK_AFL_DEPRECATED_ATTR [[deprecated]]
57# define PEAK_AFL_DEPRECATED_ATTR_MSG(X) [[deprecated(X)]]
58# define PEAK_AFL_DEPRECATED(X) X PEAK_AFL_DEPRECATED_ATTR
59# define PEAK_AFL_DEPRECATED_MSG(X, Y) X [[deprecated(Y)]]
60# elif defined(__GNUC__)
61# define PEAK_AFL_DEPRECATED_ATTR __attribute__((deprecated))
62# define PEAK_AFL_DEPRECATED_ATTR_MSG(X) __attribute__((deprecated(X)))
63# define PEAK_AFL_DEPRECATED(X) X PEAK_AFL_DEPRECATED_ATTR
64# define PEAK_AFL_DEPRECATED_MSG(X, Y) X __attribute__((deprecated(Y)))
65# else
66# define PEAK_AFL_DEPRECATED_ATTR
67# define PEAK_AFL_DEPRECATED_ATTR_MSG(X)
68# define PEAK_AFL_DEPRECATED(X) X
69# define PEAK_AFL_DEPRECATED_MSG(X, Y) X
70# endif
71#else
72# define PEAK_AFL_DEPRECATED_ATTR
73# define PEAK_AFL_DEPRECATED_ATTR_MSG(X)
74# define PEAK_AFL_DEPRECATED(X) X
75# define PEAK_AFL_DEPRECATED_MSG(X, Y) X
76#endif
77
78#define PEAK_AFL_VERSION_CODE(major, minor, subminor, patch) (((major) << 24) + ((minor) << 16) + ((subminor) << 8) + (patch))
79#define PEAK_AFL_API_STATUS PEAK_AFL_EXPORT peak_afl_status PEAK_AFL_CALLCONV
80
92
104
211
265
309
310
413
414
492
528
596
690
757
795
845
892
954
1030
1090
1099typedef void(PEAK_AFL_CALLCONV* PEAK_AFL_CALLBACK_FINISHED_FUNC)(void* context);
1100
1111typedef void(PEAK_AFL_CALLCONV* PEAK_AFL_CALLBACK_PROCESSING_FUNC)(peak_afl_process_data* data, void* context);
1112
1127typedef void(PEAK_AFL_CALLCONV* PEAK_AFL_CALLBACK_PROCESSING_DATA_FUNC)(int focusValue, int sharpnessValue, void* context);
1128
1153
1165typedef struct
1166{
1174 uint32_t width;
1175
1183 uint32_t height;
1185
1196typedef struct
1197{
1204 uint32_t x;
1205
1212 uint32_t y;
1214
1227typedef struct
1228{
1234 uint32_t x;
1235
1241 uint32_t y;
1242
1248 uint32_t width;
1249
1255 uint32_t height;
1257
1287
1299typedef struct
1300{
1307 int min;
1308
1315 int max;
1317
1329typedef struct
1330{
1337 double min;
1338
1345 double max;
1347
1359typedef uint8_t peak_afl_BOOL8;
1360
1368#define PEAK_AFL_TRUE 1
1369
1377#define PEAK_AFL_FALSE 0
1378
1395PEAK_AFL_API_STATUS peak_afl_Init(void);
1396
1414PEAK_AFL_API_STATUS peak_afl_Exit(void);
1415
1439PEAK_AFL_API_STATUS peak_afl_GetLastError(peak_afl_status* lastErrorCode, char* lastErrorMessage, size_t* lastErrorMessageSize);
1440
1460PEAK_AFL_API_STATUS peak_afl_GetVersion(
1461 uint32_t* majorVersion, uint32_t* minorVersion, uint32_t* subminorVersion, uint32_t* patchVersion);
1462
1496PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Create(peak_afl_manager_handle* handle, PEAK_NODE_MAP_HANDLE nodeMapHandle);
1497
1532
1569
1599
1649PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Process(peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle);
1650
1694
1721
1759
1793PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetGainIPL(peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle);
1794
1830PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetCCM(peak_afl_manager_handle handle, float* ccm, size_t ccm_size);
1831
1863
1892 peak_afl_manager_handle handle, peak_afl_controllerType controllerType, peak_afl_BOOL8* supported);
1893
1947 peak_afl_controller_handle* controller, peak_afl_controllerType controllerType);
1948
1984
2016 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2017
2053PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_Set(peak_afl_controller_handle controller, uint32_t count);
2054
2087PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_Get(peak_afl_controller_handle controller, uint32_t* count);
2088
2125 peak_afl_controller_handle controller, uint32_t* min, uint32_t* max, uint32_t* inc);
2126
2158
2195
2228
2261 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2262
2298
2330
2367
2403
2439
2475
2508 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2509
2542 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2543
2622
2664
2704
2748 peak_afl_controller_brightness_component component, peak_afl_callback_type type, void* funcPtr, void* context);
2749
2783 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2784
2820
2855
2882
2903PEAK_AFL_API_STATUS peak_afl_AutoController_GetLastAutoAverage(peak_afl_controller_handle controller, uint8_t* average);
2904
2928 peak_afl_controller_handle controller, uint8_t* averageRed, uint8_t* averageGreen, uint8_t* averageBlue);
2929
2947 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2948
2969PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTarget_Set(peak_afl_controller_handle controller, uint32_t target);
2970
2991PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTarget_Get(peak_afl_controller_handle controller, uint32_t* target);
2992
3023 peak_afl_controller_handle controller, uint32_t* min, uint32_t* max, uint32_t* inc);
3024
3042 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3043
3070PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_Set(peak_afl_controller_handle controller, uint32_t tolerance);
3071
3091PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_Get(peak_afl_controller_handle controller, uint32_t* tolerance);
3092
3119 peak_afl_controller_handle controller, uint32_t* min, uint32_t* max, uint32_t* inc);
3120
3138 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3139
3160PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_Set(peak_afl_controller_handle controller, double percentile);
3161
3181PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_Get(peak_afl_controller_handle controller, double* percentile);
3182
3210 peak_afl_controller_handle controller, double* min, double* max, double* inc);
3211
3237
3257 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3258
3285
3307
3342 peak_afl_controller_handle controller, peak_afl_controller_algorithm* typeList, uint32_t* listSize);
3343
3363 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3364
3393
3415
3450 peak_afl_controller_handle controller, peak_afl_controller_sharpness_algorithm* typeList, uint32_t* listSize);
3451
3482 peak_afl_controller_handle controller, peak_afl_callback_type type, void* funcPtr, void* context);
3483
3507 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3508
3530
3559 peak_afl_controller_handle controller, const peak_afl_weighted_rectangle* weightedRoiList, uint32_t listSize);
3560
3594 peak_afl_controller_handle controller, peak_afl_weighted_rectangle* weightedRoiList, uint32_t* listSize);
3595
3618
3640
3664
3685
3709 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3710
3730PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Default(peak_afl_controller_handle controller, uint8_t* hysteresis);
3731
3754PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Set(peak_afl_controller_handle controller, uint8_t hysteresis);
3755
3775PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Get(peak_afl_controller_handle controller, uint8_t* hysteresis);
3776
3801 peak_afl_controller_handle controller, uint8_t* min, uint8_t* max, uint8_t* inc);
3802
3835 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3836
3878
3904
3937
3972
3999
4026
4061
4083
4106
4137
4159
4182
4212
4234
4257
4258#ifdef __cplusplus
4259} // extern "C"
4260#endif // __cplusplus
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_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_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_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_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_Set(peak_afl_controller_handle controller, uint32_t target)
Set the auto target 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_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_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_AutoTolerance_Get(peak_afl_controller_handle controller, uint32_t *tolerance)
Get the current auto tolerance for a controller.
peak_afl_controllerType
Auto feature controller types.
Definition peak_afl.h:223
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_Create(peak_afl_controller_handle *controller, peak_afl_controllerType controllerType)
Create a new auto feature 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_Destroy(peak_afl_controller_handle controller)
Destroy a standalone controller.
@ PEAK_AFL_CONTROLLER_TYPE_INVALID
Invalid or uninitialized controller type.
Definition peak_afl.h:230
@ PEAK_AFL_CONTROLLER_TYPE_WHITE_BALANCE
Automatic white balance controller.
Definition peak_afl.h:252
@ PEAK_AFL_CONTROLLER_TYPE_AUTOFOCUS
Automatic focus controller.
Definition peak_afl.h:263
@ PEAK_AFL_CONTROLLER_TYPE_BRIGHTNESS
Automatic brightness exposure/gain controller.
Definition peak_afl.h:241
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_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_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_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_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_DestroyController(peak_afl_manager_handle handle, peak_afl_controller_handle controller)
Destroy a controller from a manager.
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_Destroy(peak_afl_manager_handle handle)
Destroy an automanager instance.
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_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_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_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_AutoController_BrightnessAlgorithm_Set(peak_afl_controller_handle controller, peak_afl_controller_brightness_algorithm algorithm)
Set the brightness analysis algorithm for a controller.
peak_afl_controller_brightness_algorithm
Brightness calculation algorithms.
Definition peak_afl.h:505
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_CONTROLLER_BRIGHTNESS_ALGORITHM_MEAN
Mean-based brightness calculation.
Definition peak_afl.h:526
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_ALGORITHM_MEDIAN
Median-based brightness calculation.
Definition peak_afl.h:515
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_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_controller_brightness_component
Brightness control components.
Definition peak_afl.h:609
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_CONTROLLER_BRIGHTNESS_COMPONENT_INVALID
Invalid or uninitialized component.
Definition peak_afl.h:616
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_ANALOG_GAIN
Analog gain control.
Definition peak_afl.h:651
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_GAIN
Generic gain control.
Definition peak_afl.h:639
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_COMBINED_GAIN
Combined analog and digital gain.
Definition peak_afl.h:675
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_HOST_GAIN
Host-based software gain.
Definition peak_afl.h:687
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_DIGITAL_GAIN
Digital gain control.
Definition peak_afl.h:663
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_EXPOSURE
Camera exposure time control.
Definition peak_afl.h:628
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_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_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_GetLastAutoAverage(peak_afl_controller_handle controller, uint8_t *average)
Get the last auto average for a controller.
peak_afl_callback_type
Controller callback types.
Definition peak_afl.h:808
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.
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.
Definition peak_afl.h:1111
void(PEAK_AFL_CALLCONV * PEAK_AFL_CALLBACK_FINISHED_FUNC)(void *context)
Callback function type definition for PEAK_AFL_CONTROLLER_CALLBACK_FINISHED.
Definition peak_afl.h:1099
@ PEAK_AFL_CONTROLLER_CALLBACK_FINISHED
Controller operation finished callback.
Definition peak_afl.h:818
@ PEAK_AFL_CONTROLLER_CALLBACK_PROCESSING_DATA
Legacy processing data callback.
Definition peak_afl.h:832
@ PEAK_AFL_CONTROLLER_CALLBACK_PROCESSING
Enhanced processing callback.
Definition peak_afl.h:843
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_Algorithm_Get(peak_afl_controller_handle controller, peak_afl_controller_algorithm *algorithm)
Get the used algorithm for a controller.
peak_afl_controller_algorithm
Focus search algorithms.
Definition peak_afl.h:429
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_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_Algorithm_Set(peak_afl_controller_handle controller, peak_afl_controller_algorithm algorithm)
Set the used algorithm for a controller.
@ PEAK_AFL_CONTROLLER_ALGORITHM_GOLDEN_RATIO_SEARCH
Golden ratio search algorithm.
Definition peak_afl.h:449
@ PEAK_AFL_CONTROLLER_ALGORITHM_HILL_CLIMBING_SEARCH
Hill climbing search algorithm.
Definition peak_afl.h:462
@ PEAK_AFL_CONTROLLER_ALGORITHM_FULL_SCAN
Full range scan algorithm.
Definition peak_afl.h:490
@ PEAK_AFL_CONTROLLER_ALGORITHM_AUTO
Automatic algorithm selection.
Definition peak_afl.h:436
@ PEAK_AFL_CONTROLLER_ALGORITHM_GLOBAL_SEARCH
Global search algorithm.
Definition peak_afl.h:476
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_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_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_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_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_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_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_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_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_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_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_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_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_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_GetRange(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature host gain limit range 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_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_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_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_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_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_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_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_GetVersion(uint32_t *majorVersion, uint32_t *minorVersion, uint32_t *subminorVersion, uint32_t *patchVersion)
Query the library version.
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_AutoController_Mode_Get(peak_afl_controller_handle controller, peak_afl_controller_automode *mode)
Get the current automatic processing mode for a controller.
peak_afl_controller_automode
Auto feature controller operation modes.
Definition peak_afl.h:277
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_CONTROLLER_AUTOMODE_CONTINUOUS
Continuous automatic adjustment.
Definition peak_afl.h:296
@ PEAK_AFL_CONTROLLER_AUTOMODE_OFF
Auto feature disabled.
Definition peak_afl.h:285
@ PEAK_AFL_CONTROLLER_AUTOMODE_ONCE
Single adjustment operation.
Definition peak_afl.h:307
peak_afl_roi_preset
Predefined ROI preset configurations.
Definition peak_afl.h:1141
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_ROI_Preset_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if ROI preset feature is supported for a controller.
@ PEAK_AFL_CONTROLLER_ROI_PRESET_CENTER
Center region preset.
Definition peak_afl.h:1151
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_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_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_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_SharpnessAlgorithm_Set(peak_afl_controller_handle controller, peak_afl_controller_sharpness_algorithm algorithm)
Set the used sharpness algorithm for a controller.
peak_afl_controller_sharpness_algorithm
Focus sharpness calculation algorithms.
Definition peak_afl.h:541
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_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if setting a sharpness algorithm is supported by a controller.
@ PEAK_AFL_CONTROLLER_SHARPNESS_ALGORITHM_MEAN_SCORE
Mean score algorithm.
Definition peak_afl.h:583
@ PEAK_AFL_CONTROLLER_SHARPNESS_ALGORITHM_SOBEL
Sobel edge detection algorithm.
Definition peak_afl.h:572
@ PEAK_AFL_CONTROLLER_SHARPNESS_ALGORITHM_AUTO
Automatic algorithm selection.
Definition peak_afl.h:550
@ PEAK_AFL_CONTROLLER_SHARPNESS_ALGORITHM_HISTOGRAM_VARIANCE
Histogram variance algorithm.
Definition peak_afl.h:594
@ PEAK_AFL_CONTROLLER_SHARPNESS_ALGORITHM_TENENGRAD
Tenengrad gradient-based algorithm.
Definition peak_afl.h:561
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_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_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if skip frames feature is supported for a controller.
peak_afl_status
Auto feature library status codes.
Definition peak_afl.h:117
peak_afl_controller_status
Controller operational status.
Definition peak_afl.h:323
@ PEAK_AFL_STATUS_SUCCESS
Operation completed successfully.
Definition peak_afl.h:123
@ PEAK_AFL_STATUS_INVALID_IMAGE_FORMAT
Invalid or unsupported image format.
Definition peak_afl.h:191
@ PEAK_AFL_STATUS_VALUE_ADJUSTED
Parameter value was adjusted.
Definition peak_afl.h:209
@ PEAK_AFL_STATUS_ACCESS_DENIED
Access denied to resource.
Definition peak_afl.h:161
@ PEAK_AFL_STATUS_BUSY
Resource is busy.
Definition peak_afl.h:171
@ PEAK_AFL_STATUS_NOT_SUPPORTED
Feature or operation not supported.
Definition peak_afl.h:199
@ PEAK_AFL_STATUS_INVALID_PARAMETER
Invalid parameter provided.
Definition peak_afl.h:153
@ PEAK_AFL_STATUS_BUFFER_TOO_SMALL
Provided buffer is too small.
Definition peak_afl.h:181
@ PEAK_AFL_STATUS_NOT_INITIALIZED
Library not initialized.
Definition peak_afl.h:143
@ PEAK_AFL_STATUS_ERROR
General error occurred.
Definition peak_afl.h:133
@ PEAK_AFL_CONTROLLER_STATUS_SKIPPED
Controller skipped processing this frame.
Definition peak_afl.h:411
@ PEAK_AFL_CONTROLLER_STATUS_OFF
Controller is disabled or inactive.
Definition peak_afl.h:337
@ PEAK_AFL_CONTROLLER_STATUS_ERROR
Controller encountered an error.
Definition peak_afl.h:398
@ PEAK_AFL_CONTROLLER_STATUS_UNDEFINED
Controller status undefined.
Definition peak_afl.h:325
@ PEAK_AFL_CONTROLLER_STATUS_FINISHED
Controller completed its operation successfully.
Definition peak_afl.h:361
@ PEAK_AFL_CONTROLLER_STATUS_BUSY
Controller is busy and cannot accept new requests.
Definition peak_afl.h:373
@ PEAK_AFL_CONTROLLER_STATUS_IN_PROGRESS
Controller is actively processing.
Definition peak_afl.h:349
@ PEAK_AFL_CONTROLLER_STATUS_CANCELED
Controller operation was canceled.
Definition peak_afl.h:385
uint8_t peak_afl_BOOL8
Custom 8-bit boolean type.
Definition peak_afl.h:1359
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_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_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if weighted region of interest is supported for a controller.
peak_afl_roi_weight
ROI weight values for focus control.
Definition peak_afl.h:770
@ PEAK_AFL_CONTROLLER_ROI_WEIGHT_WEAK
Low importance weight.
Definition peak_afl.h:777
@ PEAK_AFL_CONTROLLER_ROI_WEIGHT_STRONG
High importance weight.
Definition peak_afl.h:793
@ PEAK_AFL_CONTROLLER_ROI_WEIGHT_MEDIUM
Medium importance weight.
Definition peak_afl.h:785
peak_afl_controller_whitebalance_component
White balance control components.
Definition peak_afl.h:703
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_CONTROLLER_WHITEBALANCE_COMPONENT_COMBINED_GAIN
Combined analog and digital gain control (combined)
Definition peak_afl.h:743
@ PEAK_AFL_CONTROLLER_WHITEBALANCE_COMPONENT_DIGITAL_GAIN
Digital gain white balance control.
Definition peak_afl.h:732
@ PEAK_AFL_CONTROLLER_WHITEBALANCE_COMPONENT_INVALID
Invalid or uninitialized component.
Definition peak_afl.h:710
@ PEAK_AFL_CONTROLLER_WHITEBALANCE_COMPONENT_ANALOG_GAIN
Analog gain white balance control.
Definition peak_afl.h:721
@ PEAK_AFL_CONTROLLER_WHITEBALANCE_COMPONENT_HOST_GAIN
Host-based software white balance.
Definition peak_afl.h:754
void * peak_afl_controller_handle
Opaque handle for auto feature controllers.
Definition peak_afl.h:91
void * peak_afl_manager_handle
Opaque handle for auto feature managers.
Definition peak_afl.h:103
Controller parameter limit range.
Definition peak_afl.h:1300
int min
Minimum allowed value.
Definition peak_afl.h:1307
int max
Maximum allowed value.
Definition peak_afl.h:1315
Floating-point parameter limit range.
Definition peak_afl.h:1330
double max
Maximum allowed value.
Definition peak_afl.h:1345
double min
Minimum allowed value.
Definition peak_afl.h:1337
2D position structure
Definition peak_afl.h:1197
uint32_t y
Y-coordinate (vertical position)
Definition peak_afl.h:1212
uint32_t x
X-coordinate (horizontal position)
Definition peak_afl.h:1204
Brightness controller process data.
Definition peak_afl.h:907
int mean
Calculated mean brightness value.
Definition peak_afl.h:944
char reserved[64]
Reserved space for future extensions.
Definition peak_afl.h:951
peak_afl_controller_brightness_component controller_component
Current brightness component being processed.
Definition peak_afl.h:934
peak_afl_controller_status controller_status
Current controller status.
Definition peak_afl.h:915
peak_afl_controllerType controller_type
Controller type (always BRIGHTNESS)
Definition peak_afl.h:924
Focus controller process data.
Definition peak_afl.h:1044
int focus_value
Current focus position.
Definition peak_afl.h:1070
char reserved[64]
Reserved space for future extensions.
Definition peak_afl.h:1088
peak_afl_controller_status controller_status
Current controller status.
Definition peak_afl.h:1052
peak_afl_controllerType controller_type
Controller type (always AUTOFOCUS)
Definition peak_afl.h:1061
int sharpness_value
Current sharpness measurement.
Definition peak_afl.h:1081
White balance controller process data.
Definition peak_afl.h:969
char reserved[64 - sizeof(peak_afl_controller_whitebalance_component)]
Reserved space for future extensions.
Definition peak_afl.h:1027
int mean_g
Calculated mean green channel value.
Definition peak_afl.h:1002
int mean_b
Calculated mean blue channel value.
Definition peak_afl.h:1010
peak_afl_controller_status controller_status
Current controller status.
Definition peak_afl.h:977
peak_afl_controller_whitebalance_component controller_component
Current white balance component being processed.
Definition peak_afl.h:1020
int mean_r
Calculated mean red channel value.
Definition peak_afl.h:994
peak_afl_controllerType controller_type
Controller type (always WHITE_BALANCE)
Definition peak_afl.h:986
Generic process data structure.
Definition peak_afl.h:861
char reserved[32]
Reserved space for future extensions.
Definition peak_afl.h:889
peak_afl_controller_status controller_status
Current controller status.
Definition peak_afl.h:871
peak_afl_controllerType controller_type
Type of controller generating this data.
Definition peak_afl.h:882
2D rectangle structure
Definition peak_afl.h:1228
uint32_t width
Width of rectangle in pixels.
Definition peak_afl.h:1248
uint32_t height
Height of rectangle in pixels.
Definition peak_afl.h:1255
uint32_t y
Y-coordinate of top-left corner.
Definition peak_afl.h:1241
uint32_t x
X-coordinate of top-left corner.
Definition peak_afl.h:1234
2D size structure
Definition peak_afl.h:1166
uint32_t width
Width dimension in pixels.
Definition peak_afl.h:1174
uint32_t height
Height dimension in pixels.
Definition peak_afl.h:1183
Weighted region of interest for focus control.
Definition peak_afl.h:1270
peak_afl_roi_weight weight
Weight of this region.
Definition peak_afl.h:1285
peak_afl_rectangle roi
Rectangular region definition.
Definition peak_afl.h:1277