azure_kinect_sys/
bindgen_k4a.rs

1/* automatically generated by rust-bindgen 0.59.1 */
2
3pub const K4A_VERSION_MAJOR: u32 = 1;
4pub const K4A_VERSION_MINOR: u32 = 4;
5pub const K4A_VERSION_PATCH: u32 = 1;
6pub const K4A_VERSION_PRERELEASE: &'static [u8; 1usize] = b"\0";
7pub const K4A_VERSION_BUILD_METADATA: &'static [u8; 1usize] = b"\0";
8pub const K4A_VERSION_STR: &'static [u8; 6usize] = b"1.4.1\0";
9pub const K4A_DEVICE_DEFAULT: u32 = 0;
10pub const K4A_WAIT_INFINITE: i32 = -1;
11pub type __uint8_t = ::std::os::raw::c_uchar;
12pub type __int32_t = ::std::os::raw::c_int;
13pub type __uint32_t = ::std::os::raw::c_uint;
14pub type __uint64_t = ::std::os::raw::c_ulong;
15#[repr(C)]
16#[derive(Debug, Default, Copy, Clone)]
17pub struct _k4a_device_t {
18    pub _rsvd: usize,
19}
20#[test]
21fn bindgen_test_layout__k4a_device_t() {
22    assert_eq!(
23        ::std::mem::size_of::<_k4a_device_t>(),
24        8usize,
25        concat!("Size of: ", stringify!(_k4a_device_t))
26    );
27    assert_eq!(
28        ::std::mem::align_of::<_k4a_device_t>(),
29        8usize,
30        concat!("Alignment of ", stringify!(_k4a_device_t))
31    );
32    assert_eq!(
33        unsafe { &(*(::std::ptr::null::<_k4a_device_t>()))._rsvd as *const _ as usize },
34        0usize,
35        concat!(
36            "Offset of field: ",
37            stringify!(_k4a_device_t),
38            "::",
39            stringify!(_rsvd)
40        )
41    );
42}
43pub type k4a_device_t = *mut _k4a_device_t;
44#[repr(C)]
45#[derive(Debug, Default, Copy, Clone)]
46pub struct _k4a_capture_t {
47    pub _rsvd: usize,
48}
49#[test]
50fn bindgen_test_layout__k4a_capture_t() {
51    assert_eq!(
52        ::std::mem::size_of::<_k4a_capture_t>(),
53        8usize,
54        concat!("Size of: ", stringify!(_k4a_capture_t))
55    );
56    assert_eq!(
57        ::std::mem::align_of::<_k4a_capture_t>(),
58        8usize,
59        concat!("Alignment of ", stringify!(_k4a_capture_t))
60    );
61    assert_eq!(
62        unsafe { &(*(::std::ptr::null::<_k4a_capture_t>()))._rsvd as *const _ as usize },
63        0usize,
64        concat!(
65            "Offset of field: ",
66            stringify!(_k4a_capture_t),
67            "::",
68            stringify!(_rsvd)
69        )
70    );
71}
72pub type k4a_capture_t = *mut _k4a_capture_t;
73#[repr(C)]
74#[derive(Debug, Default, Copy, Clone)]
75pub struct _k4a_image_t {
76    pub _rsvd: usize,
77}
78#[test]
79fn bindgen_test_layout__k4a_image_t() {
80    assert_eq!(
81        ::std::mem::size_of::<_k4a_image_t>(),
82        8usize,
83        concat!("Size of: ", stringify!(_k4a_image_t))
84    );
85    assert_eq!(
86        ::std::mem::align_of::<_k4a_image_t>(),
87        8usize,
88        concat!("Alignment of ", stringify!(_k4a_image_t))
89    );
90    assert_eq!(
91        unsafe { &(*(::std::ptr::null::<_k4a_image_t>()))._rsvd as *const _ as usize },
92        0usize,
93        concat!(
94            "Offset of field: ",
95            stringify!(_k4a_image_t),
96            "::",
97            stringify!(_rsvd)
98        )
99    );
100}
101pub type k4a_image_t = *mut _k4a_image_t;
102#[repr(C)]
103#[derive(Debug, Default, Copy, Clone)]
104pub struct _k4a_transformation_t {
105    pub _rsvd: usize,
106}
107#[test]
108fn bindgen_test_layout__k4a_transformation_t() {
109    assert_eq!(
110        ::std::mem::size_of::<_k4a_transformation_t>(),
111        8usize,
112        concat!("Size of: ", stringify!(_k4a_transformation_t))
113    );
114    assert_eq!(
115        ::std::mem::align_of::<_k4a_transformation_t>(),
116        8usize,
117        concat!("Alignment of ", stringify!(_k4a_transformation_t))
118    );
119    assert_eq!(
120        unsafe { &(*(::std::ptr::null::<_k4a_transformation_t>()))._rsvd as *const _ as usize },
121        0usize,
122        concat!(
123            "Offset of field: ",
124            stringify!(_k4a_transformation_t),
125            "::",
126            stringify!(_rsvd)
127        )
128    );
129}
130pub type k4a_transformation_t = *mut _k4a_transformation_t;
131#[doc = "< The result was successful"]
132pub const k4a_result_t_K4A_RESULT_SUCCEEDED: k4a_result_t = 0;
133#[doc = "< The result was a failure"]
134pub const k4a_result_t_K4A_RESULT_FAILED: k4a_result_t = 1;
135#[doc = " Result code returned by Azure Kinect APIs."]
136#[doc = ""]
137#[doc = " \\xmlonly"]
138#[doc = " <requirements>"]
139#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
140#[doc = " </requirements>"]
141#[doc = " \\endxmlonly"]
142pub type k4a_result_t = ::std::os::raw::c_uint;
143#[doc = "< The result was successful"]
144pub const k4a_buffer_result_t_K4A_BUFFER_RESULT_SUCCEEDED: k4a_buffer_result_t = 0;
145#[doc = "< The result was a failure"]
146pub const k4a_buffer_result_t_K4A_BUFFER_RESULT_FAILED: k4a_buffer_result_t = 1;
147#[doc = "< The input buffer was too small"]
148pub const k4a_buffer_result_t_K4A_BUFFER_RESULT_TOO_SMALL: k4a_buffer_result_t = 2;
149#[doc = " Result code returned by Azure Kinect APIs."]
150#[doc = ""]
151#[doc = " \\xmlonly"]
152#[doc = " <requirements>"]
153#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
154#[doc = " </requirements>"]
155#[doc = " \\endxmlonly"]
156pub type k4a_buffer_result_t = ::std::os::raw::c_uint;
157#[doc = "< The result was successful"]
158pub const k4a_wait_result_t_K4A_WAIT_RESULT_SUCCEEDED: k4a_wait_result_t = 0;
159#[doc = "< The result was a failure"]
160pub const k4a_wait_result_t_K4A_WAIT_RESULT_FAILED: k4a_wait_result_t = 1;
161#[doc = "< The operation timed out"]
162pub const k4a_wait_result_t_K4A_WAIT_RESULT_TIMEOUT: k4a_wait_result_t = 2;
163#[doc = " Result code returned by Azure Kinect APIs."]
164#[doc = ""]
165#[doc = " \\xmlonly"]
166#[doc = " <requirements>"]
167#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
168#[doc = " </requirements>"]
169#[doc = " \\endxmlonly"]
170pub type k4a_wait_result_t = ::std::os::raw::c_uint;
171#[doc = "< Most severe level of debug messaging."]
172pub const k4a_log_level_t_K4A_LOG_LEVEL_CRITICAL: k4a_log_level_t = 0;
173#[doc = "< 2nd most severe level of debug messaging."]
174pub const k4a_log_level_t_K4A_LOG_LEVEL_ERROR: k4a_log_level_t = 1;
175#[doc = "< 3nd most severe level of debug messaging."]
176pub const k4a_log_level_t_K4A_LOG_LEVEL_WARNING: k4a_log_level_t = 2;
177#[doc = "< 2nd least severe level of debug messaging."]
178pub const k4a_log_level_t_K4A_LOG_LEVEL_INFO: k4a_log_level_t = 3;
179#[doc = "< Least severe level of debug messaging."]
180pub const k4a_log_level_t_K4A_LOG_LEVEL_TRACE: k4a_log_level_t = 4;
181#[doc = "< No logging is performed"]
182pub const k4a_log_level_t_K4A_LOG_LEVEL_OFF: k4a_log_level_t = 5;
183#[doc = " Verbosity levels of debug messaging"]
184#[doc = ""]
185#[doc = " \\xmlonly"]
186#[doc = " <requirements>"]
187#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
188#[doc = " </requirements>"]
189#[doc = " \\endxmlonly"]
190pub type k4a_log_level_t = ::std::os::raw::c_uint;
191#[doc = "< Depth sensor will be turned off with this setting."]
192pub const k4a_depth_mode_t_K4A_DEPTH_MODE_OFF: k4a_depth_mode_t = 0;
193#[doc = "< Depth captured at 320x288. Passive IR is also captured at 320x288."]
194pub const k4a_depth_mode_t_K4A_DEPTH_MODE_NFOV_2X2BINNED: k4a_depth_mode_t = 1;
195#[doc = "< Depth captured at 640x576. Passive IR is also captured at 640x576."]
196pub const k4a_depth_mode_t_K4A_DEPTH_MODE_NFOV_UNBINNED: k4a_depth_mode_t = 2;
197#[doc = "< Depth captured at 512x512. Passive IR is also captured at 512x512."]
198pub const k4a_depth_mode_t_K4A_DEPTH_MODE_WFOV_2X2BINNED: k4a_depth_mode_t = 3;
199#[doc = "< Depth captured at 1024x1024. Passive IR is also captured at 1024x1024."]
200pub const k4a_depth_mode_t_K4A_DEPTH_MODE_WFOV_UNBINNED: k4a_depth_mode_t = 4;
201#[doc = "< Passive IR only, captured at 1024x1024."]
202pub const k4a_depth_mode_t_K4A_DEPTH_MODE_PASSIVE_IR: k4a_depth_mode_t = 5;
203#[doc = " Depth sensor capture modes."]
204#[doc = ""]
205#[doc = " \\remarks"]
206#[doc = " See the hardware specification for additional details on the field of view, and supported frame rates"]
207#[doc = " for each mode."]
208#[doc = ""]
209#[doc = " \\remarks"]
210#[doc = " NFOV and WFOV denote Narrow and Wide Field Of View configurations."]
211#[doc = ""]
212#[doc = " \\remarks"]
213#[doc = " Binned modes reduce the captured camera resolution by combining adjacent sensor pixels into a bin."]
214#[doc = ""]
215#[doc = " \\xmlonly"]
216#[doc = " <requirements>"]
217#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
218#[doc = " </requirements>"]
219#[doc = " \\endxmlonly"]
220pub type k4a_depth_mode_t = ::std::os::raw::c_uint;
221#[doc = "< Color camera will be turned off with this setting"]
222pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_OFF: k4a_color_resolution_t = 0;
223#[doc = "< 1280 * 720  16:9"]
224pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_720P: k4a_color_resolution_t = 1;
225#[doc = "< 1920 * 1080 16:9"]
226pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_1080P: k4a_color_resolution_t = 2;
227#[doc = "< 2560 * 1440 16:9"]
228pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_1440P: k4a_color_resolution_t = 3;
229#[doc = "< 2048 * 1536 4:3"]
230pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_1536P: k4a_color_resolution_t = 4;
231#[doc = "< 3840 * 2160 16:9"]
232pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_2160P: k4a_color_resolution_t = 5;
233#[doc = "< 4096 * 3072 4:3"]
234pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_3072P: k4a_color_resolution_t = 6;
235#[doc = " Color sensor resolutions."]
236#[doc = ""]
237#[doc = " \\xmlonly"]
238#[doc = " <requirements>"]
239#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
240#[doc = " </requirements>"]
241#[doc = " \\endxmlonly"]
242pub type k4a_color_resolution_t = ::std::os::raw::c_uint;
243#[doc = " Color image type MJPG."]
244#[doc = ""]
245#[doc = " \\details"]
246#[doc = " The buffer for each image is encoded as a JPEG and can be decoded by a JPEG decoder."]
247#[doc = ""]
248#[doc = " \\details"]
249#[doc = " Because the image is compressed, the stride parameter for the \\ref k4a_image_t is not applicable."]
250#[doc = ""]
251#[doc = " \\details"]
252#[doc = " Each MJPG encoded image in a stream may be of differing size depending on the compression efficiency."]
253pub const k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_MJPG: k4a_image_format_t = 0;
254#[doc = " Color image type NV12."]
255#[doc = ""]
256#[doc = " \\details"]
257#[doc = " NV12 images separate the luminance and chroma data such that all the luminance is at the"]
258#[doc = " beginning of the buffer, and the chroma lines follow immediately after."]
259#[doc = ""]
260#[doc = " \\details"]
261#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each line"]
262#[doc = " of the image in memory. Chroma has half as many lines of height and half the width in pixels of the luminance."]
263#[doc = " Each chroma line has the same width in bytes as a luminance line."]
264pub const k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_NV12: k4a_image_format_t = 1;
265#[doc = " Color image type YUY2."]
266#[doc = ""]
267#[doc = " \\details"]
268#[doc = " YUY2 stores chroma and luminance data in interleaved pixels."]
269#[doc = ""]
270#[doc = " \\details"]
271#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
272#[doc = " line of the image in memory."]
273pub const k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_YUY2: k4a_image_format_t = 2;
274#[doc = " Color image type BGRA32."]
275#[doc = ""]
276#[doc = " \\details"]
277#[doc = " Each pixel of BGRA32 data is four bytes. The first three bytes represent Blue, Green,"]
278#[doc = " and Red data. The fourth byte is the alpha channel and is unused in the Azure Kinect APIs."]
279#[doc = ""]
280#[doc = " \\details"]
281#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
282#[doc = " line of the image in memory."]
283#[doc = ""]
284#[doc = " \\details"]
285#[doc = " The Azure Kinect device does not natively capture in this format. Requesting images of this format"]
286#[doc = " requires additional computation in the API."]
287#[doc = ""]
288pub const k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_BGRA32: k4a_image_format_t = 3;
289#[doc = " Depth image type DEPTH16."]
290#[doc = ""]
291#[doc = " \\details"]
292#[doc = " Each pixel of DEPTH16 data is two bytes of little endian unsigned depth data. The unit of the data is in"]
293#[doc = " millimeters from the origin of the camera."]
294#[doc = ""]
295#[doc = " \\details"]
296#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
297#[doc = " line of the image in memory."]
298pub const k4a_image_format_t_K4A_IMAGE_FORMAT_DEPTH16: k4a_image_format_t = 4;
299#[doc = " Image type IR16."]
300#[doc = ""]
301#[doc = " \\details"]
302#[doc = " Each pixel of IR16 data is two bytes of little endian unsigned depth data. The value of the data represents"]
303#[doc = " brightness."]
304#[doc = ""]
305#[doc = " \\details"]
306#[doc = " This format represents infrared light and is captured by the depth camera."]
307#[doc = ""]
308#[doc = " \\details"]
309#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
310#[doc = " line of the image in memory."]
311pub const k4a_image_format_t_K4A_IMAGE_FORMAT_IR16: k4a_image_format_t = 5;
312#[doc = " Single channel image type CUSTOM8."]
313#[doc = ""]
314#[doc = " \\details"]
315#[doc = " Each pixel of CUSTOM8 is a single channel one byte of unsigned data."]
316#[doc = ""]
317#[doc = " \\details"]
318#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
319#[doc = " line of the image in memory."]
320pub const k4a_image_format_t_K4A_IMAGE_FORMAT_CUSTOM8: k4a_image_format_t = 6;
321#[doc = " Single channel image type CUSTOM16."]
322#[doc = ""]
323#[doc = " \\details"]
324#[doc = " Each pixel of CUSTOM16 is a single channel two bytes of little endian unsigned data."]
325#[doc = ""]
326#[doc = " \\details"]
327#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
328#[doc = " line of the image in memory."]
329pub const k4a_image_format_t_K4A_IMAGE_FORMAT_CUSTOM16: k4a_image_format_t = 7;
330#[doc = " Custom image format."]
331#[doc = ""]
332#[doc = " \\details"]
333#[doc = " Used in conjunction with user created images or images packing non-standard data."]
334#[doc = ""]
335#[doc = " \\details"]
336#[doc = " See the originator of the custom formatted image for information on how to interpret the data."]
337pub const k4a_image_format_t_K4A_IMAGE_FORMAT_CUSTOM: k4a_image_format_t = 8;
338#[doc = " Image format type."]
339#[doc = ""]
340#[doc = " \\remarks"]
341#[doc = " The image format indicates how the \\ref k4a_image_t buffer data is interpreted."]
342#[doc = ""]
343#[doc = " \\xmlonly"]
344#[doc = " <requirements>"]
345#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
346#[doc = " </requirements>"]
347#[doc = " \\endxmlonly"]
348pub type k4a_image_format_t = ::std::os::raw::c_uint;
349#[doc = "< Nearest neighbor interpolation"]
350pub const k4a_transformation_interpolation_type_t_K4A_TRANSFORMATION_INTERPOLATION_TYPE_NEAREST:
351    k4a_transformation_interpolation_type_t = 0;
352#[doc = "< Linear interpolation"]
353pub const k4a_transformation_interpolation_type_t_K4A_TRANSFORMATION_INTERPOLATION_TYPE_LINEAR:
354    k4a_transformation_interpolation_type_t = 1;
355#[doc = " Transformation interpolation type."]
356#[doc = ""]
357#[doc = " \\remarks"]
358#[doc = " Interpolation type used with k4a_transformation_depth_image_to_color_camera_custom."]
359#[doc = ""]
360#[doc = " \\xmlonly"]
361#[doc = " <requirements>"]
362#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
363#[doc = " </requirements>"]
364#[doc = " \\endxmlonly"]
365pub type k4a_transformation_interpolation_type_t = ::std::os::raw::c_uint;
366#[doc = "< 5 FPS"]
367pub const k4a_fps_t_K4A_FRAMES_PER_SECOND_5: k4a_fps_t = 0;
368#[doc = "< 15 FPS"]
369pub const k4a_fps_t_K4A_FRAMES_PER_SECOND_15: k4a_fps_t = 1;
370#[doc = "< 30 FPS"]
371pub const k4a_fps_t_K4A_FRAMES_PER_SECOND_30: k4a_fps_t = 2;
372#[doc = " Color and depth sensor frame rate."]
373#[doc = ""]
374#[doc = " \\remarks"]
375#[doc = " This enumeration is used to select the desired frame rate to operate the cameras. The actual"]
376#[doc = " frame rate may vary slightly due to dropped data, synchronization variation between devices,"]
377#[doc = " clock accuracy, or if the camera exposure priority mode causes reduced frame rate."]
378#[doc = " \\xmlonly"]
379#[doc = " <requirements>"]
380#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
381#[doc = " </requirements>"]
382#[doc = " \\endxmlonly"]
383pub type k4a_fps_t = ::std::os::raw::c_uint;
384#[doc = " Exposure time setting."]
385#[doc = ""]
386#[doc = " \\details"]
387#[doc = " May be set to ::K4A_COLOR_CONTROL_MODE_AUTO or ::K4A_COLOR_CONTROL_MODE_MANUAL."]
388#[doc = ""]
389#[doc = " \\details"]
390#[doc = " The Azure Kinect supports a limited number of fixed expsore settings. When setting this, expect the exposure to"]
391#[doc = " be rounded up to the nearest setting. Exceptions are 1) The last value in the table is the upper limit, so a"]
392#[doc = " value larger than this will be overridden to the largest entry in the table. 2) The exposure time cannot be"]
393#[doc = " larger than the equivelent FPS. So expect 100ms exposure time to be reduced to 30ms or 33.33ms when the camera is"]
394#[doc = " started. The most recent copy of the table 'device_exposure_mapping' is in"]
395#[doc = " https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/src/color/color_priv.h"]
396#[doc = ""]
397#[doc = " \\details"]
398#[doc = " Exposure time is measured in microseconds."]
399pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_EXPOSURE_TIME_ABSOLUTE:
400    k4a_color_control_command_t = 0;
401#[doc = " Exposure or Framerate priority setting."]
402#[doc = ""]
403#[doc = " \\details"]
404#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
405#[doc = ""]
406#[doc = " \\details"]
407#[doc = " Value of 0 means framerate priority. Value of 1 means exposure priority."]
408#[doc = ""]
409#[doc = " \\details"]
410#[doc = " Using exposure priority may impact the framerate of both the color and depth cameras."]
411#[doc = ""]
412#[doc = " \\details"]
413#[doc = " Deprecated starting in 1.2.0. Please discontinue usage, firmware does not support this."]
414pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_AUTO_EXPOSURE_PRIORITY:
415    k4a_color_control_command_t = 1;
416#[doc = " Brightness setting."]
417#[doc = ""]
418#[doc = " \\details"]
419#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
420#[doc = ""]
421#[doc = " \\details"]
422#[doc = " The valid range is 0 to 255. The default value is 128."]
423pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_BRIGHTNESS: k4a_color_control_command_t = 2;
424#[doc = " Contrast setting."]
425#[doc = ""]
426#[doc = " \\details"]
427#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
428pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_CONTRAST: k4a_color_control_command_t = 3;
429#[doc = " Saturation setting."]
430#[doc = ""]
431#[doc = " \\details"]
432#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
433pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_SATURATION: k4a_color_control_command_t = 4;
434#[doc = " Sharpness setting."]
435#[doc = ""]
436#[doc = " \\details"]
437#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
438pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_SHARPNESS: k4a_color_control_command_t = 5;
439#[doc = " White balance setting."]
440#[doc = ""]
441#[doc = " \\details"]
442#[doc = " May be set to ::K4A_COLOR_CONTROL_MODE_AUTO or ::K4A_COLOR_CONTROL_MODE_MANUAL."]
443#[doc = ""]
444#[doc = " \\details"]
445#[doc = " The unit is degrees Kelvin. The setting must be set to a value evenly divisible by 10 degrees."]
446pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_WHITEBALANCE: k4a_color_control_command_t =
447    6;
448#[doc = " Backlight compensation setting."]
449#[doc = ""]
450#[doc = " \\details"]
451#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
452#[doc = ""]
453#[doc = " \\details"]
454#[doc = " Value of 0 means backlight compensation is disabled. Value of 1 means backlight compensation is enabled."]
455pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_BACKLIGHT_COMPENSATION:
456    k4a_color_control_command_t = 7;
457#[doc = " Gain setting."]
458#[doc = ""]
459#[doc = " \\details"]
460#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
461pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_GAIN: k4a_color_control_command_t = 8;
462#[doc = " Powerline frequency setting."]
463#[doc = ""]
464#[doc = " \\details"]
465#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
466#[doc = ""]
467#[doc = " \\details"]
468#[doc = " Value of 1 sets the powerline compensation to 50 Hz. Value of 2 sets the powerline compensation to 60 Hz."]
469pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_POWERLINE_FREQUENCY:
470    k4a_color_control_command_t = 9;
471#[doc = " Color sensor control commands"]
472#[doc = ""]
473#[doc = " \\remarks"]
474#[doc = " The current settings can be read with k4a_device_get_color_control(). The settings can be set with"]
475#[doc = " k4a_device_set_color_control()."]
476#[doc = ""]
477#[doc = " \\remarks"]
478#[doc = " Control values set on a device are reset only when the device is power cycled. The device will retain the settings"]
479#[doc = " even if the \\ref k4a_device_t is closed or the application is restarted."]
480#[doc = ""]
481#[doc = " \\see k4a_color_control_mode_t"]
482#[doc = ""]
483#[doc = " \\xmlonly"]
484#[doc = " <requirements>"]
485#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
486#[doc = " </requirements>"]
487#[doc = " \\endxmlonly"]
488pub type k4a_color_control_command_t = ::std::os::raw::c_uint;
489#[doc = "< set the associated k4a_color_control_command_t to auto"]
490pub const k4a_color_control_mode_t_K4A_COLOR_CONTROL_MODE_AUTO: k4a_color_control_mode_t = 0;
491#[doc = "< set the associated k4a_color_control_command_t to manual"]
492pub const k4a_color_control_mode_t_K4A_COLOR_CONTROL_MODE_MANUAL: k4a_color_control_mode_t = 1;
493#[doc = " Color sensor control mode"]
494#[doc = ""]
495#[doc = " \\remarks"]
496#[doc = " The current settings can be read with k4a_device_get_color_control(). The settings can be set with"]
497#[doc = " k4a_device_set_color_control()."]
498#[doc = ""]
499#[doc = " \\see k4a_color_control_command_t"]
500#[doc = ""]
501#[doc = " \\xmlonly"]
502#[doc = " <requirements>"]
503#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
504#[doc = " </requirements>"]
505#[doc = " \\endxmlonly"]
506pub type k4a_color_control_mode_t = ::std::os::raw::c_uint;
507#[doc = "< Neither 'Sync In' or 'Sync Out' connections are used."]
508pub const k4a_wired_sync_mode_t_K4A_WIRED_SYNC_MODE_STANDALONE: k4a_wired_sync_mode_t = 0;
509#[doc = "< The 'Sync Out' jack is enabled and synchronization data it driven out the"]
510#[doc = "connected wire. While in master mode the color camera must be enabled as part of the"]
511#[doc = "multi device sync signalling logic. Even if the color image is not needed, the color"]
512#[doc = "camera must be running."]
513pub const k4a_wired_sync_mode_t_K4A_WIRED_SYNC_MODE_MASTER: k4a_wired_sync_mode_t = 1;
514#[doc = "< The 'Sync In' jack is used for synchronization and 'Sync Out' is driven for the"]
515#[doc = "next device in the chain. 'Sync Out' is a mirror of 'Sync In' for this mode."]
516pub const k4a_wired_sync_mode_t_K4A_WIRED_SYNC_MODE_SUBORDINATE: k4a_wired_sync_mode_t = 2;
517#[doc = " Synchronization mode when connecting two or more devices together."]
518#[doc = ""]
519#[doc = " \\xmlonly"]
520#[doc = " <requirements>"]
521#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
522#[doc = " </requirements>"]
523#[doc = " \\endxmlonly"]
524pub type k4a_wired_sync_mode_t = ::std::os::raw::c_uint;
525#[doc = "< Calibration type is unknown"]
526pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_UNKNOWN: k4a_calibration_type_t = -1;
527#[doc = "< Depth sensor"]
528pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_DEPTH: k4a_calibration_type_t = 0;
529#[doc = "< Color sensor"]
530pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_COLOR: k4a_calibration_type_t = 1;
531#[doc = "< Gyroscope sensor"]
532pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_GYRO: k4a_calibration_type_t = 2;
533#[doc = "< Accelerometer sensor"]
534pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_ACCEL: k4a_calibration_type_t = 3;
535#[doc = "< Number of types excluding unknown type"]
536pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_NUM: k4a_calibration_type_t = 4;
537#[doc = " Calibration types."]
538#[doc = ""]
539#[doc = " Specifies a type of calibration."]
540#[doc = ""]
541#[doc = " \\xmlonly"]
542#[doc = " <requirements>"]
543#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
544#[doc = " </requirements>"]
545#[doc = " \\endxmlonly"]
546pub type k4a_calibration_type_t = ::std::os::raw::c_int;
547#[doc = "< Calibration model is unknown"]
548pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_UNKNOWN:
549    k4a_calibration_model_type_t = 0;
550#[doc = "< Deprecated (not supported). Calibration model is Theta (arctan)."]
551pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_THETA:
552    k4a_calibration_model_type_t = 1;
553#[doc = "< Deprecated (not supported). Calibration model is"]
554#[doc = "Polynomial 3K."]
555pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_POLYNOMIAL_3K:
556    k4a_calibration_model_type_t = 2;
557#[doc = "< Deprecated (only supported early internal devices)."]
558#[doc = "Calibration model is Rational 6KT."]
559pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_RATIONAL_6KT:
560    k4a_calibration_model_type_t = 3;
561#[doc = "< Calibration model is Brown Conrady (compatible with"]
562#[doc = " OpenCV)"]
563pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_BROWN_CONRADY:
564    k4a_calibration_model_type_t = 4;
565#[doc = " Calibration model type."]
566#[doc = ""]
567#[doc = " The model used interpret the calibration parameters."]
568#[doc = ""]
569#[doc = " \\remarks"]
570#[doc = " Azure Kinect devices are calibrated with Brown Conrady."]
571#[doc = ""]
572#[doc = " \\xmlonly"]
573#[doc = " <requirements>"]
574#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
575#[doc = " </requirements>"]
576#[doc = " \\endxmlonly"]
577pub type k4a_calibration_model_type_t = ::std::os::raw::c_uint;
578#[doc = "< Production firmware."]
579pub const k4a_firmware_build_t_K4A_FIRMWARE_BUILD_RELEASE: k4a_firmware_build_t = 0;
580#[doc = "< Pre-production firmware."]
581pub const k4a_firmware_build_t_K4A_FIRMWARE_BUILD_DEBUG: k4a_firmware_build_t = 1;
582#[doc = " Firmware build type."]
583#[doc = ""]
584#[doc = " \\xmlonly"]
585#[doc = " <requirements>"]
586#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
587#[doc = " </requirements>"]
588#[doc = " \\endxmlonly"]
589pub type k4a_firmware_build_t = ::std::os::raw::c_uint;
590#[doc = "< Microsoft signed firmware."]
591pub const k4a_firmware_signature_t_K4A_FIRMWARE_SIGNATURE_MSFT: k4a_firmware_signature_t = 0;
592#[doc = "< Test signed firmware."]
593pub const k4a_firmware_signature_t_K4A_FIRMWARE_SIGNATURE_TEST: k4a_firmware_signature_t = 1;
594#[doc = "< Unsigned firmware."]
595pub const k4a_firmware_signature_t_K4A_FIRMWARE_SIGNATURE_UNSIGNED: k4a_firmware_signature_t = 2;
596#[doc = " Firmware signature type."]
597#[doc = ""]
598#[doc = " \\xmlonly"]
599#[doc = " <requirements>"]
600#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
601#[doc = " </requirements>"]
602#[doc = " \\endxmlonly"]
603pub type k4a_firmware_signature_t = ::std::os::raw::c_uint;
604#[doc = " Callback function for debug messages being generated by the Azure Kinect SDK."]
605#[doc = ""]
606#[doc = " \\param context"]
607#[doc = " The context of the callback function. This is the context that was supplied by the caller to \\p"]
608#[doc = " k4a_set_debug_message_handler."]
609#[doc = ""]
610#[doc = " \\param level"]
611#[doc = " The level of the message that has been created."]
612#[doc = ""]
613#[doc = " \\param file"]
614#[doc = " The file name of the source file that generated the message."]
615#[doc = ""]
616#[doc = " \\param line"]
617#[doc = " The line number of the source file that generated the message."]
618#[doc = ""]
619#[doc = " \\param message"]
620#[doc = " The messaged generated by the Azure Kinect SDK."]
621#[doc = ""]
622#[doc = " \\remarks"]
623#[doc = " The callback is called asynchronously when the Azure Kinext SDK generates a message at a \\p level that is equal to"]
624#[doc = " or more critical than the level specified when calling \\ref k4a_set_debug_message_handler() to register the callback."]
625#[doc = ""]
626#[doc = " \\remarks"]
627#[doc = " This callback can occur from any thread and blocks the calling thread. The k4a_logging_message_cb_t function user"]
628#[doc = " must protect it's logging resources from concurrent calls. All care should be made to minimize the amount of time"]
629#[doc = " locks are held."]
630#[doc = ""]
631#[doc = " \\xmlonly"]
632#[doc = " <requirements>"]
633#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
634#[doc = " </requirements>"]
635#[doc = " \\endxmlonly"]
636#[doc = ""]
637pub type k4a_logging_message_cb_t = ::std::option::Option<
638    unsafe extern "C" fn(
639        context: *mut ::std::os::raw::c_void,
640        level: k4a_log_level_t,
641        file: *const ::std::os::raw::c_char,
642        line: ::std::os::raw::c_int,
643        message: *const ::std::os::raw::c_char,
644    ),
645>;
646#[doc = " Callback function for a memory object being destroyed."]
647#[doc = ""]
648#[doc = " \\param buffer"]
649#[doc = " The buffer pointer that was supplied by the caller as \\p buffer_release_cb to \\ref k4a_image_create_from_buffer()."]
650#[doc = ""]
651#[doc = " \\param context"]
652#[doc = " The context for the memory object that needs to be destroyed that was supplied by the caller as \\p"]
653#[doc = " buffer_release_cb_context to \\ref k4a_image_create_from_buffer()."]
654#[doc = ""]
655#[doc = " \\remarks"]
656#[doc = " When all references for the memory object are released, this callback will be invoked as the final destroy for the"]
657#[doc = " given memory."]
658#[doc = ""]
659#[doc = " \\xmlonly"]
660#[doc = " <requirements>"]
661#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
662#[doc = " </requirements>"]
663#[doc = " \\endxmlonly"]
664#[doc = ""]
665pub type k4a_memory_destroy_cb_t = ::std::option::Option<
666    unsafe extern "C" fn(buffer: *mut ::std::os::raw::c_void, context: *mut ::std::os::raw::c_void),
667>;
668#[doc = " Callback function for a memory allocation."]
669#[doc = ""]
670#[doc = " \\param size"]
671#[doc = " Minimum size in bytes needed for the buffer."]
672#[doc = ""]
673#[doc = " \\param context"]
674#[doc = " Output parameter for a context that will be provided in the subsequent call to the \\ref k4a_memory_destroy_cb_t"]
675#[doc = " callback."]
676#[doc = ""]
677#[doc = " \\return"]
678#[doc = " A pointer to the newly allocated memory."]
679#[doc = ""]
680#[doc = " \\remarks"]
681#[doc = " A callback of this type is provided when there is an application defined allocator."]
682#[doc = ""]
683#[doc = " \\xmlonly"]
684#[doc = " <requirements>"]
685#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
686#[doc = " </requirements>"]
687#[doc = " \\endxmlonly"]
688#[doc = ""]
689pub type k4a_memory_allocate_cb_t = ::std::option::Option<
690    unsafe extern "C" fn(
691        size: ::std::os::raw::c_int,
692        context: *mut *mut ::std::os::raw::c_void,
693    ) -> *mut u8,
694>;
695#[doc = " Configuration parameters for an Azure Kinect device."]
696#[doc = ""]
697#[doc = " \\remarks"]
698#[doc = " Used by k4a_device_start_cameras() to specify the configuration of the data capture."]
699#[doc = ""]
700#[doc = " \\xmlonly"]
701#[doc = " <requirements>"]
702#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
703#[doc = " </requirements>"]
704#[doc = " \\endxmlonly"]
705#[repr(C)]
706#[derive(Debug, Copy, Clone)]
707pub struct _k4a_device_configuration_t {
708    #[doc = " Image format to capture with the color camera."]
709    #[doc = ""]
710    #[doc = " The color camera does not natively produce BGRA32 images."]
711    #[doc = " Setting ::K4A_IMAGE_FORMAT_COLOR_BGRA32 for color_format will result in higher CPU utilization."]
712    pub color_format: k4a_image_format_t,
713    #[doc = " Image resolution to capture with the color camera."]
714    pub color_resolution: k4a_color_resolution_t,
715    #[doc = " Capture mode for the depth camera."]
716    pub depth_mode: k4a_depth_mode_t,
717    #[doc = " Desired frame rate for the color and depth camera."]
718    pub camera_fps: k4a_fps_t,
719    #[doc = " Only produce k4a_capture_t objects if they contain synchronized color and depth images."]
720    #[doc = ""]
721    #[doc = " \\details"]
722    #[doc = " This setting controls the behavior in which images are dropped when images are produced faster than they can be"]
723    #[doc = " read, or if there are errors in reading images from the device."]
724    #[doc = ""]
725    #[doc = " \\details"]
726    #[doc = " If set to true, \\ref k4a_capture_t objects will only be produced with both color and depth images."]
727    #[doc = " If set to false, \\ref k4a_capture_t objects may be produced only a single image when the corresponding image is"]
728    #[doc = " dropped."]
729    #[doc = ""]
730    #[doc = " \\details"]
731    #[doc = " Setting this to false ensures that the caller receives all of the images received from the camera, regardless of"]
732    #[doc = " whether the corresponding images expected in the capture are available."]
733    #[doc = ""]
734    #[doc = " \\details"]
735    #[doc = " If either the color or depth camera are disabled, this setting has no effect."]
736    pub synchronized_images_only: bool,
737    #[doc = " Desired delay between the capture of the color image and the capture of the depth image."]
738    #[doc = ""]
739    #[doc = " \\details"]
740    #[doc = " A negative value indicates that the depth image should be captured before the color image."]
741    #[doc = ""]
742    #[doc = " \\details"]
743    #[doc = " Any value between negative and positive one capture period is valid."]
744    pub depth_delay_off_color_usec: i32,
745    #[doc = " The external synchronization mode."]
746    pub wired_sync_mode: k4a_wired_sync_mode_t,
747    #[doc = " The external synchronization timing."]
748    #[doc = ""]
749    #[doc = " If this camera is a subordinate, this sets the capture delay between the color camera capture and the external"]
750    #[doc = " input pulse. A setting of zero indicates that the master and subordinate color images should be aligned."]
751    #[doc = ""]
752    #[doc = " This setting does not effect the 'Sync out' connection."]
753    #[doc = ""]
754    #[doc = " This value must be positive and range from zero to one capture period."]
755    #[doc = ""]
756    #[doc = " If this is not a subordinate, then this value is ignored."]
757    pub subordinate_delay_off_master_usec: u32,
758    #[doc = " Streaming indicator automatically turns on when the color or depth camera's are in use."]
759    #[doc = ""]
760    #[doc = " This setting disables that behavior and keeps the LED in an off state."]
761    pub disable_streaming_indicator: bool,
762}
763#[test]
764fn bindgen_test_layout__k4a_device_configuration_t() {
765    assert_eq!(
766        ::std::mem::size_of::<_k4a_device_configuration_t>(),
767        36usize,
768        concat!("Size of: ", stringify!(_k4a_device_configuration_t))
769    );
770    assert_eq!(
771        ::std::mem::align_of::<_k4a_device_configuration_t>(),
772        4usize,
773        concat!("Alignment of ", stringify!(_k4a_device_configuration_t))
774    );
775    assert_eq!(
776        unsafe {
777            &(*(::std::ptr::null::<_k4a_device_configuration_t>())).color_format as *const _
778                as usize
779        },
780        0usize,
781        concat!(
782            "Offset of field: ",
783            stringify!(_k4a_device_configuration_t),
784            "::",
785            stringify!(color_format)
786        )
787    );
788    assert_eq!(
789        unsafe {
790            &(*(::std::ptr::null::<_k4a_device_configuration_t>())).color_resolution as *const _
791                as usize
792        },
793        4usize,
794        concat!(
795            "Offset of field: ",
796            stringify!(_k4a_device_configuration_t),
797            "::",
798            stringify!(color_resolution)
799        )
800    );
801    assert_eq!(
802        unsafe {
803            &(*(::std::ptr::null::<_k4a_device_configuration_t>())).depth_mode as *const _ as usize
804        },
805        8usize,
806        concat!(
807            "Offset of field: ",
808            stringify!(_k4a_device_configuration_t),
809            "::",
810            stringify!(depth_mode)
811        )
812    );
813    assert_eq!(
814        unsafe {
815            &(*(::std::ptr::null::<_k4a_device_configuration_t>())).camera_fps as *const _ as usize
816        },
817        12usize,
818        concat!(
819            "Offset of field: ",
820            stringify!(_k4a_device_configuration_t),
821            "::",
822            stringify!(camera_fps)
823        )
824    );
825    assert_eq!(
826        unsafe {
827            &(*(::std::ptr::null::<_k4a_device_configuration_t>())).synchronized_images_only
828                as *const _ as usize
829        },
830        16usize,
831        concat!(
832            "Offset of field: ",
833            stringify!(_k4a_device_configuration_t),
834            "::",
835            stringify!(synchronized_images_only)
836        )
837    );
838    assert_eq!(
839        unsafe {
840            &(*(::std::ptr::null::<_k4a_device_configuration_t>())).depth_delay_off_color_usec
841                as *const _ as usize
842        },
843        20usize,
844        concat!(
845            "Offset of field: ",
846            stringify!(_k4a_device_configuration_t),
847            "::",
848            stringify!(depth_delay_off_color_usec)
849        )
850    );
851    assert_eq!(
852        unsafe {
853            &(*(::std::ptr::null::<_k4a_device_configuration_t>())).wired_sync_mode as *const _
854                as usize
855        },
856        24usize,
857        concat!(
858            "Offset of field: ",
859            stringify!(_k4a_device_configuration_t),
860            "::",
861            stringify!(wired_sync_mode)
862        )
863    );
864    assert_eq!(
865        unsafe {
866            &(*(::std::ptr::null::<_k4a_device_configuration_t>()))
867                .subordinate_delay_off_master_usec as *const _ as usize
868        },
869        28usize,
870        concat!(
871            "Offset of field: ",
872            stringify!(_k4a_device_configuration_t),
873            "::",
874            stringify!(subordinate_delay_off_master_usec)
875        )
876    );
877    assert_eq!(
878        unsafe {
879            &(*(::std::ptr::null::<_k4a_device_configuration_t>())).disable_streaming_indicator
880                as *const _ as usize
881        },
882        32usize,
883        concat!(
884            "Offset of field: ",
885            stringify!(_k4a_device_configuration_t),
886            "::",
887            stringify!(disable_streaming_indicator)
888        )
889    );
890}
891impl Default for _k4a_device_configuration_t {
892    fn default() -> Self {
893        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
894        unsafe {
895            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
896            s.assume_init()
897        }
898    }
899}
900#[doc = " Configuration parameters for an Azure Kinect device."]
901#[doc = ""]
902#[doc = " \\remarks"]
903#[doc = " Used by k4a_device_start_cameras() to specify the configuration of the data capture."]
904#[doc = ""]
905#[doc = " \\xmlonly"]
906#[doc = " <requirements>"]
907#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
908#[doc = " </requirements>"]
909#[doc = " \\endxmlonly"]
910pub type k4a_device_configuration_t = _k4a_device_configuration_t;
911#[doc = " Extrinsic calibration data."]
912#[doc = ""]
913#[doc = " \\remarks"]
914#[doc = " Extrinsic calibration defines the physical relationship between two separate devices."]
915#[doc = ""]
916#[doc = " \\relates k4a_calibration_camera_t"]
917#[doc = ""]
918#[doc = " \\xmlonly"]
919#[doc = " <requirements>"]
920#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
921#[doc = " </requirements>"]
922#[doc = " \\endxmlonly"]
923#[repr(C)]
924#[derive(Debug, Default, Copy, Clone)]
925pub struct _k4a_calibration_extrinsics_t {
926    #[doc = "< 3x3 Rotation matrix stored in row major order"]
927    pub rotation: [f32; 9usize],
928    #[doc = "< Translation vector, x,y,z (in millimeters)"]
929    pub translation: [f32; 3usize],
930}
931#[test]
932fn bindgen_test_layout__k4a_calibration_extrinsics_t() {
933    assert_eq!(
934        ::std::mem::size_of::<_k4a_calibration_extrinsics_t>(),
935        48usize,
936        concat!("Size of: ", stringify!(_k4a_calibration_extrinsics_t))
937    );
938    assert_eq!(
939        ::std::mem::align_of::<_k4a_calibration_extrinsics_t>(),
940        4usize,
941        concat!("Alignment of ", stringify!(_k4a_calibration_extrinsics_t))
942    );
943    assert_eq!(
944        unsafe {
945            &(*(::std::ptr::null::<_k4a_calibration_extrinsics_t>())).rotation as *const _ as usize
946        },
947        0usize,
948        concat!(
949            "Offset of field: ",
950            stringify!(_k4a_calibration_extrinsics_t),
951            "::",
952            stringify!(rotation)
953        )
954    );
955    assert_eq!(
956        unsafe {
957            &(*(::std::ptr::null::<_k4a_calibration_extrinsics_t>())).translation as *const _
958                as usize
959        },
960        36usize,
961        concat!(
962            "Offset of field: ",
963            stringify!(_k4a_calibration_extrinsics_t),
964            "::",
965            stringify!(translation)
966        )
967    );
968}
969#[doc = " Extrinsic calibration data."]
970#[doc = ""]
971#[doc = " \\remarks"]
972#[doc = " Extrinsic calibration defines the physical relationship between two separate devices."]
973#[doc = ""]
974#[doc = " \\relates k4a_calibration_camera_t"]
975#[doc = ""]
976#[doc = " \\xmlonly"]
977#[doc = " <requirements>"]
978#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
979#[doc = " </requirements>"]
980#[doc = " \\endxmlonly"]
981pub type k4a_calibration_extrinsics_t = _k4a_calibration_extrinsics_t;
982#[doc = " Camera intrinsic calibration data."]
983#[doc = ""]
984#[doc = " \\remarks"]
985#[doc = " Intrinsic calibration represents the internal optical properties of the camera."]
986#[doc = ""]
987#[doc = " \\remarks"]
988#[doc = " Azure Kinect devices are calibrated with Brown Conrady which is compatible"]
989#[doc = " with OpenCV."]
990#[doc = ""]
991#[doc = " \\relates k4a_calibration_camera_t"]
992#[doc = ""]
993#[doc = " \\xmlonly"]
994#[doc = " <requirements>"]
995#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
996#[doc = " </requirements>"]
997#[doc = " \\endxmlonly"]
998#[repr(C)]
999#[derive(Copy, Clone)]
1000pub union k4a_calibration_intrinsic_parameters_t {
1001    #[doc = "< Individual parameter representation of intrinsic model"]
1002    pub param: k4a_calibration_intrinsic_parameters_t__param,
1003    #[doc = "< Array representation of intrinsic model parameters"]
1004    pub v: [f32; 15usize],
1005}
1006#[doc = " individual parameter or array representation of intrinsic model."]
1007#[repr(C)]
1008#[derive(Debug, Default, Copy, Clone)]
1009pub struct k4a_calibration_intrinsic_parameters_t__param {
1010    #[doc = "< Principal point in image, x"]
1011    pub cx: f32,
1012    #[doc = "< Principal point in image, y"]
1013    pub cy: f32,
1014    #[doc = "< Focal length x"]
1015    pub fx: f32,
1016    #[doc = "< Focal length y"]
1017    pub fy: f32,
1018    #[doc = "< k1 radial distortion coefficient"]
1019    pub k1: f32,
1020    #[doc = "< k2 radial distortion coefficient"]
1021    pub k2: f32,
1022    #[doc = "< k3 radial distortion coefficient"]
1023    pub k3: f32,
1024    #[doc = "< k4 radial distortion coefficient"]
1025    pub k4: f32,
1026    #[doc = "< k5 radial distortion coefficient"]
1027    pub k5: f32,
1028    #[doc = "< k6 radial distortion coefficient"]
1029    pub k6: f32,
1030    #[doc = "< Center of distortion in Z=1 plane, x (only used for Rational6KT)"]
1031    pub codx: f32,
1032    #[doc = "< Center of distortion in Z=1 plane, y (only used for Rational6KT)"]
1033    pub cody: f32,
1034    #[doc = "< Tangential distortion coefficient 2"]
1035    pub p2: f32,
1036    #[doc = "< Tangential distortion coefficient 1"]
1037    pub p1: f32,
1038    #[doc = "< Metric radius"]
1039    pub metric_radius: f32,
1040}
1041#[test]
1042fn bindgen_test_layout_k4a_calibration_intrinsic_parameters_t__param() {
1043    assert_eq!(
1044        ::std::mem::size_of::<k4a_calibration_intrinsic_parameters_t__param>(),
1045        60usize,
1046        concat!(
1047            "Size of: ",
1048            stringify!(k4a_calibration_intrinsic_parameters_t__param)
1049        )
1050    );
1051    assert_eq!(
1052        ::std::mem::align_of::<k4a_calibration_intrinsic_parameters_t__param>(),
1053        4usize,
1054        concat!(
1055            "Alignment of ",
1056            stringify!(k4a_calibration_intrinsic_parameters_t__param)
1057        )
1058    );
1059    assert_eq!(
1060        unsafe {
1061            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).cx as *const _
1062                as usize
1063        },
1064        0usize,
1065        concat!(
1066            "Offset of field: ",
1067            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1068            "::",
1069            stringify!(cx)
1070        )
1071    );
1072    assert_eq!(
1073        unsafe {
1074            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).cy as *const _
1075                as usize
1076        },
1077        4usize,
1078        concat!(
1079            "Offset of field: ",
1080            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1081            "::",
1082            stringify!(cy)
1083        )
1084    );
1085    assert_eq!(
1086        unsafe {
1087            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).fx as *const _
1088                as usize
1089        },
1090        8usize,
1091        concat!(
1092            "Offset of field: ",
1093            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1094            "::",
1095            stringify!(fx)
1096        )
1097    );
1098    assert_eq!(
1099        unsafe {
1100            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).fy as *const _
1101                as usize
1102        },
1103        12usize,
1104        concat!(
1105            "Offset of field: ",
1106            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1107            "::",
1108            stringify!(fy)
1109        )
1110    );
1111    assert_eq!(
1112        unsafe {
1113            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k1 as *const _
1114                as usize
1115        },
1116        16usize,
1117        concat!(
1118            "Offset of field: ",
1119            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1120            "::",
1121            stringify!(k1)
1122        )
1123    );
1124    assert_eq!(
1125        unsafe {
1126            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k2 as *const _
1127                as usize
1128        },
1129        20usize,
1130        concat!(
1131            "Offset of field: ",
1132            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1133            "::",
1134            stringify!(k2)
1135        )
1136    );
1137    assert_eq!(
1138        unsafe {
1139            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k3 as *const _
1140                as usize
1141        },
1142        24usize,
1143        concat!(
1144            "Offset of field: ",
1145            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1146            "::",
1147            stringify!(k3)
1148        )
1149    );
1150    assert_eq!(
1151        unsafe {
1152            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k4 as *const _
1153                as usize
1154        },
1155        28usize,
1156        concat!(
1157            "Offset of field: ",
1158            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1159            "::",
1160            stringify!(k4)
1161        )
1162    );
1163    assert_eq!(
1164        unsafe {
1165            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k5 as *const _
1166                as usize
1167        },
1168        32usize,
1169        concat!(
1170            "Offset of field: ",
1171            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1172            "::",
1173            stringify!(k5)
1174        )
1175    );
1176    assert_eq!(
1177        unsafe {
1178            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k6 as *const _
1179                as usize
1180        },
1181        36usize,
1182        concat!(
1183            "Offset of field: ",
1184            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1185            "::",
1186            stringify!(k6)
1187        )
1188    );
1189    assert_eq!(
1190        unsafe {
1191            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).codx
1192                as *const _ as usize
1193        },
1194        40usize,
1195        concat!(
1196            "Offset of field: ",
1197            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1198            "::",
1199            stringify!(codx)
1200        )
1201    );
1202    assert_eq!(
1203        unsafe {
1204            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).cody
1205                as *const _ as usize
1206        },
1207        44usize,
1208        concat!(
1209            "Offset of field: ",
1210            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1211            "::",
1212            stringify!(cody)
1213        )
1214    );
1215    assert_eq!(
1216        unsafe {
1217            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).p2 as *const _
1218                as usize
1219        },
1220        48usize,
1221        concat!(
1222            "Offset of field: ",
1223            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1224            "::",
1225            stringify!(p2)
1226        )
1227    );
1228    assert_eq!(
1229        unsafe {
1230            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).p1 as *const _
1231                as usize
1232        },
1233        52usize,
1234        concat!(
1235            "Offset of field: ",
1236            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1237            "::",
1238            stringify!(p1)
1239        )
1240    );
1241    assert_eq!(
1242        unsafe {
1243            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).metric_radius
1244                as *const _ as usize
1245        },
1246        56usize,
1247        concat!(
1248            "Offset of field: ",
1249            stringify!(k4a_calibration_intrinsic_parameters_t__param),
1250            "::",
1251            stringify!(metric_radius)
1252        )
1253    );
1254}
1255#[test]
1256fn bindgen_test_layout_k4a_calibration_intrinsic_parameters_t() {
1257    assert_eq!(
1258        ::std::mem::size_of::<k4a_calibration_intrinsic_parameters_t>(),
1259        60usize,
1260        concat!(
1261            "Size of: ",
1262            stringify!(k4a_calibration_intrinsic_parameters_t)
1263        )
1264    );
1265    assert_eq!(
1266        ::std::mem::align_of::<k4a_calibration_intrinsic_parameters_t>(),
1267        4usize,
1268        concat!(
1269            "Alignment of ",
1270            stringify!(k4a_calibration_intrinsic_parameters_t)
1271        )
1272    );
1273    assert_eq!(
1274        unsafe {
1275            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t>())).param as *const _
1276                as usize
1277        },
1278        0usize,
1279        concat!(
1280            "Offset of field: ",
1281            stringify!(k4a_calibration_intrinsic_parameters_t),
1282            "::",
1283            stringify!(param)
1284        )
1285    );
1286    assert_eq!(
1287        unsafe {
1288            &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t>())).v as *const _
1289                as usize
1290        },
1291        0usize,
1292        concat!(
1293            "Offset of field: ",
1294            stringify!(k4a_calibration_intrinsic_parameters_t),
1295            "::",
1296            stringify!(v)
1297        )
1298    );
1299}
1300impl Default for k4a_calibration_intrinsic_parameters_t {
1301    fn default() -> Self {
1302        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1303        unsafe {
1304            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1305            s.assume_init()
1306        }
1307    }
1308}
1309#[doc = " Camera sensor intrinsic calibration data."]
1310#[doc = ""]
1311#[doc = " \\remarks"]
1312#[doc = " Intrinsic calibration represents the internal optical properties of the camera."]
1313#[doc = ""]
1314#[doc = " \\remarks"]
1315#[doc = " Azure Kinect devices are calibrated with Brown Conrady which is compatible"]
1316#[doc = " with OpenCV."]
1317#[doc = ""]
1318#[doc = " \\relates k4a_calibration_camera_t"]
1319#[doc = ""]
1320#[doc = " \\xmlonly"]
1321#[doc = " <requirements>"]
1322#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1323#[doc = " </requirements>"]
1324#[doc = " \\endxmlonly"]
1325#[repr(C)]
1326#[derive(Copy, Clone)]
1327pub struct _k4a_calibration_intrinsics_t {
1328    #[doc = "< Type of calibration model used"]
1329    pub type_: k4a_calibration_model_type_t,
1330    #[doc = "< Number of valid entries in parameters"]
1331    pub parameter_count: ::std::os::raw::c_uint,
1332    #[doc = "< Calibration parameters"]
1333    pub parameters: k4a_calibration_intrinsic_parameters_t,
1334}
1335#[test]
1336fn bindgen_test_layout__k4a_calibration_intrinsics_t() {
1337    assert_eq!(
1338        ::std::mem::size_of::<_k4a_calibration_intrinsics_t>(),
1339        68usize,
1340        concat!("Size of: ", stringify!(_k4a_calibration_intrinsics_t))
1341    );
1342    assert_eq!(
1343        ::std::mem::align_of::<_k4a_calibration_intrinsics_t>(),
1344        4usize,
1345        concat!("Alignment of ", stringify!(_k4a_calibration_intrinsics_t))
1346    );
1347    assert_eq!(
1348        unsafe {
1349            &(*(::std::ptr::null::<_k4a_calibration_intrinsics_t>())).type_ as *const _ as usize
1350        },
1351        0usize,
1352        concat!(
1353            "Offset of field: ",
1354            stringify!(_k4a_calibration_intrinsics_t),
1355            "::",
1356            stringify!(type_)
1357        )
1358    );
1359    assert_eq!(
1360        unsafe {
1361            &(*(::std::ptr::null::<_k4a_calibration_intrinsics_t>())).parameter_count as *const _
1362                as usize
1363        },
1364        4usize,
1365        concat!(
1366            "Offset of field: ",
1367            stringify!(_k4a_calibration_intrinsics_t),
1368            "::",
1369            stringify!(parameter_count)
1370        )
1371    );
1372    assert_eq!(
1373        unsafe {
1374            &(*(::std::ptr::null::<_k4a_calibration_intrinsics_t>())).parameters as *const _
1375                as usize
1376        },
1377        8usize,
1378        concat!(
1379            "Offset of field: ",
1380            stringify!(_k4a_calibration_intrinsics_t),
1381            "::",
1382            stringify!(parameters)
1383        )
1384    );
1385}
1386impl Default for _k4a_calibration_intrinsics_t {
1387    fn default() -> Self {
1388        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1389        unsafe {
1390            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1391            s.assume_init()
1392        }
1393    }
1394}
1395#[doc = " Camera sensor intrinsic calibration data."]
1396#[doc = ""]
1397#[doc = " \\remarks"]
1398#[doc = " Intrinsic calibration represents the internal optical properties of the camera."]
1399#[doc = ""]
1400#[doc = " \\remarks"]
1401#[doc = " Azure Kinect devices are calibrated with Brown Conrady which is compatible"]
1402#[doc = " with OpenCV."]
1403#[doc = ""]
1404#[doc = " \\relates k4a_calibration_camera_t"]
1405#[doc = ""]
1406#[doc = " \\xmlonly"]
1407#[doc = " <requirements>"]
1408#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1409#[doc = " </requirements>"]
1410#[doc = " \\endxmlonly"]
1411pub type k4a_calibration_intrinsics_t = _k4a_calibration_intrinsics_t;
1412#[doc = " Camera calibration contains intrinsic and extrinsic calibration information for a camera."]
1413#[doc = ""]
1414#[doc = " \\relates k4a_calibration_camera_t"]
1415#[doc = ""]
1416#[doc = " \\xmlonly"]
1417#[doc = " <requirements>"]
1418#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1419#[doc = " </requirements>"]
1420#[doc = " \\endxmlonly"]
1421#[repr(C)]
1422#[derive(Copy, Clone)]
1423pub struct _k4a_calibration_camera_t {
1424    #[doc = "< Extrinsic calibration data."]
1425    pub extrinsics: k4a_calibration_extrinsics_t,
1426    #[doc = "< Intrinsic calibration data."]
1427    pub intrinsics: k4a_calibration_intrinsics_t,
1428    #[doc = "< Resolution width of the calibration sensor."]
1429    pub resolution_width: ::std::os::raw::c_int,
1430    #[doc = "< Resolution height of the calibration sensor."]
1431    pub resolution_height: ::std::os::raw::c_int,
1432    #[doc = "< Max FOV of the camera."]
1433    pub metric_radius: f32,
1434}
1435#[test]
1436fn bindgen_test_layout__k4a_calibration_camera_t() {
1437    assert_eq!(
1438        ::std::mem::size_of::<_k4a_calibration_camera_t>(),
1439        128usize,
1440        concat!("Size of: ", stringify!(_k4a_calibration_camera_t))
1441    );
1442    assert_eq!(
1443        ::std::mem::align_of::<_k4a_calibration_camera_t>(),
1444        4usize,
1445        concat!("Alignment of ", stringify!(_k4a_calibration_camera_t))
1446    );
1447    assert_eq!(
1448        unsafe {
1449            &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).extrinsics as *const _ as usize
1450        },
1451        0usize,
1452        concat!(
1453            "Offset of field: ",
1454            stringify!(_k4a_calibration_camera_t),
1455            "::",
1456            stringify!(extrinsics)
1457        )
1458    );
1459    assert_eq!(
1460        unsafe {
1461            &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).intrinsics as *const _ as usize
1462        },
1463        48usize,
1464        concat!(
1465            "Offset of field: ",
1466            stringify!(_k4a_calibration_camera_t),
1467            "::",
1468            stringify!(intrinsics)
1469        )
1470    );
1471    assert_eq!(
1472        unsafe {
1473            &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).resolution_width as *const _
1474                as usize
1475        },
1476        116usize,
1477        concat!(
1478            "Offset of field: ",
1479            stringify!(_k4a_calibration_camera_t),
1480            "::",
1481            stringify!(resolution_width)
1482        )
1483    );
1484    assert_eq!(
1485        unsafe {
1486            &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).resolution_height as *const _
1487                as usize
1488        },
1489        120usize,
1490        concat!(
1491            "Offset of field: ",
1492            stringify!(_k4a_calibration_camera_t),
1493            "::",
1494            stringify!(resolution_height)
1495        )
1496    );
1497    assert_eq!(
1498        unsafe {
1499            &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).metric_radius as *const _ as usize
1500        },
1501        124usize,
1502        concat!(
1503            "Offset of field: ",
1504            stringify!(_k4a_calibration_camera_t),
1505            "::",
1506            stringify!(metric_radius)
1507        )
1508    );
1509}
1510impl Default for _k4a_calibration_camera_t {
1511    fn default() -> Self {
1512        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1513        unsafe {
1514            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1515            s.assume_init()
1516        }
1517    }
1518}
1519#[doc = " Camera calibration contains intrinsic and extrinsic calibration information for a camera."]
1520#[doc = ""]
1521#[doc = " \\relates k4a_calibration_camera_t"]
1522#[doc = ""]
1523#[doc = " \\xmlonly"]
1524#[doc = " <requirements>"]
1525#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1526#[doc = " </requirements>"]
1527#[doc = " \\endxmlonly"]
1528pub type k4a_calibration_camera_t = _k4a_calibration_camera_t;
1529#[doc = " Calibration type representing device calibration."]
1530#[doc = ""]
1531#[doc = " \\xmlonly"]
1532#[doc = " <requirements>"]
1533#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1534#[doc = " </requirements>"]
1535#[doc = " \\endxmlonly"]
1536#[repr(C)]
1537#[derive(Copy, Clone)]
1538pub struct _k4a_calibration_t {
1539    #[doc = "< Depth camera calibration."]
1540    pub depth_camera_calibration: k4a_calibration_camera_t,
1541    #[doc = "< Color camera calibration."]
1542    pub color_camera_calibration: k4a_calibration_camera_t,
1543    #[doc = " Extrinsic transformation parameters."]
1544    #[doc = ""]
1545    #[doc = " The extrinsic parameters allow 3D coordinate conversions between depth camera, color camera, the IMU's gyroscope"]
1546    #[doc = " and accelerometer. To transform from a source to a target 3D coordinate system, use the parameters stored"]
1547    #[doc = " under extrinsics[source][target]."]
1548    pub extrinsics: [[k4a_calibration_extrinsics_t; 4usize]; 4usize],
1549    #[doc = "< Depth camera mode for which calibration was obtained."]
1550    pub depth_mode: k4a_depth_mode_t,
1551    #[doc = "< Color camera resolution for which calibration was obtained."]
1552    pub color_resolution: k4a_color_resolution_t,
1553}
1554#[test]
1555fn bindgen_test_layout__k4a_calibration_t() {
1556    assert_eq!(
1557        ::std::mem::size_of::<_k4a_calibration_t>(),
1558        1032usize,
1559        concat!("Size of: ", stringify!(_k4a_calibration_t))
1560    );
1561    assert_eq!(
1562        ::std::mem::align_of::<_k4a_calibration_t>(),
1563        4usize,
1564        concat!("Alignment of ", stringify!(_k4a_calibration_t))
1565    );
1566    assert_eq!(
1567        unsafe {
1568            &(*(::std::ptr::null::<_k4a_calibration_t>())).depth_camera_calibration as *const _
1569                as usize
1570        },
1571        0usize,
1572        concat!(
1573            "Offset of field: ",
1574            stringify!(_k4a_calibration_t),
1575            "::",
1576            stringify!(depth_camera_calibration)
1577        )
1578    );
1579    assert_eq!(
1580        unsafe {
1581            &(*(::std::ptr::null::<_k4a_calibration_t>())).color_camera_calibration as *const _
1582                as usize
1583        },
1584        128usize,
1585        concat!(
1586            "Offset of field: ",
1587            stringify!(_k4a_calibration_t),
1588            "::",
1589            stringify!(color_camera_calibration)
1590        )
1591    );
1592    assert_eq!(
1593        unsafe { &(*(::std::ptr::null::<_k4a_calibration_t>())).extrinsics as *const _ as usize },
1594        256usize,
1595        concat!(
1596            "Offset of field: ",
1597            stringify!(_k4a_calibration_t),
1598            "::",
1599            stringify!(extrinsics)
1600        )
1601    );
1602    assert_eq!(
1603        unsafe { &(*(::std::ptr::null::<_k4a_calibration_t>())).depth_mode as *const _ as usize },
1604        1024usize,
1605        concat!(
1606            "Offset of field: ",
1607            stringify!(_k4a_calibration_t),
1608            "::",
1609            stringify!(depth_mode)
1610        )
1611    );
1612    assert_eq!(
1613        unsafe {
1614            &(*(::std::ptr::null::<_k4a_calibration_t>())).color_resolution as *const _ as usize
1615        },
1616        1028usize,
1617        concat!(
1618            "Offset of field: ",
1619            stringify!(_k4a_calibration_t),
1620            "::",
1621            stringify!(color_resolution)
1622        )
1623    );
1624}
1625impl Default for _k4a_calibration_t {
1626    fn default() -> Self {
1627        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1628        unsafe {
1629            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1630            s.assume_init()
1631        }
1632    }
1633}
1634#[doc = " Calibration type representing device calibration."]
1635#[doc = ""]
1636#[doc = " \\xmlonly"]
1637#[doc = " <requirements>"]
1638#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1639#[doc = " </requirements>"]
1640#[doc = " \\endxmlonly"]
1641pub type k4a_calibration_t = _k4a_calibration_t;
1642#[doc = " Version information."]
1643#[doc = ""]
1644#[doc = " \\xmlonly"]
1645#[doc = " <requirements>"]
1646#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1647#[doc = " </requirements>"]
1648#[doc = " \\endxmlonly"]
1649#[repr(C)]
1650#[derive(Debug, Default, Copy, Clone)]
1651pub struct _k4a_version_t {
1652    #[doc = "< Major version; represents a breaking change."]
1653    pub major: u32,
1654    #[doc = "< Minor version; represents additional features, no regression from lower versions with same"]
1655    #[doc = "major version."]
1656    pub minor: u32,
1657    #[doc = "< Reserved."]
1658    pub iteration: u32,
1659}
1660#[test]
1661fn bindgen_test_layout__k4a_version_t() {
1662    assert_eq!(
1663        ::std::mem::size_of::<_k4a_version_t>(),
1664        12usize,
1665        concat!("Size of: ", stringify!(_k4a_version_t))
1666    );
1667    assert_eq!(
1668        ::std::mem::align_of::<_k4a_version_t>(),
1669        4usize,
1670        concat!("Alignment of ", stringify!(_k4a_version_t))
1671    );
1672    assert_eq!(
1673        unsafe { &(*(::std::ptr::null::<_k4a_version_t>())).major as *const _ as usize },
1674        0usize,
1675        concat!(
1676            "Offset of field: ",
1677            stringify!(_k4a_version_t),
1678            "::",
1679            stringify!(major)
1680        )
1681    );
1682    assert_eq!(
1683        unsafe { &(*(::std::ptr::null::<_k4a_version_t>())).minor as *const _ as usize },
1684        4usize,
1685        concat!(
1686            "Offset of field: ",
1687            stringify!(_k4a_version_t),
1688            "::",
1689            stringify!(minor)
1690        )
1691    );
1692    assert_eq!(
1693        unsafe { &(*(::std::ptr::null::<_k4a_version_t>())).iteration as *const _ as usize },
1694        8usize,
1695        concat!(
1696            "Offset of field: ",
1697            stringify!(_k4a_version_t),
1698            "::",
1699            stringify!(iteration)
1700        )
1701    );
1702}
1703#[doc = " Version information."]
1704#[doc = ""]
1705#[doc = " \\xmlonly"]
1706#[doc = " <requirements>"]
1707#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1708#[doc = " </requirements>"]
1709#[doc = " \\endxmlonly"]
1710pub type k4a_version_t = _k4a_version_t;
1711#[doc = " Structure to define hardware version."]
1712#[doc = ""]
1713#[doc = " \\xmlonly"]
1714#[doc = " <requirements>"]
1715#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1716#[doc = " </requirements>"]
1717#[doc = " \\endxmlonly"]
1718#[repr(C)]
1719#[derive(Debug, Copy, Clone)]
1720pub struct _k4a_hardware_version_t {
1721    #[doc = "< Color camera firmware version."]
1722    pub rgb: k4a_version_t,
1723    #[doc = "< Depth camera firmware version."]
1724    pub depth: k4a_version_t,
1725    #[doc = "< Audio device firmware version."]
1726    pub audio: k4a_version_t,
1727    #[doc = "< Depth sensor firmware version."]
1728    pub depth_sensor: k4a_version_t,
1729    #[doc = "< Build type reported by the firmware."]
1730    pub firmware_build: k4a_firmware_build_t,
1731    #[doc = "< Signature type of the firmware."]
1732    pub firmware_signature: k4a_firmware_signature_t,
1733}
1734#[test]
1735fn bindgen_test_layout__k4a_hardware_version_t() {
1736    assert_eq!(
1737        ::std::mem::size_of::<_k4a_hardware_version_t>(),
1738        56usize,
1739        concat!("Size of: ", stringify!(_k4a_hardware_version_t))
1740    );
1741    assert_eq!(
1742        ::std::mem::align_of::<_k4a_hardware_version_t>(),
1743        4usize,
1744        concat!("Alignment of ", stringify!(_k4a_hardware_version_t))
1745    );
1746    assert_eq!(
1747        unsafe { &(*(::std::ptr::null::<_k4a_hardware_version_t>())).rgb as *const _ as usize },
1748        0usize,
1749        concat!(
1750            "Offset of field: ",
1751            stringify!(_k4a_hardware_version_t),
1752            "::",
1753            stringify!(rgb)
1754        )
1755    );
1756    assert_eq!(
1757        unsafe { &(*(::std::ptr::null::<_k4a_hardware_version_t>())).depth as *const _ as usize },
1758        12usize,
1759        concat!(
1760            "Offset of field: ",
1761            stringify!(_k4a_hardware_version_t),
1762            "::",
1763            stringify!(depth)
1764        )
1765    );
1766    assert_eq!(
1767        unsafe { &(*(::std::ptr::null::<_k4a_hardware_version_t>())).audio as *const _ as usize },
1768        24usize,
1769        concat!(
1770            "Offset of field: ",
1771            stringify!(_k4a_hardware_version_t),
1772            "::",
1773            stringify!(audio)
1774        )
1775    );
1776    assert_eq!(
1777        unsafe {
1778            &(*(::std::ptr::null::<_k4a_hardware_version_t>())).depth_sensor as *const _ as usize
1779        },
1780        36usize,
1781        concat!(
1782            "Offset of field: ",
1783            stringify!(_k4a_hardware_version_t),
1784            "::",
1785            stringify!(depth_sensor)
1786        )
1787    );
1788    assert_eq!(
1789        unsafe {
1790            &(*(::std::ptr::null::<_k4a_hardware_version_t>())).firmware_build as *const _ as usize
1791        },
1792        48usize,
1793        concat!(
1794            "Offset of field: ",
1795            stringify!(_k4a_hardware_version_t),
1796            "::",
1797            stringify!(firmware_build)
1798        )
1799    );
1800    assert_eq!(
1801        unsafe {
1802            &(*(::std::ptr::null::<_k4a_hardware_version_t>())).firmware_signature as *const _
1803                as usize
1804        },
1805        52usize,
1806        concat!(
1807            "Offset of field: ",
1808            stringify!(_k4a_hardware_version_t),
1809            "::",
1810            stringify!(firmware_signature)
1811        )
1812    );
1813}
1814impl Default for _k4a_hardware_version_t {
1815    fn default() -> Self {
1816        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1817        unsafe {
1818            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1819            s.assume_init()
1820        }
1821    }
1822}
1823#[doc = " Structure to define hardware version."]
1824#[doc = ""]
1825#[doc = " \\xmlonly"]
1826#[doc = " <requirements>"]
1827#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1828#[doc = " </requirements>"]
1829#[doc = " \\endxmlonly"]
1830pub type k4a_hardware_version_t = _k4a_hardware_version_t;
1831#[doc = " Two dimensional floating point vector."]
1832#[doc = ""]
1833#[doc = " \\xmlonly"]
1834#[doc = " <requirements>"]
1835#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1836#[doc = " </requirements>"]
1837#[doc = " \\endxmlonly"]
1838#[repr(C)]
1839#[derive(Copy, Clone)]
1840pub union k4a_float2_t {
1841    #[doc = "< X, Y representation of a vector"]
1842    pub xy: k4a_float2_t__xy,
1843    #[doc = "< Array representation of a vector"]
1844    pub v: [f32; 2usize],
1845}
1846#[doc = " XY or array representation of vector"]
1847#[repr(C)]
1848#[derive(Debug, Default, Copy, Clone)]
1849pub struct k4a_float2_t__xy {
1850    #[doc = "< X component of a vector"]
1851    pub x: f32,
1852    #[doc = "< Y component of a vector"]
1853    pub y: f32,
1854}
1855#[test]
1856fn bindgen_test_layout_k4a_float2_t__xy() {
1857    assert_eq!(
1858        ::std::mem::size_of::<k4a_float2_t__xy>(),
1859        8usize,
1860        concat!("Size of: ", stringify!(k4a_float2_t__xy))
1861    );
1862    assert_eq!(
1863        ::std::mem::align_of::<k4a_float2_t__xy>(),
1864        4usize,
1865        concat!("Alignment of ", stringify!(k4a_float2_t__xy))
1866    );
1867    assert_eq!(
1868        unsafe { &(*(::std::ptr::null::<k4a_float2_t__xy>())).x as *const _ as usize },
1869        0usize,
1870        concat!(
1871            "Offset of field: ",
1872            stringify!(k4a_float2_t__xy),
1873            "::",
1874            stringify!(x)
1875        )
1876    );
1877    assert_eq!(
1878        unsafe { &(*(::std::ptr::null::<k4a_float2_t__xy>())).y as *const _ as usize },
1879        4usize,
1880        concat!(
1881            "Offset of field: ",
1882            stringify!(k4a_float2_t__xy),
1883            "::",
1884            stringify!(y)
1885        )
1886    );
1887}
1888#[test]
1889fn bindgen_test_layout_k4a_float2_t() {
1890    assert_eq!(
1891        ::std::mem::size_of::<k4a_float2_t>(),
1892        8usize,
1893        concat!("Size of: ", stringify!(k4a_float2_t))
1894    );
1895    assert_eq!(
1896        ::std::mem::align_of::<k4a_float2_t>(),
1897        4usize,
1898        concat!("Alignment of ", stringify!(k4a_float2_t))
1899    );
1900    assert_eq!(
1901        unsafe { &(*(::std::ptr::null::<k4a_float2_t>())).xy as *const _ as usize },
1902        0usize,
1903        concat!(
1904            "Offset of field: ",
1905            stringify!(k4a_float2_t),
1906            "::",
1907            stringify!(xy)
1908        )
1909    );
1910    assert_eq!(
1911        unsafe { &(*(::std::ptr::null::<k4a_float2_t>())).v as *const _ as usize },
1912        0usize,
1913        concat!(
1914            "Offset of field: ",
1915            stringify!(k4a_float2_t),
1916            "::",
1917            stringify!(v)
1918        )
1919    );
1920}
1921impl Default for k4a_float2_t {
1922    fn default() -> Self {
1923        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1924        unsafe {
1925            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1926            s.assume_init()
1927        }
1928    }
1929}
1930#[doc = " Three dimensional floating point vector."]
1931#[doc = ""]
1932#[doc = " \\xmlonly"]
1933#[doc = " <requirements>"]
1934#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1935#[doc = " </requirements>"]
1936#[doc = " \\endxmlonly"]
1937#[repr(C)]
1938#[derive(Copy, Clone)]
1939pub union k4a_float3_t {
1940    #[doc = "< X, Y, Z representation of a vector."]
1941    pub xyz: k4a_float3_t__xyz,
1942    #[doc = "< Array representation of a vector."]
1943    pub v: [f32; 3usize],
1944}
1945#[doc = " XYZ or array representation of vector."]
1946#[repr(C)]
1947#[derive(Debug, Default, Copy, Clone)]
1948pub struct k4a_float3_t__xyz {
1949    #[doc = "< X component of a vector."]
1950    pub x: f32,
1951    #[doc = "< Y component of a vector."]
1952    pub y: f32,
1953    #[doc = "< Z component of a vector."]
1954    pub z: f32,
1955}
1956#[test]
1957fn bindgen_test_layout_k4a_float3_t__xyz() {
1958    assert_eq!(
1959        ::std::mem::size_of::<k4a_float3_t__xyz>(),
1960        12usize,
1961        concat!("Size of: ", stringify!(k4a_float3_t__xyz))
1962    );
1963    assert_eq!(
1964        ::std::mem::align_of::<k4a_float3_t__xyz>(),
1965        4usize,
1966        concat!("Alignment of ", stringify!(k4a_float3_t__xyz))
1967    );
1968    assert_eq!(
1969        unsafe { &(*(::std::ptr::null::<k4a_float3_t__xyz>())).x as *const _ as usize },
1970        0usize,
1971        concat!(
1972            "Offset of field: ",
1973            stringify!(k4a_float3_t__xyz),
1974            "::",
1975            stringify!(x)
1976        )
1977    );
1978    assert_eq!(
1979        unsafe { &(*(::std::ptr::null::<k4a_float3_t__xyz>())).y as *const _ as usize },
1980        4usize,
1981        concat!(
1982            "Offset of field: ",
1983            stringify!(k4a_float3_t__xyz),
1984            "::",
1985            stringify!(y)
1986        )
1987    );
1988    assert_eq!(
1989        unsafe { &(*(::std::ptr::null::<k4a_float3_t__xyz>())).z as *const _ as usize },
1990        8usize,
1991        concat!(
1992            "Offset of field: ",
1993            stringify!(k4a_float3_t__xyz),
1994            "::",
1995            stringify!(z)
1996        )
1997    );
1998}
1999#[test]
2000fn bindgen_test_layout_k4a_float3_t() {
2001    assert_eq!(
2002        ::std::mem::size_of::<k4a_float3_t>(),
2003        12usize,
2004        concat!("Size of: ", stringify!(k4a_float3_t))
2005    );
2006    assert_eq!(
2007        ::std::mem::align_of::<k4a_float3_t>(),
2008        4usize,
2009        concat!("Alignment of ", stringify!(k4a_float3_t))
2010    );
2011    assert_eq!(
2012        unsafe { &(*(::std::ptr::null::<k4a_float3_t>())).xyz as *const _ as usize },
2013        0usize,
2014        concat!(
2015            "Offset of field: ",
2016            stringify!(k4a_float3_t),
2017            "::",
2018            stringify!(xyz)
2019        )
2020    );
2021    assert_eq!(
2022        unsafe { &(*(::std::ptr::null::<k4a_float3_t>())).v as *const _ as usize },
2023        0usize,
2024        concat!(
2025            "Offset of field: ",
2026            stringify!(k4a_float3_t),
2027            "::",
2028            stringify!(v)
2029        )
2030    );
2031}
2032impl Default for k4a_float3_t {
2033    fn default() -> Self {
2034        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2035        unsafe {
2036            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2037            s.assume_init()
2038        }
2039    }
2040}
2041#[doc = " IMU sample."]
2042#[doc = ""]
2043#[doc = " \\xmlonly"]
2044#[doc = " <requirements>"]
2045#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
2046#[doc = " </requirements>"]
2047#[doc = " \\endxmlonly"]
2048#[repr(C)]
2049#[derive(Copy, Clone)]
2050pub struct _k4a_imu_sample_t {
2051    #[doc = "< Temperature reading of this sample (Celsius)."]
2052    pub temperature: f32,
2053    #[doc = "< Accelerometer sample in meters per second squared."]
2054    pub acc_sample: k4a_float3_t,
2055    #[doc = "< Timestamp of the accelerometer in microseconds."]
2056    pub acc_timestamp_usec: u64,
2057    #[doc = "< Gyro sample in radians per second."]
2058    pub gyro_sample: k4a_float3_t,
2059    #[doc = "< Timestamp of the gyroscope in microseconds"]
2060    pub gyro_timestamp_usec: u64,
2061}
2062#[test]
2063fn bindgen_test_layout__k4a_imu_sample_t() {
2064    assert_eq!(
2065        ::std::mem::size_of::<_k4a_imu_sample_t>(),
2066        48usize,
2067        concat!("Size of: ", stringify!(_k4a_imu_sample_t))
2068    );
2069    assert_eq!(
2070        ::std::mem::align_of::<_k4a_imu_sample_t>(),
2071        8usize,
2072        concat!("Alignment of ", stringify!(_k4a_imu_sample_t))
2073    );
2074    assert_eq!(
2075        unsafe { &(*(::std::ptr::null::<_k4a_imu_sample_t>())).temperature as *const _ as usize },
2076        0usize,
2077        concat!(
2078            "Offset of field: ",
2079            stringify!(_k4a_imu_sample_t),
2080            "::",
2081            stringify!(temperature)
2082        )
2083    );
2084    assert_eq!(
2085        unsafe { &(*(::std::ptr::null::<_k4a_imu_sample_t>())).acc_sample as *const _ as usize },
2086        4usize,
2087        concat!(
2088            "Offset of field: ",
2089            stringify!(_k4a_imu_sample_t),
2090            "::",
2091            stringify!(acc_sample)
2092        )
2093    );
2094    assert_eq!(
2095        unsafe {
2096            &(*(::std::ptr::null::<_k4a_imu_sample_t>())).acc_timestamp_usec as *const _ as usize
2097        },
2098        16usize,
2099        concat!(
2100            "Offset of field: ",
2101            stringify!(_k4a_imu_sample_t),
2102            "::",
2103            stringify!(acc_timestamp_usec)
2104        )
2105    );
2106    assert_eq!(
2107        unsafe { &(*(::std::ptr::null::<_k4a_imu_sample_t>())).gyro_sample as *const _ as usize },
2108        24usize,
2109        concat!(
2110            "Offset of field: ",
2111            stringify!(_k4a_imu_sample_t),
2112            "::",
2113            stringify!(gyro_sample)
2114        )
2115    );
2116    assert_eq!(
2117        unsafe {
2118            &(*(::std::ptr::null::<_k4a_imu_sample_t>())).gyro_timestamp_usec as *const _ as usize
2119        },
2120        40usize,
2121        concat!(
2122            "Offset of field: ",
2123            stringify!(_k4a_imu_sample_t),
2124            "::",
2125            stringify!(gyro_timestamp_usec)
2126        )
2127    );
2128}
2129impl Default for _k4a_imu_sample_t {
2130    fn default() -> Self {
2131        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2132        unsafe {
2133            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2134            s.assume_init()
2135        }
2136    }
2137}
2138#[doc = " IMU sample."]
2139#[doc = ""]
2140#[doc = " \\xmlonly"]
2141#[doc = " <requirements>"]
2142#[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
2143#[doc = " </requirements>"]
2144#[doc = " \\endxmlonly"]
2145pub type k4a_imu_sample_t = _k4a_imu_sample_t;
2146extern "C" {
2147    #[doc = " Initial configuration setting for disabling all sensors."]
2148    #[doc = ""]
2149    #[doc = " \\remarks"]
2150    #[doc = " Use this setting to initialize a \\ref k4a_device_configuration_t to a disabled state."]
2151    #[doc = ""]
2152    #[doc = " \\xmlonly"]
2153    #[doc = " <requirements>"]
2154    #[doc = "   <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
2155    #[doc = " </requirements>"]
2156    #[doc = " \\endxmlonly"]
2157    pub static K4A_DEVICE_CONFIG_INIT_DISABLE_ALL: k4a_device_configuration_t;
2158}
2159pub struct Funcs {
2160    pub k4a_device_get_installed_count: unsafe extern "C" fn() -> u32,
2161    pub k4a_set_debug_message_handler: unsafe extern "C" fn(
2162        message_cb: k4a_logging_message_cb_t,
2163        message_cb_context: *mut ::std::os::raw::c_void,
2164        min_level: k4a_log_level_t,
2165    ) -> k4a_result_t,
2166    pub k4a_set_allocator: unsafe extern "C" fn(
2167        allocate: k4a_memory_allocate_cb_t,
2168        free: k4a_memory_destroy_cb_t,
2169    ) -> k4a_result_t,
2170    pub k4a_device_open:
2171        unsafe extern "C" fn(index: u32, device_handle: *mut k4a_device_t) -> k4a_result_t,
2172    pub k4a_device_close: unsafe extern "C" fn(device_handle: k4a_device_t),
2173    pub k4a_device_get_capture: unsafe extern "C" fn(
2174        device_handle: k4a_device_t,
2175        capture_handle: *mut k4a_capture_t,
2176        timeout_in_ms: i32,
2177    ) -> k4a_wait_result_t,
2178    pub k4a_device_get_imu_sample: unsafe extern "C" fn(
2179        device_handle: k4a_device_t,
2180        imu_sample: *mut k4a_imu_sample_t,
2181        timeout_in_ms: i32,
2182    ) -> k4a_wait_result_t,
2183    pub k4a_capture_create:
2184        unsafe extern "C" fn(capture_handle: *mut k4a_capture_t) -> k4a_result_t,
2185    pub k4a_capture_release: unsafe extern "C" fn(capture_handle: k4a_capture_t),
2186    pub k4a_capture_reference: unsafe extern "C" fn(capture_handle: k4a_capture_t),
2187    pub k4a_capture_get_color_image:
2188        unsafe extern "C" fn(capture_handle: k4a_capture_t) -> k4a_image_t,
2189    pub k4a_capture_get_depth_image:
2190        unsafe extern "C" fn(capture_handle: k4a_capture_t) -> k4a_image_t,
2191    pub k4a_capture_get_ir_image:
2192        unsafe extern "C" fn(capture_handle: k4a_capture_t) -> k4a_image_t,
2193    pub k4a_capture_set_color_image:
2194        unsafe extern "C" fn(capture_handle: k4a_capture_t, image_handle: k4a_image_t),
2195    pub k4a_capture_set_depth_image:
2196        unsafe extern "C" fn(capture_handle: k4a_capture_t, image_handle: k4a_image_t),
2197    pub k4a_capture_set_ir_image:
2198        unsafe extern "C" fn(capture_handle: k4a_capture_t, image_handle: k4a_image_t),
2199    pub k4a_capture_set_temperature_c:
2200        unsafe extern "C" fn(capture_handle: k4a_capture_t, temperature_c: f32),
2201    pub k4a_capture_get_temperature_c: unsafe extern "C" fn(capture_handle: k4a_capture_t) -> f32,
2202    pub k4a_image_create: unsafe extern "C" fn(
2203        format: k4a_image_format_t,
2204        width_pixels: ::std::os::raw::c_int,
2205        height_pixels: ::std::os::raw::c_int,
2206        stride_bytes: ::std::os::raw::c_int,
2207        image_handle: *mut k4a_image_t,
2208    ) -> k4a_result_t,
2209    pub k4a_image_create_from_buffer: unsafe extern "C" fn(
2210        format: k4a_image_format_t,
2211        width_pixels: ::std::os::raw::c_int,
2212        height_pixels: ::std::os::raw::c_int,
2213        stride_bytes: ::std::os::raw::c_int,
2214        buffer: *mut u8,
2215        buffer_size: usize,
2216        buffer_release_cb: k4a_memory_destroy_cb_t,
2217        buffer_release_cb_context: *mut ::std::os::raw::c_void,
2218        image_handle: *mut k4a_image_t,
2219    ) -> k4a_result_t,
2220    pub k4a_image_get_buffer: unsafe extern "C" fn(image_handle: k4a_image_t) -> *mut u8,
2221    pub k4a_image_get_size: unsafe extern "C" fn(image_handle: k4a_image_t) -> usize,
2222    pub k4a_image_get_format: unsafe extern "C" fn(image_handle: k4a_image_t) -> k4a_image_format_t,
2223    pub k4a_image_get_width_pixels:
2224        unsafe extern "C" fn(image_handle: k4a_image_t) -> ::std::os::raw::c_int,
2225    pub k4a_image_get_height_pixels:
2226        unsafe extern "C" fn(image_handle: k4a_image_t) -> ::std::os::raw::c_int,
2227    pub k4a_image_get_stride_bytes:
2228        unsafe extern "C" fn(image_handle: k4a_image_t) -> ::std::os::raw::c_int,
2229    pub k4a_image_get_timestamp_usec: unsafe extern "C" fn(image_handle: k4a_image_t) -> u64,
2230    pub k4a_image_get_device_timestamp_usec: unsafe extern "C" fn(image_handle: k4a_image_t) -> u64,
2231    pub k4a_image_get_system_timestamp_nsec: unsafe extern "C" fn(image_handle: k4a_image_t) -> u64,
2232    pub k4a_image_get_exposure_usec: unsafe extern "C" fn(image_handle: k4a_image_t) -> u64,
2233    pub k4a_image_get_white_balance: unsafe extern "C" fn(image_handle: k4a_image_t) -> u32,
2234    pub k4a_image_get_iso_speed: unsafe extern "C" fn(image_handle: k4a_image_t) -> u32,
2235    pub k4a_image_set_device_timestamp_usec:
2236        unsafe extern "C" fn(image_handle: k4a_image_t, timestamp_usec: u64),
2237    pub k4a_image_set_timestamp_usec:
2238        unsafe extern "C" fn(image_handle: k4a_image_t, timestamp_usec: u64),
2239    pub k4a_image_set_system_timestamp_nsec:
2240        unsafe extern "C" fn(image_handle: k4a_image_t, timestamp_nsec: u64),
2241    pub k4a_image_set_exposure_usec:
2242        unsafe extern "C" fn(image_handle: k4a_image_t, exposure_usec: u64),
2243    pub k4a_image_set_exposure_time_usec:
2244        unsafe extern "C" fn(image_handle: k4a_image_t, exposure_usec: u64),
2245    pub k4a_image_set_white_balance:
2246        unsafe extern "C" fn(image_handle: k4a_image_t, white_balance: u32),
2247    pub k4a_image_set_iso_speed: unsafe extern "C" fn(image_handle: k4a_image_t, iso_speed: u32),
2248    pub k4a_image_reference: unsafe extern "C" fn(image_handle: k4a_image_t),
2249    pub k4a_image_release: unsafe extern "C" fn(image_handle: k4a_image_t),
2250    pub k4a_device_start_cameras: unsafe extern "C" fn(
2251        device_handle: k4a_device_t,
2252        config: *const k4a_device_configuration_t,
2253    ) -> k4a_result_t,
2254    pub k4a_device_stop_cameras: unsafe extern "C" fn(device_handle: k4a_device_t),
2255    pub k4a_device_start_imu: unsafe extern "C" fn(device_handle: k4a_device_t) -> k4a_result_t,
2256    pub k4a_device_stop_imu: unsafe extern "C" fn(device_handle: k4a_device_t),
2257    pub k4a_device_get_serialnum: unsafe extern "C" fn(
2258        device_handle: k4a_device_t,
2259        serial_number: *mut ::std::os::raw::c_char,
2260        serial_number_size: *mut usize,
2261    ) -> k4a_buffer_result_t,
2262    pub k4a_device_get_version: unsafe extern "C" fn(
2263        device_handle: k4a_device_t,
2264        version: *mut k4a_hardware_version_t,
2265    ) -> k4a_result_t,
2266    pub k4a_device_get_color_control_capabilities: unsafe extern "C" fn(
2267        device_handle: k4a_device_t,
2268        command: k4a_color_control_command_t,
2269        supports_auto: *mut bool,
2270        min_value: *mut i32,
2271        max_value: *mut i32,
2272        step_value: *mut i32,
2273        default_value: *mut i32,
2274        default_mode: *mut k4a_color_control_mode_t,
2275    ) -> k4a_result_t,
2276    pub k4a_device_get_color_control: unsafe extern "C" fn(
2277        device_handle: k4a_device_t,
2278        command: k4a_color_control_command_t,
2279        mode: *mut k4a_color_control_mode_t,
2280        value: *mut i32,
2281    ) -> k4a_result_t,
2282    pub k4a_device_set_color_control: unsafe extern "C" fn(
2283        device_handle: k4a_device_t,
2284        command: k4a_color_control_command_t,
2285        mode: k4a_color_control_mode_t,
2286        value: i32,
2287    ) -> k4a_result_t,
2288    pub k4a_device_get_raw_calibration: unsafe extern "C" fn(
2289        device_handle: k4a_device_t,
2290        data: *mut u8,
2291        data_size: *mut usize,
2292    ) -> k4a_buffer_result_t,
2293    pub k4a_device_get_calibration: unsafe extern "C" fn(
2294        device_handle: k4a_device_t,
2295        depth_mode: k4a_depth_mode_t,
2296        color_resolution: k4a_color_resolution_t,
2297        calibration: *mut k4a_calibration_t,
2298    ) -> k4a_result_t,
2299    pub k4a_device_get_sync_jack: unsafe extern "C" fn(
2300        device_handle: k4a_device_t,
2301        sync_in_jack_connected: *mut bool,
2302        sync_out_jack_connected: *mut bool,
2303    ) -> k4a_result_t,
2304    pub k4a_calibration_get_from_raw: unsafe extern "C" fn(
2305        raw_calibration: *mut ::std::os::raw::c_char,
2306        raw_calibration_size: usize,
2307        depth_mode: k4a_depth_mode_t,
2308        color_resolution: k4a_color_resolution_t,
2309        calibration: *mut k4a_calibration_t,
2310    ) -> k4a_result_t,
2311    pub k4a_calibration_3d_to_3d: unsafe extern "C" fn(
2312        calibration: *const k4a_calibration_t,
2313        source_point3d_mm: *const k4a_float3_t,
2314        source_camera: k4a_calibration_type_t,
2315        target_camera: k4a_calibration_type_t,
2316        target_point3d_mm: *mut k4a_float3_t,
2317    ) -> k4a_result_t,
2318    pub k4a_calibration_2d_to_3d: unsafe extern "C" fn(
2319        calibration: *const k4a_calibration_t,
2320        source_point2d: *const k4a_float2_t,
2321        source_depth_mm: f32,
2322        source_camera: k4a_calibration_type_t,
2323        target_camera: k4a_calibration_type_t,
2324        target_point3d_mm: *mut k4a_float3_t,
2325        valid: *mut ::std::os::raw::c_int,
2326    ) -> k4a_result_t,
2327    pub k4a_calibration_3d_to_2d: unsafe extern "C" fn(
2328        calibration: *const k4a_calibration_t,
2329        source_point3d_mm: *const k4a_float3_t,
2330        source_camera: k4a_calibration_type_t,
2331        target_camera: k4a_calibration_type_t,
2332        target_point2d: *mut k4a_float2_t,
2333        valid: *mut ::std::os::raw::c_int,
2334    ) -> k4a_result_t,
2335    pub k4a_calibration_2d_to_2d: unsafe extern "C" fn(
2336        calibration: *const k4a_calibration_t,
2337        source_point2d: *const k4a_float2_t,
2338        source_depth_mm: f32,
2339        source_camera: k4a_calibration_type_t,
2340        target_camera: k4a_calibration_type_t,
2341        target_point2d: *mut k4a_float2_t,
2342        valid: *mut ::std::os::raw::c_int,
2343    ) -> k4a_result_t,
2344    pub k4a_calibration_color_2d_to_depth_2d: unsafe extern "C" fn(
2345        calibration: *const k4a_calibration_t,
2346        source_point2d: *const k4a_float2_t,
2347        depth_image: k4a_image_t,
2348        target_point2d: *mut k4a_float2_t,
2349        valid: *mut ::std::os::raw::c_int,
2350    ) -> k4a_result_t,
2351    pub k4a_transformation_create:
2352        unsafe extern "C" fn(calibration: *const k4a_calibration_t) -> k4a_transformation_t,
2353    pub k4a_transformation_destroy:
2354        unsafe extern "C" fn(transformation_handle: k4a_transformation_t),
2355    pub k4a_transformation_depth_image_to_color_camera: unsafe extern "C" fn(
2356        transformation_handle: k4a_transformation_t,
2357        depth_image: k4a_image_t,
2358        transformed_depth_image: k4a_image_t,
2359    ) -> k4a_result_t,
2360    pub k4a_transformation_depth_image_to_color_camera_custom: unsafe extern "C" fn(
2361        transformation_handle: k4a_transformation_t,
2362        depth_image: k4a_image_t,
2363        custom_image: k4a_image_t,
2364        transformed_depth_image: k4a_image_t,
2365        transformed_custom_image: k4a_image_t,
2366        interpolation_type: k4a_transformation_interpolation_type_t,
2367        invalid_custom_value: u32,
2368    )
2369        -> k4a_result_t,
2370    pub k4a_transformation_color_image_to_depth_camera: unsafe extern "C" fn(
2371        transformation_handle: k4a_transformation_t,
2372        depth_image: k4a_image_t,
2373        color_image: k4a_image_t,
2374        transformed_color_image: k4a_image_t,
2375    ) -> k4a_result_t,
2376    pub k4a_transformation_depth_image_to_point_cloud: unsafe extern "C" fn(
2377        transformation_handle: k4a_transformation_t,
2378        depth_image: k4a_image_t,
2379        camera: k4a_calibration_type_t,
2380        xyz_image: k4a_image_t,
2381    ) -> k4a_result_t,
2382}