1#![allow(dead_code,non_upper_case_globals,non_camel_case_types,non_snake_case)]
4
5pub const _STDINT_H: u32 = 1;
6pub const _FEATURES_H: u32 = 1;
7pub const _DEFAULT_SOURCE: u32 = 1;
8pub const __GLIBC_USE_ISOC2X: u32 = 0;
9pub const __USE_ISOC11: u32 = 1;
10pub const __USE_ISOC99: u32 = 1;
11pub const __USE_ISOC95: u32 = 1;
12pub const __USE_POSIX_IMPLICITLY: u32 = 1;
13pub const _POSIX_SOURCE: u32 = 1;
14pub const _POSIX_C_SOURCE: u32 = 200809;
15pub const __USE_POSIX: u32 = 1;
16pub const __USE_POSIX2: u32 = 1;
17pub const __USE_POSIX199309: u32 = 1;
18pub const __USE_POSIX199506: u32 = 1;
19pub const __USE_XOPEN2K: u32 = 1;
20pub const __USE_XOPEN2K8: u32 = 1;
21pub const _ATFILE_SOURCE: u32 = 1;
22pub const __USE_MISC: u32 = 1;
23pub const __USE_ATFILE: u32 = 1;
24pub const __USE_FORTIFY_LEVEL: u32 = 0;
25pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
26pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
27pub const _STDC_PREDEF_H: u32 = 1;
28pub const __STDC_IEC_559__: u32 = 1;
29pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
30pub const __STDC_ISO_10646__: u32 = 201706;
31pub const __GNU_LIBRARY__: u32 = 6;
32pub const __GLIBC__: u32 = 2;
33pub const __GLIBC_MINOR__: u32 = 31;
34pub const _SYS_CDEFS_H: u32 = 1;
35pub const __glibc_c99_flexarr_available: u32 = 1;
36pub const __WORDSIZE: u32 = 64;
37pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
38pub const __SYSCALL_WORDSIZE: u32 = 64;
39pub const __LONG_DOUBLE_USES_FLOAT128: u32 = 0;
40pub const __HAVE_GENERIC_SELECTION: u32 = 1;
41pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
42pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
43pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
44pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
45pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
46pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
47pub const _BITS_TYPES_H: u32 = 1;
48pub const __TIMESIZE: u32 = 64;
49pub const _BITS_TYPESIZES_H: u32 = 1;
50pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
51pub const __INO_T_MATCHES_INO64_T: u32 = 1;
52pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
53pub const __STATFS_MATCHES_STATFS64: u32 = 1;
54pub const __FD_SETSIZE: u32 = 1024;
55pub const _BITS_TIME64_H: u32 = 1;
56pub const _BITS_WCHAR_H: u32 = 1;
57pub const _BITS_STDINT_INTN_H: u32 = 1;
58pub const _BITS_STDINT_UINTN_H: u32 = 1;
59pub const INT8_MIN: i32 = -128;
60pub const INT16_MIN: i32 = -32768;
61pub const INT32_MIN: i32 = -2147483648;
62pub const INT8_MAX: u32 = 127;
63pub const INT16_MAX: u32 = 32767;
64pub const INT32_MAX: u32 = 2147483647;
65pub const UINT8_MAX: u32 = 255;
66pub const UINT16_MAX: u32 = 65535;
67pub const UINT32_MAX: u32 = 4294967295;
68pub const INT_LEAST8_MIN: i32 = -128;
69pub const INT_LEAST16_MIN: i32 = -32768;
70pub const INT_LEAST32_MIN: i32 = -2147483648;
71pub const INT_LEAST8_MAX: u32 = 127;
72pub const INT_LEAST16_MAX: u32 = 32767;
73pub const INT_LEAST32_MAX: u32 = 2147483647;
74pub const UINT_LEAST8_MAX: u32 = 255;
75pub const UINT_LEAST16_MAX: u32 = 65535;
76pub const UINT_LEAST32_MAX: u32 = 4294967295;
77pub const INT_FAST8_MIN: i32 = -128;
78pub const INT_FAST16_MIN: i64 = -9223372036854775808;
79pub const INT_FAST32_MIN: i64 = -9223372036854775808;
80pub const INT_FAST8_MAX: u32 = 127;
81pub const INT_FAST16_MAX: u64 = 9223372036854775807;
82pub const INT_FAST32_MAX: u64 = 9223372036854775807;
83pub const UINT_FAST8_MAX: u32 = 255;
84pub const UINT_FAST16_MAX: i32 = -1;
85pub const UINT_FAST32_MAX: i32 = -1;
86pub const INTPTR_MIN: i64 = -9223372036854775808;
87pub const INTPTR_MAX: u64 = 9223372036854775807;
88pub const UINTPTR_MAX: i32 = -1;
89pub const PTRDIFF_MIN: i64 = -9223372036854775808;
90pub const PTRDIFF_MAX: u64 = 9223372036854775807;
91pub const SIG_ATOMIC_MIN: i32 = -2147483648;
92pub const SIG_ATOMIC_MAX: u32 = 2147483647;
93pub const SIZE_MAX: i32 = -1;
94pub const WINT_MIN: u32 = 0;
95pub const WINT_MAX: u32 = 4294967295;
96pub const VMBINFINITE: u32 = 4294967295;
97pub type wchar_t = ::std::os::raw::c_int;
98#[repr(C)]
99#[repr(align(16))]
100#[derive(Debug, Copy, Clone, PartialEq)]
101pub struct max_align_t {
102 pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
103 pub __bindgen_padding_0: u64,
104 pub __clang_max_align_nonce2: u128,
105}
106#[test]
107fn bindgen_test_layout_max_align_t() {
108 const UNINIT: ::std::mem::MaybeUninit<max_align_t> = ::std::mem::MaybeUninit::uninit();
109 let ptr = UNINIT.as_ptr();
110 assert_eq!(
111 ::std::mem::size_of::<max_align_t>(),
112 32usize,
113 concat!("Size of: ", stringify!(max_align_t))
114 );
115 assert_eq!(
116 ::std::mem::align_of::<max_align_t>(),
117 16usize,
118 concat!("Alignment of ", stringify!(max_align_t))
119 );
120 assert_eq!(
121 unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize },
122 0usize,
123 concat!(
124 "Offset of field: ",
125 stringify!(max_align_t),
126 "::",
127 stringify!(__clang_max_align_nonce1)
128 )
129 );
130 assert_eq!(
131 unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize },
132 16usize,
133 concat!(
134 "Offset of field: ",
135 stringify!(max_align_t),
136 "::",
137 stringify!(__clang_max_align_nonce2)
138 )
139 );
140}
141pub type __u_char = ::std::os::raw::c_uchar;
142pub type __u_short = ::std::os::raw::c_ushort;
143pub type __u_int = ::std::os::raw::c_uint;
144pub type __u_long = ::std::os::raw::c_ulong;
145pub type __int8_t = ::std::os::raw::c_schar;
146pub type __uint8_t = ::std::os::raw::c_uchar;
147pub type __int16_t = ::std::os::raw::c_short;
148pub type __uint16_t = ::std::os::raw::c_ushort;
149pub type __int32_t = ::std::os::raw::c_int;
150pub type __uint32_t = ::std::os::raw::c_uint;
151pub type __int64_t = ::std::os::raw::c_long;
152pub type __uint64_t = ::std::os::raw::c_ulong;
153pub type __int_least8_t = __int8_t;
154pub type __uint_least8_t = __uint8_t;
155pub type __int_least16_t = __int16_t;
156pub type __uint_least16_t = __uint16_t;
157pub type __int_least32_t = __int32_t;
158pub type __uint_least32_t = __uint32_t;
159pub type __int_least64_t = __int64_t;
160pub type __uint_least64_t = __uint64_t;
161pub type __quad_t = ::std::os::raw::c_long;
162pub type __u_quad_t = ::std::os::raw::c_ulong;
163pub type __intmax_t = ::std::os::raw::c_long;
164pub type __uintmax_t = ::std::os::raw::c_ulong;
165pub type __dev_t = ::std::os::raw::c_ulong;
166pub type __uid_t = ::std::os::raw::c_uint;
167pub type __gid_t = ::std::os::raw::c_uint;
168pub type __ino_t = ::std::os::raw::c_ulong;
169pub type __ino64_t = ::std::os::raw::c_ulong;
170pub type __mode_t = ::std::os::raw::c_uint;
171pub type __nlink_t = ::std::os::raw::c_ulong;
172pub type __off_t = ::std::os::raw::c_long;
173pub type __off64_t = ::std::os::raw::c_long;
174pub type __pid_t = ::std::os::raw::c_int;
175#[repr(C)]
176#[derive(Debug, Copy, Clone, PartialEq)]
177pub struct __fsid_t {
178 pub __val: [::std::os::raw::c_int; 2usize],
179}
180#[test]
181fn bindgen_test_layout___fsid_t() {
182 const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit();
183 let ptr = UNINIT.as_ptr();
184 assert_eq!(
185 ::std::mem::size_of::<__fsid_t>(),
186 8usize,
187 concat!("Size of: ", stringify!(__fsid_t))
188 );
189 assert_eq!(
190 ::std::mem::align_of::<__fsid_t>(),
191 4usize,
192 concat!("Alignment of ", stringify!(__fsid_t))
193 );
194 assert_eq!(
195 unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
196 0usize,
197 concat!(
198 "Offset of field: ",
199 stringify!(__fsid_t),
200 "::",
201 stringify!(__val)
202 )
203 );
204}
205pub type __clock_t = ::std::os::raw::c_long;
206pub type __rlim_t = ::std::os::raw::c_ulong;
207pub type __rlim64_t = ::std::os::raw::c_ulong;
208pub type __id_t = ::std::os::raw::c_uint;
209pub type __time_t = ::std::os::raw::c_long;
210pub type __useconds_t = ::std::os::raw::c_uint;
211pub type __suseconds_t = ::std::os::raw::c_long;
212pub type __daddr_t = ::std::os::raw::c_int;
213pub type __key_t = ::std::os::raw::c_int;
214pub type __clockid_t = ::std::os::raw::c_int;
215pub type __timer_t = *mut ::std::os::raw::c_void;
216pub type __blksize_t = ::std::os::raw::c_long;
217pub type __blkcnt_t = ::std::os::raw::c_long;
218pub type __blkcnt64_t = ::std::os::raw::c_long;
219pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
220pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
221pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
222pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
223pub type __fsword_t = ::std::os::raw::c_long;
224pub type __ssize_t = ::std::os::raw::c_long;
225pub type __syscall_slong_t = ::std::os::raw::c_long;
226pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
227pub type __loff_t = __off64_t;
228pub type __caddr_t = *mut ::std::os::raw::c_char;
229pub type __intptr_t = ::std::os::raw::c_long;
230pub type __socklen_t = ::std::os::raw::c_uint;
231pub type __sig_atomic_t = ::std::os::raw::c_int;
232pub type int_least8_t = __int_least8_t;
233pub type int_least16_t = __int_least16_t;
234pub type int_least32_t = __int_least32_t;
235pub type int_least64_t = __int_least64_t;
236pub type uint_least8_t = __uint_least8_t;
237pub type uint_least16_t = __uint_least16_t;
238pub type uint_least32_t = __uint_least32_t;
239pub type uint_least64_t = __uint_least64_t;
240pub type int_fast8_t = ::std::os::raw::c_schar;
241pub type int_fast16_t = ::std::os::raw::c_long;
242pub type int_fast32_t = ::std::os::raw::c_long;
243pub type int_fast64_t = ::std::os::raw::c_long;
244pub type uint_fast8_t = ::std::os::raw::c_uchar;
245pub type uint_fast16_t = ::std::os::raw::c_ulong;
246pub type uint_fast32_t = ::std::os::raw::c_ulong;
247pub type uint_fast64_t = ::std::os::raw::c_ulong;
248pub type intmax_t = __intmax_t;
249pub type uintmax_t = __uintmax_t;
250#[doc = " \\brief 8-bit signed integer."]
251pub type VmbInt8_t = ::std::os::raw::c_schar;
252#[doc = " \\brief 8-bit unsigned integer."]
253pub type VmbUint8_t = ::std::os::raw::c_uchar;
254#[doc = " \\brief 16-bit signed integer."]
255pub type VmbInt16_t = ::std::os::raw::c_short;
256#[doc = " \\brief 16-bit unsigned integer."]
257pub type VmbUint16_t = ::std::os::raw::c_ushort;
258#[doc = " \\brief 32-bit signed integer."]
259pub type VmbInt32_t = ::std::os::raw::c_int;
260#[doc = " \\brief 32-bit unsigned integer."]
261pub type VmbUint32_t = ::std::os::raw::c_uint;
262#[doc = " \\brief 64-bit signed integer."]
263pub type VmbInt64_t = ::std::os::raw::c_longlong;
264#[doc = " \\brief 64-bit unsigned integer."]
265pub type VmbUint64_t = ::std::os::raw::c_ulonglong;
266#[doc = " \\brief Handle, e.g. for a camera."]
267pub type VmbHandle_t = *mut ::std::os::raw::c_void;
268#[doc = " \\brief Boolean type (equivalent to char).\n\n For values see ::VmbBoolVal"]
269pub type VmbBool_t = ::std::os::raw::c_char;
270pub mod VmbBoolVal {
271 #[doc = " \\brief enum for bool values."]
272 pub type Type = ::std::os::raw::c_uint;
273 pub const VmbBoolTrue: Type = 1;
274 pub const VmbBoolFalse: Type = 0;
275}
276#[doc = " \\brief char type."]
277pub type VmbUchar_t = ::std::os::raw::c_uchar;
278#[doc = " Character type used for file paths"]
279pub type VmbFilePathChar_t = ::std::os::raw::c_char;
280pub mod VmbErrorType {
281 #[doc = " \\brief Error codes, returned by most functions."]
282 pub type Type = ::std::os::raw::c_int;
283 #[doc = "!< No error"]
284 pub const VmbErrorSuccess: Type = 0;
285 #[doc = "!< Unexpected fault in VmbC or driver"]
286 pub const VmbErrorInternalFault: Type = -1;
287 #[doc = "!< ::VmbStartup() was not called before the current command"]
288 pub const VmbErrorApiNotStarted: Type = -2;
289 #[doc = "!< The designated instance (camera, feature etc.) cannot be found"]
290 pub const VmbErrorNotFound: Type = -3;
291 #[doc = "!< The given handle is not valid"]
292 pub const VmbErrorBadHandle: Type = -4;
293 #[doc = "!< Device was not opened for usage"]
294 pub const VmbErrorDeviceNotOpen: Type = -5;
295 #[doc = "!< Operation is invalid with the current access mode"]
296 pub const VmbErrorInvalidAccess: Type = -6;
297 #[doc = "!< One of the parameters is invalid (usually an illegal pointer)"]
298 pub const VmbErrorBadParameter: Type = -7;
299 #[doc = "!< The given struct size is not valid for this version of the API"]
300 pub const VmbErrorStructSize: Type = -8;
301 #[doc = "!< More data available in a string/list than space is provided"]
302 pub const VmbErrorMoreData: Type = -9;
303 #[doc = "!< Wrong feature type for this access function"]
304 pub const VmbErrorWrongType: Type = -10;
305 #[doc = "!< The value is not valid; either out of bounds or not an increment of the minimum"]
306 pub const VmbErrorInvalidValue: Type = -11;
307 #[doc = "!< Timeout during wait"]
308 pub const VmbErrorTimeout: Type = -12;
309 #[doc = "!< Other error"]
310 pub const VmbErrorOther: Type = -13;
311 #[doc = "!< Resources not available (e.g. memory)"]
312 pub const VmbErrorResources: Type = -14;
313 #[doc = "!< Call is invalid in the current context (e.g. callback)"]
314 pub const VmbErrorInvalidCall: Type = -15;
315 #[doc = "!< No transport layers are found"]
316 pub const VmbErrorNoTL: Type = -16;
317 #[doc = "!< API feature is not implemented"]
318 pub const VmbErrorNotImplemented: Type = -17;
319 #[doc = "!< API feature is not supported"]
320 pub const VmbErrorNotSupported: Type = -18;
321 #[doc = "!< The current operation was not completed (e.g. a multiple registers read or write)"]
322 pub const VmbErrorIncomplete: Type = -19;
323 #[doc = "!< Low level IO error in transport layer"]
324 pub const VmbErrorIO: Type = -20;
325 #[doc = "!< The valid value set could not be retrieved, since the feature does not provide this property"]
326 pub const VmbErrorValidValueSetNotPresent: Type = -21;
327 #[doc = "!< Unspecified GenTL runtime error"]
328 pub const VmbErrorGenTLUnspecified: Type = -22;
329 #[doc = "!< Unspecified runtime error"]
330 pub const VmbErrorUnspecified: Type = -23;
331 #[doc = "!< The responsible module/entity is busy executing actions"]
332 pub const VmbErrorBusy: Type = -24;
333 #[doc = "!< The function has no data to work on"]
334 pub const VmbErrorNoData: Type = -25;
335 #[doc = "!< An error occurred parsing a buffer containing chunk data"]
336 pub const VmbErrorParsingChunkData: Type = -26;
337 #[doc = "!< Something is already in use"]
338 pub const VmbErrorInUse: Type = -27;
339 #[doc = "!< Error condition unknown"]
340 pub const VmbErrorUnknown: Type = -28;
341 #[doc = "!< Error parsing XML"]
342 pub const VmbErrorXml: Type = -29;
343 #[doc = "!< Something is not available"]
344 pub const VmbErrorNotAvailable: Type = -30;
345 #[doc = "!< Something is not initialized"]
346 pub const VmbErrorNotInitialized: Type = -31;
347 #[doc = "!< The given address is out of range or invalid for internal reasons"]
348 pub const VmbErrorInvalidAddress: Type = -32;
349 #[doc = "!< Something has already been done"]
350 pub const VmbErrorAlready: Type = -33;
351 #[doc = "!< A frame expected to contain chunk data does not contain chunk data"]
352 pub const VmbErrorNoChunkData: Type = -34;
353 #[doc = "!< A callback provided by the user threw an exception"]
354 pub const VmbErrorUserCallbackException: Type = -35;
355 #[doc = "!< The XML for the module is currently not loaded; the module could be in the wrong state or the XML could not be retrieved or could not be parsed properly"]
356 pub const VmbErrorFeaturesUnavailable: Type = -36;
357 #[doc = "!< A required transport layer could not be found or loaded"]
358 pub const VmbErrorTLNotFound: Type = -37;
359 #[doc = "!< An entity cannot be uniquely identified based on the information provided"]
360 pub const VmbErrorAmbiguous: Type = -39;
361 #[doc = "!< Something could not be accomplished with a given number of retries"]
362 pub const VmbErrorRetriesExceeded: Type = -40;
363 #[doc = "!< The operation requires more buffers"]
364 pub const VmbErrorInsufficientBufferCount: Type = -41;
365 #[doc = "!< The minimum error code to use for user defined error codes to avoid conflict with existing error codes"]
366 pub const VmbErrorCustom: Type = 1;
367}
368#[doc = " \\brief Type for an error returned by API methods; for values see ::VmbErrorType."]
369pub type VmbError_t = VmbInt32_t;
370#[doc = " \\brief Version information."]
371#[repr(C)]
372#[derive(Debug, Copy, Clone, PartialEq)]
373pub struct VmbVersionInfo {
374 #[doc = "!< Major version number"]
375 pub major: VmbUint32_t,
376 #[doc = "!< Minor version number"]
377 pub minor: VmbUint32_t,
378 #[doc = "!< Patch version number"]
379 pub patch: VmbUint32_t,
380}
381#[test]
382fn bindgen_test_layout_VmbVersionInfo() {
383 const UNINIT: ::std::mem::MaybeUninit<VmbVersionInfo> = ::std::mem::MaybeUninit::uninit();
384 let ptr = UNINIT.as_ptr();
385 assert_eq!(
386 ::std::mem::size_of::<VmbVersionInfo>(),
387 12usize,
388 concat!("Size of: ", stringify!(VmbVersionInfo))
389 );
390 assert_eq!(
391 ::std::mem::align_of::<VmbVersionInfo>(),
392 4usize,
393 concat!("Alignment of ", stringify!(VmbVersionInfo))
394 );
395 assert_eq!(
396 unsafe { ::std::ptr::addr_of!((*ptr).major) as usize - ptr as usize },
397 0usize,
398 concat!(
399 "Offset of field: ",
400 stringify!(VmbVersionInfo),
401 "::",
402 stringify!(major)
403 )
404 );
405 assert_eq!(
406 unsafe { ::std::ptr::addr_of!((*ptr).minor) as usize - ptr as usize },
407 4usize,
408 concat!(
409 "Offset of field: ",
410 stringify!(VmbVersionInfo),
411 "::",
412 stringify!(minor)
413 )
414 );
415 assert_eq!(
416 unsafe { ::std::ptr::addr_of!((*ptr).patch) as usize - ptr as usize },
417 8usize,
418 concat!(
419 "Offset of field: ",
420 stringify!(VmbVersionInfo),
421 "::",
422 stringify!(patch)
423 )
424 );
425}
426#[doc = " \\brief Version information."]
427pub type VmbVersionInfo_t = VmbVersionInfo;
428pub mod VmbPixelType {
429 #[doc = " \\brief Indicates if pixel is monochrome or RGB."]
430 pub type Type = ::std::os::raw::c_uint;
431 #[doc = "!< Monochrome pixel"]
432 pub const VmbPixelMono: Type = 16777216;
433 #[doc = "!< Pixel bearing color information"]
434 pub const VmbPixelColor: Type = 33554432;
435}
436pub mod VmbPixelOccupyType {
437 #[doc = " \\brief Indicates number of bits for a pixel. Needed for building values of ::VmbPixelFormatType."]
438 pub type Type = ::std::os::raw::c_uint;
439 #[doc = "!< Pixel effectively occupies 8 bits"]
440 pub const VmbPixelOccupy8Bit: Type = 524288;
441 #[doc = "!< Pixel effectively occupies 10 bits"]
442 pub const VmbPixelOccupy10Bit: Type = 655360;
443 #[doc = "!< Pixel effectively occupies 12 bits"]
444 pub const VmbPixelOccupy12Bit: Type = 786432;
445 #[doc = "!< Pixel effectively occupies 14 bits"]
446 pub const VmbPixelOccupy14Bit: Type = 917504;
447 #[doc = "!< Pixel effectively occupies 16 bits"]
448 pub const VmbPixelOccupy16Bit: Type = 1048576;
449 #[doc = "!< Pixel effectively occupies 24 bits"]
450 pub const VmbPixelOccupy24Bit: Type = 1572864;
451 #[doc = "!< Pixel effectively occupies 32 bits"]
452 pub const VmbPixelOccupy32Bit: Type = 2097152;
453 #[doc = "!< Pixel effectively occupies 48 bits"]
454 pub const VmbPixelOccupy48Bit: Type = 3145728;
455 #[doc = "!< Pixel effectively occupies 64 bits"]
456 pub const VmbPixelOccupy64Bit: Type = 4194304;
457}
458pub mod VmbPixelFormatType {
459 #[doc = " \\brief Pixel format types.\n As far as possible, the Pixel Format Naming Convention (PFNC) has been followed, allowing a few deviations.\n If data spans more than one byte, it is always LSB aligned, except if stated differently."]
460 pub type Type = ::std::os::raw::c_uint;
461 #[doc = "!< Monochrome, 8 bits (PFNC: Mono8)"]
462 pub const VmbPixelFormatMono8: Type = 17301505;
463 #[doc = "!< Monochrome, 10 bits in 16 bits (PFNC: Mono10)"]
464 pub const VmbPixelFormatMono10: Type = 17825795;
465 #[doc = "!< Monochrome, 10 bits in 16 bits (PFNC: Mono10p)"]
466 pub const VmbPixelFormatMono10p: Type = 17432646;
467 #[doc = "!< Monochrome, 12 bits in 16 bits (PFNC: Mono12)"]
468 pub const VmbPixelFormatMono12: Type = 17825797;
469 #[doc = "!< Monochrome, 2x12 bits in 24 bits (GEV:Mono12Packed)"]
470 pub const VmbPixelFormatMono12Packed: Type = 17563654;
471 #[doc = "!< Monochrome, 2x12 bits in 24 bits (PFNC: MonoPacked)"]
472 pub const VmbPixelFormatMono12p: Type = 17563719;
473 #[doc = "!< Monochrome, 14 bits in 16 bits (PFNC: Mono14)"]
474 pub const VmbPixelFormatMono14: Type = 17825829;
475 #[doc = "!< Monochrome, 16 bits (PFNC: Mono16)"]
476 pub const VmbPixelFormatMono16: Type = 17825799;
477 #[doc = "!< Bayer-color, 8 bits, starting with GR line (PFNC: BayerGR8)"]
478 pub const VmbPixelFormatBayerGR8: Type = 17301512;
479 #[doc = "!< Bayer-color, 8 bits, starting with RG line (PFNC: BayerRG8)"]
480 pub const VmbPixelFormatBayerRG8: Type = 17301513;
481 #[doc = "!< Bayer-color, 8 bits, starting with GB line (PFNC: BayerGB8)"]
482 pub const VmbPixelFormatBayerGB8: Type = 17301514;
483 #[doc = "!< Bayer-color, 8 bits, starting with BG line (PFNC: BayerBG8)"]
484 pub const VmbPixelFormatBayerBG8: Type = 17301515;
485 #[doc = "!< Bayer-color, 10 bits in 16 bits, starting with GR line (PFNC: BayerGR10)"]
486 pub const VmbPixelFormatBayerGR10: Type = 17825804;
487 #[doc = "!< Bayer-color, 10 bits in 16 bits, starting with RG line (PFNC: BayerRG10)"]
488 pub const VmbPixelFormatBayerRG10: Type = 17825805;
489 #[doc = "!< Bayer-color, 10 bits in 16 bits, starting with GB line (PFNC: BayerGB10)"]
490 pub const VmbPixelFormatBayerGB10: Type = 17825806;
491 #[doc = "!< Bayer-color, 10 bits in 16 bits, starting with BG line (PFNC: BayerBG10)"]
492 pub const VmbPixelFormatBayerBG10: Type = 17825807;
493 #[doc = "!< Bayer-color, 12 bits in 16 bits, starting with GR line (PFNC: BayerGR12)"]
494 pub const VmbPixelFormatBayerGR12: Type = 17825808;
495 #[doc = "!< Bayer-color, 12 bits in 16 bits, starting with RG line (PFNC: BayerRG12)"]
496 pub const VmbPixelFormatBayerRG12: Type = 17825809;
497 #[doc = "!< Bayer-color, 12 bits in 16 bits, starting with GB line (PFNC: BayerGB12)"]
498 pub const VmbPixelFormatBayerGB12: Type = 17825810;
499 #[doc = "!< Bayer-color, 12 bits in 16 bits, starting with BG line (PFNC: BayerBG12)"]
500 pub const VmbPixelFormatBayerBG12: Type = 17825811;
501 #[doc = "!< Bayer-color, 2x12 bits in 24 bits, starting with GR line (GEV:BayerGR12Packed)"]
502 pub const VmbPixelFormatBayerGR12Packed: Type = 17563690;
503 #[doc = "!< Bayer-color, 2x12 bits in 24 bits, starting with RG line (GEV:BayerRG12Packed)"]
504 pub const VmbPixelFormatBayerRG12Packed: Type = 17563691;
505 #[doc = "!< Bayer-color, 2x12 bits in 24 bits, starting with GB line (GEV:BayerGB12Packed)"]
506 pub const VmbPixelFormatBayerGB12Packed: Type = 17563692;
507 #[doc = "!< Bayer-color, 2x12 bits in 24 bits, starting with BG line (GEV:BayerBG12Packed)"]
508 pub const VmbPixelFormatBayerBG12Packed: Type = 17563693;
509 #[doc = "!< Bayer-color, 10 bits continuous packed, starting with GR line (PFNC: BayerGR10p)"]
510 pub const VmbPixelFormatBayerGR10p: Type = 17432662;
511 #[doc = "!< Bayer-color, 10 bits continuous packed, starting with RG line (PFNC: BayerRG10p)"]
512 pub const VmbPixelFormatBayerRG10p: Type = 17432664;
513 #[doc = "!< Bayer-color, 10 bits continuous packed, starting with GB line (PFNC: BayerGB10p)"]
514 pub const VmbPixelFormatBayerGB10p: Type = 17432660;
515 #[doc = "!< Bayer-color, 10 bits continuous packed, starting with BG line (PFNC: BayerBG10p)"]
516 pub const VmbPixelFormatBayerBG10p: Type = 17432658;
517 #[doc = "!< Bayer-color, 12 bits continuous packed, starting with GR line (PFNC: BayerGR12p)"]
518 pub const VmbPixelFormatBayerGR12p: Type = 17563735;
519 #[doc = "!< Bayer-color, 12 bits continuous packed, starting with RG line (PFNC: BayerRG12p)"]
520 pub const VmbPixelFormatBayerRG12p: Type = 17563737;
521 #[doc = "!< Bayer-color, 12 bits continuous packed, starting with GB line (PFNC: BayerGB12p)"]
522 pub const VmbPixelFormatBayerGB12p: Type = 17563733;
523 #[doc = "!< Bayer-color, 12 bits continuous packed, starting with BG line (PFNC: BayerBG12p)"]
524 pub const VmbPixelFormatBayerBG12p: Type = 17563731;
525 #[doc = "!< Bayer-color, 16 bits, starting with GR line (PFNC: BayerGR16)"]
526 pub const VmbPixelFormatBayerGR16: Type = 17825838;
527 #[doc = "!< Bayer-color, 16 bits, starting with RG line (PFNC: BayerRG16)"]
528 pub const VmbPixelFormatBayerRG16: Type = 17825839;
529 #[doc = "!< Bayer-color, 16 bits, starting with GB line (PFNC: BayerGB16)"]
530 pub const VmbPixelFormatBayerGB16: Type = 17825840;
531 #[doc = "!< Bayer-color, 16 bits, starting with BG line (PFNC: BayerBG16)"]
532 pub const VmbPixelFormatBayerBG16: Type = 17825841;
533 #[doc = "!< RGB, 8 bits x 3 (PFNC: RGB8)"]
534 pub const VmbPixelFormatRgb8: Type = 35127316;
535 #[doc = "!< BGR, 8 bits x 3 (PFNC: BGR8)"]
536 pub const VmbPixelFormatBgr8: Type = 35127317;
537 #[doc = "!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)"]
538 pub const VmbPixelFormatRgb10: Type = 36700184;
539 #[doc = "!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)"]
540 pub const VmbPixelFormatBgr10: Type = 36700185;
541 #[doc = "!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)"]
542 pub const VmbPixelFormatRgb12: Type = 36700186;
543 #[doc = "!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)"]
544 pub const VmbPixelFormatBgr12: Type = 36700187;
545 #[doc = "!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)"]
546 pub const VmbPixelFormatRgb14: Type = 36700254;
547 #[doc = "!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)"]
548 pub const VmbPixelFormatBgr14: Type = 36700234;
549 #[doc = "!< RGB, 16 bits x 3 (PFNC: RGB16)"]
550 pub const VmbPixelFormatRgb16: Type = 36700211;
551 #[doc = "!< RGB, 16 bits x 3 (PFNC: RGB16)"]
552 pub const VmbPixelFormatBgr16: Type = 36700235;
553 #[doc = "!< ARGB, 8 bits x 4 (PFNC: RGBa8)"]
554 pub const VmbPixelFormatArgb8: Type = 35651606;
555 #[doc = "!< RGBA, 8 bits x 4, legacy name"]
556 pub const VmbPixelFormatRgba8: Type = 35651606;
557 #[doc = "!< BGRA, 8 bits x 4 (PFNC: BGRa8)"]
558 pub const VmbPixelFormatBgra8: Type = 35651607;
559 #[doc = "!< RGBA, 8 bits x 4, legacy name"]
560 pub const VmbPixelFormatRgba10: Type = 37748831;
561 #[doc = "!< RGBA, 8 bits x 4, legacy name"]
562 pub const VmbPixelFormatBgra10: Type = 37748812;
563 #[doc = "!< RGBA, 8 bits x 4, legacy name"]
564 pub const VmbPixelFormatRgba12: Type = 37748833;
565 #[doc = "!< RGBA, 8 bits x 4, legacy name"]
566 pub const VmbPixelFormatBgra12: Type = 37748814;
567 #[doc = "!< RGBA, 8 bits x 4, legacy name"]
568 pub const VmbPixelFormatRgba14: Type = 37748835;
569 #[doc = "!< RGBA, 8 bits x 4, legacy name"]
570 pub const VmbPixelFormatBgra14: Type = 37748816;
571 #[doc = "!< RGBA, 8 bits x 4, legacy name"]
572 pub const VmbPixelFormatRgba16: Type = 37748836;
573 #[doc = "!< RGBA, 8 bits x 4, legacy name"]
574 pub const VmbPixelFormatBgra16: Type = 37748817;
575 #[doc = "!< YUV 4:1:1 with 8 bits (PFNC: YUV411_8_UYYVYY, GEV:YUV411Packed)"]
576 pub const VmbPixelFormatYuv411: Type = 34340894;
577 #[doc = "!< YUV 4:2:2 with 8 bits (PFNC: YUV422_8_UYVY, GEV:YUV422Packed)"]
578 pub const VmbPixelFormatYuv422: Type = 34603039;
579 #[doc = "!< YUV 4:4:4 with 8 bits (PFNC: YUV8_UYV, GEV:YUV444Packed)"]
580 pub const VmbPixelFormatYuv444: Type = 35127328;
581 #[doc = "!< YUV 4:2:2 with 8 bits Channel order YUYV (PFNC: YUV422_8)"]
582 pub const VmbPixelFormatYuv422_8: Type = 34603058;
583 #[doc = "!< YCbCr 4:4:4 with 8 bits (PFNC: YCbCr8_CbYCr) - identical to VmbPixelFormatYuv444"]
584 pub const VmbPixelFormatYCbCr8_CbYCr: Type = 35127354;
585 #[doc = "!< YCbCr 4:2:2 8-bit YCbYCr (PFNC: YCbCr422_8)"]
586 pub const VmbPixelFormatYCbCr422_8: Type = 34603067;
587 #[doc = "!< YCbCr 4:1:1 with 8 bits (PFNC: YCbCr411_8_CbYYCrYY) - identical to VmbPixelFormatYuv411"]
588 pub const VmbPixelFormatYCbCr411_8_CbYYCrYY: Type = 34340924;
589 #[doc = "!< YCbCr601 4:4:4 8-bit CbYCrt (PFNC: YCbCr601_8_CbYCr)"]
590 pub const VmbPixelFormatYCbCr601_8_CbYCr: Type = 35127357;
591 #[doc = "!< YCbCr601 4:2:2 8-bit YCbYCr (PFNC: YCbCr601_422_8)"]
592 pub const VmbPixelFormatYCbCr601_422_8: Type = 34603070;
593 #[doc = "!< YCbCr601 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr601_411_8_CbYYCrYY)"]
594 pub const VmbPixelFormatYCbCr601_411_8_CbYYCrYY: Type = 34340927;
595 #[doc = "!< YCbCr709 4:4:4 8-bit CbYCr (PFNC: YCbCr709_8_CbYCr)"]
596 pub const VmbPixelFormatYCbCr709_8_CbYCr: Type = 35127360;
597 #[doc = "!< YCbCr709 4:2:2 8-bit YCbYCr (PFNC: YCbCr709_422_8)"]
598 pub const VmbPixelFormatYCbCr709_422_8: Type = 34603073;
599 #[doc = "!< YCbCr709 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr709_411_8_CbYYCrYY)"]
600 pub const VmbPixelFormatYCbCr709_411_8_CbYYCrYY: Type = 34340930;
601 #[doc = "!< YCbCr 4:2:2 with 8 bits (PFNC: YCbCr422_8_CbYCrY) - identical to VmbPixelFormatYuv422"]
602 pub const VmbPixelFormatYCbCr422_8_CbYCrY: Type = 34603075;
603 #[doc = "!< YCbCr601 4:2:2 8-bit CbYCrY (PFNC: YCbCr601_422_8_CbYCrY)"]
604 pub const VmbPixelFormatYCbCr601_422_8_CbYCrY: Type = 34603076;
605 #[doc = "!< YCbCr709 4:2:2 8-bit CbYCrY (PFNC: YCbCr709_422_8_CbYCrY)"]
606 pub const VmbPixelFormatYCbCr709_422_8_CbYCrY: Type = 34603077;
607 #[doc = "!< YCbCr 4:1:1 8-bit YYCbYYCr (PFNC: YCbCr411_8)"]
608 pub const VmbPixelFormatYCbCr411_8: Type = 34340954;
609 #[doc = "!< YCbCr 4:4:4 8-bit YCbCr (PFNC: YCbCr8)"]
610 pub const VmbPixelFormatYCbCr8: Type = 35127387;
611 pub const VmbPixelFormatLast: Type = 35127388;
612}
613#[doc = " \\brief Type for the pixel format; for values see ::VmbPixelFormatType."]
614pub type VmbPixelFormat_t = VmbUint32_t;
615pub mod VmbTransportLayerType {
616 #[doc = " \\brief Camera or transport layer type (for instance U3V or GEV)."]
617 pub type Type = ::std::os::raw::c_uint;
618 #[doc = "!< Interface is not known to this version of the API"]
619 pub const VmbTransportLayerTypeUnknown: Type = 0;
620 #[doc = "!< GigE Vision"]
621 pub const VmbTransportLayerTypeGEV: Type = 1;
622 #[doc = "!< Camera Link"]
623 pub const VmbTransportLayerTypeCL: Type = 2;
624 #[doc = "!< IIDC 1394"]
625 pub const VmbTransportLayerTypeIIDC: Type = 3;
626 #[doc = "!< USB video class"]
627 pub const VmbTransportLayerTypeUVC: Type = 4;
628 #[doc = "!< CoaXPress"]
629 pub const VmbTransportLayerTypeCXP: Type = 5;
630 #[doc = "!< Camera Link HS"]
631 pub const VmbTransportLayerTypeCLHS: Type = 6;
632 #[doc = "!< USB3 Vision Standard"]
633 pub const VmbTransportLayerTypeU3V: Type = 7;
634 #[doc = "!< Generic Ethernet"]
635 pub const VmbTransportLayerTypeEthernet: Type = 8;
636 #[doc = "!< PCI / PCIe"]
637 pub const VmbTransportLayerTypePCI: Type = 9;
638 #[doc = "!< Non standard"]
639 pub const VmbTransportLayerTypeCustom: Type = 10;
640 #[doc = "!< Mixed (transport layer only)"]
641 pub const VmbTransportLayerTypeMixed: Type = 11;
642}
643#[doc = " \\brief Type for an Interface; for values see ::VmbTransportLayerType."]
644pub type VmbTransportLayerType_t = VmbUint32_t;
645#[doc = " \\brief Transport layer information.\n\n Holds read-only information about a transport layer."]
646#[repr(C)]
647#[derive(Debug, Copy, Clone, PartialEq)]
648pub struct VmbTransportLayerInfo {
649 #[doc = "!< Unique id of the transport layer"]
650 pub transportLayerIdString: *const ::std::os::raw::c_char,
651 #[doc = "!< Name of the transport layer"]
652 pub transportLayerName: *const ::std::os::raw::c_char,
653 #[doc = "!< Model name of the transport layer"]
654 pub transportLayerModelName: *const ::std::os::raw::c_char,
655 #[doc = "!< Vendor of the transport layer"]
656 pub transportLayerVendor: *const ::std::os::raw::c_char,
657 #[doc = "!< Version of the transport layer"]
658 pub transportLayerVersion: *const ::std::os::raw::c_char,
659 #[doc = "!< Full path of the transport layer"]
660 pub transportLayerPath: *const ::std::os::raw::c_char,
661 #[doc = "!< Handle of the transport layer for feature access"]
662 pub transportLayerHandle: VmbHandle_t,
663 #[doc = "!< The type of the transport layer"]
664 pub transportLayerType: VmbTransportLayerType_t,
665}
666#[test]
667fn bindgen_test_layout_VmbTransportLayerInfo() {
668 const UNINIT: ::std::mem::MaybeUninit<VmbTransportLayerInfo> =
669 ::std::mem::MaybeUninit::uninit();
670 let ptr = UNINIT.as_ptr();
671 assert_eq!(
672 ::std::mem::size_of::<VmbTransportLayerInfo>(),
673 64usize,
674 concat!("Size of: ", stringify!(VmbTransportLayerInfo))
675 );
676 assert_eq!(
677 ::std::mem::align_of::<VmbTransportLayerInfo>(),
678 8usize,
679 concat!("Alignment of ", stringify!(VmbTransportLayerInfo))
680 );
681 assert_eq!(
682 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerIdString) as usize - ptr as usize },
683 0usize,
684 concat!(
685 "Offset of field: ",
686 stringify!(VmbTransportLayerInfo),
687 "::",
688 stringify!(transportLayerIdString)
689 )
690 );
691 assert_eq!(
692 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerName) as usize - ptr as usize },
693 8usize,
694 concat!(
695 "Offset of field: ",
696 stringify!(VmbTransportLayerInfo),
697 "::",
698 stringify!(transportLayerName)
699 )
700 );
701 assert_eq!(
702 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerModelName) as usize - ptr as usize },
703 16usize,
704 concat!(
705 "Offset of field: ",
706 stringify!(VmbTransportLayerInfo),
707 "::",
708 stringify!(transportLayerModelName)
709 )
710 );
711 assert_eq!(
712 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerVendor) as usize - ptr as usize },
713 24usize,
714 concat!(
715 "Offset of field: ",
716 stringify!(VmbTransportLayerInfo),
717 "::",
718 stringify!(transportLayerVendor)
719 )
720 );
721 assert_eq!(
722 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerVersion) as usize - ptr as usize },
723 32usize,
724 concat!(
725 "Offset of field: ",
726 stringify!(VmbTransportLayerInfo),
727 "::",
728 stringify!(transportLayerVersion)
729 )
730 );
731 assert_eq!(
732 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerPath) as usize - ptr as usize },
733 40usize,
734 concat!(
735 "Offset of field: ",
736 stringify!(VmbTransportLayerInfo),
737 "::",
738 stringify!(transportLayerPath)
739 )
740 );
741 assert_eq!(
742 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerHandle) as usize - ptr as usize },
743 48usize,
744 concat!(
745 "Offset of field: ",
746 stringify!(VmbTransportLayerInfo),
747 "::",
748 stringify!(transportLayerHandle)
749 )
750 );
751 assert_eq!(
752 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerType) as usize - ptr as usize },
753 56usize,
754 concat!(
755 "Offset of field: ",
756 stringify!(VmbTransportLayerInfo),
757 "::",
758 stringify!(transportLayerType)
759 )
760 );
761}
762#[doc = " \\brief Transport layer information.\n\n Holds read-only information about a transport layer."]
763pub type VmbTransportLayerInfo_t = VmbTransportLayerInfo;
764#[doc = " \\brief Interface information.\n\n Holds read-only information about an interface."]
765#[repr(C)]
766#[derive(Debug, Copy, Clone, PartialEq)]
767pub struct VmbInterfaceInfo {
768 #[doc = "!< Identifier of the interface"]
769 pub interfaceIdString: *const ::std::os::raw::c_char,
770 #[doc = "!< Interface name, given by the transport layer"]
771 pub interfaceName: *const ::std::os::raw::c_char,
772 #[doc = "!< Handle of the interface for feature access"]
773 pub interfaceHandle: VmbHandle_t,
774 #[doc = "!< Handle of the related transport layer for feature access"]
775 pub transportLayerHandle: VmbHandle_t,
776 #[doc = "!< The technology of the interface"]
777 pub interfaceType: VmbTransportLayerType_t,
778}
779#[test]
780fn bindgen_test_layout_VmbInterfaceInfo() {
781 const UNINIT: ::std::mem::MaybeUninit<VmbInterfaceInfo> = ::std::mem::MaybeUninit::uninit();
782 let ptr = UNINIT.as_ptr();
783 assert_eq!(
784 ::std::mem::size_of::<VmbInterfaceInfo>(),
785 40usize,
786 concat!("Size of: ", stringify!(VmbInterfaceInfo))
787 );
788 assert_eq!(
789 ::std::mem::align_of::<VmbInterfaceInfo>(),
790 8usize,
791 concat!("Alignment of ", stringify!(VmbInterfaceInfo))
792 );
793 assert_eq!(
794 unsafe { ::std::ptr::addr_of!((*ptr).interfaceIdString) as usize - ptr as usize },
795 0usize,
796 concat!(
797 "Offset of field: ",
798 stringify!(VmbInterfaceInfo),
799 "::",
800 stringify!(interfaceIdString)
801 )
802 );
803 assert_eq!(
804 unsafe { ::std::ptr::addr_of!((*ptr).interfaceName) as usize - ptr as usize },
805 8usize,
806 concat!(
807 "Offset of field: ",
808 stringify!(VmbInterfaceInfo),
809 "::",
810 stringify!(interfaceName)
811 )
812 );
813 assert_eq!(
814 unsafe { ::std::ptr::addr_of!((*ptr).interfaceHandle) as usize - ptr as usize },
815 16usize,
816 concat!(
817 "Offset of field: ",
818 stringify!(VmbInterfaceInfo),
819 "::",
820 stringify!(interfaceHandle)
821 )
822 );
823 assert_eq!(
824 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerHandle) as usize - ptr as usize },
825 24usize,
826 concat!(
827 "Offset of field: ",
828 stringify!(VmbInterfaceInfo),
829 "::",
830 stringify!(transportLayerHandle)
831 )
832 );
833 assert_eq!(
834 unsafe { ::std::ptr::addr_of!((*ptr).interfaceType) as usize - ptr as usize },
835 32usize,
836 concat!(
837 "Offset of field: ",
838 stringify!(VmbInterfaceInfo),
839 "::",
840 stringify!(interfaceType)
841 )
842 );
843}
844#[doc = " \\brief Interface information.\n\n Holds read-only information about an interface."]
845pub type VmbInterfaceInfo_t = VmbInterfaceInfo;
846pub mod VmbAccessModeType {
847 #[doc = " \\brief Access mode for cameras.\n\n Used in ::VmbCameraInfo_t as flags, so multiple modes can be\n announced, while in ::VmbCameraOpen(), no combination must be used."]
848 pub type Type = ::std::os::raw::c_uint;
849 #[doc = "!< No access"]
850 pub const VmbAccessModeNone: Type = 0;
851 #[doc = "!< Read and write access"]
852 pub const VmbAccessModeFull: Type = 1;
853 #[doc = "!< Read-only access"]
854 pub const VmbAccessModeRead: Type = 2;
855 #[doc = "!< Access type unknown"]
856 pub const VmbAccessModeUnknown: Type = 4;
857 #[doc = "!< Read and write access without permitting access for other consumers"]
858 pub const VmbAccessModeExclusive: Type = 8;
859}
860#[doc = " \\brief Type for an AccessMode; for values see ::VmbAccessModeType."]
861pub type VmbAccessMode_t = VmbUint32_t;
862#[doc = " \\brief Camera information.\n\n Holds read-only information about a camera."]
863#[repr(C)]
864#[derive(Debug, Copy, Clone, PartialEq)]
865pub struct VmbCameraInfo {
866 #[doc = "!< Identifier of the camera"]
867 pub cameraIdString: *const ::std::os::raw::c_char,
868 #[doc = "!< globally unique identifier for the camera"]
869 pub cameraIdExtended: *const ::std::os::raw::c_char,
870 #[doc = "!< The display name of the camera"]
871 pub cameraName: *const ::std::os::raw::c_char,
872 #[doc = "!< Model name"]
873 pub modelName: *const ::std::os::raw::c_char,
874 #[doc = "!< Serial number"]
875 pub serialString: *const ::std::os::raw::c_char,
876 #[doc = "!< Handle of the related transport layer for feature access"]
877 pub transportLayerHandle: VmbHandle_t,
878 #[doc = "!< Handle of the related interface for feature access"]
879 pub interfaceHandle: VmbHandle_t,
880 #[doc = "!< Handle of the related GenTL local device. NULL if the camera is not opened"]
881 pub localDeviceHandle: VmbHandle_t,
882 #[doc = "!< Handles of the streams provided by the camera. NULL if the camera is not opened"]
883 pub streamHandles: *const VmbHandle_t,
884 #[doc = "!< Number of stream handles in the streamHandles array"]
885 pub streamCount: VmbUint32_t,
886 #[doc = "!< Permitted access modes, see ::VmbAccessModeType"]
887 pub permittedAccess: VmbAccessMode_t,
888}
889#[test]
890fn bindgen_test_layout_VmbCameraInfo() {
891 const UNINIT: ::std::mem::MaybeUninit<VmbCameraInfo> = ::std::mem::MaybeUninit::uninit();
892 let ptr = UNINIT.as_ptr();
893 assert_eq!(
894 ::std::mem::size_of::<VmbCameraInfo>(),
895 80usize,
896 concat!("Size of: ", stringify!(VmbCameraInfo))
897 );
898 assert_eq!(
899 ::std::mem::align_of::<VmbCameraInfo>(),
900 8usize,
901 concat!("Alignment of ", stringify!(VmbCameraInfo))
902 );
903 assert_eq!(
904 unsafe { ::std::ptr::addr_of!((*ptr).cameraIdString) as usize - ptr as usize },
905 0usize,
906 concat!(
907 "Offset of field: ",
908 stringify!(VmbCameraInfo),
909 "::",
910 stringify!(cameraIdString)
911 )
912 );
913 assert_eq!(
914 unsafe { ::std::ptr::addr_of!((*ptr).cameraIdExtended) as usize - ptr as usize },
915 8usize,
916 concat!(
917 "Offset of field: ",
918 stringify!(VmbCameraInfo),
919 "::",
920 stringify!(cameraIdExtended)
921 )
922 );
923 assert_eq!(
924 unsafe { ::std::ptr::addr_of!((*ptr).cameraName) as usize - ptr as usize },
925 16usize,
926 concat!(
927 "Offset of field: ",
928 stringify!(VmbCameraInfo),
929 "::",
930 stringify!(cameraName)
931 )
932 );
933 assert_eq!(
934 unsafe { ::std::ptr::addr_of!((*ptr).modelName) as usize - ptr as usize },
935 24usize,
936 concat!(
937 "Offset of field: ",
938 stringify!(VmbCameraInfo),
939 "::",
940 stringify!(modelName)
941 )
942 );
943 assert_eq!(
944 unsafe { ::std::ptr::addr_of!((*ptr).serialString) as usize - ptr as usize },
945 32usize,
946 concat!(
947 "Offset of field: ",
948 stringify!(VmbCameraInfo),
949 "::",
950 stringify!(serialString)
951 )
952 );
953 assert_eq!(
954 unsafe { ::std::ptr::addr_of!((*ptr).transportLayerHandle) as usize - ptr as usize },
955 40usize,
956 concat!(
957 "Offset of field: ",
958 stringify!(VmbCameraInfo),
959 "::",
960 stringify!(transportLayerHandle)
961 )
962 );
963 assert_eq!(
964 unsafe { ::std::ptr::addr_of!((*ptr).interfaceHandle) as usize - ptr as usize },
965 48usize,
966 concat!(
967 "Offset of field: ",
968 stringify!(VmbCameraInfo),
969 "::",
970 stringify!(interfaceHandle)
971 )
972 );
973 assert_eq!(
974 unsafe { ::std::ptr::addr_of!((*ptr).localDeviceHandle) as usize - ptr as usize },
975 56usize,
976 concat!(
977 "Offset of field: ",
978 stringify!(VmbCameraInfo),
979 "::",
980 stringify!(localDeviceHandle)
981 )
982 );
983 assert_eq!(
984 unsafe { ::std::ptr::addr_of!((*ptr).streamHandles) as usize - ptr as usize },
985 64usize,
986 concat!(
987 "Offset of field: ",
988 stringify!(VmbCameraInfo),
989 "::",
990 stringify!(streamHandles)
991 )
992 );
993 assert_eq!(
994 unsafe { ::std::ptr::addr_of!((*ptr).streamCount) as usize - ptr as usize },
995 72usize,
996 concat!(
997 "Offset of field: ",
998 stringify!(VmbCameraInfo),
999 "::",
1000 stringify!(streamCount)
1001 )
1002 );
1003 assert_eq!(
1004 unsafe { ::std::ptr::addr_of!((*ptr).permittedAccess) as usize - ptr as usize },
1005 76usize,
1006 concat!(
1007 "Offset of field: ",
1008 stringify!(VmbCameraInfo),
1009 "::",
1010 stringify!(permittedAccess)
1011 )
1012 );
1013}
1014#[doc = " \\brief Camera information.\n\n Holds read-only information about a camera."]
1015pub type VmbCameraInfo_t = VmbCameraInfo;
1016pub mod VmbFeatureDataType {
1017 #[doc = " \\brief Supported feature data types."]
1018 pub type Type = ::std::os::raw::c_uint;
1019 #[doc = "!< Unknown feature type"]
1020 pub const VmbFeatureDataUnknown: Type = 0;
1021 #[doc = "!< 64-bit integer feature"]
1022 pub const VmbFeatureDataInt: Type = 1;
1023 #[doc = "!< 64-bit floating point feature"]
1024 pub const VmbFeatureDataFloat: Type = 2;
1025 #[doc = "!< Enumeration feature"]
1026 pub const VmbFeatureDataEnum: Type = 3;
1027 #[doc = "!< String feature"]
1028 pub const VmbFeatureDataString: Type = 4;
1029 #[doc = "!< Boolean feature"]
1030 pub const VmbFeatureDataBool: Type = 5;
1031 #[doc = "!< Command feature"]
1032 pub const VmbFeatureDataCommand: Type = 6;
1033 #[doc = "!< Raw (direct register access) feature"]
1034 pub const VmbFeatureDataRaw: Type = 7;
1035 #[doc = "!< Feature with no data"]
1036 pub const VmbFeatureDataNone: Type = 8;
1037}
1038#[doc = " \\brief Data type for a Feature; for values see ::VmbFeatureDataType."]
1039pub type VmbFeatureData_t = VmbUint32_t;
1040pub mod VmbFeatureVisibilityType {
1041 #[doc = " \\brief Feature visibility."]
1042 pub type Type = ::std::os::raw::c_uint;
1043 #[doc = "!< Feature visibility is not known"]
1044 pub const VmbFeatureVisibilityUnknown: Type = 0;
1045 #[doc = "!< Feature is visible in feature list (beginner level)"]
1046 pub const VmbFeatureVisibilityBeginner: Type = 1;
1047 #[doc = "!< Feature is visible in feature list (expert level)"]
1048 pub const VmbFeatureVisibilityExpert: Type = 2;
1049 #[doc = "!< Feature is visible in feature list (guru level)"]
1050 pub const VmbFeatureVisibilityGuru: Type = 3;
1051 #[doc = "!< Feature is visible in the feature list, but should be hidden in GUI applications"]
1052 pub const VmbFeatureVisibilityInvisible: Type = 4;
1053}
1054#[doc = " \\brief Type for Feature visibility; for values see ::VmbFeatureVisibilityType."]
1055pub type VmbFeatureVisibility_t = VmbUint32_t;
1056impl VmbFeatureFlagsType {
1057 #[doc = "!< No additional information is provided"]
1058 pub const VmbFeatureFlagsNone: VmbFeatureFlagsType = VmbFeatureFlagsType(0);
1059}
1060impl VmbFeatureFlagsType {
1061 #[doc = "!< Static info about read access. Current status depends on access mode, check with ::VmbFeatureAccessQuery()"]
1062 pub const VmbFeatureFlagsRead: VmbFeatureFlagsType = VmbFeatureFlagsType(1);
1063}
1064impl VmbFeatureFlagsType {
1065 #[doc = "!< Static info about write access. Current status depends on access mode, check with ::VmbFeatureAccessQuery()"]
1066 pub const VmbFeatureFlagsWrite: VmbFeatureFlagsType = VmbFeatureFlagsType(2);
1067}
1068impl VmbFeatureFlagsType {
1069 #[doc = "!< Value may change at any time"]
1070 pub const VmbFeatureFlagsVolatile: VmbFeatureFlagsType = VmbFeatureFlagsType(8);
1071}
1072impl VmbFeatureFlagsType {
1073 #[doc = "!< Value may change after a write"]
1074 pub const VmbFeatureFlagsModifyWrite: VmbFeatureFlagsType = VmbFeatureFlagsType(16);
1075}
1076impl ::std::ops::BitOr<VmbFeatureFlagsType> for VmbFeatureFlagsType {
1077 type Output = Self;
1078 #[inline]
1079 fn bitor(self, other: Self) -> Self {
1080 VmbFeatureFlagsType(self.0 | other.0)
1081 }
1082}
1083impl ::std::ops::BitOrAssign for VmbFeatureFlagsType {
1084 #[inline]
1085 fn bitor_assign(&mut self, rhs: VmbFeatureFlagsType) {
1086 self.0 |= rhs.0;
1087 }
1088}
1089impl ::std::ops::BitAnd<VmbFeatureFlagsType> for VmbFeatureFlagsType {
1090 type Output = Self;
1091 #[inline]
1092 fn bitand(self, other: Self) -> Self {
1093 VmbFeatureFlagsType(self.0 & other.0)
1094 }
1095}
1096impl ::std::ops::BitAndAssign for VmbFeatureFlagsType {
1097 #[inline]
1098 fn bitand_assign(&mut self, rhs: VmbFeatureFlagsType) {
1099 self.0 &= rhs.0;
1100 }
1101}
1102#[repr(transparent)]
1103#[doc = " \\brief Feature flags."]
1104#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1105pub struct VmbFeatureFlagsType(pub ::std::os::raw::c_uint);
1106#[doc = " \\brief Type for Feature flags; for values see ::VmbFeatureFlagsType."]
1107pub type VmbFeatureFlags_t = VmbUint32_t;
1108#[doc = " \\brief Feature information.\n\n Holds read-only information about a feature."]
1109#[repr(C)]
1110#[derive(Debug, Copy, Clone, PartialEq)]
1111pub struct VmbFeatureInfo {
1112 #[doc = "!< Name used in the API"]
1113 pub name: *const ::std::os::raw::c_char,
1114 #[doc = "!< Category this feature can be found in"]
1115 pub category: *const ::std::os::raw::c_char,
1116 #[doc = "!< Feature name to be used in GUIs"]
1117 pub displayName: *const ::std::os::raw::c_char,
1118 #[doc = "!< Short description, e.g. for a tooltip"]
1119 pub tooltip: *const ::std::os::raw::c_char,
1120 #[doc = "!< Longer description"]
1121 pub description: *const ::std::os::raw::c_char,
1122 #[doc = "!< Namespace this feature resides in"]
1123 pub sfncNamespace: *const ::std::os::raw::c_char,
1124 #[doc = "!< Measuring unit as given in the XML file"]
1125 pub unit: *const ::std::os::raw::c_char,
1126 #[doc = "!< Representation of a numeric feature"]
1127 pub representation: *const ::std::os::raw::c_char,
1128 #[doc = "!< Data type of this feature"]
1129 pub featureDataType: VmbFeatureData_t,
1130 #[doc = "!< Access flags for this feature"]
1131 pub featureFlags: VmbFeatureFlags_t,
1132 #[doc = "!< Predefined polling time for volatile features"]
1133 pub pollingTime: VmbUint32_t,
1134 #[doc = "!< GUI visibility"]
1135 pub visibility: VmbFeatureVisibility_t,
1136 #[doc = "!< Indicates if a feature can be stored to / loaded from a file"]
1137 pub isStreamable: VmbBool_t,
1138 #[doc = "!< Indicates if the feature selects other features"]
1139 pub hasSelectedFeatures: VmbBool_t,
1140}
1141#[test]
1142fn bindgen_test_layout_VmbFeatureInfo() {
1143 const UNINIT: ::std::mem::MaybeUninit<VmbFeatureInfo> = ::std::mem::MaybeUninit::uninit();
1144 let ptr = UNINIT.as_ptr();
1145 assert_eq!(
1146 ::std::mem::size_of::<VmbFeatureInfo>(),
1147 88usize,
1148 concat!("Size of: ", stringify!(VmbFeatureInfo))
1149 );
1150 assert_eq!(
1151 ::std::mem::align_of::<VmbFeatureInfo>(),
1152 8usize,
1153 concat!("Alignment of ", stringify!(VmbFeatureInfo))
1154 );
1155 assert_eq!(
1156 unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
1157 0usize,
1158 concat!(
1159 "Offset of field: ",
1160 stringify!(VmbFeatureInfo),
1161 "::",
1162 stringify!(name)
1163 )
1164 );
1165 assert_eq!(
1166 unsafe { ::std::ptr::addr_of!((*ptr).category) as usize - ptr as usize },
1167 8usize,
1168 concat!(
1169 "Offset of field: ",
1170 stringify!(VmbFeatureInfo),
1171 "::",
1172 stringify!(category)
1173 )
1174 );
1175 assert_eq!(
1176 unsafe { ::std::ptr::addr_of!((*ptr).displayName) as usize - ptr as usize },
1177 16usize,
1178 concat!(
1179 "Offset of field: ",
1180 stringify!(VmbFeatureInfo),
1181 "::",
1182 stringify!(displayName)
1183 )
1184 );
1185 assert_eq!(
1186 unsafe { ::std::ptr::addr_of!((*ptr).tooltip) as usize - ptr as usize },
1187 24usize,
1188 concat!(
1189 "Offset of field: ",
1190 stringify!(VmbFeatureInfo),
1191 "::",
1192 stringify!(tooltip)
1193 )
1194 );
1195 assert_eq!(
1196 unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize },
1197 32usize,
1198 concat!(
1199 "Offset of field: ",
1200 stringify!(VmbFeatureInfo),
1201 "::",
1202 stringify!(description)
1203 )
1204 );
1205 assert_eq!(
1206 unsafe { ::std::ptr::addr_of!((*ptr).sfncNamespace) as usize - ptr as usize },
1207 40usize,
1208 concat!(
1209 "Offset of field: ",
1210 stringify!(VmbFeatureInfo),
1211 "::",
1212 stringify!(sfncNamespace)
1213 )
1214 );
1215 assert_eq!(
1216 unsafe { ::std::ptr::addr_of!((*ptr).unit) as usize - ptr as usize },
1217 48usize,
1218 concat!(
1219 "Offset of field: ",
1220 stringify!(VmbFeatureInfo),
1221 "::",
1222 stringify!(unit)
1223 )
1224 );
1225 assert_eq!(
1226 unsafe { ::std::ptr::addr_of!((*ptr).representation) as usize - ptr as usize },
1227 56usize,
1228 concat!(
1229 "Offset of field: ",
1230 stringify!(VmbFeatureInfo),
1231 "::",
1232 stringify!(representation)
1233 )
1234 );
1235 assert_eq!(
1236 unsafe { ::std::ptr::addr_of!((*ptr).featureDataType) as usize - ptr as usize },
1237 64usize,
1238 concat!(
1239 "Offset of field: ",
1240 stringify!(VmbFeatureInfo),
1241 "::",
1242 stringify!(featureDataType)
1243 )
1244 );
1245 assert_eq!(
1246 unsafe { ::std::ptr::addr_of!((*ptr).featureFlags) as usize - ptr as usize },
1247 68usize,
1248 concat!(
1249 "Offset of field: ",
1250 stringify!(VmbFeatureInfo),
1251 "::",
1252 stringify!(featureFlags)
1253 )
1254 );
1255 assert_eq!(
1256 unsafe { ::std::ptr::addr_of!((*ptr).pollingTime) as usize - ptr as usize },
1257 72usize,
1258 concat!(
1259 "Offset of field: ",
1260 stringify!(VmbFeatureInfo),
1261 "::",
1262 stringify!(pollingTime)
1263 )
1264 );
1265 assert_eq!(
1266 unsafe { ::std::ptr::addr_of!((*ptr).visibility) as usize - ptr as usize },
1267 76usize,
1268 concat!(
1269 "Offset of field: ",
1270 stringify!(VmbFeatureInfo),
1271 "::",
1272 stringify!(visibility)
1273 )
1274 );
1275 assert_eq!(
1276 unsafe { ::std::ptr::addr_of!((*ptr).isStreamable) as usize - ptr as usize },
1277 80usize,
1278 concat!(
1279 "Offset of field: ",
1280 stringify!(VmbFeatureInfo),
1281 "::",
1282 stringify!(isStreamable)
1283 )
1284 );
1285 assert_eq!(
1286 unsafe { ::std::ptr::addr_of!((*ptr).hasSelectedFeatures) as usize - ptr as usize },
1287 81usize,
1288 concat!(
1289 "Offset of field: ",
1290 stringify!(VmbFeatureInfo),
1291 "::",
1292 stringify!(hasSelectedFeatures)
1293 )
1294 );
1295}
1296#[doc = " \\brief Feature information.\n\n Holds read-only information about a feature."]
1297pub type VmbFeatureInfo_t = VmbFeatureInfo;
1298#[doc = " \\brief Info about possible entries of an enumeration feature."]
1299#[repr(C)]
1300#[derive(Debug, Copy, Clone, PartialEq)]
1301pub struct VmbFeatureEnumEntry {
1302 #[doc = "!< Name used in the API"]
1303 pub name: *const ::std::os::raw::c_char,
1304 #[doc = "!< Enumeration entry name to be used in GUIs"]
1305 pub displayName: *const ::std::os::raw::c_char,
1306 #[doc = "!< Short description, e.g. for a tooltip"]
1307 pub tooltip: *const ::std::os::raw::c_char,
1308 #[doc = "!< Longer description"]
1309 pub description: *const ::std::os::raw::c_char,
1310 #[doc = "!< Integer value of this enumeration entry"]
1311 pub intValue: VmbInt64_t,
1312 #[doc = "!< Namespace this feature resides in"]
1313 pub sfncNamespace: *const ::std::os::raw::c_char,
1314 #[doc = "!< GUI visibility"]
1315 pub visibility: VmbFeatureVisibility_t,
1316}
1317#[test]
1318fn bindgen_test_layout_VmbFeatureEnumEntry() {
1319 const UNINIT: ::std::mem::MaybeUninit<VmbFeatureEnumEntry> = ::std::mem::MaybeUninit::uninit();
1320 let ptr = UNINIT.as_ptr();
1321 assert_eq!(
1322 ::std::mem::size_of::<VmbFeatureEnumEntry>(),
1323 56usize,
1324 concat!("Size of: ", stringify!(VmbFeatureEnumEntry))
1325 );
1326 assert_eq!(
1327 ::std::mem::align_of::<VmbFeatureEnumEntry>(),
1328 8usize,
1329 concat!("Alignment of ", stringify!(VmbFeatureEnumEntry))
1330 );
1331 assert_eq!(
1332 unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
1333 0usize,
1334 concat!(
1335 "Offset of field: ",
1336 stringify!(VmbFeatureEnumEntry),
1337 "::",
1338 stringify!(name)
1339 )
1340 );
1341 assert_eq!(
1342 unsafe { ::std::ptr::addr_of!((*ptr).displayName) as usize - ptr as usize },
1343 8usize,
1344 concat!(
1345 "Offset of field: ",
1346 stringify!(VmbFeatureEnumEntry),
1347 "::",
1348 stringify!(displayName)
1349 )
1350 );
1351 assert_eq!(
1352 unsafe { ::std::ptr::addr_of!((*ptr).tooltip) as usize - ptr as usize },
1353 16usize,
1354 concat!(
1355 "Offset of field: ",
1356 stringify!(VmbFeatureEnumEntry),
1357 "::",
1358 stringify!(tooltip)
1359 )
1360 );
1361 assert_eq!(
1362 unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize },
1363 24usize,
1364 concat!(
1365 "Offset of field: ",
1366 stringify!(VmbFeatureEnumEntry),
1367 "::",
1368 stringify!(description)
1369 )
1370 );
1371 assert_eq!(
1372 unsafe { ::std::ptr::addr_of!((*ptr).intValue) as usize - ptr as usize },
1373 32usize,
1374 concat!(
1375 "Offset of field: ",
1376 stringify!(VmbFeatureEnumEntry),
1377 "::",
1378 stringify!(intValue)
1379 )
1380 );
1381 assert_eq!(
1382 unsafe { ::std::ptr::addr_of!((*ptr).sfncNamespace) as usize - ptr as usize },
1383 40usize,
1384 concat!(
1385 "Offset of field: ",
1386 stringify!(VmbFeatureEnumEntry),
1387 "::",
1388 stringify!(sfncNamespace)
1389 )
1390 );
1391 assert_eq!(
1392 unsafe { ::std::ptr::addr_of!((*ptr).visibility) as usize - ptr as usize },
1393 48usize,
1394 concat!(
1395 "Offset of field: ",
1396 stringify!(VmbFeatureEnumEntry),
1397 "::",
1398 stringify!(visibility)
1399 )
1400 );
1401}
1402#[doc = " \\brief Info about possible entries of an enumeration feature."]
1403pub type VmbFeatureEnumEntry_t = VmbFeatureEnumEntry;
1404pub mod VmbFrameStatusType {
1405 #[doc = " \\brief Status of a frame transfer."]
1406 pub type Type = ::std::os::raw::c_int;
1407 #[doc = "!< Frame has been completed without errors"]
1408 pub const VmbFrameStatusComplete: Type = 0;
1409 #[doc = "!< Frame could not be filled to the end"]
1410 pub const VmbFrameStatusIncomplete: Type = -1;
1411 #[doc = "!< Frame buffer was too small"]
1412 pub const VmbFrameStatusTooSmall: Type = -2;
1413 #[doc = "!< Frame buffer was invalid"]
1414 pub const VmbFrameStatusInvalid: Type = -3;
1415}
1416#[doc = " \\brief Type for the frame status; for values see ::VmbFrameStatusType."]
1417pub type VmbFrameStatus_t = VmbInt32_t;
1418impl VmbFrameFlagsType {
1419 #[doc = "!< No additional information is provided"]
1420 pub const VmbFrameFlagsNone: VmbFrameFlagsType = VmbFrameFlagsType(0);
1421}
1422impl VmbFrameFlagsType {
1423 #[doc = "!< VmbFrame_t::width and VmbFrame_t::height are provided"]
1424 pub const VmbFrameFlagsDimension: VmbFrameFlagsType = VmbFrameFlagsType(1);
1425}
1426impl VmbFrameFlagsType {
1427 #[doc = "!< VmbFrame_t::offsetX and VmbFrame_t::offsetY are provided (ROI)"]
1428 pub const VmbFrameFlagsOffset: VmbFrameFlagsType = VmbFrameFlagsType(2);
1429}
1430impl VmbFrameFlagsType {
1431 #[doc = "!< VmbFrame_t::frameID is provided"]
1432 pub const VmbFrameFlagsFrameID: VmbFrameFlagsType = VmbFrameFlagsType(4);
1433}
1434impl VmbFrameFlagsType {
1435 #[doc = "!< VmbFrame_t::timestamp is provided"]
1436 pub const VmbFrameFlagsTimestamp: VmbFrameFlagsType = VmbFrameFlagsType(8);
1437}
1438impl VmbFrameFlagsType {
1439 #[doc = "!< VmbFrame_t::imageData is provided"]
1440 pub const VmbFrameFlagsImageData: VmbFrameFlagsType = VmbFrameFlagsType(16);
1441}
1442impl VmbFrameFlagsType {
1443 #[doc = "!< VmbFrame_t::payloadType is provided"]
1444 pub const VmbFrameFlagsPayloadType: VmbFrameFlagsType = VmbFrameFlagsType(32);
1445}
1446impl VmbFrameFlagsType {
1447 #[doc = "!< VmbFrame_t::chunkDataPresent is set based on info provided by the transport layer"]
1448 pub const VmbFrameFlagsChunkDataPresent: VmbFrameFlagsType = VmbFrameFlagsType(64);
1449}
1450impl ::std::ops::BitOr<VmbFrameFlagsType> for VmbFrameFlagsType {
1451 type Output = Self;
1452 #[inline]
1453 fn bitor(self, other: Self) -> Self {
1454 VmbFrameFlagsType(self.0 | other.0)
1455 }
1456}
1457impl ::std::ops::BitOrAssign for VmbFrameFlagsType {
1458 #[inline]
1459 fn bitor_assign(&mut self, rhs: VmbFrameFlagsType) {
1460 self.0 |= rhs.0;
1461 }
1462}
1463impl ::std::ops::BitAnd<VmbFrameFlagsType> for VmbFrameFlagsType {
1464 type Output = Self;
1465 #[inline]
1466 fn bitand(self, other: Self) -> Self {
1467 VmbFrameFlagsType(self.0 & other.0)
1468 }
1469}
1470impl ::std::ops::BitAndAssign for VmbFrameFlagsType {
1471 #[inline]
1472 fn bitand_assign(&mut self, rhs: VmbFrameFlagsType) {
1473 self.0 &= rhs.0;
1474 }
1475}
1476#[repr(transparent)]
1477#[doc = " \\brief Frame flags."]
1478#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1479pub struct VmbFrameFlagsType(pub ::std::os::raw::c_uint);
1480#[doc = " \\brief Type for Frame flags; for values see ::VmbFrameFlagsType."]
1481pub type VmbFrameFlags_t = VmbUint32_t;
1482pub mod VmbPayloadType {
1483 #[doc = " \\brief Frame payload type."]
1484 pub type Type = ::std::os::raw::c_uint;
1485 #[doc = "!< Unknown payload type"]
1486 pub const VmbPayloadTypeUnknown: Type = 0;
1487 #[doc = "!< image data"]
1488 pub const VmbPayloadTypeImage: Type = 1;
1489 #[doc = "!< raw data"]
1490 pub const VmbPayloadTypeRaw: Type = 2;
1491 #[doc = "!< file data"]
1492 pub const VmbPayloadTypeFile: Type = 3;
1493 #[doc = "!< JPEG data as described in the GigEVision 2.0 specification"]
1494 pub const VmbPayloadTypeJPEG: Type = 5;
1495 #[doc = "!< JPEG 2000 data as described in the GigEVision 2.0 specification"]
1496 pub const VmbPayloadTypJPEG2000: Type = 6;
1497 #[doc = "!< H.264 data as described in the GigEVision 2.0 specification"]
1498 pub const VmbPayloadTypeH264: Type = 7;
1499 #[doc = "!< Chunk data exclusively"]
1500 pub const VmbPayloadTypeChunkOnly: Type = 8;
1501 #[doc = "!< Device specific data format"]
1502 pub const VmbPayloadTypeDeviceSpecific: Type = 9;
1503 #[doc = "!< GenDC data"]
1504 pub const VmbPayloadTypeGenDC: Type = 11;
1505}
1506#[doc = " \\brief Type representing the payload type of a frame. For values see ::VmbPayloadType."]
1507pub type VmbPayloadType_t = VmbUint32_t;
1508#[doc = " \\brief Type used to represent a dimension value, e.g. the image height."]
1509pub type VmbImageDimension_t = VmbUint32_t;
1510#[doc = " \\brief Frame delivered by the camera."]
1511#[repr(C)]
1512#[derive(Debug, Copy, Clone, PartialEq)]
1513pub struct VmbFrame {
1514 #[doc = "!< Comprises image and potentially chunk data"]
1515 pub buffer: *mut ::std::os::raw::c_void,
1516 #[doc = "!< The size of the data buffer"]
1517 pub bufferSize: VmbUint32_t,
1518 #[doc = "!< 4 void pointers that can be employed by the user (e.g. for storing handles)"]
1519 pub context: [*mut ::std::os::raw::c_void; 4usize],
1520 #[doc = "!< The resulting status of the receive operation"]
1521 pub receiveStatus: VmbFrameStatus_t,
1522 #[doc = "!< Unique ID of this frame in this stream"]
1523 pub frameID: VmbUint64_t,
1524 #[doc = "!< The timestamp set by the camera"]
1525 pub timestamp: VmbUint64_t,
1526 #[doc = "!< The start of the image data, if present, or null"]
1527 pub imageData: *mut VmbUint8_t,
1528 #[doc = "!< Flags indicating which additional frame information is available"]
1529 pub receiveFlags: VmbFrameFlags_t,
1530 #[doc = "!< Pixel format of the image"]
1531 pub pixelFormat: VmbPixelFormat_t,
1532 #[doc = "!< Width of an image"]
1533 pub width: VmbImageDimension_t,
1534 #[doc = "!< Height of an image"]
1535 pub height: VmbImageDimension_t,
1536 #[doc = "!< Horizontal offset of an image"]
1537 pub offsetX: VmbImageDimension_t,
1538 #[doc = "!< Vertical offset of an image"]
1539 pub offsetY: VmbImageDimension_t,
1540 #[doc = "!< The type of payload"]
1541 pub payloadType: VmbPayloadType_t,
1542 #[doc = "!< True if the transport layer reported chunk data to be present in the buffer"]
1543 pub chunkDataPresent: VmbBool_t,
1544}
1545#[test]
1546fn bindgen_test_layout_VmbFrame() {
1547 const UNINIT: ::std::mem::MaybeUninit<VmbFrame> = ::std::mem::MaybeUninit::uninit();
1548 let ptr = UNINIT.as_ptr();
1549 assert_eq!(
1550 ::std::mem::size_of::<VmbFrame>(),
1551 112usize,
1552 concat!("Size of: ", stringify!(VmbFrame))
1553 );
1554 assert_eq!(
1555 ::std::mem::align_of::<VmbFrame>(),
1556 8usize,
1557 concat!("Alignment of ", stringify!(VmbFrame))
1558 );
1559 assert_eq!(
1560 unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize },
1561 0usize,
1562 concat!(
1563 "Offset of field: ",
1564 stringify!(VmbFrame),
1565 "::",
1566 stringify!(buffer)
1567 )
1568 );
1569 assert_eq!(
1570 unsafe { ::std::ptr::addr_of!((*ptr).bufferSize) as usize - ptr as usize },
1571 8usize,
1572 concat!(
1573 "Offset of field: ",
1574 stringify!(VmbFrame),
1575 "::",
1576 stringify!(bufferSize)
1577 )
1578 );
1579 assert_eq!(
1580 unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize },
1581 16usize,
1582 concat!(
1583 "Offset of field: ",
1584 stringify!(VmbFrame),
1585 "::",
1586 stringify!(context)
1587 )
1588 );
1589 assert_eq!(
1590 unsafe { ::std::ptr::addr_of!((*ptr).receiveStatus) as usize - ptr as usize },
1591 48usize,
1592 concat!(
1593 "Offset of field: ",
1594 stringify!(VmbFrame),
1595 "::",
1596 stringify!(receiveStatus)
1597 )
1598 );
1599 assert_eq!(
1600 unsafe { ::std::ptr::addr_of!((*ptr).frameID) as usize - ptr as usize },
1601 56usize,
1602 concat!(
1603 "Offset of field: ",
1604 stringify!(VmbFrame),
1605 "::",
1606 stringify!(frameID)
1607 )
1608 );
1609 assert_eq!(
1610 unsafe { ::std::ptr::addr_of!((*ptr).timestamp) as usize - ptr as usize },
1611 64usize,
1612 concat!(
1613 "Offset of field: ",
1614 stringify!(VmbFrame),
1615 "::",
1616 stringify!(timestamp)
1617 )
1618 );
1619 assert_eq!(
1620 unsafe { ::std::ptr::addr_of!((*ptr).imageData) as usize - ptr as usize },
1621 72usize,
1622 concat!(
1623 "Offset of field: ",
1624 stringify!(VmbFrame),
1625 "::",
1626 stringify!(imageData)
1627 )
1628 );
1629 assert_eq!(
1630 unsafe { ::std::ptr::addr_of!((*ptr).receiveFlags) as usize - ptr as usize },
1631 80usize,
1632 concat!(
1633 "Offset of field: ",
1634 stringify!(VmbFrame),
1635 "::",
1636 stringify!(receiveFlags)
1637 )
1638 );
1639 assert_eq!(
1640 unsafe { ::std::ptr::addr_of!((*ptr).pixelFormat) as usize - ptr as usize },
1641 84usize,
1642 concat!(
1643 "Offset of field: ",
1644 stringify!(VmbFrame),
1645 "::",
1646 stringify!(pixelFormat)
1647 )
1648 );
1649 assert_eq!(
1650 unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
1651 88usize,
1652 concat!(
1653 "Offset of field: ",
1654 stringify!(VmbFrame),
1655 "::",
1656 stringify!(width)
1657 )
1658 );
1659 assert_eq!(
1660 unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize },
1661 92usize,
1662 concat!(
1663 "Offset of field: ",
1664 stringify!(VmbFrame),
1665 "::",
1666 stringify!(height)
1667 )
1668 );
1669 assert_eq!(
1670 unsafe { ::std::ptr::addr_of!((*ptr).offsetX) as usize - ptr as usize },
1671 96usize,
1672 concat!(
1673 "Offset of field: ",
1674 stringify!(VmbFrame),
1675 "::",
1676 stringify!(offsetX)
1677 )
1678 );
1679 assert_eq!(
1680 unsafe { ::std::ptr::addr_of!((*ptr).offsetY) as usize - ptr as usize },
1681 100usize,
1682 concat!(
1683 "Offset of field: ",
1684 stringify!(VmbFrame),
1685 "::",
1686 stringify!(offsetY)
1687 )
1688 );
1689 assert_eq!(
1690 unsafe { ::std::ptr::addr_of!((*ptr).payloadType) as usize - ptr as usize },
1691 104usize,
1692 concat!(
1693 "Offset of field: ",
1694 stringify!(VmbFrame),
1695 "::",
1696 stringify!(payloadType)
1697 )
1698 );
1699 assert_eq!(
1700 unsafe { ::std::ptr::addr_of!((*ptr).chunkDataPresent) as usize - ptr as usize },
1701 108usize,
1702 concat!(
1703 "Offset of field: ",
1704 stringify!(VmbFrame),
1705 "::",
1706 stringify!(chunkDataPresent)
1707 )
1708 );
1709}
1710#[doc = " \\brief Frame delivered by the camera."]
1711pub type VmbFrame_t = VmbFrame;
1712pub mod VmbFeaturePersistType {
1713 #[doc = " \\brief Type of features that are to be saved (persisted) to the XML file when using ::VmbSettingsSave"]
1714 pub type Type = ::std::os::raw::c_uint;
1715 #[doc = "!< Save all features to XML, including look-up tables (if possible)"]
1716 pub const VmbFeaturePersistAll: Type = 0;
1717 #[doc = "!< Save only features marked as streamable, excluding look-up tables"]
1718 pub const VmbFeaturePersistStreamable: Type = 1;
1719 #[doc = "!< Save all features except look-up tables (default)"]
1720 pub const VmbFeaturePersistNoLUT: Type = 2;
1721}
1722#[doc = " \\brief Type for feature persistence; for values see ::VmbFeaturePersistType."]
1723pub type VmbFeaturePersist_t = VmbUint32_t;
1724pub mod VmbModulePersistFlagsType {
1725 #[doc = " \\brief Parameters determining the operation mode of ::VmbSettingsSave and ::VmbSettingsLoad."]
1726 pub type Type = ::std::os::raw::c_uint;
1727 #[doc = "!< Persist/Load features for no module."]
1728 pub const VmbModulePersistFlagsNone: Type = 0;
1729 #[doc = "!< Persist/Load the transport layer features."]
1730 pub const VmbModulePersistFlagsTransportLayer: Type = 1;
1731 #[doc = "!< Persist/Load the interface features."]
1732 pub const VmbModulePersistFlagsInterface: Type = 2;
1733 #[doc = "!< Persist/Load the remote device features."]
1734 pub const VmbModulePersistFlagsRemoteDevice: Type = 4;
1735 #[doc = "!< Persist/Load the local device features."]
1736 pub const VmbModulePersistFlagsLocalDevice: Type = 8;
1737 #[doc = "!< Persist/Load the features of stream modules."]
1738 pub const VmbModulePersistFlagsStreams: Type = 16;
1739 #[doc = "!< Persist/Load features for all modules."]
1740 pub const VmbModulePersistFlagsAll: Type = 255;
1741}
1742#[doc = " \\brief Type for module persist flags; for values see VmbModulePersistFlagsType\n\n Use a combination of ::VmbModulePersistFlagsType constants"]
1743pub type VmbModulePersistFlags_t = VmbUint32_t;
1744pub mod VmbLogLevel {
1745 #[doc = " \\brief A level to use for logging"]
1746 pub type Type = ::std::os::raw::c_uint;
1747 #[doc = "!< Nothing is logged regardless of the severity of the issue"]
1748 pub const VmbLogLevelNone: Type = 0;
1749 #[doc = "!< Only errors are logged"]
1750 pub const VmbLogLevelError: Type = 1;
1751 #[doc = "!< Only error and debug messages are logged"]
1752 pub const VmbLogLevelDebug: Type = 2;
1753 #[doc = "!< Only error, debug and warn messages are logged"]
1754 pub const VmbLogLevelWarn: Type = 3;
1755 #[doc = "!< all messages are logged"]
1756 pub const VmbLogLevelTrace: Type = 4;
1757 #[doc = "!< all messages are logged"]
1758 pub const VmbLogLevelAll: Type = 4;
1759}
1760#[doc = " \\brief The type used for storing the log level\n\n Use a constant from ::VmbLogLevel"]
1761pub type VmbLogLevel_t = VmbUint32_t;
1762#[doc = " \\brief Parameters determining the operation mode of ::VmbSettingsSave and ::VmbSettingsLoad"]
1763#[repr(C)]
1764#[derive(Debug, Copy, Clone, PartialEq)]
1765pub struct VmbFeaturePersistSettings {
1766 #[doc = "!< Type of features that are to be saved"]
1767 pub persistType: VmbFeaturePersist_t,
1768 #[doc = "!< Flags specifying the modules to persist/load"]
1769 pub modulePersistFlags: VmbModulePersistFlags_t,
1770 #[doc = "!< Number of iterations when loading settings"]
1771 pub maxIterations: VmbUint32_t,
1772 #[doc = "!< Determines level of detail for load/save settings logging"]
1773 pub loggingLevel: VmbLogLevel_t,
1774}
1775#[test]
1776fn bindgen_test_layout_VmbFeaturePersistSettings() {
1777 const UNINIT: ::std::mem::MaybeUninit<VmbFeaturePersistSettings> =
1778 ::std::mem::MaybeUninit::uninit();
1779 let ptr = UNINIT.as_ptr();
1780 assert_eq!(
1781 ::std::mem::size_of::<VmbFeaturePersistSettings>(),
1782 16usize,
1783 concat!("Size of: ", stringify!(VmbFeaturePersistSettings))
1784 );
1785 assert_eq!(
1786 ::std::mem::align_of::<VmbFeaturePersistSettings>(),
1787 4usize,
1788 concat!("Alignment of ", stringify!(VmbFeaturePersistSettings))
1789 );
1790 assert_eq!(
1791 unsafe { ::std::ptr::addr_of!((*ptr).persistType) as usize - ptr as usize },
1792 0usize,
1793 concat!(
1794 "Offset of field: ",
1795 stringify!(VmbFeaturePersistSettings),
1796 "::",
1797 stringify!(persistType)
1798 )
1799 );
1800 assert_eq!(
1801 unsafe { ::std::ptr::addr_of!((*ptr).modulePersistFlags) as usize - ptr as usize },
1802 4usize,
1803 concat!(
1804 "Offset of field: ",
1805 stringify!(VmbFeaturePersistSettings),
1806 "::",
1807 stringify!(modulePersistFlags)
1808 )
1809 );
1810 assert_eq!(
1811 unsafe { ::std::ptr::addr_of!((*ptr).maxIterations) as usize - ptr as usize },
1812 8usize,
1813 concat!(
1814 "Offset of field: ",
1815 stringify!(VmbFeaturePersistSettings),
1816 "::",
1817 stringify!(maxIterations)
1818 )
1819 );
1820 assert_eq!(
1821 unsafe { ::std::ptr::addr_of!((*ptr).loggingLevel) as usize - ptr as usize },
1822 12usize,
1823 concat!(
1824 "Offset of field: ",
1825 stringify!(VmbFeaturePersistSettings),
1826 "::",
1827 stringify!(loggingLevel)
1828 )
1829 );
1830}
1831#[doc = " \\brief Parameters determining the operation mode of ::VmbSettingsSave and ::VmbSettingsLoad"]
1832pub type VmbFeaturePersistSettings_t = VmbFeaturePersistSettings;
1833#[doc = " \\brief Invalidation callback type for a function that gets called in a separate thread\n and has been registered with ::VmbFeatureInvalidationRegister().\n\n While the callback is run, all feature data is atomic. After the callback finishes,\n the feature data may be updated with new values.\n\n Do not spend too much time in this thread; it prevents the feature values\n from being updated from any other thread or the lower-level drivers.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[in] userContext Pointer to the user context, see ::VmbFeatureInvalidationRegister"]
1834pub type VmbInvalidationCallback = ::std::option::Option<
1835 unsafe extern "C" fn(
1836 handle: VmbHandle_t,
1837 name: *const ::std::os::raw::c_char,
1838 userContext: *mut ::std::os::raw::c_void,
1839 ),
1840>;
1841#[doc = " \\brief Frame Callback type for a function that gets called in a separate thread\n if a frame has been queued with ::VmbCaptureFrameQueue.\n\n \\warning Any operations closing the stream including ::VmbShutdown and ::VmbCameraClose in addition to\n ::VmbCaptureEnd block until any currently active callbacks return. If the callback does not\n return in finite time, the program may not return.\n\n \\param[in] cameraHandle Handle of the camera the frame belongs to\n \\param[in] streamHandle Handle of the stream the frame belongs to\n \\param[in] frame The received frame"]
1842pub type VmbFrameCallback = ::std::option::Option<
1843 unsafe extern "C" fn(
1844 cameraHandle: VmbHandle_t,
1845 streamHandle: VmbHandle_t,
1846 frame: *mut VmbFrame_t,
1847 ),
1848>;
1849#[doc = " \\brief Function pointer type to access chunk data\n\n This function should complete as quickly as possible, since it blocks other updates on the\n remote device.\n\n This function should not throw exceptions, even if VmbC is used from C++. Any exception\n thrown will only result in an error code indicating that an exception was thrown.\n\n \\param[in] featureAccessHandle A special handle that can be used for accessing features;\n the handle is only valid during the call of the function.\n \\param[in] userContext The value the user passed to ::VmbChunkDataAccess.\n\n \\return An error to be returned from ::VmbChunkDataAccess in the absence of other errors;\n A custom exit code >= ::VmbErrorCustom can be returned to indicate a failure via\n ::VmbChunkDataAccess return code"]
1850pub type VmbChunkAccessCallback = ::std::option::Option<
1851 unsafe extern "C" fn(
1852 featureAccessHandle: VmbHandle_t,
1853 userContext: *mut ::std::os::raw::c_void,
1854 ) -> VmbError_t,
1855>;
1856extern "C" {
1857 #[doc = " \\brief Constant for the Vmb handle to be able to access Vmb system features."]
1858 pub static gVmbHandle: VmbHandle_t;
1859}
1860extern crate libloading;
1861pub struct VimbaC {
1862 __library: ::libloading::Library,
1863 pub VmbVersionQuery: Result<
1864 unsafe extern "C" fn(
1865 versionInfo: *mut VmbVersionInfo_t,
1866 sizeofVersionInfo: VmbUint32_t,
1867 ) -> VmbError_t,
1868 ::libloading::Error,
1869 >,
1870 pub VmbStartup: Result<
1871 unsafe extern "C" fn(pathConfiguration: *const VmbFilePathChar_t) -> VmbError_t,
1872 ::libloading::Error,
1873 >,
1874 pub VmbShutdown: Result<unsafe extern "C" fn(), ::libloading::Error>,
1875 pub VmbCamerasList: Result<
1876 unsafe extern "C" fn(
1877 cameraInfo: *mut VmbCameraInfo_t,
1878 listLength: VmbUint32_t,
1879 numFound: *mut VmbUint32_t,
1880 sizeofCameraInfo: VmbUint32_t,
1881 ) -> VmbError_t,
1882 ::libloading::Error,
1883 >,
1884 pub VmbCameraInfoQueryByHandle: Result<
1885 unsafe extern "C" fn(
1886 cameraHandle: VmbHandle_t,
1887 info: *mut VmbCameraInfo_t,
1888 sizeofCameraInfo: VmbUint32_t,
1889 ) -> VmbError_t,
1890 ::libloading::Error,
1891 >,
1892 pub VmbCameraInfoQuery: Result<
1893 unsafe extern "C" fn(
1894 idString: *const ::std::os::raw::c_char,
1895 info: *mut VmbCameraInfo_t,
1896 sizeofCameraInfo: VmbUint32_t,
1897 ) -> VmbError_t,
1898 ::libloading::Error,
1899 >,
1900 pub VmbCameraOpen: Result<
1901 unsafe extern "C" fn(
1902 idString: *const ::std::os::raw::c_char,
1903 accessMode: VmbAccessMode_t,
1904 cameraHandle: *mut VmbHandle_t,
1905 ) -> VmbError_t,
1906 ::libloading::Error,
1907 >,
1908 pub VmbCameraClose:
1909 Result<unsafe extern "C" fn(cameraHandle: VmbHandle_t) -> VmbError_t, ::libloading::Error>,
1910 pub VmbFeaturesList: Result<
1911 unsafe extern "C" fn(
1912 handle: VmbHandle_t,
1913 featureInfoList: *mut VmbFeatureInfo_t,
1914 listLength: VmbUint32_t,
1915 numFound: *mut VmbUint32_t,
1916 sizeofFeatureInfo: VmbUint32_t,
1917 ) -> VmbError_t,
1918 ::libloading::Error,
1919 >,
1920 pub VmbFeatureInfoQuery: Result<
1921 unsafe extern "C" fn(
1922 handle: VmbHandle_t,
1923 name: *const ::std::os::raw::c_char,
1924 featureInfo: *mut VmbFeatureInfo_t,
1925 sizeofFeatureInfo: VmbUint32_t,
1926 ) -> VmbError_t,
1927 ::libloading::Error,
1928 >,
1929 pub VmbFeatureListSelected: Result<
1930 unsafe extern "C" fn(
1931 handle: VmbHandle_t,
1932 name: *const ::std::os::raw::c_char,
1933 featureInfoList: *mut VmbFeatureInfo_t,
1934 listLength: VmbUint32_t,
1935 numFound: *mut VmbUint32_t,
1936 sizeofFeatureInfo: VmbUint32_t,
1937 ) -> VmbError_t,
1938 ::libloading::Error,
1939 >,
1940 pub VmbFeatureAccessQuery: Result<
1941 unsafe extern "C" fn(
1942 handle: VmbHandle_t,
1943 name: *const ::std::os::raw::c_char,
1944 isReadable: *mut VmbBool_t,
1945 isWriteable: *mut VmbBool_t,
1946 ) -> VmbError_t,
1947 ::libloading::Error,
1948 >,
1949 pub VmbFeatureIntGet: Result<
1950 unsafe extern "C" fn(
1951 handle: VmbHandle_t,
1952 name: *const ::std::os::raw::c_char,
1953 value: *mut VmbInt64_t,
1954 ) -> VmbError_t,
1955 ::libloading::Error,
1956 >,
1957 pub VmbFeatureIntSet: Result<
1958 unsafe extern "C" fn(
1959 handle: VmbHandle_t,
1960 name: *const ::std::os::raw::c_char,
1961 value: VmbInt64_t,
1962 ) -> VmbError_t,
1963 ::libloading::Error,
1964 >,
1965 pub VmbFeatureIntRangeQuery: Result<
1966 unsafe extern "C" fn(
1967 handle: VmbHandle_t,
1968 name: *const ::std::os::raw::c_char,
1969 min: *mut VmbInt64_t,
1970 max: *mut VmbInt64_t,
1971 ) -> VmbError_t,
1972 ::libloading::Error,
1973 >,
1974 pub VmbFeatureIntIncrementQuery: Result<
1975 unsafe extern "C" fn(
1976 handle: VmbHandle_t,
1977 name: *const ::std::os::raw::c_char,
1978 value: *mut VmbInt64_t,
1979 ) -> VmbError_t,
1980 ::libloading::Error,
1981 >,
1982 pub VmbFeatureIntValidValueSetQuery: Result<
1983 unsafe extern "C" fn(
1984 handle: VmbHandle_t,
1985 name: *const ::std::os::raw::c_char,
1986 buffer: *mut VmbInt64_t,
1987 bufferSize: VmbUint32_t,
1988 setSize: *mut VmbUint32_t,
1989 ) -> VmbError_t,
1990 ::libloading::Error,
1991 >,
1992 pub VmbFeatureFloatGet: Result<
1993 unsafe extern "C" fn(
1994 handle: VmbHandle_t,
1995 name: *const ::std::os::raw::c_char,
1996 value: *mut f64,
1997 ) -> VmbError_t,
1998 ::libloading::Error,
1999 >,
2000 pub VmbFeatureFloatSet: Result<
2001 unsafe extern "C" fn(
2002 handle: VmbHandle_t,
2003 name: *const ::std::os::raw::c_char,
2004 value: f64,
2005 ) -> VmbError_t,
2006 ::libloading::Error,
2007 >,
2008 pub VmbFeatureFloatRangeQuery: Result<
2009 unsafe extern "C" fn(
2010 handle: VmbHandle_t,
2011 name: *const ::std::os::raw::c_char,
2012 min: *mut f64,
2013 max: *mut f64,
2014 ) -> VmbError_t,
2015 ::libloading::Error,
2016 >,
2017 pub VmbFeatureFloatIncrementQuery: Result<
2018 unsafe extern "C" fn(
2019 handle: VmbHandle_t,
2020 name: *const ::std::os::raw::c_char,
2021 hasIncrement: *mut VmbBool_t,
2022 value: *mut f64,
2023 ) -> VmbError_t,
2024 ::libloading::Error,
2025 >,
2026 pub VmbFeatureEnumGet: Result<
2027 unsafe extern "C" fn(
2028 handle: VmbHandle_t,
2029 name: *const ::std::os::raw::c_char,
2030 value: *mut *const ::std::os::raw::c_char,
2031 ) -> VmbError_t,
2032 ::libloading::Error,
2033 >,
2034 pub VmbFeatureEnumSet: Result<
2035 unsafe extern "C" fn(
2036 handle: VmbHandle_t,
2037 name: *const ::std::os::raw::c_char,
2038 value: *const ::std::os::raw::c_char,
2039 ) -> VmbError_t,
2040 ::libloading::Error,
2041 >,
2042 pub VmbFeatureEnumRangeQuery: Result<
2043 unsafe extern "C" fn(
2044 handle: VmbHandle_t,
2045 name: *const ::std::os::raw::c_char,
2046 nameArray: *mut *const ::std::os::raw::c_char,
2047 arrayLength: VmbUint32_t,
2048 numFound: *mut VmbUint32_t,
2049 ) -> VmbError_t,
2050 ::libloading::Error,
2051 >,
2052 pub VmbFeatureEnumIsAvailable: Result<
2053 unsafe extern "C" fn(
2054 handle: VmbHandle_t,
2055 name: *const ::std::os::raw::c_char,
2056 value: *const ::std::os::raw::c_char,
2057 isAvailable: *mut VmbBool_t,
2058 ) -> VmbError_t,
2059 ::libloading::Error,
2060 >,
2061 pub VmbFeatureEnumAsInt: Result<
2062 unsafe extern "C" fn(
2063 handle: VmbHandle_t,
2064 name: *const ::std::os::raw::c_char,
2065 value: *const ::std::os::raw::c_char,
2066 intVal: *mut VmbInt64_t,
2067 ) -> VmbError_t,
2068 ::libloading::Error,
2069 >,
2070 pub VmbFeatureEnumAsString: Result<
2071 unsafe extern "C" fn(
2072 handle: VmbHandle_t,
2073 name: *const ::std::os::raw::c_char,
2074 intValue: VmbInt64_t,
2075 stringValue: *mut *const ::std::os::raw::c_char,
2076 ) -> VmbError_t,
2077 ::libloading::Error,
2078 >,
2079 pub VmbFeatureEnumEntryGet: Result<
2080 unsafe extern "C" fn(
2081 handle: VmbHandle_t,
2082 featureName: *const ::std::os::raw::c_char,
2083 entryName: *const ::std::os::raw::c_char,
2084 featureEnumEntry: *mut VmbFeatureEnumEntry_t,
2085 sizeofFeatureEnumEntry: VmbUint32_t,
2086 ) -> VmbError_t,
2087 ::libloading::Error,
2088 >,
2089 pub VmbFeatureStringGet: Result<
2090 unsafe extern "C" fn(
2091 handle: VmbHandle_t,
2092 name: *const ::std::os::raw::c_char,
2093 buffer: *mut ::std::os::raw::c_char,
2094 bufferSize: VmbUint32_t,
2095 sizeFilled: *mut VmbUint32_t,
2096 ) -> VmbError_t,
2097 ::libloading::Error,
2098 >,
2099 pub VmbFeatureStringSet: Result<
2100 unsafe extern "C" fn(
2101 handle: VmbHandle_t,
2102 name: *const ::std::os::raw::c_char,
2103 value: *const ::std::os::raw::c_char,
2104 ) -> VmbError_t,
2105 ::libloading::Error,
2106 >,
2107 pub VmbFeatureStringMaxlengthQuery: Result<
2108 unsafe extern "C" fn(
2109 handle: VmbHandle_t,
2110 name: *const ::std::os::raw::c_char,
2111 maxLength: *mut VmbUint32_t,
2112 ) -> VmbError_t,
2113 ::libloading::Error,
2114 >,
2115 pub VmbFeatureBoolGet: Result<
2116 unsafe extern "C" fn(
2117 handle: VmbHandle_t,
2118 name: *const ::std::os::raw::c_char,
2119 value: *mut VmbBool_t,
2120 ) -> VmbError_t,
2121 ::libloading::Error,
2122 >,
2123 pub VmbFeatureBoolSet: Result<
2124 unsafe extern "C" fn(
2125 handle: VmbHandle_t,
2126 name: *const ::std::os::raw::c_char,
2127 value: VmbBool_t,
2128 ) -> VmbError_t,
2129 ::libloading::Error,
2130 >,
2131 pub VmbFeatureCommandRun: Result<
2132 unsafe extern "C" fn(
2133 handle: VmbHandle_t,
2134 name: *const ::std::os::raw::c_char,
2135 ) -> VmbError_t,
2136 ::libloading::Error,
2137 >,
2138 pub VmbFeatureCommandIsDone: Result<
2139 unsafe extern "C" fn(
2140 handle: VmbHandle_t,
2141 name: *const ::std::os::raw::c_char,
2142 isDone: *mut VmbBool_t,
2143 ) -> VmbError_t,
2144 ::libloading::Error,
2145 >,
2146 pub VmbFeatureRawGet: Result<
2147 unsafe extern "C" fn(
2148 handle: VmbHandle_t,
2149 name: *const ::std::os::raw::c_char,
2150 buffer: *mut ::std::os::raw::c_char,
2151 bufferSize: VmbUint32_t,
2152 sizeFilled: *mut VmbUint32_t,
2153 ) -> VmbError_t,
2154 ::libloading::Error,
2155 >,
2156 pub VmbFeatureRawSet: Result<
2157 unsafe extern "C" fn(
2158 handle: VmbHandle_t,
2159 name: *const ::std::os::raw::c_char,
2160 buffer: *const ::std::os::raw::c_char,
2161 bufferSize: VmbUint32_t,
2162 ) -> VmbError_t,
2163 ::libloading::Error,
2164 >,
2165 pub VmbFeatureRawLengthQuery: Result<
2166 unsafe extern "C" fn(
2167 handle: VmbHandle_t,
2168 name: *const ::std::os::raw::c_char,
2169 length: *mut VmbUint32_t,
2170 ) -> VmbError_t,
2171 ::libloading::Error,
2172 >,
2173 pub VmbFeatureInvalidationRegister: Result<
2174 unsafe extern "C" fn(
2175 handle: VmbHandle_t,
2176 name: *const ::std::os::raw::c_char,
2177 callback: VmbInvalidationCallback,
2178 userContext: *mut ::std::os::raw::c_void,
2179 ) -> VmbError_t,
2180 ::libloading::Error,
2181 >,
2182 pub VmbFeatureInvalidationUnregister: Result<
2183 unsafe extern "C" fn(
2184 handle: VmbHandle_t,
2185 name: *const ::std::os::raw::c_char,
2186 callback: VmbInvalidationCallback,
2187 ) -> VmbError_t,
2188 ::libloading::Error,
2189 >,
2190 pub VmbPayloadSizeGet: Result<
2191 unsafe extern "C" fn(handle: VmbHandle_t, payloadSize: *mut VmbUint32_t) -> VmbError_t,
2192 ::libloading::Error,
2193 >,
2194 pub VmbFrameAnnounce: Result<
2195 unsafe extern "C" fn(
2196 handle: VmbHandle_t,
2197 frame: *const VmbFrame_t,
2198 sizeofFrame: VmbUint32_t,
2199 ) -> VmbError_t,
2200 ::libloading::Error,
2201 >,
2202 pub VmbFrameRevoke: Result<
2203 unsafe extern "C" fn(handle: VmbHandle_t, frame: *const VmbFrame_t) -> VmbError_t,
2204 ::libloading::Error,
2205 >,
2206 pub VmbFrameRevokeAll:
2207 Result<unsafe extern "C" fn(handle: VmbHandle_t) -> VmbError_t, ::libloading::Error>,
2208 pub VmbCaptureStart:
2209 Result<unsafe extern "C" fn(handle: VmbHandle_t) -> VmbError_t, ::libloading::Error>,
2210 pub VmbCaptureEnd:
2211 Result<unsafe extern "C" fn(handle: VmbHandle_t) -> VmbError_t, ::libloading::Error>,
2212 pub VmbCaptureFrameQueue: Result<
2213 unsafe extern "C" fn(
2214 handle: VmbHandle_t,
2215 frame: *const VmbFrame_t,
2216 callback: VmbFrameCallback,
2217 ) -> VmbError_t,
2218 ::libloading::Error,
2219 >,
2220 pub VmbCaptureFrameWait: Result<
2221 unsafe extern "C" fn(
2222 handle: VmbHandle_t,
2223 frame: *const VmbFrame_t,
2224 timeout: VmbUint32_t,
2225 ) -> VmbError_t,
2226 ::libloading::Error,
2227 >,
2228 pub VmbCaptureQueueFlush:
2229 Result<unsafe extern "C" fn(handle: VmbHandle_t) -> VmbError_t, ::libloading::Error>,
2230 pub VmbTransportLayersList: Result<
2231 unsafe extern "C" fn(
2232 transportLayerInfo: *mut VmbTransportLayerInfo_t,
2233 listLength: VmbUint32_t,
2234 numFound: *mut VmbUint32_t,
2235 sizeofTransportLayerInfo: VmbUint32_t,
2236 ) -> VmbError_t,
2237 ::libloading::Error,
2238 >,
2239 pub VmbInterfacesList: Result<
2240 unsafe extern "C" fn(
2241 interfaceInfo: *mut VmbInterfaceInfo_t,
2242 listLength: VmbUint32_t,
2243 numFound: *mut VmbUint32_t,
2244 sizeofInterfaceInfo: VmbUint32_t,
2245 ) -> VmbError_t,
2246 ::libloading::Error,
2247 >,
2248 pub VmbMemoryRead: Result<
2249 unsafe extern "C" fn(
2250 handle: VmbHandle_t,
2251 address: VmbUint64_t,
2252 bufferSize: VmbUint32_t,
2253 dataBuffer: *mut ::std::os::raw::c_char,
2254 sizeComplete: *mut VmbUint32_t,
2255 ) -> VmbError_t,
2256 ::libloading::Error,
2257 >,
2258 pub VmbMemoryWrite: Result<
2259 unsafe extern "C" fn(
2260 handle: VmbHandle_t,
2261 address: VmbUint64_t,
2262 bufferSize: VmbUint32_t,
2263 dataBuffer: *const ::std::os::raw::c_char,
2264 sizeComplete: *mut VmbUint32_t,
2265 ) -> VmbError_t,
2266 ::libloading::Error,
2267 >,
2268 pub VmbSettingsSave: Result<
2269 unsafe extern "C" fn(
2270 handle: VmbHandle_t,
2271 filePath: *const VmbFilePathChar_t,
2272 settings: *const VmbFeaturePersistSettings_t,
2273 sizeofSettings: VmbUint32_t,
2274 ) -> VmbError_t,
2275 ::libloading::Error,
2276 >,
2277 pub VmbSettingsLoad: Result<
2278 unsafe extern "C" fn(
2279 handle: VmbHandle_t,
2280 filePath: *const VmbFilePathChar_t,
2281 settings: *const VmbFeaturePersistSettings_t,
2282 sizeofSettings: VmbUint32_t,
2283 ) -> VmbError_t,
2284 ::libloading::Error,
2285 >,
2286 pub VmbChunkDataAccess: Result<
2287 unsafe extern "C" fn(
2288 frame: *const VmbFrame_t,
2289 chunkAccessCallback: VmbChunkAccessCallback,
2290 userContext: *mut ::std::os::raw::c_void,
2291 ) -> VmbError_t,
2292 ::libloading::Error,
2293 >,
2294}
2295impl VimbaC {
2296 pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
2297 where
2298 P: AsRef<::std::ffi::OsStr>,
2299 {
2300 let library = ::libloading::Library::new(path)?;
2301 Self::from_library(library)
2302 }
2303 pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
2304 where
2305 L: Into<::libloading::Library>,
2306 {
2307 let __library = library.into();
2308 let VmbVersionQuery = __library.get(b"VmbVersionQuery\0").map(|sym| *sym);
2309 let VmbStartup = __library.get(b"VmbStartup\0").map(|sym| *sym);
2310 let VmbShutdown = __library.get(b"VmbShutdown\0").map(|sym| *sym);
2311 let VmbCamerasList = __library.get(b"VmbCamerasList\0").map(|sym| *sym);
2312 let VmbCameraInfoQueryByHandle = __library
2313 .get(b"VmbCameraInfoQueryByHandle\0")
2314 .map(|sym| *sym);
2315 let VmbCameraInfoQuery = __library.get(b"VmbCameraInfoQuery\0").map(|sym| *sym);
2316 let VmbCameraOpen = __library.get(b"VmbCameraOpen\0").map(|sym| *sym);
2317 let VmbCameraClose = __library.get(b"VmbCameraClose\0").map(|sym| *sym);
2318 let VmbFeaturesList = __library.get(b"VmbFeaturesList\0").map(|sym| *sym);
2319 let VmbFeatureInfoQuery = __library.get(b"VmbFeatureInfoQuery\0").map(|sym| *sym);
2320 let VmbFeatureListSelected = __library.get(b"VmbFeatureListSelected\0").map(|sym| *sym);
2321 let VmbFeatureAccessQuery = __library.get(b"VmbFeatureAccessQuery\0").map(|sym| *sym);
2322 let VmbFeatureIntGet = __library.get(b"VmbFeatureIntGet\0").map(|sym| *sym);
2323 let VmbFeatureIntSet = __library.get(b"VmbFeatureIntSet\0").map(|sym| *sym);
2324 let VmbFeatureIntRangeQuery = __library.get(b"VmbFeatureIntRangeQuery\0").map(|sym| *sym);
2325 let VmbFeatureIntIncrementQuery = __library
2326 .get(b"VmbFeatureIntIncrementQuery\0")
2327 .map(|sym| *sym);
2328 let VmbFeatureIntValidValueSetQuery = __library
2329 .get(b"VmbFeatureIntValidValueSetQuery\0")
2330 .map(|sym| *sym);
2331 let VmbFeatureFloatGet = __library.get(b"VmbFeatureFloatGet\0").map(|sym| *sym);
2332 let VmbFeatureFloatSet = __library.get(b"VmbFeatureFloatSet\0").map(|sym| *sym);
2333 let VmbFeatureFloatRangeQuery = __library
2334 .get(b"VmbFeatureFloatRangeQuery\0")
2335 .map(|sym| *sym);
2336 let VmbFeatureFloatIncrementQuery = __library
2337 .get(b"VmbFeatureFloatIncrementQuery\0")
2338 .map(|sym| *sym);
2339 let VmbFeatureEnumGet = __library.get(b"VmbFeatureEnumGet\0").map(|sym| *sym);
2340 let VmbFeatureEnumSet = __library.get(b"VmbFeatureEnumSet\0").map(|sym| *sym);
2341 let VmbFeatureEnumRangeQuery = __library.get(b"VmbFeatureEnumRangeQuery\0").map(|sym| *sym);
2342 let VmbFeatureEnumIsAvailable = __library
2343 .get(b"VmbFeatureEnumIsAvailable\0")
2344 .map(|sym| *sym);
2345 let VmbFeatureEnumAsInt = __library.get(b"VmbFeatureEnumAsInt\0").map(|sym| *sym);
2346 let VmbFeatureEnumAsString = __library.get(b"VmbFeatureEnumAsString\0").map(|sym| *sym);
2347 let VmbFeatureEnumEntryGet = __library.get(b"VmbFeatureEnumEntryGet\0").map(|sym| *sym);
2348 let VmbFeatureStringGet = __library.get(b"VmbFeatureStringGet\0").map(|sym| *sym);
2349 let VmbFeatureStringSet = __library.get(b"VmbFeatureStringSet\0").map(|sym| *sym);
2350 let VmbFeatureStringMaxlengthQuery = __library
2351 .get(b"VmbFeatureStringMaxlengthQuery\0")
2352 .map(|sym| *sym);
2353 let VmbFeatureBoolGet = __library.get(b"VmbFeatureBoolGet\0").map(|sym| *sym);
2354 let VmbFeatureBoolSet = __library.get(b"VmbFeatureBoolSet\0").map(|sym| *sym);
2355 let VmbFeatureCommandRun = __library.get(b"VmbFeatureCommandRun\0").map(|sym| *sym);
2356 let VmbFeatureCommandIsDone = __library.get(b"VmbFeatureCommandIsDone\0").map(|sym| *sym);
2357 let VmbFeatureRawGet = __library.get(b"VmbFeatureRawGet\0").map(|sym| *sym);
2358 let VmbFeatureRawSet = __library.get(b"VmbFeatureRawSet\0").map(|sym| *sym);
2359 let VmbFeatureRawLengthQuery = __library.get(b"VmbFeatureRawLengthQuery\0").map(|sym| *sym);
2360 let VmbFeatureInvalidationRegister = __library
2361 .get(b"VmbFeatureInvalidationRegister\0")
2362 .map(|sym| *sym);
2363 let VmbFeatureInvalidationUnregister = __library
2364 .get(b"VmbFeatureInvalidationUnregister\0")
2365 .map(|sym| *sym);
2366 let VmbPayloadSizeGet = __library.get(b"VmbPayloadSizeGet\0").map(|sym| *sym);
2367 let VmbFrameAnnounce = __library.get(b"VmbFrameAnnounce\0").map(|sym| *sym);
2368 let VmbFrameRevoke = __library.get(b"VmbFrameRevoke\0").map(|sym| *sym);
2369 let VmbFrameRevokeAll = __library.get(b"VmbFrameRevokeAll\0").map(|sym| *sym);
2370 let VmbCaptureStart = __library.get(b"VmbCaptureStart\0").map(|sym| *sym);
2371 let VmbCaptureEnd = __library.get(b"VmbCaptureEnd\0").map(|sym| *sym);
2372 let VmbCaptureFrameQueue = __library.get(b"VmbCaptureFrameQueue\0").map(|sym| *sym);
2373 let VmbCaptureFrameWait = __library.get(b"VmbCaptureFrameWait\0").map(|sym| *sym);
2374 let VmbCaptureQueueFlush = __library.get(b"VmbCaptureQueueFlush\0").map(|sym| *sym);
2375 let VmbTransportLayersList = __library.get(b"VmbTransportLayersList\0").map(|sym| *sym);
2376 let VmbInterfacesList = __library.get(b"VmbInterfacesList\0").map(|sym| *sym);
2377 let VmbMemoryRead = __library.get(b"VmbMemoryRead\0").map(|sym| *sym);
2378 let VmbMemoryWrite = __library.get(b"VmbMemoryWrite\0").map(|sym| *sym);
2379 let VmbSettingsSave = __library.get(b"VmbSettingsSave\0").map(|sym| *sym);
2380 let VmbSettingsLoad = __library.get(b"VmbSettingsLoad\0").map(|sym| *sym);
2381 let VmbChunkDataAccess = __library.get(b"VmbChunkDataAccess\0").map(|sym| *sym);
2382 Ok(VimbaC {
2383 __library,
2384 VmbVersionQuery,
2385 VmbStartup,
2386 VmbShutdown,
2387 VmbCamerasList,
2388 VmbCameraInfoQueryByHandle,
2389 VmbCameraInfoQuery,
2390 VmbCameraOpen,
2391 VmbCameraClose,
2392 VmbFeaturesList,
2393 VmbFeatureInfoQuery,
2394 VmbFeatureListSelected,
2395 VmbFeatureAccessQuery,
2396 VmbFeatureIntGet,
2397 VmbFeatureIntSet,
2398 VmbFeatureIntRangeQuery,
2399 VmbFeatureIntIncrementQuery,
2400 VmbFeatureIntValidValueSetQuery,
2401 VmbFeatureFloatGet,
2402 VmbFeatureFloatSet,
2403 VmbFeatureFloatRangeQuery,
2404 VmbFeatureFloatIncrementQuery,
2405 VmbFeatureEnumGet,
2406 VmbFeatureEnumSet,
2407 VmbFeatureEnumRangeQuery,
2408 VmbFeatureEnumIsAvailable,
2409 VmbFeatureEnumAsInt,
2410 VmbFeatureEnumAsString,
2411 VmbFeatureEnumEntryGet,
2412 VmbFeatureStringGet,
2413 VmbFeatureStringSet,
2414 VmbFeatureStringMaxlengthQuery,
2415 VmbFeatureBoolGet,
2416 VmbFeatureBoolSet,
2417 VmbFeatureCommandRun,
2418 VmbFeatureCommandIsDone,
2419 VmbFeatureRawGet,
2420 VmbFeatureRawSet,
2421 VmbFeatureRawLengthQuery,
2422 VmbFeatureInvalidationRegister,
2423 VmbFeatureInvalidationUnregister,
2424 VmbPayloadSizeGet,
2425 VmbFrameAnnounce,
2426 VmbFrameRevoke,
2427 VmbFrameRevokeAll,
2428 VmbCaptureStart,
2429 VmbCaptureEnd,
2430 VmbCaptureFrameQueue,
2431 VmbCaptureFrameWait,
2432 VmbCaptureQueueFlush,
2433 VmbTransportLayersList,
2434 VmbInterfacesList,
2435 VmbMemoryRead,
2436 VmbMemoryWrite,
2437 VmbSettingsSave,
2438 VmbSettingsLoad,
2439 VmbChunkDataAccess,
2440 })
2441 }
2442 #[doc = " \\brief Retrieve the version number of VmbC.\n\n This function can be called at anytime, even before the API is\n initialized. All other version numbers may be queried via feature access.\n\n \\param[out] versionInfo Pointer to the struct where version information resides\n \\param[in] sizeofVersionInfo Size of structure in bytes\n\n\n \\return An error code indicating success or the type of error.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback.\n\n \\retval ::VmbErrorStructSize The given struct size is not valid for this version of the API\n\n \\retval ::VmbErrorBadParameter \\p versionInfo is null.\n"]
2443 pub unsafe fn VmbVersionQuery(
2444 &self,
2445 versionInfo: *mut VmbVersionInfo_t,
2446 sizeofVersionInfo: VmbUint32_t,
2447 ) -> VmbError_t {
2448 (self
2449 .VmbVersionQuery
2450 .as_ref()
2451 .expect("Expected function, got error."))(versionInfo, sizeofVersionInfo)
2452 }
2453 #[doc = " \\brief Initializes the VmbC API.\n\n Note: This function must be called before any VmbC function other than ::VmbVersionQuery() is run.\n\n \\param[in] pathConfiguration A string containing a semicolon (Windows) or colon (other os) separated list of paths. The paths contain directories to search for .cti files,\n paths to .cti files and optionally the path to a configuration xml file. If null is passed the parameter is the cti files found in the paths\n the GENICAM_GENTL{32|64}_PATH environment variable are considered\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorAlready This function was called before and call to ::VmbShutdown has been executed on a non-callback thread\n\n \\retval ::VmbErrorInvalidCall If called from a callback or ::VmbShutdown is currently running\n\n \\retval ::VmbErrorXml If parsing the settings xml is unsuccessful; a missing default xml file does not result in this error.\n\n \\retval ::VmbErrorTLNotFound A transport layer that was marked as required was not found.\n\n \\retval ::VmbErrorNoTL No transport layer was found on the system; note that some of the transport layers may have been filtered out via the settings file.\n\n \\retval ::VmbErrorIO A log file should be written according to the settings xml file, but this log file could not be opened.\n\n \\retval ::VmbErrorBadParameter \\p pathConfiguration contains only separator and whitespace chars.\n"]
2454 pub unsafe fn VmbStartup(&self, pathConfiguration: *const VmbFilePathChar_t) -> VmbError_t {
2455 (self
2456 .VmbStartup
2457 .as_ref()
2458 .expect("Expected function, got error."))(pathConfiguration)
2459 }
2460 #[doc = " \\brief Perform a shutdown of the API.\n\n This frees some resources and deallocates all physical resources if applicable.\n\n The call is silently ignored, if executed from a callback.\n"]
2461 pub unsafe fn VmbShutdown(&self) {
2462 (self
2463 .VmbShutdown
2464 .as_ref()
2465 .expect("Expected function, got error."))()
2466 }
2467 #[doc = " List all the cameras that are currently visible to the API.\n\n Note: This function is usually called twice: once with an empty array to query the length\n of the list, and then again with an array of the correct length.\n If camera lists change between the calls, numFound may deviate from the query return.\n\n \\param[in,out] cameraInfo Array of VmbCameraInfo_t, allocated by the caller.\n The camera list is copied here. May be null.\n\n \\param[in] listLength Number of entries in the callers cameraInfo array.\n\n \\param[in,out] numFound Number of cameras found. Can be more than listLength.\n\n \\param[in] sizeofCameraInfo Size of one VmbCameraInfo_t entry (if \\p cameraInfo is null, this parameter is ignored).\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p numFound is null\n\n \\retval ::VmbErrorStructSize The given struct size is not valid for this API version and \\p cameraInfo is not null\n\n \\retval ::VmbErrorMoreData The given list length was insufficient to hold all available entries"]
2468 pub unsafe fn VmbCamerasList(
2469 &self,
2470 cameraInfo: *mut VmbCameraInfo_t,
2471 listLength: VmbUint32_t,
2472 numFound: *mut VmbUint32_t,
2473 sizeofCameraInfo: VmbUint32_t,
2474 ) -> VmbError_t {
2475 (self
2476 .VmbCamerasList
2477 .as_ref()
2478 .expect("Expected function, got error."))(
2479 cameraInfo,
2480 listLength,
2481 numFound,
2482 sizeofCameraInfo,
2483 )
2484 }
2485 #[doc = " \\brief Retrieve information about a single camera given its handle.\n\n Note: Some information is only filled for opened cameras.\n\n \\param[in] cameraHandle The handle of the camera; both remote and local device handles are permitted\n\n \\param[in,out] info Structure where information will be copied\n\n \\param[in] sizeofCameraInfo Size of the structure\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorStructSize The given struct size is not valid for this API version\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorBadParameter \\p info is null\n\n \\retval ::VmbErrorBadHandle The handle does not correspond to a camera"]
2486 pub unsafe fn VmbCameraInfoQueryByHandle(
2487 &self,
2488 cameraHandle: VmbHandle_t,
2489 info: *mut VmbCameraInfo_t,
2490 sizeofCameraInfo: VmbUint32_t,
2491 ) -> VmbError_t {
2492 (self
2493 .VmbCameraInfoQueryByHandle
2494 .as_ref()
2495 .expect("Expected function, got error."))(cameraHandle, info, sizeofCameraInfo)
2496 }
2497 #[doc = " \\brief Retrieve information about a single camera given the ID of the camera.\n\n Note: Some information is only filled for opened cameras.\n\n \\param[in] idString ID of the camera\n\n \\param[in,out] info Structure where information will be copied\n\n \\param[in] sizeofCameraInfo Size of the structure\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p idString or \\p info are null or \\p idString is the empty string\n\n \\retval ::VmbErrorNotFound No camera with the given id is found\n\n \\retval ::VmbErrorStructSize The given struct size is not valid for this API version"]
2498 pub unsafe fn VmbCameraInfoQuery(
2499 &self,
2500 idString: *const ::std::os::raw::c_char,
2501 info: *mut VmbCameraInfo_t,
2502 sizeofCameraInfo: VmbUint32_t,
2503 ) -> VmbError_t {
2504 (self
2505 .VmbCameraInfoQuery
2506 .as_ref()
2507 .expect("Expected function, got error."))(idString, info, sizeofCameraInfo)
2508 }
2509 #[doc = " \\brief Open the specified camera.\n\n \\param[in] idString ID of the camera.\n \\param[in] accessMode The desired access mode.\n \\param[out] cameraHandle The remote device handle of the camera, if opened successfully.\n\n A camera may be opened in a specific access mode, which determines\n the level of control you have on a camera.\n Examples for idString:\n\n \"DEV_81237473991\" for an ID given by a transport layer,\n \"169.254.12.13\" for an IP address,\n \"000F314C4BE5\" for a MAC address or\n \"DEV_1234567890\" for an ID as reported by Vmb\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInUse The camera with the given ID is already opened\n\n \\retval ::VmbErrorInvalidCall If called from frame callback or chunk access callback\n\n \\retval ::VmbErrorBadParameter If \\p idString or \\p cameraHandle are null\n\n \\retval ::VmbErrorInvalidAccess A camera with the given id was found, but could not be opened\n\n \\retval ::VmbErrorNotFound The designated camera cannot be found"]
2510 pub unsafe fn VmbCameraOpen(
2511 &self,
2512 idString: *const ::std::os::raw::c_char,
2513 accessMode: VmbAccessMode_t,
2514 cameraHandle: *mut VmbHandle_t,
2515 ) -> VmbError_t {
2516 (self
2517 .VmbCameraOpen
2518 .as_ref()
2519 .expect("Expected function, got error."))(idString, accessMode, cameraHandle)
2520 }
2521 #[doc = " \\brief Close the specified camera.\n\n Depending on the access mode this camera was opened with, events are killed,\n callbacks are unregistered, and camera control is released.\n\n \\param[in] cameraHandle A valid camera handle\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInUse The camera is currently in use with ::VmbChunkDataAccess\n\n \\retval ::VmbErrorBadHandle The handle does not correspond to an open camera\n\n \\retval ::VmbErrorInvalidCall If called from frame callback or chunk access callback"]
2522 pub unsafe fn VmbCameraClose(&self, cameraHandle: VmbHandle_t) -> VmbError_t {
2523 (self
2524 .VmbCameraClose
2525 .as_ref()
2526 .expect("Expected function, got error."))(cameraHandle)
2527 }
2528 #[doc = " \\brief List all the features for this entity.\n\n This function lists all implemented features, whether they are currently available or not.\n The list of features does not change as long as the entity is connected.\n\n This function is usually called twice: once with an empty list to query the length\n of the list, and then again with a list of the correct length.\n\n If ::VmbErrorMoreData is returned and \\p numFound is non-null, the total number of features has been written to \\p numFound.\n\n If there are more elements in \\p featureInfoList than features available, the remaining elements\n are filled with zero-initialized ::VmbFeatureInfo_t structs.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[out] featureInfoList An array of ::VmbFeatureInfo_t to be filled by the API. May be null if \\p numFund is used for size query.\n \\param[in] listLength Number of ::VmbFeatureInfo_t elements provided\n \\param[out] numFound Number of ::VmbFeatureInfo_t elements found. May be null if \\p featureInfoList is not null.\n \\param[in] sizeofFeatureInfo Size of a ::VmbFeatureInfo_t entry\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorStructSize The given struct size of ::VmbFeatureInfo_t is not valid for this version of the API\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter Both \\p featureInfoList and \\p numFound are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorMoreData The given list length was insufficient to hold all available entries"]
2529 pub unsafe fn VmbFeaturesList(
2530 &self,
2531 handle: VmbHandle_t,
2532 featureInfoList: *mut VmbFeatureInfo_t,
2533 listLength: VmbUint32_t,
2534 numFound: *mut VmbUint32_t,
2535 sizeofFeatureInfo: VmbUint32_t,
2536 ) -> VmbError_t {
2537 (self
2538 .VmbFeaturesList
2539 .as_ref()
2540 .expect("Expected function, got error."))(
2541 handle,
2542 featureInfoList,
2543 listLength,
2544 numFound,
2545 sizeofFeatureInfo,
2546 )
2547 }
2548 #[doc = " \\brief Query information about the constant properties of a feature.\n\n Users provide a pointer to ::VmbFeatureInfo_t, which is then set to the internal representation.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] featureInfo The feature info to query\n \\param[in] sizeofFeatureInfo Size of the structure\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorStructSize The given struct size of ::VmbFeatureInfo_t is not valid for this version of the API\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name or \\p featureInfo are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound A feature with the given name does not exist.\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode"]
2549 pub unsafe fn VmbFeatureInfoQuery(
2550 &self,
2551 handle: VmbHandle_t,
2552 name: *const ::std::os::raw::c_char,
2553 featureInfo: *mut VmbFeatureInfo_t,
2554 sizeofFeatureInfo: VmbUint32_t,
2555 ) -> VmbError_t {
2556 (self
2557 .VmbFeatureInfoQuery
2558 .as_ref()
2559 .expect("Expected function, got error."))(
2560 handle, name, featureInfo, sizeofFeatureInfo
2561 )
2562 }
2563 #[doc = " \\brief List all the features selected by a given feature for this module.\n\n This function lists all selected features, whether they are currently available or not.\n Features with selected features (\"selectors\") have no direct impact on the camera,\n but only influence the register address that selected features point to.\n The list of features does not change while the camera/interface is connected.\n This function is usually called twice: once with an empty array to query the length\n of the list, and then again with an array of the correct length.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] featureInfoList An array of ::VmbFeatureInfo_t to be filled by the API. May be null if \\p numFound is used for size query.\n \\param[in] listLength Number of ::VmbFeatureInfo_t elements provided\n \\param[out] numFound Number of ::VmbFeatureInfo_t elements found. May be null if \\p featureInfoList is not null.\n \\param[in] sizeofFeatureInfo Size of a ::VmbFeatureInfo_t entry\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorBadParameter \\p name is null or both \\p featureInfoList and \\p numFound are null\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorStructSize The given struct size of ::VmbFeatureInfo_t is not valid for this version of the API\n\n \\retval ::VmbErrorMoreData The given list length was insufficient to hold all available entries"]
2564 pub unsafe fn VmbFeatureListSelected(
2565 &self,
2566 handle: VmbHandle_t,
2567 name: *const ::std::os::raw::c_char,
2568 featureInfoList: *mut VmbFeatureInfo_t,
2569 listLength: VmbUint32_t,
2570 numFound: *mut VmbUint32_t,
2571 sizeofFeatureInfo: VmbUint32_t,
2572 ) -> VmbError_t {
2573 (self
2574 .VmbFeatureListSelected
2575 .as_ref()
2576 .expect("Expected function, got error."))(
2577 handle,
2578 name,
2579 featureInfoList,
2580 listLength,
2581 numFound,
2582 sizeofFeatureInfo,
2583 )
2584 }
2585 #[doc = " \\brief Return the dynamic read and write capabilities of this feature.\n\n The access mode of a feature may change. For example, if \"PacketSize\"\n is locked while image data is streamed, it is only readable.\n\n \\param[in] handle Handle for an entity that exposes features.\n \\param[in] name Name of the feature.\n \\param[out] isReadable Indicates if this feature is readable. May be null.\n \\param[out] isWriteable Indicates if this feature is writable. May be null.\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name is null or both \\p isReadable and \\p isWriteable are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode"]
2586 pub unsafe fn VmbFeatureAccessQuery(
2587 &self,
2588 handle: VmbHandle_t,
2589 name: *const ::std::os::raw::c_char,
2590 isReadable: *mut VmbBool_t,
2591 isWriteable: *mut VmbBool_t,
2592 ) -> VmbError_t {
2593 (self
2594 .VmbFeatureAccessQuery
2595 .as_ref()
2596 .expect("Expected function, got error."))(handle, name, isReadable, isWriteable)
2597 }
2598 #[doc = " \\brief Get the value of an integer feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] value Value to get\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name or \\p value are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Integer\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently"]
2599 pub unsafe fn VmbFeatureIntGet(
2600 &self,
2601 handle: VmbHandle_t,
2602 name: *const ::std::os::raw::c_char,
2603 value: *mut VmbInt64_t,
2604 ) -> VmbError_t {
2605 (self
2606 .VmbFeatureIntGet
2607 .as_ref()
2608 .expect("Expected function, got error."))(handle, name, value)
2609 }
2610 #[doc = " \\brief Set the value of an integer feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[in] value Value to set\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorInvalidCall If called from feature callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter If \\p name is null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Integer\n\n \\retval ::VmbErrorInvalidAccess The feature is unavailable or not writable\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently\n\n \\retval ::VmbErrorInvalidValue If value is either out of bounds or not an increment of the minimum\n"]
2611 pub unsafe fn VmbFeatureIntSet(
2612 &self,
2613 handle: VmbHandle_t,
2614 name: *const ::std::os::raw::c_char,
2615 value: VmbInt64_t,
2616 ) -> VmbError_t {
2617 (self
2618 .VmbFeatureIntSet
2619 .as_ref()
2620 .expect("Expected function, got error."))(handle, name, value)
2621 }
2622 #[doc = " \\brief Query the range of an integer feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] min Minimum value to be returned. May be null.\n \\param[out] max Maximum value to be returned. May be null.\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter If \\p name is null or both \\p min and \\p max are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature name is not Integer\n\n \\retval ::VmbErrorInvalidAccess The range information is unavailable or not writable"]
2623 pub unsafe fn VmbFeatureIntRangeQuery(
2624 &self,
2625 handle: VmbHandle_t,
2626 name: *const ::std::os::raw::c_char,
2627 min: *mut VmbInt64_t,
2628 max: *mut VmbInt64_t,
2629 ) -> VmbError_t {
2630 (self
2631 .VmbFeatureIntRangeQuery
2632 .as_ref()
2633 .expect("Expected function, got error."))(handle, name, min, max)
2634 }
2635 #[doc = " \\brief Query the increment of an integer feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] value Value of the increment to get.\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter If \\p name or \\p value are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Integer\n\n \\retval ::VmbErrorInvalidAccess The information is unavailable or cannot be read"]
2636 pub unsafe fn VmbFeatureIntIncrementQuery(
2637 &self,
2638 handle: VmbHandle_t,
2639 name: *const ::std::os::raw::c_char,
2640 value: *mut VmbInt64_t,
2641 ) -> VmbError_t {
2642 (self
2643 .VmbFeatureIntIncrementQuery
2644 .as_ref()
2645 .expect("Expected function, got error."))(handle, name, value)
2646 }
2647 #[doc = " \\brief Retrieves info about the valid value set of an integer feature.\n\n Retrieves information about the set of valid values of an integer feature. If null is passed as buffer,\n only the size of the set is determined and written to bufferFilledCount; Otherwise the largest possible\n number of elements of the valid value set is copied to buffer.\n\n \\param[in] handle The handle for the entity the feature information is retrieved from\n \\param[in] name The name of the feature to retrieve the info for; if null is passed ::VmbErrorBadParameter is returned\n \\param[in] buffer The array to copy the valid values to or null if only the size of the set is requested\n \\param[in] bufferSize The size of buffer; if buffer is null, the value is ignored\n \\param[out] setSize The total number of elements in the set; the value is set, if ::VmbErrorMoreData is returned\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name is null or both \\p buffer and \\p bufferFilledCount are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of the feature is not Integer\n\n \\retval ::VmbErrorValidValueSetNotPresent The feature does not provide a valid value set\n\n \\retval ::VmbErrorMoreData Some of data was retrieved successfully, but the size of buffer is insufficient to store all elements\n\n \\retval ::VmbErrorIncomplete The module the handle refers to is in a state where it cannot complete the request\n\n \\retval ::VmbErrorOther Some other issue occurred"]
2648 pub unsafe fn VmbFeatureIntValidValueSetQuery(
2649 &self,
2650 handle: VmbHandle_t,
2651 name: *const ::std::os::raw::c_char,
2652 buffer: *mut VmbInt64_t,
2653 bufferSize: VmbUint32_t,
2654 setSize: *mut VmbUint32_t,
2655 ) -> VmbError_t {
2656 (self
2657 .VmbFeatureIntValidValueSetQuery
2658 .as_ref()
2659 .expect("Expected function, got error."))(
2660 handle, name, buffer, bufferSize, setSize
2661 )
2662 }
2663 #[doc = " \\brief Get the value of a float feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] value Value to get\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name or \\p value are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Float\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently"]
2664 pub unsafe fn VmbFeatureFloatGet(
2665 &self,
2666 handle: VmbHandle_t,
2667 name: *const ::std::os::raw::c_char,
2668 value: *mut f64,
2669 ) -> VmbError_t {
2670 (self
2671 .VmbFeatureFloatGet
2672 .as_ref()
2673 .expect("Expected function, got error."))(handle, name, value)
2674 }
2675 #[doc = " \\brief Set the value of a float feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[in] value Value to set\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from feature callback\n\n \\retval ::VmbErrorBadParameter \\p name is null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Float\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently\n\n \\retval ::VmbErrorInvalidValue If value is not within valid bounds"]
2676 pub unsafe fn VmbFeatureFloatSet(
2677 &self,
2678 handle: VmbHandle_t,
2679 name: *const ::std::os::raw::c_char,
2680 value: f64,
2681 ) -> VmbError_t {
2682 (self
2683 .VmbFeatureFloatSet
2684 .as_ref()
2685 .expect("Expected function, got error."))(handle, name, value)
2686 }
2687 #[doc = " \\brief Query the range of a float feature.\n\n Only one of the values may be queried if the other parameter is set to null,\n but if both parameters are null, an error is returned.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] min Minimum value to be returned. May be null.\n \\param[out] max Maximum value to be returned. May be null.\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorBadParameter \\p name is null or both \\p min and \\p max are null\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Float"]
2688 pub unsafe fn VmbFeatureFloatRangeQuery(
2689 &self,
2690 handle: VmbHandle_t,
2691 name: *const ::std::os::raw::c_char,
2692 min: *mut f64,
2693 max: *mut f64,
2694 ) -> VmbError_t {
2695 (self
2696 .VmbFeatureFloatRangeQuery
2697 .as_ref()
2698 .expect("Expected function, got error."))(handle, name, min, max)
2699 }
2700 #[doc = " \\brief Query the increment of a float feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] hasIncrement `true` if this float feature has an increment.\n \\param[out] value Value of the increment to get.\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorBadParameter \\p name is null or both \\p value and \\p hasIncrement are null\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Float"]
2701 pub unsafe fn VmbFeatureFloatIncrementQuery(
2702 &self,
2703 handle: VmbHandle_t,
2704 name: *const ::std::os::raw::c_char,
2705 hasIncrement: *mut VmbBool_t,
2706 value: *mut f64,
2707 ) -> VmbError_t {
2708 (self
2709 .VmbFeatureFloatIncrementQuery
2710 .as_ref()
2711 .expect("Expected function, got error."))(handle, name, hasIncrement, value)
2712 }
2713 #[doc = " \\brief Get the value of an enumeration feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] value The current enumeration value. The returned value is a\n reference to the API value\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorBadParameter \\p name or \\p value are null\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature featureName is not Enumeration\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature is not available\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode"]
2714 pub unsafe fn VmbFeatureEnumGet(
2715 &self,
2716 handle: VmbHandle_t,
2717 name: *const ::std::os::raw::c_char,
2718 value: *mut *const ::std::os::raw::c_char,
2719 ) -> VmbError_t {
2720 (self
2721 .VmbFeatureEnumGet
2722 .as_ref()
2723 .expect("Expected function, got error."))(handle, name, value)
2724 }
2725 #[doc = " \\brief Set the value of an enumeration feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[in] value Value to set\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from feature callback\n\n \\retval ::VmbErrorBadParameter If \\p name or \\p value are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Enumeration\n\n \\retval ::VmbErrorNotAvailable The feature is not available\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorInvalidValue \\p value is not a enum entry for the feature or the existing enum entry is currently not available"]
2726 pub unsafe fn VmbFeatureEnumSet(
2727 &self,
2728 handle: VmbHandle_t,
2729 name: *const ::std::os::raw::c_char,
2730 value: *const ::std::os::raw::c_char,
2731 ) -> VmbError_t {
2732 (self
2733 .VmbFeatureEnumSet
2734 .as_ref()
2735 .expect("Expected function, got error."))(handle, name, value)
2736 }
2737 #[doc = " \\brief Query the value range of an enumeration feature.\n\n All elements not filled with the names of enum entries by the function are set to null.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[out] nameArray An array of enumeration value names; may be null if \\p numFound is used for size query\n \\param[in] arrayLength Number of elements in the array\n \\param[out] numFound Number of elements found; may be null if \\p nameArray is not null\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name is null or both \\p nameArray and \\p numFound are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorNotImplemented The feature \\p name is not implemented\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Enumeration\n\n \\retval ::VmbErrorMoreData The given array length was insufficient to hold all available entries"]
2738 pub unsafe fn VmbFeatureEnumRangeQuery(
2739 &self,
2740 handle: VmbHandle_t,
2741 name: *const ::std::os::raw::c_char,
2742 nameArray: *mut *const ::std::os::raw::c_char,
2743 arrayLength: VmbUint32_t,
2744 numFound: *mut VmbUint32_t,
2745 ) -> VmbError_t {
2746 (self
2747 .VmbFeatureEnumRangeQuery
2748 .as_ref()
2749 .expect("Expected function, got error."))(
2750 handle,
2751 name,
2752 nameArray,
2753 arrayLength,
2754 numFound,
2755 )
2756 }
2757 #[doc = " \\brief Check if a certain value of an enumeration is available.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[in] value Value to check\n \\param[out] isAvailable Indicates if the given enumeration value is available\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name, \\p value or \\p isAvailable are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Enumeration\n\n \\retval ::VmbErrorNotImplemented The feature \\p name is not implemented\n\n \\retval ::VmbErrorInvalidValue There is no enum entry with string representation of \\p value for the given enum feature\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n"]
2758 pub unsafe fn VmbFeatureEnumIsAvailable(
2759 &self,
2760 handle: VmbHandle_t,
2761 name: *const ::std::os::raw::c_char,
2762 value: *const ::std::os::raw::c_char,
2763 isAvailable: *mut VmbBool_t,
2764 ) -> VmbError_t {
2765 (self
2766 .VmbFeatureEnumIsAvailable
2767 .as_ref()
2768 .expect("Expected function, got error."))(handle, name, value, isAvailable)
2769 }
2770 #[doc = " \\brief Get the integer value for a given enumeration string value.\n\n Converts a name of an enum member into an int value (\"Mono12Packed\" to 0x10C0006)\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[in] value The enumeration value to get the integer value for\n \\param[out] intVal The integer value for this enumeration entry\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter If \\p name, \\p value or \\p intVal are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound No feature with the given name was found\n\n \\retval ::VmbErrorNotImplemented The feature \\p name is not implemented\n\n \\retval ::VmbErrorInvalidValue \\p value is not the name of a enum entry for the feature\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Enumeration"]
2771 pub unsafe fn VmbFeatureEnumAsInt(
2772 &self,
2773 handle: VmbHandle_t,
2774 name: *const ::std::os::raw::c_char,
2775 value: *const ::std::os::raw::c_char,
2776 intVal: *mut VmbInt64_t,
2777 ) -> VmbError_t {
2778 (self
2779 .VmbFeatureEnumAsInt
2780 .as_ref()
2781 .expect("Expected function, got error."))(handle, name, value, intVal)
2782 }
2783 #[doc = " \\brief Get the enumeration string value for a given integer value.\n\n Converts an int value to a name of an enum member (e.g. 0x10C0006 to \"Mono12Packed\")\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the feature\n \\param[in] intValue The numeric value\n \\param[out] stringValue The string value for the numeric value\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name or \\p stringValue are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound No feature with the given name was found\n\n \\retval ::VmbErrorNotImplemented No feature \\p name is not implemented\n\n \\retval ::VmbErrorInvalidValue \\p intValue is not the int value of an enum entry\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Enumeration"]
2784 pub unsafe fn VmbFeatureEnumAsString(
2785 &self,
2786 handle: VmbHandle_t,
2787 name: *const ::std::os::raw::c_char,
2788 intValue: VmbInt64_t,
2789 stringValue: *mut *const ::std::os::raw::c_char,
2790 ) -> VmbError_t {
2791 (self
2792 .VmbFeatureEnumAsString
2793 .as_ref()
2794 .expect("Expected function, got error."))(handle, name, intValue, stringValue)
2795 }
2796 #[doc = " \\brief Get infos about an entry of an enumeration feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] featureName Name of the feature\n \\param[in] entryName Name of the enum entry of that feature\n \\param[out] featureEnumEntry Infos about that entry returned by the API\n \\param[in] sizeofFeatureEnumEntry Size of the structure\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorStructSize Size of ::VmbFeatureEnumEntry_t is not compatible with the API version\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p featureName, \\p entryName or \\p featureEnumEntry are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorNotImplemented The feature \\p name is not implemented\n\n \\retval ::VmbErrorInvalidValue There is no enum entry with a string representation of \\p entryName\n\n \\retval ::VmbErrorWrongType The type of feature featureName is not Enumeration"]
2797 pub unsafe fn VmbFeatureEnumEntryGet(
2798 &self,
2799 handle: VmbHandle_t,
2800 featureName: *const ::std::os::raw::c_char,
2801 entryName: *const ::std::os::raw::c_char,
2802 featureEnumEntry: *mut VmbFeatureEnumEntry_t,
2803 sizeofFeatureEnumEntry: VmbUint32_t,
2804 ) -> VmbError_t {
2805 (self
2806 .VmbFeatureEnumEntryGet
2807 .as_ref()
2808 .expect("Expected function, got error."))(
2809 handle,
2810 featureName,
2811 entryName,
2812 featureEnumEntry,
2813 sizeofFeatureEnumEntry,
2814 )
2815 }
2816 #[doc = " \\brief Get the value of a string feature.\n\n This function is usually called twice: once with an empty buffer to query the length\n of the string, and then again with a buffer of the correct length.\n\n The value written to \\p sizeFilled includes the terminating 0 character of the string.\n\n If a \\p buffer is provided and there its insufficient to hold all the data, the longest\n possible prefix fitting the buffer is copied to \\p buffer; the last element of \\p buffer is\n set to 0 case.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the string feature\n \\param[out] buffer String buffer to fill. May be null if \\p sizeFilled is used for size query.\n \\param[in] bufferSize Size of the input buffer\n \\param[out] sizeFilled Size actually filled. May be null if \\p buffer is not null.\n\n\n \\return An error code indicating the type of error, if any.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name is null, both \\p buffer and \\p sizeFilled are null or \\p buffer is non-null and bufferSize is 0\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not String\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently\n\n \\retval ::VmbErrorMoreData The given buffer size was too small"]
2817 pub unsafe fn VmbFeatureStringGet(
2818 &self,
2819 handle: VmbHandle_t,
2820 name: *const ::std::os::raw::c_char,
2821 buffer: *mut ::std::os::raw::c_char,
2822 bufferSize: VmbUint32_t,
2823 sizeFilled: *mut VmbUint32_t,
2824 ) -> VmbError_t {
2825 (self
2826 .VmbFeatureStringGet
2827 .as_ref()
2828 .expect("Expected function, got error."))(
2829 handle, name, buffer, bufferSize, sizeFilled
2830 )
2831 }
2832 #[doc = " \\brief Set the value of a string feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the string feature\n \\param[in] value Value to set\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from feature callback\n\n \\retval ::VmbErrorBadParameter \\p name or \\p value are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not String\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorInvalidValue If length of value exceeded the maximum length\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently"]
2833 pub unsafe fn VmbFeatureStringSet(
2834 &self,
2835 handle: VmbHandle_t,
2836 name: *const ::std::os::raw::c_char,
2837 value: *const ::std::os::raw::c_char,
2838 ) -> VmbError_t {
2839 (self
2840 .VmbFeatureStringSet
2841 .as_ref()
2842 .expect("Expected function, got error."))(handle, name, value)
2843 }
2844 #[doc = " \\brief Get the maximum length of a string feature.\n\n The length reported does not include the terminating 0 char.\n\n Note: For some features the maximum size is not fixed and may change.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the string feature\n \\param[out] maxLength Maximum length of this string feature\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name or \\p maxLength are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not String\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently"]
2845 pub unsafe fn VmbFeatureStringMaxlengthQuery(
2846 &self,
2847 handle: VmbHandle_t,
2848 name: *const ::std::os::raw::c_char,
2849 maxLength: *mut VmbUint32_t,
2850 ) -> VmbError_t {
2851 (self
2852 .VmbFeatureStringMaxlengthQuery
2853 .as_ref()
2854 .expect("Expected function, got error."))(handle, name, maxLength)
2855 }
2856 #[doc = " \\brief Get the value of a boolean feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the boolean feature\n \\param[out] value Value to be read\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name or \\p value are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound If feature is not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Boolean\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode"]
2857 pub unsafe fn VmbFeatureBoolGet(
2858 &self,
2859 handle: VmbHandle_t,
2860 name: *const ::std::os::raw::c_char,
2861 value: *mut VmbBool_t,
2862 ) -> VmbError_t {
2863 (self
2864 .VmbFeatureBoolGet
2865 .as_ref()
2866 .expect("Expected function, got error."))(handle, name, value)
2867 }
2868 #[doc = " \\brief Set the value of a boolean feature.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the boolean feature\n \\param[in] value Value to write\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name is null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound If the feature is not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Boolean\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently\n\n \\retval ::VmbErrorInvalidValue If value is not within valid bounds\n\n \\retval ::VmbErrorInvalidCall If called from feature callback"]
2869 pub unsafe fn VmbFeatureBoolSet(
2870 &self,
2871 handle: VmbHandle_t,
2872 name: *const ::std::os::raw::c_char,
2873 value: VmbBool_t,
2874 ) -> VmbError_t {
2875 (self
2876 .VmbFeatureBoolSet
2877 .as_ref()
2878 .expect("Expected function, got error."))(handle, name, value)
2879 }
2880 #[doc = " \\brief Run a feature command.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the command feature\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorInvalidCall If called from a feature callback or chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name is null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound Feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Command\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode"]
2881 pub unsafe fn VmbFeatureCommandRun(
2882 &self,
2883 handle: VmbHandle_t,
2884 name: *const ::std::os::raw::c_char,
2885 ) -> VmbError_t {
2886 (self
2887 .VmbFeatureCommandRun
2888 .as_ref()
2889 .expect("Expected function, got error."))(handle, name)
2890 }
2891 #[doc = " \\brief Check if a feature command is done.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the command feature\n \\param[out] isDone State of the command.\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorBadParameter If \\p name or \\p isDone are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound Feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Command\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently"]
2892 pub unsafe fn VmbFeatureCommandIsDone(
2893 &self,
2894 handle: VmbHandle_t,
2895 name: *const ::std::os::raw::c_char,
2896 isDone: *mut VmbBool_t,
2897 ) -> VmbError_t {
2898 (self
2899 .VmbFeatureCommandIsDone
2900 .as_ref()
2901 .expect("Expected function, got error."))(handle, name, isDone)
2902 }
2903 #[doc = " \\brief Read the memory contents of an area given by a feature name.\n\n This feature type corresponds to a top-level \"Register\" feature in GenICam.\n Data transfer is split up by the transport layer if the feature length is too large.\n You can get the size of the memory area addressed by the feature name by ::VmbFeatureRawLengthQuery().\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the raw feature\n \\param[out] buffer Buffer to fill\n \\param[in] bufferSize Size of the buffer to be filled\n \\param[out] sizeFilled Number of bytes actually filled\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p name, \\p buffer or \\p sizeFilled are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound Feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Register\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently"]
2904 pub unsafe fn VmbFeatureRawGet(
2905 &self,
2906 handle: VmbHandle_t,
2907 name: *const ::std::os::raw::c_char,
2908 buffer: *mut ::std::os::raw::c_char,
2909 bufferSize: VmbUint32_t,
2910 sizeFilled: *mut VmbUint32_t,
2911 ) -> VmbError_t {
2912 (self
2913 .VmbFeatureRawGet
2914 .as_ref()
2915 .expect("Expected function, got error."))(
2916 handle, name, buffer, bufferSize, sizeFilled
2917 )
2918 }
2919 #[doc = " \\brief Write to a memory area given by a feature name.\n\n This feature type corresponds to a first-level \"Register\" node in the XML file.\n Data transfer is split up by the transport layer if the feature length is too large.\n You can get the size of the memory area addressed by the feature name by ::VmbFeatureRawLengthQuery().\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the raw feature\n \\param[in] buffer Data buffer to use\n \\param[in] bufferSize Size of the buffer\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from feature callback or a chunk access callback\n\n \\retval ::VmbErrorBadParameter \\p name or \\p buffer are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound Feature was not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Register\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently"]
2920 pub unsafe fn VmbFeatureRawSet(
2921 &self,
2922 handle: VmbHandle_t,
2923 name: *const ::std::os::raw::c_char,
2924 buffer: *const ::std::os::raw::c_char,
2925 bufferSize: VmbUint32_t,
2926 ) -> VmbError_t {
2927 (self
2928 .VmbFeatureRawSet
2929 .as_ref()
2930 .expect("Expected function, got error."))(handle, name, buffer, bufferSize)
2931 }
2932 #[doc = " \\brief Get the length of a raw feature for memory transfers.\n\n This feature type corresponds to a first-level \"Register\" node in the XML file.\n\n \\param[in] handle Handle for an entity that exposes features\n \\param[in] name Name of the raw feature\n \\param[out] length Length of the raw feature area (in bytes)\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter If \\p name or \\p length are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound Feature not found\n\n \\retval ::VmbErrorWrongType The type of feature \\p name is not Register\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorNotImplemented The feature isn't implemented\n\n \\retval ::VmbErrorNotAvailable The feature isn't available currently"]
2933 pub unsafe fn VmbFeatureRawLengthQuery(
2934 &self,
2935 handle: VmbHandle_t,
2936 name: *const ::std::os::raw::c_char,
2937 length: *mut VmbUint32_t,
2938 ) -> VmbError_t {
2939 (self
2940 .VmbFeatureRawLengthQuery
2941 .as_ref()
2942 .expect("Expected function, got error."))(handle, name, length)
2943 }
2944 #[doc = " \\brief Register a VmbInvalidationCallback callback for feature invalidation signaling.\n\n Any feature change, either of its value or of its access state, may be tracked\n by registering an invalidation callback.\n Registering multiple callbacks for one feature invalidation event is possible because\n only the combination of handle, name, and callback is used as key. If the same\n combination of handle, name, and callback is registered a second time, the callback remains\n registered and the context is overwritten with \\p userContext.\n\n \\param[in] handle Handle for an entity that emits events\n \\param[in] name Name of the event\n \\param[in] callback Callback to be run when invalidation occurs\n \\param[in] userContext User context passed to function\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorBadParameter If \\p name or \\p callback are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound No feature with \\p name was found for the module associated with \\p handle\n\n \\retval ::VmbErrorNotImplemented The feature \\p name is not implemented\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode"]
2945 pub unsafe fn VmbFeatureInvalidationRegister(
2946 &self,
2947 handle: VmbHandle_t,
2948 name: *const ::std::os::raw::c_char,
2949 callback: VmbInvalidationCallback,
2950 userContext: *mut ::std::os::raw::c_void,
2951 ) -> VmbError_t {
2952 (self
2953 .VmbFeatureInvalidationRegister
2954 .as_ref()
2955 .expect("Expected function, got error."))(handle, name, callback, userContext)
2956 }
2957 #[doc = " \\brief Unregister a previously registered feature invalidation callback.\n\n Since multiple callbacks may be registered for a feature invalidation event,\n a combination of handle, name, and callback is needed for unregistering, too.\n\n \\param[in] handle Handle for an entity that emits events\n \\param[in] name Name of the event\n \\param[in] callback Callback to be removed\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorBadParameter If \\p name or \\p callback are null\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound No feature with \\p name was found for the module associated with \\p handle or there was no listener to unregister\n\n \\retval ::VmbErrorNotImplemented The feature \\p name is not implemented\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode"]
2958 pub unsafe fn VmbFeatureInvalidationUnregister(
2959 &self,
2960 handle: VmbHandle_t,
2961 name: *const ::std::os::raw::c_char,
2962 callback: VmbInvalidationCallback,
2963 ) -> VmbError_t {
2964 (self
2965 .VmbFeatureInvalidationUnregister
2966 .as_ref()
2967 .expect("Expected function, got error."))(handle, name, callback)
2968 }
2969 #[doc = " \\brief Get the necessary payload size for buffer allocation.\n\n Returns the payload size necessary for buffer allocation as queried from the Camera.\n If the stream module provides a PayloadSize feature, this value will be returned instead.\n If a camera handle is passed, the payload size refers to the stream with index 0.\n\n \\param[in] handle Camera or stream handle\n \\param[out] payloadSize Payload Size\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorBadParameter \\p payloadSize is null"]
2970 pub unsafe fn VmbPayloadSizeGet(
2971 &self,
2972 handle: VmbHandle_t,
2973 payloadSize: *mut VmbUint32_t,
2974 ) -> VmbError_t {
2975 (self
2976 .VmbPayloadSizeGet
2977 .as_ref()
2978 .expect("Expected function, got error."))(handle, payloadSize)
2979 }
2980 #[doc = " \\brief Announce frames to the API that may be queued for frame capturing later.\n\n Allows some preparation for frames like DMA preparation depending on the transport layer.\n The order in which the frames are announced is not taken into consideration by the API.\n If frame.buffer is null, the allocation is done by the transport layer.\n\n \\param[in] handle Camera or stream handle\n \\param[in] frame Frame buffer to announce\n \\param[in] sizeofFrame Size of the frame structure\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorStructSize The given struct size is not valid for this version of the API\n\n \\retval ::VmbErrorInvalidCall If called from a frame callback or a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given camera handle is not valid\n\n \\retval ::VmbErrorBadParameter \\p frame is null\n\n \\retval ::VmbErrorAlready The frame has already been announced\n\n \\retval ::VmbErrorBusy The underlying transport layer does not support announcing frames during acquisition\n\n \\retval ::VmbErrorMoreData The given buffer size is invalid (usually 0)"]
2981 pub unsafe fn VmbFrameAnnounce(
2982 &self,
2983 handle: VmbHandle_t,
2984 frame: *const VmbFrame_t,
2985 sizeofFrame: VmbUint32_t,
2986 ) -> VmbError_t {
2987 (self
2988 .VmbFrameAnnounce
2989 .as_ref()
2990 .expect("Expected function, got error."))(handle, frame, sizeofFrame)
2991 }
2992 #[doc = " \\brief Revoke a frame from the API.\n\n The referenced frame is removed from the pool of frames for capturing images.\n\n \\param[in] handle Handle for a camera or stream\n \\param[in] frame Frame buffer to be removed from the list of announced frames\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorInvalidCall If called from a frame callback or a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorBadParameter The given frame pointer is not valid\n\n \\retval ::VmbErrorBusy The underlying transport layer does not support revoking frames during acquisition\n\n \\retval ::VmbErrorNotFound The given frame could not be found for the stream\n\n \\retval ::VmbErrorInUse The frame is currently still in use (e.g. in a running frame callback)"]
2993 pub unsafe fn VmbFrameRevoke(
2994 &self,
2995 handle: VmbHandle_t,
2996 frame: *const VmbFrame_t,
2997 ) -> VmbError_t {
2998 (self
2999 .VmbFrameRevoke
3000 .as_ref()
3001 .expect("Expected function, got error."))(handle, frame)
3002 }
3003 #[doc = " \\brief Revoke all frames assigned to a certain stream or camera.\n\n In case of an failure some of the frames may have been revoked. To prevent this it is recommended to call\n ::VmbCaptureQueueFlush for the same handle before invoking this function.\n\n \\param[in] handle Handle for a stream or camera\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorInvalidCall If called from a frame callback or a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle \\p handle is not valid\n\n \\retval ::VmbErrorInUse One of the frames of the stream is still in use"]
3004 pub unsafe fn VmbFrameRevokeAll(&self, handle: VmbHandle_t) -> VmbError_t {
3005 (self
3006 .VmbFrameRevokeAll
3007 .as_ref()
3008 .expect("Expected function, got error."))(handle)
3009 }
3010 #[doc = " \\brief Prepare the API for incoming frames.\n\n \\param[in] handle Handle for a camera or a stream\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorInvalidCall If called from a frame callback or a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid; this includes the camera no longer being open\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorMoreData The buffer size of the announced frames is insufficient\n\n \\retval ::VmbErrorInsufficientBufferCount The operation requires more buffers to be announced; see the StreamAnnounceBufferMinimum stream feature\n\n \\retval ::VmbErrorAlready Capturing was already started"]
3011 pub unsafe fn VmbCaptureStart(&self, handle: VmbHandle_t) -> VmbError_t {
3012 (self
3013 .VmbCaptureStart
3014 .as_ref()
3015 .expect("Expected function, got error."))(handle)
3016 }
3017 #[doc = " \\brief Stop the API from being able to receive frames.\n\n Consequences of VmbCaptureEnd():\n The frame callback will not be called anymore\n\n \\note This function waits for the completion of the last callback for the current capture.\n If the callback does not return in finite time, this function may not return in finite time either.\n\n \\param[in] handle Handle for a stream or camera\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorInvalidCall If called from a frame callback or a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle \\p handle is not valid"]
3018 pub unsafe fn VmbCaptureEnd(&self, handle: VmbHandle_t) -> VmbError_t {
3019 (self
3020 .VmbCaptureEnd
3021 .as_ref()
3022 .expect("Expected function, got error."))(handle)
3023 }
3024 #[doc = " \\brief Queue frames that may be filled during frame capturing.\n\n The given frame is put into a queue that will be filled sequentially.\n The order in which the frames are filled is determined by the order in which they are queued.\n If the frame was announced with ::VmbFrameAnnounce() before, the application\n has to ensure that the frame is also revoked by calling ::VmbFrameRevoke() or\n ::VmbFrameRevokeAll() when cleaning up.\n\n \\warning \\p callback should to return in finite time. Otherwise ::VmbCaptureEnd and\n operations resulting in the stream being closed may not return.\n\n \\param[in] handle Handle of a camera or stream\n \\param[in] frame Pointer to an already announced frame\n \\param[in] callback Callback to be run when the frame is complete. Null is OK.\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorBadParameter If \\p frame is null\n\n \\retval ::VmbErrorBadHandle No stream related to \\p handle could be found\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInternalFault The buffer or bufferSize members of \\p frame have been set to null or zero respectively\n\n \\retval ::VmbErrorNotFound The frame is not a frame announced for the given stream\n\n \\retval ::VmbErrorAlready The frame is currently queued"]
3025 pub unsafe fn VmbCaptureFrameQueue(
3026 &self,
3027 handle: VmbHandle_t,
3028 frame: *const VmbFrame_t,
3029 callback: VmbFrameCallback,
3030 ) -> VmbError_t {
3031 (self
3032 .VmbCaptureFrameQueue
3033 .as_ref()
3034 .expect("Expected function, got error."))(handle, frame, callback)
3035 }
3036 #[doc = " \\brief Wait for a queued frame to be filled (or dequeued).\n\n The frame needs to be queued and not filled for the function to complete successfully.\n\n If a camera handle is passed, the first stream of the camera is used.\n\n \\param[in] handle Handle of a camera or stream\n \\param[in] frame Pointer to an already announced and queued frame\n \\param[in] timeout Timeout (in milliseconds)\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorBadParameter If \\p frame or the buffer of \\p frame are null or the the buffer size of \\p frame is 0\n\n \\retval ::VmbErrorBadHandle No stream related to \\p handle could be found\n\n \\retval ::VmbErrorNotFound The frame is not one currently queued for the stream\n\n \\retval ::VmbErrorAlready The frame has already been dequeued or VmbCaptureFrameWait has been called already for this frame\n\n \\retval ::VmbErrorInUse If the frame was queued with a frame callback\n\n \\retval ::VmbErrorTimeout Call timed out\n\n \\retval ::VmbErrorIncomplete Capture is not active when the function is called"]
3037 pub unsafe fn VmbCaptureFrameWait(
3038 &self,
3039 handle: VmbHandle_t,
3040 frame: *const VmbFrame_t,
3041 timeout: VmbUint32_t,
3042 ) -> VmbError_t {
3043 (self
3044 .VmbCaptureFrameWait
3045 .as_ref()
3046 .expect("Expected function, got error."))(handle, frame, timeout)
3047 }
3048 #[doc = " \\brief Flush the capture queue.\n\n Control of all the currently queued frames will be returned to the user,\n leaving no frames in the capture queue.\n After this call, no frame notification will occur until frames are queued again\n\n Frames need to be revoked separately, if desired.\n\n This function can only succeeds, if no capture is currently active.\n If ::VmbCaptureStart has been called for the stream, but no successful call to ::VmbCaptureEnd\n happened, the function fails with error code ::VmbErrorInUse.\n\n \\param[in] handle The handle of the camera or stream to flush.\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorBadHandle No stream related to \\p handle could be found.\n\n \\retval ::VmbErrorInUse There is currently an active capture"]
3049 pub unsafe fn VmbCaptureQueueFlush(&self, handle: VmbHandle_t) -> VmbError_t {
3050 (self
3051 .VmbCaptureQueueFlush
3052 .as_ref()
3053 .expect("Expected function, got error."))(handle)
3054 }
3055 #[doc = " \\brief List all the transport layers that are used by the API.\n\n Note: This function is usually called twice: once with an empty array to query the length\n of the list, and then again with an array of the correct length.\n\n \\param[in,out] transportLayerInfo Array of VmbTransportLayerInfo_t, allocated by the caller.\n The transport layer list is copied here. May be null.\n \\param[in] listLength Number of entries in the caller's transportLayerInfo array.\n \\param[in,out] numFound Number of transport layers found. May be more than listLength.\n \\param[in] sizeofTransportLayerInfo Size of one ::VmbTransportLayerInfo_t entry (ignored if \\p transportLayerInfo is null).\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInternalFault An internal fault occurred\n\n \\retval ::VmbErrorNotImplemented One of the transport layers does not provide the required information\n\n \\retval ::VmbErrorBadParameter \\p numFound is null\n\n \\retval ::VmbErrorStructSize The given struct size is not valid for this API version\n\n \\retval ::VmbErrorMoreData The given list length was insufficient to hold all available entries"]
3056 pub unsafe fn VmbTransportLayersList(
3057 &self,
3058 transportLayerInfo: *mut VmbTransportLayerInfo_t,
3059 listLength: VmbUint32_t,
3060 numFound: *mut VmbUint32_t,
3061 sizeofTransportLayerInfo: VmbUint32_t,
3062 ) -> VmbError_t {
3063 (self
3064 .VmbTransportLayersList
3065 .as_ref()
3066 .expect("Expected function, got error."))(
3067 transportLayerInfo,
3068 listLength,
3069 numFound,
3070 sizeofTransportLayerInfo,
3071 )
3072 }
3073 #[doc = " \\brief List all the interfaces that are currently visible to the API.\n\n Note: All the interfaces known via GenICam transport layers are listed by this\n command and filled into the provided array. Interfaces may correspond to\n adapter cards or frame grabber cards.\n This function is usually called twice: once with an empty array to query the length\n of the list, and then again with an array of the correct length.\n\n \\param[in,out] interfaceInfo Array of ::VmbInterfaceInfo_t, allocated by the caller.\n The interface list is copied here. May be null.\n\n \\param[in] listLength Number of entries in the callers interfaceInfo array\n\n \\param[in,out] numFound Number of interfaces found. Can be more than listLength\n\n \\param[in] sizeofInterfaceInfo Size of one ::VmbInterfaceInfo_t entry\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p numFound is null\n\n \\retval ::VmbErrorStructSize The given struct size is not valid for this API version\n\n \\retval ::VmbErrorMoreData The given list length was insufficient to hold all available entries"]
3074 pub unsafe fn VmbInterfacesList(
3075 &self,
3076 interfaceInfo: *mut VmbInterfaceInfo_t,
3077 listLength: VmbUint32_t,
3078 numFound: *mut VmbUint32_t,
3079 sizeofInterfaceInfo: VmbUint32_t,
3080 ) -> VmbError_t {
3081 (self
3082 .VmbInterfacesList
3083 .as_ref()
3084 .expect("Expected function, got error."))(
3085 interfaceInfo,
3086 listLength,
3087 numFound,
3088 sizeofInterfaceInfo,
3089 )
3090 }
3091 #[doc = " \\brief Read an array of bytes.\n\n \\param[in] handle Handle for an entity that allows memory access\n \\param[in] address Address to be used for this read operation\n \\param[in] bufferSize Size of the data buffer to read\n \\param[out] dataBuffer Buffer to be filled\n \\param[out] sizeComplete Size of the data actually read\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode"]
3092 pub unsafe fn VmbMemoryRead(
3093 &self,
3094 handle: VmbHandle_t,
3095 address: VmbUint64_t,
3096 bufferSize: VmbUint32_t,
3097 dataBuffer: *mut ::std::os::raw::c_char,
3098 sizeComplete: *mut VmbUint32_t,
3099 ) -> VmbError_t {
3100 (self
3101 .VmbMemoryRead
3102 .as_ref()
3103 .expect("Expected function, got error."))(
3104 handle,
3105 address,
3106 bufferSize,
3107 dataBuffer,
3108 sizeComplete,
3109 )
3110 }
3111 #[doc = " \\brief Write an array of bytes.\n\n \\param[in] handle Handle for an entity that allows memory access\n \\param[in] address Address to be used for this read operation\n \\param[in] bufferSize Size of the data buffer to write\n \\param[in] dataBuffer Data to write\n \\param[out] sizeComplete Number of bytes successfully written; if an\n error occurs this is less than bufferSize\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorMoreData Not all data were written; see sizeComplete value for the number of bytes written"]
3112 pub unsafe fn VmbMemoryWrite(
3113 &self,
3114 handle: VmbHandle_t,
3115 address: VmbUint64_t,
3116 bufferSize: VmbUint32_t,
3117 dataBuffer: *const ::std::os::raw::c_char,
3118 sizeComplete: *mut VmbUint32_t,
3119 ) -> VmbError_t {
3120 (self
3121 .VmbMemoryWrite
3122 .as_ref()
3123 .expect("Expected function, got error."))(
3124 handle,
3125 address,
3126 bufferSize,
3127 dataBuffer,
3128 sizeComplete,
3129 )
3130 }
3131 #[doc = " \\brief Write the current features related to a module to a xml file\n\n Camera must be opened beforehand and function needs corresponding handle.\n With given filename parameter path and name of XML file can be determined.\n Additionally behaviour of function can be set with providing 'persistent struct'.\n\n \\param[in] handle Handle for an entity that allows register access\n \\param[in] filePath The path to the file to save the settings to; relative paths are relative to the current working directory\n \\param[in] settings Settings struct; if null the default settings are used\n (persist features except LUT for the remote device, maximum 5 iterations, logging only errors)\n \\param[in] sizeofSettings Size of settings struct\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorBadParameter If \\p filePath is or the settings struct is invalid\n\n \\retval ::VmbErrorStructSize If sizeofSettings the struct size does not match the size of the struct expected by the API\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorNotFound The provided handle is insufficient to identify all the modules that should be saved\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorIO There was an issue writing the file."]
3132 pub unsafe fn VmbSettingsSave(
3133 &self,
3134 handle: VmbHandle_t,
3135 filePath: *const VmbFilePathChar_t,
3136 settings: *const VmbFeaturePersistSettings_t,
3137 sizeofSettings: VmbUint32_t,
3138 ) -> VmbError_t {
3139 (self
3140 .VmbSettingsSave
3141 .as_ref()
3142 .expect("Expected function, got error."))(
3143 handle, filePath, settings, sizeofSettings
3144 )
3145 }
3146 #[doc = " \\brief Load all feature values from xml file to device-related modules.\n\n The modules must be opened beforehand. If the handle is non-null it must be a valid handle other than the Vmb API handle.\n Additionally behaviour of function can be set with providing \\p settings . Note that even in case of an failure some or all of the features\n may have been set for some of the modules.\n\n The error code ::VmbErrorRetriesExceeded only indicates that the number of retries was insufficient\n to restore the features. Even if the features could not be restored for one of the modules, restoring the features is not aborted but the process\n continues for other modules, if present.\n\n \\param[in] handle Handle related to the modules to write the values to;\n may be null to indicate that modules should be identified based on the information provided in the input file\n\n \\param[in] filePath The path to the file to load the settings from; relative paths are relative to the current working directory\n \\param[in] settings Settings struct; pass null to use the default settings. If the \\p maxIterations field is 0, the number of\n iterations is determined by the value loaded from the xml file\n \\param[in] sizeofSettings Size of the settings struct\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess If no error\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback\n\n \\retval ::VmbErrorStructSize If sizeofSettings the struct size does not match the size of the struct expected by the API\n\n \\retval ::VmbErrorWrongType \\p handle is neither null nor a transport layer, interface, local device, remote device or stream handle\n\n \\retval ::VmbErrorBadHandle The given handle is not valid\n\n \\retval ::VmbErrorAmbiguous The modules to restore the settings for cannot be uniquely identified based on the information available\n\n \\retval ::VmbErrorNotFound The provided handle is insufficient to identify all the modules that should be restored\n\n \\retval ::VmbErrorRetriesExceeded Some or all of the features could not be restored with the max iterations specified\n\n \\retval ::VmbErrorInvalidAccess Operation is invalid with the current access mode\n\n \\retval ::VmbErrorBadParameter If \\p filePath is null or the settings struct is invalid\n\n \\retval ::VmbErrorIO There was an issue with reading the file."]
3147 pub unsafe fn VmbSettingsLoad(
3148 &self,
3149 handle: VmbHandle_t,
3150 filePath: *const VmbFilePathChar_t,
3151 settings: *const VmbFeaturePersistSettings_t,
3152 sizeofSettings: VmbUint32_t,
3153 ) -> VmbError_t {
3154 (self
3155 .VmbSettingsLoad
3156 .as_ref()
3157 .expect("Expected function, got error."))(
3158 handle, filePath, settings, sizeofSettings
3159 )
3160 }
3161 #[doc = " \\brief Access chunk data for a frame.\n\n This function can only succeed if the given frame has been filled by the API.\n\n \\param[in] frame A pointer to a filled frame that is announced\n \\param[in] chunkAccessCallback A callback to access the chunk data from\n \\param[in] userContext A pointer to pass to the callback\n\n\n \\return An error code indicating success or the type of error that occurred.\n\n \\retval ::VmbErrorSuccess The call was successful\n\n \\retval ::VmbErrorInvalidCall If called from a chunk access callback or a feature callback\n\n \\retval ::VmbErrorApiNotStarted ::VmbStartup() was not called before the current command\n\n \\retval ::VmbErrorBadParameter \\p frame or \\p chunkAccessCallback are null\n\n \\retval ::VmbErrorInUse The frame state does not allow for retrieval of chunk data\n (e.g. the frame could have been reenqueued before the chunk access could happen).\n\n \\retval ::VmbErrorNotFound The frame is currently not announced for a stream\n\n \\retval ::VmbErrorDeviceNotOpen If the device the frame was received from is no longer open\n\n \\retval ::VmbErrorNoChunkData \\p frame does not contain chunk data\n\n \\retval ::VmbErrorParsingChunkData The chunk data does not adhere to the expected format\n\n \\retval ::VmbErrorUserCallbackException The callback threw an exception\n\n \\retval ::VmbErrorFeaturesUnavailable The feature description for the remote device is unavailable\n\n \\retval ::VmbErrorCustom The minimum a user defined error code returned by the callback"]
3162 pub unsafe fn VmbChunkDataAccess(
3163 &self,
3164 frame: *const VmbFrame_t,
3165 chunkAccessCallback: VmbChunkAccessCallback,
3166 userContext: *mut ::std::os::raw::c_void,
3167 ) -> VmbError_t {
3168 (self
3169 .VmbChunkDataAccess
3170 .as_ref()
3171 .expect("Expected function, got error."))(
3172 frame, chunkAccessCallback, userContext
3173 )
3174 }
3175}