28#define PEAK_AFL_EXPORT
29#undef PEAK_AFL_CALLCONV
30#define PEAK_AFL_CALLCONV
39typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_Init)(void );
40typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_Exit)(void );
41typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_GetLastError)(
peak_afl_status * lastErrorCode,
char * lastErrorMessage,
size_t * lastErrorMessageSize);
42typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_GetVersion)(uint32_t * majorVersion, uint32_t * minorVersion, uint32_t * subminorVersion, uint32_t * patchVersion);
43typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoFeatureManager_Create)(
peak_afl_manager_handle * handle, PEAK_NODE_MAP_HANDLE nodeMapHandle);
47typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoFeatureManager_Process)(
peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle);
49typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoFeatureManager_DestroyAllController)(
peak_afl_manager_handle handle);
51typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoFeatureManager_SetGainIPL)(
peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle);
52typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoFeatureManager_SetCCM)(
peak_afl_manager_handle handle,
float * ccm,
size_t ccm_size);
58typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_SkipFrames_Set)(
peak_afl_controller_handle controller, uint32_t count);
59typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_SkipFrames_Get)(
peak_afl_controller_handle controller, uint32_t * count);
60typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_SkipFrames_GetRange)(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc);
62typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_ROI_Set)(
peak_afl_controller_handle controller, peak_afl_rectangle roi);
63typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_ROI_Get)(
peak_afl_controller_handle controller, peak_afl_rectangle * roi);
79typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_ExposureLimit_Set)(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
80typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_ExposureLimit_Get)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
82typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GetLastAutoAverage)(
peak_afl_controller_handle controller, uint8_t * average);
83typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GetLastAutoAverages)(
peak_afl_controller_handle controller, uint8_t * averageRed, uint8_t * averageGreen, uint8_t * averageBlue);
85typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTarget_Set)(
peak_afl_controller_handle controller, uint32_t target);
86typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTarget_Get)(
peak_afl_controller_handle controller, uint32_t * target);
87typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTarget_GetRange)(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc);
89typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTolerance_Set)(
peak_afl_controller_handle controller, uint32_t tolerance);
90typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTolerance_Get)(
peak_afl_controller_handle controller, uint32_t * tolerance);
91typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoTolerance_GetRange)(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc);
93typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoPercentile_Set)(
peak_afl_controller_handle controller,
double percentile);
94typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoPercentile_Get)(
peak_afl_controller_handle controller,
double * percentile);
95typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_AutoPercentile_GetRange)(
peak_afl_controller_handle controller,
double * min,
double * max,
double * inc);
107typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Weighted_ROI_Min_Size)(
peak_afl_controller_handle controller, peak_afl_size * size);
108typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Weighted_ROI_Set)(
peak_afl_controller_handle controller,
const peak_afl_weighted_rectangle * weightedRoiList, uint32_t listSize);
109typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Weighted_ROI_Get)(
peak_afl_controller_handle controller, peak_afl_weighted_rectangle * weightedRoiList, uint32_t * listSize);
111typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Limit_Default)(
peak_afl_controller_handle controller, peak_afl_controller_limit * limit);
112typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Limit_Set)(
peak_afl_controller_handle controller, peak_afl_controller_limit limit);
113typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Limit_Get)(
peak_afl_controller_handle controller, peak_afl_controller_limit * limit);
115typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Hysteresis_Default)(
peak_afl_controller_handle controller, uint8_t * hysteresis);
116typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Hysteresis_Set)(
peak_afl_controller_handle controller, uint8_t hysteresis);
117typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Hysteresis_Get)(
peak_afl_controller_handle controller, uint8_t * hysteresis);
118typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_Hysteresis_GetRange)(
peak_afl_controller_handle controller, uint8_t * min, uint8_t * max, uint8_t * inc);
120typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainLimit_Set)(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
121typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainLimit_Get)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
122typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainLimit_GetRange)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
123typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainAnalogLimit_Set)(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
124typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainAnalogLimit_Get)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
125typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainAnalogLimit_GetRange)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
126typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainDigitalLimit_Set)(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
127typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainDigitalLimit_Get)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
128typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainDigitalLimit_GetRange)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
129typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainCombinedLimit_Set)(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
130typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainCombinedLimit_Get)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
131typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainCombinedLimit_GetRange)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
132typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainHostLimit_Set)(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
133typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainHostLimit_Get)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
134typedef PEAK_AFL_API_STATUS (*dyn_peak_afl_AutoController_GainHostLimit_GetRange)(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
137class LoadLibraryException :
public std::runtime_error {
138 using std::runtime_error::runtime_error;
146 static DynamicLoader& instance()
148 static DynamicLoader dynamicLoader{};
149 return dynamicLoader;
151 bool loadLib(
const char* file);
153 bool setPointers(
bool load);
158 static bool isLoaded();
160 static PEAK_AFL_API_STATUS peak_afl_Init(
void );
161 static PEAK_AFL_API_STATUS peak_afl_Exit(
void );
162 static PEAK_AFL_API_STATUS peak_afl_GetLastError(
peak_afl_status * lastErrorCode,
char * lastErrorMessage,
size_t * lastErrorMessageSize);
163 static PEAK_AFL_API_STATUS peak_afl_GetVersion(uint32_t * majorVersion, uint32_t * minorVersion, uint32_t * subminorVersion, uint32_t * patchVersion);
164 static PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Create(
peak_afl_manager_handle * handle, PEAK_NODE_MAP_HANDLE nodeMapHandle);
168 static PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_Process(
peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle);
172 static PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetGainIPL(
peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle);
173 static PEAK_AFL_API_STATUS peak_afl_AutoFeatureManager_SetCCM(
peak_afl_manager_handle handle,
float * ccm,
size_t ccm_size);
181 static PEAK_AFL_API_STATUS peak_afl_AutoController_SkipFrames_GetRange(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc);
200 static PEAK_AFL_API_STATUS peak_afl_AutoController_ExposureLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
201 static PEAK_AFL_API_STATUS peak_afl_AutoController_ExposureLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
203 static PEAK_AFL_API_STATUS peak_afl_AutoController_GetLastAutoAverage(
peak_afl_controller_handle controller, uint8_t * average);
204 static PEAK_AFL_API_STATUS peak_afl_AutoController_GetLastAutoAverages(
peak_afl_controller_handle controller, uint8_t * averageRed, uint8_t * averageGreen, uint8_t * averageBlue);
208 static PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTarget_GetRange(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc);
210 static PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_Set(
peak_afl_controller_handle controller, uint32_t tolerance);
211 static PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_Get(
peak_afl_controller_handle controller, uint32_t * tolerance);
212 static PEAK_AFL_API_STATUS peak_afl_AutoController_AutoTolerance_GetRange(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc);
214 static PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_Set(
peak_afl_controller_handle controller,
double percentile);
215 static PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_Get(
peak_afl_controller_handle controller,
double * percentile);
216 static PEAK_AFL_API_STATUS peak_afl_AutoController_AutoPercentile_GetRange(
peak_afl_controller_handle controller,
double * min,
double * max,
double * inc);
228 static PEAK_AFL_API_STATUS peak_afl_AutoController_Weighted_ROI_Min_Size(
peak_afl_controller_handle controller, peak_afl_size * size);
229 static PEAK_AFL_API_STATUS peak_afl_AutoController_Weighted_ROI_Set(
peak_afl_controller_handle controller,
const peak_afl_weighted_rectangle * weightedRoiList, uint32_t listSize);
230 static PEAK_AFL_API_STATUS peak_afl_AutoController_Weighted_ROI_Get(
peak_afl_controller_handle controller, peak_afl_weighted_rectangle * weightedRoiList, uint32_t * listSize);
232 static PEAK_AFL_API_STATUS peak_afl_AutoController_Limit_Default(
peak_afl_controller_handle controller, peak_afl_controller_limit * limit);
233 static PEAK_AFL_API_STATUS peak_afl_AutoController_Limit_Set(
peak_afl_controller_handle controller, peak_afl_controller_limit limit);
234 static PEAK_AFL_API_STATUS peak_afl_AutoController_Limit_Get(
peak_afl_controller_handle controller, peak_afl_controller_limit * limit);
236 static PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Default(
peak_afl_controller_handle controller, uint8_t * hysteresis);
238 static PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_Get(
peak_afl_controller_handle controller, uint8_t * hysteresis);
239 static PEAK_AFL_API_STATUS peak_afl_AutoController_Hysteresis_GetRange(
peak_afl_controller_handle controller, uint8_t * min, uint8_t * max, uint8_t * inc);
241 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
242 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
243 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
244 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainAnalogLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
245 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainAnalogLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
246 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainAnalogLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
247 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainDigitalLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
248 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainDigitalLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
249 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainDigitalLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
250 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainCombinedLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
251 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainCombinedLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
252 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainCombinedLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
253 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainHostLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit);
254 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainHostLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
255 static PEAK_AFL_API_STATUS peak_afl_AutoController_GainHostLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit);
258 void* m_handle =
nullptr;
259 dyn_peak_afl_Init m_peak_afl_Init{};
260 dyn_peak_afl_Exit m_peak_afl_Exit{};
261 dyn_peak_afl_GetLastError m_peak_afl_GetLastError{};
262 dyn_peak_afl_GetVersion m_peak_afl_GetVersion{};
263 dyn_peak_afl_AutoFeatureManager_Create m_peak_afl_AutoFeatureManager_Create{};
264 dyn_peak_afl_AutoFeatureManager_Destroy m_peak_afl_AutoFeatureManager_Destroy{};
265 dyn_peak_afl_AutoFeatureManager_AddController m_peak_afl_AutoFeatureManager_AddController{};
266 dyn_peak_afl_AutoFeatureManager_RemoveController m_peak_afl_AutoFeatureManager_RemoveController{};
267 dyn_peak_afl_AutoFeatureManager_Process m_peak_afl_AutoFeatureManager_Process{};
268 dyn_peak_afl_AutoFeatureManager_CreateController m_peak_afl_AutoFeatureManager_CreateController{};
269 dyn_peak_afl_AutoFeatureManager_DestroyAllController m_peak_afl_AutoFeatureManager_DestroyAllController{};
270 dyn_peak_afl_AutoFeatureManager_DestroyController m_peak_afl_AutoFeatureManager_DestroyController{};
271 dyn_peak_afl_AutoFeatureManager_SetGainIPL m_peak_afl_AutoFeatureManager_SetGainIPL{};
272 dyn_peak_afl_AutoFeatureManager_SetCCM m_peak_afl_AutoFeatureManager_SetCCM{};
273 dyn_peak_afl_AutoFeatureManager_Status m_peak_afl_AutoFeatureManager_Status{};
274 dyn_peak_afl_AutoFeatureManager_Controller_IsSupported m_peak_afl_AutoFeatureManager_Controller_IsSupported{};
275 dyn_peak_afl_AutoController_Create m_peak_afl_AutoController_Create{};
276 dyn_peak_afl_AutoController_Destroy m_peak_afl_AutoController_Destroy{};
277 dyn_peak_afl_AutoController_SkipFrames_IsSupported m_peak_afl_AutoController_SkipFrames_IsSupported{};
278 dyn_peak_afl_AutoController_SkipFrames_Set m_peak_afl_AutoController_SkipFrames_Set{};
279 dyn_peak_afl_AutoController_SkipFrames_Get m_peak_afl_AutoController_SkipFrames_Get{};
280 dyn_peak_afl_AutoController_SkipFrames_GetRange m_peak_afl_AutoController_SkipFrames_GetRange{};
281 dyn_peak_afl_AutoController_ROI_IsSupported m_peak_afl_AutoController_ROI_IsSupported{};
282 dyn_peak_afl_AutoController_ROI_Set m_peak_afl_AutoController_ROI_Set{};
283 dyn_peak_afl_AutoController_ROI_Get m_peak_afl_AutoController_ROI_Get{};
284 dyn_peak_afl_AutoController_ROI_Preset_IsSupported m_peak_afl_AutoController_ROI_Preset_IsSupported{};
285 dyn_peak_afl_AutoController_ROI_Preset_Set m_peak_afl_AutoController_ROI_Preset_Set{};
286 dyn_peak_afl_AutoController_Mode_IsSupported m_peak_afl_AutoController_Mode_IsSupported{};
287 dyn_peak_afl_AutoController_Mode_Set m_peak_afl_AutoController_Mode_Set{};
288 dyn_peak_afl_AutoController_Mode_Get m_peak_afl_AutoController_Mode_Get{};
289 dyn_peak_afl_AutoController_BrightnessAlgorithm_Set m_peak_afl_AutoController_BrightnessAlgorithm_Set{};
290 dyn_peak_afl_AutoController_BrightnessAlgorithm_Get m_peak_afl_AutoController_BrightnessAlgorithm_Get{};
291 dyn_peak_afl_AutoController_BrightnessAlgorithm_IsSupported m_peak_afl_AutoController_BrightnessAlgorithm_IsSupported{};
292 dyn_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported m_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported{};
293 dyn_peak_afl_AutoController_BrightnessComponent_Unit_IsSupported m_peak_afl_AutoController_BrightnessComponent_Unit_IsSupported{};
294 dyn_peak_afl_AutoController_BrightnessComponent_Mode_Set m_peak_afl_AutoController_BrightnessComponent_Mode_Set{};
295 dyn_peak_afl_AutoController_BrightnessComponent_Mode_Get m_peak_afl_AutoController_BrightnessComponent_Mode_Get{};
296 dyn_peak_afl_AutoController_BrightnessComponent_Status m_peak_afl_AutoController_BrightnessComponent_Status{};
297 dyn_peak_afl_AutoController_BrightnessComponent_Callback_Set m_peak_afl_AutoController_BrightnessComponent_Callback_Set{};
298 dyn_peak_afl_AutoController_ExposureLimit_IsSupported m_peak_afl_AutoController_ExposureLimit_IsSupported{};
299 dyn_peak_afl_AutoController_ExposureLimit_Set m_peak_afl_AutoController_ExposureLimit_Set{};
300 dyn_peak_afl_AutoController_ExposureLimit_Get m_peak_afl_AutoController_ExposureLimit_Get{};
301 dyn_peak_afl_AutoController_Status m_peak_afl_AutoController_Status{};
302 dyn_peak_afl_AutoController_GetLastAutoAverage m_peak_afl_AutoController_GetLastAutoAverage{};
303 dyn_peak_afl_AutoController_GetLastAutoAverages m_peak_afl_AutoController_GetLastAutoAverages{};
304 dyn_peak_afl_AutoController_AutoTarget_IsSupported m_peak_afl_AutoController_AutoTarget_IsSupported{};
305 dyn_peak_afl_AutoController_AutoTarget_Set m_peak_afl_AutoController_AutoTarget_Set{};
306 dyn_peak_afl_AutoController_AutoTarget_Get m_peak_afl_AutoController_AutoTarget_Get{};
307 dyn_peak_afl_AutoController_AutoTarget_GetRange m_peak_afl_AutoController_AutoTarget_GetRange{};
308 dyn_peak_afl_AutoController_AutoTolerance_IsSupported m_peak_afl_AutoController_AutoTolerance_IsSupported{};
309 dyn_peak_afl_AutoController_AutoTolerance_Set m_peak_afl_AutoController_AutoTolerance_Set{};
310 dyn_peak_afl_AutoController_AutoTolerance_Get m_peak_afl_AutoController_AutoTolerance_Get{};
311 dyn_peak_afl_AutoController_AutoTolerance_GetRange m_peak_afl_AutoController_AutoTolerance_GetRange{};
312 dyn_peak_afl_AutoController_AutoPercentile_IsSupported m_peak_afl_AutoController_AutoPercentile_IsSupported{};
313 dyn_peak_afl_AutoController_AutoPercentile_Set m_peak_afl_AutoController_AutoPercentile_Set{};
314 dyn_peak_afl_AutoController_AutoPercentile_Get m_peak_afl_AutoController_AutoPercentile_Get{};
315 dyn_peak_afl_AutoController_AutoPercentile_GetRange m_peak_afl_AutoController_AutoPercentile_GetRange{};
316 dyn_peak_afl_AutoController_Type_Get m_peak_afl_AutoController_Type_Get{};
317 dyn_peak_afl_AutoController_Algorithm_IsSupported m_peak_afl_AutoController_Algorithm_IsSupported{};
318 dyn_peak_afl_AutoController_Algorithm_Set m_peak_afl_AutoController_Algorithm_Set{};
319 dyn_peak_afl_AutoController_Algorithm_Get m_peak_afl_AutoController_Algorithm_Get{};
320 dyn_peak_afl_AutoController_Algorithm_GetList m_peak_afl_AutoController_Algorithm_GetList{};
321 dyn_peak_afl_AutoController_SharpnessAlgorithm_IsSupported m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported{};
322 dyn_peak_afl_AutoController_SharpnessAlgorithm_Set m_peak_afl_AutoController_SharpnessAlgorithm_Set{};
323 dyn_peak_afl_AutoController_SharpnessAlgorithm_Get m_peak_afl_AutoController_SharpnessAlgorithm_Get{};
324 dyn_peak_afl_AutoController_SharpnessAlgorithm_GetList m_peak_afl_AutoController_SharpnessAlgorithm_GetList{};
325 dyn_peak_afl_AutoController_Callback_Set m_peak_afl_AutoController_Callback_Set{};
326 dyn_peak_afl_AutoController_Weighted_ROI_IsSupported m_peak_afl_AutoController_Weighted_ROI_IsSupported{};
327 dyn_peak_afl_AutoController_Weighted_ROI_Min_Size m_peak_afl_AutoController_Weighted_ROI_Min_Size{};
328 dyn_peak_afl_AutoController_Weighted_ROI_Set m_peak_afl_AutoController_Weighted_ROI_Set{};
329 dyn_peak_afl_AutoController_Weighted_ROI_Get m_peak_afl_AutoController_Weighted_ROI_Get{};
330 dyn_peak_afl_AutoController_Limit_IsSupported m_peak_afl_AutoController_Limit_IsSupported{};
331 dyn_peak_afl_AutoController_Limit_Default m_peak_afl_AutoController_Limit_Default{};
332 dyn_peak_afl_AutoController_Limit_Set m_peak_afl_AutoController_Limit_Set{};
333 dyn_peak_afl_AutoController_Limit_Get m_peak_afl_AutoController_Limit_Get{};
334 dyn_peak_afl_AutoController_Hysteresis_IsSupported m_peak_afl_AutoController_Hysteresis_IsSupported{};
335 dyn_peak_afl_AutoController_Hysteresis_Default m_peak_afl_AutoController_Hysteresis_Default{};
336 dyn_peak_afl_AutoController_Hysteresis_Set m_peak_afl_AutoController_Hysteresis_Set{};
337 dyn_peak_afl_AutoController_Hysteresis_Get m_peak_afl_AutoController_Hysteresis_Get{};
338 dyn_peak_afl_AutoController_Hysteresis_GetRange m_peak_afl_AutoController_Hysteresis_GetRange{};
339 dyn_peak_afl_AutoController_GainLimit_IsSupported m_peak_afl_AutoController_GainLimit_IsSupported{};
340 dyn_peak_afl_AutoController_GainLimit_Set m_peak_afl_AutoController_GainLimit_Set{};
341 dyn_peak_afl_AutoController_GainLimit_Get m_peak_afl_AutoController_GainLimit_Get{};
342 dyn_peak_afl_AutoController_GainLimit_GetRange m_peak_afl_AutoController_GainLimit_GetRange{};
343 dyn_peak_afl_AutoController_GainAnalogLimit_Set m_peak_afl_AutoController_GainAnalogLimit_Set{};
344 dyn_peak_afl_AutoController_GainAnalogLimit_Get m_peak_afl_AutoController_GainAnalogLimit_Get{};
345 dyn_peak_afl_AutoController_GainAnalogLimit_GetRange m_peak_afl_AutoController_GainAnalogLimit_GetRange{};
346 dyn_peak_afl_AutoController_GainDigitalLimit_Set m_peak_afl_AutoController_GainDigitalLimit_Set{};
347 dyn_peak_afl_AutoController_GainDigitalLimit_Get m_peak_afl_AutoController_GainDigitalLimit_Get{};
348 dyn_peak_afl_AutoController_GainDigitalLimit_GetRange m_peak_afl_AutoController_GainDigitalLimit_GetRange{};
349 dyn_peak_afl_AutoController_GainCombinedLimit_Set m_peak_afl_AutoController_GainCombinedLimit_Set{};
350 dyn_peak_afl_AutoController_GainCombinedLimit_Get m_peak_afl_AutoController_GainCombinedLimit_Get{};
351 dyn_peak_afl_AutoController_GainCombinedLimit_GetRange m_peak_afl_AutoController_GainCombinedLimit_GetRange{};
352 dyn_peak_afl_AutoController_GainHostLimit_Set m_peak_afl_AutoController_GainHostLimit_Set{};
353 dyn_peak_afl_AutoController_GainHostLimit_Get m_peak_afl_AutoController_GainHostLimit_Get{};
354 dyn_peak_afl_AutoController_GainHostLimit_GetRange m_peak_afl_AutoController_GainHostLimit_GetRange{};
358inline void* import_function(
void *module,
const char* proc_name)
361 return dlsym(module, proc_name);
363 return reinterpret_cast<void*
>(GetProcAddress(
static_cast<HMODULE
>(module), proc_name));
367inline DynamicLoader::DynamicLoader()
369#if defined _WIN32 || defined _WIN64
371 if (_wgetenv_s(&sz, NULL, 0, L
"IDS_PEAK_GENERIC_SDK_PATH") == 0
374 std::vector<wchar_t> env_ids_peak_afl(sz);
375 if (_wgetenv_s(&sz, env_ids_peak_afl.data(), sz, L
"IDS_PEAK_GENERIC_SDK_PATH") == 0)
377 if (_wgetenv_s(&sz, NULL, 0, L
"PATH") == 0
380 std::vector<wchar_t> env_path(sz);
381 if (_wgetenv_s(&sz, env_path.data(), sz, L
"PATH") == 0)
383 std::wstring ids_peak_afl_path(env_ids_peak_afl.data());
385 ids_peak_afl_path.append(L
"\\afl\\lib\\x86_64");
387 ids_peak_afl_path.append(L
"\\afl\\lib\\x86_32");
389 AddDllDirectory(ids_peak_afl_path.c_str());
395 loadLib(
"ids_peak_afl.dll");
397 loadLib(
"libids_peak_afl.so");
401inline DynamicLoader::~DynamicLoader()
403 if(m_handle !=
nullptr)
409inline bool DynamicLoader::isLoaded()
411 auto&& inst = instance();
412 return inst.m_handle !=
nullptr;
415inline void DynamicLoader::unload()
419 if (m_handle !=
nullptr)
424 FreeLibrary(
static_cast<HMODULE
>(m_handle));
431inline bool DynamicLoader::loadLib(
const char* file)
438 m_handle = dlopen(file, RTLD_NOW);
440 m_handle = LoadLibraryExA(file,
nullptr, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
442 if (m_handle !=
nullptr)
447 }
catch (
const std::exception&) {
454 throw LoadLibraryException(std::string(
"Lib load failed: ") + file);
459 throw LoadLibraryException(
"Filename empty");
465inline bool DynamicLoader::setPointers(
bool load)
468 m_peak_afl_Init = (dyn_peak_afl_Init) (load ? import_function(m_handle,
"peak_afl_Init") :
nullptr);
469 if(m_peak_afl_Init ==
nullptr && load)
471 throw std::runtime_error(
"Failed to load peak_afl_Init");
474 m_peak_afl_Exit = (dyn_peak_afl_Exit) (load ? import_function(m_handle,
"peak_afl_Exit") :
nullptr);
475 if(m_peak_afl_Exit ==
nullptr && load)
477 throw std::runtime_error(
"Failed to load peak_afl_Exit");
480 m_peak_afl_GetLastError = (dyn_peak_afl_GetLastError) (load ? import_function(m_handle,
"peak_afl_GetLastError") :
nullptr);
481 if(m_peak_afl_GetLastError ==
nullptr && load)
483 throw std::runtime_error(
"Failed to load peak_afl_GetLastError");
486 m_peak_afl_GetVersion = (dyn_peak_afl_GetVersion) (load ? import_function(m_handle,
"peak_afl_GetVersion") :
nullptr);
487 if(m_peak_afl_GetVersion ==
nullptr && load)
489 throw std::runtime_error(
"Failed to load peak_afl_GetVersion");
492 m_peak_afl_AutoFeatureManager_Create = (dyn_peak_afl_AutoFeatureManager_Create) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_Create") :
nullptr);
493 if(m_peak_afl_AutoFeatureManager_Create ==
nullptr && load)
495 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_Create");
498 m_peak_afl_AutoFeatureManager_Destroy = (dyn_peak_afl_AutoFeatureManager_Destroy) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_Destroy") :
nullptr);
499 if(m_peak_afl_AutoFeatureManager_Destroy ==
nullptr && load)
501 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_Destroy");
504 m_peak_afl_AutoFeatureManager_AddController = (dyn_peak_afl_AutoFeatureManager_AddController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_AddController") :
nullptr);
505 if(m_peak_afl_AutoFeatureManager_AddController ==
nullptr && load)
507 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_AddController");
510 m_peak_afl_AutoFeatureManager_RemoveController = (dyn_peak_afl_AutoFeatureManager_RemoveController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_RemoveController") :
nullptr);
511 if(m_peak_afl_AutoFeatureManager_RemoveController ==
nullptr && load)
513 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_RemoveController");
516 m_peak_afl_AutoFeatureManager_Process = (dyn_peak_afl_AutoFeatureManager_Process) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_Process") :
nullptr);
517 if(m_peak_afl_AutoFeatureManager_Process ==
nullptr && load)
519 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_Process");
522 m_peak_afl_AutoFeatureManager_CreateController = (dyn_peak_afl_AutoFeatureManager_CreateController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_CreateController") :
nullptr);
523 if(m_peak_afl_AutoFeatureManager_CreateController ==
nullptr && load)
525 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_CreateController");
528 m_peak_afl_AutoFeatureManager_DestroyAllController = (dyn_peak_afl_AutoFeatureManager_DestroyAllController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_DestroyAllController") :
nullptr);
529 if(m_peak_afl_AutoFeatureManager_DestroyAllController ==
nullptr && load)
531 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_DestroyAllController");
534 m_peak_afl_AutoFeatureManager_DestroyController = (dyn_peak_afl_AutoFeatureManager_DestroyController) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_DestroyController") :
nullptr);
535 if(m_peak_afl_AutoFeatureManager_DestroyController ==
nullptr && load)
537 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_DestroyController");
540 m_peak_afl_AutoFeatureManager_SetGainIPL = (dyn_peak_afl_AutoFeatureManager_SetGainIPL) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_SetGainIPL") :
nullptr);
541 if(m_peak_afl_AutoFeatureManager_SetGainIPL ==
nullptr && load)
543 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_SetGainIPL");
546 m_peak_afl_AutoFeatureManager_SetCCM = (dyn_peak_afl_AutoFeatureManager_SetCCM) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_SetCCM") :
nullptr);
547 if(m_peak_afl_AutoFeatureManager_SetCCM ==
nullptr && load)
549 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_SetCCM");
552 m_peak_afl_AutoFeatureManager_Status = (dyn_peak_afl_AutoFeatureManager_Status) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_Status") :
nullptr);
553 if(m_peak_afl_AutoFeatureManager_Status ==
nullptr && load)
555 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_Status");
558 m_peak_afl_AutoFeatureManager_Controller_IsSupported = (dyn_peak_afl_AutoFeatureManager_Controller_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoFeatureManager_Controller_IsSupported") :
nullptr);
559 if(m_peak_afl_AutoFeatureManager_Controller_IsSupported ==
nullptr && load)
561 throw std::runtime_error(
"Failed to load peak_afl_AutoFeatureManager_Controller_IsSupported");
564 m_peak_afl_AutoController_Create = (dyn_peak_afl_AutoController_Create) (load ? import_function(m_handle,
"peak_afl_AutoController_Create") :
nullptr);
565 if(m_peak_afl_AutoController_Create ==
nullptr && load)
567 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Create");
570 m_peak_afl_AutoController_Destroy = (dyn_peak_afl_AutoController_Destroy) (load ? import_function(m_handle,
"peak_afl_AutoController_Destroy") :
nullptr);
571 if(m_peak_afl_AutoController_Destroy ==
nullptr && load)
573 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Destroy");
576 m_peak_afl_AutoController_SkipFrames_IsSupported = (dyn_peak_afl_AutoController_SkipFrames_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_SkipFrames_IsSupported") :
nullptr);
577 if(m_peak_afl_AutoController_SkipFrames_IsSupported ==
nullptr && load)
579 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SkipFrames_IsSupported");
582 m_peak_afl_AutoController_SkipFrames_Set = (dyn_peak_afl_AutoController_SkipFrames_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_SkipFrames_Set") :
nullptr);
583 if(m_peak_afl_AutoController_SkipFrames_Set ==
nullptr && load)
585 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SkipFrames_Set");
588 m_peak_afl_AutoController_SkipFrames_Get = (dyn_peak_afl_AutoController_SkipFrames_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_SkipFrames_Get") :
nullptr);
589 if(m_peak_afl_AutoController_SkipFrames_Get ==
nullptr && load)
591 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SkipFrames_Get");
594 m_peak_afl_AutoController_SkipFrames_GetRange = (dyn_peak_afl_AutoController_SkipFrames_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_SkipFrames_GetRange") :
nullptr);
595 if(m_peak_afl_AutoController_SkipFrames_GetRange ==
nullptr && load)
597 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SkipFrames_GetRange");
600 m_peak_afl_AutoController_ROI_IsSupported = (dyn_peak_afl_AutoController_ROI_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_ROI_IsSupported") :
nullptr);
601 if(m_peak_afl_AutoController_ROI_IsSupported ==
nullptr && load)
603 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_IsSupported");
606 m_peak_afl_AutoController_ROI_Set = (dyn_peak_afl_AutoController_ROI_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_ROI_Set") :
nullptr);
607 if(m_peak_afl_AutoController_ROI_Set ==
nullptr && load)
609 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_Set");
612 m_peak_afl_AutoController_ROI_Get = (dyn_peak_afl_AutoController_ROI_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_ROI_Get") :
nullptr);
613 if(m_peak_afl_AutoController_ROI_Get ==
nullptr && load)
615 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_Get");
618 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);
619 if(m_peak_afl_AutoController_ROI_Preset_IsSupported ==
nullptr && load)
621 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_Preset_IsSupported");
624 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);
625 if(m_peak_afl_AutoController_ROI_Preset_Set ==
nullptr && load)
627 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ROI_Preset_Set");
630 m_peak_afl_AutoController_Mode_IsSupported = (dyn_peak_afl_AutoController_Mode_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_Mode_IsSupported") :
nullptr);
631 if(m_peak_afl_AutoController_Mode_IsSupported ==
nullptr && load)
633 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Mode_IsSupported");
636 m_peak_afl_AutoController_Mode_Set = (dyn_peak_afl_AutoController_Mode_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Mode_Set") :
nullptr);
637 if(m_peak_afl_AutoController_Mode_Set ==
nullptr && load)
639 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Mode_Set");
642 m_peak_afl_AutoController_Mode_Get = (dyn_peak_afl_AutoController_Mode_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Mode_Get") :
nullptr);
643 if(m_peak_afl_AutoController_Mode_Get ==
nullptr && load)
645 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Mode_Get");
648 m_peak_afl_AutoController_BrightnessAlgorithm_Set = (dyn_peak_afl_AutoController_BrightnessAlgorithm_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessAlgorithm_Set") :
nullptr);
649 if(m_peak_afl_AutoController_BrightnessAlgorithm_Set ==
nullptr && load)
651 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessAlgorithm_Set");
654 m_peak_afl_AutoController_BrightnessAlgorithm_Get = (dyn_peak_afl_AutoController_BrightnessAlgorithm_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessAlgorithm_Get") :
nullptr);
655 if(m_peak_afl_AutoController_BrightnessAlgorithm_Get ==
nullptr && load)
657 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessAlgorithm_Get");
660 m_peak_afl_AutoController_BrightnessAlgorithm_IsSupported = (dyn_peak_afl_AutoController_BrightnessAlgorithm_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessAlgorithm_IsSupported") :
nullptr);
661 if(m_peak_afl_AutoController_BrightnessAlgorithm_IsSupported ==
nullptr && load)
663 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessAlgorithm_IsSupported");
666 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);
667 if(m_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported ==
nullptr && load)
669 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Mode_IsSupported");
672 m_peak_afl_AutoController_BrightnessComponent_Unit_IsSupported = (dyn_peak_afl_AutoController_BrightnessComponent_Unit_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessComponent_Unit_IsSupported") :
nullptr);
673 if(m_peak_afl_AutoController_BrightnessComponent_Unit_IsSupported ==
nullptr && load)
675 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Unit_IsSupported");
678 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);
679 if(m_peak_afl_AutoController_BrightnessComponent_Mode_Set ==
nullptr && load)
681 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Mode_Set");
684 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);
685 if(m_peak_afl_AutoController_BrightnessComponent_Mode_Get ==
nullptr && load)
687 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Mode_Get");
690 m_peak_afl_AutoController_BrightnessComponent_Status = (dyn_peak_afl_AutoController_BrightnessComponent_Status) (load ? import_function(m_handle,
"peak_afl_AutoController_BrightnessComponent_Status") :
nullptr);
691 if(m_peak_afl_AutoController_BrightnessComponent_Status ==
nullptr && load)
693 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Status");
696 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);
697 if(m_peak_afl_AutoController_BrightnessComponent_Callback_Set ==
nullptr && load)
699 throw std::runtime_error(
"Failed to load peak_afl_AutoController_BrightnessComponent_Callback_Set");
702 m_peak_afl_AutoController_ExposureLimit_IsSupported = (dyn_peak_afl_AutoController_ExposureLimit_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_ExposureLimit_IsSupported") :
nullptr);
703 if(m_peak_afl_AutoController_ExposureLimit_IsSupported ==
nullptr && load)
705 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ExposureLimit_IsSupported");
708 m_peak_afl_AutoController_ExposureLimit_Set = (dyn_peak_afl_AutoController_ExposureLimit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_ExposureLimit_Set") :
nullptr);
709 if(m_peak_afl_AutoController_ExposureLimit_Set ==
nullptr && load)
711 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ExposureLimit_Set");
714 m_peak_afl_AutoController_ExposureLimit_Get = (dyn_peak_afl_AutoController_ExposureLimit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_ExposureLimit_Get") :
nullptr);
715 if(m_peak_afl_AutoController_ExposureLimit_Get ==
nullptr && load)
717 throw std::runtime_error(
"Failed to load peak_afl_AutoController_ExposureLimit_Get");
720 m_peak_afl_AutoController_Status = (dyn_peak_afl_AutoController_Status) (load ? import_function(m_handle,
"peak_afl_AutoController_Status") :
nullptr);
721 if(m_peak_afl_AutoController_Status ==
nullptr && load)
723 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Status");
726 m_peak_afl_AutoController_GetLastAutoAverage = (dyn_peak_afl_AutoController_GetLastAutoAverage) (load ? import_function(m_handle,
"peak_afl_AutoController_GetLastAutoAverage") :
nullptr);
727 if(m_peak_afl_AutoController_GetLastAutoAverage ==
nullptr && load)
729 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GetLastAutoAverage");
732 m_peak_afl_AutoController_GetLastAutoAverages = (dyn_peak_afl_AutoController_GetLastAutoAverages) (load ? import_function(m_handle,
"peak_afl_AutoController_GetLastAutoAverages") :
nullptr);
733 if(m_peak_afl_AutoController_GetLastAutoAverages ==
nullptr && load)
735 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GetLastAutoAverages");
738 m_peak_afl_AutoController_AutoTarget_IsSupported = (dyn_peak_afl_AutoController_AutoTarget_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTarget_IsSupported") :
nullptr);
739 if(m_peak_afl_AutoController_AutoTarget_IsSupported ==
nullptr && load)
741 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTarget_IsSupported");
744 m_peak_afl_AutoController_AutoTarget_Set = (dyn_peak_afl_AutoController_AutoTarget_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTarget_Set") :
nullptr);
745 if(m_peak_afl_AutoController_AutoTarget_Set ==
nullptr && load)
747 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTarget_Set");
750 m_peak_afl_AutoController_AutoTarget_Get = (dyn_peak_afl_AutoController_AutoTarget_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTarget_Get") :
nullptr);
751 if(m_peak_afl_AutoController_AutoTarget_Get ==
nullptr && load)
753 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTarget_Get");
756 m_peak_afl_AutoController_AutoTarget_GetRange = (dyn_peak_afl_AutoController_AutoTarget_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTarget_GetRange") :
nullptr);
757 if(m_peak_afl_AutoController_AutoTarget_GetRange ==
nullptr && load)
759 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTarget_GetRange");
762 m_peak_afl_AutoController_AutoTolerance_IsSupported = (dyn_peak_afl_AutoController_AutoTolerance_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTolerance_IsSupported") :
nullptr);
763 if(m_peak_afl_AutoController_AutoTolerance_IsSupported ==
nullptr && load)
765 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTolerance_IsSupported");
768 m_peak_afl_AutoController_AutoTolerance_Set = (dyn_peak_afl_AutoController_AutoTolerance_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTolerance_Set") :
nullptr);
769 if(m_peak_afl_AutoController_AutoTolerance_Set ==
nullptr && load)
771 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTolerance_Set");
774 m_peak_afl_AutoController_AutoTolerance_Get = (dyn_peak_afl_AutoController_AutoTolerance_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTolerance_Get") :
nullptr);
775 if(m_peak_afl_AutoController_AutoTolerance_Get ==
nullptr && load)
777 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTolerance_Get");
780 m_peak_afl_AutoController_AutoTolerance_GetRange = (dyn_peak_afl_AutoController_AutoTolerance_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoTolerance_GetRange") :
nullptr);
781 if(m_peak_afl_AutoController_AutoTolerance_GetRange ==
nullptr && load)
783 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoTolerance_GetRange");
786 m_peak_afl_AutoController_AutoPercentile_IsSupported = (dyn_peak_afl_AutoController_AutoPercentile_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoPercentile_IsSupported") :
nullptr);
787 if(m_peak_afl_AutoController_AutoPercentile_IsSupported ==
nullptr && load)
789 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoPercentile_IsSupported");
792 m_peak_afl_AutoController_AutoPercentile_Set = (dyn_peak_afl_AutoController_AutoPercentile_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoPercentile_Set") :
nullptr);
793 if(m_peak_afl_AutoController_AutoPercentile_Set ==
nullptr && load)
795 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoPercentile_Set");
798 m_peak_afl_AutoController_AutoPercentile_Get = (dyn_peak_afl_AutoController_AutoPercentile_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoPercentile_Get") :
nullptr);
799 if(m_peak_afl_AutoController_AutoPercentile_Get ==
nullptr && load)
801 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoPercentile_Get");
804 m_peak_afl_AutoController_AutoPercentile_GetRange = (dyn_peak_afl_AutoController_AutoPercentile_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_AutoPercentile_GetRange") :
nullptr);
805 if(m_peak_afl_AutoController_AutoPercentile_GetRange ==
nullptr && load)
807 throw std::runtime_error(
"Failed to load peak_afl_AutoController_AutoPercentile_GetRange");
810 m_peak_afl_AutoController_Type_Get = (dyn_peak_afl_AutoController_Type_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Type_Get") :
nullptr);
811 if(m_peak_afl_AutoController_Type_Get ==
nullptr && load)
813 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Type_Get");
816 m_peak_afl_AutoController_Algorithm_IsSupported = (dyn_peak_afl_AutoController_Algorithm_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_Algorithm_IsSupported") :
nullptr);
817 if(m_peak_afl_AutoController_Algorithm_IsSupported ==
nullptr && load)
819 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Algorithm_IsSupported");
822 m_peak_afl_AutoController_Algorithm_Set = (dyn_peak_afl_AutoController_Algorithm_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Algorithm_Set") :
nullptr);
823 if(m_peak_afl_AutoController_Algorithm_Set ==
nullptr && load)
825 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Algorithm_Set");
828 m_peak_afl_AutoController_Algorithm_Get = (dyn_peak_afl_AutoController_Algorithm_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Algorithm_Get") :
nullptr);
829 if(m_peak_afl_AutoController_Algorithm_Get ==
nullptr && load)
831 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Algorithm_Get");
834 m_peak_afl_AutoController_Algorithm_GetList = (dyn_peak_afl_AutoController_Algorithm_GetList) (load ? import_function(m_handle,
"peak_afl_AutoController_Algorithm_GetList") :
nullptr);
835 if(m_peak_afl_AutoController_Algorithm_GetList ==
nullptr && load)
837 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Algorithm_GetList");
840 m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported = (dyn_peak_afl_AutoController_SharpnessAlgorithm_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_SharpnessAlgorithm_IsSupported") :
nullptr);
841 if(m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported ==
nullptr && load)
843 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SharpnessAlgorithm_IsSupported");
846 m_peak_afl_AutoController_SharpnessAlgorithm_Set = (dyn_peak_afl_AutoController_SharpnessAlgorithm_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_SharpnessAlgorithm_Set") :
nullptr);
847 if(m_peak_afl_AutoController_SharpnessAlgorithm_Set ==
nullptr && load)
849 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SharpnessAlgorithm_Set");
852 m_peak_afl_AutoController_SharpnessAlgorithm_Get = (dyn_peak_afl_AutoController_SharpnessAlgorithm_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_SharpnessAlgorithm_Get") :
nullptr);
853 if(m_peak_afl_AutoController_SharpnessAlgorithm_Get ==
nullptr && load)
855 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SharpnessAlgorithm_Get");
858 m_peak_afl_AutoController_SharpnessAlgorithm_GetList = (dyn_peak_afl_AutoController_SharpnessAlgorithm_GetList) (load ? import_function(m_handle,
"peak_afl_AutoController_SharpnessAlgorithm_GetList") :
nullptr);
859 if(m_peak_afl_AutoController_SharpnessAlgorithm_GetList ==
nullptr && load)
861 throw std::runtime_error(
"Failed to load peak_afl_AutoController_SharpnessAlgorithm_GetList");
864 m_peak_afl_AutoController_Callback_Set = (dyn_peak_afl_AutoController_Callback_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Callback_Set") :
nullptr);
865 if(m_peak_afl_AutoController_Callback_Set ==
nullptr && load)
867 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Callback_Set");
870 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);
871 if(m_peak_afl_AutoController_Weighted_ROI_IsSupported ==
nullptr && load)
873 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Weighted_ROI_IsSupported");
876 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);
877 if(m_peak_afl_AutoController_Weighted_ROI_Min_Size ==
nullptr && load)
879 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Weighted_ROI_Min_Size");
882 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);
883 if(m_peak_afl_AutoController_Weighted_ROI_Set ==
nullptr && load)
885 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Weighted_ROI_Set");
888 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);
889 if(m_peak_afl_AutoController_Weighted_ROI_Get ==
nullptr && load)
891 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Weighted_ROI_Get");
894 m_peak_afl_AutoController_Limit_IsSupported = (dyn_peak_afl_AutoController_Limit_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_Limit_IsSupported") :
nullptr);
895 if(m_peak_afl_AutoController_Limit_IsSupported ==
nullptr && load)
897 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Limit_IsSupported");
900 m_peak_afl_AutoController_Limit_Default = (dyn_peak_afl_AutoController_Limit_Default) (load ? import_function(m_handle,
"peak_afl_AutoController_Limit_Default") :
nullptr);
901 if(m_peak_afl_AutoController_Limit_Default ==
nullptr && load)
903 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Limit_Default");
906 m_peak_afl_AutoController_Limit_Set = (dyn_peak_afl_AutoController_Limit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Limit_Set") :
nullptr);
907 if(m_peak_afl_AutoController_Limit_Set ==
nullptr && load)
909 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Limit_Set");
912 m_peak_afl_AutoController_Limit_Get = (dyn_peak_afl_AutoController_Limit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Limit_Get") :
nullptr);
913 if(m_peak_afl_AutoController_Limit_Get ==
nullptr && load)
915 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Limit_Get");
918 m_peak_afl_AutoController_Hysteresis_IsSupported = (dyn_peak_afl_AutoController_Hysteresis_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_IsSupported") :
nullptr);
919 if(m_peak_afl_AutoController_Hysteresis_IsSupported ==
nullptr && load)
921 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_IsSupported");
924 m_peak_afl_AutoController_Hysteresis_Default = (dyn_peak_afl_AutoController_Hysteresis_Default) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_Default") :
nullptr);
925 if(m_peak_afl_AutoController_Hysteresis_Default ==
nullptr && load)
927 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_Default");
930 m_peak_afl_AutoController_Hysteresis_Set = (dyn_peak_afl_AutoController_Hysteresis_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_Set") :
nullptr);
931 if(m_peak_afl_AutoController_Hysteresis_Set ==
nullptr && load)
933 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_Set");
936 m_peak_afl_AutoController_Hysteresis_Get = (dyn_peak_afl_AutoController_Hysteresis_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_Get") :
nullptr);
937 if(m_peak_afl_AutoController_Hysteresis_Get ==
nullptr && load)
939 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_Get");
942 m_peak_afl_AutoController_Hysteresis_GetRange = (dyn_peak_afl_AutoController_Hysteresis_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_Hysteresis_GetRange") :
nullptr);
943 if(m_peak_afl_AutoController_Hysteresis_GetRange ==
nullptr && load)
945 throw std::runtime_error(
"Failed to load peak_afl_AutoController_Hysteresis_GetRange");
948 m_peak_afl_AutoController_GainLimit_IsSupported = (dyn_peak_afl_AutoController_GainLimit_IsSupported) (load ? import_function(m_handle,
"peak_afl_AutoController_GainLimit_IsSupported") :
nullptr);
949 if(m_peak_afl_AutoController_GainLimit_IsSupported ==
nullptr && load)
951 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainLimit_IsSupported");
954 m_peak_afl_AutoController_GainLimit_Set = (dyn_peak_afl_AutoController_GainLimit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_GainLimit_Set") :
nullptr);
955 if(m_peak_afl_AutoController_GainLimit_Set ==
nullptr && load)
957 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainLimit_Set");
960 m_peak_afl_AutoController_GainLimit_Get = (dyn_peak_afl_AutoController_GainLimit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_GainLimit_Get") :
nullptr);
961 if(m_peak_afl_AutoController_GainLimit_Get ==
nullptr && load)
963 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainLimit_Get");
966 m_peak_afl_AutoController_GainLimit_GetRange = (dyn_peak_afl_AutoController_GainLimit_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_GainLimit_GetRange") :
nullptr);
967 if(m_peak_afl_AutoController_GainLimit_GetRange ==
nullptr && load)
969 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainLimit_GetRange");
972 m_peak_afl_AutoController_GainAnalogLimit_Set = (dyn_peak_afl_AutoController_GainAnalogLimit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_GainAnalogLimit_Set") :
nullptr);
973 if(m_peak_afl_AutoController_GainAnalogLimit_Set ==
nullptr && load)
975 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainAnalogLimit_Set");
978 m_peak_afl_AutoController_GainAnalogLimit_Get = (dyn_peak_afl_AutoController_GainAnalogLimit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_GainAnalogLimit_Get") :
nullptr);
979 if(m_peak_afl_AutoController_GainAnalogLimit_Get ==
nullptr && load)
981 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainAnalogLimit_Get");
984 m_peak_afl_AutoController_GainAnalogLimit_GetRange = (dyn_peak_afl_AutoController_GainAnalogLimit_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_GainAnalogLimit_GetRange") :
nullptr);
985 if(m_peak_afl_AutoController_GainAnalogLimit_GetRange ==
nullptr && load)
987 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainAnalogLimit_GetRange");
990 m_peak_afl_AutoController_GainDigitalLimit_Set = (dyn_peak_afl_AutoController_GainDigitalLimit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_GainDigitalLimit_Set") :
nullptr);
991 if(m_peak_afl_AutoController_GainDigitalLimit_Set ==
nullptr && load)
993 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainDigitalLimit_Set");
996 m_peak_afl_AutoController_GainDigitalLimit_Get = (dyn_peak_afl_AutoController_GainDigitalLimit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_GainDigitalLimit_Get") :
nullptr);
997 if(m_peak_afl_AutoController_GainDigitalLimit_Get ==
nullptr && load)
999 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainDigitalLimit_Get");
1002 m_peak_afl_AutoController_GainDigitalLimit_GetRange = (dyn_peak_afl_AutoController_GainDigitalLimit_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_GainDigitalLimit_GetRange") :
nullptr);
1003 if(m_peak_afl_AutoController_GainDigitalLimit_GetRange ==
nullptr && load)
1005 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainDigitalLimit_GetRange");
1008 m_peak_afl_AutoController_GainCombinedLimit_Set = (dyn_peak_afl_AutoController_GainCombinedLimit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_GainCombinedLimit_Set") :
nullptr);
1009 if(m_peak_afl_AutoController_GainCombinedLimit_Set ==
nullptr && load)
1011 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainCombinedLimit_Set");
1014 m_peak_afl_AutoController_GainCombinedLimit_Get = (dyn_peak_afl_AutoController_GainCombinedLimit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_GainCombinedLimit_Get") :
nullptr);
1015 if(m_peak_afl_AutoController_GainCombinedLimit_Get ==
nullptr && load)
1017 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainCombinedLimit_Get");
1020 m_peak_afl_AutoController_GainCombinedLimit_GetRange = (dyn_peak_afl_AutoController_GainCombinedLimit_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_GainCombinedLimit_GetRange") :
nullptr);
1021 if(m_peak_afl_AutoController_GainCombinedLimit_GetRange ==
nullptr && load)
1023 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainCombinedLimit_GetRange");
1026 m_peak_afl_AutoController_GainHostLimit_Set = (dyn_peak_afl_AutoController_GainHostLimit_Set) (load ? import_function(m_handle,
"peak_afl_AutoController_GainHostLimit_Set") :
nullptr);
1027 if(m_peak_afl_AutoController_GainHostLimit_Set ==
nullptr && load)
1029 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainHostLimit_Set");
1032 m_peak_afl_AutoController_GainHostLimit_Get = (dyn_peak_afl_AutoController_GainHostLimit_Get) (load ? import_function(m_handle,
"peak_afl_AutoController_GainHostLimit_Get") :
nullptr);
1033 if(m_peak_afl_AutoController_GainHostLimit_Get ==
nullptr && load)
1035 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainHostLimit_Get");
1038 m_peak_afl_AutoController_GainHostLimit_GetRange = (dyn_peak_afl_AutoController_GainHostLimit_GetRange) (load ? import_function(m_handle,
"peak_afl_AutoController_GainHostLimit_GetRange") :
nullptr);
1039 if(m_peak_afl_AutoController_GainHostLimit_GetRange ==
nullptr && load)
1041 throw std::runtime_error(
"Failed to load peak_afl_AutoController_GainHostLimit_GetRange");
1048inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_Init(
void )
1050 auto& inst = instance();
1051 if(inst.m_peak_afl_Init)
1053 return inst.m_peak_afl_Init();
1057 throw std::runtime_error(
"Library not loaded!");
1061inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_Exit(
void )
1063 auto& inst = instance();
1064 if(inst.m_peak_afl_Exit)
1066 return inst.m_peak_afl_Exit();
1070 throw std::runtime_error(
"Library not loaded!");
1074inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_GetLastError(
peak_afl_status * lastErrorCode,
char * lastErrorMessage,
size_t * lastErrorMessageSize)
1076 auto& inst = instance();
1077 if(inst.m_peak_afl_GetLastError)
1079 return inst.m_peak_afl_GetLastError(lastErrorCode, lastErrorMessage, lastErrorMessageSize);
1083 throw std::runtime_error(
"Library not loaded!");
1087inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_GetVersion(uint32_t * majorVersion, uint32_t * minorVersion, uint32_t * subminorVersion, uint32_t * patchVersion)
1089 auto& inst = instance();
1090 if(inst.m_peak_afl_GetVersion)
1092 return inst.m_peak_afl_GetVersion(majorVersion, minorVersion, subminorVersion, patchVersion);
1096 throw std::runtime_error(
"Library not loaded!");
1100inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoFeatureManager_Create(
peak_afl_manager_handle * handle, PEAK_NODE_MAP_HANDLE nodeMapHandle)
1102 auto& inst = instance();
1103 if(inst.m_peak_afl_AutoFeatureManager_Create)
1105 return inst.m_peak_afl_AutoFeatureManager_Create(handle, nodeMapHandle);
1109 throw std::runtime_error(
"Library not loaded!");
1115 auto& inst = instance();
1116 if(inst.m_peak_afl_AutoFeatureManager_Destroy)
1118 return inst.m_peak_afl_AutoFeatureManager_Destroy(handle);
1122 throw std::runtime_error(
"Library not loaded!");
1128 auto& inst = instance();
1129 if(inst.m_peak_afl_AutoFeatureManager_AddController)
1131 return inst.m_peak_afl_AutoFeatureManager_AddController(handle, controller);
1135 throw std::runtime_error(
"Library not loaded!");
1141 auto& inst = instance();
1142 if(inst.m_peak_afl_AutoFeatureManager_RemoveController)
1144 return inst.m_peak_afl_AutoFeatureManager_RemoveController(handle, controller);
1148 throw std::runtime_error(
"Library not loaded!");
1152inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoFeatureManager_Process(
peak_afl_manager_handle handle, PEAK_IPL_IMAGE_HANDLE imageHandle)
1154 auto& inst = instance();
1155 if(inst.m_peak_afl_AutoFeatureManager_Process)
1157 return inst.m_peak_afl_AutoFeatureManager_Process(handle, imageHandle);
1161 throw std::runtime_error(
"Library not loaded!");
1167 auto& inst = instance();
1168 if(inst.m_peak_afl_AutoFeatureManager_CreateController)
1170 return inst.m_peak_afl_AutoFeatureManager_CreateController(handle, controller, controllerType);
1174 throw std::runtime_error(
"Library not loaded!");
1178inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoFeatureManager_DestroyAllController(
peak_afl_manager_handle handle)
1180 auto& inst = instance();
1181 if(inst.m_peak_afl_AutoFeatureManager_DestroyAllController)
1183 return inst.m_peak_afl_AutoFeatureManager_DestroyAllController(handle);
1187 throw std::runtime_error(
"Library not loaded!");
1193 auto& inst = instance();
1194 if(inst.m_peak_afl_AutoFeatureManager_DestroyController)
1196 return inst.m_peak_afl_AutoFeatureManager_DestroyController(handle, controller);
1200 throw std::runtime_error(
"Library not loaded!");
1204inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoFeatureManager_SetGainIPL(
peak_afl_manager_handle handle, PEAK_IPL_GAIN_HANDLE gainHandle)
1206 auto& inst = instance();
1207 if(inst.m_peak_afl_AutoFeatureManager_SetGainIPL)
1209 return inst.m_peak_afl_AutoFeatureManager_SetGainIPL(handle, gainHandle);
1213 throw std::runtime_error(
"Library not loaded!");
1217inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoFeatureManager_SetCCM(
peak_afl_manager_handle handle,
float * ccm,
size_t ccm_size)
1219 auto& inst = instance();
1220 if(inst.m_peak_afl_AutoFeatureManager_SetCCM)
1222 return inst.m_peak_afl_AutoFeatureManager_SetCCM(handle, ccm, ccm_size);
1226 throw std::runtime_error(
"Library not loaded!");
1232 auto& inst = instance();
1233 if(inst.m_peak_afl_AutoFeatureManager_Status)
1235 return inst.m_peak_afl_AutoFeatureManager_Status(handle, running);
1239 throw std::runtime_error(
"Library not loaded!");
1245 auto& inst = instance();
1246 if(inst.m_peak_afl_AutoFeatureManager_Controller_IsSupported)
1248 return inst.m_peak_afl_AutoFeatureManager_Controller_IsSupported(handle, controllerType, supported);
1252 throw std::runtime_error(
"Library not loaded!");
1258 auto& inst = instance();
1259 if(inst.m_peak_afl_AutoController_Create)
1261 return inst.m_peak_afl_AutoController_Create(controller, controllerType);
1265 throw std::runtime_error(
"Library not loaded!");
1271 auto& inst = instance();
1272 if(inst.m_peak_afl_AutoController_Destroy)
1274 return inst.m_peak_afl_AutoController_Destroy(controller);
1278 throw std::runtime_error(
"Library not loaded!");
1284 auto& inst = instance();
1285 if(inst.m_peak_afl_AutoController_SkipFrames_IsSupported)
1287 return inst.m_peak_afl_AutoController_SkipFrames_IsSupported(controller, supported);
1291 throw std::runtime_error(
"Library not loaded!");
1295inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_SkipFrames_Set(
peak_afl_controller_handle controller, uint32_t count)
1297 auto& inst = instance();
1298 if(inst.m_peak_afl_AutoController_SkipFrames_Set)
1300 return inst.m_peak_afl_AutoController_SkipFrames_Set(controller, count);
1304 throw std::runtime_error(
"Library not loaded!");
1308inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_SkipFrames_Get(
peak_afl_controller_handle controller, uint32_t * count)
1310 auto& inst = instance();
1311 if(inst.m_peak_afl_AutoController_SkipFrames_Get)
1313 return inst.m_peak_afl_AutoController_SkipFrames_Get(controller, count);
1317 throw std::runtime_error(
"Library not loaded!");
1321inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_SkipFrames_GetRange(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc)
1323 auto& inst = instance();
1324 if(inst.m_peak_afl_AutoController_SkipFrames_GetRange)
1326 return inst.m_peak_afl_AutoController_SkipFrames_GetRange(controller, min, max, inc);
1330 throw std::runtime_error(
"Library not loaded!");
1336 auto& inst = instance();
1337 if(inst.m_peak_afl_AutoController_ROI_IsSupported)
1339 return inst.m_peak_afl_AutoController_ROI_IsSupported(controller, supported);
1343 throw std::runtime_error(
"Library not loaded!");
1347inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_ROI_Set(
peak_afl_controller_handle controller, peak_afl_rectangle roi)
1349 auto& inst = instance();
1350 if(inst.m_peak_afl_AutoController_ROI_Set)
1352 return inst.m_peak_afl_AutoController_ROI_Set(controller, roi);
1356 throw std::runtime_error(
"Library not loaded!");
1360inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_ROI_Get(
peak_afl_controller_handle controller, peak_afl_rectangle * roi)
1362 auto& inst = instance();
1363 if(inst.m_peak_afl_AutoController_ROI_Get)
1365 return inst.m_peak_afl_AutoController_ROI_Get(controller, roi);
1369 throw std::runtime_error(
"Library not loaded!");
1375 auto& inst = instance();
1376 if(inst.m_peak_afl_AutoController_ROI_Preset_IsSupported)
1378 return inst.m_peak_afl_AutoController_ROI_Preset_IsSupported(controller, supported);
1382 throw std::runtime_error(
"Library not loaded!");
1388 auto& inst = instance();
1389 if(inst.m_peak_afl_AutoController_ROI_Preset_Set)
1391 return inst.m_peak_afl_AutoController_ROI_Preset_Set(controller, roiPreset);
1395 throw std::runtime_error(
"Library not loaded!");
1401 auto& inst = instance();
1402 if(inst.m_peak_afl_AutoController_Mode_IsSupported)
1404 return inst.m_peak_afl_AutoController_Mode_IsSupported(controller, supported);
1408 throw std::runtime_error(
"Library not loaded!");
1414 auto& inst = instance();
1415 if(inst.m_peak_afl_AutoController_Mode_Set)
1417 return inst.m_peak_afl_AutoController_Mode_Set(controller, mode);
1421 throw std::runtime_error(
"Library not loaded!");
1427 auto& inst = instance();
1428 if(inst.m_peak_afl_AutoController_Mode_Get)
1430 return inst.m_peak_afl_AutoController_Mode_Get(controller, mode);
1434 throw std::runtime_error(
"Library not loaded!");
1440 auto& inst = instance();
1441 if(inst.m_peak_afl_AutoController_BrightnessAlgorithm_Set)
1443 return inst.m_peak_afl_AutoController_BrightnessAlgorithm_Set(controller, algorithm);
1447 throw std::runtime_error(
"Library not loaded!");
1453 auto& inst = instance();
1454 if(inst.m_peak_afl_AutoController_BrightnessAlgorithm_Get)
1456 return inst.m_peak_afl_AutoController_BrightnessAlgorithm_Get(controller, algorithm);
1460 throw std::runtime_error(
"Library not loaded!");
1466 auto& inst = instance();
1467 if(inst.m_peak_afl_AutoController_BrightnessAlgorithm_IsSupported)
1469 return inst.m_peak_afl_AutoController_BrightnessAlgorithm_IsSupported(controller, supported);
1473 throw std::runtime_error(
"Library not loaded!");
1479 auto& inst = instance();
1480 if(inst.m_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported)
1482 return inst.m_peak_afl_AutoController_BrightnessComponent_Mode_IsSupported(controller, supported);
1486 throw std::runtime_error(
"Library not loaded!");
1492 auto& inst = instance();
1493 if(inst.m_peak_afl_AutoController_BrightnessComponent_Unit_IsSupported)
1495 return inst.m_peak_afl_AutoController_BrightnessComponent_Unit_IsSupported(controller, unit, supported);
1499 throw std::runtime_error(
"Library not loaded!");
1505 auto& inst = instance();
1506 if(inst.m_peak_afl_AutoController_BrightnessComponent_Mode_Set)
1508 return inst.m_peak_afl_AutoController_BrightnessComponent_Mode_Set(controller, component, mode);
1512 throw std::runtime_error(
"Library not loaded!");
1518 auto& inst = instance();
1519 if(inst.m_peak_afl_AutoController_BrightnessComponent_Mode_Get)
1521 return inst.m_peak_afl_AutoController_BrightnessComponent_Mode_Get(controller, component, mode);
1525 throw std::runtime_error(
"Library not loaded!");
1531 auto& inst = instance();
1532 if(inst.m_peak_afl_AutoController_BrightnessComponent_Status)
1534 return inst.m_peak_afl_AutoController_BrightnessComponent_Status(controller, component, status);
1538 throw std::runtime_error(
"Library not loaded!");
1544 auto& inst = instance();
1545 if(inst.m_peak_afl_AutoController_BrightnessComponent_Callback_Set)
1547 return inst.m_peak_afl_AutoController_BrightnessComponent_Callback_Set(controller, component, type, funcPtr, context);
1551 throw std::runtime_error(
"Library not loaded!");
1557 auto& inst = instance();
1558 if(inst.m_peak_afl_AutoController_ExposureLimit_IsSupported)
1560 return inst.m_peak_afl_AutoController_ExposureLimit_IsSupported(controller, supported);
1564 throw std::runtime_error(
"Library not loaded!");
1568inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_ExposureLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit)
1570 auto& inst = instance();
1571 if(inst.m_peak_afl_AutoController_ExposureLimit_Set)
1573 return inst.m_peak_afl_AutoController_ExposureLimit_Set(controller, limit);
1577 throw std::runtime_error(
"Library not loaded!");
1581inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_ExposureLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
1583 auto& inst = instance();
1584 if(inst.m_peak_afl_AutoController_ExposureLimit_Get)
1586 return inst.m_peak_afl_AutoController_ExposureLimit_Get(controller, limit);
1590 throw std::runtime_error(
"Library not loaded!");
1596 auto& inst = instance();
1597 if(inst.m_peak_afl_AutoController_Status)
1599 return inst.m_peak_afl_AutoController_Status(controller, status);
1603 throw std::runtime_error(
"Library not loaded!");
1607inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GetLastAutoAverage(
peak_afl_controller_handle controller, uint8_t * average)
1609 auto& inst = instance();
1610 if(inst.m_peak_afl_AutoController_GetLastAutoAverage)
1612 return inst.m_peak_afl_AutoController_GetLastAutoAverage(controller, average);
1616 throw std::runtime_error(
"Library not loaded!");
1620inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GetLastAutoAverages(
peak_afl_controller_handle controller, uint8_t * averageRed, uint8_t * averageGreen, uint8_t * averageBlue)
1622 auto& inst = instance();
1623 if(inst.m_peak_afl_AutoController_GetLastAutoAverages)
1625 return inst.m_peak_afl_AutoController_GetLastAutoAverages(controller, averageRed, averageGreen, averageBlue);
1629 throw std::runtime_error(
"Library not loaded!");
1635 auto& inst = instance();
1636 if(inst.m_peak_afl_AutoController_AutoTarget_IsSupported)
1638 return inst.m_peak_afl_AutoController_AutoTarget_IsSupported(controller, supported);
1642 throw std::runtime_error(
"Library not loaded!");
1646inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTarget_Set(
peak_afl_controller_handle controller, uint32_t target)
1648 auto& inst = instance();
1649 if(inst.m_peak_afl_AutoController_AutoTarget_Set)
1651 return inst.m_peak_afl_AutoController_AutoTarget_Set(controller, target);
1655 throw std::runtime_error(
"Library not loaded!");
1659inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTarget_Get(
peak_afl_controller_handle controller, uint32_t * target)
1661 auto& inst = instance();
1662 if(inst.m_peak_afl_AutoController_AutoTarget_Get)
1664 return inst.m_peak_afl_AutoController_AutoTarget_Get(controller, target);
1668 throw std::runtime_error(
"Library not loaded!");
1672inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTarget_GetRange(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc)
1674 auto& inst = instance();
1675 if(inst.m_peak_afl_AutoController_AutoTarget_GetRange)
1677 return inst.m_peak_afl_AutoController_AutoTarget_GetRange(controller, min, max, inc);
1681 throw std::runtime_error(
"Library not loaded!");
1687 auto& inst = instance();
1688 if(inst.m_peak_afl_AutoController_AutoTolerance_IsSupported)
1690 return inst.m_peak_afl_AutoController_AutoTolerance_IsSupported(controller, supported);
1694 throw std::runtime_error(
"Library not loaded!");
1698inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTolerance_Set(
peak_afl_controller_handle controller, uint32_t tolerance)
1700 auto& inst = instance();
1701 if(inst.m_peak_afl_AutoController_AutoTolerance_Set)
1703 return inst.m_peak_afl_AutoController_AutoTolerance_Set(controller, tolerance);
1707 throw std::runtime_error(
"Library not loaded!");
1711inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTolerance_Get(
peak_afl_controller_handle controller, uint32_t * tolerance)
1713 auto& inst = instance();
1714 if(inst.m_peak_afl_AutoController_AutoTolerance_Get)
1716 return inst.m_peak_afl_AutoController_AutoTolerance_Get(controller, tolerance);
1720 throw std::runtime_error(
"Library not loaded!");
1724inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoTolerance_GetRange(
peak_afl_controller_handle controller, uint32_t * min, uint32_t * max, uint32_t * inc)
1726 auto& inst = instance();
1727 if(inst.m_peak_afl_AutoController_AutoTolerance_GetRange)
1729 return inst.m_peak_afl_AutoController_AutoTolerance_GetRange(controller, min, max, inc);
1733 throw std::runtime_error(
"Library not loaded!");
1739 auto& inst = instance();
1740 if(inst.m_peak_afl_AutoController_AutoPercentile_IsSupported)
1742 return inst.m_peak_afl_AutoController_AutoPercentile_IsSupported(controller, supported);
1746 throw std::runtime_error(
"Library not loaded!");
1750inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoPercentile_Set(
peak_afl_controller_handle controller,
double percentile)
1752 auto& inst = instance();
1753 if(inst.m_peak_afl_AutoController_AutoPercentile_Set)
1755 return inst.m_peak_afl_AutoController_AutoPercentile_Set(controller, percentile);
1759 throw std::runtime_error(
"Library not loaded!");
1763inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoPercentile_Get(
peak_afl_controller_handle controller,
double * percentile)
1765 auto& inst = instance();
1766 if(inst.m_peak_afl_AutoController_AutoPercentile_Get)
1768 return inst.m_peak_afl_AutoController_AutoPercentile_Get(controller, percentile);
1772 throw std::runtime_error(
"Library not loaded!");
1776inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_AutoPercentile_GetRange(
peak_afl_controller_handle controller,
double * min,
double * max,
double * inc)
1778 auto& inst = instance();
1779 if(inst.m_peak_afl_AutoController_AutoPercentile_GetRange)
1781 return inst.m_peak_afl_AutoController_AutoPercentile_GetRange(controller, min, max, inc);
1785 throw std::runtime_error(
"Library not loaded!");
1791 auto& inst = instance();
1792 if(inst.m_peak_afl_AutoController_Type_Get)
1794 return inst.m_peak_afl_AutoController_Type_Get(controller, type);
1798 throw std::runtime_error(
"Library not loaded!");
1804 auto& inst = instance();
1805 if(inst.m_peak_afl_AutoController_Algorithm_IsSupported)
1807 return inst.m_peak_afl_AutoController_Algorithm_IsSupported(controller, supported);
1811 throw std::runtime_error(
"Library not loaded!");
1817 auto& inst = instance();
1818 if(inst.m_peak_afl_AutoController_Algorithm_Set)
1820 return inst.m_peak_afl_AutoController_Algorithm_Set(controller, algorithm);
1824 throw std::runtime_error(
"Library not loaded!");
1830 auto& inst = instance();
1831 if(inst.m_peak_afl_AutoController_Algorithm_Get)
1833 return inst.m_peak_afl_AutoController_Algorithm_Get(controller, algorithm);
1837 throw std::runtime_error(
"Library not loaded!");
1843 auto& inst = instance();
1844 if(inst.m_peak_afl_AutoController_Algorithm_GetList)
1846 return inst.m_peak_afl_AutoController_Algorithm_GetList(controller, typeList, listSize);
1850 throw std::runtime_error(
"Library not loaded!");
1856 auto& inst = instance();
1857 if(inst.m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported)
1859 return inst.m_peak_afl_AutoController_SharpnessAlgorithm_IsSupported(controller, supported);
1863 throw std::runtime_error(
"Library not loaded!");
1869 auto& inst = instance();
1870 if(inst.m_peak_afl_AutoController_SharpnessAlgorithm_Set)
1872 return inst.m_peak_afl_AutoController_SharpnessAlgorithm_Set(controller, algorithm);
1876 throw std::runtime_error(
"Library not loaded!");
1882 auto& inst = instance();
1883 if(inst.m_peak_afl_AutoController_SharpnessAlgorithm_Get)
1885 return inst.m_peak_afl_AutoController_SharpnessAlgorithm_Get(controller, algorithm);
1889 throw std::runtime_error(
"Library not loaded!");
1895 auto& inst = instance();
1896 if(inst.m_peak_afl_AutoController_SharpnessAlgorithm_GetList)
1898 return inst.m_peak_afl_AutoController_SharpnessAlgorithm_GetList(controller, typeList, listSize);
1902 throw std::runtime_error(
"Library not loaded!");
1908 auto& inst = instance();
1909 if(inst.m_peak_afl_AutoController_Callback_Set)
1911 return inst.m_peak_afl_AutoController_Callback_Set(controller, type, funcPtr, context);
1915 throw std::runtime_error(
"Library not loaded!");
1921 auto& inst = instance();
1922 if(inst.m_peak_afl_AutoController_Weighted_ROI_IsSupported)
1924 return inst.m_peak_afl_AutoController_Weighted_ROI_IsSupported(controller, supported);
1928 throw std::runtime_error(
"Library not loaded!");
1932inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Weighted_ROI_Min_Size(
peak_afl_controller_handle controller, peak_afl_size * size)
1934 auto& inst = instance();
1935 if(inst.m_peak_afl_AutoController_Weighted_ROI_Min_Size)
1937 return inst.m_peak_afl_AutoController_Weighted_ROI_Min_Size(controller, size);
1941 throw std::runtime_error(
"Library not loaded!");
1945inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Weighted_ROI_Set(
peak_afl_controller_handle controller,
const peak_afl_weighted_rectangle * weightedRoiList, uint32_t listSize)
1947 auto& inst = instance();
1948 if(inst.m_peak_afl_AutoController_Weighted_ROI_Set)
1950 return inst.m_peak_afl_AutoController_Weighted_ROI_Set(controller, weightedRoiList, listSize);
1954 throw std::runtime_error(
"Library not loaded!");
1958inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Weighted_ROI_Get(
peak_afl_controller_handle controller, peak_afl_weighted_rectangle * weightedRoiList, uint32_t * listSize)
1960 auto& inst = instance();
1961 if(inst.m_peak_afl_AutoController_Weighted_ROI_Get)
1963 return inst.m_peak_afl_AutoController_Weighted_ROI_Get(controller, weightedRoiList, listSize);
1967 throw std::runtime_error(
"Library not loaded!");
1973 auto& inst = instance();
1974 if(inst.m_peak_afl_AutoController_Limit_IsSupported)
1976 return inst.m_peak_afl_AutoController_Limit_IsSupported(controller, supported);
1980 throw std::runtime_error(
"Library not loaded!");
1984inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Limit_Default(
peak_afl_controller_handle controller, peak_afl_controller_limit * limit)
1986 auto& inst = instance();
1987 if(inst.m_peak_afl_AutoController_Limit_Default)
1989 return inst.m_peak_afl_AutoController_Limit_Default(controller, limit);
1993 throw std::runtime_error(
"Library not loaded!");
1997inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Limit_Set(
peak_afl_controller_handle controller, peak_afl_controller_limit limit)
1999 auto& inst = instance();
2000 if(inst.m_peak_afl_AutoController_Limit_Set)
2002 return inst.m_peak_afl_AutoController_Limit_Set(controller, limit);
2006 throw std::runtime_error(
"Library not loaded!");
2010inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Limit_Get(
peak_afl_controller_handle controller, peak_afl_controller_limit * limit)
2012 auto& inst = instance();
2013 if(inst.m_peak_afl_AutoController_Limit_Get)
2015 return inst.m_peak_afl_AutoController_Limit_Get(controller, limit);
2019 throw std::runtime_error(
"Library not loaded!");
2025 auto& inst = instance();
2026 if(inst.m_peak_afl_AutoController_Hysteresis_IsSupported)
2028 return inst.m_peak_afl_AutoController_Hysteresis_IsSupported(controller, supported);
2032 throw std::runtime_error(
"Library not loaded!");
2036inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Hysteresis_Default(
peak_afl_controller_handle controller, uint8_t * hysteresis)
2038 auto& inst = instance();
2039 if(inst.m_peak_afl_AutoController_Hysteresis_Default)
2041 return inst.m_peak_afl_AutoController_Hysteresis_Default(controller, hysteresis);
2045 throw std::runtime_error(
"Library not loaded!");
2049inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Hysteresis_Set(
peak_afl_controller_handle controller, uint8_t hysteresis)
2051 auto& inst = instance();
2052 if(inst.m_peak_afl_AutoController_Hysteresis_Set)
2054 return inst.m_peak_afl_AutoController_Hysteresis_Set(controller, hysteresis);
2058 throw std::runtime_error(
"Library not loaded!");
2062inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Hysteresis_Get(
peak_afl_controller_handle controller, uint8_t * hysteresis)
2064 auto& inst = instance();
2065 if(inst.m_peak_afl_AutoController_Hysteresis_Get)
2067 return inst.m_peak_afl_AutoController_Hysteresis_Get(controller, hysteresis);
2071 throw std::runtime_error(
"Library not loaded!");
2075inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_Hysteresis_GetRange(
peak_afl_controller_handle controller, uint8_t * min, uint8_t * max, uint8_t * inc)
2077 auto& inst = instance();
2078 if(inst.m_peak_afl_AutoController_Hysteresis_GetRange)
2080 return inst.m_peak_afl_AutoController_Hysteresis_GetRange(controller, min, max, inc);
2084 throw std::runtime_error(
"Library not loaded!");
2090 auto& inst = instance();
2091 if(inst.m_peak_afl_AutoController_GainLimit_IsSupported)
2093 return inst.m_peak_afl_AutoController_GainLimit_IsSupported(controller, supported);
2097 throw std::runtime_error(
"Library not loaded!");
2101inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit)
2103 auto& inst = instance();
2104 if(inst.m_peak_afl_AutoController_GainLimit_Set)
2106 return inst.m_peak_afl_AutoController_GainLimit_Set(controller, limit);
2110 throw std::runtime_error(
"Library not loaded!");
2114inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2116 auto& inst = instance();
2117 if(inst.m_peak_afl_AutoController_GainLimit_Get)
2119 return inst.m_peak_afl_AutoController_GainLimit_Get(controller, limit);
2123 throw std::runtime_error(
"Library not loaded!");
2127inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2129 auto& inst = instance();
2130 if(inst.m_peak_afl_AutoController_GainLimit_GetRange)
2132 return inst.m_peak_afl_AutoController_GainLimit_GetRange(controller, limit);
2136 throw std::runtime_error(
"Library not loaded!");
2140inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainAnalogLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit)
2142 auto& inst = instance();
2143 if(inst.m_peak_afl_AutoController_GainAnalogLimit_Set)
2145 return inst.m_peak_afl_AutoController_GainAnalogLimit_Set(controller, limit);
2149 throw std::runtime_error(
"Library not loaded!");
2153inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainAnalogLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2155 auto& inst = instance();
2156 if(inst.m_peak_afl_AutoController_GainAnalogLimit_Get)
2158 return inst.m_peak_afl_AutoController_GainAnalogLimit_Get(controller, limit);
2162 throw std::runtime_error(
"Library not loaded!");
2166inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainAnalogLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2168 auto& inst = instance();
2169 if(inst.m_peak_afl_AutoController_GainAnalogLimit_GetRange)
2171 return inst.m_peak_afl_AutoController_GainAnalogLimit_GetRange(controller, limit);
2175 throw std::runtime_error(
"Library not loaded!");
2179inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainDigitalLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit)
2181 auto& inst = instance();
2182 if(inst.m_peak_afl_AutoController_GainDigitalLimit_Set)
2184 return inst.m_peak_afl_AutoController_GainDigitalLimit_Set(controller, limit);
2188 throw std::runtime_error(
"Library not loaded!");
2192inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainDigitalLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2194 auto& inst = instance();
2195 if(inst.m_peak_afl_AutoController_GainDigitalLimit_Get)
2197 return inst.m_peak_afl_AutoController_GainDigitalLimit_Get(controller, limit);
2201 throw std::runtime_error(
"Library not loaded!");
2205inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainDigitalLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2207 auto& inst = instance();
2208 if(inst.m_peak_afl_AutoController_GainDigitalLimit_GetRange)
2210 return inst.m_peak_afl_AutoController_GainDigitalLimit_GetRange(controller, limit);
2214 throw std::runtime_error(
"Library not loaded!");
2218inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainCombinedLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit)
2220 auto& inst = instance();
2221 if(inst.m_peak_afl_AutoController_GainCombinedLimit_Set)
2223 return inst.m_peak_afl_AutoController_GainCombinedLimit_Set(controller, limit);
2227 throw std::runtime_error(
"Library not loaded!");
2231inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainCombinedLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2233 auto& inst = instance();
2234 if(inst.m_peak_afl_AutoController_GainCombinedLimit_Get)
2236 return inst.m_peak_afl_AutoController_GainCombinedLimit_Get(controller, limit);
2240 throw std::runtime_error(
"Library not loaded!");
2244inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainCombinedLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2246 auto& inst = instance();
2247 if(inst.m_peak_afl_AutoController_GainCombinedLimit_GetRange)
2249 return inst.m_peak_afl_AutoController_GainCombinedLimit_GetRange(controller, limit);
2253 throw std::runtime_error(
"Library not loaded!");
2257inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainHostLimit_Set(
peak_afl_controller_handle controller, peak_afl_double_limit limit)
2259 auto& inst = instance();
2260 if(inst.m_peak_afl_AutoController_GainHostLimit_Set)
2262 return inst.m_peak_afl_AutoController_GainHostLimit_Set(controller, limit);
2266 throw std::runtime_error(
"Library not loaded!");
2270inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainHostLimit_Get(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2272 auto& inst = instance();
2273 if(inst.m_peak_afl_AutoController_GainHostLimit_Get)
2275 return inst.m_peak_afl_AutoController_GainHostLimit_Get(controller, limit);
2279 throw std::runtime_error(
"Library not loaded!");
2283inline PEAK_AFL_API_STATUS DynamicLoader::peak_afl_AutoController_GainHostLimit_GetRange(
peak_afl_controller_handle controller, peak_afl_double_limit * limit)
2285 auto& inst = instance();
2286 if(inst.m_peak_afl_AutoController_GainHostLimit_GetRange)
2288 return inst.m_peak_afl_AutoController_GainHostLimit_GetRange(controller, limit);
2292 throw std::runtime_error(
"Library not loaded!");
peak_afl_controllerType
Auto feature controller types.
Definition peak_afl.h:223
peak_afl_controller_brightness_algorithm
Brightness calculation algorithms.
Definition peak_afl.h:505
peak_afl_controller_brightness_component
Brightness control components.
Definition peak_afl.h:609
peak_afl_callback_type
Controller callback types.
Definition peak_afl.h:808
peak_afl_controller_algorithm
Focus search algorithms.
Definition peak_afl.h:429
peak_afl_controller_automode
Auto feature controller operation modes.
Definition peak_afl.h:277
peak_afl_roi_preset
Predefined ROI preset configurations.
Definition peak_afl.h:1141
peak_afl_controller_sharpness_algorithm
Focus sharpness calculation algorithms.
Definition peak_afl.h:541
peak_afl_status
Auto feature library status codes.
Definition peak_afl.h:117
peak_afl_controller_status
Controller operational status.
Definition peak_afl.h:323
uint8_t peak_afl_BOOL8
Custom 8-bit boolean type.
Definition peak_afl.h:1359
C API interface for automatic camera feature control.
void * peak_afl_controller_handle
Opaque handle for auto feature controllers.
Definition peak_afl.h:91
void * peak_afl_manager_handle
Opaque handle for auto feature managers.
Definition peak_afl.h:103