1use autocxx::prelude::*;
3
4include_cpp! {
5 #include "autocxx_wrapper.h"
6
7 generate!("dai::dai_build_version")
9 generate!("dai::dai_build_version_major")
10 generate!("dai::dai_build_version_minor")
11 generate!("dai::dai_build_version_patch")
12 generate!("dai::dai_build_pre_release_type")
13 generate!("dai::dai_build_pre_release_version")
14 generate!("dai::dai_build_commit")
15 generate!("dai::dai_build_commit_datetime")
16 generate!("dai::dai_build_build_datetime")
17 generate!("dai::dai_build_device_version")
18 generate!("dai::dai_build_bootloader_version")
19 generate!("dai::dai_build_device_rvc3_version")
20 generate!("dai::dai_build_device_rvc4_version")
21
22 generate!("dai::dai_device_new")
24 generate!("dai::dai_device_clone")
25 generate!("dai::dai_device_delete")
26 generate!("dai::dai_device_is_closed")
27 generate!("dai::dai_device_close")
28 generate!("dai::dai_device_get_connected_camera_sockets")
29 generate!("dai::dai_pipeline_new_with_device")
30
31 generate!("dai::dai_pipeline_start_default")
33 generate!("dai::dai_pipeline_get_default_device")
34 generate!("dai::dai_pipeline_new")
35 generate!("dai::dai_pipeline_new_ex")
36 generate!("dai::dai_pipeline_delete")
37 generate!("dai::dai_pipeline_start")
38 generate!("dai::dai_pipeline_is_running")
39 generate!("dai::dai_pipeline_is_built")
40 generate!("dai::dai_pipeline_build")
41 generate!("dai::dai_pipeline_wait")
42 generate!("dai::dai_pipeline_stop")
43 generate!("dai::dai_pipeline_run")
44 generate!("dai::dai_pipeline_process_tasks")
45 generate!("dai::dai_pipeline_set_xlink_chunk_size")
46 generate!("dai::dai_pipeline_set_sipp_buffer_size")
47 generate!("dai::dai_pipeline_set_sipp_dma_buffer_size")
48 generate!("dai::dai_pipeline_set_camera_tuning_blob_path")
49 generate!("dai::dai_pipeline_set_openvino_version")
50 generate!("dai::dai_pipeline_serialize_to_json")
51 generate!("dai::dai_pipeline_get_schema_json")
52 generate!("dai::dai_pipeline_get_all_nodes_json")
53 generate!("dai::dai_pipeline_get_source_nodes_json")
54 generate!("dai::dai_pipeline_get_node_by_id")
55 generate!("dai::dai_pipeline_remove_node")
56 generate!("dai::dai_pipeline_get_connections_json")
57 generate!("dai::dai_pipeline_get_connection_map_json")
58 generate!("dai::dai_pipeline_is_calibration_data_available")
59 generate!("dai::dai_pipeline_get_calibration_data_json")
60 generate!("dai::dai_pipeline_set_calibration_data_json")
61 generate!("dai::dai_pipeline_get_global_properties_json")
62 generate!("dai::dai_pipeline_set_global_properties_json")
63 generate!("dai::dai_pipeline_get_board_config_json")
64 generate!("dai::dai_pipeline_set_board_config_json")
65 generate!("dai::dai_pipeline_get_device_config_json")
66 generate!("dai::dai_pipeline_get_eeprom_data_json")
67 generate!("dai::dai_pipeline_set_eeprom_data_json")
68 generate!("dai::dai_pipeline_get_eeprom_id")
69 generate!("dai::dai_pipeline_enable_holistic_record_json")
70 generate!("dai::dai_pipeline_enable_holistic_replay")
71 generate!("dai::dai_pipeline_create_host_node")
72 generate!("dai::dai_pipeline_create_threaded_host_node")
73 generate!("dai::dai_rgbd_build")
74 generate!("dai::dai_rgbd_build_ex")
75 generate!("dai::dai_pipeline_create_camera")
76
77 generate!("dai::dai_pipeline_create_node_by_name")
79 generate!("dai::dai_node_get_output")
80 generate!("dai::dai_node_get_input")
81 generate!("dai::dai_node_get_id")
82 generate!("dai::dai_node_get_alias")
83 generate!("dai::dai_node_set_alias")
84 generate!("dai::dai_node_get_name")
85 generate!("dai::dai_output_link")
86 generate!("dai::dai_output_link_input")
87 generate!("dai::dai_node_link")
88 generate!("dai::dai_node_unlink")
89
90 generate!("dai::dai_hostnode_get_input")
92 generate!("dai::dai_hostnode_run_sync_on_host")
93 generate!("dai::dai_hostnode_run_sync_on_device")
94 generate!("dai::dai_hostnode_send_processing_to_pipeline")
95 generate!("dai::dai_threaded_hostnode_create_input")
96 generate!("dai::dai_threaded_hostnode_create_output")
97 generate!("dai::dai_threaded_node_is_running")
98
99 generate!("dai::dai_device_get_platform")
101 generate!("dai::dai_device_set_ir_laser_dot_projector_intensity")
102
103 generate!("dai::dai_stereo_set_subpixel")
105 generate!("dai::dai_stereo_set_extended_disparity")
106 generate!("dai::dai_stereo_set_default_profile_preset")
107 generate!("dai::dai_stereo_set_left_right_check")
108 generate!("dai::dai_stereo_set_rectify_edge_fill_color")
109 generate!("dai::dai_stereo_enable_distortion_correction")
110 generate!("dai::dai_stereo_set_output_size")
111 generate!("dai::dai_stereo_set_output_keep_aspect_ratio")
112 generate!("dai::dai_stereo_initial_set_left_right_check_threshold")
113 generate!("dai::dai_stereo_initial_set_threshold_filter_max_range")
114
115 generate!("dai::dai_rgbd_set_depth_unit")
117
118 generate!("dai::dai_image_align_set_run_on_host")
120 generate!("dai::dai_image_align_set_output_size")
121 generate!("dai::dai_image_align_set_out_keep_aspect_ratio")
122
123 generate!("dai::dai_image_manip_set_num_frames_pool")
125 generate!("dai::dai_image_manip_set_max_output_frame_size")
126 generate!("dai::dai_image_manip_set_run_on_host")
127 generate!("dai::dai_image_manip_set_backend")
128 generate!("dai::dai_image_manip_set_performance_mode")
129 generate!("dai::dai_image_manip_run_on_host")
130 generate!("dai::dai_image_manip_run")
131 generate!("dai::dai_image_manip_config_new")
132 generate!("dai::dai_image_manip_get_initial_config")
133 generate!("dai::dai_image_manip_config_clear_ops")
134 generate!("dai::dai_image_manip_config_add_crop_xywh")
135 generate!("dai::dai_image_manip_config_add_crop_rect")
136 generate!("dai::dai_image_manip_config_add_crop_rotated_rect")
137 generate!("dai::dai_image_manip_config_add_scale")
138 generate!("dai::dai_image_manip_config_add_rotate_deg")
139 generate!("dai::dai_image_manip_config_add_rotate_deg_center")
140 generate!("dai::dai_image_manip_config_add_flip_horizontal")
141 generate!("dai::dai_image_manip_config_add_flip_vertical")
142 generate!("dai::dai_image_manip_config_add_transform_affine")
143 generate!("dai::dai_image_manip_config_add_transform_perspective")
144 generate!("dai::dai_image_manip_config_add_transform_four_points")
145 generate!("dai::dai_image_manip_config_set_output_size")
146 generate!("dai::dai_image_manip_config_set_output_center")
147 generate!("dai::dai_image_manip_config_set_colormap")
148 generate!("dai::dai_image_manip_config_set_background_color_rgb")
149 generate!("dai::dai_image_manip_config_set_background_color_gray")
150 generate!("dai::dai_image_manip_config_set_frame_type")
151 generate!("dai::dai_image_manip_config_set_undistort")
152 generate!("dai::dai_image_manip_config_get_undistort")
153 generate!("dai::dai_image_manip_config_set_reuse_previous_image")
154 generate!("dai::dai_image_manip_config_set_skip_current_image")
155 generate!("dai::dai_image_manip_config_get_reuse_previous_image")
156 generate!("dai::dai_image_manip_config_get_skip_current_image")
157
158 generate!("dai::dai_video_encoder_set_default_profile_preset")
160 generate!("dai::dai_video_encoder_set_num_frames_pool")
161 generate!("dai::dai_video_encoder_get_num_frames_pool")
162 generate!("dai::dai_video_encoder_set_rate_control_mode")
163 generate!("dai::dai_video_encoder_get_rate_control_mode")
164 generate!("dai::dai_video_encoder_set_profile")
165 generate!("dai::dai_video_encoder_get_profile")
166 generate!("dai::dai_video_encoder_set_bitrate")
167 generate!("dai::dai_video_encoder_get_bitrate")
168 generate!("dai::dai_video_encoder_set_bitrate_kbps")
169 generate!("dai::dai_video_encoder_get_bitrate_kbps")
170 generate!("dai::dai_video_encoder_set_keyframe_frequency")
171 generate!("dai::dai_video_encoder_get_keyframe_frequency")
172 generate!("dai::dai_video_encoder_set_num_bframes")
173 generate!("dai::dai_video_encoder_get_num_bframes")
174 generate!("dai::dai_video_encoder_set_quality")
175 generate!("dai::dai_video_encoder_get_quality")
176 generate!("dai::dai_video_encoder_set_lossless")
177 generate!("dai::dai_video_encoder_get_lossless")
178 generate!("dai::dai_video_encoder_set_frame_rate")
179 generate!("dai::dai_video_encoder_get_frame_rate")
180 generate!("dai::dai_video_encoder_set_max_output_frame_size")
181 generate!("dai::dai_video_encoder_get_max_output_frame_size")
182
183 generate!("dai::dai_camera_request_output")
185 generate!("dai::dai_camera_request_full_resolution_output")
186 generate!("dai::dai_camera_request_full_resolution_output_ex")
187 generate!("dai::dai_camera_build")
188 generate!("dai::dai_camera_get_board_socket")
189 generate!("dai::dai_camera_get_max_width")
190 generate!("dai::dai_camera_get_max_height")
191 generate!("dai::dai_camera_set_sensor_type")
192 generate!("dai::dai_camera_get_sensor_type")
193 generate!("dai::dai_camera_set_raw_num_frames_pool")
194 generate!("dai::dai_camera_set_max_size_pool_raw")
195 generate!("dai::dai_camera_set_isp_num_frames_pool")
196 generate!("dai::dai_camera_set_max_size_pool_isp")
197 generate!("dai::dai_camera_set_num_frames_pools")
198 generate!("dai::dai_camera_set_max_size_pools")
199 generate!("dai::dai_camera_set_outputs_num_frames_pool")
200 generate!("dai::dai_camera_set_outputs_max_size_pool")
201 generate!("dai::dai_camera_get_raw_num_frames_pool")
202 generate!("dai::dai_camera_get_max_size_pool_raw")
203 generate!("dai::dai_camera_get_isp_num_frames_pool")
204 generate!("dai::dai_camera_get_max_size_pool_isp")
205 generate!("dai::dai_camera_get_outputs_num_frames_pool")
206 generate!("dai::dai_camera_get_outputs_max_size_pool")
207
208 generate!("dai::dai_output_create_queue")
210 generate!("dai::dai_queue_delete")
211
212 generate!("dai::dai_queue_get_name")
214 generate!("dai::dai_queue_set_name")
215 generate!("dai::dai_queue_is_closed")
216 generate!("dai::dai_queue_close")
217 generate!("dai::dai_queue_set_blocking")
218 generate!("dai::dai_queue_get_blocking")
219 generate!("dai::dai_queue_set_max_size")
220 generate!("dai::dai_queue_get_max_size")
221 generate!("dai::dai_queue_get_size")
222 generate!("dai::dai_queue_is_full")
223 generate!("dai::dai_queue_has")
224
225 generate!("dai::dai_queue_get")
227 generate!("dai::dai_queue_try_get")
228 generate!("dai::dai_queue_front")
229 generate!("dai::dai_queue_try_get_all")
230 generate!("dai::dai_queue_get_all")
231
232 generate!("dai::dai_queue_add_callback")
234 generate!("dai::dai_queue_remove_callback")
235
236 generate!("dai::dai_queue_send")
238 generate!("dai::dai_queue_send_timeout")
239 generate!("dai::dai_queue_try_send")
240
241 generate!("dai::dai_queue_get_frame")
242 generate!("dai::dai_queue_try_get_frame")
243 generate!("dai::dai_queue_get_encoded_frame")
244 generate!("dai::dai_queue_try_get_encoded_frame")
245 generate!("dai::dai_queue_get_pointcloud")
246 generate!("dai::dai_queue_try_get_pointcloud")
247 generate!("dai::dai_queue_get_rgbd")
248 generate!("dai::dai_queue_try_get_rgbd")
249
250 generate!("dai::dai_datatype_release")
252 generate!("dai::dai_datatype_clone")
253 generate!("dai::dai_datatype_get_datatype_enum")
254 generate!("dai::dai_datatype_as_img_frame")
255 generate!("dai::dai_datatype_as_encoded_frame")
256 generate!("dai::dai_datatype_as_pointcloud")
257 generate!("dai::dai_datatype_as_rgbd")
258 generate!("dai::dai_datatype_as_buffer")
259 generate!("dai::dai_datatype_as_message_group")
260 generate!("dai::dai_datatype_array_len")
261 generate!("dai::dai_datatype_array_take")
262 generate!("dai::dai_datatype_array_free")
263 generate!("dai::dai_frame_get_data")
264 generate!("dai::dai_frame_get_width")
265 generate!("dai::dai_frame_get_height")
266 generate!("dai::dai_frame_get_type")
267 generate!("dai::dai_frame_get_size")
268 generate!("dai::dai_frame_release")
269
270 generate!("dai::dai_encoded_frame_get_data")
272 generate!("dai::dai_encoded_frame_get_data_size")
273 generate!("dai::dai_encoded_frame_get_frame_offset")
274 generate!("dai::dai_encoded_frame_get_frame_size")
275 generate!("dai::dai_encoded_frame_get_width")
276 generate!("dai::dai_encoded_frame_get_height")
277 generate!("dai::dai_encoded_frame_get_profile")
278 generate!("dai::dai_encoded_frame_get_frame_type")
279 generate!("dai::dai_encoded_frame_get_quality")
280 generate!("dai::dai_encoded_frame_get_bitrate")
281 generate!("dai::dai_encoded_frame_get_lossless")
282 generate!("dai::dai_encoded_frame_get_instance_num")
283 generate!("dai::dai_encoded_frame_release")
284
285 generate!("dai::dai_pointcloud_get_width")
287 generate!("dai::dai_pointcloud_get_height")
288 generate!("dai::dai_pointcloud_get_points_rgba")
289 generate!("dai::dai_pointcloud_get_points_rgba_len")
290 generate!("dai::dai_pointcloud_release")
291
292 generate!("dai::dai_rgbd_get_rgb_frame")
294 generate!("dai::dai_rgbd_get_depth_frame")
295 generate!("dai::dai_rgbd_release")
296
297 generate!("dai::dai_input_get_buffer")
299 generate!("dai::dai_input_try_get_buffer")
300 generate!("dai::dai_input_get_img_frame")
301 generate!("dai::dai_input_try_get_img_frame")
302
303 generate!("dai::dai_input_create_input_queue")
305 generate!("dai::dai_input_queue_delete")
306 generate!("dai::dai_input_queue_send")
307
308 generate!("dai::dai_output_send_buffer")
310 generate!("dai::dai_output_send_img_frame")
311
312 generate!("dai::dai_message_group_clone")
314 generate!("dai::dai_message_group_release")
315 generate!("dai::dai_message_group_get_buffer")
316 generate!("dai::dai_message_group_get_img_frame")
317
318 generate!("dai::dai_buffer_new")
320 generate!("dai::dai_buffer_release")
321 generate!("dai::dai_buffer_set_data")
322
323 generate!("dai::dai_camera_socket_name")
325 generate!("dai::dai_string_to_cstring")
326 generate!("dai::dai_free_cstring")
327 generate!("dai::dai_get_last_error")
328 generate!("dai::dai_clear_last_error")
329
330 safety!(unsafe_ffi)
331}
332
333pub type DaiDevice = *mut autocxx::c_void;
336pub type DaiPipeline = *mut autocxx::c_void;
337pub type DaiNode = *mut autocxx::c_void;
338pub type DaiCameraNode = *mut autocxx::c_void;
339pub type DaiOutput = *mut autocxx::c_void;
340pub type DaiInput = *mut autocxx::c_void;
341pub type DaiDataQueue = *mut autocxx::c_void;
342pub type DaiDatatype = *mut autocxx::c_void;
343pub type DaiImgFrame = *mut autocxx::c_void;
344pub type DaiEncodedFrame = *mut autocxx::c_void;
345pub type DaiPointCloud = *mut autocxx::c_void;
346pub type DaiRGBDData = *mut autocxx::c_void;
347pub type DaiMessageGroup = *mut autocxx::c_void;
348pub type DaiBuffer = *mut autocxx::c_void;
349pub type DaiInputQueue = *mut autocxx::c_void;
350
351pub mod string_utils;
352
353pub use ffi::*;
355
356pub mod depthai {
357 pub use crate::ffi::dai::*;
358
359 unsafe extern "C" {
360 pub fn dai_pipeline_create_host_node(
361 pipeline: super::DaiPipeline,
362 ctx: *mut std::ffi::c_void,
363 process_cb: Option<
364 unsafe extern "C" fn(
365 ctx: *mut std::ffi::c_void,
366 group: super::DaiMessageGroup,
367 ) -> super::DaiBuffer,
368 >,
369 on_start_cb: Option<unsafe extern "C" fn(ctx: *mut std::ffi::c_void)>,
370 on_stop_cb: Option<unsafe extern "C" fn(ctx: *mut std::ffi::c_void)>,
371 drop_cb: Option<unsafe extern "C" fn(ctx: *mut std::ffi::c_void)>,
372 ) -> super::DaiNode;
373
374 pub fn dai_pipeline_create_threaded_host_node(
375 pipeline: super::DaiPipeline,
376 ctx: *mut std::ffi::c_void,
377 run_cb: Option<unsafe extern "C" fn(ctx: *mut std::ffi::c_void)>,
378 on_start_cb: Option<unsafe extern "C" fn(ctx: *mut std::ffi::c_void)>,
379 on_stop_cb: Option<unsafe extern "C" fn(ctx: *mut std::ffi::c_void)>,
380 drop_cb: Option<unsafe extern "C" fn(ctx: *mut std::ffi::c_void)>,
381 ) -> super::DaiNode;
382 }
383}