27#define PEAK_AFL_EXPORT
28#undef PEAK_AFL_CALLCONV
29#define PEAK_AFL_CALLCONV
38typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_Init)(void );
39typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_Exit)(void );
40typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_GetLastError)(
peak_afl_status * lastErrorCode,
char * lastErrorMessage,
size_t * lastErrorMessageSize);
41typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_GetVersion)(uint32_t * majorVersion, uint32_t * minorVersion, uint32_t * subminorVersion, uint32_t * patchVersion);
42typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoFeatureManager_Create)(
peak_afl_manager_handle * handle, PEAK_NODE_MAP_HANDLE nodeMapHandle);
46typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoFeatureManager_Process)(
peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle);
48typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoFeatureManager_DestroyAllController)(
peak_afl_manager_handle handle);
50typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoFeatureManager_SetGainIPL)(
peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle);
55typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_SkipFrames_Set)(
peak_afl_controller_handle controller, uint32_t count);
56typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_SkipFrames_Get)(
peak_afl_controller_handle controller, uint32_t * count);
57typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_SkipFrames_GetRange)(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc);
75typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GetLastAutoAverage)(
peak_afl_controller_handle controller, uint8_t * average);
76typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GetLastAutoAverages)(
peak_afl_controller_handle controller, uint8_t * averageRed, uint8_t * averageGreen, uint8_t * averageBlue);
78typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTarget_Set)(
peak_afl_controller_handle controller, uint32_t target);
79typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTarget_Get)(
peak_afl_controller_handle controller, uint32_t * target);
80typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTarget_GetRange)(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc);
82typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTolerance_Set)(
peak_afl_controller_handle controller, uint32_t tolerance);
83typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTolerance_Get)(
peak_afl_controller_handle controller, uint32_t * tolerance);
84typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTolerance_GetRange)(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc);
86typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoPercentile_Set)(
peak_afl_controller_handle controller,
double percentile);
87typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoPercentile_Get)(
peak_afl_controller_handle controller,
double * percentile);
88typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoPercentile_GetRange)(
peak_afl_controller_handle controller,
double * min,
double * max,
double * inc);
108typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Hysteresis_Default)(
peak_afl_controller_handle controller, uint8_t * hysteresis);
109typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Hysteresis_Set)(
peak_afl_controller_handle controller, uint8_t hysteresis);
110typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Hysteresis_Get)(
peak_afl_controller_handle controller, uint8_t * hysteresis);
111typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Hysteresis_GetRange)(
peak_afl_controller_handle controller, uint8_t * min, uint8_t * max, uint8_t * inc);
123 static DynamicLoader& instance()
125 static DynamicLoader dynamicLoader{};
126 return dynamicLoader;
128 bool loadLib(
const char* file);
130 bool setPointers(
bool load);
135 static bool isLoaded();
140 static PEAK_AFL_API_STATUS
peak_afl_GetVersion(uint32_t * majorVersion, uint32_t * minorVersion, uint32_t * subminorVersion, uint32_t * patchVersion);
217 void* m_handle =
nullptr;
218 dyn_peak_afl_Init m_peak_afl_Init{};
219 dyn_peak_afl_Exit m_peak_afl_Exit{};
220 dyn_peak_afl_GetLastError m_peak_afl_GetLastError{};
221 dyn_peak_afl_GetVersion m_peak_afl_GetVersion{};
222 dyn_peak_afl_AutoFeatureManager_Create m_peak_afl_AutoFeatureManager_Create{};
223 dyn_peak_afl_AutoFeatureManager_Destroy m_peak_afl_AutoFeatureManager_Destroy{};
224 dyn_peak_afl_AutoFeatureManager_AddController m_peak_afl_AutoFeatureManager_AddController{};
225 dyn_peak_afl_AutoFeatureManager_RemoveController m_peak_afl_AutoFeatureManager_RemoveController{};
226 dyn_peak_afl_AutoFeatureManager_Process m_peak_afl_AutoFeatureManager_Process{};
227 dyn_peak_afl_AutoFeatureManager_CreateController m_peak_afl_AutoFeatureManager_CreateController{};
228 dyn_peak_afl_AutoFeatureManager_DestroyAllController m_peak_afl_AutoFeatureManager_DestroyAllController{};
229 dyn_peak_afl_AutoFeatureManager_DestroyController m_peak_afl_AutoFeatureManager_DestroyController{};
230 dyn_peak_afl_AutoFeatureManager_SetGainIPL m_peak_afl_AutoFeatureManager_SetGainIPL{};
231 dyn_peak_afl_AutoFeatureManager_Status m_peak_afl_AutoFeatureManager_Status{};
232 dyn_peak_afl_AutoController_Create m_peak_afl_AutoController_Create{};
233 dyn_peak_afl_AutoController_Destroy m_peak_afl_AutoController_Destroy{};
234 dyn_peak_afl_AutoController_SkipFrames_IsSupported m_peak_afl_AutoController_SkipFrames_IsSupported{};
235 dyn_peak_afl_AutoController_SkipFrames_Set m_peak_afl_AutoController_SkipFrames_Set{};
236 dyn_peak_afl_AutoController_SkipFrames_Get m_peak_afl_AutoController_SkipFrames_Get{};
237 dyn_peak_afl_AutoController_SkipFrames_GetRange m_peak_afl_AutoController_SkipFrames_GetRange{};
238 dyn_peak_afl_AutoController_ROI_IsSupported m_peak_afl_AutoController_ROI_IsSupported{};
239 dyn_peak_afl_AutoController_ROI_Set m_peak_afl_AutoController_ROI_Set{};
240 dyn_peak_afl_AutoController_ROI_Get m_peak_afl_AutoController_ROI_Get{};
241 dyn_peak_afl_AutoController_ROI_Preset_IsSupported m_peak_afl_AutoController_ROI_Preset_IsSupported{};
242 dyn_peak_afl_AutoController_ROI_Preset_Set m_peak_afl_AutoController_ROI_Preset_Set{};
243 dyn_peak_afl_AutoController_Mode_IsSupported m_peak_afl_AutoController_Mode_IsSupported{};
244 dyn_peak_afl_AutoController_Mode_Set m_peak_afl_AutoController_Mode_Set{};
245 dyn_peak_afl_AutoController_Mode_Get m_peak_afl_AutoController_Mode_Get{};
246 dyn_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported m_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported{};
247 dyn_peak_afl_AutoController_BrightnessComponent_Mode_Set m_peak_afl_AutoController_BrightnessComponent_Mode_Set{};
248 dyn_peak_afl_AutoController_BrightnessComponent_Mode_Get m_peak_afl_AutoController_BrightnessComponent_Mode_Get{};
249 dyn_peak_afl_AutoController_BrightnessComponent_Status m_peak_afl_AutoController_BrightnessComponent_Status{};
250 dyn_peak_afl_AutoController_BrightnessComponent_Callback_Set m_peak_afl_AutoController_BrightnessComponent_Callback_Set{};
251 dyn_peak_afl_AutoController_ExposureLimit_IsSupported m_peak_afl_AutoController_ExposureLimit_IsSupported{};
252 dyn_peak_afl_AutoController_ExposureLimit_Set m_peak_afl_AutoController_ExposureLimit_Set{};
253 dyn_peak_afl_AutoController_ExposureLimit_Get m_peak_afl_AutoController_ExposureLimit_Get{};
254 dyn_peak_afl_AutoController_Status m_peak_afl_AutoController_Status{};
255 dyn_peak_afl_AutoController_GetLastAutoAverage m_peak_afl_AutoController_GetLastAutoAverage{};
256 dyn_peak_afl_AutoController_GetLastAutoAverages m_peak_afl_AutoController_GetLastAutoAverages{};
257 dyn_peak_afl_AutoController_AutoTarget_IsSupported m_peak_afl_AutoController_AutoTarget_IsSupported{};
258 dyn_peak_afl_AutoController_AutoTarget_Set m_peak_afl_AutoController_AutoTarget_Set{};
259 dyn_peak_afl_AutoController_AutoTarget_Get m_peak_afl_AutoController_AutoTarget_Get{};
260 dyn_peak_afl_AutoController_AutoTarget_GetRange m_peak_afl_AutoController_AutoTarget_GetRange{};
261 dyn_peak_afl_AutoController_AutoTolerance_IsSupported m_peak_afl_AutoController_AutoTolerance_IsSupported{};
262 dyn_peak_afl_AutoController_AutoTolerance_Set m_peak_afl_AutoController_AutoTolerance_Set{};
263 dyn_peak_afl_AutoController_AutoTolerance_Get m_peak_afl_AutoController_AutoTolerance_Get{};
264 dyn_peak_afl_AutoController_AutoTolerance_GetRange m_peak_afl_AutoController_AutoTolerance_GetRange{};
265 dyn_peak_afl_AutoController_AutoPercentile_IsSupported m_peak_afl_AutoController_AutoPercentile_IsSupported{};
266 dyn_peak_afl_AutoController_AutoPercentile_Set m_peak_afl_AutoController_AutoPercentile_Set{};
267 dyn_peak_afl_AutoController_AutoPercentile_Get m_peak_afl_AutoController_AutoPercentile_Get{};
268 dyn_peak_afl_AutoController_AutoPercentile_GetRange m_peak_afl_AutoController_AutoPercentile_GetRange{};
269 dyn_peak_afl_AutoController_Type_Get m_peak_afl_AutoController_Type_Get{};
270 dyn_peak_afl_AutoController_Algorithm_IsSupported m_peak_afl_AutoController_Algorithm_IsSupported{};
271 dyn_peak_afl_AutoController_Algorithm_Set m_peak_afl_AutoController_Algorithm_Set{};
272 dyn_peak_afl_AutoController_Algorithm_Get m_peak_afl_AutoController_Algorithm_Get{};
273 dyn_peak_afl_AutoController_Algorithm_GetList m_peak_afl_AutoController_Algorithm_GetList{};
274 dyn_peak_afl_AutoController_SharpnessAlgorithm_IsSupported m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported{};
275 dyn_peak_afl_AutoController_SharpnessAlgorithm_Set m_peak_afl_AutoController_SharpnessAlgorithm_Set{};
276 dyn_peak_afl_AutoController_SharpnessAlgorithm_Get m_peak_afl_AutoController_SharpnessAlgorithm_Get{};
277 dyn_peak_afl_AutoController_SharpnessAlgorithm_GetList m_peak_afl_AutoController_SharpnessAlgorithm_GetList{};
278 dyn_peak_afl_AutoController_Callback_Set m_peak_afl_AutoController_Callback_Set{};
279 dyn_peak_afl_AutoController_Weighted_ROI_IsSupported m_peak_afl_AutoController_Weighted_ROI_IsSupported{};
280 dyn_peak_afl_AutoController_Weighted_ROI_Min_Size m_peak_afl_AutoController_Weighted_ROI_Min_Size{};
281 dyn_peak_afl_AutoController_Weighted_ROI_Set m_peak_afl_AutoController_Weighted_ROI_Set{};
282 dyn_peak_afl_AutoController_Weighted_ROI_Get m_peak_afl_AutoController_Weighted_ROI_Get{};
283 dyn_peak_afl_AutoController_Limit_IsSupported m_peak_afl_AutoController_Limit_IsSupported{};
284 dyn_peak_afl_AutoController_Limit_Default m_peak_afl_AutoController_Limit_Default{};
285 dyn_peak_afl_AutoController_Limit_Set m_peak_afl_AutoController_Limit_Set{};
286 dyn_peak_afl_AutoController_Limit_Get m_peak_afl_AutoController_Limit_Get{};
287 dyn_peak_afl_AutoController_Hysteresis_IsSupported m_peak_afl_AutoController_Hysteresis_IsSupported{};
288 dyn_peak_afl_AutoController_Hysteresis_Default m_peak_afl_AutoController_Hysteresis_Default{};
289 dyn_peak_afl_AutoController_Hysteresis_Set m_peak_afl_AutoController_Hysteresis_Set{};
290 dyn_peak_afl_AutoController_Hysteresis_Get m_peak_afl_AutoController_Hysteresis_Get{};
291 dyn_peak_afl_AutoController_Hysteresis_GetRange m_peak_afl_AutoController_Hysteresis_GetRange{};
292 dyn_peak_afl_AutoController_GainLimit_IsSupported m_peak_afl_AutoController_GainLimit_IsSupported{};
293 dyn_peak_afl_AutoController_GainLimit_Set m_peak_afl_AutoController_GainLimit_Set{};
294 dyn_peak_afl_AutoController_GainLimit_Get m_peak_afl_AutoController_GainLimit_Get{};
295 dyn_peak_afl_AutoController_GainLimit_GetRange m_peak_afl_AutoController_GainLimit_GetRange{};
299inline void* import_function(
void *module,
const char* proc_name)
302 return dlsym(module, proc_name);
304 return GetProcAddress(
static_cast<HMODULE
>(module), proc_name);
308inline DynamicLoader::DynamicLoader()
310#if defined _WIN32 || defined _WIN64
312 if (_wgetenv_s(&sz, NULL, 0, L
"IDS_PEAK_GENERIC_SDK_PATH") == 0
315 std::vector<wchar_t> env_ids_peak_afl(sz);
316 if (_wgetenv_s(&sz, env_ids_peak_afl.data(), sz, L
"IDS_PEAK_GENERIC_SDK_PATH") == 0)
318 if (_wgetenv_s(&sz, NULL, 0, L
"PATH") == 0
321 std::vector<wchar_t> env_path(sz);
322 if (_wgetenv_s(&sz, env_path.data(), sz, L
"PATH") == 0)
324 std::wstring ids_peak_afl_path(env_ids_peak_afl.data());
326 ids_peak_afl_path.append(L
"\\afl\\lib\\x86_64");
328 ids_peak_afl_path.append(L
"\\afl\\lib\\x86_32");
330 AddDllDirectory(ids_peak_afl_path.c_str());
336 loadLib(
"ids_peak_afl.dll");
338 loadLib(
"libids_peak_afl.so");
342inline DynamicLoader::~DynamicLoader()
344 if(m_handle !=
nullptr)
350inline bool DynamicLoader::isLoaded()
352 auto&& inst = instance();
353 return inst.m_handle !=
nullptr;
356inline void DynamicLoader::unload()
360 if (m_handle !=
nullptr)
365 FreeLibrary(
static_cast<HMODULE
>(m_handle));
372inline bool DynamicLoader::loadLib(
const char* file)
379 m_handle = dlopen(file, RTLD_NOW);
381 m_handle = LoadLibraryExA(file,
nullptr, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
383 if (m_handle !=
nullptr)
388 }
catch (
const std::exception&) {
395 throw std::runtime_error(std::string(
"Lib load failed: ") + file);
400 throw std::runtime_error(
"Filename empty");
406inline bool DynamicLoader::setPointers(
bool load)
409 m_peak_afl_Init = (dyn_peak_afl_Init) (load ? import_function(m_handle,
"peak_afl_Init") :
nullptr);
410 if(m_peak_afl_Init ==
nullptr && load)
412 throw std::runtime_error(
"Failed to load peak_afl_Init");
415 m_peak_afl_Exit = (dyn_peak_afl_Exit) (load ? import_function(m_handle,
"peak_afl_Exit") :
nullptr);
416 if(m_peak_afl_Exit ==
nullptr && load)
418 throw std::runtime_error(
"Failed to load peak_afl_Exit");
421 m_peak_afl_GetLastError = (dyn_peak_afl_GetLastError) (load ? import_function(m_handle,
"peak_afl_GetLastError") :
nullptr);
422 if(m_peak_afl_GetLastError ==
nullptr && load)
424 throw std::runtime_error(
"Failed to load peak_afl_GetLastError");
427 m_peak_afl_GetVersion = (dyn_peak_afl_GetVersion) (load ? import_function(m_handle,
"peak_afl_GetVersion") :
nullptr);
428 if(m_peak_afl_GetVersion ==
nullptr && load)
430 throw std::runtime_error(
"Failed to load peak_afl_GetVersion");
433 m_peak_afl_AutoFeatureManager_Create = (dyn_peak_afl_AutoFeatureManager_Create) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_Create") :
nullptr);
434 if(m_peak_afl_AutoFeatureManager_Create ==
nullptr && load)
436 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_Create");
439 m_peak_afl_AutoFeatureManager_Destroy = (dyn_peak_afl_AutoFeatureManager_Destroy) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_Destroy") :
nullptr);
440 if(m_peak_afl_AutoFeatureManager_Destroy ==
nullptr && load)
442 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_Destroy");
445 m_peak_afl_AutoFeatureManager_AddController = (dyn_peak_afl_AutoFeatureManager_AddController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_AddController") :
nullptr);
446 if(m_peak_afl_AutoFeatureManager_AddController ==
nullptr && load)
448 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_AddController");
451 m_peak_afl_AutoFeatureManager_RemoveController = (dyn_peak_afl_AutoFeatureManager_RemoveController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_RemoveController") :
nullptr);
452 if(m_peak_afl_AutoFeatureManager_RemoveController ==
nullptr && load)
454 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_RemoveController");
457 m_peak_afl_AutoFeatureManager_Process = (dyn_peak_afl_AutoFeatureManager_Process) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_Process") :
nullptr);
458 if(m_peak_afl_AutoFeatureManager_Process ==
nullptr && load)
460 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_Process");
463 m_peak_afl_AutoFeatureManager_CreateController = (dyn_peak_afl_AutoFeatureManager_CreateController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_CreateController") :
nullptr);
464 if(m_peak_afl_AutoFeatureManager_CreateController ==
nullptr && load)
466 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_CreateController");
469 m_peak_afl_AutoFeatureManager_DestroyAllController = (dyn_peak_afl_AutoFeatureManager_DestroyAllController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_DestroyAllController") :
nullptr);
470 if(m_peak_afl_AutoFeatureManager_DestroyAllController ==
nullptr && load)
472 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_DestroyAllController");
475 m_peak_afl_AutoFeatureManager_DestroyController = (dyn_peak_afl_AutoFeatureManager_DestroyController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_DestroyController") :
nullptr);
476 if(m_peak_afl_AutoFeatureManager_DestroyController ==
nullptr && load)
478 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_DestroyController");
481 m_peak_afl_AutoFeatureManager_SetGainIPL = (dyn_peak_afl_AutoFeatureManager_SetGainIPL) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_SetGainIPL") :
nullptr);
482 if(m_peak_afl_AutoFeatureManager_SetGainIPL ==
nullptr && load)
484 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_SetGainIPL");
487 m_peak_afl_AutoFeatureManager_Status = (dyn_peak_afl_AutoFeatureManager_Status) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_Status") :
nullptr);
488 if(m_peak_afl_AutoFeatureManager_Status ==
nullptr && load)
490 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_Status");
493 m_peak_afl_AutoController_Create = (dyn_peak_afl_AutoController_Create) (load ? import_function(m_handle,
"peak_afl_AutoController_Create") :
nullptr);
494 if(m_peak_afl_AutoController_Create ==
nullptr && load)
496 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Create");
499 m_peak_afl_AutoController_Destroy = (dyn_peak_afl_AutoController_Destroy) (load ? import_function(m_handle,
"peak_afl_AutoController_Destroy") :
nullptr);
500 if(m_peak_afl_AutoController_Destroy ==
nullptr && load)
502 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Destroy");
505 m_peak_afl_AutoController_SkipFrames_IsSupported = (dyn_peak_afl_AutoController_SkipFrames_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_SkipFrames_IsSupported") :
nullptr);
506 if(m_peak_afl_AutoController_SkipFrames_IsSupported ==
nullptr && load)
508 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SkipFrames_IsSupported");
511 m_peak_afl_AutoController_SkipFrames_Set = (dyn_peak_afl_AutoController_SkipFrames_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_SkipFrames_Set") :
nullptr);
512 if(m_peak_afl_AutoController_SkipFrames_Set ==
nullptr && load)
514 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SkipFrames_Set");
517 m_peak_afl_AutoController_SkipFrames_Get = (dyn_peak_afl_AutoController_SkipFrames_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_SkipFrames_Get") :
nullptr);
518 if(m_peak_afl_AutoController_SkipFrames_Get ==
nullptr && load)
520 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SkipFrames_Get");
523 m_peak_afl_AutoController_SkipFrames_GetRange = (dyn_peak_afl_AutoController_SkipFrames_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_SkipFrames_GetRange") :
nullptr);
524 if(m_peak_afl_AutoController_SkipFrames_GetRange ==
nullptr && load)
526 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SkipFrames_GetRange");
529 m_peak_afl_AutoController_ROI_IsSupported = (dyn_peak_afl_AutoController_ROI_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_ROI_IsSupported") :
nullptr);
530 if(m_peak_afl_AutoController_ROI_IsSupported ==
nullptr && load)
532 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_IsSupported");
535 m_peak_afl_AutoController_ROI_Set = (dyn_peak_afl_AutoController_ROI_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_ROI_Set") :
nullptr);
536 if(m_peak_afl_AutoController_ROI_Set ==
nullptr && load)
538 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_Set");
541 m_peak_afl_AutoController_ROI_Get = (dyn_peak_afl_AutoController_ROI_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_ROI_Get") :
nullptr);
542 if(m_peak_afl_AutoController_ROI_Get ==
nullptr && load)
544 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_Get");
547 m_peak_afl_AutoController_ROI_Preset_IsSupported = (dyn_peak_afl_AutoController_ROI_Preset_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_ROI_Preset_IsSupported") :
nullptr);
548 if(m_peak_afl_AutoController_ROI_Preset_IsSupported ==
nullptr && load)
550 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_Preset_IsSupported");
553 m_peak_afl_AutoController_ROI_Preset_Set = (dyn_peak_afl_AutoController_ROI_Preset_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_ROI_Preset_Set") :
nullptr);
554 if(m_peak_afl_AutoController_ROI_Preset_Set ==
nullptr && load)
556 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_Preset_Set");
559 m_peak_afl_AutoController_Mode_IsSupported = (dyn_peak_afl_AutoController_Mode_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_Mode_IsSupported") :
nullptr);
560 if(m_peak_afl_AutoController_Mode_IsSupported ==
nullptr && load)
562 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Mode_IsSupported");
565 m_peak_afl_AutoController_Mode_Set = (dyn_peak_afl_AutoController_Mode_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Mode_Set") :
nullptr);
566 if(m_peak_afl_AutoController_Mode_Set ==
nullptr && load)
568 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Mode_Set");
571 m_peak_afl_AutoController_Mode_Get = (dyn_peak_afl_AutoController_Mode_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Mode_Get") :
nullptr);
572 if(m_peak_afl_AutoController_Mode_Get ==
nullptr && load)
574 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Mode_Get");
577 m_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported = (dyn_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessComponent_Mode_IsSupported") :
nullptr);
578 if(m_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported ==
nullptr && load)
580 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Mode_IsSupported");
583 m_peak_afl_AutoController_BrightnessComponent_Mode_Set = (dyn_peak_afl_AutoController_BrightnessComponent_Mode_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessComponent_Mode_Set") :
nullptr);
584 if(m_peak_afl_AutoController_BrightnessComponent_Mode_Set ==
nullptr && load)
586 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Mode_Set");
589 m_peak_afl_AutoController_BrightnessComponent_Mode_Get = (dyn_peak_afl_AutoController_BrightnessComponent_Mode_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessComponent_Mode_Get") :
nullptr);
590 if(m_peak_afl_AutoController_BrightnessComponent_Mode_Get ==
nullptr && load)
592 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Mode_Get");
595 m_peak_afl_AutoController_BrightnessComponent_Status = (dyn_peak_afl_AutoController_BrightnessComponent_Status) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessComponent_Status") :
nullptr);
596 if(m_peak_afl_AutoController_BrightnessComponent_Status ==
nullptr && load)
598 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Status");
601 m_peak_afl_AutoController_BrightnessComponent_Callback_Set = (dyn_peak_afl_AutoController_BrightnessComponent_Callback_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessComponent_Callback_Set") :
nullptr);
602 if(m_peak_afl_AutoController_BrightnessComponent_Callback_Set ==
nullptr && load)
604 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Callback_Set");
607 m_peak_afl_AutoController_ExposureLimit_IsSupported = (dyn_peak_afl_AutoController_ExposureLimit_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_ExposureLimit_IsSupported") :
nullptr);
608 if(m_peak_afl_AutoController_ExposureLimit_IsSupported ==
nullptr && load)
610 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ExposureLimit_IsSupported");
613 m_peak_afl_AutoController_ExposureLimit_Set = (dyn_peak_afl_AutoController_ExposureLimit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_ExposureLimit_Set") :
nullptr);
614 if(m_peak_afl_AutoController_ExposureLimit_Set ==
nullptr && load)
616 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ExposureLimit_Set");
619 m_peak_afl_AutoController_ExposureLimit_Get = (dyn_peak_afl_AutoController_ExposureLimit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_ExposureLimit_Get") :
nullptr);
620 if(m_peak_afl_AutoController_ExposureLimit_Get ==
nullptr && load)
622 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ExposureLimit_Get");
625 m_peak_afl_AutoController_Status = (dyn_peak_afl_AutoController_Status) (load ? import_function(m_handle,
"peak_afl_AutoController_Status") :
nullptr);
626 if(m_peak_afl_AutoController_Status ==
nullptr && load)
628 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Status");
631 m_peak_afl_AutoController_GetLastAutoAverage = (dyn_peak_afl_AutoController_GetLastAutoAverage) (load ? import_function(m_handle,
"peak_afl_AutoController_GetLastAutoAverage") :
nullptr);
632 if(m_peak_afl_AutoController_GetLastAutoAverage ==
nullptr && load)
634 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GetLastAutoAverage");
637 m_peak_afl_AutoController_GetLastAutoAverages = (dyn_peak_afl_AutoController_GetLastAutoAverages) (load ? import_function(m_handle,
"peak_afl_AutoController_GetLastAutoAverages") :
nullptr);
638 if(m_peak_afl_AutoController_GetLastAutoAverages ==
nullptr && load)
640 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GetLastAutoAverages");
643 m_peak_afl_AutoController_AutoTarget_IsSupported = (dyn_peak_afl_AutoController_AutoTarget_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTarget_IsSupported") :
nullptr);
644 if(m_peak_afl_AutoController_AutoTarget_IsSupported ==
nullptr && load)
646 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTarget_IsSupported");
649 m_peak_afl_AutoController_AutoTarget_Set = (dyn_peak_afl_AutoController_AutoTarget_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTarget_Set") :
nullptr);
650 if(m_peak_afl_AutoController_AutoTarget_Set ==
nullptr && load)
652 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTarget_Set");
655 m_peak_afl_AutoController_AutoTarget_Get = (dyn_peak_afl_AutoController_AutoTarget_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTarget_Get") :
nullptr);
656 if(m_peak_afl_AutoController_AutoTarget_Get ==
nullptr && load)
658 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTarget_Get");
661 m_peak_afl_AutoController_AutoTarget_GetRange = (dyn_peak_afl_AutoController_AutoTarget_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTarget_GetRange") :
nullptr);
662 if(m_peak_afl_AutoController_AutoTarget_GetRange ==
nullptr && load)
664 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTarget_GetRange");
667 m_peak_afl_AutoController_AutoTolerance_IsSupported = (dyn_peak_afl_AutoController_AutoTolerance_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTolerance_IsSupported") :
nullptr);
668 if(m_peak_afl_AutoController_AutoTolerance_IsSupported ==
nullptr && load)
670 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTolerance_IsSupported");
673 m_peak_afl_AutoController_AutoTolerance_Set = (dyn_peak_afl_AutoController_AutoTolerance_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTolerance_Set") :
nullptr);
674 if(m_peak_afl_AutoController_AutoTolerance_Set ==
nullptr && load)
676 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTolerance_Set");
679 m_peak_afl_AutoController_AutoTolerance_Get = (dyn_peak_afl_AutoController_AutoTolerance_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTolerance_Get") :
nullptr);
680 if(m_peak_afl_AutoController_AutoTolerance_Get ==
nullptr && load)
682 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTolerance_Get");
685 m_peak_afl_AutoController_AutoTolerance_GetRange = (dyn_peak_afl_AutoController_AutoTolerance_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTolerance_GetRange") :
nullptr);
686 if(m_peak_afl_AutoController_AutoTolerance_GetRange ==
nullptr && load)
688 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTolerance_GetRange");
691 m_peak_afl_AutoController_AutoPercentile_IsSupported = (dyn_peak_afl_AutoController_AutoPercentile_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoPercentile_IsSupported") :
nullptr);
692 if(m_peak_afl_AutoController_AutoPercentile_IsSupported ==
nullptr && load)
694 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoPercentile_IsSupported");
697 m_peak_afl_AutoController_AutoPercentile_Set = (dyn_peak_afl_AutoController_AutoPercentile_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoPercentile_Set") :
nullptr);
698 if(m_peak_afl_AutoController_AutoPercentile_Set ==
nullptr && load)
700 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoPercentile_Set");
703 m_peak_afl_AutoController_AutoPercentile_Get = (dyn_peak_afl_AutoController_AutoPercentile_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoPercentile_Get") :
nullptr);
704 if(m_peak_afl_AutoController_AutoPercentile_Get ==
nullptr && load)
706 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoPercentile_Get");
709 m_peak_afl_AutoController_AutoPercentile_GetRange = (dyn_peak_afl_AutoController_AutoPercentile_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoPercentile_GetRange") :
nullptr);
710 if(m_peak_afl_AutoController_AutoPercentile_GetRange ==
nullptr && load)
712 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoPercentile_GetRange");
715 m_peak_afl_AutoController_Type_Get = (dyn_peak_afl_AutoController_Type_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Type_Get") :
nullptr);
716 if(m_peak_afl_AutoController_Type_Get ==
nullptr && load)
718 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Type_Get");
721 m_peak_afl_AutoController_Algorithm_IsSupported = (dyn_peak_afl_AutoController_Algorithm_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_Algorithm_IsSupported") :
nullptr);
722 if(m_peak_afl_AutoController_Algorithm_IsSupported ==
nullptr && load)
724 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Algorithm_IsSupported");
727 m_peak_afl_AutoController_Algorithm_Set = (dyn_peak_afl_AutoController_Algorithm_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Algorithm_Set") :
nullptr);
728 if(m_peak_afl_AutoController_Algorithm_Set ==
nullptr && load)
730 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Algorithm_Set");
733 m_peak_afl_AutoController_Algorithm_Get = (dyn_peak_afl_AutoController_Algorithm_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Algorithm_Get") :
nullptr);
734 if(m_peak_afl_AutoController_Algorithm_Get ==
nullptr && load)
736 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Algorithm_Get");
739 m_peak_afl_AutoController_Algorithm_GetList = (dyn_peak_afl_AutoController_Algorithm_GetList) (load ? import_function(m_handle,
"peak_afl_AutoController_Algorithm_GetList") :
nullptr);
740 if(m_peak_afl_AutoController_Algorithm_GetList ==
nullptr && load)
742 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Algorithm_GetList");
745 m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported = (dyn_peak_afl_AutoController_SharpnessAlgorithm_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_SharpnessAlgorithm_IsSupported") :
nullptr);
746 if(m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported ==
nullptr && load)
748 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SharpnessAlgorithm_IsSupported");
751 m_peak_afl_AutoController_SharpnessAlgorithm_Set = (dyn_peak_afl_AutoController_SharpnessAlgorithm_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_SharpnessAlgorithm_Set") :
nullptr);
752 if(m_peak_afl_AutoController_SharpnessAlgorithm_Set ==
nullptr && load)
754 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SharpnessAlgorithm_Set");
757 m_peak_afl_AutoController_SharpnessAlgorithm_Get = (dyn_peak_afl_AutoController_SharpnessAlgorithm_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_SharpnessAlgorithm_Get") :
nullptr);
758 if(m_peak_afl_AutoController_SharpnessAlgorithm_Get ==
nullptr && load)
760 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SharpnessAlgorithm_Get");
763 m_peak_afl_AutoController_SharpnessAlgorithm_GetList = (dyn_peak_afl_AutoController_SharpnessAlgorithm_GetList) (load ? import_function(m_handle,
"peak_afl_AutoController_SharpnessAlgorithm_GetList") :
nullptr);
764 if(m_peak_afl_AutoController_SharpnessAlgorithm_GetList ==
nullptr && load)
766 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SharpnessAlgorithm_GetList");
769 m_peak_afl_AutoController_Callback_Set = (dyn_peak_afl_AutoController_Callback_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Callback_Set") :
nullptr);
770 if(m_peak_afl_AutoController_Callback_Set ==
nullptr && load)
772 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Callback_Set");
775 m_peak_afl_AutoController_Weighted_ROI_IsSupported = (dyn_peak_afl_AutoController_Weighted_ROI_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_Weighted_ROI_IsSupported") :
nullptr);
776 if(m_peak_afl_AutoController_Weighted_ROI_IsSupported ==
nullptr && load)
778 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Weighted_ROI_IsSupported");
781 m_peak_afl_AutoController_Weighted_ROI_Min_Size = (dyn_peak_afl_AutoController_Weighted_ROI_Min_Size) (load ? import_function(m_handle,
"peak_afl_AutoController_Weighted_ROI_Min_Size") :
nullptr);
782 if(m_peak_afl_AutoController_Weighted_ROI_Min_Size ==
nullptr && load)
784 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Weighted_ROI_Min_Size");
787 m_peak_afl_AutoController_Weighted_ROI_Set = (dyn_peak_afl_AutoController_Weighted_ROI_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Weighted_ROI_Set") :
nullptr);
788 if(m_peak_afl_AutoController_Weighted_ROI_Set ==
nullptr && load)
790 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Weighted_ROI_Set");
793 m_peak_afl_AutoController_Weighted_ROI_Get = (dyn_peak_afl_AutoController_Weighted_ROI_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Weighted_ROI_Get") :
nullptr);
794 if(m_peak_afl_AutoController_Weighted_ROI_Get ==
nullptr && load)
796 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Weighted_ROI_Get");
799 m_peak_afl_AutoController_Limit_IsSupported = (dyn_peak_afl_AutoController_Limit_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_Limit_IsSupported") :
nullptr);
800 if(m_peak_afl_AutoController_Limit_IsSupported ==
nullptr && load)
802 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Limit_IsSupported");
805 m_peak_afl_AutoController_Limit_Default = (dyn_peak_afl_AutoController_Limit_Default) (load ? import_function(m_handle,
"peak_afl_AutoController_Limit_Default") :
nullptr);
806 if(m_peak_afl_AutoController_Limit_Default ==
nullptr && load)
808 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Limit_Default");
811 m_peak_afl_AutoController_Limit_Set = (dyn_peak_afl_AutoController_Limit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Limit_Set") :
nullptr);
812 if(m_peak_afl_AutoController_Limit_Set ==
nullptr && load)
814 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Limit_Set");
817 m_peak_afl_AutoController_Limit_Get = (dyn_peak_afl_AutoController_Limit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Limit_Get") :
nullptr);
818 if(m_peak_afl_AutoController_Limit_Get ==
nullptr && load)
820 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Limit_Get");
823 m_peak_afl_AutoController_Hysteresis_IsSupported = (dyn_peak_afl_AutoController_Hysteresis_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_IsSupported") :
nullptr);
824 if(m_peak_afl_AutoController_Hysteresis_IsSupported ==
nullptr && load)
826 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_IsSupported");
829 m_peak_afl_AutoController_Hysteresis_Default = (dyn_peak_afl_AutoController_Hysteresis_Default) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_Default") :
nullptr);
830 if(m_peak_afl_AutoController_Hysteresis_Default ==
nullptr && load)
832 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_Default");
835 m_peak_afl_AutoController_Hysteresis_Set = (dyn_peak_afl_AutoController_Hysteresis_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_Set") :
nullptr);
836 if(m_peak_afl_AutoController_Hysteresis_Set ==
nullptr && load)
838 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_Set");
841 m_peak_afl_AutoController_Hysteresis_Get = (dyn_peak_afl_AutoController_Hysteresis_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_Get") :
nullptr);
842 if(m_peak_afl_AutoController_Hysteresis_Get ==
nullptr && load)
844 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_Get");
847 m_peak_afl_AutoController_Hysteresis_GetRange = (dyn_peak_afl_AutoController_Hysteresis_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_GetRange") :
nullptr);
848 if(m_peak_afl_AutoController_Hysteresis_GetRange ==
nullptr && load)
850 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_GetRange");
853 m_peak_afl_AutoController_GainLimit_IsSupported = (dyn_peak_afl_AutoController_GainLimit_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_GainLimit_IsSupported") :
nullptr);
854 if(m_peak_afl_AutoController_GainLimit_IsSupported ==
nullptr && load)
856 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainLimit_IsSupported");
859 m_peak_afl_AutoController_GainLimit_Set = (dyn_peak_afl_AutoController_GainLimit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_GainLimit_Set") :
nullptr);
860 if(m_peak_afl_AutoController_GainLimit_Set ==
nullptr && load)
862 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainLimit_Set");
865 m_peak_afl_AutoController_GainLimit_Get = (dyn_peak_afl_AutoController_GainLimit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_GainLimit_Get") :
nullptr);
866 if(m_peak_afl_AutoController_GainLimit_Get ==
nullptr && load)
868 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainLimit_Get");
871 m_peak_afl_AutoController_GainLimit_GetRange = (dyn_peak_afl_AutoController_GainLimit_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_GainLimit_GetRange") :
nullptr);
872 if(m_peak_afl_AutoController_GainLimit_GetRange ==
nullptr && load)
874 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainLimit_GetRange");
881inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_Init(
void )
883 auto& inst = instance();
884 if(inst.m_peak_afl_Init)
886 return inst.m_peak_afl_Init();
890 throw std::runtime_error(
"Library not loaded!");
894inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_Exit(
void )
896 auto& inst = instance();
897 if(inst.m_peak_afl_Exit)
899 return inst.m_peak_afl_Exit();
903 throw std::runtime_error(
"Library not loaded!");
907inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_GetLastError(
peak_afl_status * lastErrorCode,
char * lastErrorMessage,
size_t * lastErrorMessageSize)
909 auto& inst = instance();
910 if(inst.m_peak_afl_GetLastError)
912 return inst.m_peak_afl_GetLastError(lastErrorCode, lastErrorMessage, lastErrorMessageSize);
916 throw std::runtime_error(
"Library not loaded!");
920inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_GetVersion(uint32_t * majorVersion, uint32_t * minorVersion, uint32_t * subminorVersion, uint32_t * patchVersion)
922 auto& inst = instance();
923 if(inst.m_peak_afl_GetVersion)
925 return inst.m_peak_afl_GetVersion(majorVersion, minorVersion, subminorVersion, patchVersion);
929 throw std::runtime_error(
"Library not loaded!");
933inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoFeatureManager_Create(
peak_afl_manager_handle * handle, PEAK_NODE_MAP_HANDLE nodeMapHandle)
935 auto& inst = instance();
936 if(inst.m_peak_afl_AutoFeatureManager_Create)
938 return inst.m_peak_afl_AutoFeatureManager_Create(handle, nodeMapHandle);
942 throw std::runtime_error(
"Library not loaded!");
948 auto& inst = instance();
949 if(inst.m_peak_afl_AutoFeatureManager_Destroy)
951 return inst.m_peak_afl_AutoFeatureManager_Destroy(handle);
955 throw std::runtime_error(
"Library not loaded!");
961 auto& inst = instance();
962 if(inst.m_peak_afl_AutoFeatureManager_AddController)
964 return inst.m_peak_afl_AutoFeatureManager_AddController(handle, controller);
968 throw std::runtime_error(
"Library not loaded!");
974 auto& inst = instance();
975 if(inst.m_peak_afl_AutoFeatureManager_RemoveController)
977 return inst.m_peak_afl_AutoFeatureManager_RemoveController(handle, controller);
981 throw std::runtime_error(
"Library not loaded!");
985inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoFeatureManager_Process(
peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle)
987 auto& inst = instance();
988 if(inst.m_peak_afl_AutoFeatureManager_Process)
990 return inst.m_peak_afl_AutoFeatureManager_Process(handle, imageHandle);
994 throw std::runtime_error(
"Library not loaded!");
1000 auto& inst = instance();
1001 if(inst.m_peak_afl_AutoFeatureManager_CreateController)
1003 return inst.m_peak_afl_AutoFeatureManager_CreateController(handle, controller, controllerType);
1007 throw std::runtime_error(
"Library not loaded!");
1011inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoFeatureManager_DestroyAllController(
peak_afl_manager_handle handle)
1013 auto& inst = instance();
1014 if(inst.m_peak_afl_AutoFeatureManager_DestroyAllController)
1016 return inst.m_peak_afl_AutoFeatureManager_DestroyAllController(handle);
1020 throw std::runtime_error(
"Library not loaded!");
1026 auto& inst = instance();
1027 if(inst.m_peak_afl_AutoFeatureManager_DestroyController)
1029 return inst.m_peak_afl_AutoFeatureManager_DestroyController(handle, controller);
1033 throw std::runtime_error(
"Library not loaded!");
1037inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoFeatureManager_SetGainIPL(
peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle)
1039 auto& inst = instance();
1040 if(inst.m_peak_afl_AutoFeatureManager_SetGainIPL)
1042 return inst.m_peak_afl_AutoFeatureManager_SetGainIPL(handle, gainHandle);
1046 throw std::runtime_error(
"Library not loaded!");
1052 auto& inst = instance();
1053 if(inst.m_peak_afl_AutoFeatureManager_Status)
1055 return inst.m_peak_afl_AutoFeatureManager_Status(handle, running);
1059 throw std::runtime_error(
"Library not loaded!");
1065 auto& inst = instance();
1066 if(inst.m_peak_afl_AutoController_Create)
1068 return inst.m_peak_afl_AutoController_Create(controller, controllerType);
1072 throw std::runtime_error(
"Library not loaded!");
1078 auto& inst = instance();
1079 if(inst.m_peak_afl_AutoController_Destroy)
1081 return inst.m_peak_afl_AutoController_Destroy(controller);
1085 throw std::runtime_error(
"Library not loaded!");
1091 auto& inst = instance();
1092 if(inst.m_peak_afl_AutoController_SkipFrames_IsSupported)
1094 return inst.m_peak_afl_AutoController_SkipFrames_IsSupported(controller, supported);
1098 throw std::runtime_error(
"Library not loaded!");
1102inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_SkipFrames_Set(
peak_afl_controller_handle controller, uint32_t count)
1104 auto& inst = instance();
1105 if(inst.m_peak_afl_AutoController_SkipFrames_Set)
1107 return inst.m_peak_afl_AutoController_SkipFrames_Set(controller, count);
1111 throw std::runtime_error(
"Library not loaded!");
1115inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_SkipFrames_Get(
peak_afl_controller_handle controller, uint32_t * count)
1117 auto& inst = instance();
1118 if(inst.m_peak_afl_AutoController_SkipFrames_Get)
1120 return inst.m_peak_afl_AutoController_SkipFrames_Get(controller, count);
1124 throw std::runtime_error(
"Library not loaded!");
1128inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_SkipFrames_GetRange(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc)
1130 auto& inst = instance();
1131 if(inst.m_peak_afl_AutoController_SkipFrames_GetRange)
1133 return inst.m_peak_afl_AutoController_SkipFrames_GetRange(controller, min, max, inc);
1137 throw std::runtime_error(
"Library not loaded!");
1143 auto& inst = instance();
1144 if(inst.m_peak_afl_AutoController_ROI_IsSupported)
1146 return inst.m_peak_afl_AutoController_ROI_IsSupported(controller, supported);
1150 throw std::runtime_error(
"Library not loaded!");
1156 auto& inst = instance();
1157 if(inst.m_peak_afl_AutoController_ROI_Set)
1159 return inst.m_peak_afl_AutoController_ROI_Set(controller, roi);
1163 throw std::runtime_error(
"Library not loaded!");
1169 auto& inst = instance();
1170 if(inst.m_peak_afl_AutoController_ROI_Get)
1172 return inst.m_peak_afl_AutoController_ROI_Get(controller, roi);
1176 throw std::runtime_error(
"Library not loaded!");
1182 auto& inst = instance();
1183 if(inst.m_peak_afl_AutoController_ROI_Preset_IsSupported)
1185 return inst.m_peak_afl_AutoController_ROI_Preset_IsSupported(controller, supported);
1189 throw std::runtime_error(
"Library not loaded!");
1195 auto& inst = instance();
1196 if(inst.m_peak_afl_AutoController_ROI_Preset_Set)
1198 return inst.m_peak_afl_AutoController_ROI_Preset_Set(controller, roiPreset);
1202 throw std::runtime_error(
"Library not loaded!");
1208 auto& inst = instance();
1209 if(inst.m_peak_afl_AutoController_Mode_IsSupported)
1211 return inst.m_peak_afl_AutoController_Mode_IsSupported(controller, supported);
1215 throw std::runtime_error(
"Library not loaded!");
1221 auto& inst = instance();
1222 if(inst.m_peak_afl_AutoController_Mode_Set)
1224 return inst.m_peak_afl_AutoController_Mode_Set(controller, mode);
1228 throw std::runtime_error(
"Library not loaded!");
1234 auto& inst = instance();
1235 if(inst.m_peak_afl_AutoController_Mode_Get)
1237 return inst.m_peak_afl_AutoController_Mode_Get(controller, mode);
1241 throw std::runtime_error(
"Library not loaded!");
1247 auto& inst = instance();
1248 if(inst.m_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported)
1250 return inst.m_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported(controller, supported);
1254 throw std::runtime_error(
"Library not loaded!");
1260 auto& inst = instance();
1261 if(inst.m_peak_afl_AutoController_BrightnessComponent_Mode_Set)
1263 return inst.m_peak_afl_AutoController_BrightnessComponent_Mode_Set(controller, component, mode);
1267 throw std::runtime_error(
"Library not loaded!");
1273 auto& inst = instance();
1274 if(inst.m_peak_afl_AutoController_BrightnessComponent_Mode_Get)
1276 return inst.m_peak_afl_AutoController_BrightnessComponent_Mode_Get(controller, component, mode);
1280 throw std::runtime_error(
"Library not loaded!");
1286 auto& inst = instance();
1287 if(inst.m_peak_afl_AutoController_BrightnessComponent_Status)
1289 return inst.m_peak_afl_AutoController_BrightnessComponent_Status(controller, component, status);
1293 throw std::runtime_error(
"Library not loaded!");
1299 auto& inst = instance();
1300 if(inst.m_peak_afl_AutoController_BrightnessComponent_Callback_Set)
1302 return inst.m_peak_afl_AutoController_BrightnessComponent_Callback_Set(controller, component, type, funcPtr, context);
1306 throw std::runtime_error(
"Library not loaded!");
1312 auto& inst = instance();
1313 if(inst.m_peak_afl_AutoController_ExposureLimit_IsSupported)
1315 return inst.m_peak_afl_AutoController_ExposureLimit_IsSupported(controller, supported);
1319 throw std::runtime_error(
"Library not loaded!");
1325 auto& inst = instance();
1326 if(inst.m_peak_afl_AutoController_ExposureLimit_Set)
1328 return inst.m_peak_afl_AutoController_ExposureLimit_Set(controller, limit);
1332 throw std::runtime_error(
"Library not loaded!");
1338 auto& inst = instance();
1339 if(inst.m_peak_afl_AutoController_ExposureLimit_Get)
1341 return inst.m_peak_afl_AutoController_ExposureLimit_Get(controller, limit);
1345 throw std::runtime_error(
"Library not loaded!");
1351 auto& inst = instance();
1352 if(inst.m_peak_afl_AutoController_Status)
1354 return inst.m_peak_afl_AutoController_Status(controller, status);
1358 throw std::runtime_error(
"Library not loaded!");
1362inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GetLastAutoAverage(
peak_afl_controller_handle controller, uint8_t * average)
1364 auto& inst = instance();
1365 if(inst.m_peak_afl_AutoController_GetLastAutoAverage)
1367 return inst.m_peak_afl_AutoController_GetLastAutoAverage(controller, average);
1371 throw std::runtime_error(
"Library not loaded!");
1375inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GetLastAutoAverages(
peak_afl_controller_handle controller, uint8_t * averageRed, uint8_t * averageGreen, uint8_t * averageBlue)
1377 auto& inst = instance();
1378 if(inst.m_peak_afl_AutoController_GetLastAutoAverages)
1380 return inst.m_peak_afl_AutoController_GetLastAutoAverages(controller, averageRed, averageGreen, averageBlue);
1384 throw std::runtime_error(
"Library not loaded!");
1390 auto& inst = instance();
1391 if(inst.m_peak_afl_AutoController_AutoTarget_IsSupported)
1393 return inst.m_peak_afl_AutoController_AutoTarget_IsSupported(controller, supported);
1397 throw std::runtime_error(
"Library not loaded!");
1401inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTarget_Set(
peak_afl_controller_handle controller, uint32_t target)
1403 auto& inst = instance();
1404 if(inst.m_peak_afl_AutoController_AutoTarget_Set)
1406 return inst.m_peak_afl_AutoController_AutoTarget_Set(controller, target);
1410 throw std::runtime_error(
"Library not loaded!");
1414inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTarget_Get(
peak_afl_controller_handle controller, uint32_t * target)
1416 auto& inst = instance();
1417 if(inst.m_peak_afl_AutoController_AutoTarget_Get)
1419 return inst.m_peak_afl_AutoController_AutoTarget_Get(controller, target);
1423 throw std::runtime_error(
"Library not loaded!");
1427inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTarget_GetRange(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc)
1429 auto& inst = instance();
1430 if(inst.m_peak_afl_AutoController_AutoTarget_GetRange)
1432 return inst.m_peak_afl_AutoController_AutoTarget_GetRange(controller, min, max, inc);
1436 throw std::runtime_error(
"Library not loaded!");
1442 auto& inst = instance();
1443 if(inst.m_peak_afl_AutoController_AutoTolerance_IsSupported)
1445 return inst.m_peak_afl_AutoController_AutoTolerance_IsSupported(controller, supported);
1449 throw std::runtime_error(
"Library not loaded!");
1453inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTolerance_Set(
peak_afl_controller_handle controller, uint32_t tolerance)
1455 auto& inst = instance();
1456 if(inst.m_peak_afl_AutoController_AutoTolerance_Set)
1458 return inst.m_peak_afl_AutoController_AutoTolerance_Set(controller, tolerance);
1462 throw std::runtime_error(
"Library not loaded!");
1466inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTolerance_Get(
peak_afl_controller_handle controller, uint32_t * tolerance)
1468 auto& inst = instance();
1469 if(inst.m_peak_afl_AutoController_AutoTolerance_Get)
1471 return inst.m_peak_afl_AutoController_AutoTolerance_Get(controller, tolerance);
1475 throw std::runtime_error(
"Library not loaded!");
1479inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTolerance_GetRange(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc)
1481 auto& inst = instance();
1482 if(inst.m_peak_afl_AutoController_AutoTolerance_GetRange)
1484 return inst.m_peak_afl_AutoController_AutoTolerance_GetRange(controller, min, max, inc);
1488 throw std::runtime_error(
"Library not loaded!");
1494 auto& inst = instance();
1495 if(inst.m_peak_afl_AutoController_AutoPercentile_IsSupported)
1497 return inst.m_peak_afl_AutoController_AutoPercentile_IsSupported(controller, supported);
1501 throw std::runtime_error(
"Library not loaded!");
1505inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoPercentile_Set(
peak_afl_controller_handle controller,
double percentile)
1507 auto& inst = instance();
1508 if(inst.m_peak_afl_AutoController_AutoPercentile_Set)
1510 return inst.m_peak_afl_AutoController_AutoPercentile_Set(controller, percentile);
1514 throw std::runtime_error(
"Library not loaded!");
1518inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoPercentile_Get(
peak_afl_controller_handle controller,
double * percentile)
1520 auto& inst = instance();
1521 if(inst.m_peak_afl_AutoController_AutoPercentile_Get)
1523 return inst.m_peak_afl_AutoController_AutoPercentile_Get(controller, percentile);
1527 throw std::runtime_error(
"Library not loaded!");
1531inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoPercentile_GetRange(
peak_afl_controller_handle controller,
double * min,
double * max,
double * inc)
1533 auto& inst = instance();
1534 if(inst.m_peak_afl_AutoController_AutoPercentile_GetRange)
1536 return inst.m_peak_afl_AutoController_AutoPercentile_GetRange(controller, min, max, inc);
1540 throw std::runtime_error(
"Library not loaded!");
1546 auto& inst = instance();
1547 if(inst.m_peak_afl_AutoController_Type_Get)
1549 return inst.m_peak_afl_AutoController_Type_Get(controller, type);
1553 throw std::runtime_error(
"Library not loaded!");
1559 auto& inst = instance();
1560 if(inst.m_peak_afl_AutoController_Algorithm_IsSupported)
1562 return inst.m_peak_afl_AutoController_Algorithm_IsSupported(controller, supported);
1566 throw std::runtime_error(
"Library not loaded!");
1572 auto& inst = instance();
1573 if(inst.m_peak_afl_AutoController_Algorithm_Set)
1575 return inst.m_peak_afl_AutoController_Algorithm_Set(controller, algorithm);
1579 throw std::runtime_error(
"Library not loaded!");
1585 auto& inst = instance();
1586 if(inst.m_peak_afl_AutoController_Algorithm_Get)
1588 return inst.m_peak_afl_AutoController_Algorithm_Get(controller, algorithm);
1592 throw std::runtime_error(
"Library not loaded!");
1598 auto& inst = instance();
1599 if(inst.m_peak_afl_AutoController_Algorithm_GetList)
1601 return inst.m_peak_afl_AutoController_Algorithm_GetList(controller, typeList, listSize);
1605 throw std::runtime_error(
"Library not loaded!");
1611 auto& inst = instance();
1612 if(inst.m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported)
1614 return inst.m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported(controller, supported);
1618 throw std::runtime_error(
"Library not loaded!");
1624 auto& inst = instance();
1625 if(inst.m_peak_afl_AutoController_SharpnessAlgorithm_Set)
1627 return inst.m_peak_afl_AutoController_SharpnessAlgorithm_Set(controller, algorithm);
1631 throw std::runtime_error(
"Library not loaded!");
1637 auto& inst = instance();
1638 if(inst.m_peak_afl_AutoController_SharpnessAlgorithm_Get)
1640 return inst.m_peak_afl_AutoController_SharpnessAlgorithm_Get(controller, algorithm);
1644 throw std::runtime_error(
"Library not loaded!");
1650 auto& inst = instance();
1651 if(inst.m_peak_afl_AutoController_SharpnessAlgorithm_GetList)
1653 return inst.m_peak_afl_AutoController_SharpnessAlgorithm_GetList(controller, typeList, listSize);
1657 throw std::runtime_error(
"Library not loaded!");
1663 auto& inst = instance();
1664 if(inst.m_peak_afl_AutoController_Callback_Set)
1666 return inst.m_peak_afl_AutoController_Callback_Set(controller, type, funcPtr, context);
1670 throw std::runtime_error(
"Library not loaded!");
1676 auto& inst = instance();
1677 if(inst.m_peak_afl_AutoController_Weighted_ROI_IsSupported)
1679 return inst.m_peak_afl_AutoController_Weighted_ROI_IsSupported(controller, supported);
1683 throw std::runtime_error(
"Library not loaded!");
1689 auto& inst = instance();
1690 if(inst.m_peak_afl_AutoController_Weighted_ROI_Min_Size)
1692 return inst.m_peak_afl_AutoController_Weighted_ROI_Min_Size(controller, size);
1696 throw std::runtime_error(
"Library not loaded!");
1702 auto& inst = instance();
1703 if(inst.m_peak_afl_AutoController_Weighted_ROI_Set)
1705 return inst.m_peak_afl_AutoController_Weighted_ROI_Set(controller, weightedRoiList, listSize);
1709 throw std::runtime_error(
"Library not loaded!");
1715 auto& inst = instance();
1716 if(inst.m_peak_afl_AutoController_Weighted_ROI_Get)
1718 return inst.m_peak_afl_AutoController_Weighted_ROI_Get(controller, weightedRoiList, listSize);
1722 throw std::runtime_error(
"Library not loaded!");
1728 auto& inst = instance();
1729 if(inst.m_peak_afl_AutoController_Limit_IsSupported)
1731 return inst.m_peak_afl_AutoController_Limit_IsSupported(controller, supported);
1735 throw std::runtime_error(
"Library not loaded!");
1741 auto& inst = instance();
1742 if(inst.m_peak_afl_AutoController_Limit_Default)
1744 return inst.m_peak_afl_AutoController_Limit_Default(controller, limit);
1748 throw std::runtime_error(
"Library not loaded!");
1754 auto& inst = instance();
1755 if(inst.m_peak_afl_AutoController_Limit_Set)
1757 return inst.m_peak_afl_AutoController_Limit_Set(controller, limit);
1761 throw std::runtime_error(
"Library not loaded!");
1767 auto& inst = instance();
1768 if(inst.m_peak_afl_AutoController_Limit_Get)
1770 return inst.m_peak_afl_AutoController_Limit_Get(controller, limit);
1774 throw std::runtime_error(
"Library not loaded!");
1780 auto& inst = instance();
1781 if(inst.m_peak_afl_AutoController_Hysteresis_IsSupported)
1783 return inst.m_peak_afl_AutoController_Hysteresis_IsSupported(controller, supported);
1787 throw std::runtime_error(
"Library not loaded!");
1791inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Hysteresis_Default(
peak_afl_controller_handle controller, uint8_t * hysteresis)
1793 auto& inst = instance();
1794 if(inst.m_peak_afl_AutoController_Hysteresis_Default)
1796 return inst.m_peak_afl_AutoController_Hysteresis_Default(controller, hysteresis);
1800 throw std::runtime_error(
"Library not loaded!");
1804inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Hysteresis_Set(
peak_afl_controller_handle controller, uint8_t hysteresis)
1806 auto& inst = instance();
1807 if(inst.m_peak_afl_AutoController_Hysteresis_Set)
1809 return inst.m_peak_afl_AutoController_Hysteresis_Set(controller, hysteresis);
1813 throw std::runtime_error(
"Library not loaded!");
1817inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Hysteresis_Get(
peak_afl_controller_handle controller, uint8_t * hysteresis)
1819 auto& inst = instance();
1820 if(inst.m_peak_afl_AutoController_Hysteresis_Get)
1822 return inst.m_peak_afl_AutoController_Hysteresis_Get(controller, hysteresis);
1826 throw std::runtime_error(
"Library not loaded!");
1830inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Hysteresis_GetRange(
peak_afl_controller_handle controller, uint8_t * min, uint8_t * max, uint8_t * inc)
1832 auto& inst = instance();
1833 if(inst.m_peak_afl_AutoController_Hysteresis_GetRange)
1835 return inst.m_peak_afl_AutoController_Hysteresis_GetRange(controller, min, max, inc);
1839 throw std::runtime_error(
"Library not loaded!");
1845 auto& inst = instance();
1846 if(inst.m_peak_afl_AutoController_GainLimit_IsSupported)
1848 return inst.m_peak_afl_AutoController_GainLimit_IsSupported(controller, supported);
1852 throw std::runtime_error(
"Library not loaded!");
1858 auto& inst = instance();
1859 if(inst.m_peak_afl_AutoController_GainLimit_Set)
1861 return inst.m_peak_afl_AutoController_GainLimit_Set(controller, limit);
1865 throw std::runtime_error(
"Library not loaded!");
1871 auto& inst = instance();
1872 if(inst.m_peak_afl_AutoController_GainLimit_Get)
1874 return inst.m_peak_afl_AutoController_GainLimit_Get(controller, limit);
1878 throw std::runtime_error(
"Library not loaded!");
1884 auto& inst = instance();
1885 if(inst.m_peak_afl_AutoController_GainLimit_GetRange)
1887 return inst.m_peak_afl_AutoController_GainLimit_GetRange(controller, limit);
1891 throw std::runtime_error(
"Library not loaded!");
PEAK_AFL_API_STATUS peak_afl_AutoController_ExposureLimit_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if exposure limit is supported 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_Limit_Default(peak_afl_controller_handle controller, peak_afl_controller_limit *limit)
Get the autofeature default limit.
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_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 for a controller component.
PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_GetRange(peak_afl_controller_handle controller, uint32_t *min, uint32_t *max, uint32_t *inc)
Get range for frames skipped 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_Mode_Get(peak_afl_controller_handle controller, peak_afl_controller_automode *mode)
Get the current autofeature mode for a controller.
peak_afl_callback_type
controller callback type
Definition peak_afl.h:262
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_controllerType
controller types
Definition peak_afl.h:125
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 status for a controller component.
peak_afl_controller_brightness_component
controller brightness component
Definition peak_afl.h:232
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_BrightnessComponent_Mode_Get(peak_afl_controller_handle controller, peak_afl_controller_brightness_component component, peak_afl_controller_automode *mode)
Get the current brightness component mode for a controller.
peak_afl_controller_automode
controller automode
Definition peak_afl.h:144
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_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_Status(peak_afl_controller_handle controller, peak_afl_controller_status *status)
Get the status for a controller.
peak_afl_roi_preset
controller roi preset
Definition peak_afl.h:287
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_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_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_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_SkipFrames_Set(peak_afl_controller_handle controller, uint32_t count)
Set number of frames skipped for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_Get(peak_afl_controller_handle controller, uint32_t *count)
Get number of frames skipped 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_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_ROI_Preset_Set(peak_afl_controller_handle controller, peak_afl_roi_preset roiPreset)
Set the autofeature region of interest preset for a controller.
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_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_Mode_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if auto mode is supported 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 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 autofeature mode for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_ROI_Get(peak_afl_controller_handle controller, peak_afl_rectangle *roi)
Get the autofeature region of interest for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_ExposureLimit_Set(peak_afl_controller_handle controller, peak_afl_double_limit limit)
Set autofeature exposure limit 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_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_ROI_Preset_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if ROI preset is supported for a controller.
peak_afl_controller_status
controller status
Definition peak_afl.h:160
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_ExposureLimit_Get(peak_afl_controller_handle controller, peak_afl_double_limit *limit)
Get autofeature exposure limit for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_Create(peak_afl_controller_handle *controller, peak_afl_controllerType controllerType)
Create a new 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 autofeature mode for a brightness component.
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_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_controller_algorithm
controller algorithm
Definition peak_afl.h:188
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_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_Limit_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if limit is supported for a controller.
peak_afl_controller_sharpness_algorithm
controller sharpness algorithm (focus)
Definition peak_afl.h:210
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_Set(peak_afl_controller_handle controller, uint32_t target)
Set the auto target for a controller.
PEAK_AFL_API_STATUS peak_afl_AutoController_ROI_Set(peak_afl_controller_handle controller, peak_afl_rectangle roi)
Set the autofeature region of interest 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_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_Destroy(peak_afl_controller_handle controller)
Destroy a controller. Will fail if it is queued inside a manager.
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_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_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_AutoPercentile_Get(peak_afl_controller_handle controller, double *percentile)
Get the auto percentile 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_ROI_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
Check if setting a region of interest 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 is supported for a controller component.
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_SharpnessAlgorithm_IsSupported(peak_afl_controller_handle controller, peak_afl_BOOL8 *supported)
check setting a sharpness algorithm is supported by 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_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_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_Process(peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle)
Process an image.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_DestroyController(peak_afl_manager_handle handle, peak_afl_controller_handle controller)
Destroy a controller.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Status(peak_afl_manager_handle handle, peak_afl_BOOL8 *running)
Get the status of a 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 for a manager.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_AddController(peak_afl_manager_handle handle, peak_afl_manager_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_manager_handle controller)
Remove a controller to an automanager instance.
PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetGainIPL(peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle)
Set the IPL Gain.
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_status
peak_afl Status codes
Definition peak_afl.h:88
void * peak_afl_controller_handle
opaque controller handle type
Definition peak_afl.h:49
void * peak_afl_manager_handle
opaque manager handle type
Definition peak_afl.h:51
uint8_t peak_afl_BOOL8
custom boolean type
Definition peak_afl.h:397
peak_afl Focus Limit
Definition peak_afl.h:373
peak_afl Double Limit
Definition peak_afl.h:389
peak_afl Rectangle (2D)
Definition peak_afl.h:335
peak_afl Size (2D)
Definition peak_afl.h:301
peak_afl Focus Rectangle
Definition peak_afl.h:357