IDS peak AFL v2.1.0
Loading...
Searching...
No Matches
peak_afl.h
Go to the documentation of this file.
1
12
13#pragma once
14
15#include <peak_ipl/backend/peak_ipl_backend.h>
16#include <peak/backend/peak_backend.h>
17
18/* Function declaration modifiers */
19#if defined(_WIN32)
20# ifndef PEAK_AFL_NO_DECLSPEC_STATEMENTS
21# ifdef PEAK_AFL_EXPORTING
22# define PEAK_AFL_EXPORT __declspec(dllexport)
23# else
24# define PEAK_AFL_EXPORT __declspec(dllimport)
25# endif
26# else
27# define PEAK_AFL_EXPORT
28# endif
29# if defined(_M_IX86) || defined(__i386__)
30# define PEAK_AFL_CALLCONV __cdecl
31# else
32# define PEAK_AFL_CALLCONV
33# endif
34#else
35# define PEAK_AFL_EXPORT
36# define PEAK_AFL_CALLCONV
37#endif
38
39#ifdef __cplusplus
40# include <cstddef>
41# include <cstdint>
42
43extern "C" {
44#else
45# include <stddef.h>
46# include <stdint.h>
47#endif
48
49#if !defined(PEAK_AFL_NO_WARN_DEPRECATED)
50# if defined(__cplusplus) && __cplusplus >= 201402L || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) \
51 || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L)
52# define PEAK_AFL_DEPRECATED_ATTR [[deprecated]]
53# define PEAK_AFL_DEPRECATED_ATTR_MSG(X) [[deprecated(X)]]
54# define PEAK_AFL_DEPRECATED(X) X PEAK_AFL_DEPRECATED_ATTR
55# define PEAK_AFL_DEPRECATED_MSG(X, Y) X [[deprecated(Y)]]
56# elif defined(__GNUC__)
57# define PEAK_AFL_DEPRECATED_ATTR __attribute__((deprecated))
58# define PEAK_AFL_DEPRECATED_ATTR_MSG(X) __attribute__((deprecated(X)))
59# define PEAK_AFL_DEPRECATED(X) X PEAK_AFL_DEPRECATED_ATTR
60# define PEAK_AFL_DEPRECATED_MSG(X, Y) X __attribute__((deprecated(Y)))
61# else
62# define PEAK_AFL_DEPRECATED_ATTR
63# define PEAK_AFL_DEPRECATED_ATTR_MSG(X)
64# define PEAK_AFL_DEPRECATED(X) X
65# define PEAK_AFL_DEPRECATED_MSG(X, Y) X
66# endif
67# if defined(__cplusplus) && __cplusplus >= 201703L || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) \
68 || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
69# define PEAK_AFL_DEPRECATED_ENUM_ATTR [[deprecated]]
70# elif defined(__GNUC__)
71# define PEAK_AFL_DEPRECATED_ENUM_ATTR __attribute__((deprecated))
72# else
73# define PEAK_AFL_DEPRECATED_ENUM_ATTR
74# endif
75#else
76# define PEAK_AFL_DEPRECATED_ATTR
77# define PEAK_AFL_DEPRECATED_ENUM_ATTR
78# define PEAK_AFL_DEPRECATED_ATTR_MSG(X)
79# define PEAK_AFL_DEPRECATED(X) X
80# define PEAK_AFL_DEPRECATED_MSG(X, Y) X
81#endif
82
83#if defined(_MSC_VER)
84# define PEAK_AFL_BEGIN_DISABLE_DEPRECATED_WARNINGS __pragma(warning(push)) __pragma(warning(disable : 4996))
85# define PEAK_AFL_END_DISABLE_DEPRECATED_WARNINGS __pragma(warning(pop))
86#elif defined(__clang__)
87# define PEAK_AFL_BEGIN_DISABLE_DEPRECATED_WARNINGS \
88 _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
89# define PEAK_AFL_END_DISABLE_DEPRECATED_WARNINGS _Pragma("clang diagnostic pop")
90#elif defined(__GNUC__)
91# define PEAK_AFL_BEGIN_DISABLE_DEPRECATED_WARNINGS \
92 _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
93# define PEAK_AFL_END_DISABLE_DEPRECATED_WARNINGS _Pragma("GCC diagnostic pop")
94#else
95# define PEAK_AFL_BEGIN_DISABLE_DEPRECATED_WARNINGS
96# define PEAK_AFL_END_DISABLE_DEPRECATED_WARNINGS
97#endif
98
99#define PEAK_AFL_VERSION_CODE(major, minor, subminor, patch) (((major) << 24) + ((minor) << 16) + ((subminor) << 8) + (patch))
100
101#define PEAK_AFL_API_STATUS PEAK_AFL_EXPORT peak_afl_status PEAK_AFL_CALLCONV
102
109
115
121
127
133
139
145
151
157
163
173
181
189
197
205
213
220
227
234
241
248
255
262
268
277
283
290
299
306
316
323
329
336
343
355
367
474
528
572
573
676
677
756
792
861
955
1022
1060
1110
1157
1219
1295
1355
1364typedef void(PEAK_AFL_CALLCONV* PEAK_AFL_CALLBACK_FINISHED_FUNC)(void* context);
1365
1376typedef void(PEAK_AFL_CALLCONV* PEAK_AFL_CALLBACK_PROCESSING_FUNC)(peak_afl_process_data* data, void* context);
1377
1392PEAK_AFL_DEPRECATED_ATTR typedef void(PEAK_AFL_CALLCONV* PEAK_AFL_CALLBACK_PROCESSING_DATA_FUNC)(
1393 int focusValue, int sharpnessValue, void* context);
1394
1419
1431typedef struct
1432{
1440 uint32_t width;
1441
1449 uint32_t height;
1451
1462typedef struct
1463{
1470 uint32_t x;
1471
1478 uint32_t y;
1480
1493typedef struct
1494{
1500 uint32_t x;
1501
1507 uint32_t y;
1508
1514 uint32_t width;
1515
1521 uint32_t height;
1523
1553
1565typedef struct
1566{
1573 int min;
1574
1581 int max;
1583
1595typedef struct
1596{
1603 double min;
1604
1611 double max;
1613
1625typedef uint8_t peak_afl_BOOL8;
1626
1634#define PEAK_AFL_TRUE 1
1635
1643#define PEAK_AFL_FALSE 0
1644
1661PEAK_AFL_API_STATUS peak_afl_Init(void);
1662
1680PEAK_AFL_API_STATUS peak_afl_Exit(void);
1681
1706PEAK_AFL_API_STATUS peak_afl_GetLastError(peak_afl_status* lastErrorCode, char* lastErrorMessage, size_t* lastErrorMessageSize);
1707
1727PEAK_AFL_API_STATUS peak_afl_GetVersion(
1728 uint32_t* majorVersion, uint32_t* minorVersion, uint32_t* patchVersion, uint32_t* _);
1729
1763PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Create(peak_afl_manager_handle* handle, PEAK_NODE_MAP_HANDLE nodeMapHandle);
1764
1799
1836
1866
1916PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Process(peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle);
1917
1961
1988
2026
2060PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetGainIPL(peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle);
2061
2107PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetCCM(peak_afl_manager_handle handle, float* ccm, size_t ccmSize);
2108
2140
2169 peak_afl_manager_handle handle, peak_afl_controllerType controllerType, peak_afl_BOOL8* supported);
2170
2224 peak_afl_controller_handle* controller, peak_afl_controllerType controllerType);
2225
2261
2293 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2294
2330PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_Set(peak_afl_controller_handle controller, uint32_t count);
2331
2364PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_Get(peak_afl_controller_handle controller, uint32_t* count);
2365
2402 peak_afl_controller_handle controller, uint32_t* min, uint32_t* max, uint32_t* inc);
2403
2435
2472
2505
2538 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2539
2575
2607
2644
2680
2716
2752
2785 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2786
2819 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
2820
2899
2941
2981
3025 peak_afl_controller_brightness_component component, peak_afl_callback_type type, void* funcPtr, void* context);
3026
3060 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3061
3097
3132
3164
3191
3212PEAK_AFL_API_STATUS peak_afl_AutoController_GetLastAutoAverage(peak_afl_controller_handle controller, uint8_t* average);
3213
3237 peak_afl_controller_handle controller, uint8_t* averageRed, uint8_t* averageGreen, uint8_t* averageBlue);
3238
3256 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3257
3278PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTarget_Set(peak_afl_controller_handle controller, uint32_t target);
3279
3300PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTarget_Get(peak_afl_controller_handle controller, uint32_t* target);
3301
3332 peak_afl_controller_handle controller, uint32_t* min, uint32_t* max, uint32_t* inc);
3333
3351 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3352
3379PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_Set(peak_afl_controller_handle controller, uint32_t tolerance);
3380
3400PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_Get(peak_afl_controller_handle controller, uint32_t* tolerance);
3401
3428 peak_afl_controller_handle controller, uint32_t* min, uint32_t* max, uint32_t* inc);
3429
3447 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3448
3469PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_Set(peak_afl_controller_handle controller, double percentile);
3470
3490PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_Get(peak_afl_controller_handle controller, double* percentile);
3491
3519 peak_afl_controller_handle controller, double* min, double* max, double* inc);
3520
3546
3566 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3567
3594
3616
3652 peak_afl_controller_handle controller, peak_afl_controller_algorithm* typeList, uint32_t* listSize);
3653
3673 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3674
3703
3725
3761 peak_afl_controller_handle controller, peak_afl_controller_sharpness_algorithm* typeList, uint32_t* listSize);
3762
3793 peak_afl_controller_handle controller, peak_afl_callback_type type, void* funcPtr, void* context);
3794
3818 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
3819
3841
3870 peak_afl_controller_handle controller, const peak_afl_weighted_rectangle* weightedRoiList, uint32_t listSize);
3871
3906 peak_afl_controller_handle controller, peak_afl_weighted_rectangle* weightedRoiList, uint32_t* listSize);
3907
3930
3952
3976
3997
4021 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
4022
4042PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Default(peak_afl_controller_handle controller, uint8_t* hysteresis);
4043
4066PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Set(peak_afl_controller_handle controller, uint8_t hysteresis);
4067
4087PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Get(peak_afl_controller_handle controller, uint8_t* hysteresis);
4088
4113 peak_afl_controller_handle controller, uint8_t* min, uint8_t* max, uint8_t* inc);
4114
4147 peak_afl_controller_handle controller, peak_afl_BOOL8* supported);
4148
4190
4216
4251
4286
4313
4340
4375
4397
4420
4451
4473
4496
4526
4548
4571
4572#ifdef __cplusplus
4573} // extern "C"
4574#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:486
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:493
@ PEAK_AFL_CONTROLLER_TYPE_WHITE_BALANCE
Automatic white balance controller.
Definition peak_afl.h:515
@ PEAK_AFL_CONTROLLER_TYPE_AUTOFOCUS
Automatic focus controller.
Definition peak_afl.h:526
@ PEAK_AFL_CONTROLLER_TYPE_BRIGHTNESS
Automatic brightness exposure/gain controller.
Definition peak_afl.h:504
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_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_AutoFeatureManager_SetCCM(peak_afl_manager_handle handle, float *ccm, size_t ccmSize)
Set the Color Correction Matrix (CCM)
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:769
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:790
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_ALGORITHM_MEDIAN
Median-based brightness calculation.
Definition peak_afl.h:779
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:874
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:881
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_ANALOG_GAIN
Analog gain control.
Definition peak_afl.h:916
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_GAIN
Generic gain control.
Definition peak_afl.h:904
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_COMBINED_GAIN
Combined analog and digital gain.
Definition peak_afl.h:940
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_HOST_GAIN
Host-based software gain.
Definition peak_afl.h:952
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_DIGITAL_GAIN
Digital gain control.
Definition peak_afl.h:928
@ PEAK_AFL_CONTROLLER_BRIGHTNESS_COMPONENT_EXPOSURE
Camera exposure time control.
Definition peak_afl.h:893
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:1073
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:1376
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:1364
@ PEAK_AFL_CONTROLLER_CALLBACK_FINISHED
Controller operation finished callback.
Definition peak_afl.h:1083
@ PEAK_AFL_CONTROLLER_CALLBACK_PROCESSING_DATA
Legacy processing data callback.
Definition peak_afl.h:1097
@ PEAK_AFL_CONTROLLER_CALLBACK_PROCESSING
Enhanced processing callback.
Definition peak_afl.h:1108
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:540
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:559
@ PEAK_AFL_CONTROLLER_AUTOMODE_OFF
Auto feature disabled.
Definition peak_afl.h:548
@ PEAK_AFL_CONTROLLER_AUTOMODE_ONCE
Single adjustment operation.
Definition peak_afl.h:570
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_ExposureLimit_GetRange(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature exposure limit range 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:692
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:713
@ PEAK_AFL_CONTROLLER_ALGORITHM_HILL_CLIMBING_SEARCH
Hill climbing search algorithm.
Definition peak_afl.h:726
@ PEAK_AFL_CONTROLLER_ALGORITHM_FULL_SCAN
Full range scan algorithm.
Definition peak_afl.h:754
@ PEAK_AFL_CONTROLLER_ALGORITHM_AUTO
Automatic algorithm selection.
Definition peak_afl.h:700
@ PEAK_AFL_CONTROLLER_ALGORITHM_GLOBAL_SEARCH
Global search algorithm.
Definition peak_afl.h:740
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_GetVersion(uint32_t *majorVersion, uint32_t *minorVersion, uint32_t *patchVersion, uint32_t *_)
Query the library version.
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_roi_preset
Predefined ROI preset configurations.
Definition peak_afl.h:1407
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:1417
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:805
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:848
@ PEAK_AFL_CONTROLLER_SHARPNESS_ALGORITHM_SOBEL
Sobel edge detection algorithm.
Definition peak_afl.h:837
@ PEAK_AFL_CONTROLLER_SHARPNESS_ALGORITHM_AUTO
Automatic algorithm selection.
Definition peak_afl.h:815
@ PEAK_AFL_CONTROLLER_SHARPNESS_ALGORITHM_HISTOGRAM_VARIANCE
Histogram variance algorithm.
Definition peak_afl.h:859
@ PEAK_AFL_CONTROLLER_SHARPNESS_ALGORITHM_TENENGRAD
Tenengrad gradient-based algorithm.
Definition peak_afl.h:826
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:380
peak_afl_controller_status
Controller operational status.
Definition peak_afl.h:586
@ PEAK_AFL_STATUS_SUCCESS
Operation completed successfully.
Definition peak_afl.h:386
@ PEAK_AFL_STATUS_INVALID_IMAGE_FORMAT
Invalid or unsupported image format.
Definition peak_afl.h:454
@ PEAK_AFL_STATUS_VALUE_ADJUSTED
Parameter value was adjusted.
Definition peak_afl.h:472
@ PEAK_AFL_STATUS_ACCESS_DENIED
Access denied to resource.
Definition peak_afl.h:424
@ PEAK_AFL_STATUS_BUSY
Resource is busy.
Definition peak_afl.h:434
@ PEAK_AFL_STATUS_NOT_SUPPORTED
Feature or operation not supported.
Definition peak_afl.h:462
@ PEAK_AFL_STATUS_INVALID_PARAMETER
Invalid parameter provided.
Definition peak_afl.h:416
@ PEAK_AFL_STATUS_BUFFER_TOO_SMALL
Provided buffer is too small.
Definition peak_afl.h:444
@ PEAK_AFL_STATUS_NOT_INITIALIZED
Library not initialized.
Definition peak_afl.h:406
@ PEAK_AFL_STATUS_ERROR
General error occurred.
Definition peak_afl.h:396
@ PEAK_AFL_CONTROLLER_STATUS_SKIPPED
Controller skipped processing this frame.
Definition peak_afl.h:674
@ PEAK_AFL_CONTROLLER_STATUS_OFF
Controller is disabled or inactive.
Definition peak_afl.h:600
@ PEAK_AFL_CONTROLLER_STATUS_ERROR
Controller encountered an error.
Definition peak_afl.h:661
@ PEAK_AFL_CONTROLLER_STATUS_UNDEFINED
Controller status undefined.
Definition peak_afl.h:588
@ PEAK_AFL_CONTROLLER_STATUS_FINISHED
Controller completed its operation successfully.
Definition peak_afl.h:624
@ PEAK_AFL_CONTROLLER_STATUS_BUSY
Controller is busy and cannot accept new requests.
Definition peak_afl.h:636
@ PEAK_AFL_CONTROLLER_STATUS_IN_PROGRESS
Controller is actively processing.
Definition peak_afl.h:612
@ PEAK_AFL_CONTROLLER_STATUS_CANCELED
Controller operation was canceled.
Definition peak_afl.h:648
uint8_t peak_afl_BOOL8
Custom 8-bit boolean type.
Definition peak_afl.h:1625
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:1035
@ PEAK_AFL_CONTROLLER_ROI_WEIGHT_WEAK
Low importance weight.
Definition peak_afl.h:1042
@ PEAK_AFL_CONTROLLER_ROI_WEIGHT_STRONG
High importance weight.
Definition peak_afl.h:1058
@ PEAK_AFL_CONTROLLER_ROI_WEIGHT_MEDIUM
Medium importance weight.
Definition peak_afl.h:1050
peak_afl_controller_whitebalance_component
White balance control components.
Definition peak_afl.h:968
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:1008
@ PEAK_AFL_CONTROLLER_WHITEBALANCE_COMPONENT_DIGITAL_GAIN
Digital gain white balance control.
Definition peak_afl.h:997
@ PEAK_AFL_CONTROLLER_WHITEBALANCE_COMPONENT_INVALID
Invalid or uninitialized component.
Definition peak_afl.h:975
@ PEAK_AFL_CONTROLLER_WHITEBALANCE_COMPONENT_ANALOG_GAIN
Analog gain white balance control.
Definition peak_afl.h:986
@ PEAK_AFL_CONTROLLER_WHITEBALANCE_COMPONENT_HOST_GAIN
Host-based software white balance.
Definition peak_afl.h:1019
void * peak_afl_controller_handle
Opaque handle for auto feature controllers.
Definition peak_afl.h:354
void * peak_afl_manager_handle
Opaque handle for auto feature managers.
Definition peak_afl.h:366
Controller parameter limit range.
Definition peak_afl.h:1566
int min
Minimum allowed value.
Definition peak_afl.h:1573
int max
Maximum allowed value.
Definition peak_afl.h:1581
Floating-point parameter limit range.
Definition peak_afl.h:1596
double max
Maximum allowed value.
Definition peak_afl.h:1611
double min
Minimum allowed value.
Definition peak_afl.h:1603
2D position structure
Definition peak_afl.h:1463
uint32_t y
Y-coordinate (vertical position)
Definition peak_afl.h:1478
uint32_t x
X-coordinate (horizontal position)
Definition peak_afl.h:1470
Brightness controller process data.
Definition peak_afl.h:1172
int mean
Calculated mean brightness value.
Definition peak_afl.h:1209
char reserved[64]
Reserved space for future extensions.
Definition peak_afl.h:1216
peak_afl_controller_brightness_component controller_component
Current brightness component being processed.
Definition peak_afl.h:1199
peak_afl_controller_status controller_status
Current controller status.
Definition peak_afl.h:1180
peak_afl_controllerType controller_type
Controller type (always BRIGHTNESS)
Definition peak_afl.h:1189
Focus controller process data.
Definition peak_afl.h:1309
int focus_value
Current focus position.
Definition peak_afl.h:1335
char reserved[64]
Reserved space for future extensions.
Definition peak_afl.h:1353
peak_afl_controller_status controller_status
Current controller status.
Definition peak_afl.h:1317
peak_afl_controllerType controller_type
Controller type (always AUTOFOCUS)
Definition peak_afl.h:1326
int sharpness_value
Current sharpness measurement.
Definition peak_afl.h:1346
White balance controller process data.
Definition peak_afl.h:1234
char reserved[64 - sizeof(peak_afl_controller_whitebalance_component)]
Reserved space for future extensions.
Definition peak_afl.h:1292
int mean_g
Calculated mean green channel value.
Definition peak_afl.h:1267
int mean_b
Calculated mean blue channel value.
Definition peak_afl.h:1275
peak_afl_controller_status controller_status
Current controller status.
Definition peak_afl.h:1242
peak_afl_controller_whitebalance_component controller_component
Current white balance component being processed.
Definition peak_afl.h:1285
int mean_r
Calculated mean red channel value.
Definition peak_afl.h:1259
peak_afl_controllerType controller_type
Controller type (always WHITE_BALANCE)
Definition peak_afl.h:1251
Generic process data structure.
Definition peak_afl.h:1126
char reserved[32]
Reserved space for future extensions.
Definition peak_afl.h:1154
peak_afl_controller_status controller_status
Current controller status.
Definition peak_afl.h:1136
peak_afl_controllerType controller_type
Type of controller generating this data.
Definition peak_afl.h:1147
2D rectangle structure
Definition peak_afl.h:1494
uint32_t width
Width of rectangle in pixels.
Definition peak_afl.h:1514
uint32_t height
Height of rectangle in pixels.
Definition peak_afl.h:1521
uint32_t y
Y-coordinate of top-left corner.
Definition peak_afl.h:1507
uint32_t x
X-coordinate of top-left corner.
Definition peak_afl.h:1500
2D size structure
Definition peak_afl.h:1432
uint32_t width
Width dimension in pixels.
Definition peak_afl.h:1440
uint32_t height
Height dimension in pixels.
Definition peak_afl.h:1449
Weighted region of interest for focus control.
Definition peak_afl.h:1536
peak_afl_roi_weight weight
Weight of this region.
Definition peak_afl.h:1551
peak_afl_rectangle roi
Rectangular region definition.
Definition peak_afl.h:1543