rustphidgets/phidget/
phidget22.rs

1/* automatically generated by rust-bindgen 0.59.2 */
2#![allow(warnings, unused)]
3pub const _STDINT_H: u32 = 1;
4pub const _FEATURES_H: u32 = 1;
5pub const _DEFAULT_SOURCE: u32 = 1;
6pub const __GLIBC_USE_ISOC2X: u32 = 0;
7pub const __USE_ISOC11: u32 = 1;
8pub const __USE_ISOC99: u32 = 1;
9pub const __USE_ISOC95: u32 = 1;
10pub const __USE_POSIX_IMPLICITLY: u32 = 1;
11pub const _POSIX_SOURCE: u32 = 1;
12pub const _POSIX_C_SOURCE: u32 = 200809;
13pub const __USE_POSIX: u32 = 1;
14pub const __USE_POSIX2: u32 = 1;
15pub const __USE_POSIX199309: u32 = 1;
16pub const __USE_POSIX199506: u32 = 1;
17pub const __USE_XOPEN2K: u32 = 1;
18pub const __USE_XOPEN2K8: u32 = 1;
19pub const _ATFILE_SOURCE: u32 = 1;
20pub const __WORDSIZE: u32 = 64;
21pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
22pub const __SYSCALL_WORDSIZE: u32 = 64;
23pub const __TIMESIZE: u32 = 64;
24pub const __USE_MISC: u32 = 1;
25pub const __USE_ATFILE: u32 = 1;
26pub const __USE_FORTIFY_LEVEL: u32 = 0;
27pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
28pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
29pub const _STDC_PREDEF_H: u32 = 1;
30pub const __STDC_IEC_559__: u32 = 1;
31pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
32pub const __STDC_ISO_10646__: u32 = 201706;
33pub const __GNU_LIBRARY__: u32 = 6;
34pub const __GLIBC__: u32 = 2;
35pub const __GLIBC_MINOR__: u32 = 34;
36pub const _SYS_CDEFS_H: u32 = 1;
37pub const __glibc_c99_flexarr_available: u32 = 1;
38pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
39pub const __HAVE_GENERIC_SELECTION: u32 = 1;
40pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
41pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
42pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
43pub const __GLIBC_USE_IEC_60559_EXT: 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 _BITS_TYPESIZES_H: u32 = 1;
49pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
50pub const __INO_T_MATCHES_INO64_T: u32 = 1;
51pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
52pub const __STATFS_MATCHES_STATFS64: u32 = 1;
53pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: 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 __GNUC_VA_LIST: u32 = 1;
97pub const _STDLIB_H: u32 = 1;
98pub const WNOHANG: u32 = 1;
99pub const WUNTRACED: u32 = 2;
100pub const WSTOPPED: u32 = 2;
101pub const WEXITED: u32 = 4;
102pub const WCONTINUED: u32 = 8;
103pub const WNOWAIT: u32 = 16777216;
104pub const __WNOTHREAD: u32 = 536870912;
105pub const __WALL: u32 = 1073741824;
106pub const __WCLONE: u32 = 2147483648;
107pub const __W_CONTINUED: u32 = 65535;
108pub const __WCOREFLAG: u32 = 128;
109pub const __HAVE_FLOAT128: u32 = 0;
110pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
111pub const __HAVE_FLOAT64X: u32 = 1;
112pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
113pub const __HAVE_FLOAT16: u32 = 0;
114pub const __HAVE_FLOAT32: u32 = 1;
115pub const __HAVE_FLOAT64: u32 = 1;
116pub const __HAVE_FLOAT32X: u32 = 1;
117pub const __HAVE_FLOAT128X: u32 = 0;
118pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
119pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
120pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
121pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
122pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
123pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
124pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
125pub const __ldiv_t_defined: u32 = 1;
126pub const __lldiv_t_defined: u32 = 1;
127pub const RAND_MAX: u32 = 2147483647;
128pub const EXIT_FAILURE: u32 = 1;
129pub const EXIT_SUCCESS: u32 = 0;
130pub const _SYS_TYPES_H: u32 = 1;
131pub const __clock_t_defined: u32 = 1;
132pub const __clockid_t_defined: u32 = 1;
133pub const __time_t_defined: u32 = 1;
134pub const __timer_t_defined: u32 = 1;
135pub const __BIT_TYPES_DEFINED__: u32 = 1;
136pub const _ENDIAN_H: u32 = 1;
137pub const _BITS_ENDIAN_H: u32 = 1;
138pub const __LITTLE_ENDIAN: u32 = 1234;
139pub const __BIG_ENDIAN: u32 = 4321;
140pub const __PDP_ENDIAN: u32 = 3412;
141pub const _BITS_ENDIANNESS_H: u32 = 1;
142pub const __BYTE_ORDER: u32 = 1234;
143pub const __FLOAT_WORD_ORDER: u32 = 1234;
144pub const LITTLE_ENDIAN: u32 = 1234;
145pub const BIG_ENDIAN: u32 = 4321;
146pub const PDP_ENDIAN: u32 = 3412;
147pub const BYTE_ORDER: u32 = 1234;
148pub const _BITS_BYTESWAP_H: u32 = 1;
149pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
150pub const _SYS_SELECT_H: u32 = 1;
151pub const __sigset_t_defined: u32 = 1;
152pub const __timeval_defined: u32 = 1;
153pub const _STRUCT_TIMESPEC: u32 = 1;
154pub const FD_SETSIZE: u32 = 1024;
155pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
156pub const _THREAD_SHARED_TYPES_H: u32 = 1;
157pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
158pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
159pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
160pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
161pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
162pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
163pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
164pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
165pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
166pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
167pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1;
168pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
169pub const __have_pthread_attr_t: u32 = 1;
170pub const _ALLOCA_H: u32 = 1;
171pub const PUNK_BOOL: u32 = 2;
172pub const PUNK_INT8: u32 = 127;
173pub const PUNK_UINT8: u32 = 255;
174pub const PUNK_INT16: u32 = 32767;
175pub const PUNK_UINT16: u32 = 65535;
176pub const PUNK_INT32: u32 = 2147483647;
177pub const PUNK_UINT32: u32 = 4294967295;
178pub const PUNK_DBL : f64 = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0 ;
179pub const PUNK_FLT: f64 = 1000000000000000000000000000000.0;
180pub const PUNK_ENUM: u32 = 2147483647;
181pub const PUNK_SIZE: i32 = -1;
182pub const PFALSE: u32 = 0;
183pub const PTRUE: u32 = 1;
184pub const PRIphid: &[u8; 2usize] = b"P\0";
185pub const PHIDGET_SERIALNUMBER_ANY: i32 = -1;
186pub const PHIDGET_HUBPORT_ANY: i32 = -1;
187pub const PHIDGET_CHANNEL_ANY: i32 = -1;
188pub const PHIDGET_TIMEOUT_INFINITE: u32 = 0;
189pub const PHIDGET_TIMEOUT_DEFAULT: u32 = 1000;
190pub const PHIDGETSERVER_AUTHREQUIRED: u32 = 1;
191pub const IR_RAWDATA_LONGSPACE: u32 = 4294967295;
192pub const IR_MAX_CODE_BIT_COUNT: u32 = 128;
193pub const IR_MAX_CODE_STR_LENGTH: u32 = 33;
194pub type __u_char = ::std::os::raw::c_uchar;
195pub type __u_short = ::std::os::raw::c_ushort;
196pub type __u_int = ::std::os::raw::c_uint;
197pub type __u_long = ::std::os::raw::c_ulong;
198pub type __int8_t = ::std::os::raw::c_schar;
199pub type __uint8_t = ::std::os::raw::c_uchar;
200pub type __int16_t = ::std::os::raw::c_short;
201pub type __uint16_t = ::std::os::raw::c_ushort;
202pub type __int32_t = ::std::os::raw::c_int;
203pub type __uint32_t = ::std::os::raw::c_uint;
204pub type __int64_t = ::std::os::raw::c_long;
205pub type __uint64_t = ::std::os::raw::c_ulong;
206pub type __int_least8_t = __int8_t;
207pub type __uint_least8_t = __uint8_t;
208pub type __int_least16_t = __int16_t;
209pub type __uint_least16_t = __uint16_t;
210pub type __int_least32_t = __int32_t;
211pub type __uint_least32_t = __uint32_t;
212pub type __int_least64_t = __int64_t;
213pub type __uint_least64_t = __uint64_t;
214pub type __quad_t = ::std::os::raw::c_long;
215pub type __u_quad_t = ::std::os::raw::c_ulong;
216pub type __intmax_t = ::std::os::raw::c_long;
217pub type __uintmax_t = ::std::os::raw::c_ulong;
218pub type __dev_t = ::std::os::raw::c_ulong;
219pub type __uid_t = ::std::os::raw::c_uint;
220pub type __gid_t = ::std::os::raw::c_uint;
221pub type __ino_t = ::std::os::raw::c_ulong;
222pub type __ino64_t = ::std::os::raw::c_ulong;
223pub type __mode_t = ::std::os::raw::c_uint;
224pub type __nlink_t = ::std::os::raw::c_ulong;
225pub type __off_t = ::std::os::raw::c_long;
226pub type __off64_t = ::std::os::raw::c_long;
227pub type __pid_t = ::std::os::raw::c_int;
228#[repr(C)]
229#[derive(Debug, Copy, Clone)]
230pub struct __fsid_t {
231    pub __val: [::std::os::raw::c_int; 2usize],
232}
233#[test]
234fn bindgen_test_layout___fsid_t() {
235    assert_eq!(
236        ::std::mem::size_of::<__fsid_t>(),
237        8usize,
238        concat!("Size of: ", stringify!(__fsid_t))
239    );
240    assert_eq!(
241        ::std::mem::align_of::<__fsid_t>(),
242        4usize,
243        concat!("Alignment of ", stringify!(__fsid_t))
244    );
245    assert_eq!(
246        unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize },
247        0usize,
248        concat!(
249            "Offset of field: ",
250            stringify!(__fsid_t),
251            "::",
252            stringify!(__val)
253        )
254    );
255}
256pub type __clock_t = ::std::os::raw::c_long;
257pub type __rlim_t = ::std::os::raw::c_ulong;
258pub type __rlim64_t = ::std::os::raw::c_ulong;
259pub type __id_t = ::std::os::raw::c_uint;
260pub type __time_t = ::std::os::raw::c_long;
261pub type __useconds_t = ::std::os::raw::c_uint;
262pub type __suseconds_t = ::std::os::raw::c_long;
263pub type __suseconds64_t = ::std::os::raw::c_long;
264pub type __daddr_t = ::std::os::raw::c_int;
265pub type __key_t = ::std::os::raw::c_int;
266pub type __clockid_t = ::std::os::raw::c_int;
267pub type __timer_t = *mut ::std::os::raw::c_void;
268pub type __blksize_t = ::std::os::raw::c_long;
269pub type __blkcnt_t = ::std::os::raw::c_long;
270pub type __blkcnt64_t = ::std::os::raw::c_long;
271pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
272pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
273pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
274pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
275pub type __fsword_t = ::std::os::raw::c_long;
276pub type __ssize_t = ::std::os::raw::c_long;
277pub type __syscall_slong_t = ::std::os::raw::c_long;
278pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
279pub type __loff_t = __off64_t;
280pub type __caddr_t = *mut ::std::os::raw::c_char;
281pub type __intptr_t = ::std::os::raw::c_long;
282pub type __socklen_t = ::std::os::raw::c_uint;
283pub type __sig_atomic_t = ::std::os::raw::c_int;
284pub type int_least8_t = __int_least8_t;
285pub type int_least16_t = __int_least16_t;
286pub type int_least32_t = __int_least32_t;
287pub type int_least64_t = __int_least64_t;
288pub type uint_least8_t = __uint_least8_t;
289pub type uint_least16_t = __uint_least16_t;
290pub type uint_least32_t = __uint_least32_t;
291pub type uint_least64_t = __uint_least64_t;
292pub type int_fast8_t = ::std::os::raw::c_schar;
293pub type int_fast16_t = ::std::os::raw::c_long;
294pub type int_fast32_t = ::std::os::raw::c_long;
295pub type int_fast64_t = ::std::os::raw::c_long;
296pub type uint_fast8_t = ::std::os::raw::c_uchar;
297pub type uint_fast16_t = ::std::os::raw::c_ulong;
298pub type uint_fast32_t = ::std::os::raw::c_ulong;
299pub type uint_fast64_t = ::std::os::raw::c_ulong;
300pub type intmax_t = __intmax_t;
301pub type uintmax_t = __uintmax_t;
302pub type va_list = __builtin_va_list;
303pub type __gnuc_va_list = __builtin_va_list;
304pub type size_t = ::std::os::raw::c_ulong;
305pub type wchar_t = ::std::os::raw::c_int;
306#[repr(C)]
307#[repr(align(16))]
308#[derive(Debug, Copy, Clone)]
309pub struct max_align_t {
310    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
311    pub __bindgen_padding_0: u64,
312    pub __clang_max_align_nonce2: u128,
313}
314#[test]
315fn bindgen_test_layout_max_align_t() {
316    assert_eq!(
317        ::std::mem::size_of::<max_align_t>(),
318        32usize,
319        concat!("Size of: ", stringify!(max_align_t))
320    );
321    assert_eq!(
322        ::std::mem::align_of::<max_align_t>(),
323        16usize,
324        concat!("Alignment of ", stringify!(max_align_t))
325    );
326    assert_eq!(
327        unsafe {
328            &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce1 as *const _ as usize
329        },
330        0usize,
331        concat!(
332            "Offset of field: ",
333            stringify!(max_align_t),
334            "::",
335            stringify!(__clang_max_align_nonce1)
336        )
337    );
338    assert_eq!(
339        unsafe {
340            &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce2 as *const _ as usize
341        },
342        16usize,
343        concat!(
344            "Offset of field: ",
345            stringify!(max_align_t),
346            "::",
347            stringify!(__clang_max_align_nonce2)
348        )
349    );
350}
351pub type _Float32 = f32;
352pub type _Float64 = f64;
353pub type _Float32x = f64;
354pub type _Float64x = u128;
355#[repr(C)]
356#[derive(Debug, Copy, Clone)]
357pub struct div_t {
358    pub quot: ::std::os::raw::c_int,
359    pub rem: ::std::os::raw::c_int,
360}
361#[test]
362fn bindgen_test_layout_div_t() {
363    assert_eq!(
364        ::std::mem::size_of::<div_t>(),
365        8usize,
366        concat!("Size of: ", stringify!(div_t))
367    );
368    assert_eq!(
369        ::std::mem::align_of::<div_t>(),
370        4usize,
371        concat!("Alignment of ", stringify!(div_t))
372    );
373    assert_eq!(
374        unsafe { &(*(::std::ptr::null::<div_t>())).quot as *const _ as usize },
375        0usize,
376        concat!(
377            "Offset of field: ",
378            stringify!(div_t),
379            "::",
380            stringify!(quot)
381        )
382    );
383    assert_eq!(
384        unsafe { &(*(::std::ptr::null::<div_t>())).rem as *const _ as usize },
385        4usize,
386        concat!(
387            "Offset of field: ",
388            stringify!(div_t),
389            "::",
390            stringify!(rem)
391        )
392    );
393}
394#[repr(C)]
395#[derive(Debug, Copy, Clone)]
396pub struct ldiv_t {
397    pub quot: ::std::os::raw::c_long,
398    pub rem: ::std::os::raw::c_long,
399}
400#[test]
401fn bindgen_test_layout_ldiv_t() {
402    assert_eq!(
403        ::std::mem::size_of::<ldiv_t>(),
404        16usize,
405        concat!("Size of: ", stringify!(ldiv_t))
406    );
407    assert_eq!(
408        ::std::mem::align_of::<ldiv_t>(),
409        8usize,
410        concat!("Alignment of ", stringify!(ldiv_t))
411    );
412    assert_eq!(
413        unsafe { &(*(::std::ptr::null::<ldiv_t>())).quot as *const _ as usize },
414        0usize,
415        concat!(
416            "Offset of field: ",
417            stringify!(ldiv_t),
418            "::",
419            stringify!(quot)
420        )
421    );
422    assert_eq!(
423        unsafe { &(*(::std::ptr::null::<ldiv_t>())).rem as *const _ as usize },
424        8usize,
425        concat!(
426            "Offset of field: ",
427            stringify!(ldiv_t),
428            "::",
429            stringify!(rem)
430        )
431    );
432}
433#[repr(C)]
434#[derive(Debug, Copy, Clone)]
435pub struct lldiv_t {
436    pub quot: ::std::os::raw::c_longlong,
437    pub rem: ::std::os::raw::c_longlong,
438}
439#[test]
440fn bindgen_test_layout_lldiv_t() {
441    assert_eq!(
442        ::std::mem::size_of::<lldiv_t>(),
443        16usize,
444        concat!("Size of: ", stringify!(lldiv_t))
445    );
446    assert_eq!(
447        ::std::mem::align_of::<lldiv_t>(),
448        8usize,
449        concat!("Alignment of ", stringify!(lldiv_t))
450    );
451    assert_eq!(
452        unsafe { &(*(::std::ptr::null::<lldiv_t>())).quot as *const _ as usize },
453        0usize,
454        concat!(
455            "Offset of field: ",
456            stringify!(lldiv_t),
457            "::",
458            stringify!(quot)
459        )
460    );
461    assert_eq!(
462        unsafe { &(*(::std::ptr::null::<lldiv_t>())).rem as *const _ as usize },
463        8usize,
464        concat!(
465            "Offset of field: ",
466            stringify!(lldiv_t),
467            "::",
468            stringify!(rem)
469        )
470    );
471}
472extern "C" {
473    pub fn __ctype_get_mb_cur_max() -> size_t;
474}
475extern "C" {
476    pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
477}
478extern "C" {
479    pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
480}
481extern "C" {
482    pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
483}
484extern "C" {
485    pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
486}
487extern "C" {
488    pub fn strtod(
489        __nptr: *const ::std::os::raw::c_char,
490        __endptr: *mut *mut ::std::os::raw::c_char,
491    ) -> f64;
492}
493extern "C" {
494    pub fn strtof(
495        __nptr: *const ::std::os::raw::c_char,
496        __endptr: *mut *mut ::std::os::raw::c_char,
497    ) -> f32;
498}
499extern "C" {
500    pub fn strtold(
501        __nptr: *const ::std::os::raw::c_char,
502        __endptr: *mut *mut ::std::os::raw::c_char,
503    ) -> u128;
504}
505extern "C" {
506    pub fn strtol(
507        __nptr: *const ::std::os::raw::c_char,
508        __endptr: *mut *mut ::std::os::raw::c_char,
509        __base: ::std::os::raw::c_int,
510    ) -> ::std::os::raw::c_long;
511}
512extern "C" {
513    pub fn strtoul(
514        __nptr: *const ::std::os::raw::c_char,
515        __endptr: *mut *mut ::std::os::raw::c_char,
516        __base: ::std::os::raw::c_int,
517    ) -> ::std::os::raw::c_ulong;
518}
519extern "C" {
520    pub fn strtoq(
521        __nptr: *const ::std::os::raw::c_char,
522        __endptr: *mut *mut ::std::os::raw::c_char,
523        __base: ::std::os::raw::c_int,
524    ) -> ::std::os::raw::c_longlong;
525}
526extern "C" {
527    pub fn strtouq(
528        __nptr: *const ::std::os::raw::c_char,
529        __endptr: *mut *mut ::std::os::raw::c_char,
530        __base: ::std::os::raw::c_int,
531    ) -> ::std::os::raw::c_ulonglong;
532}
533extern "C" {
534    pub fn strtoll(
535        __nptr: *const ::std::os::raw::c_char,
536        __endptr: *mut *mut ::std::os::raw::c_char,
537        __base: ::std::os::raw::c_int,
538    ) -> ::std::os::raw::c_longlong;
539}
540extern "C" {
541    pub fn strtoull(
542        __nptr: *const ::std::os::raw::c_char,
543        __endptr: *mut *mut ::std::os::raw::c_char,
544        __base: ::std::os::raw::c_int,
545    ) -> ::std::os::raw::c_ulonglong;
546}
547extern "C" {
548    pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
549}
550extern "C" {
551    pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
552}
553pub type u_char = __u_char;
554pub type u_short = __u_short;
555pub type u_int = __u_int;
556pub type u_long = __u_long;
557pub type quad_t = __quad_t;
558pub type u_quad_t = __u_quad_t;
559pub type fsid_t = __fsid_t;
560pub type loff_t = __loff_t;
561pub type ino_t = __ino_t;
562pub type dev_t = __dev_t;
563pub type gid_t = __gid_t;
564pub type mode_t = __mode_t;
565pub type nlink_t = __nlink_t;
566pub type uid_t = __uid_t;
567pub type off_t = __off_t;
568pub type pid_t = __pid_t;
569pub type id_t = __id_t;
570pub type ssize_t = __ssize_t;
571pub type daddr_t = __daddr_t;
572pub type caddr_t = __caddr_t;
573pub type key_t = __key_t;
574pub type clock_t = __clock_t;
575pub type clockid_t = __clockid_t;
576pub type time_t = __time_t;
577pub type timer_t = __timer_t;
578pub type ulong = ::std::os::raw::c_ulong;
579pub type ushort = ::std::os::raw::c_ushort;
580pub type uint = ::std::os::raw::c_uint;
581pub type u_int8_t = __uint8_t;
582pub type u_int16_t = __uint16_t;
583pub type u_int32_t = __uint32_t;
584pub type u_int64_t = __uint64_t;
585pub type register_t = ::std::os::raw::c_long;
586#[repr(C)]
587#[derive(Debug, Copy, Clone)]
588pub struct __sigset_t {
589    pub __val: [::std::os::raw::c_ulong; 16usize],
590}
591#[test]
592fn bindgen_test_layout___sigset_t() {
593    assert_eq!(
594        ::std::mem::size_of::<__sigset_t>(),
595        128usize,
596        concat!("Size of: ", stringify!(__sigset_t))
597    );
598    assert_eq!(
599        ::std::mem::align_of::<__sigset_t>(),
600        8usize,
601        concat!("Alignment of ", stringify!(__sigset_t))
602    );
603    assert_eq!(
604        unsafe { &(*(::std::ptr::null::<__sigset_t>())).__val as *const _ as usize },
605        0usize,
606        concat!(
607            "Offset of field: ",
608            stringify!(__sigset_t),
609            "::",
610            stringify!(__val)
611        )
612    );
613}
614pub type sigset_t = __sigset_t;
615#[repr(C)]
616#[derive(Debug, Copy, Clone)]
617pub struct timeval {
618    pub tv_sec: __time_t,
619    pub tv_usec: __suseconds_t,
620}
621#[test]
622fn bindgen_test_layout_timeval() {
623    assert_eq!(
624        ::std::mem::size_of::<timeval>(),
625        16usize,
626        concat!("Size of: ", stringify!(timeval))
627    );
628    assert_eq!(
629        ::std::mem::align_of::<timeval>(),
630        8usize,
631        concat!("Alignment of ", stringify!(timeval))
632    );
633    assert_eq!(
634        unsafe { &(*(::std::ptr::null::<timeval>())).tv_sec as *const _ as usize },
635        0usize,
636        concat!(
637            "Offset of field: ",
638            stringify!(timeval),
639            "::",
640            stringify!(tv_sec)
641        )
642    );
643    assert_eq!(
644        unsafe { &(*(::std::ptr::null::<timeval>())).tv_usec as *const _ as usize },
645        8usize,
646        concat!(
647            "Offset of field: ",
648            stringify!(timeval),
649            "::",
650            stringify!(tv_usec)
651        )
652    );
653}
654#[repr(C)]
655#[derive(Debug, Copy, Clone)]
656pub struct timespec {
657    pub tv_sec: __time_t,
658    pub tv_nsec: __syscall_slong_t,
659}
660#[test]
661fn bindgen_test_layout_timespec() {
662    assert_eq!(
663        ::std::mem::size_of::<timespec>(),
664        16usize,
665        concat!("Size of: ", stringify!(timespec))
666    );
667    assert_eq!(
668        ::std::mem::align_of::<timespec>(),
669        8usize,
670        concat!("Alignment of ", stringify!(timespec))
671    );
672    assert_eq!(
673        unsafe { &(*(::std::ptr::null::<timespec>())).tv_sec as *const _ as usize },
674        0usize,
675        concat!(
676            "Offset of field: ",
677            stringify!(timespec),
678            "::",
679            stringify!(tv_sec)
680        )
681    );
682    assert_eq!(
683        unsafe { &(*(::std::ptr::null::<timespec>())).tv_nsec as *const _ as usize },
684        8usize,
685        concat!(
686            "Offset of field: ",
687            stringify!(timespec),
688            "::",
689            stringify!(tv_nsec)
690        )
691    );
692}
693pub type suseconds_t = __suseconds_t;
694pub type __fd_mask = ::std::os::raw::c_long;
695#[repr(C)]
696#[derive(Debug, Copy, Clone)]
697pub struct fd_set {
698    pub __fds_bits: [__fd_mask; 16usize],
699}
700#[test]
701fn bindgen_test_layout_fd_set() {
702    assert_eq!(
703        ::std::mem::size_of::<fd_set>(),
704        128usize,
705        concat!("Size of: ", stringify!(fd_set))
706    );
707    assert_eq!(
708        ::std::mem::align_of::<fd_set>(),
709        8usize,
710        concat!("Alignment of ", stringify!(fd_set))
711    );
712    assert_eq!(
713        unsafe { &(*(::std::ptr::null::<fd_set>())).__fds_bits as *const _ as usize },
714        0usize,
715        concat!(
716            "Offset of field: ",
717            stringify!(fd_set),
718            "::",
719            stringify!(__fds_bits)
720        )
721    );
722}
723pub type fd_mask = __fd_mask;
724extern "C" {
725    pub fn select(
726        __nfds: ::std::os::raw::c_int,
727        __readfds: *mut fd_set,
728        __writefds: *mut fd_set,
729        __exceptfds: *mut fd_set,
730        __timeout: *mut timeval,
731    ) -> ::std::os::raw::c_int;
732}
733extern "C" {
734    pub fn pselect(
735        __nfds: ::std::os::raw::c_int,
736        __readfds: *mut fd_set,
737        __writefds: *mut fd_set,
738        __exceptfds: *mut fd_set,
739        __timeout: *const timespec,
740        __sigmask: *const __sigset_t,
741    ) -> ::std::os::raw::c_int;
742}
743pub type blksize_t = __blksize_t;
744pub type blkcnt_t = __blkcnt_t;
745pub type fsblkcnt_t = __fsblkcnt_t;
746pub type fsfilcnt_t = __fsfilcnt_t;
747#[repr(C)]
748#[derive(Debug, Copy, Clone)]
749pub struct __pthread_internal_list {
750    pub __prev: *mut __pthread_internal_list,
751    pub __next: *mut __pthread_internal_list,
752}
753#[test]
754fn bindgen_test_layout___pthread_internal_list() {
755    assert_eq!(
756        ::std::mem::size_of::<__pthread_internal_list>(),
757        16usize,
758        concat!("Size of: ", stringify!(__pthread_internal_list))
759    );
760    assert_eq!(
761        ::std::mem::align_of::<__pthread_internal_list>(),
762        8usize,
763        concat!("Alignment of ", stringify!(__pthread_internal_list))
764    );
765    assert_eq!(
766        unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__prev as *const _ as usize },
767        0usize,
768        concat!(
769            "Offset of field: ",
770            stringify!(__pthread_internal_list),
771            "::",
772            stringify!(__prev)
773        )
774    );
775    assert_eq!(
776        unsafe { &(*(::std::ptr::null::<__pthread_internal_list>())).__next as *const _ as usize },
777        8usize,
778        concat!(
779            "Offset of field: ",
780            stringify!(__pthread_internal_list),
781            "::",
782            stringify!(__next)
783        )
784    );
785}
786pub type __pthread_list_t = __pthread_internal_list;
787#[repr(C)]
788#[derive(Debug, Copy, Clone)]
789pub struct __pthread_internal_slist {
790    pub __next: *mut __pthread_internal_slist,
791}
792#[test]
793fn bindgen_test_layout___pthread_internal_slist() {
794    assert_eq!(
795        ::std::mem::size_of::<__pthread_internal_slist>(),
796        8usize,
797        concat!("Size of: ", stringify!(__pthread_internal_slist))
798    );
799    assert_eq!(
800        ::std::mem::align_of::<__pthread_internal_slist>(),
801        8usize,
802        concat!("Alignment of ", stringify!(__pthread_internal_slist))
803    );
804    assert_eq!(
805        unsafe { &(*(::std::ptr::null::<__pthread_internal_slist>())).__next as *const _ as usize },
806        0usize,
807        concat!(
808            "Offset of field: ",
809            stringify!(__pthread_internal_slist),
810            "::",
811            stringify!(__next)
812        )
813    );
814}
815pub type __pthread_slist_t = __pthread_internal_slist;
816#[repr(C)]
817#[derive(Debug, Copy, Clone)]
818pub struct __pthread_mutex_s {
819    pub __lock: ::std::os::raw::c_int,
820    pub __count: ::std::os::raw::c_uint,
821    pub __owner: ::std::os::raw::c_int,
822    pub __nusers: ::std::os::raw::c_uint,
823    pub __kind: ::std::os::raw::c_int,
824    pub __spins: ::std::os::raw::c_short,
825    pub __elision: ::std::os::raw::c_short,
826    pub __list: __pthread_list_t,
827}
828#[test]
829fn bindgen_test_layout___pthread_mutex_s() {
830    assert_eq!(
831        ::std::mem::size_of::<__pthread_mutex_s>(),
832        40usize,
833        concat!("Size of: ", stringify!(__pthread_mutex_s))
834    );
835    assert_eq!(
836        ::std::mem::align_of::<__pthread_mutex_s>(),
837        8usize,
838        concat!("Alignment of ", stringify!(__pthread_mutex_s))
839    );
840    assert_eq!(
841        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__lock as *const _ as usize },
842        0usize,
843        concat!(
844            "Offset of field: ",
845            stringify!(__pthread_mutex_s),
846            "::",
847            stringify!(__lock)
848        )
849    );
850    assert_eq!(
851        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__count as *const _ as usize },
852        4usize,
853        concat!(
854            "Offset of field: ",
855            stringify!(__pthread_mutex_s),
856            "::",
857            stringify!(__count)
858        )
859    );
860    assert_eq!(
861        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__owner as *const _ as usize },
862        8usize,
863        concat!(
864            "Offset of field: ",
865            stringify!(__pthread_mutex_s),
866            "::",
867            stringify!(__owner)
868        )
869    );
870    assert_eq!(
871        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__nusers as *const _ as usize },
872        12usize,
873        concat!(
874            "Offset of field: ",
875            stringify!(__pthread_mutex_s),
876            "::",
877            stringify!(__nusers)
878        )
879    );
880    assert_eq!(
881        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__kind as *const _ as usize },
882        16usize,
883        concat!(
884            "Offset of field: ",
885            stringify!(__pthread_mutex_s),
886            "::",
887            stringify!(__kind)
888        )
889    );
890    assert_eq!(
891        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__spins as *const _ as usize },
892        20usize,
893        concat!(
894            "Offset of field: ",
895            stringify!(__pthread_mutex_s),
896            "::",
897            stringify!(__spins)
898        )
899    );
900    assert_eq!(
901        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__elision as *const _ as usize },
902        22usize,
903        concat!(
904            "Offset of field: ",
905            stringify!(__pthread_mutex_s),
906            "::",
907            stringify!(__elision)
908        )
909    );
910    assert_eq!(
911        unsafe { &(*(::std::ptr::null::<__pthread_mutex_s>())).__list as *const _ as usize },
912        24usize,
913        concat!(
914            "Offset of field: ",
915            stringify!(__pthread_mutex_s),
916            "::",
917            stringify!(__list)
918        )
919    );
920}
921#[repr(C)]
922#[derive(Debug, Copy, Clone)]
923pub struct __pthread_rwlock_arch_t {
924    pub __readers: ::std::os::raw::c_uint,
925    pub __writers: ::std::os::raw::c_uint,
926    pub __wrphase_futex: ::std::os::raw::c_uint,
927    pub __writers_futex: ::std::os::raw::c_uint,
928    pub __pad3: ::std::os::raw::c_uint,
929    pub __pad4: ::std::os::raw::c_uint,
930    pub __cur_writer: ::std::os::raw::c_int,
931    pub __shared: ::std::os::raw::c_int,
932    pub __rwelision: ::std::os::raw::c_schar,
933    pub __pad1: [::std::os::raw::c_uchar; 7usize],
934    pub __pad2: ::std::os::raw::c_ulong,
935    pub __flags: ::std::os::raw::c_uint,
936}
937#[test]
938fn bindgen_test_layout___pthread_rwlock_arch_t() {
939    assert_eq!(
940        ::std::mem::size_of::<__pthread_rwlock_arch_t>(),
941        56usize,
942        concat!("Size of: ", stringify!(__pthread_rwlock_arch_t))
943    );
944    assert_eq!(
945        ::std::mem::align_of::<__pthread_rwlock_arch_t>(),
946        8usize,
947        concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t))
948    );
949    assert_eq!(
950        unsafe {
951            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__readers as *const _ as usize
952        },
953        0usize,
954        concat!(
955            "Offset of field: ",
956            stringify!(__pthread_rwlock_arch_t),
957            "::",
958            stringify!(__readers)
959        )
960    );
961    assert_eq!(
962        unsafe {
963            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__writers as *const _ as usize
964        },
965        4usize,
966        concat!(
967            "Offset of field: ",
968            stringify!(__pthread_rwlock_arch_t),
969            "::",
970            stringify!(__writers)
971        )
972    );
973    assert_eq!(
974        unsafe {
975            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__wrphase_futex as *const _ as usize
976        },
977        8usize,
978        concat!(
979            "Offset of field: ",
980            stringify!(__pthread_rwlock_arch_t),
981            "::",
982            stringify!(__wrphase_futex)
983        )
984    );
985    assert_eq!(
986        unsafe {
987            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__writers_futex as *const _ as usize
988        },
989        12usize,
990        concat!(
991            "Offset of field: ",
992            stringify!(__pthread_rwlock_arch_t),
993            "::",
994            stringify!(__writers_futex)
995        )
996    );
997    assert_eq!(
998        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad3 as *const _ as usize },
999        16usize,
1000        concat!(
1001            "Offset of field: ",
1002            stringify!(__pthread_rwlock_arch_t),
1003            "::",
1004            stringify!(__pad3)
1005        )
1006    );
1007    assert_eq!(
1008        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad4 as *const _ as usize },
1009        20usize,
1010        concat!(
1011            "Offset of field: ",
1012            stringify!(__pthread_rwlock_arch_t),
1013            "::",
1014            stringify!(__pad4)
1015        )
1016    );
1017    assert_eq!(
1018        unsafe {
1019            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__cur_writer as *const _ as usize
1020        },
1021        24usize,
1022        concat!(
1023            "Offset of field: ",
1024            stringify!(__pthread_rwlock_arch_t),
1025            "::",
1026            stringify!(__cur_writer)
1027        )
1028    );
1029    assert_eq!(
1030        unsafe {
1031            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__shared as *const _ as usize
1032        },
1033        28usize,
1034        concat!(
1035            "Offset of field: ",
1036            stringify!(__pthread_rwlock_arch_t),
1037            "::",
1038            stringify!(__shared)
1039        )
1040    );
1041    assert_eq!(
1042        unsafe {
1043            &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__rwelision as *const _ as usize
1044        },
1045        32usize,
1046        concat!(
1047            "Offset of field: ",
1048            stringify!(__pthread_rwlock_arch_t),
1049            "::",
1050            stringify!(__rwelision)
1051        )
1052    );
1053    assert_eq!(
1054        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad1 as *const _ as usize },
1055        33usize,
1056        concat!(
1057            "Offset of field: ",
1058            stringify!(__pthread_rwlock_arch_t),
1059            "::",
1060            stringify!(__pad1)
1061        )
1062    );
1063    assert_eq!(
1064        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__pad2 as *const _ as usize },
1065        40usize,
1066        concat!(
1067            "Offset of field: ",
1068            stringify!(__pthread_rwlock_arch_t),
1069            "::",
1070            stringify!(__pad2)
1071        )
1072    );
1073    assert_eq!(
1074        unsafe { &(*(::std::ptr::null::<__pthread_rwlock_arch_t>())).__flags as *const _ as usize },
1075        48usize,
1076        concat!(
1077            "Offset of field: ",
1078            stringify!(__pthread_rwlock_arch_t),
1079            "::",
1080            stringify!(__flags)
1081        )
1082    );
1083}
1084#[repr(C)]
1085#[derive(Copy, Clone)]
1086pub struct __pthread_cond_s {
1087    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
1088    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
1089    pub __g_refs: [::std::os::raw::c_uint; 2usize],
1090    pub __g_size: [::std::os::raw::c_uint; 2usize],
1091    pub __g1_orig_size: ::std::os::raw::c_uint,
1092    pub __wrefs: ::std::os::raw::c_uint,
1093    pub __g_signals: [::std::os::raw::c_uint; 2usize],
1094}
1095#[repr(C)]
1096#[derive(Copy, Clone)]
1097pub union __pthread_cond_s__bindgen_ty_1 {
1098    pub __wseq: ::std::os::raw::c_ulonglong,
1099    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
1100}
1101#[repr(C)]
1102#[derive(Debug, Copy, Clone)]
1103pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
1104    pub __low: ::std::os::raw::c_uint,
1105    pub __high: ::std::os::raw::c_uint,
1106}
1107#[test]
1108fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1__bindgen_ty_1() {
1109    assert_eq!(
1110        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(),
1111        8usize,
1112        concat!(
1113            "Size of: ",
1114            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1)
1115        )
1116    );
1117    assert_eq!(
1118        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>(),
1119        4usize,
1120        concat!(
1121            "Alignment of ",
1122            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1)
1123        )
1124    );
1125    assert_eq!(
1126        unsafe {
1127            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__low
1128                as *const _ as usize
1129        },
1130        0usize,
1131        concat!(
1132            "Offset of field: ",
1133            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1),
1134            "::",
1135            stringify!(__low)
1136        )
1137    );
1138    assert_eq!(
1139        unsafe {
1140            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1__bindgen_ty_1>())).__high
1141                as *const _ as usize
1142        },
1143        4usize,
1144        concat!(
1145            "Offset of field: ",
1146            stringify!(__pthread_cond_s__bindgen_ty_1__bindgen_ty_1),
1147            "::",
1148            stringify!(__high)
1149        )
1150    );
1151}
1152#[test]
1153fn bindgen_test_layout___pthread_cond_s__bindgen_ty_1() {
1154    assert_eq!(
1155        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_1>(),
1156        8usize,
1157        concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_1))
1158    );
1159    assert_eq!(
1160        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_1>(),
1161        8usize,
1162        concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_1))
1163    );
1164    assert_eq!(
1165        unsafe {
1166            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq as *const _ as usize
1167        },
1168        0usize,
1169        concat!(
1170            "Offset of field: ",
1171            stringify!(__pthread_cond_s__bindgen_ty_1),
1172            "::",
1173            stringify!(__wseq)
1174        )
1175    );
1176    assert_eq!(
1177        unsafe {
1178            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_1>())).__wseq32 as *const _ as usize
1179        },
1180        0usize,
1181        concat!(
1182            "Offset of field: ",
1183            stringify!(__pthread_cond_s__bindgen_ty_1),
1184            "::",
1185            stringify!(__wseq32)
1186        )
1187    );
1188}
1189#[repr(C)]
1190#[derive(Copy, Clone)]
1191pub union __pthread_cond_s__bindgen_ty_2 {
1192    pub __g1_start: ::std::os::raw::c_ulonglong,
1193    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
1194}
1195#[repr(C)]
1196#[derive(Debug, Copy, Clone)]
1197pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
1198    pub __low: ::std::os::raw::c_uint,
1199    pub __high: ::std::os::raw::c_uint,
1200}
1201#[test]
1202fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2__bindgen_ty_1() {
1203    assert_eq!(
1204        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(),
1205        8usize,
1206        concat!(
1207            "Size of: ",
1208            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1)
1209        )
1210    );
1211    assert_eq!(
1212        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>(),
1213        4usize,
1214        concat!(
1215            "Alignment of ",
1216            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1)
1217        )
1218    );
1219    assert_eq!(
1220        unsafe {
1221            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__low
1222                as *const _ as usize
1223        },
1224        0usize,
1225        concat!(
1226            "Offset of field: ",
1227            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1),
1228            "::",
1229            stringify!(__low)
1230        )
1231    );
1232    assert_eq!(
1233        unsafe {
1234            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2__bindgen_ty_1>())).__high
1235                as *const _ as usize
1236        },
1237        4usize,
1238        concat!(
1239            "Offset of field: ",
1240            stringify!(__pthread_cond_s__bindgen_ty_2__bindgen_ty_1),
1241            "::",
1242            stringify!(__high)
1243        )
1244    );
1245}
1246#[test]
1247fn bindgen_test_layout___pthread_cond_s__bindgen_ty_2() {
1248    assert_eq!(
1249        ::std::mem::size_of::<__pthread_cond_s__bindgen_ty_2>(),
1250        8usize,
1251        concat!("Size of: ", stringify!(__pthread_cond_s__bindgen_ty_2))
1252    );
1253    assert_eq!(
1254        ::std::mem::align_of::<__pthread_cond_s__bindgen_ty_2>(),
1255        8usize,
1256        concat!("Alignment of ", stringify!(__pthread_cond_s__bindgen_ty_2))
1257    );
1258    assert_eq!(
1259        unsafe {
1260            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start as *const _
1261                as usize
1262        },
1263        0usize,
1264        concat!(
1265            "Offset of field: ",
1266            stringify!(__pthread_cond_s__bindgen_ty_2),
1267            "::",
1268            stringify!(__g1_start)
1269        )
1270    );
1271    assert_eq!(
1272        unsafe {
1273            &(*(::std::ptr::null::<__pthread_cond_s__bindgen_ty_2>())).__g1_start32 as *const _
1274                as usize
1275        },
1276        0usize,
1277        concat!(
1278            "Offset of field: ",
1279            stringify!(__pthread_cond_s__bindgen_ty_2),
1280            "::",
1281            stringify!(__g1_start32)
1282        )
1283    );
1284}
1285#[test]
1286fn bindgen_test_layout___pthread_cond_s() {
1287    assert_eq!(
1288        ::std::mem::size_of::<__pthread_cond_s>(),
1289        48usize,
1290        concat!("Size of: ", stringify!(__pthread_cond_s))
1291    );
1292    assert_eq!(
1293        ::std::mem::align_of::<__pthread_cond_s>(),
1294        8usize,
1295        concat!("Alignment of ", stringify!(__pthread_cond_s))
1296    );
1297    assert_eq!(
1298        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g_refs as *const _ as usize },
1299        16usize,
1300        concat!(
1301            "Offset of field: ",
1302            stringify!(__pthread_cond_s),
1303            "::",
1304            stringify!(__g_refs)
1305        )
1306    );
1307    assert_eq!(
1308        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g_size as *const _ as usize },
1309        24usize,
1310        concat!(
1311            "Offset of field: ",
1312            stringify!(__pthread_cond_s),
1313            "::",
1314            stringify!(__g_size)
1315        )
1316    );
1317    assert_eq!(
1318        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g1_orig_size as *const _ as usize },
1319        32usize,
1320        concat!(
1321            "Offset of field: ",
1322            stringify!(__pthread_cond_s),
1323            "::",
1324            stringify!(__g1_orig_size)
1325        )
1326    );
1327    assert_eq!(
1328        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__wrefs as *const _ as usize },
1329        36usize,
1330        concat!(
1331            "Offset of field: ",
1332            stringify!(__pthread_cond_s),
1333            "::",
1334            stringify!(__wrefs)
1335        )
1336    );
1337    assert_eq!(
1338        unsafe { &(*(::std::ptr::null::<__pthread_cond_s>())).__g_signals as *const _ as usize },
1339        40usize,
1340        concat!(
1341            "Offset of field: ",
1342            stringify!(__pthread_cond_s),
1343            "::",
1344            stringify!(__g_signals)
1345        )
1346    );
1347}
1348pub type __tss_t = ::std::os::raw::c_uint;
1349pub type __thrd_t = ::std::os::raw::c_ulong;
1350#[repr(C)]
1351#[derive(Debug, Copy, Clone)]
1352pub struct __once_flag {
1353    pub __data: ::std::os::raw::c_int,
1354}
1355#[test]
1356fn bindgen_test_layout___once_flag() {
1357    assert_eq!(
1358        ::std::mem::size_of::<__once_flag>(),
1359        4usize,
1360        concat!("Size of: ", stringify!(__once_flag))
1361    );
1362    assert_eq!(
1363        ::std::mem::align_of::<__once_flag>(),
1364        4usize,
1365        concat!("Alignment of ", stringify!(__once_flag))
1366    );
1367    assert_eq!(
1368        unsafe { &(*(::std::ptr::null::<__once_flag>())).__data as *const _ as usize },
1369        0usize,
1370        concat!(
1371            "Offset of field: ",
1372            stringify!(__once_flag),
1373            "::",
1374            stringify!(__data)
1375        )
1376    );
1377}
1378pub type pthread_t = ::std::os::raw::c_ulong;
1379#[repr(C)]
1380#[derive(Copy, Clone)]
1381pub union pthread_mutexattr_t {
1382    pub __size: [::std::os::raw::c_char; 4usize],
1383    pub __align: ::std::os::raw::c_int,
1384}
1385#[test]
1386fn bindgen_test_layout_pthread_mutexattr_t() {
1387    assert_eq!(
1388        ::std::mem::size_of::<pthread_mutexattr_t>(),
1389        4usize,
1390        concat!("Size of: ", stringify!(pthread_mutexattr_t))
1391    );
1392    assert_eq!(
1393        ::std::mem::align_of::<pthread_mutexattr_t>(),
1394        4usize,
1395        concat!("Alignment of ", stringify!(pthread_mutexattr_t))
1396    );
1397    assert_eq!(
1398        unsafe { &(*(::std::ptr::null::<pthread_mutexattr_t>())).__size as *const _ as usize },
1399        0usize,
1400        concat!(
1401            "Offset of field: ",
1402            stringify!(pthread_mutexattr_t),
1403            "::",
1404            stringify!(__size)
1405        )
1406    );
1407    assert_eq!(
1408        unsafe { &(*(::std::ptr::null::<pthread_mutexattr_t>())).__align as *const _ as usize },
1409        0usize,
1410        concat!(
1411            "Offset of field: ",
1412            stringify!(pthread_mutexattr_t),
1413            "::",
1414            stringify!(__align)
1415        )
1416    );
1417}
1418#[repr(C)]
1419#[derive(Copy, Clone)]
1420pub union pthread_condattr_t {
1421    pub __size: [::std::os::raw::c_char; 4usize],
1422    pub __align: ::std::os::raw::c_int,
1423}
1424#[test]
1425fn bindgen_test_layout_pthread_condattr_t() {
1426    assert_eq!(
1427        ::std::mem::size_of::<pthread_condattr_t>(),
1428        4usize,
1429        concat!("Size of: ", stringify!(pthread_condattr_t))
1430    );
1431    assert_eq!(
1432        ::std::mem::align_of::<pthread_condattr_t>(),
1433        4usize,
1434        concat!("Alignment of ", stringify!(pthread_condattr_t))
1435    );
1436    assert_eq!(
1437        unsafe { &(*(::std::ptr::null::<pthread_condattr_t>())).__size as *const _ as usize },
1438        0usize,
1439        concat!(
1440            "Offset of field: ",
1441            stringify!(pthread_condattr_t),
1442            "::",
1443            stringify!(__size)
1444        )
1445    );
1446    assert_eq!(
1447        unsafe { &(*(::std::ptr::null::<pthread_condattr_t>())).__align as *const _ as usize },
1448        0usize,
1449        concat!(
1450            "Offset of field: ",
1451            stringify!(pthread_condattr_t),
1452            "::",
1453            stringify!(__align)
1454        )
1455    );
1456}
1457pub type pthread_key_t = ::std::os::raw::c_uint;
1458pub type pthread_once_t = ::std::os::raw::c_int;
1459#[repr(C)]
1460#[derive(Copy, Clone)]
1461pub union pthread_attr_t {
1462    pub __size: [::std::os::raw::c_char; 56usize],
1463    pub __align: ::std::os::raw::c_long,
1464}
1465#[test]
1466fn bindgen_test_layout_pthread_attr_t() {
1467    assert_eq!(
1468        ::std::mem::size_of::<pthread_attr_t>(),
1469        56usize,
1470        concat!("Size of: ", stringify!(pthread_attr_t))
1471    );
1472    assert_eq!(
1473        ::std::mem::align_of::<pthread_attr_t>(),
1474        8usize,
1475        concat!("Alignment of ", stringify!(pthread_attr_t))
1476    );
1477    assert_eq!(
1478        unsafe { &(*(::std::ptr::null::<pthread_attr_t>())).__size as *const _ as usize },
1479        0usize,
1480        concat!(
1481            "Offset of field: ",
1482            stringify!(pthread_attr_t),
1483            "::",
1484            stringify!(__size)
1485        )
1486    );
1487    assert_eq!(
1488        unsafe { &(*(::std::ptr::null::<pthread_attr_t>())).__align as *const _ as usize },
1489        0usize,
1490        concat!(
1491            "Offset of field: ",
1492            stringify!(pthread_attr_t),
1493            "::",
1494            stringify!(__align)
1495        )
1496    );
1497}
1498#[repr(C)]
1499#[derive(Copy, Clone)]
1500pub union pthread_mutex_t {
1501    pub __data: __pthread_mutex_s,
1502    pub __size: [::std::os::raw::c_char; 40usize],
1503    pub __align: ::std::os::raw::c_long,
1504}
1505#[test]
1506fn bindgen_test_layout_pthread_mutex_t() {
1507    assert_eq!(
1508        ::std::mem::size_of::<pthread_mutex_t>(),
1509        40usize,
1510        concat!("Size of: ", stringify!(pthread_mutex_t))
1511    );
1512    assert_eq!(
1513        ::std::mem::align_of::<pthread_mutex_t>(),
1514        8usize,
1515        concat!("Alignment of ", stringify!(pthread_mutex_t))
1516    );
1517    assert_eq!(
1518        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__data as *const _ as usize },
1519        0usize,
1520        concat!(
1521            "Offset of field: ",
1522            stringify!(pthread_mutex_t),
1523            "::",
1524            stringify!(__data)
1525        )
1526    );
1527    assert_eq!(
1528        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__size as *const _ as usize },
1529        0usize,
1530        concat!(
1531            "Offset of field: ",
1532            stringify!(pthread_mutex_t),
1533            "::",
1534            stringify!(__size)
1535        )
1536    );
1537    assert_eq!(
1538        unsafe { &(*(::std::ptr::null::<pthread_mutex_t>())).__align as *const _ as usize },
1539        0usize,
1540        concat!(
1541            "Offset of field: ",
1542            stringify!(pthread_mutex_t),
1543            "::",
1544            stringify!(__align)
1545        )
1546    );
1547}
1548#[repr(C)]
1549#[derive(Copy, Clone)]
1550pub union pthread_cond_t {
1551    pub __data: __pthread_cond_s,
1552    pub __size: [::std::os::raw::c_char; 48usize],
1553    pub __align: ::std::os::raw::c_longlong,
1554}
1555#[test]
1556fn bindgen_test_layout_pthread_cond_t() {
1557    assert_eq!(
1558        ::std::mem::size_of::<pthread_cond_t>(),
1559        48usize,
1560        concat!("Size of: ", stringify!(pthread_cond_t))
1561    );
1562    assert_eq!(
1563        ::std::mem::align_of::<pthread_cond_t>(),
1564        8usize,
1565        concat!("Alignment of ", stringify!(pthread_cond_t))
1566    );
1567    assert_eq!(
1568        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__data as *const _ as usize },
1569        0usize,
1570        concat!(
1571            "Offset of field: ",
1572            stringify!(pthread_cond_t),
1573            "::",
1574            stringify!(__data)
1575        )
1576    );
1577    assert_eq!(
1578        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__size as *const _ as usize },
1579        0usize,
1580        concat!(
1581            "Offset of field: ",
1582            stringify!(pthread_cond_t),
1583            "::",
1584            stringify!(__size)
1585        )
1586    );
1587    assert_eq!(
1588        unsafe { &(*(::std::ptr::null::<pthread_cond_t>())).__align as *const _ as usize },
1589        0usize,
1590        concat!(
1591            "Offset of field: ",
1592            stringify!(pthread_cond_t),
1593            "::",
1594            stringify!(__align)
1595        )
1596    );
1597}
1598#[repr(C)]
1599#[derive(Copy, Clone)]
1600pub union pthread_rwlock_t {
1601    pub __data: __pthread_rwlock_arch_t,
1602    pub __size: [::std::os::raw::c_char; 56usize],
1603    pub __align: ::std::os::raw::c_long,
1604}
1605#[test]
1606fn bindgen_test_layout_pthread_rwlock_t() {
1607    assert_eq!(
1608        ::std::mem::size_of::<pthread_rwlock_t>(),
1609        56usize,
1610        concat!("Size of: ", stringify!(pthread_rwlock_t))
1611    );
1612    assert_eq!(
1613        ::std::mem::align_of::<pthread_rwlock_t>(),
1614        8usize,
1615        concat!("Alignment of ", stringify!(pthread_rwlock_t))
1616    );
1617    assert_eq!(
1618        unsafe { &(*(::std::ptr::null::<pthread_rwlock_t>())).__data as *const _ as usize },
1619        0usize,
1620        concat!(
1621            "Offset of field: ",
1622            stringify!(pthread_rwlock_t),
1623            "::",
1624            stringify!(__data)
1625        )
1626    );
1627    assert_eq!(
1628        unsafe { &(*(::std::ptr::null::<pthread_rwlock_t>())).__size as *const _ as usize },
1629        0usize,
1630        concat!(
1631            "Offset of field: ",
1632            stringify!(pthread_rwlock_t),
1633            "::",
1634            stringify!(__size)
1635        )
1636    );
1637    assert_eq!(
1638        unsafe { &(*(::std::ptr::null::<pthread_rwlock_t>())).__align as *const _ as usize },
1639        0usize,
1640        concat!(
1641            "Offset of field: ",
1642            stringify!(pthread_rwlock_t),
1643            "::",
1644            stringify!(__align)
1645        )
1646    );
1647}
1648#[repr(C)]
1649#[derive(Copy, Clone)]
1650pub union pthread_rwlockattr_t {
1651    pub __size: [::std::os::raw::c_char; 8usize],
1652    pub __align: ::std::os::raw::c_long,
1653}
1654#[test]
1655fn bindgen_test_layout_pthread_rwlockattr_t() {
1656    assert_eq!(
1657        ::std::mem::size_of::<pthread_rwlockattr_t>(),
1658        8usize,
1659        concat!("Size of: ", stringify!(pthread_rwlockattr_t))
1660    );
1661    assert_eq!(
1662        ::std::mem::align_of::<pthread_rwlockattr_t>(),
1663        8usize,
1664        concat!("Alignment of ", stringify!(pthread_rwlockattr_t))
1665    );
1666    assert_eq!(
1667        unsafe { &(*(::std::ptr::null::<pthread_rwlockattr_t>())).__size as *const _ as usize },
1668        0usize,
1669        concat!(
1670            "Offset of field: ",
1671            stringify!(pthread_rwlockattr_t),
1672            "::",
1673            stringify!(__size)
1674        )
1675    );
1676    assert_eq!(
1677        unsafe { &(*(::std::ptr::null::<pthread_rwlockattr_t>())).__align as *const _ as usize },
1678        0usize,
1679        concat!(
1680            "Offset of field: ",
1681            stringify!(pthread_rwlockattr_t),
1682            "::",
1683            stringify!(__align)
1684        )
1685    );
1686}
1687pub type pthread_spinlock_t = ::std::os::raw::c_int;
1688#[repr(C)]
1689#[derive(Copy, Clone)]
1690pub union pthread_barrier_t {
1691    pub __size: [::std::os::raw::c_char; 32usize],
1692    pub __align: ::std::os::raw::c_long,
1693}
1694#[test]
1695fn bindgen_test_layout_pthread_barrier_t() {
1696    assert_eq!(
1697        ::std::mem::size_of::<pthread_barrier_t>(),
1698        32usize,
1699        concat!("Size of: ", stringify!(pthread_barrier_t))
1700    );
1701    assert_eq!(
1702        ::std::mem::align_of::<pthread_barrier_t>(),
1703        8usize,
1704        concat!("Alignment of ", stringify!(pthread_barrier_t))
1705    );
1706    assert_eq!(
1707        unsafe { &(*(::std::ptr::null::<pthread_barrier_t>())).__size as *const _ as usize },
1708        0usize,
1709        concat!(
1710            "Offset of field: ",
1711            stringify!(pthread_barrier_t),
1712            "::",
1713            stringify!(__size)
1714        )
1715    );
1716    assert_eq!(
1717        unsafe { &(*(::std::ptr::null::<pthread_barrier_t>())).__align as *const _ as usize },
1718        0usize,
1719        concat!(
1720            "Offset of field: ",
1721            stringify!(pthread_barrier_t),
1722            "::",
1723            stringify!(__align)
1724        )
1725    );
1726}
1727#[repr(C)]
1728#[derive(Copy, Clone)]
1729pub union pthread_barrierattr_t {
1730    pub __size: [::std::os::raw::c_char; 4usize],
1731    pub __align: ::std::os::raw::c_int,
1732}
1733#[test]
1734fn bindgen_test_layout_pthread_barrierattr_t() {
1735    assert_eq!(
1736        ::std::mem::size_of::<pthread_barrierattr_t>(),
1737        4usize,
1738        concat!("Size of: ", stringify!(pthread_barrierattr_t))
1739    );
1740    assert_eq!(
1741        ::std::mem::align_of::<pthread_barrierattr_t>(),
1742        4usize,
1743        concat!("Alignment of ", stringify!(pthread_barrierattr_t))
1744    );
1745    assert_eq!(
1746        unsafe { &(*(::std::ptr::null::<pthread_barrierattr_t>())).__size as *const _ as usize },
1747        0usize,
1748        concat!(
1749            "Offset of field: ",
1750            stringify!(pthread_barrierattr_t),
1751            "::",
1752            stringify!(__size)
1753        )
1754    );
1755    assert_eq!(
1756        unsafe { &(*(::std::ptr::null::<pthread_barrierattr_t>())).__align as *const _ as usize },
1757        0usize,
1758        concat!(
1759            "Offset of field: ",
1760            stringify!(pthread_barrierattr_t),
1761            "::",
1762            stringify!(__align)
1763        )
1764    );
1765}
1766extern "C" {
1767    pub fn random() -> ::std::os::raw::c_long;
1768}
1769extern "C" {
1770    pub fn srandom(__seed: ::std::os::raw::c_uint);
1771}
1772extern "C" {
1773    pub fn initstate(
1774        __seed: ::std::os::raw::c_uint,
1775        __statebuf: *mut ::std::os::raw::c_char,
1776        __statelen: size_t,
1777    ) -> *mut ::std::os::raw::c_char;
1778}
1779extern "C" {
1780    pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
1781}
1782#[repr(C)]
1783#[derive(Debug, Copy, Clone)]
1784pub struct random_data {
1785    pub fptr: *mut i32,
1786    pub rptr: *mut i32,
1787    pub state: *mut i32,
1788    pub rand_type: ::std::os::raw::c_int,
1789    pub rand_deg: ::std::os::raw::c_int,
1790    pub rand_sep: ::std::os::raw::c_int,
1791    pub end_ptr: *mut i32,
1792}
1793#[test]
1794fn bindgen_test_layout_random_data() {
1795    assert_eq!(
1796        ::std::mem::size_of::<random_data>(),
1797        48usize,
1798        concat!("Size of: ", stringify!(random_data))
1799    );
1800    assert_eq!(
1801        ::std::mem::align_of::<random_data>(),
1802        8usize,
1803        concat!("Alignment of ", stringify!(random_data))
1804    );
1805    assert_eq!(
1806        unsafe { &(*(::std::ptr::null::<random_data>())).fptr as *const _ as usize },
1807        0usize,
1808        concat!(
1809            "Offset of field: ",
1810            stringify!(random_data),
1811            "::",
1812            stringify!(fptr)
1813        )
1814    );
1815    assert_eq!(
1816        unsafe { &(*(::std::ptr::null::<random_data>())).rptr as *const _ as usize },
1817        8usize,
1818        concat!(
1819            "Offset of field: ",
1820            stringify!(random_data),
1821            "::",
1822            stringify!(rptr)
1823        )
1824    );
1825    assert_eq!(
1826        unsafe { &(*(::std::ptr::null::<random_data>())).state as *const _ as usize },
1827        16usize,
1828        concat!(
1829            "Offset of field: ",
1830            stringify!(random_data),
1831            "::",
1832            stringify!(state)
1833        )
1834    );
1835    assert_eq!(
1836        unsafe { &(*(::std::ptr::null::<random_data>())).rand_type as *const _ as usize },
1837        24usize,
1838        concat!(
1839            "Offset of field: ",
1840            stringify!(random_data),
1841            "::",
1842            stringify!(rand_type)
1843        )
1844    );
1845    assert_eq!(
1846        unsafe { &(*(::std::ptr::null::<random_data>())).rand_deg as *const _ as usize },
1847        28usize,
1848        concat!(
1849            "Offset of field: ",
1850            stringify!(random_data),
1851            "::",
1852            stringify!(rand_deg)
1853        )
1854    );
1855    assert_eq!(
1856        unsafe { &(*(::std::ptr::null::<random_data>())).rand_sep as *const _ as usize },
1857        32usize,
1858        concat!(
1859            "Offset of field: ",
1860            stringify!(random_data),
1861            "::",
1862            stringify!(rand_sep)
1863        )
1864    );
1865    assert_eq!(
1866        unsafe { &(*(::std::ptr::null::<random_data>())).end_ptr as *const _ as usize },
1867        40usize,
1868        concat!(
1869            "Offset of field: ",
1870            stringify!(random_data),
1871            "::",
1872            stringify!(end_ptr)
1873        )
1874    );
1875}
1876extern "C" {
1877    pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int;
1878}
1879extern "C" {
1880    pub fn srandom_r(
1881        __seed: ::std::os::raw::c_uint,
1882        __buf: *mut random_data,
1883    ) -> ::std::os::raw::c_int;
1884}
1885extern "C" {
1886    pub fn initstate_r(
1887        __seed: ::std::os::raw::c_uint,
1888        __statebuf: *mut ::std::os::raw::c_char,
1889        __statelen: size_t,
1890        __buf: *mut random_data,
1891    ) -> ::std::os::raw::c_int;
1892}
1893extern "C" {
1894    pub fn setstate_r(
1895        __statebuf: *mut ::std::os::raw::c_char,
1896        __buf: *mut random_data,
1897    ) -> ::std::os::raw::c_int;
1898}
1899extern "C" {
1900    pub fn rand() -> ::std::os::raw::c_int;
1901}
1902extern "C" {
1903    pub fn srand(__seed: ::std::os::raw::c_uint);
1904}
1905extern "C" {
1906    pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
1907}
1908extern "C" {
1909    pub fn drand48() -> f64;
1910}
1911extern "C" {
1912    pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
1913}
1914extern "C" {
1915    pub fn lrand48() -> ::std::os::raw::c_long;
1916}
1917extern "C" {
1918    pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
1919}
1920extern "C" {
1921    pub fn mrand48() -> ::std::os::raw::c_long;
1922}
1923extern "C" {
1924    pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
1925}
1926extern "C" {
1927    pub fn srand48(__seedval: ::std::os::raw::c_long);
1928}
1929extern "C" {
1930    pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
1931}
1932extern "C" {
1933    pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
1934}
1935#[repr(C)]
1936#[derive(Debug, Copy, Clone)]
1937pub struct drand48_data {
1938    pub __x: [::std::os::raw::c_ushort; 3usize],
1939    pub __old_x: [::std::os::raw::c_ushort; 3usize],
1940    pub __c: ::std::os::raw::c_ushort,
1941    pub __init: ::std::os::raw::c_ushort,
1942    pub __a: ::std::os::raw::c_ulonglong,
1943}
1944#[test]
1945fn bindgen_test_layout_drand48_data() {
1946    assert_eq!(
1947        ::std::mem::size_of::<drand48_data>(),
1948        24usize,
1949        concat!("Size of: ", stringify!(drand48_data))
1950    );
1951    assert_eq!(
1952        ::std::mem::align_of::<drand48_data>(),
1953        8usize,
1954        concat!("Alignment of ", stringify!(drand48_data))
1955    );
1956    assert_eq!(
1957        unsafe { &(*(::std::ptr::null::<drand48_data>())).__x as *const _ as usize },
1958        0usize,
1959        concat!(
1960            "Offset of field: ",
1961            stringify!(drand48_data),
1962            "::",
1963            stringify!(__x)
1964        )
1965    );
1966    assert_eq!(
1967        unsafe { &(*(::std::ptr::null::<drand48_data>())).__old_x as *const _ as usize },
1968        6usize,
1969        concat!(
1970            "Offset of field: ",
1971            stringify!(drand48_data),
1972            "::",
1973            stringify!(__old_x)
1974        )
1975    );
1976    assert_eq!(
1977        unsafe { &(*(::std::ptr::null::<drand48_data>())).__c as *const _ as usize },
1978        12usize,
1979        concat!(
1980            "Offset of field: ",
1981            stringify!(drand48_data),
1982            "::",
1983            stringify!(__c)
1984        )
1985    );
1986    assert_eq!(
1987        unsafe { &(*(::std::ptr::null::<drand48_data>())).__init as *const _ as usize },
1988        14usize,
1989        concat!(
1990            "Offset of field: ",
1991            stringify!(drand48_data),
1992            "::",
1993            stringify!(__init)
1994        )
1995    );
1996    assert_eq!(
1997        unsafe { &(*(::std::ptr::null::<drand48_data>())).__a as *const _ as usize },
1998        16usize,
1999        concat!(
2000            "Offset of field: ",
2001            stringify!(drand48_data),
2002            "::",
2003            stringify!(__a)
2004        )
2005    );
2006}
2007extern "C" {
2008    pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int;
2009}
2010extern "C" {
2011    pub fn erand48_r(
2012        __xsubi: *mut ::std::os::raw::c_ushort,
2013        __buffer: *mut drand48_data,
2014        __result: *mut f64,
2015    ) -> ::std::os::raw::c_int;
2016}
2017extern "C" {
2018    pub fn lrand48_r(
2019        __buffer: *mut drand48_data,
2020        __result: *mut ::std::os::raw::c_long,
2021    ) -> ::std::os::raw::c_int;
2022}
2023extern "C" {
2024    pub fn nrand48_r(
2025        __xsubi: *mut ::std::os::raw::c_ushort,
2026        __buffer: *mut drand48_data,
2027        __result: *mut ::std::os::raw::c_long,
2028    ) -> ::std::os::raw::c_int;
2029}
2030extern "C" {
2031    pub fn mrand48_r(
2032        __buffer: *mut drand48_data,
2033        __result: *mut ::std::os::raw::c_long,
2034    ) -> ::std::os::raw::c_int;
2035}
2036extern "C" {
2037    pub fn jrand48_r(
2038        __xsubi: *mut ::std::os::raw::c_ushort,
2039        __buffer: *mut drand48_data,
2040        __result: *mut ::std::os::raw::c_long,
2041    ) -> ::std::os::raw::c_int;
2042}
2043extern "C" {
2044    pub fn srand48_r(
2045        __seedval: ::std::os::raw::c_long,
2046        __buffer: *mut drand48_data,
2047    ) -> ::std::os::raw::c_int;
2048}
2049extern "C" {
2050    pub fn seed48_r(
2051        __seed16v: *mut ::std::os::raw::c_ushort,
2052        __buffer: *mut drand48_data,
2053    ) -> ::std::os::raw::c_int;
2054}
2055extern "C" {
2056    pub fn lcong48_r(
2057        __param: *mut ::std::os::raw::c_ushort,
2058        __buffer: *mut drand48_data,
2059    ) -> ::std::os::raw::c_int;
2060}
2061extern "C" {
2062    pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
2063}
2064extern "C" {
2065    pub fn calloc(
2066        __nmemb: ::std::os::raw::c_ulong,
2067        __size: ::std::os::raw::c_ulong,
2068    ) -> *mut ::std::os::raw::c_void;
2069}
2070extern "C" {
2071    pub fn realloc(
2072        __ptr: *mut ::std::os::raw::c_void,
2073        __size: ::std::os::raw::c_ulong,
2074    ) -> *mut ::std::os::raw::c_void;
2075}
2076extern "C" {
2077    pub fn free(__ptr: *mut ::std::os::raw::c_void);
2078}
2079extern "C" {
2080    pub fn reallocarray(
2081        __ptr: *mut ::std::os::raw::c_void,
2082        __nmemb: size_t,
2083        __size: size_t,
2084    ) -> *mut ::std::os::raw::c_void;
2085}
2086extern "C" {
2087    pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
2088}
2089extern "C" {
2090    pub fn valloc(__size: size_t) -> *mut ::std::os::raw::c_void;
2091}
2092extern "C" {
2093    pub fn posix_memalign(
2094        __memptr: *mut *mut ::std::os::raw::c_void,
2095        __alignment: size_t,
2096        __size: size_t,
2097    ) -> ::std::os::raw::c_int;
2098}
2099extern "C" {
2100    pub fn aligned_alloc(
2101        __alignment: ::std::os::raw::c_ulong,
2102        __size: ::std::os::raw::c_ulong,
2103    ) -> *mut ::std::os::raw::c_void;
2104}
2105extern "C" {
2106    pub fn abort();
2107}
2108extern "C" {
2109    pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
2110}
2111extern "C" {
2112    pub fn at_quick_exit(
2113        __func: ::std::option::Option<unsafe extern "C" fn()>,
2114    ) -> ::std::os::raw::c_int;
2115}
2116extern "C" {
2117    pub fn on_exit(
2118        __func: ::std::option::Option<
2119            unsafe extern "C" fn(
2120                __status: ::std::os::raw::c_int,
2121                __arg: *mut ::std::os::raw::c_void,
2122            ),
2123        >,
2124        __arg: *mut ::std::os::raw::c_void,
2125    ) -> ::std::os::raw::c_int;
2126}
2127extern "C" {
2128    pub fn exit(__status: ::std::os::raw::c_int);
2129}
2130extern "C" {
2131    pub fn quick_exit(__status: ::std::os::raw::c_int);
2132}
2133extern "C" {
2134    pub fn _Exit(__status: ::std::os::raw::c_int);
2135}
2136extern "C" {
2137    pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2138}
2139extern "C" {
2140    pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2141}
2142extern "C" {
2143    pub fn setenv(
2144        __name: *const ::std::os::raw::c_char,
2145        __value: *const ::std::os::raw::c_char,
2146        __replace: ::std::os::raw::c_int,
2147    ) -> ::std::os::raw::c_int;
2148}
2149extern "C" {
2150    pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2151}
2152extern "C" {
2153    pub fn clearenv() -> ::std::os::raw::c_int;
2154}
2155extern "C" {
2156    pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2157}
2158extern "C" {
2159    pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2160}
2161extern "C" {
2162    pub fn mkstemps(
2163        __template: *mut ::std::os::raw::c_char,
2164        __suffixlen: ::std::os::raw::c_int,
2165    ) -> ::std::os::raw::c_int;
2166}
2167extern "C" {
2168    pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
2169}
2170extern "C" {
2171    pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2172}
2173extern "C" {
2174    pub fn realpath(
2175        __name: *const ::std::os::raw::c_char,
2176        __resolved: *mut ::std::os::raw::c_char,
2177    ) -> *mut ::std::os::raw::c_char;
2178}
2179pub type __compar_fn_t = ::std::option::Option<
2180    unsafe extern "C" fn(
2181        arg1: *const ::std::os::raw::c_void,
2182        arg2: *const ::std::os::raw::c_void,
2183    ) -> ::std::os::raw::c_int,
2184>;
2185extern "C" {
2186    pub fn bsearch(
2187        __key: *const ::std::os::raw::c_void,
2188        __base: *const ::std::os::raw::c_void,
2189        __nmemb: size_t,
2190        __size: size_t,
2191        __compar: __compar_fn_t,
2192    ) -> *mut ::std::os::raw::c_void;
2193}
2194extern "C" {
2195    pub fn qsort(
2196        __base: *mut ::std::os::raw::c_void,
2197        __nmemb: size_t,
2198        __size: size_t,
2199        __compar: __compar_fn_t,
2200    );
2201}
2202extern "C" {
2203    pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2204}
2205extern "C" {
2206    pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
2207}
2208extern "C" {
2209    pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
2210}
2211extern "C" {
2212    pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t;
2213}
2214extern "C" {
2215    pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t;
2216}
2217extern "C" {
2218    pub fn lldiv(
2219        __numer: ::std::os::raw::c_longlong,
2220        __denom: ::std::os::raw::c_longlong,
2221    ) -> lldiv_t;
2222}
2223extern "C" {
2224    pub fn ecvt(
2225        __value: f64,
2226        __ndigit: ::std::os::raw::c_int,
2227        __decpt: *mut ::std::os::raw::c_int,
2228        __sign: *mut ::std::os::raw::c_int,
2229    ) -> *mut ::std::os::raw::c_char;
2230}
2231extern "C" {
2232    pub fn fcvt(
2233        __value: f64,
2234        __ndigit: ::std::os::raw::c_int,
2235        __decpt: *mut ::std::os::raw::c_int,
2236        __sign: *mut ::std::os::raw::c_int,
2237    ) -> *mut ::std::os::raw::c_char;
2238}
2239extern "C" {
2240    pub fn gcvt(
2241        __value: f64,
2242        __ndigit: ::std::os::raw::c_int,
2243        __buf: *mut ::std::os::raw::c_char,
2244    ) -> *mut ::std::os::raw::c_char;
2245}
2246extern "C" {
2247    pub fn qecvt(
2248        __value: u128,
2249        __ndigit: ::std::os::raw::c_int,
2250        __decpt: *mut ::std::os::raw::c_int,
2251        __sign: *mut ::std::os::raw::c_int,
2252    ) -> *mut ::std::os::raw::c_char;
2253}
2254extern "C" {
2255    pub fn qfcvt(
2256        __value: u128,
2257        __ndigit: ::std::os::raw::c_int,
2258        __decpt: *mut ::std::os::raw::c_int,
2259        __sign: *mut ::std::os::raw::c_int,
2260    ) -> *mut ::std::os::raw::c_char;
2261}
2262extern "C" {
2263    pub fn qgcvt(
2264        __value: u128,
2265        __ndigit: ::std::os::raw::c_int,
2266        __buf: *mut ::std::os::raw::c_char,
2267    ) -> *mut ::std::os::raw::c_char;
2268}
2269extern "C" {
2270    pub fn ecvt_r(
2271        __value: f64,
2272        __ndigit: ::std::os::raw::c_int,
2273        __decpt: *mut ::std::os::raw::c_int,
2274        __sign: *mut ::std::os::raw::c_int,
2275        __buf: *mut ::std::os::raw::c_char,
2276        __len: size_t,
2277    ) -> ::std::os::raw::c_int;
2278}
2279extern "C" {
2280    pub fn fcvt_r(
2281        __value: f64,
2282        __ndigit: ::std::os::raw::c_int,
2283        __decpt: *mut ::std::os::raw::c_int,
2284        __sign: *mut ::std::os::raw::c_int,
2285        __buf: *mut ::std::os::raw::c_char,
2286        __len: size_t,
2287    ) -> ::std::os::raw::c_int;
2288}
2289extern "C" {
2290    pub fn qecvt_r(
2291        __value: u128,
2292        __ndigit: ::std::os::raw::c_int,
2293        __decpt: *mut ::std::os::raw::c_int,
2294        __sign: *mut ::std::os::raw::c_int,
2295        __buf: *mut ::std::os::raw::c_char,
2296        __len: size_t,
2297    ) -> ::std::os::raw::c_int;
2298}
2299extern "C" {
2300    pub fn qfcvt_r(
2301        __value: u128,
2302        __ndigit: ::std::os::raw::c_int,
2303        __decpt: *mut ::std::os::raw::c_int,
2304        __sign: *mut ::std::os::raw::c_int,
2305        __buf: *mut ::std::os::raw::c_char,
2306        __len: size_t,
2307    ) -> ::std::os::raw::c_int;
2308}
2309extern "C" {
2310    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: size_t) -> ::std::os::raw::c_int;
2311}
2312extern "C" {
2313    pub fn mbtowc(
2314        __pwc: *mut wchar_t,
2315        __s: *const ::std::os::raw::c_char,
2316        __n: size_t,
2317    ) -> ::std::os::raw::c_int;
2318}
2319extern "C" {
2320    pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int;
2321}
2322extern "C" {
2323    pub fn mbstowcs(
2324        __pwcs: *mut wchar_t,
2325        __s: *const ::std::os::raw::c_char,
2326        __n: size_t,
2327    ) -> size_t;
2328}
2329extern "C" {
2330    pub fn wcstombs(
2331        __s: *mut ::std::os::raw::c_char,
2332        __pwcs: *const wchar_t,
2333        __n: size_t,
2334    ) -> size_t;
2335}
2336extern "C" {
2337    pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
2338}
2339extern "C" {
2340    pub fn getsubopt(
2341        __optionp: *mut *mut ::std::os::raw::c_char,
2342        __tokens: *const *mut ::std::os::raw::c_char,
2343        __valuep: *mut *mut ::std::os::raw::c_char,
2344    ) -> ::std::os::raw::c_int;
2345}
2346extern "C" {
2347    pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int)
2348        -> ::std::os::raw::c_int;
2349}
2350pub const Phidget_EncoderIOMode_ENCODER_IO_MODE_PUSH_PULL: Phidget_EncoderIOMode = 1;
2351pub const Phidget_EncoderIOMode_ENCODER_IO_MODE_LINE_DRIVER_2K2: Phidget_EncoderIOMode = 2;
2352pub const Phidget_EncoderIOMode_ENCODER_IO_MODE_LINE_DRIVER_10K: Phidget_EncoderIOMode = 3;
2353pub const Phidget_EncoderIOMode_ENCODER_IO_MODE_OPEN_COLLECTOR_2K2: Phidget_EncoderIOMode = 4;
2354pub const Phidget_EncoderIOMode_ENCODER_IO_MODE_OPEN_COLLECTOR_10K: Phidget_EncoderIOMode = 5;
2355pub type Phidget_EncoderIOMode = ::std::os::raw::c_uint;
2356pub const PhidgetReturnCode_EPHIDGET_OK: PhidgetReturnCode = 0;
2357pub const PhidgetReturnCode_EPHIDGET_PERM: PhidgetReturnCode = 1;
2358pub const PhidgetReturnCode_EPHIDGET_NOENT: PhidgetReturnCode = 2;
2359pub const PhidgetReturnCode_EPHIDGET_TIMEOUT: PhidgetReturnCode = 3;
2360pub const PhidgetReturnCode_EPHIDGET_KEEPALIVE: PhidgetReturnCode = 58;
2361pub const PhidgetReturnCode_EPHIDGET_INTERRUPTED: PhidgetReturnCode = 4;
2362pub const PhidgetReturnCode_EPHIDGET_IO: PhidgetReturnCode = 5;
2363pub const PhidgetReturnCode_EPHIDGET_NOMEMORY: PhidgetReturnCode = 6;
2364pub const PhidgetReturnCode_EPHIDGET_ACCESS: PhidgetReturnCode = 7;
2365pub const PhidgetReturnCode_EPHIDGET_FAULT: PhidgetReturnCode = 8;
2366pub const PhidgetReturnCode_EPHIDGET_BUSY: PhidgetReturnCode = 9;
2367pub const PhidgetReturnCode_EPHIDGET_EXIST: PhidgetReturnCode = 10;
2368pub const PhidgetReturnCode_EPHIDGET_NOTDIR: PhidgetReturnCode = 11;
2369pub const PhidgetReturnCode_EPHIDGET_ISDIR: PhidgetReturnCode = 12;
2370pub const PhidgetReturnCode_EPHIDGET_INVALID: PhidgetReturnCode = 13;
2371pub const PhidgetReturnCode_EPHIDGET_NFILE: PhidgetReturnCode = 14;
2372pub const PhidgetReturnCode_EPHIDGET_MFILE: PhidgetReturnCode = 15;
2373pub const PhidgetReturnCode_EPHIDGET_NOSPC: PhidgetReturnCode = 16;
2374pub const PhidgetReturnCode_EPHIDGET_FBIG: PhidgetReturnCode = 17;
2375pub const PhidgetReturnCode_EPHIDGET_ROFS: PhidgetReturnCode = 18;
2376pub const PhidgetReturnCode_EPHIDGET_RO: PhidgetReturnCode = 19;
2377pub const PhidgetReturnCode_EPHIDGET_UNSUPPORTED: PhidgetReturnCode = 20;
2378pub const PhidgetReturnCode_EPHIDGET_INVALIDARG: PhidgetReturnCode = 21;
2379pub const PhidgetReturnCode_EPHIDGET_AGAIN: PhidgetReturnCode = 22;
2380pub const PhidgetReturnCode_EPHIDGET_NOTEMPTY: PhidgetReturnCode = 26;
2381pub const PhidgetReturnCode_EPHIDGET_UNEXPECTED: PhidgetReturnCode = 28;
2382pub const PhidgetReturnCode_EPHIDGET_DUPLICATE: PhidgetReturnCode = 27;
2383pub const PhidgetReturnCode_EPHIDGET_BADPASSWORD: PhidgetReturnCode = 37;
2384pub const PhidgetReturnCode_EPHIDGET_NETUNAVAIL: PhidgetReturnCode = 45;
2385pub const PhidgetReturnCode_EPHIDGET_CONNREF: PhidgetReturnCode = 35;
2386pub const PhidgetReturnCode_EPHIDGET_CONNRESET: PhidgetReturnCode = 46;
2387pub const PhidgetReturnCode_EPHIDGET_HOSTUNREACH: PhidgetReturnCode = 48;
2388pub const PhidgetReturnCode_EPHIDGET_NODEV: PhidgetReturnCode = 40;
2389pub const PhidgetReturnCode_EPHIDGET_WRONGDEVICE: PhidgetReturnCode = 50;
2390pub const PhidgetReturnCode_EPHIDGET_PIPE: PhidgetReturnCode = 41;
2391pub const PhidgetReturnCode_EPHIDGET_RESOLV: PhidgetReturnCode = 44;
2392pub const PhidgetReturnCode_EPHIDGET_UNKNOWNVAL: PhidgetReturnCode = 51;
2393pub const PhidgetReturnCode_EPHIDGET_NOTATTACHED: PhidgetReturnCode = 52;
2394pub const PhidgetReturnCode_EPHIDGET_INVALIDPACKET: PhidgetReturnCode = 53;
2395pub const PhidgetReturnCode_EPHIDGET_2BIG: PhidgetReturnCode = 54;
2396pub const PhidgetReturnCode_EPHIDGET_BADVERSION: PhidgetReturnCode = 55;
2397pub const PhidgetReturnCode_EPHIDGET_CLOSED: PhidgetReturnCode = 56;
2398pub const PhidgetReturnCode_EPHIDGET_NOTCONFIGURED: PhidgetReturnCode = 57;
2399pub const PhidgetReturnCode_EPHIDGET_EOF: PhidgetReturnCode = 31;
2400pub const PhidgetReturnCode_EPHIDGET_FAILSAFE: PhidgetReturnCode = 59;
2401pub type PhidgetReturnCode = ::std::os::raw::c_uint;
2402pub const Phidget_ErrorEventCode_EEPHIDGET_BADVERSION: Phidget_ErrorEventCode = 1;
2403pub const Phidget_ErrorEventCode_EEPHIDGET_BUSY: Phidget_ErrorEventCode = 2;
2404pub const Phidget_ErrorEventCode_EEPHIDGET_NETWORK: Phidget_ErrorEventCode = 3;
2405pub const Phidget_ErrorEventCode_EEPHIDGET_DISPATCH: Phidget_ErrorEventCode = 4;
2406pub const Phidget_ErrorEventCode_EEPHIDGET_FAILURE: Phidget_ErrorEventCode = 5;
2407pub const Phidget_ErrorEventCode_EEPHIDGET_OK: Phidget_ErrorEventCode = 4096;
2408pub const Phidget_ErrorEventCode_EEPHIDGET_OVERRUN: Phidget_ErrorEventCode = 4098;
2409pub const Phidget_ErrorEventCode_EEPHIDGET_PACKETLOST: Phidget_ErrorEventCode = 4099;
2410pub const Phidget_ErrorEventCode_EEPHIDGET_WRAP: Phidget_ErrorEventCode = 4100;
2411pub const Phidget_ErrorEventCode_EEPHIDGET_OVERTEMP: Phidget_ErrorEventCode = 4101;
2412pub const Phidget_ErrorEventCode_EEPHIDGET_OVERCURRENT: Phidget_ErrorEventCode = 4102;
2413pub const Phidget_ErrorEventCode_EEPHIDGET_OUTOFRANGE: Phidget_ErrorEventCode = 4103;
2414pub const Phidget_ErrorEventCode_EEPHIDGET_BADPOWER: Phidget_ErrorEventCode = 4104;
2415pub const Phidget_ErrorEventCode_EEPHIDGET_SATURATION: Phidget_ErrorEventCode = 4105;
2416pub const Phidget_ErrorEventCode_EEPHIDGET_OVERVOLTAGE: Phidget_ErrorEventCode = 4107;
2417pub const Phidget_ErrorEventCode_EEPHIDGET_FAILSAFE: Phidget_ErrorEventCode = 4108;
2418pub const Phidget_ErrorEventCode_EEPHIDGET_VOLTAGEERROR: Phidget_ErrorEventCode = 4109;
2419pub const Phidget_ErrorEventCode_EEPHIDGET_ENERGYDUMP: Phidget_ErrorEventCode = 4110;
2420pub const Phidget_ErrorEventCode_EEPHIDGET_MOTORSTALL: Phidget_ErrorEventCode = 4111;
2421pub const Phidget_ErrorEventCode_EEPHIDGET_INVALIDSTATE: Phidget_ErrorEventCode = 4112;
2422pub const Phidget_ErrorEventCode_EEPHIDGET_BADCONNECTION: Phidget_ErrorEventCode = 4113;
2423pub type Phidget_ErrorEventCode = ::std::os::raw::c_uint;
2424pub const Phidget_DeviceID_PHIDID_NOTHING: Phidget_DeviceID = 0;
2425pub const Phidget_DeviceID_PHIDID_INTERFACEKIT_4_8_8: Phidget_DeviceID = 1;
2426pub const Phidget_DeviceID_PHIDID_1000: Phidget_DeviceID = 2;
2427pub const Phidget_DeviceID_PHIDID_1001: Phidget_DeviceID = 3;
2428pub const Phidget_DeviceID_PHIDID_1002: Phidget_DeviceID = 4;
2429pub const Phidget_DeviceID_PHIDID_1008: Phidget_DeviceID = 5;
2430pub const Phidget_DeviceID_PHIDID_1010_1013_1018_1019: Phidget_DeviceID = 6;
2431pub const Phidget_DeviceID_PHIDID_1011: Phidget_DeviceID = 7;
2432pub const Phidget_DeviceID_PHIDID_1012: Phidget_DeviceID = 8;
2433pub const Phidget_DeviceID_PHIDID_1014: Phidget_DeviceID = 9;
2434pub const Phidget_DeviceID_PHIDID_1015: Phidget_DeviceID = 10;
2435pub const Phidget_DeviceID_PHIDID_1016: Phidget_DeviceID = 11;
2436pub const Phidget_DeviceID_PHIDID_1017: Phidget_DeviceID = 12;
2437pub const Phidget_DeviceID_PHIDID_1023: Phidget_DeviceID = 13;
2438pub const Phidget_DeviceID_PHIDID_1024: Phidget_DeviceID = 14;
2439pub const Phidget_DeviceID_PHIDID_1030: Phidget_DeviceID = 15;
2440pub const Phidget_DeviceID_PHIDID_1031: Phidget_DeviceID = 16;
2441pub const Phidget_DeviceID_PHIDID_1032: Phidget_DeviceID = 17;
2442pub const Phidget_DeviceID_PHIDID_1040: Phidget_DeviceID = 18;
2443pub const Phidget_DeviceID_PHIDID_1041: Phidget_DeviceID = 19;
2444pub const Phidget_DeviceID_PHIDID_1042: Phidget_DeviceID = 20;
2445pub const Phidget_DeviceID_PHIDID_1043: Phidget_DeviceID = 21;
2446pub const Phidget_DeviceID_PHIDID_1044: Phidget_DeviceID = 22;
2447pub const Phidget_DeviceID_PHIDID_1045: Phidget_DeviceID = 23;
2448pub const Phidget_DeviceID_PHIDID_1046: Phidget_DeviceID = 24;
2449pub const Phidget_DeviceID_PHIDID_1047: Phidget_DeviceID = 25;
2450pub const Phidget_DeviceID_PHIDID_1048: Phidget_DeviceID = 26;
2451pub const Phidget_DeviceID_PHIDID_1049: Phidget_DeviceID = 27;
2452pub const Phidget_DeviceID_PHIDID_1051: Phidget_DeviceID = 28;
2453pub const Phidget_DeviceID_PHIDID_1052: Phidget_DeviceID = 29;
2454pub const Phidget_DeviceID_PHIDID_1053: Phidget_DeviceID = 30;
2455pub const Phidget_DeviceID_PHIDID_1054: Phidget_DeviceID = 31;
2456pub const Phidget_DeviceID_PHIDID_1055: Phidget_DeviceID = 32;
2457pub const Phidget_DeviceID_PHIDID_1056: Phidget_DeviceID = 33;
2458pub const Phidget_DeviceID_PHIDID_1057: Phidget_DeviceID = 34;
2459pub const Phidget_DeviceID_PHIDID_1058: Phidget_DeviceID = 35;
2460pub const Phidget_DeviceID_PHIDID_1059: Phidget_DeviceID = 36;
2461pub const Phidget_DeviceID_PHIDID_1060: Phidget_DeviceID = 37;
2462pub const Phidget_DeviceID_PHIDID_1061: Phidget_DeviceID = 38;
2463pub const Phidget_DeviceID_PHIDID_1062: Phidget_DeviceID = 39;
2464pub const Phidget_DeviceID_PHIDID_1063: Phidget_DeviceID = 40;
2465pub const Phidget_DeviceID_PHIDID_1064: Phidget_DeviceID = 41;
2466pub const Phidget_DeviceID_PHIDID_1065: Phidget_DeviceID = 42;
2467pub const Phidget_DeviceID_PHIDID_1066: Phidget_DeviceID = 43;
2468pub const Phidget_DeviceID_PHIDID_1067: Phidget_DeviceID = 44;
2469pub const Phidget_DeviceID_PHIDID_1202_1203: Phidget_DeviceID = 45;
2470pub const Phidget_DeviceID_PHIDID_1204: Phidget_DeviceID = 46;
2471pub const Phidget_DeviceID_PHIDID_1215__1218: Phidget_DeviceID = 47;
2472pub const Phidget_DeviceID_PHIDID_1219__1222: Phidget_DeviceID = 48;
2473pub const Phidget_DeviceID_PHIDID_ADP1000: Phidget_DeviceID = 49;
2474pub const Phidget_DeviceID_PHIDID_ADP1001: Phidget_DeviceID = 50;
2475pub const Phidget_DeviceID_PHIDID_DAQ1000: Phidget_DeviceID = 51;
2476pub const Phidget_DeviceID_PHIDID_DAQ1200: Phidget_DeviceID = 52;
2477pub const Phidget_DeviceID_PHIDID_DAQ1300: Phidget_DeviceID = 53;
2478pub const Phidget_DeviceID_PHIDID_DAQ1301: Phidget_DeviceID = 54;
2479pub const Phidget_DeviceID_PHIDID_DAQ1400: Phidget_DeviceID = 55;
2480pub const Phidget_DeviceID_PHIDID_DAQ1500: Phidget_DeviceID = 56;
2481pub const Phidget_DeviceID_PHIDID_DCC1000: Phidget_DeviceID = 57;
2482pub const Phidget_DeviceID_PHIDID_DST1000: Phidget_DeviceID = 58;
2483pub const Phidget_DeviceID_PHIDID_DST1200: Phidget_DeviceID = 59;
2484pub const Phidget_DeviceID_PHIDID_ENC1000: Phidget_DeviceID = 60;
2485pub const Phidget_DeviceID_PHIDID_HIN1000: Phidget_DeviceID = 61;
2486pub const Phidget_DeviceID_PHIDID_HIN1001: Phidget_DeviceID = 62;
2487pub const Phidget_DeviceID_PHIDID_HIN1100: Phidget_DeviceID = 63;
2488pub const Phidget_DeviceID_PHIDID_HUB0000: Phidget_DeviceID = 64;
2489pub const Phidget_DeviceID_PHIDID_MESHHUB: Phidget_DeviceID = 65;
2490pub const Phidget_DeviceID_PHIDID_MESHDONGLE: Phidget_DeviceID = 66;
2491pub const Phidget_DeviceID_PHIDID_HUB0004: Phidget_DeviceID = 67;
2492pub const Phidget_DeviceID_PHIDID_LIGHTNINGHUB: Phidget_DeviceID = 68;
2493pub const Phidget_DeviceID_PHIDID_HUM1000: Phidget_DeviceID = 69;
2494pub const Phidget_DeviceID_PHIDID_LCD1100: Phidget_DeviceID = 70;
2495pub const Phidget_DeviceID_PHIDID_LED1000: Phidget_DeviceID = 71;
2496pub const Phidget_DeviceID_PHIDID_LUX1000: Phidget_DeviceID = 72;
2497pub const Phidget_DeviceID_PHIDID_MOT1100: Phidget_DeviceID = 73;
2498pub const Phidget_DeviceID_PHIDID_MOT1101: Phidget_DeviceID = 74;
2499pub const Phidget_DeviceID_PHIDID_OUT1000: Phidget_DeviceID = 75;
2500pub const Phidget_DeviceID_PHIDID_OUT1001: Phidget_DeviceID = 76;
2501pub const Phidget_DeviceID_PHIDID_OUT1002: Phidget_DeviceID = 77;
2502pub const Phidget_DeviceID_PHIDID_OUT1100: Phidget_DeviceID = 78;
2503pub const Phidget_DeviceID_PHIDID_PRE1000: Phidget_DeviceID = 79;
2504pub const Phidget_DeviceID_PHIDID_RCC1000: Phidget_DeviceID = 80;
2505pub const Phidget_DeviceID_PHIDID_REL1000: Phidget_DeviceID = 81;
2506pub const Phidget_DeviceID_PHIDID_REL1100: Phidget_DeviceID = 82;
2507pub const Phidget_DeviceID_PHIDID_REL1101: Phidget_DeviceID = 83;
2508pub const Phidget_DeviceID_PHIDID_SAF1000: Phidget_DeviceID = 84;
2509pub const Phidget_DeviceID_PHIDID_SND1000: Phidget_DeviceID = 85;
2510pub const Phidget_DeviceID_PHIDID_STC1000: Phidget_DeviceID = 86;
2511pub const Phidget_DeviceID_PHIDID_TMP1000: Phidget_DeviceID = 87;
2512pub const Phidget_DeviceID_PHIDID_TMP1100: Phidget_DeviceID = 88;
2513pub const Phidget_DeviceID_PHIDID_TMP1101: Phidget_DeviceID = 89;
2514pub const Phidget_DeviceID_PHIDID_TMP1200: Phidget_DeviceID = 90;
2515pub const Phidget_DeviceID_PHIDID_TMP1300: Phidget_DeviceID = 91;
2516pub const Phidget_DeviceID_PHIDID_VCP1000: Phidget_DeviceID = 92;
2517pub const Phidget_DeviceID_PHIDID_VCP1001: Phidget_DeviceID = 93;
2518pub const Phidget_DeviceID_PHIDID_VCP1002: Phidget_DeviceID = 94;
2519pub const Phidget_DeviceID_PHIDID_DIGITALINPUT_PORT: Phidget_DeviceID = 95;
2520pub const Phidget_DeviceID_PHIDID_DIGITALOUTPUT_PORT: Phidget_DeviceID = 96;
2521pub const Phidget_DeviceID_PHIDID_VOLTAGEINPUT_PORT: Phidget_DeviceID = 97;
2522pub const Phidget_DeviceID_PHIDID_VOLTAGERATIOINPUT_PORT: Phidget_DeviceID = 98;
2523pub const Phidget_DeviceID_PHIDID_GENERICUSB: Phidget_DeviceID = 99;
2524pub const Phidget_DeviceID_PHIDID_GENERICVINT: Phidget_DeviceID = 100;
2525pub const Phidget_DeviceID_PHIDID_FIRMWARE_UPGRADE_USB: Phidget_DeviceID = 101;
2526pub const Phidget_DeviceID_PHIDID_FIRMWARE_UPGRADE_STM32F0: Phidget_DeviceID = 102;
2527pub const Phidget_DeviceID_PHIDID_FIRMWARE_UPGRADE_STM8S: Phidget_DeviceID = 103;
2528pub const Phidget_DeviceID_PHIDID_FIRMWARE_UPGRADE_SPI: Phidget_DeviceID = 104;
2529pub const Phidget_DeviceID_PHIDID_VCP1100: Phidget_DeviceID = 105;
2530pub const Phidget_DeviceID_PHIDID_DCC1100: Phidget_DeviceID = 108;
2531pub const Phidget_DeviceID_PHIDID_HIN1101: Phidget_DeviceID = 109;
2532pub const Phidget_DeviceID_PHIDID_DCC1001: Phidget_DeviceID = 110;
2533pub const Phidget_DeviceID_PHIDID_DICTIONARY: Phidget_DeviceID = 111;
2534pub const Phidget_DeviceID_PHIDID_STC1001: Phidget_DeviceID = 115;
2535pub const Phidget_DeviceID_PHIDID_USBSWITCH: Phidget_DeviceID = 116;
2536pub const Phidget_DeviceID_PHIDID_DCC1002: Phidget_DeviceID = 117;
2537pub const Phidget_DeviceID_PHIDID_STC1002: Phidget_DeviceID = 118;
2538pub const Phidget_DeviceID_PHIDID_STC1003: Phidget_DeviceID = 119;
2539pub const Phidget_DeviceID_PHIDID_DCC1003: Phidget_DeviceID = 120;
2540pub const Phidget_DeviceID_PHIDID_DST1001: Phidget_DeviceID = 121;
2541pub const Phidget_DeviceID_PHIDID_CURLOOP: Phidget_DeviceID = 122;
2542pub const Phidget_DeviceID_PHIDID_HUB5000: Phidget_DeviceID = 123;
2543pub const Phidget_DeviceID_PHIDID_RCC0004: Phidget_DeviceID = 124;
2544pub const Phidget_DeviceID_PHIDID_UNKNOWN: Phidget_DeviceID = 125;
2545pub const Phidget_DeviceID_PHIDID_DST1002: Phidget_DeviceID = 126;
2546pub const Phidget_DeviceID_PHIDID_HUM1001: Phidget_DeviceID = 127;
2547pub const Phidget_DeviceID_PHIDID_DCC1004: Phidget_DeviceID = 128;
2548pub const Phidget_DeviceID_PHIDID_DCC1005: Phidget_DeviceID = 129;
2549pub const Phidget_DeviceID_PHIDID_MOT0108: Phidget_DeviceID = 131;
2550pub const Phidget_DeviceID_PHIDID_ADP_RS232: Phidget_DeviceID = 132;
2551pub const Phidget_DeviceID_PHIDID_ADP_RS485_422: Phidget_DeviceID = 133;
2552pub const Phidget_DeviceID_PHIDID_ADP_SERIAL: Phidget_DeviceID = 134;
2553pub const Phidget_DeviceID_PHIDID_HUM1100: Phidget_DeviceID = 136;
2554pub const Phidget_DeviceID_PHIDID_MOT1102: Phidget_DeviceID = 137;
2555pub const Phidget_DeviceID_PHIDID_VINTACCEL: Phidget_DeviceID = 138;
2556pub const Phidget_DeviceID_PHIDID_TP_DIAGNOSER: Phidget_DeviceID = 139;
2557pub const Phidget_DeviceID_PHIDID_MOT0109: Phidget_DeviceID = 140;
2558pub const Phidget_DeviceID_PHIDID_MOT0110: Phidget_DeviceID = 141;
2559pub const Phidget_DeviceID_PHIDID_HUB0001: Phidget_DeviceID = 142;
2560pub const Phidget_DeviceID_PHIDID_FIRMWARE_UPGRADE_STM32G0: Phidget_DeviceID = 143;
2561pub type Phidget_DeviceID = ::std::os::raw::c_uint;
2562pub const Phidget_LogLevel_PHIDGET_LOG_CRITICAL: Phidget_LogLevel = 1;
2563pub const Phidget_LogLevel_PHIDGET_LOG_ERROR: Phidget_LogLevel = 2;
2564pub const Phidget_LogLevel_PHIDGET_LOG_WARNING: Phidget_LogLevel = 3;
2565pub const Phidget_LogLevel_PHIDGET_LOG_INFO: Phidget_LogLevel = 4;
2566pub const Phidget_LogLevel_PHIDGET_LOG_DEBUG: Phidget_LogLevel = 5;
2567pub const Phidget_LogLevel_PHIDGET_LOG_VERBOSE: Phidget_LogLevel = 6;
2568pub type Phidget_LogLevel = ::std::os::raw::c_uint;
2569pub const Phidget_DeviceClass_PHIDCLASS_NOTHING: Phidget_DeviceClass = 0;
2570pub const Phidget_DeviceClass_PHIDCLASS_ACCELEROMETER: Phidget_DeviceClass = 1;
2571pub const Phidget_DeviceClass_PHIDCLASS_ADVANCEDSERVO: Phidget_DeviceClass = 2;
2572pub const Phidget_DeviceClass_PHIDCLASS_ANALOG: Phidget_DeviceClass = 3;
2573pub const Phidget_DeviceClass_PHIDCLASS_BRIDGE: Phidget_DeviceClass = 4;
2574pub const Phidget_DeviceClass_PHIDCLASS_ENCODER: Phidget_DeviceClass = 5;
2575pub const Phidget_DeviceClass_PHIDCLASS_FREQUENCYCOUNTER: Phidget_DeviceClass = 6;
2576pub const Phidget_DeviceClass_PHIDCLASS_GPS: Phidget_DeviceClass = 7;
2577pub const Phidget_DeviceClass_PHIDCLASS_HUB: Phidget_DeviceClass = 8;
2578pub const Phidget_DeviceClass_PHIDCLASS_INTERFACEKIT: Phidget_DeviceClass = 9;
2579pub const Phidget_DeviceClass_PHIDCLASS_IR: Phidget_DeviceClass = 10;
2580pub const Phidget_DeviceClass_PHIDCLASS_LED: Phidget_DeviceClass = 11;
2581pub const Phidget_DeviceClass_PHIDCLASS_MESHDONGLE: Phidget_DeviceClass = 12;
2582pub const Phidget_DeviceClass_PHIDCLASS_MOTORCONTROL: Phidget_DeviceClass = 13;
2583pub const Phidget_DeviceClass_PHIDCLASS_PHSENSOR: Phidget_DeviceClass = 14;
2584pub const Phidget_DeviceClass_PHIDCLASS_RFID: Phidget_DeviceClass = 15;
2585pub const Phidget_DeviceClass_PHIDCLASS_SERVO: Phidget_DeviceClass = 16;
2586pub const Phidget_DeviceClass_PHIDCLASS_SPATIAL: Phidget_DeviceClass = 17;
2587pub const Phidget_DeviceClass_PHIDCLASS_STEPPER: Phidget_DeviceClass = 18;
2588pub const Phidget_DeviceClass_PHIDCLASS_TEMPERATURESENSOR: Phidget_DeviceClass = 19;
2589pub const Phidget_DeviceClass_PHIDCLASS_TEXTLCD: Phidget_DeviceClass = 20;
2590pub const Phidget_DeviceClass_PHIDCLASS_VINT: Phidget_DeviceClass = 21;
2591pub const Phidget_DeviceClass_PHIDCLASS_GENERIC: Phidget_DeviceClass = 22;
2592pub const Phidget_DeviceClass_PHIDCLASS_FIRMWAREUPGRADE: Phidget_DeviceClass = 23;
2593pub const Phidget_DeviceClass_PHIDCLASS_DICTIONARY: Phidget_DeviceClass = 24;
2594pub const Phidget_DeviceClass_PHIDCLASS_DATAADAPTER: Phidget_DeviceClass = 25;
2595pub type Phidget_DeviceClass = ::std::os::raw::c_uint;
2596pub const Phidget_ChannelClass_PHIDCHCLASS_NOTHING: Phidget_ChannelClass = 0;
2597pub const Phidget_ChannelClass_PHIDCHCLASS_ACCELEROMETER: Phidget_ChannelClass = 1;
2598pub const Phidget_ChannelClass_PHIDCHCLASS_CURRENTINPUT: Phidget_ChannelClass = 2;
2599pub const Phidget_ChannelClass_PHIDCHCLASS_DATAADAPTER: Phidget_ChannelClass = 3;
2600pub const Phidget_ChannelClass_PHIDCHCLASS_DCMOTOR: Phidget_ChannelClass = 4;
2601pub const Phidget_ChannelClass_PHIDCHCLASS_DIGITALINPUT: Phidget_ChannelClass = 5;
2602pub const Phidget_ChannelClass_PHIDCHCLASS_DIGITALOUTPUT: Phidget_ChannelClass = 6;
2603pub const Phidget_ChannelClass_PHIDCHCLASS_DISTANCESENSOR: Phidget_ChannelClass = 7;
2604pub const Phidget_ChannelClass_PHIDCHCLASS_ENCODER: Phidget_ChannelClass = 8;
2605pub const Phidget_ChannelClass_PHIDCHCLASS_FREQUENCYCOUNTER: Phidget_ChannelClass = 9;
2606pub const Phidget_ChannelClass_PHIDCHCLASS_GPS: Phidget_ChannelClass = 10;
2607pub const Phidget_ChannelClass_PHIDCHCLASS_LCD: Phidget_ChannelClass = 11;
2608pub const Phidget_ChannelClass_PHIDCHCLASS_GYROSCOPE: Phidget_ChannelClass = 12;
2609pub const Phidget_ChannelClass_PHIDCHCLASS_HUB: Phidget_ChannelClass = 13;
2610pub const Phidget_ChannelClass_PHIDCHCLASS_CAPACITIVETOUCH: Phidget_ChannelClass = 14;
2611pub const Phidget_ChannelClass_PHIDCHCLASS_HUMIDITYSENSOR: Phidget_ChannelClass = 15;
2612pub const Phidget_ChannelClass_PHIDCHCLASS_IR: Phidget_ChannelClass = 16;
2613pub const Phidget_ChannelClass_PHIDCHCLASS_LIGHTSENSOR: Phidget_ChannelClass = 17;
2614pub const Phidget_ChannelClass_PHIDCHCLASS_MAGNETOMETER: Phidget_ChannelClass = 18;
2615pub const Phidget_ChannelClass_PHIDCHCLASS_MESHDONGLE: Phidget_ChannelClass = 19;
2616pub const Phidget_ChannelClass_PHIDCHCLASS_PHSENSOR: Phidget_ChannelClass = 37;
2617pub const Phidget_ChannelClass_PHIDCHCLASS_POWERGUARD: Phidget_ChannelClass = 20;
2618pub const Phidget_ChannelClass_PHIDCHCLASS_PRESSURESENSOR: Phidget_ChannelClass = 21;
2619pub const Phidget_ChannelClass_PHIDCHCLASS_RCSERVO: Phidget_ChannelClass = 22;
2620pub const Phidget_ChannelClass_PHIDCHCLASS_RESISTANCEINPUT: Phidget_ChannelClass = 23;
2621pub const Phidget_ChannelClass_PHIDCHCLASS_RFID: Phidget_ChannelClass = 24;
2622pub const Phidget_ChannelClass_PHIDCHCLASS_SOUNDSENSOR: Phidget_ChannelClass = 25;
2623pub const Phidget_ChannelClass_PHIDCHCLASS_SPATIAL: Phidget_ChannelClass = 26;
2624pub const Phidget_ChannelClass_PHIDCHCLASS_STEPPER: Phidget_ChannelClass = 27;
2625pub const Phidget_ChannelClass_PHIDCHCLASS_TEMPERATURESENSOR: Phidget_ChannelClass = 28;
2626pub const Phidget_ChannelClass_PHIDCHCLASS_VOLTAGEINPUT: Phidget_ChannelClass = 29;
2627pub const Phidget_ChannelClass_PHIDCHCLASS_VOLTAGEOUTPUT: Phidget_ChannelClass = 30;
2628pub const Phidget_ChannelClass_PHIDCHCLASS_VOLTAGERATIOINPUT: Phidget_ChannelClass = 31;
2629pub const Phidget_ChannelClass_PHIDCHCLASS_FIRMWAREUPGRADE: Phidget_ChannelClass = 32;
2630pub const Phidget_ChannelClass_PHIDCHCLASS_GENERIC: Phidget_ChannelClass = 33;
2631pub const Phidget_ChannelClass_PHIDCHCLASS_MOTORPOSITIONCONTROLLER: Phidget_ChannelClass = 34;
2632pub const Phidget_ChannelClass_PHIDCHCLASS_BLDCMOTOR: Phidget_ChannelClass = 35;
2633pub const Phidget_ChannelClass_PHIDCHCLASS_DICTIONARY: Phidget_ChannelClass = 36;
2634pub const Phidget_ChannelClass_PHIDCHCLASS_CURRENTOUTPUT: Phidget_ChannelClass = 38;
2635pub type Phidget_ChannelClass = ::std::os::raw::c_uint;
2636pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_NONE: Phidget_ChannelSubclass = 1;
2637pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_DIGITALOUTPUT_DUTY_CYCLE: Phidget_ChannelSubclass =
2638    16;
2639pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_DIGITALOUTPUT_LED_DRIVER: Phidget_ChannelSubclass =
2640    17;
2641pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_TEMPERATURESENSOR_RTD: Phidget_ChannelSubclass =
2642    32;
2643pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_TEMPERATURESENSOR_THERMOCOUPLE:
2644    Phidget_ChannelSubclass = 33;
2645pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_VOLTAGEINPUT_SENSOR_PORT: Phidget_ChannelSubclass =
2646    48;
2647pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_VOLTAGERATIOINPUT_SENSOR_PORT:
2648    Phidget_ChannelSubclass = 64;
2649pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_VOLTAGERATIOINPUT_BRIDGE: Phidget_ChannelSubclass =
2650    65;
2651pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_LCD_GRAPHIC: Phidget_ChannelSubclass = 80;
2652pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_LCD_TEXT: Phidget_ChannelSubclass = 81;
2653pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_ENCODER_MODE_SETTABLE: Phidget_ChannelSubclass =
2654    96;
2655pub const Phidget_ChannelSubclass_PHIDCHSUBCLASS_SPATIAL_AHRS: Phidget_ChannelSubclass = 112;
2656pub type Phidget_ChannelSubclass = ::std::os::raw::c_uint;
2657pub const Phidget_MeshMode_MESHMODE_ROUTER: Phidget_MeshMode = 1;
2658pub const Phidget_MeshMode_MESHMODE_SLEEPYENDDEVICE: Phidget_MeshMode = 2;
2659pub type Phidget_MeshMode = ::std::os::raw::c_uint;
2660pub const Phidget_PowerSupply_POWER_SUPPLY_OFF: Phidget_PowerSupply = 1;
2661pub const Phidget_PowerSupply_POWER_SUPPLY_12V: Phidget_PowerSupply = 2;
2662pub const Phidget_PowerSupply_POWER_SUPPLY_24V: Phidget_PowerSupply = 3;
2663pub type Phidget_PowerSupply = ::std::os::raw::c_uint;
2664pub const Phidget_RTDWireSetup_RTD_WIRE_SETUP_2WIRE: Phidget_RTDWireSetup = 1;
2665pub const Phidget_RTDWireSetup_RTD_WIRE_SETUP_3WIRE: Phidget_RTDWireSetup = 2;
2666pub const Phidget_RTDWireSetup_RTD_WIRE_SETUP_4WIRE: Phidget_RTDWireSetup = 3;
2667pub type Phidget_RTDWireSetup = ::std::os::raw::c_uint;
2668pub const Phidget_InputMode_INPUT_MODE_NPN: Phidget_InputMode = 1;
2669pub const Phidget_InputMode_INPUT_MODE_PNP: Phidget_InputMode = 2;
2670pub type Phidget_InputMode = ::std::os::raw::c_uint;
2671pub const Phidget_FanMode_FAN_MODE_OFF: Phidget_FanMode = 1;
2672pub const Phidget_FanMode_FAN_MODE_ON: Phidget_FanMode = 2;
2673pub const Phidget_FanMode_FAN_MODE_AUTO: Phidget_FanMode = 3;
2674pub type Phidget_FanMode = ::std::os::raw::c_uint;
2675pub const Phidget_SpatialPrecision_SPATIAL_PRECISION_HYBRID: Phidget_SpatialPrecision = 0;
2676pub const Phidget_SpatialPrecision_SPATIAL_PRECISION_HIGH: Phidget_SpatialPrecision = 1;
2677pub const Phidget_SpatialPrecision_SPATIAL_PRECISION_LOW: Phidget_SpatialPrecision = 2;
2678pub type Phidget_SpatialPrecision = ::std::os::raw::c_uint;
2679pub const Phidget_Unit_PHIDUNIT_NONE: Phidget_Unit = 0;
2680pub const Phidget_Unit_PHIDUNIT_BOOLEAN: Phidget_Unit = 1;
2681pub const Phidget_Unit_PHIDUNIT_PERCENT: Phidget_Unit = 2;
2682pub const Phidget_Unit_PHIDUNIT_DECIBEL: Phidget_Unit = 3;
2683pub const Phidget_Unit_PHIDUNIT_MILLIMETER: Phidget_Unit = 4;
2684pub const Phidget_Unit_PHIDUNIT_CENTIMETER: Phidget_Unit = 5;
2685pub const Phidget_Unit_PHIDUNIT_METER: Phidget_Unit = 6;
2686pub const Phidget_Unit_PHIDUNIT_GRAM: Phidget_Unit = 7;
2687pub const Phidget_Unit_PHIDUNIT_KILOGRAM: Phidget_Unit = 8;
2688pub const Phidget_Unit_PHIDUNIT_MILLIAMPERE: Phidget_Unit = 9;
2689pub const Phidget_Unit_PHIDUNIT_AMPERE: Phidget_Unit = 10;
2690pub const Phidget_Unit_PHIDUNIT_KILOPASCAL: Phidget_Unit = 11;
2691pub const Phidget_Unit_PHIDUNIT_VOLT: Phidget_Unit = 12;
2692pub const Phidget_Unit_PHIDUNIT_DEGREE_CELCIUS: Phidget_Unit = 13;
2693pub const Phidget_Unit_PHIDUNIT_LUX: Phidget_Unit = 14;
2694pub const Phidget_Unit_PHIDUNIT_GAUSS: Phidget_Unit = 15;
2695pub const Phidget_Unit_PHIDUNIT_PH: Phidget_Unit = 16;
2696pub const Phidget_Unit_PHIDUNIT_WATT: Phidget_Unit = 17;
2697pub type Phidget_Unit = ::std::os::raw::c_uint;
2698pub const PhidgetDataAdapter_Parity_PARITY_MODE_NONE: PhidgetDataAdapter_Parity = 1;
2699pub const PhidgetDataAdapter_Parity_PARITY_MODE_EVEN: PhidgetDataAdapter_Parity = 2;
2700pub const PhidgetDataAdapter_Parity_PARITY_MODE_ODD: PhidgetDataAdapter_Parity = 3;
2701pub type PhidgetDataAdapter_Parity = ::std::os::raw::c_uint;
2702pub const PhidgetDataAdapter_StopBits_STOP_BITS_ONE: PhidgetDataAdapter_StopBits = 1;
2703pub const PhidgetDataAdapter_StopBits_STOP_BITS_TWO: PhidgetDataAdapter_StopBits = 2;
2704pub type PhidgetDataAdapter_StopBits = ::std::os::raw::c_uint;
2705pub const PhidgetDataAdapter_HandshakeMode_HANDSHAKE_MODE_NONE: PhidgetDataAdapter_HandshakeMode =
2706    1;
2707pub const PhidgetDataAdapter_HandshakeMode_HANDSHAKE_MODE_REQUEST_TO_SEND:
2708    PhidgetDataAdapter_HandshakeMode = 2;
2709pub const PhidgetDataAdapter_HandshakeMode_HANDSHAKE_MODE_READY_TO_RECEIVE:
2710    PhidgetDataAdapter_HandshakeMode = 3;
2711pub type PhidgetDataAdapter_HandshakeMode = ::std::os::raw::c_uint;
2712pub const PhidgetDataAdapter_Protocol_PROTOCOL_RS485: PhidgetDataAdapter_Protocol = 1;
2713pub const PhidgetDataAdapter_Protocol_PROTOCOL_RS422: PhidgetDataAdapter_Protocol = 2;
2714pub const PhidgetDataAdapter_Protocol_PROTOCOL_DMX512: PhidgetDataAdapter_Protocol = 3;
2715pub const PhidgetDataAdapter_Protocol_PROTOCOL_MODBUS_RTU: PhidgetDataAdapter_Protocol = 4;
2716pub const PhidgetDataAdapter_Protocol_PROTOCOL_SPI: PhidgetDataAdapter_Protocol = 5;
2717pub const PhidgetDataAdapter_Protocol_PROTOCOL_I2C: PhidgetDataAdapter_Protocol = 6;
2718pub const PhidgetDataAdapter_Protocol_PROTOCOL_UART: PhidgetDataAdapter_Protocol = 7;
2719pub const PhidgetDataAdapter_Protocol_PROTOCOL_RS232: PhidgetDataAdapter_Protocol = 8;
2720pub type PhidgetDataAdapter_Protocol = ::std::os::raw::c_uint;
2721pub const PhidgetDataAdapter_SPIMode_SPI_MODE_0: PhidgetDataAdapter_SPIMode = 1;
2722pub const PhidgetDataAdapter_SPIMode_SPI_MODE_1: PhidgetDataAdapter_SPIMode = 2;
2723pub const PhidgetDataAdapter_SPIMode_SPI_MODE_2: PhidgetDataAdapter_SPIMode = 3;
2724pub const PhidgetDataAdapter_SPIMode_SPI_MODE_3: PhidgetDataAdapter_SPIMode = 4;
2725pub type PhidgetDataAdapter_SPIMode = ::std::os::raw::c_uint;
2726pub const PhidgetDataAdapter_Endianness_ENDIANNESS_MSB_FIRST: PhidgetDataAdapter_Endianness = 1;
2727pub const PhidgetDataAdapter_Endianness_ENDIANNESS_LSB_FIRST: PhidgetDataAdapter_Endianness = 2;
2728pub type PhidgetDataAdapter_Endianness = ::std::os::raw::c_uint;
2729pub const PhidgetDataAdapter_IOVoltage_IO_VOLTAGE_EXTERN: PhidgetDataAdapter_IOVoltage = 1;
2730pub const PhidgetDataAdapter_IOVoltage_IO_VOLTAGE_1_8V: PhidgetDataAdapter_IOVoltage = 2;
2731pub const PhidgetDataAdapter_IOVoltage_IO_VOLTAGE_2_5V: PhidgetDataAdapter_IOVoltage = 3;
2732pub const PhidgetDataAdapter_IOVoltage_IO_VOLTAGE_3_3V: PhidgetDataAdapter_IOVoltage = 4;
2733pub const PhidgetDataAdapter_IOVoltage_IO_VOLTAGE_5_0V: PhidgetDataAdapter_IOVoltage = 5;
2734pub type PhidgetDataAdapter_IOVoltage = ::std::os::raw::c_uint;
2735pub const PhidgetDataAdapter_PacketErrorCode_PACKET_ERROR_OK: PhidgetDataAdapter_PacketErrorCode =
2736    0;
2737pub const PhidgetDataAdapter_PacketErrorCode_PACKET_ERROR_UNKNOWN:
2738    PhidgetDataAdapter_PacketErrorCode = 1;
2739pub const PhidgetDataAdapter_PacketErrorCode_PACKET_ERROR_TIMEOUT:
2740    PhidgetDataAdapter_PacketErrorCode = 2;
2741pub const PhidgetDataAdapter_PacketErrorCode_PACKET_ERROR_FORMAT:
2742    PhidgetDataAdapter_PacketErrorCode = 3;
2743pub const PhidgetDataAdapter_PacketErrorCode_PACKET_ERROR_INVALID:
2744    PhidgetDataAdapter_PacketErrorCode = 4;
2745pub const PhidgetDataAdapter_PacketErrorCode_PACKET_ERROR_OVERRUN:
2746    PhidgetDataAdapter_PacketErrorCode = 5;
2747pub const PhidgetDataAdapter_PacketErrorCode_PACKET_ERROR_CORRUPT:
2748    PhidgetDataAdapter_PacketErrorCode = 6;
2749pub type PhidgetDataAdapter_PacketErrorCode = ::std::os::raw::c_uint;
2750pub const PhidgetDigitalOutput_LEDForwardVoltage_LED_FORWARD_VOLTAGE_1_7V:
2751    PhidgetDigitalOutput_LEDForwardVoltage = 1;
2752pub const PhidgetDigitalOutput_LEDForwardVoltage_LED_FORWARD_VOLTAGE_2_75V:
2753    PhidgetDigitalOutput_LEDForwardVoltage = 2;
2754pub const PhidgetDigitalOutput_LEDForwardVoltage_LED_FORWARD_VOLTAGE_3_2V:
2755    PhidgetDigitalOutput_LEDForwardVoltage = 3;
2756pub const PhidgetDigitalOutput_LEDForwardVoltage_LED_FORWARD_VOLTAGE_3_9V:
2757    PhidgetDigitalOutput_LEDForwardVoltage = 4;
2758pub const PhidgetDigitalOutput_LEDForwardVoltage_LED_FORWARD_VOLTAGE_4_0V:
2759    PhidgetDigitalOutput_LEDForwardVoltage = 5;
2760pub const PhidgetDigitalOutput_LEDForwardVoltage_LED_FORWARD_VOLTAGE_4_8V:
2761    PhidgetDigitalOutput_LEDForwardVoltage = 6;
2762pub const PhidgetDigitalOutput_LEDForwardVoltage_LED_FORWARD_VOLTAGE_5_0V:
2763    PhidgetDigitalOutput_LEDForwardVoltage = 7;
2764pub const PhidgetDigitalOutput_LEDForwardVoltage_LED_FORWARD_VOLTAGE_5_6V:
2765    PhidgetDigitalOutput_LEDForwardVoltage = 8;
2766pub type PhidgetDigitalOutput_LEDForwardVoltage = ::std::os::raw::c_uint;
2767pub const PhidgetFrequencyCounter_FilterType_FILTER_TYPE_ZERO_CROSSING:
2768    PhidgetFrequencyCounter_FilterType = 1;
2769pub const PhidgetFrequencyCounter_FilterType_FILTER_TYPE_LOGIC_LEVEL:
2770    PhidgetFrequencyCounter_FilterType = 2;
2771pub type PhidgetFrequencyCounter_FilterType = ::std::os::raw::c_uint;
2772#[repr(C)]
2773#[derive(Debug, Copy, Clone)]
2774pub struct PhidgetGPS_Time {
2775    pub tm_ms: i16,
2776    pub tm_sec: i16,
2777    pub tm_min: i16,
2778    pub tm_hour: i16,
2779}
2780#[test]
2781fn bindgen_test_layout_PhidgetGPS_Time() {
2782    assert_eq!(
2783        ::std::mem::size_of::<PhidgetGPS_Time>(),
2784        8usize,
2785        concat!("Size of: ", stringify!(PhidgetGPS_Time))
2786    );
2787    assert_eq!(
2788        ::std::mem::align_of::<PhidgetGPS_Time>(),
2789        2usize,
2790        concat!("Alignment of ", stringify!(PhidgetGPS_Time))
2791    );
2792    assert_eq!(
2793        unsafe { &(*(::std::ptr::null::<PhidgetGPS_Time>())).tm_ms as *const _ as usize },
2794        0usize,
2795        concat!(
2796            "Offset of field: ",
2797            stringify!(PhidgetGPS_Time),
2798            "::",
2799            stringify!(tm_ms)
2800        )
2801    );
2802    assert_eq!(
2803        unsafe { &(*(::std::ptr::null::<PhidgetGPS_Time>())).tm_sec as *const _ as usize },
2804        2usize,
2805        concat!(
2806            "Offset of field: ",
2807            stringify!(PhidgetGPS_Time),
2808            "::",
2809            stringify!(tm_sec)
2810        )
2811    );
2812    assert_eq!(
2813        unsafe { &(*(::std::ptr::null::<PhidgetGPS_Time>())).tm_min as *const _ as usize },
2814        4usize,
2815        concat!(
2816            "Offset of field: ",
2817            stringify!(PhidgetGPS_Time),
2818            "::",
2819            stringify!(tm_min)
2820        )
2821    );
2822    assert_eq!(
2823        unsafe { &(*(::std::ptr::null::<PhidgetGPS_Time>())).tm_hour as *const _ as usize },
2824        6usize,
2825        concat!(
2826            "Offset of field: ",
2827            stringify!(PhidgetGPS_Time),
2828            "::",
2829            stringify!(tm_hour)
2830        )
2831    );
2832}
2833pub type PhidgetGPS_TimeHandle = *mut PhidgetGPS_Time;
2834#[repr(C)]
2835#[derive(Debug, Copy, Clone)]
2836pub struct PhidgetGPS_Date {
2837    pub tm_mday: i16,
2838    pub tm_mon: i16,
2839    pub tm_year: i16,
2840}
2841#[test]
2842fn bindgen_test_layout_PhidgetGPS_Date() {
2843    assert_eq!(
2844        ::std::mem::size_of::<PhidgetGPS_Date>(),
2845        6usize,
2846        concat!("Size of: ", stringify!(PhidgetGPS_Date))
2847    );
2848    assert_eq!(
2849        ::std::mem::align_of::<PhidgetGPS_Date>(),
2850        2usize,
2851        concat!("Alignment of ", stringify!(PhidgetGPS_Date))
2852    );
2853    assert_eq!(
2854        unsafe { &(*(::std::ptr::null::<PhidgetGPS_Date>())).tm_mday as *const _ as usize },
2855        0usize,
2856        concat!(
2857            "Offset of field: ",
2858            stringify!(PhidgetGPS_Date),
2859            "::",
2860            stringify!(tm_mday)
2861        )
2862    );
2863    assert_eq!(
2864        unsafe { &(*(::std::ptr::null::<PhidgetGPS_Date>())).tm_mon as *const _ as usize },
2865        2usize,
2866        concat!(
2867            "Offset of field: ",
2868            stringify!(PhidgetGPS_Date),
2869            "::",
2870            stringify!(tm_mon)
2871        )
2872    );
2873    assert_eq!(
2874        unsafe { &(*(::std::ptr::null::<PhidgetGPS_Date>())).tm_year as *const _ as usize },
2875        4usize,
2876        concat!(
2877            "Offset of field: ",
2878            stringify!(PhidgetGPS_Date),
2879            "::",
2880            stringify!(tm_year)
2881        )
2882    );
2883}
2884pub type PhidgetGPS_DateHandle = *mut PhidgetGPS_Date;
2885#[repr(C)]
2886#[derive(Debug, Copy, Clone)]
2887pub struct PhidgetGPS_GPGGA {
2888    pub latitude: f64,
2889    pub longitude: f64,
2890    pub fixQuality: i16,
2891    pub numSatellites: i16,
2892    pub horizontalDilution: f64,
2893    pub altitude: f64,
2894    pub heightOfGeoid: f64,
2895}
2896#[test]
2897fn bindgen_test_layout_PhidgetGPS_GPGGA() {
2898    assert_eq!(
2899        ::std::mem::size_of::<PhidgetGPS_GPGGA>(),
2900        48usize,
2901        concat!("Size of: ", stringify!(PhidgetGPS_GPGGA))
2902    );
2903    assert_eq!(
2904        ::std::mem::align_of::<PhidgetGPS_GPGGA>(),
2905        8usize,
2906        concat!("Alignment of ", stringify!(PhidgetGPS_GPGGA))
2907    );
2908    assert_eq!(
2909        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGGA>())).latitude as *const _ as usize },
2910        0usize,
2911        concat!(
2912            "Offset of field: ",
2913            stringify!(PhidgetGPS_GPGGA),
2914            "::",
2915            stringify!(latitude)
2916        )
2917    );
2918    assert_eq!(
2919        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGGA>())).longitude as *const _ as usize },
2920        8usize,
2921        concat!(
2922            "Offset of field: ",
2923            stringify!(PhidgetGPS_GPGGA),
2924            "::",
2925            stringify!(longitude)
2926        )
2927    );
2928    assert_eq!(
2929        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGGA>())).fixQuality as *const _ as usize },
2930        16usize,
2931        concat!(
2932            "Offset of field: ",
2933            stringify!(PhidgetGPS_GPGGA),
2934            "::",
2935            stringify!(fixQuality)
2936        )
2937    );
2938    assert_eq!(
2939        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGGA>())).numSatellites as *const _ as usize },
2940        18usize,
2941        concat!(
2942            "Offset of field: ",
2943            stringify!(PhidgetGPS_GPGGA),
2944            "::",
2945            stringify!(numSatellites)
2946        )
2947    );
2948    assert_eq!(
2949        unsafe {
2950            &(*(::std::ptr::null::<PhidgetGPS_GPGGA>())).horizontalDilution as *const _ as usize
2951        },
2952        24usize,
2953        concat!(
2954            "Offset of field: ",
2955            stringify!(PhidgetGPS_GPGGA),
2956            "::",
2957            stringify!(horizontalDilution)
2958        )
2959    );
2960    assert_eq!(
2961        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGGA>())).altitude as *const _ as usize },
2962        32usize,
2963        concat!(
2964            "Offset of field: ",
2965            stringify!(PhidgetGPS_GPGGA),
2966            "::",
2967            stringify!(altitude)
2968        )
2969    );
2970    assert_eq!(
2971        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGGA>())).heightOfGeoid as *const _ as usize },
2972        40usize,
2973        concat!(
2974            "Offset of field: ",
2975            stringify!(PhidgetGPS_GPGGA),
2976            "::",
2977            stringify!(heightOfGeoid)
2978        )
2979    );
2980}
2981pub type PhidgetGPS_GPGGAHandle = *mut PhidgetGPS_GPGGA;
2982#[repr(C)]
2983#[derive(Debug, Copy, Clone)]
2984pub struct PhidgetGPS_GPGSA {
2985    pub mode: ::std::os::raw::c_char,
2986    pub fixType: i16,
2987    pub satUsed: [i16; 12usize],
2988    pub posnDilution: f64,
2989    pub horizDilution: f64,
2990    pub vertDilution: f64,
2991}
2992#[test]
2993fn bindgen_test_layout_PhidgetGPS_GPGSA() {
2994    assert_eq!(
2995        ::std::mem::size_of::<PhidgetGPS_GPGSA>(),
2996        56usize,
2997        concat!("Size of: ", stringify!(PhidgetGPS_GPGSA))
2998    );
2999    assert_eq!(
3000        ::std::mem::align_of::<PhidgetGPS_GPGSA>(),
3001        8usize,
3002        concat!("Alignment of ", stringify!(PhidgetGPS_GPGSA))
3003    );
3004    assert_eq!(
3005        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGSA>())).mode as *const _ as usize },
3006        0usize,
3007        concat!(
3008            "Offset of field: ",
3009            stringify!(PhidgetGPS_GPGSA),
3010            "::",
3011            stringify!(mode)
3012        )
3013    );
3014    assert_eq!(
3015        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGSA>())).fixType as *const _ as usize },
3016        2usize,
3017        concat!(
3018            "Offset of field: ",
3019            stringify!(PhidgetGPS_GPGSA),
3020            "::",
3021            stringify!(fixType)
3022        )
3023    );
3024    assert_eq!(
3025        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGSA>())).satUsed as *const _ as usize },
3026        4usize,
3027        concat!(
3028            "Offset of field: ",
3029            stringify!(PhidgetGPS_GPGSA),
3030            "::",
3031            stringify!(satUsed)
3032        )
3033    );
3034    assert_eq!(
3035        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGSA>())).posnDilution as *const _ as usize },
3036        32usize,
3037        concat!(
3038            "Offset of field: ",
3039            stringify!(PhidgetGPS_GPGSA),
3040            "::",
3041            stringify!(posnDilution)
3042        )
3043    );
3044    assert_eq!(
3045        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGSA>())).horizDilution as *const _ as usize },
3046        40usize,
3047        concat!(
3048            "Offset of field: ",
3049            stringify!(PhidgetGPS_GPGSA),
3050            "::",
3051            stringify!(horizDilution)
3052        )
3053    );
3054    assert_eq!(
3055        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPGSA>())).vertDilution as *const _ as usize },
3056        48usize,
3057        concat!(
3058            "Offset of field: ",
3059            stringify!(PhidgetGPS_GPGSA),
3060            "::",
3061            stringify!(vertDilution)
3062        )
3063    );
3064}
3065pub type PhidgetGPS_GPGSAHandle = *mut PhidgetGPS_GPGSA;
3066#[repr(C)]
3067#[derive(Debug, Copy, Clone)]
3068pub struct PhidgetGPS_GPRMC {
3069    pub status: ::std::os::raw::c_char,
3070    pub latitude: f64,
3071    pub longitude: f64,
3072    pub speedKnots: f64,
3073    pub heading: f64,
3074    pub magneticVariation: f64,
3075    pub mode: ::std::os::raw::c_char,
3076}
3077#[test]
3078fn bindgen_test_layout_PhidgetGPS_GPRMC() {
3079    assert_eq!(
3080        ::std::mem::size_of::<PhidgetGPS_GPRMC>(),
3081        56usize,
3082        concat!("Size of: ", stringify!(PhidgetGPS_GPRMC))
3083    );
3084    assert_eq!(
3085        ::std::mem::align_of::<PhidgetGPS_GPRMC>(),
3086        8usize,
3087        concat!("Alignment of ", stringify!(PhidgetGPS_GPRMC))
3088    );
3089    assert_eq!(
3090        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPRMC>())).status as *const _ as usize },
3091        0usize,
3092        concat!(
3093            "Offset of field: ",
3094            stringify!(PhidgetGPS_GPRMC),
3095            "::",
3096            stringify!(status)
3097        )
3098    );
3099    assert_eq!(
3100        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPRMC>())).latitude as *const _ as usize },
3101        8usize,
3102        concat!(
3103            "Offset of field: ",
3104            stringify!(PhidgetGPS_GPRMC),
3105            "::",
3106            stringify!(latitude)
3107        )
3108    );
3109    assert_eq!(
3110        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPRMC>())).longitude as *const _ as usize },
3111        16usize,
3112        concat!(
3113            "Offset of field: ",
3114            stringify!(PhidgetGPS_GPRMC),
3115            "::",
3116            stringify!(longitude)
3117        )
3118    );
3119    assert_eq!(
3120        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPRMC>())).speedKnots as *const _ as usize },
3121        24usize,
3122        concat!(
3123            "Offset of field: ",
3124            stringify!(PhidgetGPS_GPRMC),
3125            "::",
3126            stringify!(speedKnots)
3127        )
3128    );
3129    assert_eq!(
3130        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPRMC>())).heading as *const _ as usize },
3131        32usize,
3132        concat!(
3133            "Offset of field: ",
3134            stringify!(PhidgetGPS_GPRMC),
3135            "::",
3136            stringify!(heading)
3137        )
3138    );
3139    assert_eq!(
3140        unsafe {
3141            &(*(::std::ptr::null::<PhidgetGPS_GPRMC>())).magneticVariation as *const _ as usize
3142        },
3143        40usize,
3144        concat!(
3145            "Offset of field: ",
3146            stringify!(PhidgetGPS_GPRMC),
3147            "::",
3148            stringify!(magneticVariation)
3149        )
3150    );
3151    assert_eq!(
3152        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPRMC>())).mode as *const _ as usize },
3153        48usize,
3154        concat!(
3155            "Offset of field: ",
3156            stringify!(PhidgetGPS_GPRMC),
3157            "::",
3158            stringify!(mode)
3159        )
3160    );
3161}
3162pub type PhidgetGPS_GPRMCHandle = *mut PhidgetGPS_GPRMC;
3163#[repr(C)]
3164#[derive(Debug, Copy, Clone)]
3165pub struct PhidgetGPS_GPVTG {
3166    pub trueHeading: f64,
3167    pub magneticHeading: f64,
3168    pub speedKnots: f64,
3169    pub speed: f64,
3170    pub mode: ::std::os::raw::c_char,
3171}
3172#[test]
3173fn bindgen_test_layout_PhidgetGPS_GPVTG() {
3174    assert_eq!(
3175        ::std::mem::size_of::<PhidgetGPS_GPVTG>(),
3176        40usize,
3177        concat!("Size of: ", stringify!(PhidgetGPS_GPVTG))
3178    );
3179    assert_eq!(
3180        ::std::mem::align_of::<PhidgetGPS_GPVTG>(),
3181        8usize,
3182        concat!("Alignment of ", stringify!(PhidgetGPS_GPVTG))
3183    );
3184    assert_eq!(
3185        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPVTG>())).trueHeading as *const _ as usize },
3186        0usize,
3187        concat!(
3188            "Offset of field: ",
3189            stringify!(PhidgetGPS_GPVTG),
3190            "::",
3191            stringify!(trueHeading)
3192        )
3193    );
3194    assert_eq!(
3195        unsafe {
3196            &(*(::std::ptr::null::<PhidgetGPS_GPVTG>())).magneticHeading as *const _ as usize
3197        },
3198        8usize,
3199        concat!(
3200            "Offset of field: ",
3201            stringify!(PhidgetGPS_GPVTG),
3202            "::",
3203            stringify!(magneticHeading)
3204        )
3205    );
3206    assert_eq!(
3207        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPVTG>())).speedKnots as *const _ as usize },
3208        16usize,
3209        concat!(
3210            "Offset of field: ",
3211            stringify!(PhidgetGPS_GPVTG),
3212            "::",
3213            stringify!(speedKnots)
3214        )
3215    );
3216    assert_eq!(
3217        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPVTG>())).speed as *const _ as usize },
3218        24usize,
3219        concat!(
3220            "Offset of field: ",
3221            stringify!(PhidgetGPS_GPVTG),
3222            "::",
3223            stringify!(speed)
3224        )
3225    );
3226    assert_eq!(
3227        unsafe { &(*(::std::ptr::null::<PhidgetGPS_GPVTG>())).mode as *const _ as usize },
3228        32usize,
3229        concat!(
3230            "Offset of field: ",
3231            stringify!(PhidgetGPS_GPVTG),
3232            "::",
3233            stringify!(mode)
3234        )
3235    );
3236}
3237pub type PhidgetGPS_GPVTGHandle = *mut PhidgetGPS_GPVTG;
3238#[repr(C)]
3239#[derive(Debug, Copy, Clone)]
3240pub struct PhidgetGPS_NMEAData {
3241    pub GGA: PhidgetGPS_GPGGA,
3242    pub GSA: PhidgetGPS_GPGSA,
3243    pub RMC: PhidgetGPS_GPRMC,
3244    pub VTG: PhidgetGPS_GPVTG,
3245}
3246#[test]
3247fn bindgen_test_layout_PhidgetGPS_NMEAData() {
3248    assert_eq!(
3249        ::std::mem::size_of::<PhidgetGPS_NMEAData>(),
3250        200usize,
3251        concat!("Size of: ", stringify!(PhidgetGPS_NMEAData))
3252    );
3253    assert_eq!(
3254        ::std::mem::align_of::<PhidgetGPS_NMEAData>(),
3255        8usize,
3256        concat!("Alignment of ", stringify!(PhidgetGPS_NMEAData))
3257    );
3258    assert_eq!(
3259        unsafe { &(*(::std::ptr::null::<PhidgetGPS_NMEAData>())).GGA as *const _ as usize },
3260        0usize,
3261        concat!(
3262            "Offset of field: ",
3263            stringify!(PhidgetGPS_NMEAData),
3264            "::",
3265            stringify!(GGA)
3266        )
3267    );
3268    assert_eq!(
3269        unsafe { &(*(::std::ptr::null::<PhidgetGPS_NMEAData>())).GSA as *const _ as usize },
3270        48usize,
3271        concat!(
3272            "Offset of field: ",
3273            stringify!(PhidgetGPS_NMEAData),
3274            "::",
3275            stringify!(GSA)
3276        )
3277    );
3278    assert_eq!(
3279        unsafe { &(*(::std::ptr::null::<PhidgetGPS_NMEAData>())).RMC as *const _ as usize },
3280        104usize,
3281        concat!(
3282            "Offset of field: ",
3283            stringify!(PhidgetGPS_NMEAData),
3284            "::",
3285            stringify!(RMC)
3286        )
3287    );
3288    assert_eq!(
3289        unsafe { &(*(::std::ptr::null::<PhidgetGPS_NMEAData>())).VTG as *const _ as usize },
3290        160usize,
3291        concat!(
3292            "Offset of field: ",
3293            stringify!(PhidgetGPS_NMEAData),
3294            "::",
3295            stringify!(VTG)
3296        )
3297    );
3298}
3299pub type PhidgetGPS_NMEADataHandle = *mut PhidgetGPS_NMEAData;
3300pub const PhidgetHub_PortMode_PORT_MODE_VINT_PORT: PhidgetHub_PortMode = 0;
3301pub const PhidgetHub_PortMode_PORT_MODE_DIGITAL_INPUT: PhidgetHub_PortMode = 1;
3302pub const PhidgetHub_PortMode_PORT_MODE_DIGITAL_OUTPUT: PhidgetHub_PortMode = 2;
3303pub const PhidgetHub_PortMode_PORT_MODE_VOLTAGE_INPUT: PhidgetHub_PortMode = 3;
3304pub const PhidgetHub_PortMode_PORT_MODE_VOLTAGE_RATIO_INPUT: PhidgetHub_PortMode = 4;
3305pub type PhidgetHub_PortMode = ::std::os::raw::c_uint;
3306pub const PhidgetIR_Encoding_IR_ENCODING_UNKNOWN: PhidgetIR_Encoding = 1;
3307pub const PhidgetIR_Encoding_IR_ENCODING_SPACE: PhidgetIR_Encoding = 2;
3308pub const PhidgetIR_Encoding_IR_ENCODING_PULSE: PhidgetIR_Encoding = 3;
3309pub const PhidgetIR_Encoding_IR_ENCODING_BIPHASE: PhidgetIR_Encoding = 4;
3310pub const PhidgetIR_Encoding_IR_ENCODING_RC5: PhidgetIR_Encoding = 5;
3311pub const PhidgetIR_Encoding_IR_ENCODING_RC6: PhidgetIR_Encoding = 6;
3312pub type PhidgetIR_Encoding = ::std::os::raw::c_uint;
3313pub const PhidgetIR_Length_IR_LENGTH_UNKNOWN: PhidgetIR_Length = 1;
3314pub const PhidgetIR_Length_IR_LENGTH_CONSTANT: PhidgetIR_Length = 2;
3315pub const PhidgetIR_Length_IR_LENGTH_VARIABLE: PhidgetIR_Length = 3;
3316pub type PhidgetIR_Length = ::std::os::raw::c_uint;
3317#[repr(C)]
3318#[derive(Debug, Copy, Clone)]
3319pub struct PhidgetIR_CodeInfo {
3320    pub bitCount: u32,
3321    pub encoding: PhidgetIR_Encoding,
3322    pub length: PhidgetIR_Length,
3323    pub gap: u32,
3324    pub trail: u32,
3325    pub header: [u32; 2usize],
3326    pub one: [u32; 2usize],
3327    pub zero: [u32; 2usize],
3328    pub repeat: [u32; 26usize],
3329    pub minRepeat: u32,
3330    pub dutyCycle: f64,
3331    pub carrierFrequency: u32,
3332    pub toggleMask: [::std::os::raw::c_char; 33usize],
3333}
3334#[test]
3335fn bindgen_test_layout_PhidgetIR_CodeInfo() {
3336    assert_eq!(
3337        ::std::mem::size_of::<PhidgetIR_CodeInfo>(),
3338        200usize,
3339        concat!("Size of: ", stringify!(PhidgetIR_CodeInfo))
3340    );
3341    assert_eq!(
3342        ::std::mem::align_of::<PhidgetIR_CodeInfo>(),
3343        8usize,
3344        concat!("Alignment of ", stringify!(PhidgetIR_CodeInfo))
3345    );
3346    assert_eq!(
3347        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).bitCount as *const _ as usize },
3348        0usize,
3349        concat!(
3350            "Offset of field: ",
3351            stringify!(PhidgetIR_CodeInfo),
3352            "::",
3353            stringify!(bitCount)
3354        )
3355    );
3356    assert_eq!(
3357        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).encoding as *const _ as usize },
3358        4usize,
3359        concat!(
3360            "Offset of field: ",
3361            stringify!(PhidgetIR_CodeInfo),
3362            "::",
3363            stringify!(encoding)
3364        )
3365    );
3366    assert_eq!(
3367        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).length as *const _ as usize },
3368        8usize,
3369        concat!(
3370            "Offset of field: ",
3371            stringify!(PhidgetIR_CodeInfo),
3372            "::",
3373            stringify!(length)
3374        )
3375    );
3376    assert_eq!(
3377        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).gap as *const _ as usize },
3378        12usize,
3379        concat!(
3380            "Offset of field: ",
3381            stringify!(PhidgetIR_CodeInfo),
3382            "::",
3383            stringify!(gap)
3384        )
3385    );
3386    assert_eq!(
3387        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).trail as *const _ as usize },
3388        16usize,
3389        concat!(
3390            "Offset of field: ",
3391            stringify!(PhidgetIR_CodeInfo),
3392            "::",
3393            stringify!(trail)
3394        )
3395    );
3396    assert_eq!(
3397        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).header as *const _ as usize },
3398        20usize,
3399        concat!(
3400            "Offset of field: ",
3401            stringify!(PhidgetIR_CodeInfo),
3402            "::",
3403            stringify!(header)
3404        )
3405    );
3406    assert_eq!(
3407        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).one as *const _ as usize },
3408        28usize,
3409        concat!(
3410            "Offset of field: ",
3411            stringify!(PhidgetIR_CodeInfo),
3412            "::",
3413            stringify!(one)
3414        )
3415    );
3416    assert_eq!(
3417        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).zero as *const _ as usize },
3418        36usize,
3419        concat!(
3420            "Offset of field: ",
3421            stringify!(PhidgetIR_CodeInfo),
3422            "::",
3423            stringify!(zero)
3424        )
3425    );
3426    assert_eq!(
3427        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).repeat as *const _ as usize },
3428        44usize,
3429        concat!(
3430            "Offset of field: ",
3431            stringify!(PhidgetIR_CodeInfo),
3432            "::",
3433            stringify!(repeat)
3434        )
3435    );
3436    assert_eq!(
3437        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).minRepeat as *const _ as usize },
3438        148usize,
3439        concat!(
3440            "Offset of field: ",
3441            stringify!(PhidgetIR_CodeInfo),
3442            "::",
3443            stringify!(minRepeat)
3444        )
3445    );
3446    assert_eq!(
3447        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).dutyCycle as *const _ as usize },
3448        152usize,
3449        concat!(
3450            "Offset of field: ",
3451            stringify!(PhidgetIR_CodeInfo),
3452            "::",
3453            stringify!(dutyCycle)
3454        )
3455    );
3456    assert_eq!(
3457        unsafe {
3458            &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).carrierFrequency as *const _ as usize
3459        },
3460        160usize,
3461        concat!(
3462            "Offset of field: ",
3463            stringify!(PhidgetIR_CodeInfo),
3464            "::",
3465            stringify!(carrierFrequency)
3466        )
3467    );
3468    assert_eq!(
3469        unsafe { &(*(::std::ptr::null::<PhidgetIR_CodeInfo>())).toggleMask as *const _ as usize },
3470        164usize,
3471        concat!(
3472            "Offset of field: ",
3473            stringify!(PhidgetIR_CodeInfo),
3474            "::",
3475            stringify!(toggleMask)
3476        )
3477    );
3478}
3479pub type PhidgetIR_CodeInfoHandle = *mut PhidgetIR_CodeInfo;
3480pub const PhidgetLCD_Font_FONT_User1: PhidgetLCD_Font = 1;
3481pub const PhidgetLCD_Font_FONT_User2: PhidgetLCD_Font = 2;
3482pub const PhidgetLCD_Font_FONT_6x10: PhidgetLCD_Font = 3;
3483pub const PhidgetLCD_Font_FONT_5x8: PhidgetLCD_Font = 4;
3484pub const PhidgetLCD_Font_FONT_6x12: PhidgetLCD_Font = 5;
3485pub type PhidgetLCD_Font = ::std::os::raw::c_uint;
3486pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_NONE: PhidgetLCD_ScreenSize = 1;
3487pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_1x8: PhidgetLCD_ScreenSize = 2;
3488pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_2x8: PhidgetLCD_ScreenSize = 3;
3489pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_1x16: PhidgetLCD_ScreenSize = 4;
3490pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_2x16: PhidgetLCD_ScreenSize = 5;
3491pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_4x16: PhidgetLCD_ScreenSize = 6;
3492pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_2x20: PhidgetLCD_ScreenSize = 7;
3493pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_4x20: PhidgetLCD_ScreenSize = 8;
3494pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_2x24: PhidgetLCD_ScreenSize = 9;
3495pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_1x40: PhidgetLCD_ScreenSize = 10;
3496pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_2x40: PhidgetLCD_ScreenSize = 11;
3497pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_4x40: PhidgetLCD_ScreenSize = 12;
3498pub const PhidgetLCD_ScreenSize_SCREEN_SIZE_64x128: PhidgetLCD_ScreenSize = 13;
3499pub type PhidgetLCD_ScreenSize = ::std::os::raw::c_uint;
3500pub const PhidgetLCD_PixelState_PIXEL_STATE_OFF: PhidgetLCD_PixelState = 0;
3501pub const PhidgetLCD_PixelState_PIXEL_STATE_ON: PhidgetLCD_PixelState = 1;
3502pub const PhidgetLCD_PixelState_PIXEL_STATE_INVERT: PhidgetLCD_PixelState = 2;
3503pub type PhidgetLCD_PixelState = ::std::os::raw::c_uint;
3504#[repr(C)]
3505#[derive(Debug, Copy, Clone)]
3506pub struct Phidget_UnitInfo {
3507    pub unit: Phidget_Unit,
3508    pub name: *const ::std::os::raw::c_char,
3509    pub symbol: *const ::std::os::raw::c_char,
3510}
3511#[test]
3512fn bindgen_test_layout_Phidget_UnitInfo() {
3513    assert_eq!(
3514        ::std::mem::size_of::<Phidget_UnitInfo>(),
3515        24usize,
3516        concat!("Size of: ", stringify!(Phidget_UnitInfo))
3517    );
3518    assert_eq!(
3519        ::std::mem::align_of::<Phidget_UnitInfo>(),
3520        8usize,
3521        concat!("Alignment of ", stringify!(Phidget_UnitInfo))
3522    );
3523    assert_eq!(
3524        unsafe { &(*(::std::ptr::null::<Phidget_UnitInfo>())).unit as *const _ as usize },
3525        0usize,
3526        concat!(
3527            "Offset of field: ",
3528            stringify!(Phidget_UnitInfo),
3529            "::",
3530            stringify!(unit)
3531        )
3532    );
3533    assert_eq!(
3534        unsafe { &(*(::std::ptr::null::<Phidget_UnitInfo>())).name as *const _ as usize },
3535        8usize,
3536        concat!(
3537            "Offset of field: ",
3538            stringify!(Phidget_UnitInfo),
3539            "::",
3540            stringify!(name)
3541        )
3542    );
3543    assert_eq!(
3544        unsafe { &(*(::std::ptr::null::<Phidget_UnitInfo>())).symbol as *const _ as usize },
3545        16usize,
3546        concat!(
3547            "Offset of field: ",
3548            stringify!(Phidget_UnitInfo),
3549            "::",
3550            stringify!(symbol)
3551        )
3552    );
3553}
3554pub type Phidget_UnitInfoHandle = *mut Phidget_UnitInfo;
3555pub const PhidgetServerType_PHIDGETSERVER_NONE: PhidgetServerType = 0;
3556pub const PhidgetServerType_PHIDGETSERVER_DEVICELISTENER: PhidgetServerType = 1;
3557pub const PhidgetServerType_PHIDGETSERVER_DEVICE: PhidgetServerType = 2;
3558pub const PhidgetServerType_PHIDGETSERVER_DEVICEREMOTE: PhidgetServerType = 3;
3559pub const PhidgetServerType_PHIDGETSERVER_WWWLISTENER: PhidgetServerType = 4;
3560pub const PhidgetServerType_PHIDGETSERVER_WWW: PhidgetServerType = 5;
3561pub const PhidgetServerType_PHIDGETSERVER_WWWREMOTE: PhidgetServerType = 6;
3562pub const PhidgetServerType_PHIDGETSERVER_SBC: PhidgetServerType = 7;
3563pub type PhidgetServerType = ::std::os::raw::c_uint;
3564pub const PhidgetRCServo_Voltage_RCSERVO_VOLTAGE_5V: PhidgetRCServo_Voltage = 1;
3565pub const PhidgetRCServo_Voltage_RCSERVO_VOLTAGE_6V: PhidgetRCServo_Voltage = 2;
3566pub const PhidgetRCServo_Voltage_RCSERVO_VOLTAGE_7_4V: PhidgetRCServo_Voltage = 3;
3567pub type PhidgetRCServo_Voltage = ::std::os::raw::c_uint;
3568pub const PhidgetRFID_Protocol_PROTOCOL_EM4100: PhidgetRFID_Protocol = 1;
3569pub const PhidgetRFID_Protocol_PROTOCOL_ISO11785_FDX_B: PhidgetRFID_Protocol = 2;
3570pub const PhidgetRFID_Protocol_PROTOCOL_PHIDGETS: PhidgetRFID_Protocol = 3;
3571pub type PhidgetRFID_Protocol = ::std::os::raw::c_uint;
3572pub const PhidgetSoundSensor_SPLRange_SPL_RANGE_102dB: PhidgetSoundSensor_SPLRange = 1;
3573pub const PhidgetSoundSensor_SPLRange_SPL_RANGE_82dB: PhidgetSoundSensor_SPLRange = 2;
3574pub type PhidgetSoundSensor_SPLRange = ::std::os::raw::c_uint;
3575pub const Phidget_SpatialAlgorithm_SPATIAL_ALGORITHM_NONE: Phidget_SpatialAlgorithm = 0;
3576pub const Phidget_SpatialAlgorithm_SPATIAL_ALGORITHM_AHRS: Phidget_SpatialAlgorithm = 1;
3577pub const Phidget_SpatialAlgorithm_SPATIAL_ALGORITHM_IMU: Phidget_SpatialAlgorithm = 2;
3578pub type Phidget_SpatialAlgorithm = ::std::os::raw::c_uint;
3579pub const PhidgetStepper_ControlMode_CONTROL_MODE_STEP: PhidgetStepper_ControlMode = 0;
3580pub const PhidgetStepper_ControlMode_CONTROL_MODE_RUN: PhidgetStepper_ControlMode = 1;
3581pub type PhidgetStepper_ControlMode = ::std::os::raw::c_uint;
3582pub const PhidgetTemperatureSensor_RTDType_RTD_TYPE_PT100_3850: PhidgetTemperatureSensor_RTDType =
3583    1;
3584pub const PhidgetTemperatureSensor_RTDType_RTD_TYPE_PT1000_3850: PhidgetTemperatureSensor_RTDType =
3585    2;
3586pub const PhidgetTemperatureSensor_RTDType_RTD_TYPE_PT100_3920: PhidgetTemperatureSensor_RTDType =
3587    3;
3588pub const PhidgetTemperatureSensor_RTDType_RTD_TYPE_PT1000_3920: PhidgetTemperatureSensor_RTDType =
3589    4;
3590pub type PhidgetTemperatureSensor_RTDType = ::std::os::raw::c_uint;
3591pub const PhidgetTemperatureSensor_ThermocoupleType_THERMOCOUPLE_TYPE_J:
3592    PhidgetTemperatureSensor_ThermocoupleType = 1;
3593pub const PhidgetTemperatureSensor_ThermocoupleType_THERMOCOUPLE_TYPE_K:
3594    PhidgetTemperatureSensor_ThermocoupleType = 2;
3595pub const PhidgetTemperatureSensor_ThermocoupleType_THERMOCOUPLE_TYPE_E:
3596    PhidgetTemperatureSensor_ThermocoupleType = 3;
3597pub const PhidgetTemperatureSensor_ThermocoupleType_THERMOCOUPLE_TYPE_T:
3598    PhidgetTemperatureSensor_ThermocoupleType = 4;
3599pub type PhidgetTemperatureSensor_ThermocoupleType = ::std::os::raw::c_uint;
3600pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_10mV: PhidgetVoltageInput_VoltageRange = 1;
3601pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_40mV: PhidgetVoltageInput_VoltageRange = 2;
3602pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_200mV: PhidgetVoltageInput_VoltageRange =
3603    3;
3604pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_312_5mV: PhidgetVoltageInput_VoltageRange =
3605    4;
3606pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_400mV: PhidgetVoltageInput_VoltageRange =
3607    5;
3608pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_1000mV: PhidgetVoltageInput_VoltageRange =
3609    6;
3610pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_2V: PhidgetVoltageInput_VoltageRange = 7;
3611pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_5V: PhidgetVoltageInput_VoltageRange = 8;
3612pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_15V: PhidgetVoltageInput_VoltageRange = 9;
3613pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_40V: PhidgetVoltageInput_VoltageRange = 10;
3614pub const PhidgetVoltageInput_VoltageRange_VOLTAGE_RANGE_AUTO: PhidgetVoltageInput_VoltageRange =
3615    11;
3616pub type PhidgetVoltageInput_VoltageRange = ::std::os::raw::c_uint;
3617pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_VOLTAGE: PhidgetVoltageInput_SensorType = 0;
3618pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1114: PhidgetVoltageInput_SensorType = 11140;
3619pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1117: PhidgetVoltageInput_SensorType = 11170;
3620pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1123: PhidgetVoltageInput_SensorType = 11230;
3621pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1127: PhidgetVoltageInput_SensorType = 11270;
3622pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1130_PH: PhidgetVoltageInput_SensorType =
3623    11301;
3624pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1130_ORP: PhidgetVoltageInput_SensorType =
3625    11302;
3626pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1132: PhidgetVoltageInput_SensorType = 11320;
3627pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1133: PhidgetVoltageInput_SensorType = 11330;
3628pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1135: PhidgetVoltageInput_SensorType = 11350;
3629pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1142: PhidgetVoltageInput_SensorType = 11420;
3630pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_1143: PhidgetVoltageInput_SensorType = 11430;
3631pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3500: PhidgetVoltageInput_SensorType = 35000;
3632pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3501: PhidgetVoltageInput_SensorType = 35010;
3633pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3502: PhidgetVoltageInput_SensorType = 35020;
3634pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3503: PhidgetVoltageInput_SensorType = 35030;
3635pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3507: PhidgetVoltageInput_SensorType = 35070;
3636pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3508: PhidgetVoltageInput_SensorType = 35080;
3637pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3509: PhidgetVoltageInput_SensorType = 35090;
3638pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3510: PhidgetVoltageInput_SensorType = 35100;
3639pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3511: PhidgetVoltageInput_SensorType = 35110;
3640pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3512: PhidgetVoltageInput_SensorType = 35120;
3641pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3513: PhidgetVoltageInput_SensorType = 35130;
3642pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3514: PhidgetVoltageInput_SensorType = 35140;
3643pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3515: PhidgetVoltageInput_SensorType = 35150;
3644pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3516: PhidgetVoltageInput_SensorType = 35160;
3645pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3517: PhidgetVoltageInput_SensorType = 35170;
3646pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3518: PhidgetVoltageInput_SensorType = 35180;
3647pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3519: PhidgetVoltageInput_SensorType = 35190;
3648pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3584: PhidgetVoltageInput_SensorType = 35840;
3649pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3585: PhidgetVoltageInput_SensorType = 35850;
3650pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3586: PhidgetVoltageInput_SensorType = 35860;
3651pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3587: PhidgetVoltageInput_SensorType = 35870;
3652pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3588: PhidgetVoltageInput_SensorType = 35880;
3653pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_3589: PhidgetVoltageInput_SensorType = 35890;
3654pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_MOT2002_LOW: PhidgetVoltageInput_SensorType =
3655    20020;
3656pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_MOT2002_MED: PhidgetVoltageInput_SensorType =
3657    20021;
3658pub const PhidgetVoltageInput_SensorType_SENSOR_TYPE_MOT2002_HIGH: PhidgetVoltageInput_SensorType =
3659    20022;
3660pub type PhidgetVoltageInput_SensorType = ::std::os::raw::c_uint;
3661pub const PhidgetVoltageOutput_VoltageOutputRange_VOLTAGE_OUTPUT_RANGE_10V:
3662    PhidgetVoltageOutput_VoltageOutputRange = 1;
3663pub const PhidgetVoltageOutput_VoltageOutputRange_VOLTAGE_OUTPUT_RANGE_5V:
3664    PhidgetVoltageOutput_VoltageOutputRange = 2;
3665pub type PhidgetVoltageOutput_VoltageOutputRange = ::std::os::raw::c_uint;
3666pub const PhidgetVoltageRatioInput_BridgeGain_BRIDGE_GAIN_1: PhidgetVoltageRatioInput_BridgeGain =
3667    1;
3668pub const PhidgetVoltageRatioInput_BridgeGain_BRIDGE_GAIN_2: PhidgetVoltageRatioInput_BridgeGain =
3669    2;
3670pub const PhidgetVoltageRatioInput_BridgeGain_BRIDGE_GAIN_4: PhidgetVoltageRatioInput_BridgeGain =
3671    3;
3672pub const PhidgetVoltageRatioInput_BridgeGain_BRIDGE_GAIN_8: PhidgetVoltageRatioInput_BridgeGain =
3673    4;
3674pub const PhidgetVoltageRatioInput_BridgeGain_BRIDGE_GAIN_16: PhidgetVoltageRatioInput_BridgeGain =
3675    5;
3676pub const PhidgetVoltageRatioInput_BridgeGain_BRIDGE_GAIN_32: PhidgetVoltageRatioInput_BridgeGain =
3677    6;
3678pub const PhidgetVoltageRatioInput_BridgeGain_BRIDGE_GAIN_64: PhidgetVoltageRatioInput_BridgeGain =
3679    7;
3680pub const PhidgetVoltageRatioInput_BridgeGain_BRIDGE_GAIN_128: PhidgetVoltageRatioInput_BridgeGain =
3681    8;
3682pub type PhidgetVoltageRatioInput_BridgeGain = ::std::os::raw::c_uint;
3683pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_VOLTAGERATIO:
3684    PhidgetVoltageRatioInput_SensorType = 0;
3685pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1101_SHARP_2D120X:
3686    PhidgetVoltageRatioInput_SensorType = 11011;
3687pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1101_SHARP_2Y0A21:
3688    PhidgetVoltageRatioInput_SensorType = 11012;
3689pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1101_SHARP_2Y0A02:
3690    PhidgetVoltageRatioInput_SensorType = 11013;
3691pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1102:
3692    PhidgetVoltageRatioInput_SensorType = 11020;
3693pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1103:
3694    PhidgetVoltageRatioInput_SensorType = 11030;
3695pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1104:
3696    PhidgetVoltageRatioInput_SensorType = 11040;
3697pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1105:
3698    PhidgetVoltageRatioInput_SensorType = 11050;
3699pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1106:
3700    PhidgetVoltageRatioInput_SensorType = 11060;
3701pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1107:
3702    PhidgetVoltageRatioInput_SensorType = 11070;
3703pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1108:
3704    PhidgetVoltageRatioInput_SensorType = 11080;
3705pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1109:
3706    PhidgetVoltageRatioInput_SensorType = 11090;
3707pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1110:
3708    PhidgetVoltageRatioInput_SensorType = 11100;
3709pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1111:
3710    PhidgetVoltageRatioInput_SensorType = 11110;
3711pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1112:
3712    PhidgetVoltageRatioInput_SensorType = 11120;
3713pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1113:
3714    PhidgetVoltageRatioInput_SensorType = 11130;
3715pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1115:
3716    PhidgetVoltageRatioInput_SensorType = 11150;
3717pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1116:
3718    PhidgetVoltageRatioInput_SensorType = 11160;
3719pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1118_AC:
3720    PhidgetVoltageRatioInput_SensorType = 11181;
3721pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1118_DC:
3722    PhidgetVoltageRatioInput_SensorType = 11182;
3723pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1119_AC:
3724    PhidgetVoltageRatioInput_SensorType = 11191;
3725pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1119_DC:
3726    PhidgetVoltageRatioInput_SensorType = 11192;
3727pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1120:
3728    PhidgetVoltageRatioInput_SensorType = 11200;
3729pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1121:
3730    PhidgetVoltageRatioInput_SensorType = 11210;
3731pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1122_AC:
3732    PhidgetVoltageRatioInput_SensorType = 11221;
3733pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1122_DC:
3734    PhidgetVoltageRatioInput_SensorType = 11222;
3735pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1124:
3736    PhidgetVoltageRatioInput_SensorType = 11240;
3737pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1125_HUMIDITY:
3738    PhidgetVoltageRatioInput_SensorType = 11251;
3739pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1125_TEMPERATURE:
3740    PhidgetVoltageRatioInput_SensorType = 11252;
3741pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1126:
3742    PhidgetVoltageRatioInput_SensorType = 11260;
3743pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1128:
3744    PhidgetVoltageRatioInput_SensorType = 11280;
3745pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1129:
3746    PhidgetVoltageRatioInput_SensorType = 11290;
3747pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1131:
3748    PhidgetVoltageRatioInput_SensorType = 11310;
3749pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1134:
3750    PhidgetVoltageRatioInput_SensorType = 11340;
3751pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1136:
3752    PhidgetVoltageRatioInput_SensorType = 11360;
3753pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1137:
3754    PhidgetVoltageRatioInput_SensorType = 11370;
3755pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1138:
3756    PhidgetVoltageRatioInput_SensorType = 11380;
3757pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1139:
3758    PhidgetVoltageRatioInput_SensorType = 11390;
3759pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1140:
3760    PhidgetVoltageRatioInput_SensorType = 11400;
3761pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1141:
3762    PhidgetVoltageRatioInput_SensorType = 11410;
3763pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_1146:
3764    PhidgetVoltageRatioInput_SensorType = 11460;
3765pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_3120:
3766    PhidgetVoltageRatioInput_SensorType = 31200;
3767pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_3121:
3768    PhidgetVoltageRatioInput_SensorType = 31210;
3769pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_3122:
3770    PhidgetVoltageRatioInput_SensorType = 31220;
3771pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_3123:
3772    PhidgetVoltageRatioInput_SensorType = 31230;
3773pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_3130:
3774    PhidgetVoltageRatioInput_SensorType = 31300;
3775pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_3520:
3776    PhidgetVoltageRatioInput_SensorType = 35200;
3777pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_3521:
3778    PhidgetVoltageRatioInput_SensorType = 35210;
3779pub const PhidgetVoltageRatioInput_SensorType_SENSOR_TYPE_3522:
3780    PhidgetVoltageRatioInput_SensorType = 35220;
3781pub type PhidgetVoltageRatioInput_SensorType = ::std::os::raw::c_uint;
3782#[repr(C)]
3783#[derive(Debug, Copy, Clone)]
3784pub struct _Phidget {
3785    _unused: [u8; 0],
3786}
3787pub type Phidget = _Phidget;
3788pub type PhidgetHandle = *mut _Phidget;
3789pub type Phidget_AsyncCallback = ::std::option::Option<
3790    unsafe extern "C" fn(
3791        phid: PhidgetHandle,
3792        ctx: *mut ::std::os::raw::c_void,
3793        returnCode: PhidgetReturnCode,
3794    ),
3795>;
3796extern "C" {
3797    pub fn Phidget_getLibraryVersion(
3798        libraryVersion: *mut *const ::std::os::raw::c_char,
3799    ) -> PhidgetReturnCode;
3800}
3801extern "C" {
3802    pub fn Phidget_getLibraryVersionNumber(
3803        libraryVersion: *mut *const ::std::os::raw::c_char,
3804    ) -> PhidgetReturnCode;
3805}
3806extern "C" {
3807    pub fn Phidget_getErrorDescription(
3808        errorCode: PhidgetReturnCode,
3809        errorString: *mut *const ::std::os::raw::c_char,
3810    ) -> PhidgetReturnCode;
3811}
3812extern "C" {
3813    pub fn Phidget_getLastError(
3814        errorCode: *mut PhidgetReturnCode,
3815        errorString: *mut *const ::std::os::raw::c_char,
3816        errorDetail: *mut ::std::os::raw::c_char,
3817        errorDetailLen: *mut size_t,
3818    ) -> PhidgetReturnCode;
3819}
3820extern "C" {
3821    pub fn Phidget_finalize(flags: ::std::os::raw::c_int) -> PhidgetReturnCode;
3822}
3823extern "C" {
3824    pub fn Phidget_resetLibrary() -> PhidgetReturnCode;
3825}
3826extern "C" {
3827    pub fn Phidget_open(phid: PhidgetHandle) -> PhidgetReturnCode;
3828}
3829extern "C" {
3830    pub fn Phidget_openWaitForAttachment(phid: PhidgetHandle, timeoutMs: u32) -> PhidgetReturnCode;
3831}
3832extern "C" {
3833    pub fn Phidget_close(phid: PhidgetHandle) -> PhidgetReturnCode;
3834}
3835extern "C" {
3836    pub fn Phidget_delete(phid: *mut PhidgetHandle) -> PhidgetReturnCode;
3837}
3838extern "C" {
3839    pub fn Phidget_writeDeviceLabel(
3840        phid: PhidgetHandle,
3841        deviceLabel: *const ::std::os::raw::c_char,
3842    ) -> PhidgetReturnCode;
3843}
3844extern "C" {
3845    pub fn Phidget_retain(phid: PhidgetHandle) -> PhidgetReturnCode;
3846}
3847extern "C" {
3848    pub fn Phidget_release(phid: *mut PhidgetHandle) -> PhidgetReturnCode;
3849}
3850extern "C" {
3851    pub fn Phidget_getChildDevices(
3852        phid: PhidgetHandle,
3853        arr: *mut PhidgetHandle,
3854        arrCnt: *mut size_t,
3855    ) -> PhidgetReturnCode;
3856}
3857extern "C" {
3858    pub fn Phidget_releaseDevices(arr: *mut PhidgetHandle, arrCnt: size_t) -> PhidgetReturnCode;
3859}
3860extern "C" {
3861    pub fn Phidget_getDataInterval(phid: PhidgetHandle, di: *mut u32) -> PhidgetReturnCode;
3862}
3863extern "C" {
3864    pub fn Phidget_setDataInterval(phid: PhidgetHandle, di: u32) -> PhidgetReturnCode;
3865}
3866extern "C" {
3867    pub fn Phidget_getAttached(
3868        phid: PhidgetHandle,
3869        attached: *mut ::std::os::raw::c_int,
3870    ) -> PhidgetReturnCode;
3871}
3872extern "C" {
3873    pub fn Phidget_getIsChannel(
3874        phid: PhidgetHandle,
3875        isChannel: *mut ::std::os::raw::c_int,
3876    ) -> PhidgetReturnCode;
3877}
3878extern "C" {
3879    pub fn Phidget_getIsLocal(
3880        phid: PhidgetHandle,
3881        isLocal: *mut ::std::os::raw::c_int,
3882    ) -> PhidgetReturnCode;
3883}
3884extern "C" {
3885    pub fn Phidget_setIsLocal(
3886        phid: PhidgetHandle,
3887        isLocal: ::std::os::raw::c_int,
3888    ) -> PhidgetReturnCode;
3889}
3890extern "C" {
3891    pub fn Phidget_getIsRemote(
3892        phid: PhidgetHandle,
3893        isRemote: *mut ::std::os::raw::c_int,
3894    ) -> PhidgetReturnCode;
3895}
3896extern "C" {
3897    pub fn Phidget_setIsRemote(
3898        phid: PhidgetHandle,
3899        isRemote: ::std::os::raw::c_int,
3900    ) -> PhidgetReturnCode;
3901}
3902extern "C" {
3903    pub fn Phidget_getParent(phid: PhidgetHandle, parent: *mut PhidgetHandle) -> PhidgetReturnCode;
3904}
3905extern "C" {
3906    pub fn Phidget_getServerName(
3907        phid: PhidgetHandle,
3908        serverName: *mut *const ::std::os::raw::c_char,
3909    ) -> PhidgetReturnCode;
3910}
3911extern "C" {
3912    pub fn Phidget_getServerUniqueName(
3913        phid: PhidgetHandle,
3914        serverUniqueName: *mut *const ::std::os::raw::c_char,
3915    ) -> PhidgetReturnCode;
3916}
3917extern "C" {
3918    pub fn Phidget_setServerName(
3919        phid: PhidgetHandle,
3920        serverName: *const ::std::os::raw::c_char,
3921    ) -> PhidgetReturnCode;
3922}
3923extern "C" {
3924    pub fn Phidget_getServerPeerName(
3925        phid: PhidgetHandle,
3926        serverPeerName: *mut *const ::std::os::raw::c_char,
3927    ) -> PhidgetReturnCode;
3928}
3929extern "C" {
3930    pub fn Phidget_getServerHostname(
3931        phid: PhidgetHandle,
3932        serverHostname: *mut *const ::std::os::raw::c_char,
3933    ) -> PhidgetReturnCode;
3934}
3935extern "C" {
3936    pub fn Phidget_getChannel(
3937        phid: PhidgetHandle,
3938        channel: *mut ::std::os::raw::c_int,
3939    ) -> PhidgetReturnCode;
3940}
3941extern "C" {
3942    pub fn Phidget_setChannel(
3943        phid: PhidgetHandle,
3944        channel: ::std::os::raw::c_int,
3945    ) -> PhidgetReturnCode;
3946}
3947extern "C" {
3948    pub fn Phidget_getChannelClass(
3949        phid: PhidgetHandle,
3950        channelClass: *mut Phidget_ChannelClass,
3951    ) -> PhidgetReturnCode;
3952}
3953extern "C" {
3954    pub fn Phidget_getChannelClassName(
3955        phid: PhidgetHandle,
3956        channelClassName: *mut *const ::std::os::raw::c_char,
3957    ) -> PhidgetReturnCode;
3958}
3959extern "C" {
3960    pub fn Phidget_getChannelName(
3961        phid: PhidgetHandle,
3962        channelName: *mut *const ::std::os::raw::c_char,
3963    ) -> PhidgetReturnCode;
3964}
3965extern "C" {
3966    pub fn Phidget_getChannelSubclass(
3967        phid: PhidgetHandle,
3968        channelSubclass: *mut Phidget_ChannelSubclass,
3969    ) -> PhidgetReturnCode;
3970}
3971extern "C" {
3972    pub fn Phidget_getDeviceClass(
3973        phid: PhidgetHandle,
3974        deviceClass: *mut Phidget_DeviceClass,
3975    ) -> PhidgetReturnCode;
3976}
3977extern "C" {
3978    pub fn Phidget_getDeviceClassName(
3979        phid: PhidgetHandle,
3980        deviceClassName: *mut *const ::std::os::raw::c_char,
3981    ) -> PhidgetReturnCode;
3982}
3983extern "C" {
3984    pub fn Phidget_getDeviceID(
3985        phid: PhidgetHandle,
3986        deviceID: *mut Phidget_DeviceID,
3987    ) -> PhidgetReturnCode;
3988}
3989extern "C" {
3990    pub fn Phidget_getDeviceLabel(
3991        phid: PhidgetHandle,
3992        deviceLabel: *mut *const ::std::os::raw::c_char,
3993    ) -> PhidgetReturnCode;
3994}
3995extern "C" {
3996    pub fn Phidget_setDeviceLabel(
3997        phid: PhidgetHandle,
3998        deviceLabel: *const ::std::os::raw::c_char,
3999    ) -> PhidgetReturnCode;
4000}
4001extern "C" {
4002    pub fn Phidget_getDeviceName(
4003        phid: PhidgetHandle,
4004        deviceName: *mut *const ::std::os::raw::c_char,
4005    ) -> PhidgetReturnCode;
4006}
4007extern "C" {
4008    pub fn Phidget_getDeviceSerialNumber(
4009        phid: PhidgetHandle,
4010        deviceSerialNumber: *mut i32,
4011    ) -> PhidgetReturnCode;
4012}
4013extern "C" {
4014    pub fn Phidget_setDeviceSerialNumber(
4015        phid: PhidgetHandle,
4016        deviceSerialNumber: i32,
4017    ) -> PhidgetReturnCode;
4018}
4019extern "C" {
4020    pub fn Phidget_getDeviceSKU(
4021        phid: PhidgetHandle,
4022        deviceSKU: *mut *const ::std::os::raw::c_char,
4023    ) -> PhidgetReturnCode;
4024}
4025extern "C" {
4026    pub fn Phidget_getDeviceVersion(
4027        phid: PhidgetHandle,
4028        deviceVersion: *mut ::std::os::raw::c_int,
4029    ) -> PhidgetReturnCode;
4030}
4031extern "C" {
4032    pub fn Phidget_getDeviceChannelCount(
4033        phid: PhidgetHandle,
4034        cls: Phidget_ChannelClass,
4035        count: *mut u32,
4036    ) -> PhidgetReturnCode;
4037}
4038extern "C" {
4039    pub fn Phidget_getIsHubPortDevice(
4040        phid: PhidgetHandle,
4041        isHubPortDevice: *mut ::std::os::raw::c_int,
4042    ) -> PhidgetReturnCode;
4043}
4044extern "C" {
4045    pub fn Phidget_setIsHubPortDevice(
4046        phid: PhidgetHandle,
4047        isHubPortDevice: ::std::os::raw::c_int,
4048    ) -> PhidgetReturnCode;
4049}
4050extern "C" {
4051    pub fn Phidget_getHub(phid: PhidgetHandle, hub: *mut PhidgetHandle) -> PhidgetReturnCode;
4052}
4053extern "C" {
4054    pub fn Phidget_getHubPort(
4055        phid: PhidgetHandle,
4056        hubPort: *mut ::std::os::raw::c_int,
4057    ) -> PhidgetReturnCode;
4058}
4059extern "C" {
4060    pub fn Phidget_setHubPort(
4061        phid: PhidgetHandle,
4062        hubPort: ::std::os::raw::c_int,
4063    ) -> PhidgetReturnCode;
4064}
4065extern "C" {
4066    pub fn Phidget_getHubPortCount(
4067        phid: PhidgetHandle,
4068        hubPortCount: *mut ::std::os::raw::c_int,
4069    ) -> PhidgetReturnCode;
4070}
4071extern "C" {
4072    pub fn Phidget_setMeshMode(phid: PhidgetHandle, mode: Phidget_MeshMode) -> PhidgetReturnCode;
4073}
4074extern "C" {
4075    pub fn Phidget_getMeshMode(
4076        phid: PhidgetHandle,
4077        mode: *mut Phidget_MeshMode,
4078    ) -> PhidgetReturnCode;
4079}
4080pub type Phidget_OnAttachCallback = ::std::option::Option<
4081    unsafe extern "C" fn(phid: PhidgetHandle, ctx: *mut ::std::os::raw::c_void),
4082>;
4083pub type Phidget_OnDetachCallback = ::std::option::Option<
4084    unsafe extern "C" fn(phid: PhidgetHandle, ctx: *mut ::std::os::raw::c_void),
4085>;
4086pub type Phidget_OnErrorCallback = ::std::option::Option<
4087    unsafe extern "C" fn(
4088        phid: PhidgetHandle,
4089        ctx: *mut ::std::os::raw::c_void,
4090        errorCode: Phidget_ErrorEventCode,
4091        errorString: *const ::std::os::raw::c_char,
4092    ),
4093>;
4094pub type Phidget_OnPropertyChangeCallback = ::std::option::Option<
4095    unsafe extern "C" fn(
4096        phid: PhidgetHandle,
4097        ctx: *mut ::std::os::raw::c_void,
4098        property: *const ::std::os::raw::c_char,
4099    ),
4100>;
4101extern "C" {
4102    pub fn Phidget_setOnDetachHandler(
4103        phid: PhidgetHandle,
4104        fptr: Phidget_OnDetachCallback,
4105        ctx: *mut ::std::os::raw::c_void,
4106    ) -> PhidgetReturnCode;
4107}
4108extern "C" {
4109    pub fn Phidget_setOnAttachHandler(
4110        phid: PhidgetHandle,
4111        fptr: Phidget_OnAttachCallback,
4112        ctx: *mut ::std::os::raw::c_void,
4113    ) -> PhidgetReturnCode;
4114}
4115extern "C" {
4116    pub fn Phidget_setOnErrorHandler(
4117        phid: PhidgetHandle,
4118        fptr: Phidget_OnErrorCallback,
4119        ctx: *mut ::std::os::raw::c_void,
4120    ) -> PhidgetReturnCode;
4121}
4122extern "C" {
4123    pub fn Phidget_setOnPropertyChangeHandler(
4124        phid: PhidgetHandle,
4125        fptr: Phidget_OnPropertyChangeCallback,
4126        ctx: *mut ::std::os::raw::c_void,
4127    ) -> PhidgetReturnCode;
4128}
4129extern "C" {
4130    pub fn Phidget_validDictionaryKey(arg1: *const ::std::os::raw::c_char)
4131        -> ::std::os::raw::c_int;
4132}
4133pub type PhidgetDictionary_OnChangeCallback = ::std::option::Option<
4134    unsafe extern "C" fn(
4135        arg1: ::std::os::raw::c_int,
4136        arg2: *const ::std::os::raw::c_char,
4137        arg3: *mut ::std::os::raw::c_void,
4138        arg4: ::std::os::raw::c_int,
4139        arg5: *const ::std::os::raw::c_char,
4140        arg6: *const ::std::os::raw::c_char,
4141    ),
4142>;
4143extern "C" {
4144    pub fn PhidgetDictionary_setOnChangeCallbackHandler(
4145        arg1: PhidgetDictionary_OnChangeCallback,
4146        arg2: *mut ::std::os::raw::c_void,
4147    ) -> PhidgetReturnCode;
4148}
4149#[repr(C)]
4150#[derive(Debug, Copy, Clone)]
4151pub struct _PhidgetManager {
4152    _unused: [u8; 0],
4153}
4154pub type PhidgetManagerHandle = *mut _PhidgetManager;
4155extern "C" {
4156    pub fn PhidgetManager_create(phidm: *mut PhidgetManagerHandle) -> PhidgetReturnCode;
4157}
4158extern "C" {
4159    pub fn PhidgetManager_delete(phidm: *mut PhidgetManagerHandle) -> PhidgetReturnCode;
4160}
4161extern "C" {
4162    pub fn PhidgetManager_open(phidm: PhidgetManagerHandle) -> PhidgetReturnCode;
4163}
4164extern "C" {
4165    pub fn PhidgetManager_close(phidm: PhidgetManagerHandle) -> PhidgetReturnCode;
4166}
4167pub type PhidgetManager_OnAttachCallback = ::std::option::Option<
4168    unsafe extern "C" fn(
4169        phidm: PhidgetManagerHandle,
4170        ctx: *mut ::std::os::raw::c_void,
4171        phid: PhidgetHandle,
4172    ),
4173>;
4174pub type PhidgetManager_OnDetachCallback = ::std::option::Option<
4175    unsafe extern "C" fn(
4176        phidm: PhidgetManagerHandle,
4177        ctx: *mut ::std::os::raw::c_void,
4178        phid: PhidgetHandle,
4179    ),
4180>;
4181pub type PhidgetManager_OnErrorCallback = ::std::option::Option<
4182    unsafe extern "C" fn(
4183        phidm: PhidgetManagerHandle,
4184        ctx: *mut ::std::os::raw::c_void,
4185        errorCode: Phidget_ErrorEventCode,
4186        errorString: *const ::std::os::raw::c_char,
4187    ),
4188>;
4189extern "C" {
4190    pub fn PhidgetManager_setOnAttachHandler(
4191        phidm: PhidgetManagerHandle,
4192        fptr: PhidgetManager_OnAttachCallback,
4193        ctx: *mut ::std::os::raw::c_void,
4194    ) -> PhidgetReturnCode;
4195}
4196extern "C" {
4197    pub fn PhidgetManager_setOnDetachHandler(
4198        phidm: PhidgetManagerHandle,
4199        fptr: PhidgetManager_OnDetachCallback,
4200        ctx: *mut ::std::os::raw::c_void,
4201    ) -> PhidgetReturnCode;
4202}
4203extern "C" {
4204    pub fn PhidgetManager_setOnErrorHandler(
4205        phidm: PhidgetManagerHandle,
4206        fptr: PhidgetManager_OnErrorCallback,
4207        ctx: *mut ::std::os::raw::c_void,
4208    ) -> PhidgetReturnCode;
4209}
4210extern "C" {
4211    pub fn PhidgetLog_enable(
4212        level: Phidget_LogLevel,
4213        destination: *const ::std::os::raw::c_char,
4214    ) -> PhidgetReturnCode;
4215}
4216extern "C" {
4217    pub fn PhidgetLog_disable() -> PhidgetReturnCode;
4218}
4219extern "C" {
4220    pub fn PhidgetLog_enableNetwork(
4221        address: *const ::std::os::raw::c_char,
4222        port: ::std::os::raw::c_int,
4223    ) -> PhidgetReturnCode;
4224}
4225extern "C" {
4226    pub fn PhidgetLog_disableNetwork() -> PhidgetReturnCode;
4227}
4228extern "C" {
4229    pub fn PhidgetLog_log(
4230        level: Phidget_LogLevel,
4231        message: *const ::std::os::raw::c_char,
4232        ...
4233    ) -> PhidgetReturnCode;
4234}
4235extern "C" {
4236    pub fn PhidgetLog_loge(
4237        file: *const ::std::os::raw::c_char,
4238        line: ::std::os::raw::c_int,
4239        func: *const ::std::os::raw::c_char,
4240        src: *const ::std::os::raw::c_char,
4241        level: Phidget_LogLevel,
4242        message: *const ::std::os::raw::c_char,
4243        ...
4244    ) -> PhidgetReturnCode;
4245}
4246extern "C" {
4247    pub fn PhidgetLog_logs(
4248        level: Phidget_LogLevel,
4249        message: *const ::std::os::raw::c_char,
4250    ) -> PhidgetReturnCode;
4251}
4252extern "C" {
4253    pub fn PhidgetLog_loges(
4254        level: Phidget_LogLevel,
4255        source: *const ::std::os::raw::c_char,
4256        message: *const ::std::os::raw::c_char,
4257    ) -> PhidgetReturnCode;
4258}
4259extern "C" {
4260    pub fn PhidgetLog_rotate() -> PhidgetReturnCode;
4261}
4262extern "C" {
4263    pub fn PhidgetLog_enableRotating() -> PhidgetReturnCode;
4264}
4265extern "C" {
4266    pub fn PhidgetLog_disableRotating() -> PhidgetReturnCode;
4267}
4268extern "C" {
4269    pub fn PhidgetLog_isRotating(isrotating: *mut ::std::os::raw::c_int) -> PhidgetReturnCode;
4270}
4271extern "C" {
4272    pub fn PhidgetLog_getRotating(
4273        size: *mut u64,
4274        keepCount: *mut ::std::os::raw::c_int,
4275    ) -> PhidgetReturnCode;
4276}
4277extern "C" {
4278    pub fn PhidgetLog_setRotating(size: u64, keepCount: ::std::os::raw::c_int)
4279        -> PhidgetReturnCode;
4280}
4281extern "C" {
4282    pub fn PhidgetLog_getLevel(level: *mut Phidget_LogLevel) -> PhidgetReturnCode;
4283}
4284extern "C" {
4285    pub fn PhidgetLog_setLevel(level: Phidget_LogLevel) -> PhidgetReturnCode;
4286}
4287extern "C" {
4288    pub fn PhidgetLog_addSource(
4289        arg1: *const ::std::os::raw::c_char,
4290        level: Phidget_LogLevel,
4291    ) -> PhidgetReturnCode;
4292}
4293extern "C" {
4294    pub fn PhidgetLog_getSourceLevel(
4295        source: *const ::std::os::raw::c_char,
4296        level: *mut Phidget_LogLevel,
4297    ) -> PhidgetReturnCode;
4298}
4299extern "C" {
4300    pub fn PhidgetLog_setSourceLevel(
4301        source: *const ::std::os::raw::c_char,
4302        level: Phidget_LogLevel,
4303    ) -> PhidgetReturnCode;
4304}
4305extern "C" {
4306    pub fn PhidgetLog_getSources(
4307        sources: *mut *const ::std::os::raw::c_char,
4308        count: *mut u32,
4309    ) -> PhidgetReturnCode;
4310}
4311#[repr(C)]
4312#[derive(Debug, Copy, Clone)]
4313pub struct PhidgetServer {
4314    pub name: *const ::std::os::raw::c_char,
4315    pub stype: *const ::std::os::raw::c_char,
4316    pub type_: PhidgetServerType,
4317    pub flags: ::std::os::raw::c_int,
4318    pub addr: *const ::std::os::raw::c_char,
4319    pub host: *const ::std::os::raw::c_char,
4320    pub port: ::std::os::raw::c_int,
4321    pub handle: *const ::std::os::raw::c_void,
4322}
4323#[test]
4324fn bindgen_test_layout_PhidgetServer() {
4325    assert_eq!(
4326        ::std::mem::size_of::<PhidgetServer>(),
4327        56usize,
4328        concat!("Size of: ", stringify!(PhidgetServer))
4329    );
4330    assert_eq!(
4331        ::std::mem::align_of::<PhidgetServer>(),
4332        8usize,
4333        concat!("Alignment of ", stringify!(PhidgetServer))
4334    );
4335    assert_eq!(
4336        unsafe { &(*(::std::ptr::null::<PhidgetServer>())).name as *const _ as usize },
4337        0usize,
4338        concat!(
4339            "Offset of field: ",
4340            stringify!(PhidgetServer),
4341            "::",
4342            stringify!(name)
4343        )
4344    );
4345    assert_eq!(
4346        unsafe { &(*(::std::ptr::null::<PhidgetServer>())).stype as *const _ as usize },
4347        8usize,
4348        concat!(
4349            "Offset of field: ",
4350            stringify!(PhidgetServer),
4351            "::",
4352            stringify!(stype)
4353        )
4354    );
4355    assert_eq!(
4356        unsafe { &(*(::std::ptr::null::<PhidgetServer>())).type_ as *const _ as usize },
4357        16usize,
4358        concat!(
4359            "Offset of field: ",
4360            stringify!(PhidgetServer),
4361            "::",
4362            stringify!(type_)
4363        )
4364    );
4365    assert_eq!(
4366        unsafe { &(*(::std::ptr::null::<PhidgetServer>())).flags as *const _ as usize },
4367        20usize,
4368        concat!(
4369            "Offset of field: ",
4370            stringify!(PhidgetServer),
4371            "::",
4372            stringify!(flags)
4373        )
4374    );
4375    assert_eq!(
4376        unsafe { &(*(::std::ptr::null::<PhidgetServer>())).addr as *const _ as usize },
4377        24usize,
4378        concat!(
4379            "Offset of field: ",
4380            stringify!(PhidgetServer),
4381            "::",
4382            stringify!(addr)
4383        )
4384    );
4385    assert_eq!(
4386        unsafe { &(*(::std::ptr::null::<PhidgetServer>())).host as *const _ as usize },
4387        32usize,
4388        concat!(
4389            "Offset of field: ",
4390            stringify!(PhidgetServer),
4391            "::",
4392            stringify!(host)
4393        )
4394    );
4395    assert_eq!(
4396        unsafe { &(*(::std::ptr::null::<PhidgetServer>())).port as *const _ as usize },
4397        40usize,
4398        concat!(
4399            "Offset of field: ",
4400            stringify!(PhidgetServer),
4401            "::",
4402            stringify!(port)
4403        )
4404    );
4405    assert_eq!(
4406        unsafe { &(*(::std::ptr::null::<PhidgetServer>())).handle as *const _ as usize },
4407        48usize,
4408        concat!(
4409            "Offset of field: ",
4410            stringify!(PhidgetServer),
4411            "::",
4412            stringify!(handle)
4413        )
4414    );
4415}
4416pub type PhidgetServerHandle = *mut PhidgetServer;
4417extern "C" {
4418    pub fn PhidgetNet_addServer(
4419        serverName: *const ::std::os::raw::c_char,
4420        address: *const ::std::os::raw::c_char,
4421        port: ::std::os::raw::c_int,
4422        password: *const ::std::os::raw::c_char,
4423        flags: ::std::os::raw::c_int,
4424    ) -> PhidgetReturnCode;
4425}
4426extern "C" {
4427    pub fn PhidgetNet_removeServer(serverName: *const ::std::os::raw::c_char) -> PhidgetReturnCode;
4428}
4429extern "C" {
4430    pub fn PhidgetNet_removeAllServers() -> PhidgetReturnCode;
4431}
4432extern "C" {
4433    pub fn PhidgetNet_enableServer(serverName: *const ::std::os::raw::c_char) -> PhidgetReturnCode;
4434}
4435extern "C" {
4436    pub fn PhidgetNet_disableServer(
4437        serverName: *const ::std::os::raw::c_char,
4438        flags: ::std::os::raw::c_int,
4439    ) -> PhidgetReturnCode;
4440}
4441extern "C" {
4442    pub fn PhidgetNet_setServerPassword(
4443        serverName: *const ::std::os::raw::c_char,
4444        password: *const ::std::os::raw::c_char,
4445    ) -> PhidgetReturnCode;
4446}
4447extern "C" {
4448    pub fn PhidgetNet_enableServerDiscovery(serverType: PhidgetServerType) -> PhidgetReturnCode;
4449}
4450extern "C" {
4451    pub fn PhidgetNet_disableServerDiscovery(serverType: PhidgetServerType) -> PhidgetReturnCode;
4452}
4453pub type PhidgetNet_OnServerAddedCallback = ::std::option::Option<
4454    unsafe extern "C" fn(
4455        ctx: *mut ::std::os::raw::c_void,
4456        server: PhidgetServerHandle,
4457        kv: *mut ::std::os::raw::c_void,
4458    ),
4459>;
4460pub type PhidgetNet_OnServerRemovedCallback = ::std::option::Option<
4461    unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, server: PhidgetServerHandle),
4462>;
4463extern "C" {
4464    pub fn PhidgetNet_setOnServerAddedHandler(
4465        fptr: PhidgetNet_OnServerAddedCallback,
4466        ctx: *mut ::std::os::raw::c_void,
4467    ) -> PhidgetReturnCode;
4468}
4469extern "C" {
4470    pub fn PhidgetNet_setOnServerRemovedHandler(
4471        fptr: PhidgetNet_OnServerRemovedCallback,
4472        ctx: *mut ::std::os::raw::c_void,
4473    ) -> PhidgetReturnCode;
4474}
4475extern "C" {
4476    pub fn PhidgetNet_getServerAddressList(
4477        hostname: *const ::std::os::raw::c_char,
4478        addressFamily: ::std::os::raw::c_int,
4479        addressList: *mut *mut ::std::os::raw::c_char,
4480        count: *mut u32,
4481    ) -> PhidgetReturnCode;
4482}
4483extern "C" {
4484    pub fn PhidgetNet_freeServerAddressList(
4485        addressList: *mut *mut ::std::os::raw::c_char,
4486        count: u32,
4487    ) -> PhidgetReturnCode;
4488}
4489extern "C" {
4490    pub fn PhidgetNet_startServer(
4491        flags: ::std::os::raw::c_int,
4492        addressFamily: ::std::os::raw::c_int,
4493        serverName: *const ::std::os::raw::c_char,
4494        address: *const ::std::os::raw::c_char,
4495        port: ::std::os::raw::c_int,
4496        password: *const ::std::os::raw::c_char,
4497        server: *mut PhidgetServerHandle,
4498    ) -> PhidgetReturnCode;
4499}
4500extern "C" {
4501    pub fn PhidgetNet_stopServer(server: *mut PhidgetServerHandle) -> PhidgetReturnCode;
4502}
4503extern "C" {
4504    pub fn Phidget_enumString(
4505        arg1: *const ::std::os::raw::c_char,
4506        arg2: ::std::os::raw::c_int,
4507    ) -> *const ::std::os::raw::c_char;
4508}
4509extern "C" {
4510    pub fn Phidget_enumFromString(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4511}
4512#[repr(C)]
4513#[derive(Debug, Copy, Clone)]
4514pub struct _PhidgetVoltageRatioInput {
4515    _unused: [u8; 0],
4516}
4517pub type PhidgetVoltageRatioInputHandle = *mut _PhidgetVoltageRatioInput;
4518extern "C" {
4519    pub fn PhidgetVoltageRatioInput_create(
4520        ch: *mut PhidgetVoltageRatioInputHandle,
4521    ) -> PhidgetReturnCode;
4522}
4523extern "C" {
4524    pub fn PhidgetVoltageRatioInput_delete(
4525        ch: *mut PhidgetVoltageRatioInputHandle,
4526    ) -> PhidgetReturnCode;
4527}
4528extern "C" {
4529    pub fn PhidgetVoltageRatioInput_setBridgeEnabled(
4530        ch: PhidgetVoltageRatioInputHandle,
4531        bridgeEnabled: ::std::os::raw::c_int,
4532    ) -> PhidgetReturnCode;
4533}
4534extern "C" {
4535    pub fn PhidgetVoltageRatioInput_getBridgeEnabled(
4536        ch: PhidgetVoltageRatioInputHandle,
4537        bridgeEnabled: *mut ::std::os::raw::c_int,
4538    ) -> PhidgetReturnCode;
4539}
4540extern "C" {
4541    pub fn PhidgetVoltageRatioInput_setBridgeGain(
4542        ch: PhidgetVoltageRatioInputHandle,
4543        bridgeGain: PhidgetVoltageRatioInput_BridgeGain,
4544    ) -> PhidgetReturnCode;
4545}
4546extern "C" {
4547    pub fn PhidgetVoltageRatioInput_getBridgeGain(
4548        ch: PhidgetVoltageRatioInputHandle,
4549        bridgeGain: *mut PhidgetVoltageRatioInput_BridgeGain,
4550    ) -> PhidgetReturnCode;
4551}
4552extern "C" {
4553    pub fn PhidgetVoltageRatioInput_setDataInterval(
4554        ch: PhidgetVoltageRatioInputHandle,
4555        dataInterval: u32,
4556    ) -> PhidgetReturnCode;
4557}
4558extern "C" {
4559    pub fn PhidgetVoltageRatioInput_getDataInterval(
4560        ch: PhidgetVoltageRatioInputHandle,
4561        dataInterval: *mut u32,
4562    ) -> PhidgetReturnCode;
4563}
4564extern "C" {
4565    pub fn PhidgetVoltageRatioInput_getMinDataInterval(
4566        ch: PhidgetVoltageRatioInputHandle,
4567        minDataInterval: *mut u32,
4568    ) -> PhidgetReturnCode;
4569}
4570extern "C" {
4571    pub fn PhidgetVoltageRatioInput_getMaxDataInterval(
4572        ch: PhidgetVoltageRatioInputHandle,
4573        maxDataInterval: *mut u32,
4574    ) -> PhidgetReturnCode;
4575}
4576extern "C" {
4577    pub fn PhidgetVoltageRatioInput_setSensorType(
4578        ch: PhidgetVoltageRatioInputHandle,
4579        sensorType: PhidgetVoltageRatioInput_SensorType,
4580    ) -> PhidgetReturnCode;
4581}
4582extern "C" {
4583    pub fn PhidgetVoltageRatioInput_getSensorType(
4584        ch: PhidgetVoltageRatioInputHandle,
4585        sensorType: *mut PhidgetVoltageRatioInput_SensorType,
4586    ) -> PhidgetReturnCode;
4587}
4588extern "C" {
4589    pub fn PhidgetVoltageRatioInput_getSensorUnit(
4590        ch: PhidgetVoltageRatioInputHandle,
4591        sensorUnit: *mut Phidget_UnitInfo,
4592    ) -> PhidgetReturnCode;
4593}
4594extern "C" {
4595    pub fn PhidgetVoltageRatioInput_getSensorValue(
4596        ch: PhidgetVoltageRatioInputHandle,
4597        sensorValue: *mut f64,
4598    ) -> PhidgetReturnCode;
4599}
4600extern "C" {
4601    pub fn PhidgetVoltageRatioInput_setSensorValueChangeTrigger(
4602        ch: PhidgetVoltageRatioInputHandle,
4603        sensorValueChangeTrigger: f64,
4604    ) -> PhidgetReturnCode;
4605}
4606extern "C" {
4607    pub fn PhidgetVoltageRatioInput_getSensorValueChangeTrigger(
4608        ch: PhidgetVoltageRatioInputHandle,
4609        sensorValueChangeTrigger: *mut f64,
4610    ) -> PhidgetReturnCode;
4611}
4612extern "C" {
4613    pub fn PhidgetVoltageRatioInput_getVoltageRatio(
4614        ch: PhidgetVoltageRatioInputHandle,
4615        voltageRatio: *mut f64,
4616    ) -> PhidgetReturnCode;
4617}
4618extern "C" {
4619    pub fn PhidgetVoltageRatioInput_getMinVoltageRatio(
4620        ch: PhidgetVoltageRatioInputHandle,
4621        minVoltageRatio: *mut f64,
4622    ) -> PhidgetReturnCode;
4623}
4624extern "C" {
4625    pub fn PhidgetVoltageRatioInput_getMaxVoltageRatio(
4626        ch: PhidgetVoltageRatioInputHandle,
4627        maxVoltageRatio: *mut f64,
4628    ) -> PhidgetReturnCode;
4629}
4630extern "C" {
4631    pub fn PhidgetVoltageRatioInput_setVoltageRatioChangeTrigger(
4632        ch: PhidgetVoltageRatioInputHandle,
4633        voltageRatioChangeTrigger: f64,
4634    ) -> PhidgetReturnCode;
4635}
4636extern "C" {
4637    pub fn PhidgetVoltageRatioInput_getVoltageRatioChangeTrigger(
4638        ch: PhidgetVoltageRatioInputHandle,
4639        voltageRatioChangeTrigger: *mut f64,
4640    ) -> PhidgetReturnCode;
4641}
4642extern "C" {
4643    pub fn PhidgetVoltageRatioInput_getMinVoltageRatioChangeTrigger(
4644        ch: PhidgetVoltageRatioInputHandle,
4645        minVoltageRatioChangeTrigger: *mut f64,
4646    ) -> PhidgetReturnCode;
4647}
4648extern "C" {
4649    pub fn PhidgetVoltageRatioInput_getMaxVoltageRatioChangeTrigger(
4650        ch: PhidgetVoltageRatioInputHandle,
4651        maxVoltageRatioChangeTrigger: *mut f64,
4652    ) -> PhidgetReturnCode;
4653}
4654pub type PhidgetVoltageRatioInput_OnSensorChangeCallback = ::std::option::Option<
4655    unsafe extern "C" fn(
4656        ch: PhidgetVoltageRatioInputHandle,
4657        ctx: *mut ::std::os::raw::c_void,
4658        sensorValue: f64,
4659        sensorUnit: *mut Phidget_UnitInfo,
4660    ),
4661>;
4662extern "C" {
4663    pub fn PhidgetVoltageRatioInput_setOnSensorChangeHandler(
4664        ch: PhidgetVoltageRatioInputHandle,
4665        fptr: PhidgetVoltageRatioInput_OnSensorChangeCallback,
4666        ctx: *mut ::std::os::raw::c_void,
4667    ) -> PhidgetReturnCode;
4668}
4669pub type PhidgetVoltageRatioInput_OnVoltageRatioChangeCallback = ::std::option::Option<
4670    unsafe extern "C" fn(
4671        ch: PhidgetVoltageRatioInputHandle,
4672        ctx: *mut ::std::os::raw::c_void,
4673        voltageRatio: f64,
4674    ),
4675>;
4676extern "C" {
4677    pub fn PhidgetVoltageRatioInput_setOnVoltageRatioChangeHandler(
4678        ch: PhidgetVoltageRatioInputHandle,
4679        fptr: PhidgetVoltageRatioInput_OnVoltageRatioChangeCallback,
4680        ctx: *mut ::std::os::raw::c_void,
4681    ) -> PhidgetReturnCode;
4682}
4683#[repr(C)]
4684#[derive(Debug, Copy, Clone)]
4685pub struct _PhidgetDigitalInput {
4686    _unused: [u8; 0],
4687}
4688pub type PhidgetDigitalInputHandle = *mut _PhidgetDigitalInput;
4689extern "C" {
4690    pub fn PhidgetDigitalInput_create(ch: *mut PhidgetDigitalInputHandle) -> PhidgetReturnCode;
4691}
4692extern "C" {
4693    pub fn PhidgetDigitalInput_delete(ch: *mut PhidgetDigitalInputHandle) -> PhidgetReturnCode;
4694}
4695extern "C" {
4696    pub fn PhidgetDigitalInput_setInputMode(
4697        ch: PhidgetDigitalInputHandle,
4698        inputMode: Phidget_InputMode,
4699    ) -> PhidgetReturnCode;
4700}
4701extern "C" {
4702    pub fn PhidgetDigitalInput_getInputMode(
4703        ch: PhidgetDigitalInputHandle,
4704        inputMode: *mut Phidget_InputMode,
4705    ) -> PhidgetReturnCode;
4706}
4707extern "C" {
4708    pub fn PhidgetDigitalInput_setPowerSupply(
4709        ch: PhidgetDigitalInputHandle,
4710        powerSupply: Phidget_PowerSupply,
4711    ) -> PhidgetReturnCode;
4712}
4713extern "C" {
4714    pub fn PhidgetDigitalInput_getPowerSupply(
4715        ch: PhidgetDigitalInputHandle,
4716        powerSupply: *mut Phidget_PowerSupply,
4717    ) -> PhidgetReturnCode;
4718}
4719extern "C" {
4720    pub fn PhidgetDigitalInput_getState(
4721        ch: PhidgetDigitalInputHandle,
4722        state: *mut ::std::os::raw::c_int,
4723    ) -> PhidgetReturnCode;
4724}
4725pub type PhidgetDigitalInput_OnStateChangeCallback = ::std::option::Option<
4726    unsafe extern "C" fn(
4727        ch: PhidgetDigitalInputHandle,
4728        ctx: *mut ::std::os::raw::c_void,
4729        state: ::std::os::raw::c_int,
4730    ),
4731>;
4732extern "C" {
4733    pub fn PhidgetDigitalInput_setOnStateChangeHandler(
4734        ch: PhidgetDigitalInputHandle,
4735        fptr: PhidgetDigitalInput_OnStateChangeCallback,
4736        ctx: *mut ::std::os::raw::c_void,
4737    ) -> PhidgetReturnCode;
4738}
4739#[repr(C)]
4740#[derive(Debug, Copy, Clone)]
4741pub struct _PhidgetDigitalOutput {
4742    _unused: [u8; 0],
4743}
4744pub type PhidgetDigitalOutputHandle = *mut _PhidgetDigitalOutput;
4745extern "C" {
4746    pub fn PhidgetDigitalOutput_create(ch: *mut PhidgetDigitalOutputHandle) -> PhidgetReturnCode;
4747}
4748extern "C" {
4749    pub fn PhidgetDigitalOutput_delete(ch: *mut PhidgetDigitalOutputHandle) -> PhidgetReturnCode;
4750}
4751extern "C" {
4752    pub fn PhidgetDigitalOutput_enableFailsafe(
4753        ch: PhidgetDigitalOutputHandle,
4754        failsafeTime: u32,
4755    ) -> PhidgetReturnCode;
4756}
4757extern "C" {
4758    pub fn PhidgetDigitalOutput_resetFailsafe(ch: PhidgetDigitalOutputHandle) -> PhidgetReturnCode;
4759}
4760extern "C" {
4761    pub fn PhidgetDigitalOutput_setDutyCycle(
4762        ch: PhidgetDigitalOutputHandle,
4763        dutyCycle: f64,
4764    ) -> PhidgetReturnCode;
4765}
4766extern "C" {
4767    pub fn PhidgetDigitalOutput_setDutyCycle_async(
4768        ch: PhidgetDigitalOutputHandle,
4769        dutyCycle: f64,
4770        fptr: Phidget_AsyncCallback,
4771        ctx: *mut ::std::os::raw::c_void,
4772    );
4773}
4774extern "C" {
4775    pub fn PhidgetDigitalOutput_getDutyCycle(
4776        ch: PhidgetDigitalOutputHandle,
4777        dutyCycle: *mut f64,
4778    ) -> PhidgetReturnCode;
4779}
4780extern "C" {
4781    pub fn PhidgetDigitalOutput_getMinDutyCycle(
4782        ch: PhidgetDigitalOutputHandle,
4783        minDutyCycle: *mut f64,
4784    ) -> PhidgetReturnCode;
4785}
4786extern "C" {
4787    pub fn PhidgetDigitalOutput_getMaxDutyCycle(
4788        ch: PhidgetDigitalOutputHandle,
4789        maxDutyCycle: *mut f64,
4790    ) -> PhidgetReturnCode;
4791}
4792extern "C" {
4793    pub fn PhidgetDigitalOutput_getMinFailsafeTime(
4794        ch: PhidgetDigitalOutputHandle,
4795        minFailsafeTime: *mut u32,
4796    ) -> PhidgetReturnCode;
4797}
4798extern "C" {
4799    pub fn PhidgetDigitalOutput_getMaxFailsafeTime(
4800        ch: PhidgetDigitalOutputHandle,
4801        maxFailsafeTime: *mut u32,
4802    ) -> PhidgetReturnCode;
4803}
4804extern "C" {
4805    pub fn PhidgetDigitalOutput_setFrequency(
4806        ch: PhidgetDigitalOutputHandle,
4807        frequency: f64,
4808    ) -> PhidgetReturnCode;
4809}
4810extern "C" {
4811    pub fn PhidgetDigitalOutput_getFrequency(
4812        ch: PhidgetDigitalOutputHandle,
4813        frequency: *mut f64,
4814    ) -> PhidgetReturnCode;
4815}
4816extern "C" {
4817    pub fn PhidgetDigitalOutput_getMinFrequency(
4818        ch: PhidgetDigitalOutputHandle,
4819        minFrequency: *mut f64,
4820    ) -> PhidgetReturnCode;
4821}
4822extern "C" {
4823    pub fn PhidgetDigitalOutput_getMaxFrequency(
4824        ch: PhidgetDigitalOutputHandle,
4825        maxFrequency: *mut f64,
4826    ) -> PhidgetReturnCode;
4827}
4828extern "C" {
4829    pub fn PhidgetDigitalOutput_setLEDCurrentLimit(
4830        ch: PhidgetDigitalOutputHandle,
4831        LEDCurrentLimit: f64,
4832    ) -> PhidgetReturnCode;
4833}
4834extern "C" {
4835    pub fn PhidgetDigitalOutput_setLEDCurrentLimit_async(
4836        ch: PhidgetDigitalOutputHandle,
4837        LEDCurrentLimit: f64,
4838        fptr: Phidget_AsyncCallback,
4839        ctx: *mut ::std::os::raw::c_void,
4840    );
4841}
4842extern "C" {
4843    pub fn PhidgetDigitalOutput_getLEDCurrentLimit(
4844        ch: PhidgetDigitalOutputHandle,
4845        LEDCurrentLimit: *mut f64,
4846    ) -> PhidgetReturnCode;
4847}
4848extern "C" {
4849    pub fn PhidgetDigitalOutput_getMinLEDCurrentLimit(
4850        ch: PhidgetDigitalOutputHandle,
4851        minLEDCurrentLimit: *mut f64,
4852    ) -> PhidgetReturnCode;
4853}
4854extern "C" {
4855    pub fn PhidgetDigitalOutput_getMaxLEDCurrentLimit(
4856        ch: PhidgetDigitalOutputHandle,
4857        maxLEDCurrentLimit: *mut f64,
4858    ) -> PhidgetReturnCode;
4859}
4860extern "C" {
4861    pub fn PhidgetDigitalOutput_setLEDForwardVoltage(
4862        ch: PhidgetDigitalOutputHandle,
4863        LEDForwardVoltage: PhidgetDigitalOutput_LEDForwardVoltage,
4864    ) -> PhidgetReturnCode;
4865}
4866extern "C" {
4867    pub fn PhidgetDigitalOutput_getLEDForwardVoltage(
4868        ch: PhidgetDigitalOutputHandle,
4869        LEDForwardVoltage: *mut PhidgetDigitalOutput_LEDForwardVoltage,
4870    ) -> PhidgetReturnCode;
4871}
4872extern "C" {
4873    pub fn PhidgetDigitalOutput_setState(
4874        ch: PhidgetDigitalOutputHandle,
4875        state: ::std::os::raw::c_int,
4876    ) -> PhidgetReturnCode;
4877}
4878extern "C" {
4879    pub fn PhidgetDigitalOutput_setState_async(
4880        ch: PhidgetDigitalOutputHandle,
4881        state: ::std::os::raw::c_int,
4882        fptr: Phidget_AsyncCallback,
4883        ctx: *mut ::std::os::raw::c_void,
4884    );
4885}
4886extern "C" {
4887    pub fn PhidgetDigitalOutput_getState(
4888        ch: PhidgetDigitalOutputHandle,
4889        state: *mut ::std::os::raw::c_int,
4890    ) -> PhidgetReturnCode;
4891}
4892#[repr(C)]
4893#[derive(Debug, Copy, Clone)]
4894pub struct _PhidgetRCServo {
4895    _unused: [u8; 0],
4896}
4897pub type PhidgetRCServoHandle = *mut _PhidgetRCServo;
4898extern "C" {
4899    pub fn PhidgetRCServo_create(ch: *mut PhidgetRCServoHandle) -> PhidgetReturnCode;
4900}
4901extern "C" {
4902    pub fn PhidgetRCServo_delete(ch: *mut PhidgetRCServoHandle) -> PhidgetReturnCode;
4903}
4904extern "C" {
4905    pub fn PhidgetRCServo_enableFailsafe(
4906        ch: PhidgetRCServoHandle,
4907        failsafeTime: u32,
4908    ) -> PhidgetReturnCode;
4909}
4910extern "C" {
4911    pub fn PhidgetRCServo_resetFailsafe(ch: PhidgetRCServoHandle) -> PhidgetReturnCode;
4912}
4913extern "C" {
4914    pub fn PhidgetRCServo_setAcceleration(
4915        ch: PhidgetRCServoHandle,
4916        acceleration: f64,
4917    ) -> PhidgetReturnCode;
4918}
4919extern "C" {
4920    pub fn PhidgetRCServo_getAcceleration(
4921        ch: PhidgetRCServoHandle,
4922        acceleration: *mut f64,
4923    ) -> PhidgetReturnCode;
4924}
4925extern "C" {
4926    pub fn PhidgetRCServo_getMinAcceleration(
4927        ch: PhidgetRCServoHandle,
4928        minAcceleration: *mut f64,
4929    ) -> PhidgetReturnCode;
4930}
4931extern "C" {
4932    pub fn PhidgetRCServo_getMaxAcceleration(
4933        ch: PhidgetRCServoHandle,
4934        maxAcceleration: *mut f64,
4935    ) -> PhidgetReturnCode;
4936}
4937extern "C" {
4938    pub fn PhidgetRCServo_setDataInterval(
4939        ch: PhidgetRCServoHandle,
4940        dataInterval: u32,
4941    ) -> PhidgetReturnCode;
4942}
4943extern "C" {
4944    pub fn PhidgetRCServo_getDataInterval(
4945        ch: PhidgetRCServoHandle,
4946        dataInterval: *mut u32,
4947    ) -> PhidgetReturnCode;
4948}
4949extern "C" {
4950    pub fn PhidgetRCServo_getMinDataInterval(
4951        ch: PhidgetRCServoHandle,
4952        minDataInterval: *mut u32,
4953    ) -> PhidgetReturnCode;
4954}
4955extern "C" {
4956    pub fn PhidgetRCServo_getMaxDataInterval(
4957        ch: PhidgetRCServoHandle,
4958        maxDataInterval: *mut u32,
4959    ) -> PhidgetReturnCode;
4960}
4961extern "C" {
4962    pub fn PhidgetRCServo_setEngaged(
4963        ch: PhidgetRCServoHandle,
4964        engaged: ::std::os::raw::c_int,
4965    ) -> PhidgetReturnCode;
4966}
4967extern "C" {
4968    pub fn PhidgetRCServo_getEngaged(
4969        ch: PhidgetRCServoHandle,
4970        engaged: *mut ::std::os::raw::c_int,
4971    ) -> PhidgetReturnCode;
4972}
4973extern "C" {
4974    pub fn PhidgetRCServo_getMinFailsafeTime(
4975        ch: PhidgetRCServoHandle,
4976        minFailsafeTime: *mut u32,
4977    ) -> PhidgetReturnCode;
4978}
4979extern "C" {
4980    pub fn PhidgetRCServo_getMaxFailsafeTime(
4981        ch: PhidgetRCServoHandle,
4982        maxFailsafeTime: *mut u32,
4983    ) -> PhidgetReturnCode;
4984}
4985extern "C" {
4986    pub fn PhidgetRCServo_getIsMoving(
4987        ch: PhidgetRCServoHandle,
4988        isMoving: *mut ::std::os::raw::c_int,
4989    ) -> PhidgetReturnCode;
4990}
4991extern "C" {
4992    pub fn PhidgetRCServo_getPosition(
4993        ch: PhidgetRCServoHandle,
4994        position: *mut f64,
4995    ) -> PhidgetReturnCode;
4996}
4997extern "C" {
4998    pub fn PhidgetRCServo_setMinPosition(
4999        ch: PhidgetRCServoHandle,
5000        minPosition: f64,
5001    ) -> PhidgetReturnCode;
5002}
5003extern "C" {
5004    pub fn PhidgetRCServo_getMinPosition(
5005        ch: PhidgetRCServoHandle,
5006        minPosition: *mut f64,
5007    ) -> PhidgetReturnCode;
5008}
5009extern "C" {
5010    pub fn PhidgetRCServo_setMaxPosition(
5011        ch: PhidgetRCServoHandle,
5012        maxPosition: f64,
5013    ) -> PhidgetReturnCode;
5014}
5015extern "C" {
5016    pub fn PhidgetRCServo_getMaxPosition(
5017        ch: PhidgetRCServoHandle,
5018        maxPosition: *mut f64,
5019    ) -> PhidgetReturnCode;
5020}
5021extern "C" {
5022    pub fn PhidgetRCServo_setMinPulseWidth(
5023        ch: PhidgetRCServoHandle,
5024        minPulseWidth: f64,
5025    ) -> PhidgetReturnCode;
5026}
5027extern "C" {
5028    pub fn PhidgetRCServo_getMinPulseWidth(
5029        ch: PhidgetRCServoHandle,
5030        minPulseWidth: *mut f64,
5031    ) -> PhidgetReturnCode;
5032}
5033extern "C" {
5034    pub fn PhidgetRCServo_setMaxPulseWidth(
5035        ch: PhidgetRCServoHandle,
5036        maxPulseWidth: f64,
5037    ) -> PhidgetReturnCode;
5038}
5039extern "C" {
5040    pub fn PhidgetRCServo_getMaxPulseWidth(
5041        ch: PhidgetRCServoHandle,
5042        maxPulseWidth: *mut f64,
5043    ) -> PhidgetReturnCode;
5044}
5045extern "C" {
5046    pub fn PhidgetRCServo_getMinPulseWidthLimit(
5047        ch: PhidgetRCServoHandle,
5048        minPulseWidthLimit: *mut f64,
5049    ) -> PhidgetReturnCode;
5050}
5051extern "C" {
5052    pub fn PhidgetRCServo_getMaxPulseWidthLimit(
5053        ch: PhidgetRCServoHandle,
5054        maxPulseWidthLimit: *mut f64,
5055    ) -> PhidgetReturnCode;
5056}
5057extern "C" {
5058    pub fn PhidgetRCServo_setSpeedRampingState(
5059        ch: PhidgetRCServoHandle,
5060        speedRampingState: ::std::os::raw::c_int,
5061    ) -> PhidgetReturnCode;
5062}
5063extern "C" {
5064    pub fn PhidgetRCServo_getSpeedRampingState(
5065        ch: PhidgetRCServoHandle,
5066        speedRampingState: *mut ::std::os::raw::c_int,
5067    ) -> PhidgetReturnCode;
5068}
5069extern "C" {
5070    pub fn PhidgetRCServo_setTargetPosition(
5071        ch: PhidgetRCServoHandle,
5072        targetPosition: f64,
5073    ) -> PhidgetReturnCode;
5074}
5075extern "C" {
5076    pub fn PhidgetRCServo_setTargetPosition_async(
5077        ch: PhidgetRCServoHandle,
5078        targetPosition: f64,
5079        fptr: Phidget_AsyncCallback,
5080        ctx: *mut ::std::os::raw::c_void,
5081    );
5082}
5083extern "C" {
5084    pub fn PhidgetRCServo_getTargetPosition(
5085        ch: PhidgetRCServoHandle,
5086        targetPosition: *mut f64,
5087    ) -> PhidgetReturnCode;
5088}
5089extern "C" {
5090    pub fn PhidgetRCServo_setTorque(ch: PhidgetRCServoHandle, torque: f64) -> PhidgetReturnCode;
5091}
5092extern "C" {
5093    pub fn PhidgetRCServo_getTorque(
5094        ch: PhidgetRCServoHandle,
5095        torque: *mut f64,
5096    ) -> PhidgetReturnCode;
5097}
5098extern "C" {
5099    pub fn PhidgetRCServo_getMinTorque(
5100        ch: PhidgetRCServoHandle,
5101        minTorque: *mut f64,
5102    ) -> PhidgetReturnCode;
5103}
5104extern "C" {
5105    pub fn PhidgetRCServo_getMaxTorque(
5106        ch: PhidgetRCServoHandle,
5107        maxTorque: *mut f64,
5108    ) -> PhidgetReturnCode;
5109}
5110extern "C" {
5111    pub fn PhidgetRCServo_getVelocity(
5112        ch: PhidgetRCServoHandle,
5113        velocity: *mut f64,
5114    ) -> PhidgetReturnCode;
5115}
5116extern "C" {
5117    pub fn PhidgetRCServo_setVelocityLimit(
5118        ch: PhidgetRCServoHandle,
5119        velocityLimit: f64,
5120    ) -> PhidgetReturnCode;
5121}
5122extern "C" {
5123    pub fn PhidgetRCServo_getVelocityLimit(
5124        ch: PhidgetRCServoHandle,
5125        velocityLimit: *mut f64,
5126    ) -> PhidgetReturnCode;
5127}
5128extern "C" {
5129    pub fn PhidgetRCServo_getMinVelocityLimit(
5130        ch: PhidgetRCServoHandle,
5131        minVelocityLimit: *mut f64,
5132    ) -> PhidgetReturnCode;
5133}
5134extern "C" {
5135    pub fn PhidgetRCServo_getMaxVelocityLimit(
5136        ch: PhidgetRCServoHandle,
5137        maxVelocityLimit: *mut f64,
5138    ) -> PhidgetReturnCode;
5139}
5140extern "C" {
5141    pub fn PhidgetRCServo_setVoltage(
5142        ch: PhidgetRCServoHandle,
5143        voltage: PhidgetRCServo_Voltage,
5144    ) -> PhidgetReturnCode;
5145}
5146extern "C" {
5147    pub fn PhidgetRCServo_getVoltage(
5148        ch: PhidgetRCServoHandle,
5149        voltage: *mut PhidgetRCServo_Voltage,
5150    ) -> PhidgetReturnCode;
5151}
5152pub type PhidgetRCServo_OnPositionChangeCallback = ::std::option::Option<
5153    unsafe extern "C" fn(ch: PhidgetRCServoHandle, ctx: *mut ::std::os::raw::c_void, position: f64),
5154>;
5155extern "C" {
5156    pub fn PhidgetRCServo_setOnPositionChangeHandler(
5157        ch: PhidgetRCServoHandle,
5158        fptr: PhidgetRCServo_OnPositionChangeCallback,
5159        ctx: *mut ::std::os::raw::c_void,
5160    ) -> PhidgetReturnCode;
5161}
5162pub type PhidgetRCServo_OnTargetPositionReachedCallback = ::std::option::Option<
5163    unsafe extern "C" fn(ch: PhidgetRCServoHandle, ctx: *mut ::std::os::raw::c_void, position: f64),
5164>;
5165extern "C" {
5166    pub fn PhidgetRCServo_setOnTargetPositionReachedHandler(
5167        ch: PhidgetRCServoHandle,
5168        fptr: PhidgetRCServo_OnTargetPositionReachedCallback,
5169        ctx: *mut ::std::os::raw::c_void,
5170    ) -> PhidgetReturnCode;
5171}
5172pub type PhidgetRCServo_OnVelocityChangeCallback = ::std::option::Option<
5173    unsafe extern "C" fn(ch: PhidgetRCServoHandle, ctx: *mut ::std::os::raw::c_void, velocity: f64),
5174>;
5175extern "C" {
5176    pub fn PhidgetRCServo_setOnVelocityChangeHandler(
5177        ch: PhidgetRCServoHandle,
5178        fptr: PhidgetRCServo_OnVelocityChangeCallback,
5179        ctx: *mut ::std::os::raw::c_void,
5180    ) -> PhidgetReturnCode;
5181}
5182#[repr(C)]
5183#[derive(Debug, Copy, Clone)]
5184pub struct _PhidgetVoltageOutput {
5185    _unused: [u8; 0],
5186}
5187pub type PhidgetVoltageOutputHandle = *mut _PhidgetVoltageOutput;
5188extern "C" {
5189    pub fn PhidgetVoltageOutput_create(ch: *mut PhidgetVoltageOutputHandle) -> PhidgetReturnCode;
5190}
5191extern "C" {
5192    pub fn PhidgetVoltageOutput_delete(ch: *mut PhidgetVoltageOutputHandle) -> PhidgetReturnCode;
5193}
5194extern "C" {
5195    pub fn PhidgetVoltageOutput_enableFailsafe(
5196        ch: PhidgetVoltageOutputHandle,
5197        failsafeTime: u32,
5198    ) -> PhidgetReturnCode;
5199}
5200extern "C" {
5201    pub fn PhidgetVoltageOutput_resetFailsafe(ch: PhidgetVoltageOutputHandle) -> PhidgetReturnCode;
5202}
5203extern "C" {
5204    pub fn PhidgetVoltageOutput_setEnabled(
5205        ch: PhidgetVoltageOutputHandle,
5206        enabled: ::std::os::raw::c_int,
5207    ) -> PhidgetReturnCode;
5208}
5209extern "C" {
5210    pub fn PhidgetVoltageOutput_getEnabled(
5211        ch: PhidgetVoltageOutputHandle,
5212        enabled: *mut ::std::os::raw::c_int,
5213    ) -> PhidgetReturnCode;
5214}
5215extern "C" {
5216    pub fn PhidgetVoltageOutput_getMinFailsafeTime(
5217        ch: PhidgetVoltageOutputHandle,
5218        minFailsafeTime: *mut u32,
5219    ) -> PhidgetReturnCode;
5220}
5221extern "C" {
5222    pub fn PhidgetVoltageOutput_getMaxFailsafeTime(
5223        ch: PhidgetVoltageOutputHandle,
5224        maxFailsafeTime: *mut u32,
5225    ) -> PhidgetReturnCode;
5226}
5227extern "C" {
5228    pub fn PhidgetVoltageOutput_setVoltage(
5229        ch: PhidgetVoltageOutputHandle,
5230        voltage: f64,
5231    ) -> PhidgetReturnCode;
5232}
5233extern "C" {
5234    pub fn PhidgetVoltageOutput_setVoltage_async(
5235        ch: PhidgetVoltageOutputHandle,
5236        voltage: f64,
5237        fptr: Phidget_AsyncCallback,
5238        ctx: *mut ::std::os::raw::c_void,
5239    );
5240}
5241extern "C" {
5242    pub fn PhidgetVoltageOutput_getVoltage(
5243        ch: PhidgetVoltageOutputHandle,
5244        voltage: *mut f64,
5245    ) -> PhidgetReturnCode;
5246}
5247extern "C" {
5248    pub fn PhidgetVoltageOutput_getMinVoltage(
5249        ch: PhidgetVoltageOutputHandle,
5250        minVoltage: *mut f64,
5251    ) -> PhidgetReturnCode;
5252}
5253extern "C" {
5254    pub fn PhidgetVoltageOutput_getMaxVoltage(
5255        ch: PhidgetVoltageOutputHandle,
5256        maxVoltage: *mut f64,
5257    ) -> PhidgetReturnCode;
5258}
5259extern "C" {
5260    pub fn PhidgetVoltageOutput_setVoltageOutputRange(
5261        ch: PhidgetVoltageOutputHandle,
5262        voltageOutputRange: PhidgetVoltageOutput_VoltageOutputRange,
5263    ) -> PhidgetReturnCode;
5264}
5265extern "C" {
5266    pub fn PhidgetVoltageOutput_getVoltageOutputRange(
5267        ch: PhidgetVoltageOutputHandle,
5268        voltageOutputRange: *mut PhidgetVoltageOutput_VoltageOutputRange,
5269    ) -> PhidgetReturnCode;
5270}
5271#[repr(C)]
5272#[derive(Debug, Copy, Clone)]
5273pub struct _PhidgetAccelerometer {
5274    _unused: [u8; 0],
5275}
5276pub type PhidgetAccelerometerHandle = *mut _PhidgetAccelerometer;
5277extern "C" {
5278    pub fn PhidgetAccelerometer_create(ch: *mut PhidgetAccelerometerHandle) -> PhidgetReturnCode;
5279}
5280extern "C" {
5281    pub fn PhidgetAccelerometer_delete(ch: *mut PhidgetAccelerometerHandle) -> PhidgetReturnCode;
5282}
5283extern "C" {
5284    pub fn PhidgetAccelerometer_getAcceleration(
5285        ch: PhidgetAccelerometerHandle,
5286        acceleration: *mut [f64; 3usize],
5287    ) -> PhidgetReturnCode;
5288}
5289extern "C" {
5290    pub fn PhidgetAccelerometer_getMinAcceleration(
5291        ch: PhidgetAccelerometerHandle,
5292        minAcceleration: *mut [f64; 3usize],
5293    ) -> PhidgetReturnCode;
5294}
5295extern "C" {
5296    pub fn PhidgetAccelerometer_getMaxAcceleration(
5297        ch: PhidgetAccelerometerHandle,
5298        maxAcceleration: *mut [f64; 3usize],
5299    ) -> PhidgetReturnCode;
5300}
5301extern "C" {
5302    pub fn PhidgetAccelerometer_setAccelerationChangeTrigger(
5303        ch: PhidgetAccelerometerHandle,
5304        accelerationChangeTrigger: f64,
5305    ) -> PhidgetReturnCode;
5306}
5307extern "C" {
5308    pub fn PhidgetAccelerometer_getAccelerationChangeTrigger(
5309        ch: PhidgetAccelerometerHandle,
5310        accelerationChangeTrigger: *mut f64,
5311    ) -> PhidgetReturnCode;
5312}
5313extern "C" {
5314    pub fn PhidgetAccelerometer_getMinAccelerationChangeTrigger(
5315        ch: PhidgetAccelerometerHandle,
5316        minAccelerationChangeTrigger: *mut f64,
5317    ) -> PhidgetReturnCode;
5318}
5319extern "C" {
5320    pub fn PhidgetAccelerometer_getMaxAccelerationChangeTrigger(
5321        ch: PhidgetAccelerometerHandle,
5322        maxAccelerationChangeTrigger: *mut f64,
5323    ) -> PhidgetReturnCode;
5324}
5325extern "C" {
5326    pub fn PhidgetAccelerometer_getAxisCount(
5327        ch: PhidgetAccelerometerHandle,
5328        axisCount: *mut ::std::os::raw::c_int,
5329    ) -> PhidgetReturnCode;
5330}
5331extern "C" {
5332    pub fn PhidgetAccelerometer_setDataInterval(
5333        ch: PhidgetAccelerometerHandle,
5334        dataInterval: u32,
5335    ) -> PhidgetReturnCode;
5336}
5337extern "C" {
5338    pub fn PhidgetAccelerometer_getDataInterval(
5339        ch: PhidgetAccelerometerHandle,
5340        dataInterval: *mut u32,
5341    ) -> PhidgetReturnCode;
5342}
5343extern "C" {
5344    pub fn PhidgetAccelerometer_getMinDataInterval(
5345        ch: PhidgetAccelerometerHandle,
5346        minDataInterval: *mut u32,
5347    ) -> PhidgetReturnCode;
5348}
5349extern "C" {
5350    pub fn PhidgetAccelerometer_getMaxDataInterval(
5351        ch: PhidgetAccelerometerHandle,
5352        maxDataInterval: *mut u32,
5353    ) -> PhidgetReturnCode;
5354}
5355extern "C" {
5356    pub fn PhidgetAccelerometer_setHeatingEnabled(
5357        ch: PhidgetAccelerometerHandle,
5358        heatingEnabled: ::std::os::raw::c_int,
5359    ) -> PhidgetReturnCode;
5360}
5361extern "C" {
5362    pub fn PhidgetAccelerometer_getHeatingEnabled(
5363        ch: PhidgetAccelerometerHandle,
5364        heatingEnabled: *mut ::std::os::raw::c_int,
5365    ) -> PhidgetReturnCode;
5366}
5367extern "C" {
5368    pub fn PhidgetAccelerometer_getTimestamp(
5369        ch: PhidgetAccelerometerHandle,
5370        timestamp: *mut f64,
5371    ) -> PhidgetReturnCode;
5372}
5373pub type PhidgetAccelerometer_OnAccelerationChangeCallback = ::std::option::Option<
5374    unsafe extern "C" fn(
5375        ch: PhidgetAccelerometerHandle,
5376        ctx: *mut ::std::os::raw::c_void,
5377        acceleration: *const f64,
5378        timestamp: f64,
5379    ),
5380>;
5381extern "C" {
5382    pub fn PhidgetAccelerometer_setOnAccelerationChangeHandler(
5383        ch: PhidgetAccelerometerHandle,
5384        fptr: PhidgetAccelerometer_OnAccelerationChangeCallback,
5385        ctx: *mut ::std::os::raw::c_void,
5386    ) -> PhidgetReturnCode;
5387}
5388#[repr(C)]
5389#[derive(Debug, Copy, Clone)]
5390pub struct _PhidgetVoltageInput {
5391    _unused: [u8; 0],
5392}
5393pub type PhidgetVoltageInputHandle = *mut _PhidgetVoltageInput;
5394extern "C" {
5395    pub fn PhidgetVoltageInput_create(ch: *mut PhidgetVoltageInputHandle) -> PhidgetReturnCode;
5396}
5397extern "C" {
5398    pub fn PhidgetVoltageInput_delete(ch: *mut PhidgetVoltageInputHandle) -> PhidgetReturnCode;
5399}
5400extern "C" {
5401    pub fn PhidgetVoltageInput_setDataInterval(
5402        ch: PhidgetVoltageInputHandle,
5403        dataInterval: u32,
5404    ) -> PhidgetReturnCode;
5405}
5406extern "C" {
5407    pub fn PhidgetVoltageInput_getDataInterval(
5408        ch: PhidgetVoltageInputHandle,
5409        dataInterval: *mut u32,
5410    ) -> PhidgetReturnCode;
5411}
5412extern "C" {
5413    pub fn PhidgetVoltageInput_getMinDataInterval(
5414        ch: PhidgetVoltageInputHandle,
5415        minDataInterval: *mut u32,
5416    ) -> PhidgetReturnCode;
5417}
5418extern "C" {
5419    pub fn PhidgetVoltageInput_getMaxDataInterval(
5420        ch: PhidgetVoltageInputHandle,
5421        maxDataInterval: *mut u32,
5422    ) -> PhidgetReturnCode;
5423}
5424extern "C" {
5425    pub fn PhidgetVoltageInput_setPowerSupply(
5426        ch: PhidgetVoltageInputHandle,
5427        powerSupply: Phidget_PowerSupply,
5428    ) -> PhidgetReturnCode;
5429}
5430extern "C" {
5431    pub fn PhidgetVoltageInput_getPowerSupply(
5432        ch: PhidgetVoltageInputHandle,
5433        powerSupply: *mut Phidget_PowerSupply,
5434    ) -> PhidgetReturnCode;
5435}
5436extern "C" {
5437    pub fn PhidgetVoltageInput_setSensorType(
5438        ch: PhidgetVoltageInputHandle,
5439        sensorType: PhidgetVoltageInput_SensorType,
5440    ) -> PhidgetReturnCode;
5441}
5442extern "C" {
5443    pub fn PhidgetVoltageInput_getSensorType(
5444        ch: PhidgetVoltageInputHandle,
5445        sensorType: *mut PhidgetVoltageInput_SensorType,
5446    ) -> PhidgetReturnCode;
5447}
5448extern "C" {
5449    pub fn PhidgetVoltageInput_getSensorUnit(
5450        ch: PhidgetVoltageInputHandle,
5451        sensorUnit: *mut Phidget_UnitInfo,
5452    ) -> PhidgetReturnCode;
5453}
5454extern "C" {
5455    pub fn PhidgetVoltageInput_getSensorValue(
5456        ch: PhidgetVoltageInputHandle,
5457        sensorValue: *mut f64,
5458    ) -> PhidgetReturnCode;
5459}
5460extern "C" {
5461    pub fn PhidgetVoltageInput_setSensorValueChangeTrigger(
5462        ch: PhidgetVoltageInputHandle,
5463        sensorValueChangeTrigger: f64,
5464    ) -> PhidgetReturnCode;
5465}
5466extern "C" {
5467    pub fn PhidgetVoltageInput_getSensorValueChangeTrigger(
5468        ch: PhidgetVoltageInputHandle,
5469        sensorValueChangeTrigger: *mut f64,
5470    ) -> PhidgetReturnCode;
5471}
5472extern "C" {
5473    pub fn PhidgetVoltageInput_getVoltage(
5474        ch: PhidgetVoltageInputHandle,
5475        voltage: *mut f64,
5476    ) -> PhidgetReturnCode;
5477}
5478extern "C" {
5479    pub fn PhidgetVoltageInput_getMinVoltage(
5480        ch: PhidgetVoltageInputHandle,
5481        minVoltage: *mut f64,
5482    ) -> PhidgetReturnCode;
5483}
5484extern "C" {
5485    pub fn PhidgetVoltageInput_getMaxVoltage(
5486        ch: PhidgetVoltageInputHandle,
5487        maxVoltage: *mut f64,
5488    ) -> PhidgetReturnCode;
5489}
5490extern "C" {
5491    pub fn PhidgetVoltageInput_setVoltageChangeTrigger(
5492        ch: PhidgetVoltageInputHandle,
5493        voltageChangeTrigger: f64,
5494    ) -> PhidgetReturnCode;
5495}
5496extern "C" {
5497    pub fn PhidgetVoltageInput_getVoltageChangeTrigger(
5498        ch: PhidgetVoltageInputHandle,
5499        voltageChangeTrigger: *mut f64,
5500    ) -> PhidgetReturnCode;
5501}
5502extern "C" {
5503    pub fn PhidgetVoltageInput_getMinVoltageChangeTrigger(
5504        ch: PhidgetVoltageInputHandle,
5505        minVoltageChangeTrigger: *mut f64,
5506    ) -> PhidgetReturnCode;
5507}
5508extern "C" {
5509    pub fn PhidgetVoltageInput_getMaxVoltageChangeTrigger(
5510        ch: PhidgetVoltageInputHandle,
5511        maxVoltageChangeTrigger: *mut f64,
5512    ) -> PhidgetReturnCode;
5513}
5514extern "C" {
5515    pub fn PhidgetVoltageInput_setVoltageRange(
5516        ch: PhidgetVoltageInputHandle,
5517        voltageRange: PhidgetVoltageInput_VoltageRange,
5518    ) -> PhidgetReturnCode;
5519}
5520extern "C" {
5521    pub fn PhidgetVoltageInput_getVoltageRange(
5522        ch: PhidgetVoltageInputHandle,
5523        voltageRange: *mut PhidgetVoltageInput_VoltageRange,
5524    ) -> PhidgetReturnCode;
5525}
5526pub type PhidgetVoltageInput_OnSensorChangeCallback = ::std::option::Option<
5527    unsafe extern "C" fn(
5528        ch: PhidgetVoltageInputHandle,
5529        ctx: *mut ::std::os::raw::c_void,
5530        sensorValue: f64,
5531        sensorUnit: *mut Phidget_UnitInfo,
5532    ),
5533>;
5534extern "C" {
5535    pub fn PhidgetVoltageInput_setOnSensorChangeHandler(
5536        ch: PhidgetVoltageInputHandle,
5537        fptr: PhidgetVoltageInput_OnSensorChangeCallback,
5538        ctx: *mut ::std::os::raw::c_void,
5539    ) -> PhidgetReturnCode;
5540}
5541pub type PhidgetVoltageInput_OnVoltageChangeCallback = ::std::option::Option<
5542    unsafe extern "C" fn(
5543        ch: PhidgetVoltageInputHandle,
5544        ctx: *mut ::std::os::raw::c_void,
5545        voltage: f64,
5546    ),
5547>;
5548extern "C" {
5549    pub fn PhidgetVoltageInput_setOnVoltageChangeHandler(
5550        ch: PhidgetVoltageInputHandle,
5551        fptr: PhidgetVoltageInput_OnVoltageChangeCallback,
5552        ctx: *mut ::std::os::raw::c_void,
5553    ) -> PhidgetReturnCode;
5554}
5555#[repr(C)]
5556#[derive(Debug, Copy, Clone)]
5557pub struct _PhidgetCapacitiveTouch {
5558    _unused: [u8; 0],
5559}
5560pub type PhidgetCapacitiveTouchHandle = *mut _PhidgetCapacitiveTouch;
5561extern "C" {
5562    pub fn PhidgetCapacitiveTouch_create(
5563        ch: *mut PhidgetCapacitiveTouchHandle,
5564    ) -> PhidgetReturnCode;
5565}
5566extern "C" {
5567    pub fn PhidgetCapacitiveTouch_delete(
5568        ch: *mut PhidgetCapacitiveTouchHandle,
5569    ) -> PhidgetReturnCode;
5570}
5571extern "C" {
5572    pub fn PhidgetCapacitiveTouch_setDataInterval(
5573        ch: PhidgetCapacitiveTouchHandle,
5574        dataInterval: u32,
5575    ) -> PhidgetReturnCode;
5576}
5577extern "C" {
5578    pub fn PhidgetCapacitiveTouch_getDataInterval(
5579        ch: PhidgetCapacitiveTouchHandle,
5580        dataInterval: *mut u32,
5581    ) -> PhidgetReturnCode;
5582}
5583extern "C" {
5584    pub fn PhidgetCapacitiveTouch_getMinDataInterval(
5585        ch: PhidgetCapacitiveTouchHandle,
5586        minDataInterval: *mut u32,
5587    ) -> PhidgetReturnCode;
5588}
5589extern "C" {
5590    pub fn PhidgetCapacitiveTouch_getMaxDataInterval(
5591        ch: PhidgetCapacitiveTouchHandle,
5592        maxDataInterval: *mut u32,
5593    ) -> PhidgetReturnCode;
5594}
5595extern "C" {
5596    pub fn PhidgetCapacitiveTouch_setSensitivity(
5597        ch: PhidgetCapacitiveTouchHandle,
5598        sensitivity: f64,
5599    ) -> PhidgetReturnCode;
5600}
5601extern "C" {
5602    pub fn PhidgetCapacitiveTouch_getSensitivity(
5603        ch: PhidgetCapacitiveTouchHandle,
5604        sensitivity: *mut f64,
5605    ) -> PhidgetReturnCode;
5606}
5607extern "C" {
5608    pub fn PhidgetCapacitiveTouch_getMinSensitivity(
5609        ch: PhidgetCapacitiveTouchHandle,
5610        minSensitivity: *mut f64,
5611    ) -> PhidgetReturnCode;
5612}
5613extern "C" {
5614    pub fn PhidgetCapacitiveTouch_getMaxSensitivity(
5615        ch: PhidgetCapacitiveTouchHandle,
5616        maxSensitivity: *mut f64,
5617    ) -> PhidgetReturnCode;
5618}
5619extern "C" {
5620    pub fn PhidgetCapacitiveTouch_getIsTouched(
5621        ch: PhidgetCapacitiveTouchHandle,
5622        isTouched: *mut ::std::os::raw::c_int,
5623    ) -> PhidgetReturnCode;
5624}
5625extern "C" {
5626    pub fn PhidgetCapacitiveTouch_getTouchValue(
5627        ch: PhidgetCapacitiveTouchHandle,
5628        touchValue: *mut f64,
5629    ) -> PhidgetReturnCode;
5630}
5631extern "C" {
5632    pub fn PhidgetCapacitiveTouch_getMinTouchValue(
5633        ch: PhidgetCapacitiveTouchHandle,
5634        minTouchValue: *mut f64,
5635    ) -> PhidgetReturnCode;
5636}
5637extern "C" {
5638    pub fn PhidgetCapacitiveTouch_getMaxTouchValue(
5639        ch: PhidgetCapacitiveTouchHandle,
5640        maxTouchValue: *mut f64,
5641    ) -> PhidgetReturnCode;
5642}
5643extern "C" {
5644    pub fn PhidgetCapacitiveTouch_setTouchValueChangeTrigger(
5645        ch: PhidgetCapacitiveTouchHandle,
5646        touchValueChangeTrigger: f64,
5647    ) -> PhidgetReturnCode;
5648}
5649extern "C" {
5650    pub fn PhidgetCapacitiveTouch_getTouchValueChangeTrigger(
5651        ch: PhidgetCapacitiveTouchHandle,
5652        touchValueChangeTrigger: *mut f64,
5653    ) -> PhidgetReturnCode;
5654}
5655extern "C" {
5656    pub fn PhidgetCapacitiveTouch_getMinTouchValueChangeTrigger(
5657        ch: PhidgetCapacitiveTouchHandle,
5658        minTouchValueChangeTrigger: *mut f64,
5659    ) -> PhidgetReturnCode;
5660}
5661extern "C" {
5662    pub fn PhidgetCapacitiveTouch_getMaxTouchValueChangeTrigger(
5663        ch: PhidgetCapacitiveTouchHandle,
5664        maxTouchValueChangeTrigger: *mut f64,
5665    ) -> PhidgetReturnCode;
5666}
5667pub type PhidgetCapacitiveTouch_OnTouchCallback = ::std::option::Option<
5668    unsafe extern "C" fn(
5669        ch: PhidgetCapacitiveTouchHandle,
5670        ctx: *mut ::std::os::raw::c_void,
5671        touchValue: f64,
5672    ),
5673>;
5674extern "C" {
5675    pub fn PhidgetCapacitiveTouch_setOnTouchHandler(
5676        ch: PhidgetCapacitiveTouchHandle,
5677        fptr: PhidgetCapacitiveTouch_OnTouchCallback,
5678        ctx: *mut ::std::os::raw::c_void,
5679    ) -> PhidgetReturnCode;
5680}
5681pub type PhidgetCapacitiveTouch_OnTouchEndCallback = ::std::option::Option<
5682    unsafe extern "C" fn(ch: PhidgetCapacitiveTouchHandle, ctx: *mut ::std::os::raw::c_void),
5683>;
5684extern "C" {
5685    pub fn PhidgetCapacitiveTouch_setOnTouchEndHandler(
5686        ch: PhidgetCapacitiveTouchHandle,
5687        fptr: PhidgetCapacitiveTouch_OnTouchEndCallback,
5688        ctx: *mut ::std::os::raw::c_void,
5689    ) -> PhidgetReturnCode;
5690}
5691#[repr(C)]
5692#[derive(Debug, Copy, Clone)]
5693pub struct _PhidgetRFID {
5694    _unused: [u8; 0],
5695}
5696pub type PhidgetRFIDHandle = *mut _PhidgetRFID;
5697extern "C" {
5698    pub fn PhidgetRFID_create(ch: *mut PhidgetRFIDHandle) -> PhidgetReturnCode;
5699}
5700extern "C" {
5701    pub fn PhidgetRFID_delete(ch: *mut PhidgetRFIDHandle) -> PhidgetReturnCode;
5702}
5703extern "C" {
5704    pub fn PhidgetRFID_getLastTag(
5705        ch: PhidgetRFIDHandle,
5706        tagString: *mut ::std::os::raw::c_char,
5707        tagStringLen: size_t,
5708        protocol: *mut PhidgetRFID_Protocol,
5709    ) -> PhidgetReturnCode;
5710}
5711extern "C" {
5712    pub fn PhidgetRFID_write(
5713        ch: PhidgetRFIDHandle,
5714        tagString: *const ::std::os::raw::c_char,
5715        protocol: PhidgetRFID_Protocol,
5716        lockTag: ::std::os::raw::c_int,
5717    ) -> PhidgetReturnCode;
5718}
5719extern "C" {
5720    pub fn PhidgetRFID_setAntennaEnabled(
5721        ch: PhidgetRFIDHandle,
5722        antennaEnabled: ::std::os::raw::c_int,
5723    ) -> PhidgetReturnCode;
5724}
5725extern "C" {
5726    pub fn PhidgetRFID_getAntennaEnabled(
5727        ch: PhidgetRFIDHandle,
5728        antennaEnabled: *mut ::std::os::raw::c_int,
5729    ) -> PhidgetReturnCode;
5730}
5731extern "C" {
5732    pub fn PhidgetRFID_getTagPresent(
5733        ch: PhidgetRFIDHandle,
5734        tagPresent: *mut ::std::os::raw::c_int,
5735    ) -> PhidgetReturnCode;
5736}
5737pub type PhidgetRFID_OnTagCallback = ::std::option::Option<
5738    unsafe extern "C" fn(
5739        ch: PhidgetRFIDHandle,
5740        ctx: *mut ::std::os::raw::c_void,
5741        tag: *const ::std::os::raw::c_char,
5742        protocol: PhidgetRFID_Protocol,
5743    ),
5744>;
5745extern "C" {
5746    pub fn PhidgetRFID_setOnTagHandler(
5747        ch: PhidgetRFIDHandle,
5748        fptr: PhidgetRFID_OnTagCallback,
5749        ctx: *mut ::std::os::raw::c_void,
5750    ) -> PhidgetReturnCode;
5751}
5752pub type PhidgetRFID_OnTagLostCallback = ::std::option::Option<
5753    unsafe extern "C" fn(
5754        ch: PhidgetRFIDHandle,
5755        ctx: *mut ::std::os::raw::c_void,
5756        tag: *const ::std::os::raw::c_char,
5757        protocol: PhidgetRFID_Protocol,
5758    ),
5759>;
5760extern "C" {
5761    pub fn PhidgetRFID_setOnTagLostHandler(
5762        ch: PhidgetRFIDHandle,
5763        fptr: PhidgetRFID_OnTagLostCallback,
5764        ctx: *mut ::std::os::raw::c_void,
5765    ) -> PhidgetReturnCode;
5766}
5767#[repr(C)]
5768#[derive(Debug, Copy, Clone)]
5769pub struct _PhidgetGPS {
5770    _unused: [u8; 0],
5771}
5772pub type PhidgetGPSHandle = *mut _PhidgetGPS;
5773extern "C" {
5774    pub fn PhidgetGPS_create(ch: *mut PhidgetGPSHandle) -> PhidgetReturnCode;
5775}
5776extern "C" {
5777    pub fn PhidgetGPS_delete(ch: *mut PhidgetGPSHandle) -> PhidgetReturnCode;
5778}
5779extern "C" {
5780    pub fn PhidgetGPS_getAltitude(ch: PhidgetGPSHandle, altitude: *mut f64) -> PhidgetReturnCode;
5781}
5782extern "C" {
5783    pub fn PhidgetGPS_getDate(
5784        ch: PhidgetGPSHandle,
5785        date: *mut PhidgetGPS_Date,
5786    ) -> PhidgetReturnCode;
5787}
5788extern "C" {
5789    pub fn PhidgetGPS_getHeading(ch: PhidgetGPSHandle, heading: *mut f64) -> PhidgetReturnCode;
5790}
5791extern "C" {
5792    pub fn PhidgetGPS_getLatitude(ch: PhidgetGPSHandle, latitude: *mut f64) -> PhidgetReturnCode;
5793}
5794extern "C" {
5795    pub fn PhidgetGPS_getLongitude(ch: PhidgetGPSHandle, longitude: *mut f64) -> PhidgetReturnCode;
5796}
5797extern "C" {
5798    pub fn PhidgetGPS_getNMEAData(
5799        ch: PhidgetGPSHandle,
5800        NMEAData: *mut PhidgetGPS_NMEAData,
5801    ) -> PhidgetReturnCode;
5802}
5803extern "C" {
5804    pub fn PhidgetGPS_getPositionFixState(
5805        ch: PhidgetGPSHandle,
5806        positionFixState: *mut ::std::os::raw::c_int,
5807    ) -> PhidgetReturnCode;
5808}
5809extern "C" {
5810    pub fn PhidgetGPS_getTime(
5811        ch: PhidgetGPSHandle,
5812        time: *mut PhidgetGPS_Time,
5813    ) -> PhidgetReturnCode;
5814}
5815extern "C" {
5816    pub fn PhidgetGPS_getVelocity(ch: PhidgetGPSHandle, velocity: *mut f64) -> PhidgetReturnCode;
5817}
5818pub type PhidgetGPS_OnHeadingChangeCallback = ::std::option::Option<
5819    unsafe extern "C" fn(
5820        ch: PhidgetGPSHandle,
5821        ctx: *mut ::std::os::raw::c_void,
5822        heading: f64,
5823        velocity: f64,
5824    ),
5825>;
5826extern "C" {
5827    pub fn PhidgetGPS_setOnHeadingChangeHandler(
5828        ch: PhidgetGPSHandle,
5829        fptr: PhidgetGPS_OnHeadingChangeCallback,
5830        ctx: *mut ::std::os::raw::c_void,
5831    ) -> PhidgetReturnCode;
5832}
5833pub type PhidgetGPS_OnPositionChangeCallback = ::std::option::Option<
5834    unsafe extern "C" fn(
5835        ch: PhidgetGPSHandle,
5836        ctx: *mut ::std::os::raw::c_void,
5837        latitude: f64,
5838        longitude: f64,
5839        altitude: f64,
5840    ),
5841>;
5842extern "C" {
5843    pub fn PhidgetGPS_setOnPositionChangeHandler(
5844        ch: PhidgetGPSHandle,
5845        fptr: PhidgetGPS_OnPositionChangeCallback,
5846        ctx: *mut ::std::os::raw::c_void,
5847    ) -> PhidgetReturnCode;
5848}
5849pub type PhidgetGPS_OnPositionFixStateChangeCallback = ::std::option::Option<
5850    unsafe extern "C" fn(
5851        ch: PhidgetGPSHandle,
5852        ctx: *mut ::std::os::raw::c_void,
5853        positionFixState: ::std::os::raw::c_int,
5854    ),
5855>;
5856extern "C" {
5857    pub fn PhidgetGPS_setOnPositionFixStateChangeHandler(
5858        ch: PhidgetGPSHandle,
5859        fptr: PhidgetGPS_OnPositionFixStateChangeCallback,
5860        ctx: *mut ::std::os::raw::c_void,
5861    ) -> PhidgetReturnCode;
5862}
5863#[repr(C)]
5864#[derive(Debug, Copy, Clone)]
5865pub struct _PhidgetGyroscope {
5866    _unused: [u8; 0],
5867}
5868pub type PhidgetGyroscopeHandle = *mut _PhidgetGyroscope;
5869extern "C" {
5870    pub fn PhidgetGyroscope_create(ch: *mut PhidgetGyroscopeHandle) -> PhidgetReturnCode;
5871}
5872extern "C" {
5873    pub fn PhidgetGyroscope_delete(ch: *mut PhidgetGyroscopeHandle) -> PhidgetReturnCode;
5874}
5875extern "C" {
5876    pub fn PhidgetGyroscope_zero(ch: PhidgetGyroscopeHandle) -> PhidgetReturnCode;
5877}
5878extern "C" {
5879    pub fn PhidgetGyroscope_getAngularRate(
5880        ch: PhidgetGyroscopeHandle,
5881        angularRate: *mut [f64; 3usize],
5882    ) -> PhidgetReturnCode;
5883}
5884extern "C" {
5885    pub fn PhidgetGyroscope_getMinAngularRate(
5886        ch: PhidgetGyroscopeHandle,
5887        minAngularRate: *mut [f64; 3usize],
5888    ) -> PhidgetReturnCode;
5889}
5890extern "C" {
5891    pub fn PhidgetGyroscope_getMaxAngularRate(
5892        ch: PhidgetGyroscopeHandle,
5893        maxAngularRate: *mut [f64; 3usize],
5894    ) -> PhidgetReturnCode;
5895}
5896extern "C" {
5897    pub fn PhidgetGyroscope_getAxisCount(
5898        ch: PhidgetGyroscopeHandle,
5899        axisCount: *mut ::std::os::raw::c_int,
5900    ) -> PhidgetReturnCode;
5901}
5902extern "C" {
5903    pub fn PhidgetGyroscope_setDataInterval(
5904        ch: PhidgetGyroscopeHandle,
5905        dataInterval: u32,
5906    ) -> PhidgetReturnCode;
5907}
5908extern "C" {
5909    pub fn PhidgetGyroscope_getDataInterval(
5910        ch: PhidgetGyroscopeHandle,
5911        dataInterval: *mut u32,
5912    ) -> PhidgetReturnCode;
5913}
5914extern "C" {
5915    pub fn PhidgetGyroscope_getMinDataInterval(
5916        ch: PhidgetGyroscopeHandle,
5917        minDataInterval: *mut u32,
5918    ) -> PhidgetReturnCode;
5919}
5920extern "C" {
5921    pub fn PhidgetGyroscope_getMaxDataInterval(
5922        ch: PhidgetGyroscopeHandle,
5923        maxDataInterval: *mut u32,
5924    ) -> PhidgetReturnCode;
5925}
5926extern "C" {
5927    pub fn PhidgetGyroscope_setHeatingEnabled(
5928        ch: PhidgetGyroscopeHandle,
5929        heatingEnabled: ::std::os::raw::c_int,
5930    ) -> PhidgetReturnCode;
5931}
5932extern "C" {
5933    pub fn PhidgetGyroscope_getHeatingEnabled(
5934        ch: PhidgetGyroscopeHandle,
5935        heatingEnabled: *mut ::std::os::raw::c_int,
5936    ) -> PhidgetReturnCode;
5937}
5938extern "C" {
5939    pub fn PhidgetGyroscope_getTimestamp(
5940        ch: PhidgetGyroscopeHandle,
5941        timestamp: *mut f64,
5942    ) -> PhidgetReturnCode;
5943}
5944pub type PhidgetGyroscope_OnAngularRateUpdateCallback = ::std::option::Option<
5945    unsafe extern "C" fn(
5946        ch: PhidgetGyroscopeHandle,
5947        ctx: *mut ::std::os::raw::c_void,
5948        angularRate: *const f64,
5949        timestamp: f64,
5950    ),
5951>;
5952extern "C" {
5953    pub fn PhidgetGyroscope_setOnAngularRateUpdateHandler(
5954        ch: PhidgetGyroscopeHandle,
5955        fptr: PhidgetGyroscope_OnAngularRateUpdateCallback,
5956        ctx: *mut ::std::os::raw::c_void,
5957    ) -> PhidgetReturnCode;
5958}
5959#[repr(C)]
5960#[derive(Debug, Copy, Clone)]
5961pub struct _PhidgetMagnetometer {
5962    _unused: [u8; 0],
5963}
5964pub type PhidgetMagnetometerHandle = *mut _PhidgetMagnetometer;
5965extern "C" {
5966    pub fn PhidgetMagnetometer_create(ch: *mut PhidgetMagnetometerHandle) -> PhidgetReturnCode;
5967}
5968extern "C" {
5969    pub fn PhidgetMagnetometer_delete(ch: *mut PhidgetMagnetometerHandle) -> PhidgetReturnCode;
5970}
5971extern "C" {
5972    pub fn PhidgetMagnetometer_setCorrectionParameters(
5973        ch: PhidgetMagnetometerHandle,
5974        magneticField: f64,
5975        offset0: f64,
5976        offset1: f64,
5977        offset2: f64,
5978        gain0: f64,
5979        gain1: f64,
5980        gain2: f64,
5981        T0: f64,
5982        T1: f64,
5983        T2: f64,
5984        T3: f64,
5985        T4: f64,
5986        T5: f64,
5987    ) -> PhidgetReturnCode;
5988}
5989extern "C" {
5990    pub fn PhidgetMagnetometer_resetCorrectionParameters(
5991        ch: PhidgetMagnetometerHandle,
5992    ) -> PhidgetReturnCode;
5993}
5994extern "C" {
5995    pub fn PhidgetMagnetometer_saveCorrectionParameters(
5996        ch: PhidgetMagnetometerHandle,
5997    ) -> PhidgetReturnCode;
5998}
5999extern "C" {
6000    pub fn PhidgetMagnetometer_getAxisCount(
6001        ch: PhidgetMagnetometerHandle,
6002        axisCount: *mut ::std::os::raw::c_int,
6003    ) -> PhidgetReturnCode;
6004}
6005extern "C" {
6006    pub fn PhidgetMagnetometer_setDataInterval(
6007        ch: PhidgetMagnetometerHandle,
6008        dataInterval: u32,
6009    ) -> PhidgetReturnCode;
6010}
6011extern "C" {
6012    pub fn PhidgetMagnetometer_getDataInterval(
6013        ch: PhidgetMagnetometerHandle,
6014        dataInterval: *mut u32,
6015    ) -> PhidgetReturnCode;
6016}
6017extern "C" {
6018    pub fn PhidgetMagnetometer_getMinDataInterval(
6019        ch: PhidgetMagnetometerHandle,
6020        minDataInterval: *mut u32,
6021    ) -> PhidgetReturnCode;
6022}
6023extern "C" {
6024    pub fn PhidgetMagnetometer_getMaxDataInterval(
6025        ch: PhidgetMagnetometerHandle,
6026        maxDataInterval: *mut u32,
6027    ) -> PhidgetReturnCode;
6028}
6029extern "C" {
6030    pub fn PhidgetMagnetometer_setHeatingEnabled(
6031        ch: PhidgetMagnetometerHandle,
6032        heatingEnabled: ::std::os::raw::c_int,
6033    ) -> PhidgetReturnCode;
6034}
6035extern "C" {
6036    pub fn PhidgetMagnetometer_getHeatingEnabled(
6037        ch: PhidgetMagnetometerHandle,
6038        heatingEnabled: *mut ::std::os::raw::c_int,
6039    ) -> PhidgetReturnCode;
6040}
6041extern "C" {
6042    pub fn PhidgetMagnetometer_getMagneticField(
6043        ch: PhidgetMagnetometerHandle,
6044        magneticField: *mut [f64; 3usize],
6045    ) -> PhidgetReturnCode;
6046}
6047extern "C" {
6048    pub fn PhidgetMagnetometer_getMinMagneticField(
6049        ch: PhidgetMagnetometerHandle,
6050        minMagneticField: *mut [f64; 3usize],
6051    ) -> PhidgetReturnCode;
6052}
6053extern "C" {
6054    pub fn PhidgetMagnetometer_getMaxMagneticField(
6055        ch: PhidgetMagnetometerHandle,
6056        maxMagneticField: *mut [f64; 3usize],
6057    ) -> PhidgetReturnCode;
6058}
6059extern "C" {
6060    pub fn PhidgetMagnetometer_setMagneticFieldChangeTrigger(
6061        ch: PhidgetMagnetometerHandle,
6062        magneticFieldChangeTrigger: f64,
6063    ) -> PhidgetReturnCode;
6064}
6065extern "C" {
6066    pub fn PhidgetMagnetometer_getMagneticFieldChangeTrigger(
6067        ch: PhidgetMagnetometerHandle,
6068        magneticFieldChangeTrigger: *mut f64,
6069    ) -> PhidgetReturnCode;
6070}
6071extern "C" {
6072    pub fn PhidgetMagnetometer_getMinMagneticFieldChangeTrigger(
6073        ch: PhidgetMagnetometerHandle,
6074        minMagneticFieldChangeTrigger: *mut f64,
6075    ) -> PhidgetReturnCode;
6076}
6077extern "C" {
6078    pub fn PhidgetMagnetometer_getMaxMagneticFieldChangeTrigger(
6079        ch: PhidgetMagnetometerHandle,
6080        maxMagneticFieldChangeTrigger: *mut f64,
6081    ) -> PhidgetReturnCode;
6082}
6083extern "C" {
6084    pub fn PhidgetMagnetometer_getTimestamp(
6085        ch: PhidgetMagnetometerHandle,
6086        timestamp: *mut f64,
6087    ) -> PhidgetReturnCode;
6088}
6089pub type PhidgetMagnetometer_OnMagneticFieldChangeCallback = ::std::option::Option<
6090    unsafe extern "C" fn(
6091        ch: PhidgetMagnetometerHandle,
6092        ctx: *mut ::std::os::raw::c_void,
6093        magneticField: *const f64,
6094        timestamp: f64,
6095    ),
6096>;
6097extern "C" {
6098    pub fn PhidgetMagnetometer_setOnMagneticFieldChangeHandler(
6099        ch: PhidgetMagnetometerHandle,
6100        fptr: PhidgetMagnetometer_OnMagneticFieldChangeCallback,
6101        ctx: *mut ::std::os::raw::c_void,
6102    ) -> PhidgetReturnCode;
6103}
6104#[repr(C)]
6105#[derive(Debug, Copy, Clone)]
6106pub struct _PhidgetSpatial {
6107    _unused: [u8; 0],
6108}
6109pub type PhidgetSpatialHandle = *mut _PhidgetSpatial;
6110extern "C" {
6111    pub fn PhidgetSpatial_create(ch: *mut PhidgetSpatialHandle) -> PhidgetReturnCode;
6112}
6113extern "C" {
6114    pub fn PhidgetSpatial_delete(ch: *mut PhidgetSpatialHandle) -> PhidgetReturnCode;
6115}
6116extern "C" {
6117    pub fn PhidgetSpatial_setMagnetometerCorrectionParameters(
6118        ch: PhidgetSpatialHandle,
6119        magneticField: f64,
6120        offset0: f64,
6121        offset1: f64,
6122        offset2: f64,
6123        gain0: f64,
6124        gain1: f64,
6125        gain2: f64,
6126        T0: f64,
6127        T1: f64,
6128        T2: f64,
6129        T3: f64,
6130        T4: f64,
6131        T5: f64,
6132    ) -> PhidgetReturnCode;
6133}
6134extern "C" {
6135    pub fn PhidgetSpatial_resetMagnetometerCorrectionParameters(
6136        ch: PhidgetSpatialHandle,
6137    ) -> PhidgetReturnCode;
6138}
6139extern "C" {
6140    pub fn PhidgetSpatial_saveMagnetometerCorrectionParameters(
6141        ch: PhidgetSpatialHandle,
6142    ) -> PhidgetReturnCode;
6143}
6144extern "C" {
6145    pub fn PhidgetSpatial_zeroAlgorithm(ch: PhidgetSpatialHandle) -> PhidgetReturnCode;
6146}
6147extern "C" {
6148    pub fn PhidgetSpatial_zeroGyro(ch: PhidgetSpatialHandle) -> PhidgetReturnCode;
6149}
6150extern "C" {
6151    pub fn PhidgetSpatial_setAlgorithm(
6152        ch: PhidgetSpatialHandle,
6153        algorithm: Phidget_SpatialAlgorithm,
6154    ) -> PhidgetReturnCode;
6155}
6156extern "C" {
6157    pub fn PhidgetSpatial_getAlgorithm(
6158        ch: PhidgetSpatialHandle,
6159        algorithm: *mut Phidget_SpatialAlgorithm,
6160    ) -> PhidgetReturnCode;
6161}
6162extern "C" {
6163    pub fn PhidgetSpatial_setAlgorithmMagnetometerGain(
6164        ch: PhidgetSpatialHandle,
6165        algorithmMagnetometerGain: f64,
6166    ) -> PhidgetReturnCode;
6167}
6168extern "C" {
6169    pub fn PhidgetSpatial_getAlgorithmMagnetometerGain(
6170        ch: PhidgetSpatialHandle,
6171        algorithmMagnetometerGain: *mut f64,
6172    ) -> PhidgetReturnCode;
6173}
6174extern "C" {
6175    pub fn PhidgetSpatial_setDataInterval(
6176        ch: PhidgetSpatialHandle,
6177        dataInterval: u32,
6178    ) -> PhidgetReturnCode;
6179}
6180extern "C" {
6181    pub fn PhidgetSpatial_getDataInterval(
6182        ch: PhidgetSpatialHandle,
6183        dataInterval: *mut u32,
6184    ) -> PhidgetReturnCode;
6185}
6186extern "C" {
6187    pub fn PhidgetSpatial_getMinDataInterval(
6188        ch: PhidgetSpatialHandle,
6189        minDataInterval: *mut u32,
6190    ) -> PhidgetReturnCode;
6191}
6192extern "C" {
6193    pub fn PhidgetSpatial_getMaxDataInterval(
6194        ch: PhidgetSpatialHandle,
6195        maxDataInterval: *mut u32,
6196    ) -> PhidgetReturnCode;
6197}
6198extern "C" {
6199    pub fn PhidgetSpatial_setHeatingEnabled(
6200        ch: PhidgetSpatialHandle,
6201        heatingEnabled: ::std::os::raw::c_int,
6202    ) -> PhidgetReturnCode;
6203}
6204extern "C" {
6205    pub fn PhidgetSpatial_getHeatingEnabled(
6206        ch: PhidgetSpatialHandle,
6207        heatingEnabled: *mut ::std::os::raw::c_int,
6208    ) -> PhidgetReturnCode;
6209}
6210pub type PhidgetSpatial_OnAlgorithmDataCallback = ::std::option::Option<
6211    unsafe extern "C" fn(
6212        ch: PhidgetSpatialHandle,
6213        ctx: *mut ::std::os::raw::c_void,
6214        quaternion: *const f64,
6215        timestamp: f64,
6216    ),
6217>;
6218extern "C" {
6219    pub fn PhidgetSpatial_setOnAlgorithmDataHandler(
6220        ch: PhidgetSpatialHandle,
6221        fptr: PhidgetSpatial_OnAlgorithmDataCallback,
6222        ctx: *mut ::std::os::raw::c_void,
6223    ) -> PhidgetReturnCode;
6224}
6225pub type PhidgetSpatial_OnSpatialDataCallback = ::std::option::Option<
6226    unsafe extern "C" fn(
6227        ch: PhidgetSpatialHandle,
6228        ctx: *mut ::std::os::raw::c_void,
6229        acceleration: *const f64,
6230        angularRate: *const f64,
6231        magneticField: *const f64,
6232        timestamp: f64,
6233    ),
6234>;
6235extern "C" {
6236    pub fn PhidgetSpatial_setOnSpatialDataHandler(
6237        ch: PhidgetSpatialHandle,
6238        fptr: PhidgetSpatial_OnSpatialDataCallback,
6239        ctx: *mut ::std::os::raw::c_void,
6240    ) -> PhidgetReturnCode;
6241}
6242#[repr(C)]
6243#[derive(Debug, Copy, Clone)]
6244pub struct _PhidgetTemperatureSensor {
6245    _unused: [u8; 0],
6246}
6247pub type PhidgetTemperatureSensorHandle = *mut _PhidgetTemperatureSensor;
6248extern "C" {
6249    pub fn PhidgetTemperatureSensor_create(
6250        ch: *mut PhidgetTemperatureSensorHandle,
6251    ) -> PhidgetReturnCode;
6252}
6253extern "C" {
6254    pub fn PhidgetTemperatureSensor_delete(
6255        ch: *mut PhidgetTemperatureSensorHandle,
6256    ) -> PhidgetReturnCode;
6257}
6258extern "C" {
6259    pub fn PhidgetTemperatureSensor_setDataInterval(
6260        ch: PhidgetTemperatureSensorHandle,
6261        dataInterval: u32,
6262    ) -> PhidgetReturnCode;
6263}
6264extern "C" {
6265    pub fn PhidgetTemperatureSensor_getDataInterval(
6266        ch: PhidgetTemperatureSensorHandle,
6267        dataInterval: *mut u32,
6268    ) -> PhidgetReturnCode;
6269}
6270extern "C" {
6271    pub fn PhidgetTemperatureSensor_getMinDataInterval(
6272        ch: PhidgetTemperatureSensorHandle,
6273        minDataInterval: *mut u32,
6274    ) -> PhidgetReturnCode;
6275}
6276extern "C" {
6277    pub fn PhidgetTemperatureSensor_getMaxDataInterval(
6278        ch: PhidgetTemperatureSensorHandle,
6279        maxDataInterval: *mut u32,
6280    ) -> PhidgetReturnCode;
6281}
6282extern "C" {
6283    pub fn PhidgetTemperatureSensor_setRTDType(
6284        ch: PhidgetTemperatureSensorHandle,
6285        RTDType: PhidgetTemperatureSensor_RTDType,
6286    ) -> PhidgetReturnCode;
6287}
6288extern "C" {
6289    pub fn PhidgetTemperatureSensor_getRTDType(
6290        ch: PhidgetTemperatureSensorHandle,
6291        RTDType: *mut PhidgetTemperatureSensor_RTDType,
6292    ) -> PhidgetReturnCode;
6293}
6294extern "C" {
6295    pub fn PhidgetTemperatureSensor_setRTDWireSetup(
6296        ch: PhidgetTemperatureSensorHandle,
6297        RTDWireSetup: Phidget_RTDWireSetup,
6298    ) -> PhidgetReturnCode;
6299}
6300extern "C" {
6301    pub fn PhidgetTemperatureSensor_getRTDWireSetup(
6302        ch: PhidgetTemperatureSensorHandle,
6303        RTDWireSetup: *mut Phidget_RTDWireSetup,
6304    ) -> PhidgetReturnCode;
6305}
6306extern "C" {
6307    pub fn PhidgetTemperatureSensor_getTemperature(
6308        ch: PhidgetTemperatureSensorHandle,
6309        temperature: *mut f64,
6310    ) -> PhidgetReturnCode;
6311}
6312extern "C" {
6313    pub fn PhidgetTemperatureSensor_getMinTemperature(
6314        ch: PhidgetTemperatureSensorHandle,
6315        minTemperature: *mut f64,
6316    ) -> PhidgetReturnCode;
6317}
6318extern "C" {
6319    pub fn PhidgetTemperatureSensor_getMaxTemperature(
6320        ch: PhidgetTemperatureSensorHandle,
6321        maxTemperature: *mut f64,
6322    ) -> PhidgetReturnCode;
6323}
6324extern "C" {
6325    pub fn PhidgetTemperatureSensor_setTemperatureChangeTrigger(
6326        ch: PhidgetTemperatureSensorHandle,
6327        temperatureChangeTrigger: f64,
6328    ) -> PhidgetReturnCode;
6329}
6330extern "C" {
6331    pub fn PhidgetTemperatureSensor_getTemperatureChangeTrigger(
6332        ch: PhidgetTemperatureSensorHandle,
6333        temperatureChangeTrigger: *mut f64,
6334    ) -> PhidgetReturnCode;
6335}
6336extern "C" {
6337    pub fn PhidgetTemperatureSensor_getMinTemperatureChangeTrigger(
6338        ch: PhidgetTemperatureSensorHandle,
6339        minTemperatureChangeTrigger: *mut f64,
6340    ) -> PhidgetReturnCode;
6341}
6342extern "C" {
6343    pub fn PhidgetTemperatureSensor_getMaxTemperatureChangeTrigger(
6344        ch: PhidgetTemperatureSensorHandle,
6345        maxTemperatureChangeTrigger: *mut f64,
6346    ) -> PhidgetReturnCode;
6347}
6348extern "C" {
6349    pub fn PhidgetTemperatureSensor_setThermocoupleType(
6350        ch: PhidgetTemperatureSensorHandle,
6351        thermocoupleType: PhidgetTemperatureSensor_ThermocoupleType,
6352    ) -> PhidgetReturnCode;
6353}
6354extern "C" {
6355    pub fn PhidgetTemperatureSensor_getThermocoupleType(
6356        ch: PhidgetTemperatureSensorHandle,
6357        thermocoupleType: *mut PhidgetTemperatureSensor_ThermocoupleType,
6358    ) -> PhidgetReturnCode;
6359}
6360pub type PhidgetTemperatureSensor_OnTemperatureChangeCallback = ::std::option::Option<
6361    unsafe extern "C" fn(
6362        ch: PhidgetTemperatureSensorHandle,
6363        ctx: *mut ::std::os::raw::c_void,
6364        temperature: f64,
6365    ),
6366>;
6367extern "C" {
6368    pub fn PhidgetTemperatureSensor_setOnTemperatureChangeHandler(
6369        ch: PhidgetTemperatureSensorHandle,
6370        fptr: PhidgetTemperatureSensor_OnTemperatureChangeCallback,
6371        ctx: *mut ::std::os::raw::c_void,
6372    ) -> PhidgetReturnCode;
6373}
6374#[repr(C)]
6375#[derive(Debug, Copy, Clone)]
6376pub struct _PhidgetEncoder {
6377    _unused: [u8; 0],
6378}
6379pub type PhidgetEncoderHandle = *mut _PhidgetEncoder;
6380extern "C" {
6381    pub fn PhidgetEncoder_create(ch: *mut PhidgetEncoderHandle) -> PhidgetReturnCode;
6382}
6383extern "C" {
6384    pub fn PhidgetEncoder_delete(ch: *mut PhidgetEncoderHandle) -> PhidgetReturnCode;
6385}
6386extern "C" {
6387    pub fn PhidgetEncoder_setEnabled(
6388        ch: PhidgetEncoderHandle,
6389        enabled: ::std::os::raw::c_int,
6390    ) -> PhidgetReturnCode;
6391}
6392extern "C" {
6393    pub fn PhidgetEncoder_getEnabled(
6394        ch: PhidgetEncoderHandle,
6395        enabled: *mut ::std::os::raw::c_int,
6396    ) -> PhidgetReturnCode;
6397}
6398extern "C" {
6399    pub fn PhidgetEncoder_setDataInterval(
6400        ch: PhidgetEncoderHandle,
6401        dataInterval: u32,
6402    ) -> PhidgetReturnCode;
6403}
6404extern "C" {
6405    pub fn PhidgetEncoder_getDataInterval(
6406        ch: PhidgetEncoderHandle,
6407        dataInterval: *mut u32,
6408    ) -> PhidgetReturnCode;
6409}
6410extern "C" {
6411    pub fn PhidgetEncoder_getMinDataInterval(
6412        ch: PhidgetEncoderHandle,
6413        minDataInterval: *mut u32,
6414    ) -> PhidgetReturnCode;
6415}
6416extern "C" {
6417    pub fn PhidgetEncoder_getMaxDataInterval(
6418        ch: PhidgetEncoderHandle,
6419        maxDataInterval: *mut u32,
6420    ) -> PhidgetReturnCode;
6421}
6422extern "C" {
6423    pub fn PhidgetEncoder_getIndexPosition(
6424        ch: PhidgetEncoderHandle,
6425        indexPosition: *mut i64,
6426    ) -> PhidgetReturnCode;
6427}
6428extern "C" {
6429    pub fn PhidgetEncoder_setIOMode(
6430        ch: PhidgetEncoderHandle,
6431        IOMode: Phidget_EncoderIOMode,
6432    ) -> PhidgetReturnCode;
6433}
6434extern "C" {
6435    pub fn PhidgetEncoder_getIOMode(
6436        ch: PhidgetEncoderHandle,
6437        IOMode: *mut Phidget_EncoderIOMode,
6438    ) -> PhidgetReturnCode;
6439}
6440extern "C" {
6441    pub fn PhidgetEncoder_setPosition(ch: PhidgetEncoderHandle, position: i64)
6442        -> PhidgetReturnCode;
6443}
6444extern "C" {
6445    pub fn PhidgetEncoder_getPosition(
6446        ch: PhidgetEncoderHandle,
6447        position: *mut i64,
6448    ) -> PhidgetReturnCode;
6449}
6450extern "C" {
6451    pub fn PhidgetEncoder_setPositionChangeTrigger(
6452        ch: PhidgetEncoderHandle,
6453        positionChangeTrigger: u32,
6454    ) -> PhidgetReturnCode;
6455}
6456extern "C" {
6457    pub fn PhidgetEncoder_getPositionChangeTrigger(
6458        ch: PhidgetEncoderHandle,
6459        positionChangeTrigger: *mut u32,
6460    ) -> PhidgetReturnCode;
6461}
6462extern "C" {
6463    pub fn PhidgetEncoder_getMinPositionChangeTrigger(
6464        ch: PhidgetEncoderHandle,
6465        minPositionChangeTrigger: *mut u32,
6466    ) -> PhidgetReturnCode;
6467}
6468extern "C" {
6469    pub fn PhidgetEncoder_getMaxPositionChangeTrigger(
6470        ch: PhidgetEncoderHandle,
6471        maxPositionChangeTrigger: *mut u32,
6472    ) -> PhidgetReturnCode;
6473}
6474pub type PhidgetEncoder_OnPositionChangeCallback = ::std::option::Option<
6475    unsafe extern "C" fn(
6476        ch: PhidgetEncoderHandle,
6477        ctx: *mut ::std::os::raw::c_void,
6478        positionChange: ::std::os::raw::c_int,
6479        timeChange: f64,
6480        indexTriggered: ::std::os::raw::c_int,
6481    ),
6482>;
6483extern "C" {
6484    pub fn PhidgetEncoder_setOnPositionChangeHandler(
6485        ch: PhidgetEncoderHandle,
6486        fptr: PhidgetEncoder_OnPositionChangeCallback,
6487        ctx: *mut ::std::os::raw::c_void,
6488    ) -> PhidgetReturnCode;
6489}
6490#[repr(C)]
6491#[derive(Debug, Copy, Clone)]
6492pub struct _PhidgetFrequencyCounter {
6493    _unused: [u8; 0],
6494}
6495pub type PhidgetFrequencyCounterHandle = *mut _PhidgetFrequencyCounter;
6496extern "C" {
6497    pub fn PhidgetFrequencyCounter_create(
6498        ch: *mut PhidgetFrequencyCounterHandle,
6499    ) -> PhidgetReturnCode;
6500}
6501extern "C" {
6502    pub fn PhidgetFrequencyCounter_delete(
6503        ch: *mut PhidgetFrequencyCounterHandle,
6504    ) -> PhidgetReturnCode;
6505}
6506extern "C" {
6507    pub fn PhidgetFrequencyCounter_reset(ch: PhidgetFrequencyCounterHandle) -> PhidgetReturnCode;
6508}
6509extern "C" {
6510    pub fn PhidgetFrequencyCounter_getCount(
6511        ch: PhidgetFrequencyCounterHandle,
6512        count: *mut u64,
6513    ) -> PhidgetReturnCode;
6514}
6515extern "C" {
6516    pub fn PhidgetFrequencyCounter_setEnabled(
6517        ch: PhidgetFrequencyCounterHandle,
6518        enabled: ::std::os::raw::c_int,
6519    ) -> PhidgetReturnCode;
6520}
6521extern "C" {
6522    pub fn PhidgetFrequencyCounter_getEnabled(
6523        ch: PhidgetFrequencyCounterHandle,
6524        enabled: *mut ::std::os::raw::c_int,
6525    ) -> PhidgetReturnCode;
6526}
6527extern "C" {
6528    pub fn PhidgetFrequencyCounter_setDataInterval(
6529        ch: PhidgetFrequencyCounterHandle,
6530        dataInterval: u32,
6531    ) -> PhidgetReturnCode;
6532}
6533extern "C" {
6534    pub fn PhidgetFrequencyCounter_getDataInterval(
6535        ch: PhidgetFrequencyCounterHandle,
6536        dataInterval: *mut u32,
6537    ) -> PhidgetReturnCode;
6538}
6539extern "C" {
6540    pub fn PhidgetFrequencyCounter_getMinDataInterval(
6541        ch: PhidgetFrequencyCounterHandle,
6542        minDataInterval: *mut u32,
6543    ) -> PhidgetReturnCode;
6544}
6545extern "C" {
6546    pub fn PhidgetFrequencyCounter_getMaxDataInterval(
6547        ch: PhidgetFrequencyCounterHandle,
6548        maxDataInterval: *mut u32,
6549    ) -> PhidgetReturnCode;
6550}
6551extern "C" {
6552    pub fn PhidgetFrequencyCounter_setFilterType(
6553        ch: PhidgetFrequencyCounterHandle,
6554        filterType: PhidgetFrequencyCounter_FilterType,
6555    ) -> PhidgetReturnCode;
6556}
6557extern "C" {
6558    pub fn PhidgetFrequencyCounter_getFilterType(
6559        ch: PhidgetFrequencyCounterHandle,
6560        filterType: *mut PhidgetFrequencyCounter_FilterType,
6561    ) -> PhidgetReturnCode;
6562}
6563extern "C" {
6564    pub fn PhidgetFrequencyCounter_getFrequency(
6565        ch: PhidgetFrequencyCounterHandle,
6566        frequency: *mut f64,
6567    ) -> PhidgetReturnCode;
6568}
6569extern "C" {
6570    pub fn PhidgetFrequencyCounter_getMaxFrequency(
6571        ch: PhidgetFrequencyCounterHandle,
6572        maxFrequency: *mut f64,
6573    ) -> PhidgetReturnCode;
6574}
6575extern "C" {
6576    pub fn PhidgetFrequencyCounter_setFrequencyCutoff(
6577        ch: PhidgetFrequencyCounterHandle,
6578        frequencyCutoff: f64,
6579    ) -> PhidgetReturnCode;
6580}
6581extern "C" {
6582    pub fn PhidgetFrequencyCounter_getFrequencyCutoff(
6583        ch: PhidgetFrequencyCounterHandle,
6584        frequencyCutoff: *mut f64,
6585    ) -> PhidgetReturnCode;
6586}
6587extern "C" {
6588    pub fn PhidgetFrequencyCounter_getMinFrequencyCutoff(
6589        ch: PhidgetFrequencyCounterHandle,
6590        minFrequencyCutoff: *mut f64,
6591    ) -> PhidgetReturnCode;
6592}
6593extern "C" {
6594    pub fn PhidgetFrequencyCounter_getMaxFrequencyCutoff(
6595        ch: PhidgetFrequencyCounterHandle,
6596        maxFrequencyCutoff: *mut f64,
6597    ) -> PhidgetReturnCode;
6598}
6599extern "C" {
6600    pub fn PhidgetFrequencyCounter_setInputMode(
6601        ch: PhidgetFrequencyCounterHandle,
6602        inputMode: Phidget_InputMode,
6603    ) -> PhidgetReturnCode;
6604}
6605extern "C" {
6606    pub fn PhidgetFrequencyCounter_getInputMode(
6607        ch: PhidgetFrequencyCounterHandle,
6608        inputMode: *mut Phidget_InputMode,
6609    ) -> PhidgetReturnCode;
6610}
6611extern "C" {
6612    pub fn PhidgetFrequencyCounter_setPowerSupply(
6613        ch: PhidgetFrequencyCounterHandle,
6614        powerSupply: Phidget_PowerSupply,
6615    ) -> PhidgetReturnCode;
6616}
6617extern "C" {
6618    pub fn PhidgetFrequencyCounter_getPowerSupply(
6619        ch: PhidgetFrequencyCounterHandle,
6620        powerSupply: *mut Phidget_PowerSupply,
6621    ) -> PhidgetReturnCode;
6622}
6623extern "C" {
6624    pub fn PhidgetFrequencyCounter_getTimeElapsed(
6625        ch: PhidgetFrequencyCounterHandle,
6626        timeElapsed: *mut f64,
6627    ) -> PhidgetReturnCode;
6628}
6629pub type PhidgetFrequencyCounter_OnCountChangeCallback = ::std::option::Option<
6630    unsafe extern "C" fn(
6631        ch: PhidgetFrequencyCounterHandle,
6632        ctx: *mut ::std::os::raw::c_void,
6633        counts: u64,
6634        timeChange: f64,
6635    ),
6636>;
6637extern "C" {
6638    pub fn PhidgetFrequencyCounter_setOnCountChangeHandler(
6639        ch: PhidgetFrequencyCounterHandle,
6640        fptr: PhidgetFrequencyCounter_OnCountChangeCallback,
6641        ctx: *mut ::std::os::raw::c_void,
6642    ) -> PhidgetReturnCode;
6643}
6644pub type PhidgetFrequencyCounter_OnFrequencyChangeCallback = ::std::option::Option<
6645    unsafe extern "C" fn(
6646        ch: PhidgetFrequencyCounterHandle,
6647        ctx: *mut ::std::os::raw::c_void,
6648        frequency: f64,
6649    ),
6650>;
6651extern "C" {
6652    pub fn PhidgetFrequencyCounter_setOnFrequencyChangeHandler(
6653        ch: PhidgetFrequencyCounterHandle,
6654        fptr: PhidgetFrequencyCounter_OnFrequencyChangeCallback,
6655        ctx: *mut ::std::os::raw::c_void,
6656    ) -> PhidgetReturnCode;
6657}
6658#[repr(C)]
6659#[derive(Debug, Copy, Clone)]
6660pub struct _PhidgetIR {
6661    _unused: [u8; 0],
6662}
6663pub type PhidgetIRHandle = *mut _PhidgetIR;
6664extern "C" {
6665    pub fn PhidgetIR_create(ch: *mut PhidgetIRHandle) -> PhidgetReturnCode;
6666}
6667extern "C" {
6668    pub fn PhidgetIR_delete(ch: *mut PhidgetIRHandle) -> PhidgetReturnCode;
6669}
6670extern "C" {
6671    pub fn PhidgetIR_getLastCode(
6672        ch: PhidgetIRHandle,
6673        code: *mut ::std::os::raw::c_char,
6674        codeLen: size_t,
6675        bitCount: *mut u32,
6676    ) -> PhidgetReturnCode;
6677}
6678extern "C" {
6679    pub fn PhidgetIR_getLastLearnedCode(
6680        ch: PhidgetIRHandle,
6681        code: *mut ::std::os::raw::c_char,
6682        codeLen: size_t,
6683        codeInfo: *mut PhidgetIR_CodeInfo,
6684    ) -> PhidgetReturnCode;
6685}
6686extern "C" {
6687    pub fn PhidgetIR_transmit(
6688        ch: PhidgetIRHandle,
6689        code: *const ::std::os::raw::c_char,
6690        codeInfo: *mut PhidgetIR_CodeInfo,
6691    ) -> PhidgetReturnCode;
6692}
6693extern "C" {
6694    pub fn PhidgetIR_transmitRaw(
6695        ch: PhidgetIRHandle,
6696        data: *const u32,
6697        dataLen: size_t,
6698        carrierFrequency: u32,
6699        dutyCycle: f64,
6700        gap: u32,
6701    ) -> PhidgetReturnCode;
6702}
6703extern "C" {
6704    pub fn PhidgetIR_transmitRepeat(ch: PhidgetIRHandle) -> PhidgetReturnCode;
6705}
6706pub type PhidgetIR_OnCodeCallback = ::std::option::Option<
6707    unsafe extern "C" fn(
6708        ch: PhidgetIRHandle,
6709        ctx: *mut ::std::os::raw::c_void,
6710        code: *const ::std::os::raw::c_char,
6711        bitCount: u32,
6712        isRepeat: ::std::os::raw::c_int,
6713    ),
6714>;
6715extern "C" {
6716    pub fn PhidgetIR_setOnCodeHandler(
6717        ch: PhidgetIRHandle,
6718        fptr: PhidgetIR_OnCodeCallback,
6719        ctx: *mut ::std::os::raw::c_void,
6720    ) -> PhidgetReturnCode;
6721}
6722pub type PhidgetIR_OnLearnCallback = ::std::option::Option<
6723    unsafe extern "C" fn(
6724        ch: PhidgetIRHandle,
6725        ctx: *mut ::std::os::raw::c_void,
6726        code: *const ::std::os::raw::c_char,
6727        codeInfo: *mut PhidgetIR_CodeInfo,
6728    ),
6729>;
6730extern "C" {
6731    pub fn PhidgetIR_setOnLearnHandler(
6732        ch: PhidgetIRHandle,
6733        fptr: PhidgetIR_OnLearnCallback,
6734        ctx: *mut ::std::os::raw::c_void,
6735    ) -> PhidgetReturnCode;
6736}
6737pub type PhidgetIR_OnRawDataCallback = ::std::option::Option<
6738    unsafe extern "C" fn(
6739        ch: PhidgetIRHandle,
6740        ctx: *mut ::std::os::raw::c_void,
6741        data: *const u32,
6742        dataLen: size_t,
6743    ),
6744>;
6745extern "C" {
6746    pub fn PhidgetIR_setOnRawDataHandler(
6747        ch: PhidgetIRHandle,
6748        fptr: PhidgetIR_OnRawDataCallback,
6749        ctx: *mut ::std::os::raw::c_void,
6750    ) -> PhidgetReturnCode;
6751}
6752#[repr(C)]
6753#[derive(Debug, Copy, Clone)]
6754pub struct _PhidgetPHSensor {
6755    _unused: [u8; 0],
6756}
6757pub type PhidgetPHSensorHandle = *mut _PhidgetPHSensor;
6758extern "C" {
6759    pub fn PhidgetPHSensor_create(ch: *mut PhidgetPHSensorHandle) -> PhidgetReturnCode;
6760}
6761extern "C" {
6762    pub fn PhidgetPHSensor_delete(ch: *mut PhidgetPHSensorHandle) -> PhidgetReturnCode;
6763}
6764extern "C" {
6765    pub fn PhidgetPHSensor_setCorrectionTemperature(
6766        ch: PhidgetPHSensorHandle,
6767        correctionTemperature: f64,
6768    ) -> PhidgetReturnCode;
6769}
6770extern "C" {
6771    pub fn PhidgetPHSensor_getCorrectionTemperature(
6772        ch: PhidgetPHSensorHandle,
6773        correctionTemperature: *mut f64,
6774    ) -> PhidgetReturnCode;
6775}
6776extern "C" {
6777    pub fn PhidgetPHSensor_getMinCorrectionTemperature(
6778        ch: PhidgetPHSensorHandle,
6779        minCorrectionTemperature: *mut f64,
6780    ) -> PhidgetReturnCode;
6781}
6782extern "C" {
6783    pub fn PhidgetPHSensor_getMaxCorrectionTemperature(
6784        ch: PhidgetPHSensorHandle,
6785        maxCorrectionTemperature: *mut f64,
6786    ) -> PhidgetReturnCode;
6787}
6788extern "C" {
6789    pub fn PhidgetPHSensor_setDataInterval(
6790        ch: PhidgetPHSensorHandle,
6791        dataInterval: u32,
6792    ) -> PhidgetReturnCode;
6793}
6794extern "C" {
6795    pub fn PhidgetPHSensor_getDataInterval(
6796        ch: PhidgetPHSensorHandle,
6797        dataInterval: *mut u32,
6798    ) -> PhidgetReturnCode;
6799}
6800extern "C" {
6801    pub fn PhidgetPHSensor_getMinDataInterval(
6802        ch: PhidgetPHSensorHandle,
6803        minDataInterval: *mut u32,
6804    ) -> PhidgetReturnCode;
6805}
6806extern "C" {
6807    pub fn PhidgetPHSensor_getMaxDataInterval(
6808        ch: PhidgetPHSensorHandle,
6809        maxDataInterval: *mut u32,
6810    ) -> PhidgetReturnCode;
6811}
6812extern "C" {
6813    pub fn PhidgetPHSensor_getPH(ch: PhidgetPHSensorHandle, PH: *mut f64) -> PhidgetReturnCode;
6814}
6815extern "C" {
6816    pub fn PhidgetPHSensor_getMinPH(
6817        ch: PhidgetPHSensorHandle,
6818        minPH: *mut f64,
6819    ) -> PhidgetReturnCode;
6820}
6821extern "C" {
6822    pub fn PhidgetPHSensor_getMaxPH(
6823        ch: PhidgetPHSensorHandle,
6824        maxPH: *mut f64,
6825    ) -> PhidgetReturnCode;
6826}
6827extern "C" {
6828    pub fn PhidgetPHSensor_setPHChangeTrigger(
6829        ch: PhidgetPHSensorHandle,
6830        PHChangeTrigger: f64,
6831    ) -> PhidgetReturnCode;
6832}
6833extern "C" {
6834    pub fn PhidgetPHSensor_getPHChangeTrigger(
6835        ch: PhidgetPHSensorHandle,
6836        PHChangeTrigger: *mut f64,
6837    ) -> PhidgetReturnCode;
6838}
6839extern "C" {
6840    pub fn PhidgetPHSensor_getMinPHChangeTrigger(
6841        ch: PhidgetPHSensorHandle,
6842        minPHChangeTrigger: *mut f64,
6843    ) -> PhidgetReturnCode;
6844}
6845extern "C" {
6846    pub fn PhidgetPHSensor_getMaxPHChangeTrigger(
6847        ch: PhidgetPHSensorHandle,
6848        maxPHChangeTrigger: *mut f64,
6849    ) -> PhidgetReturnCode;
6850}
6851pub type PhidgetPHSensor_OnPHChangeCallback = ::std::option::Option<
6852    unsafe extern "C" fn(ch: PhidgetPHSensorHandle, ctx: *mut ::std::os::raw::c_void, PH: f64),
6853>;
6854extern "C" {
6855    pub fn PhidgetPHSensor_setOnPHChangeHandler(
6856        ch: PhidgetPHSensorHandle,
6857        fptr: PhidgetPHSensor_OnPHChangeCallback,
6858        ctx: *mut ::std::os::raw::c_void,
6859    ) -> PhidgetReturnCode;
6860}
6861#[repr(C)]
6862#[derive(Debug, Copy, Clone)]
6863pub struct _PhidgetDCMotor {
6864    _unused: [u8; 0],
6865}
6866pub type PhidgetDCMotorHandle = *mut _PhidgetDCMotor;
6867extern "C" {
6868    pub fn PhidgetDCMotor_create(ch: *mut PhidgetDCMotorHandle) -> PhidgetReturnCode;
6869}
6870extern "C" {
6871    pub fn PhidgetDCMotor_delete(ch: *mut PhidgetDCMotorHandle) -> PhidgetReturnCode;
6872}
6873extern "C" {
6874    pub fn PhidgetDCMotor_enableFailsafe(
6875        ch: PhidgetDCMotorHandle,
6876        failsafeTime: u32,
6877    ) -> PhidgetReturnCode;
6878}
6879extern "C" {
6880    pub fn PhidgetDCMotor_resetFailsafe(ch: PhidgetDCMotorHandle) -> PhidgetReturnCode;
6881}
6882extern "C" {
6883    pub fn PhidgetDCMotor_setAcceleration(
6884        ch: PhidgetDCMotorHandle,
6885        acceleration: f64,
6886    ) -> PhidgetReturnCode;
6887}
6888extern "C" {
6889    pub fn PhidgetDCMotor_getAcceleration(
6890        ch: PhidgetDCMotorHandle,
6891        acceleration: *mut f64,
6892    ) -> PhidgetReturnCode;
6893}
6894extern "C" {
6895    pub fn PhidgetDCMotor_getMinAcceleration(
6896        ch: PhidgetDCMotorHandle,
6897        minAcceleration: *mut f64,
6898    ) -> PhidgetReturnCode;
6899}
6900extern "C" {
6901    pub fn PhidgetDCMotor_getMaxAcceleration(
6902        ch: PhidgetDCMotorHandle,
6903        maxAcceleration: *mut f64,
6904    ) -> PhidgetReturnCode;
6905}
6906extern "C" {
6907    pub fn PhidgetDCMotor_getBackEMF(
6908        ch: PhidgetDCMotorHandle,
6909        backEMF: *mut f64,
6910    ) -> PhidgetReturnCode;
6911}
6912extern "C" {
6913    pub fn PhidgetDCMotor_setBackEMFSensingState(
6914        ch: PhidgetDCMotorHandle,
6915        backEMFSensingState: ::std::os::raw::c_int,
6916    ) -> PhidgetReturnCode;
6917}
6918extern "C" {
6919    pub fn PhidgetDCMotor_getBackEMFSensingState(
6920        ch: PhidgetDCMotorHandle,
6921        backEMFSensingState: *mut ::std::os::raw::c_int,
6922    ) -> PhidgetReturnCode;
6923}
6924extern "C" {
6925    pub fn PhidgetDCMotor_getBrakingStrength(
6926        ch: PhidgetDCMotorHandle,
6927        brakingStrength: *mut f64,
6928    ) -> PhidgetReturnCode;
6929}
6930extern "C" {
6931    pub fn PhidgetDCMotor_getMinBrakingStrength(
6932        ch: PhidgetDCMotorHandle,
6933        minBrakingStrength: *mut f64,
6934    ) -> PhidgetReturnCode;
6935}
6936extern "C" {
6937    pub fn PhidgetDCMotor_getMaxBrakingStrength(
6938        ch: PhidgetDCMotorHandle,
6939        maxBrakingStrength: *mut f64,
6940    ) -> PhidgetReturnCode;
6941}
6942extern "C" {
6943    pub fn PhidgetDCMotor_setCurrentLimit(
6944        ch: PhidgetDCMotorHandle,
6945        currentLimit: f64,
6946    ) -> PhidgetReturnCode;
6947}
6948extern "C" {
6949    pub fn PhidgetDCMotor_getCurrentLimit(
6950        ch: PhidgetDCMotorHandle,
6951        currentLimit: *mut f64,
6952    ) -> PhidgetReturnCode;
6953}
6954extern "C" {
6955    pub fn PhidgetDCMotor_getMinCurrentLimit(
6956        ch: PhidgetDCMotorHandle,
6957        minCurrentLimit: *mut f64,
6958    ) -> PhidgetReturnCode;
6959}
6960extern "C" {
6961    pub fn PhidgetDCMotor_getMaxCurrentLimit(
6962        ch: PhidgetDCMotorHandle,
6963        maxCurrentLimit: *mut f64,
6964    ) -> PhidgetReturnCode;
6965}
6966extern "C" {
6967    pub fn PhidgetDCMotor_setCurrentRegulatorGain(
6968        ch: PhidgetDCMotorHandle,
6969        currentRegulatorGain: f64,
6970    ) -> PhidgetReturnCode;
6971}
6972extern "C" {
6973    pub fn PhidgetDCMotor_getCurrentRegulatorGain(
6974        ch: PhidgetDCMotorHandle,
6975        currentRegulatorGain: *mut f64,
6976    ) -> PhidgetReturnCode;
6977}
6978extern "C" {
6979    pub fn PhidgetDCMotor_getMinCurrentRegulatorGain(
6980        ch: PhidgetDCMotorHandle,
6981        minCurrentRegulatorGain: *mut f64,
6982    ) -> PhidgetReturnCode;
6983}
6984extern "C" {
6985    pub fn PhidgetDCMotor_getMaxCurrentRegulatorGain(
6986        ch: PhidgetDCMotorHandle,
6987        maxCurrentRegulatorGain: *mut f64,
6988    ) -> PhidgetReturnCode;
6989}
6990extern "C" {
6991    pub fn PhidgetDCMotor_setDataInterval(
6992        ch: PhidgetDCMotorHandle,
6993        dataInterval: u32,
6994    ) -> PhidgetReturnCode;
6995}
6996extern "C" {
6997    pub fn PhidgetDCMotor_getDataInterval(
6998        ch: PhidgetDCMotorHandle,
6999        dataInterval: *mut u32,
7000    ) -> PhidgetReturnCode;
7001}
7002extern "C" {
7003    pub fn PhidgetDCMotor_getMinDataInterval(
7004        ch: PhidgetDCMotorHandle,
7005        minDataInterval: *mut u32,
7006    ) -> PhidgetReturnCode;
7007}
7008extern "C" {
7009    pub fn PhidgetDCMotor_getMaxDataInterval(
7010        ch: PhidgetDCMotorHandle,
7011        maxDataInterval: *mut u32,
7012    ) -> PhidgetReturnCode;
7013}
7014extern "C" {
7015    pub fn PhidgetDCMotor_getMinFailsafeTime(
7016        ch: PhidgetDCMotorHandle,
7017        minFailsafeTime: *mut u32,
7018    ) -> PhidgetReturnCode;
7019}
7020extern "C" {
7021    pub fn PhidgetDCMotor_getMaxFailsafeTime(
7022        ch: PhidgetDCMotorHandle,
7023        maxFailsafeTime: *mut u32,
7024    ) -> PhidgetReturnCode;
7025}
7026extern "C" {
7027    pub fn PhidgetDCMotor_setFanMode(
7028        ch: PhidgetDCMotorHandle,
7029        fanMode: Phidget_FanMode,
7030    ) -> PhidgetReturnCode;
7031}
7032extern "C" {
7033    pub fn PhidgetDCMotor_getFanMode(
7034        ch: PhidgetDCMotorHandle,
7035        fanMode: *mut Phidget_FanMode,
7036    ) -> PhidgetReturnCode;
7037}
7038extern "C" {
7039    pub fn PhidgetDCMotor_setTargetBrakingStrength(
7040        ch: PhidgetDCMotorHandle,
7041        targetBrakingStrength: f64,
7042    ) -> PhidgetReturnCode;
7043}
7044extern "C" {
7045    pub fn PhidgetDCMotor_getTargetBrakingStrength(
7046        ch: PhidgetDCMotorHandle,
7047        targetBrakingStrength: *mut f64,
7048    ) -> PhidgetReturnCode;
7049}
7050extern "C" {
7051    pub fn PhidgetDCMotor_setTargetVelocity(
7052        ch: PhidgetDCMotorHandle,
7053        targetVelocity: f64,
7054    ) -> PhidgetReturnCode;
7055}
7056extern "C" {
7057    pub fn PhidgetDCMotor_setTargetVelocity_async(
7058        ch: PhidgetDCMotorHandle,
7059        targetVelocity: f64,
7060        fptr: Phidget_AsyncCallback,
7061        ctx: *mut ::std::os::raw::c_void,
7062    );
7063}
7064extern "C" {
7065    pub fn PhidgetDCMotor_getTargetVelocity(
7066        ch: PhidgetDCMotorHandle,
7067        targetVelocity: *mut f64,
7068    ) -> PhidgetReturnCode;
7069}
7070extern "C" {
7071    pub fn PhidgetDCMotor_getVelocity(
7072        ch: PhidgetDCMotorHandle,
7073        velocity: *mut f64,
7074    ) -> PhidgetReturnCode;
7075}
7076extern "C" {
7077    pub fn PhidgetDCMotor_getMinVelocity(
7078        ch: PhidgetDCMotorHandle,
7079        minVelocity: *mut f64,
7080    ) -> PhidgetReturnCode;
7081}
7082extern "C" {
7083    pub fn PhidgetDCMotor_getMaxVelocity(
7084        ch: PhidgetDCMotorHandle,
7085        maxVelocity: *mut f64,
7086    ) -> PhidgetReturnCode;
7087}
7088pub type PhidgetDCMotor_OnBackEMFChangeCallback = ::std::option::Option<
7089    unsafe extern "C" fn(ch: PhidgetDCMotorHandle, ctx: *mut ::std::os::raw::c_void, backEMF: f64),
7090>;
7091extern "C" {
7092    pub fn PhidgetDCMotor_setOnBackEMFChangeHandler(
7093        ch: PhidgetDCMotorHandle,
7094        fptr: PhidgetDCMotor_OnBackEMFChangeCallback,
7095        ctx: *mut ::std::os::raw::c_void,
7096    ) -> PhidgetReturnCode;
7097}
7098pub type PhidgetDCMotor_OnBrakingStrengthChangeCallback = ::std::option::Option<
7099    unsafe extern "C" fn(
7100        ch: PhidgetDCMotorHandle,
7101        ctx: *mut ::std::os::raw::c_void,
7102        brakingStrength: f64,
7103    ),
7104>;
7105extern "C" {
7106    pub fn PhidgetDCMotor_setOnBrakingStrengthChangeHandler(
7107        ch: PhidgetDCMotorHandle,
7108        fptr: PhidgetDCMotor_OnBrakingStrengthChangeCallback,
7109        ctx: *mut ::std::os::raw::c_void,
7110    ) -> PhidgetReturnCode;
7111}
7112pub type PhidgetDCMotor_OnVelocityUpdateCallback = ::std::option::Option<
7113    unsafe extern "C" fn(ch: PhidgetDCMotorHandle, ctx: *mut ::std::os::raw::c_void, velocity: f64),
7114>;
7115extern "C" {
7116    pub fn PhidgetDCMotor_setOnVelocityUpdateHandler(
7117        ch: PhidgetDCMotorHandle,
7118        fptr: PhidgetDCMotor_OnVelocityUpdateCallback,
7119        ctx: *mut ::std::os::raw::c_void,
7120    ) -> PhidgetReturnCode;
7121}
7122#[repr(C)]
7123#[derive(Debug, Copy, Clone)]
7124pub struct _PhidgetCurrentInput {
7125    _unused: [u8; 0],
7126}
7127pub type PhidgetCurrentInputHandle = *mut _PhidgetCurrentInput;
7128extern "C" {
7129    pub fn PhidgetCurrentInput_create(ch: *mut PhidgetCurrentInputHandle) -> PhidgetReturnCode;
7130}
7131extern "C" {
7132    pub fn PhidgetCurrentInput_delete(ch: *mut PhidgetCurrentInputHandle) -> PhidgetReturnCode;
7133}
7134extern "C" {
7135    pub fn PhidgetCurrentInput_getCurrent(
7136        ch: PhidgetCurrentInputHandle,
7137        current: *mut f64,
7138    ) -> PhidgetReturnCode;
7139}
7140extern "C" {
7141    pub fn PhidgetCurrentInput_getMinCurrent(
7142        ch: PhidgetCurrentInputHandle,
7143        minCurrent: *mut f64,
7144    ) -> PhidgetReturnCode;
7145}
7146extern "C" {
7147    pub fn PhidgetCurrentInput_getMaxCurrent(
7148        ch: PhidgetCurrentInputHandle,
7149        maxCurrent: *mut f64,
7150    ) -> PhidgetReturnCode;
7151}
7152extern "C" {
7153    pub fn PhidgetCurrentInput_setCurrentChangeTrigger(
7154        ch: PhidgetCurrentInputHandle,
7155        currentChangeTrigger: f64,
7156    ) -> PhidgetReturnCode;
7157}
7158extern "C" {
7159    pub fn PhidgetCurrentInput_getCurrentChangeTrigger(
7160        ch: PhidgetCurrentInputHandle,
7161        currentChangeTrigger: *mut f64,
7162    ) -> PhidgetReturnCode;
7163}
7164extern "C" {
7165    pub fn PhidgetCurrentInput_getMinCurrentChangeTrigger(
7166        ch: PhidgetCurrentInputHandle,
7167        minCurrentChangeTrigger: *mut f64,
7168    ) -> PhidgetReturnCode;
7169}
7170extern "C" {
7171    pub fn PhidgetCurrentInput_getMaxCurrentChangeTrigger(
7172        ch: PhidgetCurrentInputHandle,
7173        maxCurrentChangeTrigger: *mut f64,
7174    ) -> PhidgetReturnCode;
7175}
7176extern "C" {
7177    pub fn PhidgetCurrentInput_setDataInterval(
7178        ch: PhidgetCurrentInputHandle,
7179        dataInterval: u32,
7180    ) -> PhidgetReturnCode;
7181}
7182extern "C" {
7183    pub fn PhidgetCurrentInput_getDataInterval(
7184        ch: PhidgetCurrentInputHandle,
7185        dataInterval: *mut u32,
7186    ) -> PhidgetReturnCode;
7187}
7188extern "C" {
7189    pub fn PhidgetCurrentInput_getMinDataInterval(
7190        ch: PhidgetCurrentInputHandle,
7191        minDataInterval: *mut u32,
7192    ) -> PhidgetReturnCode;
7193}
7194extern "C" {
7195    pub fn PhidgetCurrentInput_getMaxDataInterval(
7196        ch: PhidgetCurrentInputHandle,
7197        maxDataInterval: *mut u32,
7198    ) -> PhidgetReturnCode;
7199}
7200extern "C" {
7201    pub fn PhidgetCurrentInput_setPowerSupply(
7202        ch: PhidgetCurrentInputHandle,
7203        powerSupply: Phidget_PowerSupply,
7204    ) -> PhidgetReturnCode;
7205}
7206extern "C" {
7207    pub fn PhidgetCurrentInput_getPowerSupply(
7208        ch: PhidgetCurrentInputHandle,
7209        powerSupply: *mut Phidget_PowerSupply,
7210    ) -> PhidgetReturnCode;
7211}
7212pub type PhidgetCurrentInput_OnCurrentChangeCallback = ::std::option::Option<
7213    unsafe extern "C" fn(
7214        ch: PhidgetCurrentInputHandle,
7215        ctx: *mut ::std::os::raw::c_void,
7216        current: f64,
7217    ),
7218>;
7219extern "C" {
7220    pub fn PhidgetCurrentInput_setOnCurrentChangeHandler(
7221        ch: PhidgetCurrentInputHandle,
7222        fptr: PhidgetCurrentInput_OnCurrentChangeCallback,
7223        ctx: *mut ::std::os::raw::c_void,
7224    ) -> PhidgetReturnCode;
7225}
7226#[repr(C)]
7227#[derive(Debug, Copy, Clone)]
7228pub struct _PhidgetStepper {
7229    _unused: [u8; 0],
7230}
7231pub type PhidgetStepperHandle = *mut _PhidgetStepper;
7232extern "C" {
7233    pub fn PhidgetStepper_create(ch: *mut PhidgetStepperHandle) -> PhidgetReturnCode;
7234}
7235extern "C" {
7236    pub fn PhidgetStepper_delete(ch: *mut PhidgetStepperHandle) -> PhidgetReturnCode;
7237}
7238extern "C" {
7239    pub fn PhidgetStepper_enableFailsafe(
7240        ch: PhidgetStepperHandle,
7241        failsafeTime: u32,
7242    ) -> PhidgetReturnCode;
7243}
7244extern "C" {
7245    pub fn PhidgetStepper_addPositionOffset(
7246        ch: PhidgetStepperHandle,
7247        positionOffset: f64,
7248    ) -> PhidgetReturnCode;
7249}
7250extern "C" {
7251    pub fn PhidgetStepper_resetFailsafe(ch: PhidgetStepperHandle) -> PhidgetReturnCode;
7252}
7253extern "C" {
7254    pub fn PhidgetStepper_setAcceleration(
7255        ch: PhidgetStepperHandle,
7256        acceleration: f64,
7257    ) -> PhidgetReturnCode;
7258}
7259extern "C" {
7260    pub fn PhidgetStepper_getAcceleration(
7261        ch: PhidgetStepperHandle,
7262        acceleration: *mut f64,
7263    ) -> PhidgetReturnCode;
7264}
7265extern "C" {
7266    pub fn PhidgetStepper_getMinAcceleration(
7267        ch: PhidgetStepperHandle,
7268        minAcceleration: *mut f64,
7269    ) -> PhidgetReturnCode;
7270}
7271extern "C" {
7272    pub fn PhidgetStepper_getMaxAcceleration(
7273        ch: PhidgetStepperHandle,
7274        maxAcceleration: *mut f64,
7275    ) -> PhidgetReturnCode;
7276}
7277extern "C" {
7278    pub fn PhidgetStepper_setControlMode(
7279        ch: PhidgetStepperHandle,
7280        controlMode: PhidgetStepper_ControlMode,
7281    ) -> PhidgetReturnCode;
7282}
7283extern "C" {
7284    pub fn PhidgetStepper_getControlMode(
7285        ch: PhidgetStepperHandle,
7286        controlMode: *mut PhidgetStepper_ControlMode,
7287    ) -> PhidgetReturnCode;
7288}
7289extern "C" {
7290    pub fn PhidgetStepper_setCurrentLimit(
7291        ch: PhidgetStepperHandle,
7292        currentLimit: f64,
7293    ) -> PhidgetReturnCode;
7294}
7295extern "C" {
7296    pub fn PhidgetStepper_getCurrentLimit(
7297        ch: PhidgetStepperHandle,
7298        currentLimit: *mut f64,
7299    ) -> PhidgetReturnCode;
7300}
7301extern "C" {
7302    pub fn PhidgetStepper_getMinCurrentLimit(
7303        ch: PhidgetStepperHandle,
7304        minCurrentLimit: *mut f64,
7305    ) -> PhidgetReturnCode;
7306}
7307extern "C" {
7308    pub fn PhidgetStepper_getMaxCurrentLimit(
7309        ch: PhidgetStepperHandle,
7310        maxCurrentLimit: *mut f64,
7311    ) -> PhidgetReturnCode;
7312}
7313extern "C" {
7314    pub fn PhidgetStepper_setDataInterval(
7315        ch: PhidgetStepperHandle,
7316        dataInterval: u32,
7317    ) -> PhidgetReturnCode;
7318}
7319extern "C" {
7320    pub fn PhidgetStepper_getDataInterval(
7321        ch: PhidgetStepperHandle,
7322        dataInterval: *mut u32,
7323    ) -> PhidgetReturnCode;
7324}
7325extern "C" {
7326    pub fn PhidgetStepper_getMinDataInterval(
7327        ch: PhidgetStepperHandle,
7328        minDataInterval: *mut u32,
7329    ) -> PhidgetReturnCode;
7330}
7331extern "C" {
7332    pub fn PhidgetStepper_getMaxDataInterval(
7333        ch: PhidgetStepperHandle,
7334        maxDataInterval: *mut u32,
7335    ) -> PhidgetReturnCode;
7336}
7337extern "C" {
7338    pub fn PhidgetStepper_setEngaged(
7339        ch: PhidgetStepperHandle,
7340        engaged: ::std::os::raw::c_int,
7341    ) -> PhidgetReturnCode;
7342}
7343extern "C" {
7344    pub fn PhidgetStepper_getEngaged(
7345        ch: PhidgetStepperHandle,
7346        engaged: *mut ::std::os::raw::c_int,
7347    ) -> PhidgetReturnCode;
7348}
7349extern "C" {
7350    pub fn PhidgetStepper_getMinFailsafeTime(
7351        ch: PhidgetStepperHandle,
7352        minFailsafeTime: *mut u32,
7353    ) -> PhidgetReturnCode;
7354}
7355extern "C" {
7356    pub fn PhidgetStepper_getMaxFailsafeTime(
7357        ch: PhidgetStepperHandle,
7358        maxFailsafeTime: *mut u32,
7359    ) -> PhidgetReturnCode;
7360}
7361extern "C" {
7362    pub fn PhidgetStepper_setHoldingCurrentLimit(
7363        ch: PhidgetStepperHandle,
7364        holdingCurrentLimit: f64,
7365    ) -> PhidgetReturnCode;
7366}
7367extern "C" {
7368    pub fn PhidgetStepper_getHoldingCurrentLimit(
7369        ch: PhidgetStepperHandle,
7370        holdingCurrentLimit: *mut f64,
7371    ) -> PhidgetReturnCode;
7372}
7373extern "C" {
7374    pub fn PhidgetStepper_getIsMoving(
7375        ch: PhidgetStepperHandle,
7376        isMoving: *mut ::std::os::raw::c_int,
7377    ) -> PhidgetReturnCode;
7378}
7379extern "C" {
7380    pub fn PhidgetStepper_getPosition(
7381        ch: PhidgetStepperHandle,
7382        position: *mut f64,
7383    ) -> PhidgetReturnCode;
7384}
7385extern "C" {
7386    pub fn PhidgetStepper_getMinPosition(
7387        ch: PhidgetStepperHandle,
7388        minPosition: *mut f64,
7389    ) -> PhidgetReturnCode;
7390}
7391extern "C" {
7392    pub fn PhidgetStepper_getMaxPosition(
7393        ch: PhidgetStepperHandle,
7394        maxPosition: *mut f64,
7395    ) -> PhidgetReturnCode;
7396}
7397extern "C" {
7398    pub fn PhidgetStepper_setRescaleFactor(
7399        ch: PhidgetStepperHandle,
7400        rescaleFactor: f64,
7401    ) -> PhidgetReturnCode;
7402}
7403extern "C" {
7404    pub fn PhidgetStepper_getRescaleFactor(
7405        ch: PhidgetStepperHandle,
7406        rescaleFactor: *mut f64,
7407    ) -> PhidgetReturnCode;
7408}
7409extern "C" {
7410    pub fn PhidgetStepper_setTargetPosition(
7411        ch: PhidgetStepperHandle,
7412        targetPosition: f64,
7413    ) -> PhidgetReturnCode;
7414}
7415extern "C" {
7416    pub fn PhidgetStepper_setTargetPosition_async(
7417        ch: PhidgetStepperHandle,
7418        targetPosition: f64,
7419        fptr: Phidget_AsyncCallback,
7420        ctx: *mut ::std::os::raw::c_void,
7421    );
7422}
7423extern "C" {
7424    pub fn PhidgetStepper_getTargetPosition(
7425        ch: PhidgetStepperHandle,
7426        targetPosition: *mut f64,
7427    ) -> PhidgetReturnCode;
7428}
7429extern "C" {
7430    pub fn PhidgetStepper_getVelocity(
7431        ch: PhidgetStepperHandle,
7432        velocity: *mut f64,
7433    ) -> PhidgetReturnCode;
7434}
7435extern "C" {
7436    pub fn PhidgetStepper_setVelocityLimit(
7437        ch: PhidgetStepperHandle,
7438        velocityLimit: f64,
7439    ) -> PhidgetReturnCode;
7440}
7441extern "C" {
7442    pub fn PhidgetStepper_getVelocityLimit(
7443        ch: PhidgetStepperHandle,
7444        velocityLimit: *mut f64,
7445    ) -> PhidgetReturnCode;
7446}
7447extern "C" {
7448    pub fn PhidgetStepper_getMinVelocityLimit(
7449        ch: PhidgetStepperHandle,
7450        minVelocityLimit: *mut f64,
7451    ) -> PhidgetReturnCode;
7452}
7453extern "C" {
7454    pub fn PhidgetStepper_getMaxVelocityLimit(
7455        ch: PhidgetStepperHandle,
7456        maxVelocityLimit: *mut f64,
7457    ) -> PhidgetReturnCode;
7458}
7459pub type PhidgetStepper_OnPositionChangeCallback = ::std::option::Option<
7460    unsafe extern "C" fn(ch: PhidgetStepperHandle, ctx: *mut ::std::os::raw::c_void, position: f64),
7461>;
7462extern "C" {
7463    pub fn PhidgetStepper_setOnPositionChangeHandler(
7464        ch: PhidgetStepperHandle,
7465        fptr: PhidgetStepper_OnPositionChangeCallback,
7466        ctx: *mut ::std::os::raw::c_void,
7467    ) -> PhidgetReturnCode;
7468}
7469pub type PhidgetStepper_OnStoppedCallback = ::std::option::Option<
7470    unsafe extern "C" fn(ch: PhidgetStepperHandle, ctx: *mut ::std::os::raw::c_void),
7471>;
7472extern "C" {
7473    pub fn PhidgetStepper_setOnStoppedHandler(
7474        ch: PhidgetStepperHandle,
7475        fptr: PhidgetStepper_OnStoppedCallback,
7476        ctx: *mut ::std::os::raw::c_void,
7477    ) -> PhidgetReturnCode;
7478}
7479pub type PhidgetStepper_OnVelocityChangeCallback = ::std::option::Option<
7480    unsafe extern "C" fn(ch: PhidgetStepperHandle, ctx: *mut ::std::os::raw::c_void, velocity: f64),
7481>;
7482extern "C" {
7483    pub fn PhidgetStepper_setOnVelocityChangeHandler(
7484        ch: PhidgetStepperHandle,
7485        fptr: PhidgetStepper_OnVelocityChangeCallback,
7486        ctx: *mut ::std::os::raw::c_void,
7487    ) -> PhidgetReturnCode;
7488}
7489#[repr(C)]
7490#[derive(Debug, Copy, Clone)]
7491pub struct _PhidgetLCD {
7492    _unused: [u8; 0],
7493}
7494pub type PhidgetLCDHandle = *mut _PhidgetLCD;
7495extern "C" {
7496    pub fn PhidgetLCD_create(ch: *mut PhidgetLCDHandle) -> PhidgetReturnCode;
7497}
7498extern "C" {
7499    pub fn PhidgetLCD_delete(ch: *mut PhidgetLCDHandle) -> PhidgetReturnCode;
7500}
7501extern "C" {
7502    pub fn PhidgetLCD_setCharacterBitmap(
7503        ch: PhidgetLCDHandle,
7504        font: PhidgetLCD_Font,
7505        character: *const ::std::os::raw::c_char,
7506        bitmap: *const u8,
7507    ) -> PhidgetReturnCode;
7508}
7509extern "C" {
7510    pub fn PhidgetLCD_setCharacterBitmap_async(
7511        ch: PhidgetLCDHandle,
7512        font: PhidgetLCD_Font,
7513        character: *const ::std::os::raw::c_char,
7514        bitmap: *const u8,
7515        fptr: Phidget_AsyncCallback,
7516        ctx: *mut ::std::os::raw::c_void,
7517    );
7518}
7519extern "C" {
7520    pub fn PhidgetLCD_getMaxCharacters(
7521        ch: PhidgetLCDHandle,
7522        font: PhidgetLCD_Font,
7523        maxCharacters: *mut ::std::os::raw::c_int,
7524    ) -> PhidgetReturnCode;
7525}
7526extern "C" {
7527    pub fn PhidgetLCD_clear(ch: PhidgetLCDHandle) -> PhidgetReturnCode;
7528}
7529extern "C" {
7530    pub fn PhidgetLCD_clear_async(
7531        ch: PhidgetLCDHandle,
7532        fptr: Phidget_AsyncCallback,
7533        ctx: *mut ::std::os::raw::c_void,
7534    );
7535}
7536extern "C" {
7537    pub fn PhidgetLCD_copy(
7538        ch: PhidgetLCDHandle,
7539        sourceFramebuffer: ::std::os::raw::c_int,
7540        destFramebuffer: ::std::os::raw::c_int,
7541        sourceX1: ::std::os::raw::c_int,
7542        sourceY1: ::std::os::raw::c_int,
7543        sourceX2: ::std::os::raw::c_int,
7544        sourceY2: ::std::os::raw::c_int,
7545        destX: ::std::os::raw::c_int,
7546        destY: ::std::os::raw::c_int,
7547        inverted: ::std::os::raw::c_int,
7548    ) -> PhidgetReturnCode;
7549}
7550extern "C" {
7551    pub fn PhidgetLCD_copy_async(
7552        ch: PhidgetLCDHandle,
7553        sourceFramebuffer: ::std::os::raw::c_int,
7554        destFramebuffer: ::std::os::raw::c_int,
7555        sourceX1: ::std::os::raw::c_int,
7556        sourceY1: ::std::os::raw::c_int,
7557        sourceX2: ::std::os::raw::c_int,
7558        sourceY2: ::std::os::raw::c_int,
7559        destX: ::std::os::raw::c_int,
7560        destY: ::std::os::raw::c_int,
7561        inverted: ::std::os::raw::c_int,
7562        fptr: Phidget_AsyncCallback,
7563        ctx: *mut ::std::os::raw::c_void,
7564    );
7565}
7566extern "C" {
7567    pub fn PhidgetLCD_drawLine(
7568        ch: PhidgetLCDHandle,
7569        x1: ::std::os::raw::c_int,
7570        y1: ::std::os::raw::c_int,
7571        x2: ::std::os::raw::c_int,
7572        y2: ::std::os::raw::c_int,
7573    ) -> PhidgetReturnCode;
7574}
7575extern "C" {
7576    pub fn PhidgetLCD_drawLine_async(
7577        ch: PhidgetLCDHandle,
7578        x1: ::std::os::raw::c_int,
7579        y1: ::std::os::raw::c_int,
7580        x2: ::std::os::raw::c_int,
7581        y2: ::std::os::raw::c_int,
7582        fptr: Phidget_AsyncCallback,
7583        ctx: *mut ::std::os::raw::c_void,
7584    );
7585}
7586extern "C" {
7587    pub fn PhidgetLCD_drawPixel(
7588        ch: PhidgetLCDHandle,
7589        x: ::std::os::raw::c_int,
7590        y: ::std::os::raw::c_int,
7591        pixelState: PhidgetLCD_PixelState,
7592    ) -> PhidgetReturnCode;
7593}
7594extern "C" {
7595    pub fn PhidgetLCD_drawPixel_async(
7596        ch: PhidgetLCDHandle,
7597        x: ::std::os::raw::c_int,
7598        y: ::std::os::raw::c_int,
7599        pixelState: PhidgetLCD_PixelState,
7600        fptr: Phidget_AsyncCallback,
7601        ctx: *mut ::std::os::raw::c_void,
7602    );
7603}
7604extern "C" {
7605    pub fn PhidgetLCD_drawRect(
7606        ch: PhidgetLCDHandle,
7607        x1: ::std::os::raw::c_int,
7608        y1: ::std::os::raw::c_int,
7609        x2: ::std::os::raw::c_int,
7610        y2: ::std::os::raw::c_int,
7611        filled: ::std::os::raw::c_int,
7612        inverted: ::std::os::raw::c_int,
7613    ) -> PhidgetReturnCode;
7614}
7615extern "C" {
7616    pub fn PhidgetLCD_drawRect_async(
7617        ch: PhidgetLCDHandle,
7618        x1: ::std::os::raw::c_int,
7619        y1: ::std::os::raw::c_int,
7620        x2: ::std::os::raw::c_int,
7621        y2: ::std::os::raw::c_int,
7622        filled: ::std::os::raw::c_int,
7623        inverted: ::std::os::raw::c_int,
7624        fptr: Phidget_AsyncCallback,
7625        ctx: *mut ::std::os::raw::c_void,
7626    );
7627}
7628extern "C" {
7629    pub fn PhidgetLCD_flush(ch: PhidgetLCDHandle) -> PhidgetReturnCode;
7630}
7631extern "C" {
7632    pub fn PhidgetLCD_flush_async(
7633        ch: PhidgetLCDHandle,
7634        fptr: Phidget_AsyncCallback,
7635        ctx: *mut ::std::os::raw::c_void,
7636    );
7637}
7638extern "C" {
7639    pub fn PhidgetLCD_getFontSize(
7640        ch: PhidgetLCDHandle,
7641        font: PhidgetLCD_Font,
7642        width: *mut ::std::os::raw::c_int,
7643        height: *mut ::std::os::raw::c_int,
7644    ) -> PhidgetReturnCode;
7645}
7646extern "C" {
7647    pub fn PhidgetLCD_setFontSize(
7648        ch: PhidgetLCDHandle,
7649        font: PhidgetLCD_Font,
7650        width: ::std::os::raw::c_int,
7651        height: ::std::os::raw::c_int,
7652    ) -> PhidgetReturnCode;
7653}
7654extern "C" {
7655    pub fn PhidgetLCD_initialize(ch: PhidgetLCDHandle) -> PhidgetReturnCode;
7656}
7657extern "C" {
7658    pub fn PhidgetLCD_saveFrameBuffer(
7659        ch: PhidgetLCDHandle,
7660        frameBuffer: ::std::os::raw::c_int,
7661    ) -> PhidgetReturnCode;
7662}
7663extern "C" {
7664    pub fn PhidgetLCD_saveFrameBuffer_async(
7665        ch: PhidgetLCDHandle,
7666        frameBuffer: ::std::os::raw::c_int,
7667        fptr: Phidget_AsyncCallback,
7668        ctx: *mut ::std::os::raw::c_void,
7669    );
7670}
7671extern "C" {
7672    pub fn PhidgetLCD_writeBitmap(
7673        ch: PhidgetLCDHandle,
7674        xPosition: ::std::os::raw::c_int,
7675        yPosition: ::std::os::raw::c_int,
7676        xSize: ::std::os::raw::c_int,
7677        ySize: ::std::os::raw::c_int,
7678        bitmap: *const u8,
7679    ) -> PhidgetReturnCode;
7680}
7681extern "C" {
7682    pub fn PhidgetLCD_writeBitmap_async(
7683        ch: PhidgetLCDHandle,
7684        xPosition: ::std::os::raw::c_int,
7685        yPosition: ::std::os::raw::c_int,
7686        xSize: ::std::os::raw::c_int,
7687        ySize: ::std::os::raw::c_int,
7688        bitmap: *const u8,
7689        fptr: Phidget_AsyncCallback,
7690        ctx: *mut ::std::os::raw::c_void,
7691    );
7692}
7693extern "C" {
7694    pub fn PhidgetLCD_writeText(
7695        ch: PhidgetLCDHandle,
7696        font: PhidgetLCD_Font,
7697        xPosition: ::std::os::raw::c_int,
7698        yPosition: ::std::os::raw::c_int,
7699        text: *const ::std::os::raw::c_char,
7700    ) -> PhidgetReturnCode;
7701}
7702extern "C" {
7703    pub fn PhidgetLCD_writeText_async(
7704        ch: PhidgetLCDHandle,
7705        font: PhidgetLCD_Font,
7706        xPosition: ::std::os::raw::c_int,
7707        yPosition: ::std::os::raw::c_int,
7708        text: *const ::std::os::raw::c_char,
7709        fptr: Phidget_AsyncCallback,
7710        ctx: *mut ::std::os::raw::c_void,
7711    );
7712}
7713extern "C" {
7714    pub fn PhidgetLCD_setBacklight(ch: PhidgetLCDHandle, backlight: f64) -> PhidgetReturnCode;
7715}
7716extern "C" {
7717    pub fn PhidgetLCD_getBacklight(ch: PhidgetLCDHandle, backlight: *mut f64) -> PhidgetReturnCode;
7718}
7719extern "C" {
7720    pub fn PhidgetLCD_getMinBacklight(
7721        ch: PhidgetLCDHandle,
7722        minBacklight: *mut f64,
7723    ) -> PhidgetReturnCode;
7724}
7725extern "C" {
7726    pub fn PhidgetLCD_getMaxBacklight(
7727        ch: PhidgetLCDHandle,
7728        maxBacklight: *mut f64,
7729    ) -> PhidgetReturnCode;
7730}
7731extern "C" {
7732    pub fn PhidgetLCD_setContrast(ch: PhidgetLCDHandle, contrast: f64) -> PhidgetReturnCode;
7733}
7734extern "C" {
7735    pub fn PhidgetLCD_getContrast(ch: PhidgetLCDHandle, contrast: *mut f64) -> PhidgetReturnCode;
7736}
7737extern "C" {
7738    pub fn PhidgetLCD_getMinContrast(
7739        ch: PhidgetLCDHandle,
7740        minContrast: *mut f64,
7741    ) -> PhidgetReturnCode;
7742}
7743extern "C" {
7744    pub fn PhidgetLCD_getMaxContrast(
7745        ch: PhidgetLCDHandle,
7746        maxContrast: *mut f64,
7747    ) -> PhidgetReturnCode;
7748}
7749extern "C" {
7750    pub fn PhidgetLCD_setCursorBlink(
7751        ch: PhidgetLCDHandle,
7752        cursorBlink: ::std::os::raw::c_int,
7753    ) -> PhidgetReturnCode;
7754}
7755extern "C" {
7756    pub fn PhidgetLCD_getCursorBlink(
7757        ch: PhidgetLCDHandle,
7758        cursorBlink: *mut ::std::os::raw::c_int,
7759    ) -> PhidgetReturnCode;
7760}
7761extern "C" {
7762    pub fn PhidgetLCD_setCursorOn(
7763        ch: PhidgetLCDHandle,
7764        cursorOn: ::std::os::raw::c_int,
7765    ) -> PhidgetReturnCode;
7766}
7767extern "C" {
7768    pub fn PhidgetLCD_getCursorOn(
7769        ch: PhidgetLCDHandle,
7770        cursorOn: *mut ::std::os::raw::c_int,
7771    ) -> PhidgetReturnCode;
7772}
7773extern "C" {
7774    pub fn PhidgetLCD_setFrameBuffer(
7775        ch: PhidgetLCDHandle,
7776        frameBuffer: ::std::os::raw::c_int,
7777    ) -> PhidgetReturnCode;
7778}
7779extern "C" {
7780    pub fn PhidgetLCD_setFrameBuffer_async(
7781        ch: PhidgetLCDHandle,
7782        frameBuffer: ::std::os::raw::c_int,
7783        fptr: Phidget_AsyncCallback,
7784        ctx: *mut ::std::os::raw::c_void,
7785    );
7786}
7787extern "C" {
7788    pub fn PhidgetLCD_getFrameBuffer(
7789        ch: PhidgetLCDHandle,
7790        frameBuffer: *mut ::std::os::raw::c_int,
7791    ) -> PhidgetReturnCode;
7792}
7793extern "C" {
7794    pub fn PhidgetLCD_getHeight(
7795        ch: PhidgetLCDHandle,
7796        height: *mut ::std::os::raw::c_int,
7797    ) -> PhidgetReturnCode;
7798}
7799extern "C" {
7800    pub fn PhidgetLCD_setScreenSize(
7801        ch: PhidgetLCDHandle,
7802        screenSize: PhidgetLCD_ScreenSize,
7803    ) -> PhidgetReturnCode;
7804}
7805extern "C" {
7806    pub fn PhidgetLCD_getScreenSize(
7807        ch: PhidgetLCDHandle,
7808        screenSize: *mut PhidgetLCD_ScreenSize,
7809    ) -> PhidgetReturnCode;
7810}
7811extern "C" {
7812    pub fn PhidgetLCD_setSleeping(
7813        ch: PhidgetLCDHandle,
7814        sleeping: ::std::os::raw::c_int,
7815    ) -> PhidgetReturnCode;
7816}
7817extern "C" {
7818    pub fn PhidgetLCD_getSleeping(
7819        ch: PhidgetLCDHandle,
7820        sleeping: *mut ::std::os::raw::c_int,
7821    ) -> PhidgetReturnCode;
7822}
7823extern "C" {
7824    pub fn PhidgetLCD_getWidth(
7825        ch: PhidgetLCDHandle,
7826        width: *mut ::std::os::raw::c_int,
7827    ) -> PhidgetReturnCode;
7828}
7829#[repr(C)]
7830#[derive(Debug, Copy, Clone)]
7831pub struct _PhidgetMotorPositionController {
7832    _unused: [u8; 0],
7833}
7834pub type PhidgetMotorPositionControllerHandle = *mut _PhidgetMotorPositionController;
7835extern "C" {
7836    pub fn PhidgetMotorPositionController_create(
7837        ch: *mut PhidgetMotorPositionControllerHandle,
7838    ) -> PhidgetReturnCode;
7839}
7840extern "C" {
7841    pub fn PhidgetMotorPositionController_delete(
7842        ch: *mut PhidgetMotorPositionControllerHandle,
7843    ) -> PhidgetReturnCode;
7844}
7845extern "C" {
7846    pub fn PhidgetMotorPositionController_enableFailsafe(
7847        ch: PhidgetMotorPositionControllerHandle,
7848        failsafeTime: u32,
7849    ) -> PhidgetReturnCode;
7850}
7851extern "C" {
7852    pub fn PhidgetMotorPositionController_addPositionOffset(
7853        ch: PhidgetMotorPositionControllerHandle,
7854        positionOffset: f64,
7855    ) -> PhidgetReturnCode;
7856}
7857extern "C" {
7858    pub fn PhidgetMotorPositionController_resetFailsafe(
7859        ch: PhidgetMotorPositionControllerHandle,
7860    ) -> PhidgetReturnCode;
7861}
7862extern "C" {
7863    pub fn PhidgetMotorPositionController_setAcceleration(
7864        ch: PhidgetMotorPositionControllerHandle,
7865        acceleration: f64,
7866    ) -> PhidgetReturnCode;
7867}
7868extern "C" {
7869    pub fn PhidgetMotorPositionController_getAcceleration(
7870        ch: PhidgetMotorPositionControllerHandle,
7871        acceleration: *mut f64,
7872    ) -> PhidgetReturnCode;
7873}
7874extern "C" {
7875    pub fn PhidgetMotorPositionController_getMinAcceleration(
7876        ch: PhidgetMotorPositionControllerHandle,
7877        minAcceleration: *mut f64,
7878    ) -> PhidgetReturnCode;
7879}
7880extern "C" {
7881    pub fn PhidgetMotorPositionController_getMaxAcceleration(
7882        ch: PhidgetMotorPositionControllerHandle,
7883        maxAcceleration: *mut f64,
7884    ) -> PhidgetReturnCode;
7885}
7886extern "C" {
7887    pub fn PhidgetMotorPositionController_setCurrentLimit(
7888        ch: PhidgetMotorPositionControllerHandle,
7889        currentLimit: f64,
7890    ) -> PhidgetReturnCode;
7891}
7892extern "C" {
7893    pub fn PhidgetMotorPositionController_getCurrentLimit(
7894        ch: PhidgetMotorPositionControllerHandle,
7895        currentLimit: *mut f64,
7896    ) -> PhidgetReturnCode;
7897}
7898extern "C" {
7899    pub fn PhidgetMotorPositionController_getMinCurrentLimit(
7900        ch: PhidgetMotorPositionControllerHandle,
7901        minCurrentLimit: *mut f64,
7902    ) -> PhidgetReturnCode;
7903}
7904extern "C" {
7905    pub fn PhidgetMotorPositionController_getMaxCurrentLimit(
7906        ch: PhidgetMotorPositionControllerHandle,
7907        maxCurrentLimit: *mut f64,
7908    ) -> PhidgetReturnCode;
7909}
7910extern "C" {
7911    pub fn PhidgetMotorPositionController_setCurrentRegulatorGain(
7912        ch: PhidgetMotorPositionControllerHandle,
7913        currentRegulatorGain: f64,
7914    ) -> PhidgetReturnCode;
7915}
7916extern "C" {
7917    pub fn PhidgetMotorPositionController_getCurrentRegulatorGain(
7918        ch: PhidgetMotorPositionControllerHandle,
7919        currentRegulatorGain: *mut f64,
7920    ) -> PhidgetReturnCode;
7921}
7922extern "C" {
7923    pub fn PhidgetMotorPositionController_getMinCurrentRegulatorGain(
7924        ch: PhidgetMotorPositionControllerHandle,
7925        minCurrentRegulatorGain: *mut f64,
7926    ) -> PhidgetReturnCode;
7927}
7928extern "C" {
7929    pub fn PhidgetMotorPositionController_getMaxCurrentRegulatorGain(
7930        ch: PhidgetMotorPositionControllerHandle,
7931        maxCurrentRegulatorGain: *mut f64,
7932    ) -> PhidgetReturnCode;
7933}
7934extern "C" {
7935    pub fn PhidgetMotorPositionController_setDataInterval(
7936        ch: PhidgetMotorPositionControllerHandle,
7937        dataInterval: u32,
7938    ) -> PhidgetReturnCode;
7939}
7940extern "C" {
7941    pub fn PhidgetMotorPositionController_getDataInterval(
7942        ch: PhidgetMotorPositionControllerHandle,
7943        dataInterval: *mut u32,
7944    ) -> PhidgetReturnCode;
7945}
7946extern "C" {
7947    pub fn PhidgetMotorPositionController_getMinDataInterval(
7948        ch: PhidgetMotorPositionControllerHandle,
7949        minDataInterval: *mut u32,
7950    ) -> PhidgetReturnCode;
7951}
7952extern "C" {
7953    pub fn PhidgetMotorPositionController_getMaxDataInterval(
7954        ch: PhidgetMotorPositionControllerHandle,
7955        maxDataInterval: *mut u32,
7956    ) -> PhidgetReturnCode;
7957}
7958extern "C" {
7959    pub fn PhidgetMotorPositionController_setDeadBand(
7960        ch: PhidgetMotorPositionControllerHandle,
7961        deadBand: f64,
7962    ) -> PhidgetReturnCode;
7963}
7964extern "C" {
7965    pub fn PhidgetMotorPositionController_getDeadBand(
7966        ch: PhidgetMotorPositionControllerHandle,
7967        deadBand: *mut f64,
7968    ) -> PhidgetReturnCode;
7969}
7970extern "C" {
7971    pub fn PhidgetMotorPositionController_getDutyCycle(
7972        ch: PhidgetMotorPositionControllerHandle,
7973        dutyCycle: *mut f64,
7974    ) -> PhidgetReturnCode;
7975}
7976extern "C" {
7977    pub fn PhidgetMotorPositionController_setEngaged(
7978        ch: PhidgetMotorPositionControllerHandle,
7979        engaged: ::std::os::raw::c_int,
7980    ) -> PhidgetReturnCode;
7981}
7982extern "C" {
7983    pub fn PhidgetMotorPositionController_getEngaged(
7984        ch: PhidgetMotorPositionControllerHandle,
7985        engaged: *mut ::std::os::raw::c_int,
7986    ) -> PhidgetReturnCode;
7987}
7988extern "C" {
7989    pub fn PhidgetMotorPositionController_getMinFailsafeTime(
7990        ch: PhidgetMotorPositionControllerHandle,
7991        minFailsafeTime: *mut u32,
7992    ) -> PhidgetReturnCode;
7993}
7994extern "C" {
7995    pub fn PhidgetMotorPositionController_getMaxFailsafeTime(
7996        ch: PhidgetMotorPositionControllerHandle,
7997        maxFailsafeTime: *mut u32,
7998    ) -> PhidgetReturnCode;
7999}
8000extern "C" {
8001    pub fn PhidgetMotorPositionController_setFanMode(
8002        ch: PhidgetMotorPositionControllerHandle,
8003        fanMode: Phidget_FanMode,
8004    ) -> PhidgetReturnCode;
8005}
8006extern "C" {
8007    pub fn PhidgetMotorPositionController_getFanMode(
8008        ch: PhidgetMotorPositionControllerHandle,
8009        fanMode: *mut Phidget_FanMode,
8010    ) -> PhidgetReturnCode;
8011}
8012extern "C" {
8013    pub fn PhidgetMotorPositionController_setIOMode(
8014        ch: PhidgetMotorPositionControllerHandle,
8015        IOMode: Phidget_EncoderIOMode,
8016    ) -> PhidgetReturnCode;
8017}
8018extern "C" {
8019    pub fn PhidgetMotorPositionController_getIOMode(
8020        ch: PhidgetMotorPositionControllerHandle,
8021        IOMode: *mut Phidget_EncoderIOMode,
8022    ) -> PhidgetReturnCode;
8023}
8024extern "C" {
8025    pub fn PhidgetMotorPositionController_setKd(
8026        ch: PhidgetMotorPositionControllerHandle,
8027        kd: f64,
8028    ) -> PhidgetReturnCode;
8029}
8030extern "C" {
8031    pub fn PhidgetMotorPositionController_getKd(
8032        ch: PhidgetMotorPositionControllerHandle,
8033        kd: *mut f64,
8034    ) -> PhidgetReturnCode;
8035}
8036extern "C" {
8037    pub fn PhidgetMotorPositionController_setKi(
8038        ch: PhidgetMotorPositionControllerHandle,
8039        ki: f64,
8040    ) -> PhidgetReturnCode;
8041}
8042extern "C" {
8043    pub fn PhidgetMotorPositionController_getKi(
8044        ch: PhidgetMotorPositionControllerHandle,
8045        ki: *mut f64,
8046    ) -> PhidgetReturnCode;
8047}
8048extern "C" {
8049    pub fn PhidgetMotorPositionController_setKp(
8050        ch: PhidgetMotorPositionControllerHandle,
8051        kp: f64,
8052    ) -> PhidgetReturnCode;
8053}
8054extern "C" {
8055    pub fn PhidgetMotorPositionController_getKp(
8056        ch: PhidgetMotorPositionControllerHandle,
8057        kp: *mut f64,
8058    ) -> PhidgetReturnCode;
8059}
8060extern "C" {
8061    pub fn PhidgetMotorPositionController_getPosition(
8062        ch: PhidgetMotorPositionControllerHandle,
8063        position: *mut f64,
8064    ) -> PhidgetReturnCode;
8065}
8066extern "C" {
8067    pub fn PhidgetMotorPositionController_getMinPosition(
8068        ch: PhidgetMotorPositionControllerHandle,
8069        minPosition: *mut f64,
8070    ) -> PhidgetReturnCode;
8071}
8072extern "C" {
8073    pub fn PhidgetMotorPositionController_getMaxPosition(
8074        ch: PhidgetMotorPositionControllerHandle,
8075        maxPosition: *mut f64,
8076    ) -> PhidgetReturnCode;
8077}
8078extern "C" {
8079    pub fn PhidgetMotorPositionController_setRescaleFactor(
8080        ch: PhidgetMotorPositionControllerHandle,
8081        rescaleFactor: f64,
8082    ) -> PhidgetReturnCode;
8083}
8084extern "C" {
8085    pub fn PhidgetMotorPositionController_getRescaleFactor(
8086        ch: PhidgetMotorPositionControllerHandle,
8087        rescaleFactor: *mut f64,
8088    ) -> PhidgetReturnCode;
8089}
8090extern "C" {
8091    pub fn PhidgetMotorPositionController_setStallVelocity(
8092        ch: PhidgetMotorPositionControllerHandle,
8093        stallVelocity: f64,
8094    ) -> PhidgetReturnCode;
8095}
8096extern "C" {
8097    pub fn PhidgetMotorPositionController_getStallVelocity(
8098        ch: PhidgetMotorPositionControllerHandle,
8099        stallVelocity: *mut f64,
8100    ) -> PhidgetReturnCode;
8101}
8102extern "C" {
8103    pub fn PhidgetMotorPositionController_getMinStallVelocity(
8104        ch: PhidgetMotorPositionControllerHandle,
8105        minStallVelocity: *mut f64,
8106    ) -> PhidgetReturnCode;
8107}
8108extern "C" {
8109    pub fn PhidgetMotorPositionController_getMaxStallVelocity(
8110        ch: PhidgetMotorPositionControllerHandle,
8111        maxStallVelocity: *mut f64,
8112    ) -> PhidgetReturnCode;
8113}
8114extern "C" {
8115    pub fn PhidgetMotorPositionController_setTargetPosition(
8116        ch: PhidgetMotorPositionControllerHandle,
8117        targetPosition: f64,
8118    ) -> PhidgetReturnCode;
8119}
8120extern "C" {
8121    pub fn PhidgetMotorPositionController_setTargetPosition_async(
8122        ch: PhidgetMotorPositionControllerHandle,
8123        targetPosition: f64,
8124        fptr: Phidget_AsyncCallback,
8125        ctx: *mut ::std::os::raw::c_void,
8126    );
8127}
8128extern "C" {
8129    pub fn PhidgetMotorPositionController_getTargetPosition(
8130        ch: PhidgetMotorPositionControllerHandle,
8131        targetPosition: *mut f64,
8132    ) -> PhidgetReturnCode;
8133}
8134extern "C" {
8135    pub fn PhidgetMotorPositionController_setVelocityLimit(
8136        ch: PhidgetMotorPositionControllerHandle,
8137        velocityLimit: f64,
8138    ) -> PhidgetReturnCode;
8139}
8140extern "C" {
8141    pub fn PhidgetMotorPositionController_getVelocityLimit(
8142        ch: PhidgetMotorPositionControllerHandle,
8143        velocityLimit: *mut f64,
8144    ) -> PhidgetReturnCode;
8145}
8146extern "C" {
8147    pub fn PhidgetMotorPositionController_getMinVelocityLimit(
8148        ch: PhidgetMotorPositionControllerHandle,
8149        minVelocityLimit: *mut f64,
8150    ) -> PhidgetReturnCode;
8151}
8152extern "C" {
8153    pub fn PhidgetMotorPositionController_getMaxVelocityLimit(
8154        ch: PhidgetMotorPositionControllerHandle,
8155        maxVelocityLimit: *mut f64,
8156    ) -> PhidgetReturnCode;
8157}
8158pub type PhidgetMotorPositionController_OnDutyCycleUpdateCallback = ::std::option::Option<
8159    unsafe extern "C" fn(
8160        ch: PhidgetMotorPositionControllerHandle,
8161        ctx: *mut ::std::os::raw::c_void,
8162        dutyCycle: f64,
8163    ),
8164>;
8165extern "C" {
8166    pub fn PhidgetMotorPositionController_setOnDutyCycleUpdateHandler(
8167        ch: PhidgetMotorPositionControllerHandle,
8168        fptr: PhidgetMotorPositionController_OnDutyCycleUpdateCallback,
8169        ctx: *mut ::std::os::raw::c_void,
8170    ) -> PhidgetReturnCode;
8171}
8172pub type PhidgetMotorPositionController_OnPositionChangeCallback = ::std::option::Option<
8173    unsafe extern "C" fn(
8174        ch: PhidgetMotorPositionControllerHandle,
8175        ctx: *mut ::std::os::raw::c_void,
8176        position: f64,
8177    ),
8178>;
8179extern "C" {
8180    pub fn PhidgetMotorPositionController_setOnPositionChangeHandler(
8181        ch: PhidgetMotorPositionControllerHandle,
8182        fptr: PhidgetMotorPositionController_OnPositionChangeCallback,
8183        ctx: *mut ::std::os::raw::c_void,
8184    ) -> PhidgetReturnCode;
8185}
8186#[repr(C)]
8187#[derive(Debug, Copy, Clone)]
8188pub struct _PhidgetBLDCMotor {
8189    _unused: [u8; 0],
8190}
8191pub type PhidgetBLDCMotorHandle = *mut _PhidgetBLDCMotor;
8192extern "C" {
8193    pub fn PhidgetBLDCMotor_create(ch: *mut PhidgetBLDCMotorHandle) -> PhidgetReturnCode;
8194}
8195extern "C" {
8196    pub fn PhidgetBLDCMotor_delete(ch: *mut PhidgetBLDCMotorHandle) -> PhidgetReturnCode;
8197}
8198extern "C" {
8199    pub fn PhidgetBLDCMotor_enableFailsafe(
8200        ch: PhidgetBLDCMotorHandle,
8201        failsafeTime: u32,
8202    ) -> PhidgetReturnCode;
8203}
8204extern "C" {
8205    pub fn PhidgetBLDCMotor_addPositionOffset(
8206        ch: PhidgetBLDCMotorHandle,
8207        positionOffset: f64,
8208    ) -> PhidgetReturnCode;
8209}
8210extern "C" {
8211    pub fn PhidgetBLDCMotor_resetFailsafe(ch: PhidgetBLDCMotorHandle) -> PhidgetReturnCode;
8212}
8213extern "C" {
8214    pub fn PhidgetBLDCMotor_setAcceleration(
8215        ch: PhidgetBLDCMotorHandle,
8216        acceleration: f64,
8217    ) -> PhidgetReturnCode;
8218}
8219extern "C" {
8220    pub fn PhidgetBLDCMotor_getAcceleration(
8221        ch: PhidgetBLDCMotorHandle,
8222        acceleration: *mut f64,
8223    ) -> PhidgetReturnCode;
8224}
8225extern "C" {
8226    pub fn PhidgetBLDCMotor_getMinAcceleration(
8227        ch: PhidgetBLDCMotorHandle,
8228        minAcceleration: *mut f64,
8229    ) -> PhidgetReturnCode;
8230}
8231extern "C" {
8232    pub fn PhidgetBLDCMotor_getMaxAcceleration(
8233        ch: PhidgetBLDCMotorHandle,
8234        maxAcceleration: *mut f64,
8235    ) -> PhidgetReturnCode;
8236}
8237extern "C" {
8238    pub fn PhidgetBLDCMotor_getBrakingStrength(
8239        ch: PhidgetBLDCMotorHandle,
8240        brakingStrength: *mut f64,
8241    ) -> PhidgetReturnCode;
8242}
8243extern "C" {
8244    pub fn PhidgetBLDCMotor_getMinBrakingStrength(
8245        ch: PhidgetBLDCMotorHandle,
8246        minBrakingStrength: *mut f64,
8247    ) -> PhidgetReturnCode;
8248}
8249extern "C" {
8250    pub fn PhidgetBLDCMotor_getMaxBrakingStrength(
8251        ch: PhidgetBLDCMotorHandle,
8252        maxBrakingStrength: *mut f64,
8253    ) -> PhidgetReturnCode;
8254}
8255extern "C" {
8256    pub fn PhidgetBLDCMotor_setDataInterval(
8257        ch: PhidgetBLDCMotorHandle,
8258        dataInterval: u32,
8259    ) -> PhidgetReturnCode;
8260}
8261extern "C" {
8262    pub fn PhidgetBLDCMotor_getDataInterval(
8263        ch: PhidgetBLDCMotorHandle,
8264        dataInterval: *mut u32,
8265    ) -> PhidgetReturnCode;
8266}
8267extern "C" {
8268    pub fn PhidgetBLDCMotor_getMinDataInterval(
8269        ch: PhidgetBLDCMotorHandle,
8270        minDataInterval: *mut u32,
8271    ) -> PhidgetReturnCode;
8272}
8273extern "C" {
8274    pub fn PhidgetBLDCMotor_getMaxDataInterval(
8275        ch: PhidgetBLDCMotorHandle,
8276        maxDataInterval: *mut u32,
8277    ) -> PhidgetReturnCode;
8278}
8279extern "C" {
8280    pub fn PhidgetBLDCMotor_getMinFailsafeTime(
8281        ch: PhidgetBLDCMotorHandle,
8282        minFailsafeTime: *mut u32,
8283    ) -> PhidgetReturnCode;
8284}
8285extern "C" {
8286    pub fn PhidgetBLDCMotor_getMaxFailsafeTime(
8287        ch: PhidgetBLDCMotorHandle,
8288        maxFailsafeTime: *mut u32,
8289    ) -> PhidgetReturnCode;
8290}
8291extern "C" {
8292    pub fn PhidgetBLDCMotor_getPosition(
8293        ch: PhidgetBLDCMotorHandle,
8294        position: *mut f64,
8295    ) -> PhidgetReturnCode;
8296}
8297extern "C" {
8298    pub fn PhidgetBLDCMotor_getMinPosition(
8299        ch: PhidgetBLDCMotorHandle,
8300        minPosition: *mut f64,
8301    ) -> PhidgetReturnCode;
8302}
8303extern "C" {
8304    pub fn PhidgetBLDCMotor_getMaxPosition(
8305        ch: PhidgetBLDCMotorHandle,
8306        maxPosition: *mut f64,
8307    ) -> PhidgetReturnCode;
8308}
8309extern "C" {
8310    pub fn PhidgetBLDCMotor_setRescaleFactor(
8311        ch: PhidgetBLDCMotorHandle,
8312        rescaleFactor: f64,
8313    ) -> PhidgetReturnCode;
8314}
8315extern "C" {
8316    pub fn PhidgetBLDCMotor_getRescaleFactor(
8317        ch: PhidgetBLDCMotorHandle,
8318        rescaleFactor: *mut f64,
8319    ) -> PhidgetReturnCode;
8320}
8321extern "C" {
8322    pub fn PhidgetBLDCMotor_setStallVelocity(
8323        ch: PhidgetBLDCMotorHandle,
8324        stallVelocity: f64,
8325    ) -> PhidgetReturnCode;
8326}
8327extern "C" {
8328    pub fn PhidgetBLDCMotor_getStallVelocity(
8329        ch: PhidgetBLDCMotorHandle,
8330        stallVelocity: *mut f64,
8331    ) -> PhidgetReturnCode;
8332}
8333extern "C" {
8334    pub fn PhidgetBLDCMotor_getMinStallVelocity(
8335        ch: PhidgetBLDCMotorHandle,
8336        minStallVelocity: *mut f64,
8337    ) -> PhidgetReturnCode;
8338}
8339extern "C" {
8340    pub fn PhidgetBLDCMotor_getMaxStallVelocity(
8341        ch: PhidgetBLDCMotorHandle,
8342        maxStallVelocity: *mut f64,
8343    ) -> PhidgetReturnCode;
8344}
8345extern "C" {
8346    pub fn PhidgetBLDCMotor_setTargetBrakingStrength(
8347        ch: PhidgetBLDCMotorHandle,
8348        targetBrakingStrength: f64,
8349    ) -> PhidgetReturnCode;
8350}
8351extern "C" {
8352    pub fn PhidgetBLDCMotor_getTargetBrakingStrength(
8353        ch: PhidgetBLDCMotorHandle,
8354        targetBrakingStrength: *mut f64,
8355    ) -> PhidgetReturnCode;
8356}
8357extern "C" {
8358    pub fn PhidgetBLDCMotor_setTargetVelocity(
8359        ch: PhidgetBLDCMotorHandle,
8360        targetVelocity: f64,
8361    ) -> PhidgetReturnCode;
8362}
8363extern "C" {
8364    pub fn PhidgetBLDCMotor_setTargetVelocity_async(
8365        ch: PhidgetBLDCMotorHandle,
8366        targetVelocity: f64,
8367        fptr: Phidget_AsyncCallback,
8368        ctx: *mut ::std::os::raw::c_void,
8369    );
8370}
8371extern "C" {
8372    pub fn PhidgetBLDCMotor_getTargetVelocity(
8373        ch: PhidgetBLDCMotorHandle,
8374        targetVelocity: *mut f64,
8375    ) -> PhidgetReturnCode;
8376}
8377extern "C" {
8378    pub fn PhidgetBLDCMotor_getVelocity(
8379        ch: PhidgetBLDCMotorHandle,
8380        velocity: *mut f64,
8381    ) -> PhidgetReturnCode;
8382}
8383extern "C" {
8384    pub fn PhidgetBLDCMotor_getMinVelocity(
8385        ch: PhidgetBLDCMotorHandle,
8386        minVelocity: *mut f64,
8387    ) -> PhidgetReturnCode;
8388}
8389extern "C" {
8390    pub fn PhidgetBLDCMotor_getMaxVelocity(
8391        ch: PhidgetBLDCMotorHandle,
8392        maxVelocity: *mut f64,
8393    ) -> PhidgetReturnCode;
8394}
8395pub type PhidgetBLDCMotor_OnBrakingStrengthChangeCallback = ::std::option::Option<
8396    unsafe extern "C" fn(
8397        ch: PhidgetBLDCMotorHandle,
8398        ctx: *mut ::std::os::raw::c_void,
8399        brakingStrength: f64,
8400    ),
8401>;
8402extern "C" {
8403    pub fn PhidgetBLDCMotor_setOnBrakingStrengthChangeHandler(
8404        ch: PhidgetBLDCMotorHandle,
8405        fptr: PhidgetBLDCMotor_OnBrakingStrengthChangeCallback,
8406        ctx: *mut ::std::os::raw::c_void,
8407    ) -> PhidgetReturnCode;
8408}
8409pub type PhidgetBLDCMotor_OnPositionChangeCallback = ::std::option::Option<
8410    unsafe extern "C" fn(
8411        ch: PhidgetBLDCMotorHandle,
8412        ctx: *mut ::std::os::raw::c_void,
8413        position: f64,
8414    ),
8415>;
8416extern "C" {
8417    pub fn PhidgetBLDCMotor_setOnPositionChangeHandler(
8418        ch: PhidgetBLDCMotorHandle,
8419        fptr: PhidgetBLDCMotor_OnPositionChangeCallback,
8420        ctx: *mut ::std::os::raw::c_void,
8421    ) -> PhidgetReturnCode;
8422}
8423pub type PhidgetBLDCMotor_OnVelocityUpdateCallback = ::std::option::Option<
8424    unsafe extern "C" fn(
8425        ch: PhidgetBLDCMotorHandle,
8426        ctx: *mut ::std::os::raw::c_void,
8427        velocity: f64,
8428    ),
8429>;
8430extern "C" {
8431    pub fn PhidgetBLDCMotor_setOnVelocityUpdateHandler(
8432        ch: PhidgetBLDCMotorHandle,
8433        fptr: PhidgetBLDCMotor_OnVelocityUpdateCallback,
8434        ctx: *mut ::std::os::raw::c_void,
8435    ) -> PhidgetReturnCode;
8436}
8437#[repr(C)]
8438#[derive(Debug, Copy, Clone)]
8439pub struct _PhidgetDistanceSensor {
8440    _unused: [u8; 0],
8441}
8442pub type PhidgetDistanceSensorHandle = *mut _PhidgetDistanceSensor;
8443extern "C" {
8444    pub fn PhidgetDistanceSensor_create(ch: *mut PhidgetDistanceSensorHandle) -> PhidgetReturnCode;
8445}
8446extern "C" {
8447    pub fn PhidgetDistanceSensor_delete(ch: *mut PhidgetDistanceSensorHandle) -> PhidgetReturnCode;
8448}
8449extern "C" {
8450    pub fn PhidgetDistanceSensor_getSonarReflections(
8451        ch: PhidgetDistanceSensorHandle,
8452        distances: *mut [u32; 8usize],
8453        amplitudes: *mut [u32; 8usize],
8454        count: *mut u32,
8455    ) -> PhidgetReturnCode;
8456}
8457extern "C" {
8458    pub fn PhidgetDistanceSensor_setDataInterval(
8459        ch: PhidgetDistanceSensorHandle,
8460        dataInterval: u32,
8461    ) -> PhidgetReturnCode;
8462}
8463extern "C" {
8464    pub fn PhidgetDistanceSensor_getDataInterval(
8465        ch: PhidgetDistanceSensorHandle,
8466        dataInterval: *mut u32,
8467    ) -> PhidgetReturnCode;
8468}
8469extern "C" {
8470    pub fn PhidgetDistanceSensor_getMinDataInterval(
8471        ch: PhidgetDistanceSensorHandle,
8472        minDataInterval: *mut u32,
8473    ) -> PhidgetReturnCode;
8474}
8475extern "C" {
8476    pub fn PhidgetDistanceSensor_getMaxDataInterval(
8477        ch: PhidgetDistanceSensorHandle,
8478        maxDataInterval: *mut u32,
8479    ) -> PhidgetReturnCode;
8480}
8481extern "C" {
8482    pub fn PhidgetDistanceSensor_getDistance(
8483        ch: PhidgetDistanceSensorHandle,
8484        distance: *mut u32,
8485    ) -> PhidgetReturnCode;
8486}
8487extern "C" {
8488    pub fn PhidgetDistanceSensor_getMinDistance(
8489        ch: PhidgetDistanceSensorHandle,
8490        minDistance: *mut u32,
8491    ) -> PhidgetReturnCode;
8492}
8493extern "C" {
8494    pub fn PhidgetDistanceSensor_getMaxDistance(
8495        ch: PhidgetDistanceSensorHandle,
8496        maxDistance: *mut u32,
8497    ) -> PhidgetReturnCode;
8498}
8499extern "C" {
8500    pub fn PhidgetDistanceSensor_setDistanceChangeTrigger(
8501        ch: PhidgetDistanceSensorHandle,
8502        distanceChangeTrigger: u32,
8503    ) -> PhidgetReturnCode;
8504}
8505extern "C" {
8506    pub fn PhidgetDistanceSensor_getDistanceChangeTrigger(
8507        ch: PhidgetDistanceSensorHandle,
8508        distanceChangeTrigger: *mut u32,
8509    ) -> PhidgetReturnCode;
8510}
8511extern "C" {
8512    pub fn PhidgetDistanceSensor_getMinDistanceChangeTrigger(
8513        ch: PhidgetDistanceSensorHandle,
8514        minDistanceChangeTrigger: *mut u32,
8515    ) -> PhidgetReturnCode;
8516}
8517extern "C" {
8518    pub fn PhidgetDistanceSensor_getMaxDistanceChangeTrigger(
8519        ch: PhidgetDistanceSensorHandle,
8520        maxDistanceChangeTrigger: *mut u32,
8521    ) -> PhidgetReturnCode;
8522}
8523extern "C" {
8524    pub fn PhidgetDistanceSensor_setSonarQuietMode(
8525        ch: PhidgetDistanceSensorHandle,
8526        sonarQuietMode: ::std::os::raw::c_int,
8527    ) -> PhidgetReturnCode;
8528}
8529extern "C" {
8530    pub fn PhidgetDistanceSensor_getSonarQuietMode(
8531        ch: PhidgetDistanceSensorHandle,
8532        sonarQuietMode: *mut ::std::os::raw::c_int,
8533    ) -> PhidgetReturnCode;
8534}
8535pub type PhidgetDistanceSensor_OnDistanceChangeCallback = ::std::option::Option<
8536    unsafe extern "C" fn(
8537        ch: PhidgetDistanceSensorHandle,
8538        ctx: *mut ::std::os::raw::c_void,
8539        distance: u32,
8540    ),
8541>;
8542extern "C" {
8543    pub fn PhidgetDistanceSensor_setOnDistanceChangeHandler(
8544        ch: PhidgetDistanceSensorHandle,
8545        fptr: PhidgetDistanceSensor_OnDistanceChangeCallback,
8546        ctx: *mut ::std::os::raw::c_void,
8547    ) -> PhidgetReturnCode;
8548}
8549pub type PhidgetDistanceSensor_OnSonarReflectionsUpdateCallback = ::std::option::Option<
8550    unsafe extern "C" fn(
8551        ch: PhidgetDistanceSensorHandle,
8552        ctx: *mut ::std::os::raw::c_void,
8553        distances: *const u32,
8554        amplitudes: *const u32,
8555        count: u32,
8556    ),
8557>;
8558extern "C" {
8559    pub fn PhidgetDistanceSensor_setOnSonarReflectionsUpdateHandler(
8560        ch: PhidgetDistanceSensorHandle,
8561        fptr: PhidgetDistanceSensor_OnSonarReflectionsUpdateCallback,
8562        ctx: *mut ::std::os::raw::c_void,
8563    ) -> PhidgetReturnCode;
8564}
8565#[repr(C)]
8566#[derive(Debug, Copy, Clone)]
8567pub struct _PhidgetHumiditySensor {
8568    _unused: [u8; 0],
8569}
8570pub type PhidgetHumiditySensorHandle = *mut _PhidgetHumiditySensor;
8571extern "C" {
8572    pub fn PhidgetHumiditySensor_create(ch: *mut PhidgetHumiditySensorHandle) -> PhidgetReturnCode;
8573}
8574extern "C" {
8575    pub fn PhidgetHumiditySensor_delete(ch: *mut PhidgetHumiditySensorHandle) -> PhidgetReturnCode;
8576}
8577extern "C" {
8578    pub fn PhidgetHumiditySensor_setDataInterval(
8579        ch: PhidgetHumiditySensorHandle,
8580        dataInterval: u32,
8581    ) -> PhidgetReturnCode;
8582}
8583extern "C" {
8584    pub fn PhidgetHumiditySensor_getDataInterval(
8585        ch: PhidgetHumiditySensorHandle,
8586        dataInterval: *mut u32,
8587    ) -> PhidgetReturnCode;
8588}
8589extern "C" {
8590    pub fn PhidgetHumiditySensor_getMinDataInterval(
8591        ch: PhidgetHumiditySensorHandle,
8592        minDataInterval: *mut u32,
8593    ) -> PhidgetReturnCode;
8594}
8595extern "C" {
8596    pub fn PhidgetHumiditySensor_getMaxDataInterval(
8597        ch: PhidgetHumiditySensorHandle,
8598        maxDataInterval: *mut u32,
8599    ) -> PhidgetReturnCode;
8600}
8601extern "C" {
8602    pub fn PhidgetHumiditySensor_getHumidity(
8603        ch: PhidgetHumiditySensorHandle,
8604        humidity: *mut f64,
8605    ) -> PhidgetReturnCode;
8606}
8607extern "C" {
8608    pub fn PhidgetHumiditySensor_getMinHumidity(
8609        ch: PhidgetHumiditySensorHandle,
8610        minHumidity: *mut f64,
8611    ) -> PhidgetReturnCode;
8612}
8613extern "C" {
8614    pub fn PhidgetHumiditySensor_getMaxHumidity(
8615        ch: PhidgetHumiditySensorHandle,
8616        maxHumidity: *mut f64,
8617    ) -> PhidgetReturnCode;
8618}
8619extern "C" {
8620    pub fn PhidgetHumiditySensor_setHumidityChangeTrigger(
8621        ch: PhidgetHumiditySensorHandle,
8622        humidityChangeTrigger: f64,
8623    ) -> PhidgetReturnCode;
8624}
8625extern "C" {
8626    pub fn PhidgetHumiditySensor_getHumidityChangeTrigger(
8627        ch: PhidgetHumiditySensorHandle,
8628        humidityChangeTrigger: *mut f64,
8629    ) -> PhidgetReturnCode;
8630}
8631extern "C" {
8632    pub fn PhidgetHumiditySensor_getMinHumidityChangeTrigger(
8633        ch: PhidgetHumiditySensorHandle,
8634        minHumidityChangeTrigger: *mut f64,
8635    ) -> PhidgetReturnCode;
8636}
8637extern "C" {
8638    pub fn PhidgetHumiditySensor_getMaxHumidityChangeTrigger(
8639        ch: PhidgetHumiditySensorHandle,
8640        maxHumidityChangeTrigger: *mut f64,
8641    ) -> PhidgetReturnCode;
8642}
8643pub type PhidgetHumiditySensor_OnHumidityChangeCallback = ::std::option::Option<
8644    unsafe extern "C" fn(
8645        ch: PhidgetHumiditySensorHandle,
8646        ctx: *mut ::std::os::raw::c_void,
8647        humidity: f64,
8648    ),
8649>;
8650extern "C" {
8651    pub fn PhidgetHumiditySensor_setOnHumidityChangeHandler(
8652        ch: PhidgetHumiditySensorHandle,
8653        fptr: PhidgetHumiditySensor_OnHumidityChangeCallback,
8654        ctx: *mut ::std::os::raw::c_void,
8655    ) -> PhidgetReturnCode;
8656}
8657#[repr(C)]
8658#[derive(Debug, Copy, Clone)]
8659pub struct _PhidgetLightSensor {
8660    _unused: [u8; 0],
8661}
8662pub type PhidgetLightSensorHandle = *mut _PhidgetLightSensor;
8663extern "C" {
8664    pub fn PhidgetLightSensor_create(ch: *mut PhidgetLightSensorHandle) -> PhidgetReturnCode;
8665}
8666extern "C" {
8667    pub fn PhidgetLightSensor_delete(ch: *mut PhidgetLightSensorHandle) -> PhidgetReturnCode;
8668}
8669extern "C" {
8670    pub fn PhidgetLightSensor_setDataInterval(
8671        ch: PhidgetLightSensorHandle,
8672        dataInterval: u32,
8673    ) -> PhidgetReturnCode;
8674}
8675extern "C" {
8676    pub fn PhidgetLightSensor_getDataInterval(
8677        ch: PhidgetLightSensorHandle,
8678        dataInterval: *mut u32,
8679    ) -> PhidgetReturnCode;
8680}
8681extern "C" {
8682    pub fn PhidgetLightSensor_getMinDataInterval(
8683        ch: PhidgetLightSensorHandle,
8684        minDataInterval: *mut u32,
8685    ) -> PhidgetReturnCode;
8686}
8687extern "C" {
8688    pub fn PhidgetLightSensor_getMaxDataInterval(
8689        ch: PhidgetLightSensorHandle,
8690        maxDataInterval: *mut u32,
8691    ) -> PhidgetReturnCode;
8692}
8693extern "C" {
8694    pub fn PhidgetLightSensor_getIlluminance(
8695        ch: PhidgetLightSensorHandle,
8696        illuminance: *mut f64,
8697    ) -> PhidgetReturnCode;
8698}
8699extern "C" {
8700    pub fn PhidgetLightSensor_getMinIlluminance(
8701        ch: PhidgetLightSensorHandle,
8702        minIlluminance: *mut f64,
8703    ) -> PhidgetReturnCode;
8704}
8705extern "C" {
8706    pub fn PhidgetLightSensor_getMaxIlluminance(
8707        ch: PhidgetLightSensorHandle,
8708        maxIlluminance: *mut f64,
8709    ) -> PhidgetReturnCode;
8710}
8711extern "C" {
8712    pub fn PhidgetLightSensor_setIlluminanceChangeTrigger(
8713        ch: PhidgetLightSensorHandle,
8714        illuminanceChangeTrigger: f64,
8715    ) -> PhidgetReturnCode;
8716}
8717extern "C" {
8718    pub fn PhidgetLightSensor_getIlluminanceChangeTrigger(
8719        ch: PhidgetLightSensorHandle,
8720        illuminanceChangeTrigger: *mut f64,
8721    ) -> PhidgetReturnCode;
8722}
8723extern "C" {
8724    pub fn PhidgetLightSensor_getMinIlluminanceChangeTrigger(
8725        ch: PhidgetLightSensorHandle,
8726        minIlluminanceChangeTrigger: *mut f64,
8727    ) -> PhidgetReturnCode;
8728}
8729extern "C" {
8730    pub fn PhidgetLightSensor_getMaxIlluminanceChangeTrigger(
8731        ch: PhidgetLightSensorHandle,
8732        maxIlluminanceChangeTrigger: *mut f64,
8733    ) -> PhidgetReturnCode;
8734}
8735pub type PhidgetLightSensor_OnIlluminanceChangeCallback = ::std::option::Option<
8736    unsafe extern "C" fn(
8737        ch: PhidgetLightSensorHandle,
8738        ctx: *mut ::std::os::raw::c_void,
8739        illuminance: f64,
8740    ),
8741>;
8742extern "C" {
8743    pub fn PhidgetLightSensor_setOnIlluminanceChangeHandler(
8744        ch: PhidgetLightSensorHandle,
8745        fptr: PhidgetLightSensor_OnIlluminanceChangeCallback,
8746        ctx: *mut ::std::os::raw::c_void,
8747    ) -> PhidgetReturnCode;
8748}
8749#[repr(C)]
8750#[derive(Debug, Copy, Clone)]
8751pub struct _PhidgetPressureSensor {
8752    _unused: [u8; 0],
8753}
8754pub type PhidgetPressureSensorHandle = *mut _PhidgetPressureSensor;
8755extern "C" {
8756    pub fn PhidgetPressureSensor_create(ch: *mut PhidgetPressureSensorHandle) -> PhidgetReturnCode;
8757}
8758extern "C" {
8759    pub fn PhidgetPressureSensor_delete(ch: *mut PhidgetPressureSensorHandle) -> PhidgetReturnCode;
8760}
8761extern "C" {
8762    pub fn PhidgetPressureSensor_setDataInterval(
8763        ch: PhidgetPressureSensorHandle,
8764        dataInterval: u32,
8765    ) -> PhidgetReturnCode;
8766}
8767extern "C" {
8768    pub fn PhidgetPressureSensor_getDataInterval(
8769        ch: PhidgetPressureSensorHandle,
8770        dataInterval: *mut u32,
8771    ) -> PhidgetReturnCode;
8772}
8773extern "C" {
8774    pub fn PhidgetPressureSensor_getMinDataInterval(
8775        ch: PhidgetPressureSensorHandle,
8776        minDataInterval: *mut u32,
8777    ) -> PhidgetReturnCode;
8778}
8779extern "C" {
8780    pub fn PhidgetPressureSensor_getMaxDataInterval(
8781        ch: PhidgetPressureSensorHandle,
8782        maxDataInterval: *mut u32,
8783    ) -> PhidgetReturnCode;
8784}
8785extern "C" {
8786    pub fn PhidgetPressureSensor_getPressure(
8787        ch: PhidgetPressureSensorHandle,
8788        pressure: *mut f64,
8789    ) -> PhidgetReturnCode;
8790}
8791extern "C" {
8792    pub fn PhidgetPressureSensor_getMinPressure(
8793        ch: PhidgetPressureSensorHandle,
8794        minPressure: *mut f64,
8795    ) -> PhidgetReturnCode;
8796}
8797extern "C" {
8798    pub fn PhidgetPressureSensor_getMaxPressure(
8799        ch: PhidgetPressureSensorHandle,
8800        maxPressure: *mut f64,
8801    ) -> PhidgetReturnCode;
8802}
8803extern "C" {
8804    pub fn PhidgetPressureSensor_setPressureChangeTrigger(
8805        ch: PhidgetPressureSensorHandle,
8806        pressureChangeTrigger: f64,
8807    ) -> PhidgetReturnCode;
8808}
8809extern "C" {
8810    pub fn PhidgetPressureSensor_getPressureChangeTrigger(
8811        ch: PhidgetPressureSensorHandle,
8812        pressureChangeTrigger: *mut f64,
8813    ) -> PhidgetReturnCode;
8814}
8815extern "C" {
8816    pub fn PhidgetPressureSensor_getMinPressureChangeTrigger(
8817        ch: PhidgetPressureSensorHandle,
8818        minPressureChangeTrigger: *mut f64,
8819    ) -> PhidgetReturnCode;
8820}
8821extern "C" {
8822    pub fn PhidgetPressureSensor_getMaxPressureChangeTrigger(
8823        ch: PhidgetPressureSensorHandle,
8824        maxPressureChangeTrigger: *mut f64,
8825    ) -> PhidgetReturnCode;
8826}
8827pub type PhidgetPressureSensor_OnPressureChangeCallback = ::std::option::Option<
8828    unsafe extern "C" fn(
8829        ch: PhidgetPressureSensorHandle,
8830        ctx: *mut ::std::os::raw::c_void,
8831        pressure: f64,
8832    ),
8833>;
8834extern "C" {
8835    pub fn PhidgetPressureSensor_setOnPressureChangeHandler(
8836        ch: PhidgetPressureSensorHandle,
8837        fptr: PhidgetPressureSensor_OnPressureChangeCallback,
8838        ctx: *mut ::std::os::raw::c_void,
8839    ) -> PhidgetReturnCode;
8840}
8841#[repr(C)]
8842#[derive(Debug, Copy, Clone)]
8843pub struct _PhidgetResistanceInput {
8844    _unused: [u8; 0],
8845}
8846pub type PhidgetResistanceInputHandle = *mut _PhidgetResistanceInput;
8847extern "C" {
8848    pub fn PhidgetResistanceInput_create(
8849        ch: *mut PhidgetResistanceInputHandle,
8850    ) -> PhidgetReturnCode;
8851}
8852extern "C" {
8853    pub fn PhidgetResistanceInput_delete(
8854        ch: *mut PhidgetResistanceInputHandle,
8855    ) -> PhidgetReturnCode;
8856}
8857extern "C" {
8858    pub fn PhidgetResistanceInput_setDataInterval(
8859        ch: PhidgetResistanceInputHandle,
8860        dataInterval: u32,
8861    ) -> PhidgetReturnCode;
8862}
8863extern "C" {
8864    pub fn PhidgetResistanceInput_getDataInterval(
8865        ch: PhidgetResistanceInputHandle,
8866        dataInterval: *mut u32,
8867    ) -> PhidgetReturnCode;
8868}
8869extern "C" {
8870    pub fn PhidgetResistanceInput_getMinDataInterval(
8871        ch: PhidgetResistanceInputHandle,
8872        minDataInterval: *mut u32,
8873    ) -> PhidgetReturnCode;
8874}
8875extern "C" {
8876    pub fn PhidgetResistanceInput_getMaxDataInterval(
8877        ch: PhidgetResistanceInputHandle,
8878        maxDataInterval: *mut u32,
8879    ) -> PhidgetReturnCode;
8880}
8881extern "C" {
8882    pub fn PhidgetResistanceInput_getResistance(
8883        ch: PhidgetResistanceInputHandle,
8884        resistance: *mut f64,
8885    ) -> PhidgetReturnCode;
8886}
8887extern "C" {
8888    pub fn PhidgetResistanceInput_getMinResistance(
8889        ch: PhidgetResistanceInputHandle,
8890        minResistance: *mut f64,
8891    ) -> PhidgetReturnCode;
8892}
8893extern "C" {
8894    pub fn PhidgetResistanceInput_getMaxResistance(
8895        ch: PhidgetResistanceInputHandle,
8896        maxResistance: *mut f64,
8897    ) -> PhidgetReturnCode;
8898}
8899extern "C" {
8900    pub fn PhidgetResistanceInput_setResistanceChangeTrigger(
8901        ch: PhidgetResistanceInputHandle,
8902        resistanceChangeTrigger: f64,
8903    ) -> PhidgetReturnCode;
8904}
8905extern "C" {
8906    pub fn PhidgetResistanceInput_getResistanceChangeTrigger(
8907        ch: PhidgetResistanceInputHandle,
8908        resistanceChangeTrigger: *mut f64,
8909    ) -> PhidgetReturnCode;
8910}
8911extern "C" {
8912    pub fn PhidgetResistanceInput_getMinResistanceChangeTrigger(
8913        ch: PhidgetResistanceInputHandle,
8914        minResistanceChangeTrigger: *mut f64,
8915    ) -> PhidgetReturnCode;
8916}
8917extern "C" {
8918    pub fn PhidgetResistanceInput_getMaxResistanceChangeTrigger(
8919        ch: PhidgetResistanceInputHandle,
8920        maxResistanceChangeTrigger: *mut f64,
8921    ) -> PhidgetReturnCode;
8922}
8923extern "C" {
8924    pub fn PhidgetResistanceInput_setRTDWireSetup(
8925        ch: PhidgetResistanceInputHandle,
8926        RTDWireSetup: Phidget_RTDWireSetup,
8927    ) -> PhidgetReturnCode;
8928}
8929extern "C" {
8930    pub fn PhidgetResistanceInput_getRTDWireSetup(
8931        ch: PhidgetResistanceInputHandle,
8932        RTDWireSetup: *mut Phidget_RTDWireSetup,
8933    ) -> PhidgetReturnCode;
8934}
8935pub type PhidgetResistanceInput_OnResistanceChangeCallback = ::std::option::Option<
8936    unsafe extern "C" fn(
8937        ch: PhidgetResistanceInputHandle,
8938        ctx: *mut ::std::os::raw::c_void,
8939        resistance: f64,
8940    ),
8941>;
8942extern "C" {
8943    pub fn PhidgetResistanceInput_setOnResistanceChangeHandler(
8944        ch: PhidgetResistanceInputHandle,
8945        fptr: PhidgetResistanceInput_OnResistanceChangeCallback,
8946        ctx: *mut ::std::os::raw::c_void,
8947    ) -> PhidgetReturnCode;
8948}
8949#[repr(C)]
8950#[derive(Debug, Copy, Clone)]
8951pub struct _PhidgetPowerGuard {
8952    _unused: [u8; 0],
8953}
8954pub type PhidgetPowerGuardHandle = *mut _PhidgetPowerGuard;
8955extern "C" {
8956    pub fn PhidgetPowerGuard_create(ch: *mut PhidgetPowerGuardHandle) -> PhidgetReturnCode;
8957}
8958extern "C" {
8959    pub fn PhidgetPowerGuard_delete(ch: *mut PhidgetPowerGuardHandle) -> PhidgetReturnCode;
8960}
8961extern "C" {
8962    pub fn PhidgetPowerGuard_enableFailsafe(
8963        ch: PhidgetPowerGuardHandle,
8964        failsafeTime: u32,
8965    ) -> PhidgetReturnCode;
8966}
8967extern "C" {
8968    pub fn PhidgetPowerGuard_resetFailsafe(ch: PhidgetPowerGuardHandle) -> PhidgetReturnCode;
8969}
8970extern "C" {
8971    pub fn PhidgetPowerGuard_getMinFailsafeTime(
8972        ch: PhidgetPowerGuardHandle,
8973        minFailsafeTime: *mut u32,
8974    ) -> PhidgetReturnCode;
8975}
8976extern "C" {
8977    pub fn PhidgetPowerGuard_getMaxFailsafeTime(
8978        ch: PhidgetPowerGuardHandle,
8979        maxFailsafeTime: *mut u32,
8980    ) -> PhidgetReturnCode;
8981}
8982extern "C" {
8983    pub fn PhidgetPowerGuard_setFanMode(
8984        ch: PhidgetPowerGuardHandle,
8985        fanMode: Phidget_FanMode,
8986    ) -> PhidgetReturnCode;
8987}
8988extern "C" {
8989    pub fn PhidgetPowerGuard_getFanMode(
8990        ch: PhidgetPowerGuardHandle,
8991        fanMode: *mut Phidget_FanMode,
8992    ) -> PhidgetReturnCode;
8993}
8994extern "C" {
8995    pub fn PhidgetPowerGuard_setOverVoltage(
8996        ch: PhidgetPowerGuardHandle,
8997        overVoltage: f64,
8998    ) -> PhidgetReturnCode;
8999}
9000extern "C" {
9001    pub fn PhidgetPowerGuard_getOverVoltage(
9002        ch: PhidgetPowerGuardHandle,
9003        overVoltage: *mut f64,
9004    ) -> PhidgetReturnCode;
9005}
9006extern "C" {
9007    pub fn PhidgetPowerGuard_getMinOverVoltage(
9008        ch: PhidgetPowerGuardHandle,
9009        minOverVoltage: *mut f64,
9010    ) -> PhidgetReturnCode;
9011}
9012extern "C" {
9013    pub fn PhidgetPowerGuard_getMaxOverVoltage(
9014        ch: PhidgetPowerGuardHandle,
9015        maxOverVoltage: *mut f64,
9016    ) -> PhidgetReturnCode;
9017}
9018extern "C" {
9019    pub fn PhidgetPowerGuard_setPowerEnabled(
9020        ch: PhidgetPowerGuardHandle,
9021        powerEnabled: ::std::os::raw::c_int,
9022    ) -> PhidgetReturnCode;
9023}
9024extern "C" {
9025    pub fn PhidgetPowerGuard_getPowerEnabled(
9026        ch: PhidgetPowerGuardHandle,
9027        powerEnabled: *mut ::std::os::raw::c_int,
9028    ) -> PhidgetReturnCode;
9029}
9030#[repr(C)]
9031#[derive(Debug, Copy, Clone)]
9032pub struct _PhidgetSoundSensor {
9033    _unused: [u8; 0],
9034}
9035pub type PhidgetSoundSensorHandle = *mut _PhidgetSoundSensor;
9036extern "C" {
9037    pub fn PhidgetSoundSensor_create(ch: *mut PhidgetSoundSensorHandle) -> PhidgetReturnCode;
9038}
9039extern "C" {
9040    pub fn PhidgetSoundSensor_delete(ch: *mut PhidgetSoundSensorHandle) -> PhidgetReturnCode;
9041}
9042extern "C" {
9043    pub fn PhidgetSoundSensor_setDataInterval(
9044        ch: PhidgetSoundSensorHandle,
9045        dataInterval: u32,
9046    ) -> PhidgetReturnCode;
9047}
9048extern "C" {
9049    pub fn PhidgetSoundSensor_getDataInterval(
9050        ch: PhidgetSoundSensorHandle,
9051        dataInterval: *mut u32,
9052    ) -> PhidgetReturnCode;
9053}
9054extern "C" {
9055    pub fn PhidgetSoundSensor_getMinDataInterval(
9056        ch: PhidgetSoundSensorHandle,
9057        minDataInterval: *mut u32,
9058    ) -> PhidgetReturnCode;
9059}
9060extern "C" {
9061    pub fn PhidgetSoundSensor_getMaxDataInterval(
9062        ch: PhidgetSoundSensorHandle,
9063        maxDataInterval: *mut u32,
9064    ) -> PhidgetReturnCode;
9065}
9066extern "C" {
9067    pub fn PhidgetSoundSensor_getdB(
9068        ch: PhidgetSoundSensorHandle,
9069        dB: *mut f64,
9070    ) -> PhidgetReturnCode;
9071}
9072extern "C" {
9073    pub fn PhidgetSoundSensor_getMaxdB(
9074        ch: PhidgetSoundSensorHandle,
9075        maxdB: *mut f64,
9076    ) -> PhidgetReturnCode;
9077}
9078extern "C" {
9079    pub fn PhidgetSoundSensor_getdBA(
9080        ch: PhidgetSoundSensorHandle,
9081        dBA: *mut f64,
9082    ) -> PhidgetReturnCode;
9083}
9084extern "C" {
9085    pub fn PhidgetSoundSensor_getdBC(
9086        ch: PhidgetSoundSensorHandle,
9087        dBC: *mut f64,
9088    ) -> PhidgetReturnCode;
9089}
9090extern "C" {
9091    pub fn PhidgetSoundSensor_getNoiseFloor(
9092        ch: PhidgetSoundSensorHandle,
9093        noiseFloor: *mut f64,
9094    ) -> PhidgetReturnCode;
9095}
9096extern "C" {
9097    pub fn PhidgetSoundSensor_getOctaves(
9098        ch: PhidgetSoundSensorHandle,
9099        octaves: *mut [f64; 10usize],
9100    ) -> PhidgetReturnCode;
9101}
9102extern "C" {
9103    pub fn PhidgetSoundSensor_setSPLChangeTrigger(
9104        ch: PhidgetSoundSensorHandle,
9105        SPLChangeTrigger: f64,
9106    ) -> PhidgetReturnCode;
9107}
9108extern "C" {
9109    pub fn PhidgetSoundSensor_getSPLChangeTrigger(
9110        ch: PhidgetSoundSensorHandle,
9111        SPLChangeTrigger: *mut f64,
9112    ) -> PhidgetReturnCode;
9113}
9114extern "C" {
9115    pub fn PhidgetSoundSensor_getMinSPLChangeTrigger(
9116        ch: PhidgetSoundSensorHandle,
9117        minSPLChangeTrigger: *mut f64,
9118    ) -> PhidgetReturnCode;
9119}
9120extern "C" {
9121    pub fn PhidgetSoundSensor_getMaxSPLChangeTrigger(
9122        ch: PhidgetSoundSensorHandle,
9123        maxSPLChangeTrigger: *mut f64,
9124    ) -> PhidgetReturnCode;
9125}
9126extern "C" {
9127    pub fn PhidgetSoundSensor_setSPLRange(
9128        ch: PhidgetSoundSensorHandle,
9129        SPLRange: PhidgetSoundSensor_SPLRange,
9130    ) -> PhidgetReturnCode;
9131}
9132extern "C" {
9133    pub fn PhidgetSoundSensor_getSPLRange(
9134        ch: PhidgetSoundSensorHandle,
9135        SPLRange: *mut PhidgetSoundSensor_SPLRange,
9136    ) -> PhidgetReturnCode;
9137}
9138pub type PhidgetSoundSensor_OnSPLChangeCallback = ::std::option::Option<
9139    unsafe extern "C" fn(
9140        ch: PhidgetSoundSensorHandle,
9141        ctx: *mut ::std::os::raw::c_void,
9142        dB: f64,
9143        dBA: f64,
9144        dBC: f64,
9145        octaves: *const f64,
9146    ),
9147>;
9148extern "C" {
9149    pub fn PhidgetSoundSensor_setOnSPLChangeHandler(
9150        ch: PhidgetSoundSensorHandle,
9151        fptr: PhidgetSoundSensor_OnSPLChangeCallback,
9152        ctx: *mut ::std::os::raw::c_void,
9153    ) -> PhidgetReturnCode;
9154}
9155#[repr(C)]
9156#[derive(Debug, Copy, Clone)]
9157pub struct _PhidgetHub {
9158    _unused: [u8; 0],
9159}
9160pub type PhidgetHubHandle = *mut _PhidgetHub;
9161extern "C" {
9162    pub fn PhidgetHub_create(ch: *mut PhidgetHubHandle) -> PhidgetReturnCode;
9163}
9164extern "C" {
9165    pub fn PhidgetHub_delete(ch: *mut PhidgetHubHandle) -> PhidgetReturnCode;
9166}
9167extern "C" {
9168    pub fn PhidgetHub_setPortPower(
9169        ch: PhidgetHubHandle,
9170        port: ::std::os::raw::c_int,
9171        state: ::std::os::raw::c_int,
9172    ) -> PhidgetReturnCode;
9173}
9174#[repr(C)]
9175#[derive(Debug, Copy, Clone)]
9176pub struct _PhidgetDictionary {
9177    _unused: [u8; 0],
9178}
9179pub type PhidgetDictionaryHandle = *mut _PhidgetDictionary;
9180extern "C" {
9181    pub fn PhidgetDictionary_create(ch: *mut PhidgetDictionaryHandle) -> PhidgetReturnCode;
9182}
9183extern "C" {
9184    pub fn PhidgetDictionary_delete(ch: *mut PhidgetDictionaryHandle) -> PhidgetReturnCode;
9185}
9186extern "C" {
9187    pub fn PhidgetDictionary_add(
9188        ch: PhidgetDictionaryHandle,
9189        key: *const ::std::os::raw::c_char,
9190        value: *const ::std::os::raw::c_char,
9191    ) -> PhidgetReturnCode;
9192}
9193extern "C" {
9194    pub fn PhidgetDictionary_removeAll(ch: PhidgetDictionaryHandle) -> PhidgetReturnCode;
9195}
9196extern "C" {
9197    pub fn PhidgetDictionary_get(
9198        ch: PhidgetDictionaryHandle,
9199        key: *const ::std::os::raw::c_char,
9200        value: *mut ::std::os::raw::c_char,
9201        valueLen: size_t,
9202    ) -> PhidgetReturnCode;
9203}
9204extern "C" {
9205    pub fn PhidgetDictionary_remove(
9206        ch: PhidgetDictionaryHandle,
9207        key: *const ::std::os::raw::c_char,
9208    ) -> PhidgetReturnCode;
9209}
9210extern "C" {
9211    pub fn PhidgetDictionary_scan(
9212        ch: PhidgetDictionaryHandle,
9213        start: *const ::std::os::raw::c_char,
9214        keyList: *mut ::std::os::raw::c_char,
9215        keyListLen: size_t,
9216    ) -> PhidgetReturnCode;
9217}
9218extern "C" {
9219    pub fn PhidgetDictionary_set(
9220        ch: PhidgetDictionaryHandle,
9221        key: *const ::std::os::raw::c_char,
9222        value: *const ::std::os::raw::c_char,
9223    ) -> PhidgetReturnCode;
9224}
9225extern "C" {
9226    pub fn PhidgetDictionary_update(
9227        ch: PhidgetDictionaryHandle,
9228        key: *const ::std::os::raw::c_char,
9229        value: *const ::std::os::raw::c_char,
9230    ) -> PhidgetReturnCode;
9231}
9232pub type PhidgetDictionary_OnAddCallback = ::std::option::Option<
9233    unsafe extern "C" fn(
9234        ch: PhidgetDictionaryHandle,
9235        ctx: *mut ::std::os::raw::c_void,
9236        key: *const ::std::os::raw::c_char,
9237        value: *const ::std::os::raw::c_char,
9238    ),
9239>;
9240extern "C" {
9241    pub fn PhidgetDictionary_setOnAddHandler(
9242        ch: PhidgetDictionaryHandle,
9243        fptr: PhidgetDictionary_OnAddCallback,
9244        ctx: *mut ::std::os::raw::c_void,
9245    ) -> PhidgetReturnCode;
9246}
9247pub type PhidgetDictionary_OnRemoveCallback = ::std::option::Option<
9248    unsafe extern "C" fn(
9249        ch: PhidgetDictionaryHandle,
9250        ctx: *mut ::std::os::raw::c_void,
9251        key: *const ::std::os::raw::c_char,
9252    ),
9253>;
9254extern "C" {
9255    pub fn PhidgetDictionary_setOnRemoveHandler(
9256        ch: PhidgetDictionaryHandle,
9257        fptr: PhidgetDictionary_OnRemoveCallback,
9258        ctx: *mut ::std::os::raw::c_void,
9259    ) -> PhidgetReturnCode;
9260}
9261pub type PhidgetDictionary_OnUpdateCallback = ::std::option::Option<
9262    unsafe extern "C" fn(
9263        ch: PhidgetDictionaryHandle,
9264        ctx: *mut ::std::os::raw::c_void,
9265        key: *const ::std::os::raw::c_char,
9266        value: *const ::std::os::raw::c_char,
9267    ),
9268>;
9269extern "C" {
9270    pub fn PhidgetDictionary_setOnUpdateHandler(
9271        ch: PhidgetDictionaryHandle,
9272        fptr: PhidgetDictionary_OnUpdateCallback,
9273        ctx: *mut ::std::os::raw::c_void,
9274    ) -> PhidgetReturnCode;
9275}
9276pub type __builtin_va_list = [__va_list_tag; 1usize];
9277#[repr(C)]
9278#[derive(Debug, Copy, Clone)]
9279pub struct __va_list_tag {
9280    pub gp_offset: ::std::os::raw::c_uint,
9281    pub fp_offset: ::std::os::raw::c_uint,
9282    pub overflow_arg_area: *mut ::std::os::raw::c_void,
9283    pub reg_save_area: *mut ::std::os::raw::c_void,
9284}
9285#[test]
9286fn bindgen_test_layout___va_list_tag() {
9287    assert_eq!(
9288        ::std::mem::size_of::<__va_list_tag>(),
9289        24usize,
9290        concat!("Size of: ", stringify!(__va_list_tag))
9291    );
9292    assert_eq!(
9293        ::std::mem::align_of::<__va_list_tag>(),
9294        8usize,
9295        concat!("Alignment of ", stringify!(__va_list_tag))
9296    );
9297    assert_eq!(
9298        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
9299        0usize,
9300        concat!(
9301            "Offset of field: ",
9302            stringify!(__va_list_tag),
9303            "::",
9304            stringify!(gp_offset)
9305        )
9306    );
9307    assert_eq!(
9308        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
9309        4usize,
9310        concat!(
9311            "Offset of field: ",
9312            stringify!(__va_list_tag),
9313            "::",
9314            stringify!(fp_offset)
9315        )
9316    );
9317    assert_eq!(
9318        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
9319        8usize,
9320        concat!(
9321            "Offset of field: ",
9322            stringify!(__va_list_tag),
9323            "::",
9324            stringify!(overflow_arg_area)
9325        )
9326    );
9327    assert_eq!(
9328        unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
9329        16usize,
9330        concat!(
9331            "Offset of field: ",
9332            stringify!(__va_list_tag),
9333            "::",
9334            stringify!(reg_save_area)
9335        )
9336    );
9337}