#![allow(non_camel_case_types, non_upper_case_globals, dead_code)]
use std::os::raw::{c_int, c_uint};
pub type dc1394error_t = c_int;
pub const DC1394_SUCCESS: dc1394error_t = 0;
pub type dc1394bool_t = c_int;
pub type dc1394switch_t = c_uint;
pub const DC1394_OFF: dc1394switch_t = 0;
pub const DC1394_ON: dc1394switch_t = 1;
pub type dc1394video_mode_t = c_uint;
pub const DC1394_VIDEO_MODE_160x120_YUV444: dc1394video_mode_t = 64;
pub const DC1394_VIDEO_MODE_320x240_YUV422: dc1394video_mode_t = 65;
pub const DC1394_VIDEO_MODE_640x480_YUV411: dc1394video_mode_t = 66;
pub const DC1394_VIDEO_MODE_640x480_YUV422: dc1394video_mode_t = 67;
pub const DC1394_VIDEO_MODE_640x480_RGB8: dc1394video_mode_t = 68;
pub const DC1394_VIDEO_MODE_640x480_MONO8: dc1394video_mode_t = 69;
pub const DC1394_VIDEO_MODE_640x480_MONO16: dc1394video_mode_t = 70;
pub const DC1394_VIDEO_MODE_800x600_YUV422: dc1394video_mode_t = 71;
pub const DC1394_VIDEO_MODE_800x600_RGB8: dc1394video_mode_t = 72;
pub const DC1394_VIDEO_MODE_800x600_MONO8: dc1394video_mode_t = 73;
pub const DC1394_VIDEO_MODE_1024x768_YUV422: dc1394video_mode_t = 74;
pub const DC1394_VIDEO_MODE_1024x768_RGB8: dc1394video_mode_t = 75;
pub const DC1394_VIDEO_MODE_1024x768_MONO8: dc1394video_mode_t = 76;
pub const DC1394_VIDEO_MODE_800x600_MONO16: dc1394video_mode_t = 77;
pub const DC1394_VIDEO_MODE_1024x768_MONO16: dc1394video_mode_t = 78;
pub const DC1394_VIDEO_MODE_1280x960_YUV422: dc1394video_mode_t = 79;
pub const DC1394_VIDEO_MODE_1280x960_RGB8: dc1394video_mode_t = 80;
pub const DC1394_VIDEO_MODE_1280x960_MONO8: dc1394video_mode_t = 81;
pub const DC1394_VIDEO_MODE_1600x1200_YUV422: dc1394video_mode_t = 82;
pub const DC1394_VIDEO_MODE_1600x1200_RGB8: dc1394video_mode_t = 83;
pub const DC1394_VIDEO_MODE_1600x1200_MONO8: dc1394video_mode_t = 84;
pub const DC1394_VIDEO_MODE_1280x960_MONO16: dc1394video_mode_t = 85;
pub const DC1394_VIDEO_MODE_1600x1200_MONO16: dc1394video_mode_t = 86;
pub const DC1394_VIDEO_MODE_FORMAT7_0: dc1394video_mode_t = 88;
pub const DC1394_VIDEO_MODE_NUM: usize = 32;
pub type dc1394speed_t = c_uint;
pub const DC1394_ISO_SPEED_100: dc1394speed_t = 0;
pub const DC1394_ISO_SPEED_200: dc1394speed_t = 1;
pub const DC1394_ISO_SPEED_400: dc1394speed_t = 2;
pub const DC1394_ISO_SPEED_800: dc1394speed_t = 3;
pub type dc1394capture_policy_t = c_uint;
pub const DC1394_CAPTURE_POLICY_WAIT: dc1394capture_policy_t = 672;
pub const DC1394_CAPTURE_POLICY_POLL: dc1394capture_policy_t = 673;
pub const DC1394_CAPTURE_FLAGS_DEFAULT: u32 = 0x00000004;
pub type dc1394feature_t = c_uint;
pub const DC1394_FEATURE_SHUTTER: dc1394feature_t = 421;
pub const DC1394_FEATURE_GAIN: dc1394feature_t = 422;
pub type dc1394feature_mode_t = c_uint;
pub const DC1394_FEATURE_MODE_MANUAL: dc1394feature_mode_t = 736;
pub type dc1394color_coding_t = c_uint;
pub const DC1394_COLOR_CODING_MONO8: dc1394color_coding_t = 352;
pub const DC1394_COLOR_CODING_YUV411: dc1394color_coding_t = 353;
pub const DC1394_COLOR_CODING_YUV422: dc1394color_coding_t = 354;
pub const DC1394_COLOR_CODING_YUV444: dc1394color_coding_t = 355;
pub const DC1394_COLOR_CODING_RGB8: dc1394color_coding_t = 356;
pub const DC1394_COLOR_CODING_MONO16: dc1394color_coding_t = 357;
pub const DC1394_COLOR_CODING_RGB16: dc1394color_coding_t = 358;
pub const DC1394_COLOR_CODING_RAW8: dc1394color_coding_t = 361;
pub const DC1394_COLOR_CODING_RAW16: dc1394color_coding_t = 362;
#[repr(C)]
pub struct dc1394_t {
_private: [u8; 0],
}
#[repr(C)]
pub struct dc1394camera_t {
_private: [u8; 0],
}
#[repr(C)]
pub struct dc1394camera_id_t {
pub guid: u64,
pub unit: c_int,
}
#[repr(C)]
pub struct dc1394camera_list_t {
pub num: u32,
pub ids: *mut dc1394camera_id_t,
}
#[repr(C)]
pub struct dc1394video_frame_t {
pub image: *mut u8,
pub size: [u32; 2], pub position: [u32; 2], pub color_filter: u32,
pub stride: u32, pub color_coding: dc1394color_coding_t,
pub data_depth: u32, pub id: u32,
pub allocated_image_bytes: u64,
pub total_bytes: u64,
pub padding_bytes: u32,
pub packet_size: u32,
pub packets_per_frame: u32,
pub timestamp: u64,
pub frames_behind: u32,
pub video_mode: dc1394video_mode_t,
pub allocated_image_bytes_backup: u64,
pub little_endian: dc1394bool_t,
pub data_in_padding: dc1394bool_t,
}
#[repr(C)]
pub struct dc1394video_modes_t {
pub num: u32,
pub modes: [dc1394video_mode_t; DC1394_VIDEO_MODE_NUM],
}
extern "C" {
pub fn dc1394_new() -> *mut dc1394_t;
pub fn dc1394_free(dc: *mut dc1394_t);
pub fn dc1394_camera_enumerate(
dc: *mut dc1394_t,
list: *mut *mut dc1394camera_list_t,
) -> dc1394error_t;
pub fn dc1394_camera_free_list(list: *mut dc1394camera_list_t);
pub fn dc1394_camera_new_unit(
dc: *mut dc1394_t,
guid: u64,
unit: c_int,
) -> *mut dc1394camera_t;
pub fn dc1394_camera_free(camera: *mut dc1394camera_t);
pub fn dc1394_camera_reset(camera: *mut dc1394camera_t) -> dc1394error_t;
pub fn dc1394_video_get_supported_modes(
camera: *mut dc1394camera_t,
modes: *mut dc1394video_modes_t,
) -> dc1394error_t;
pub fn dc1394_video_set_mode(
camera: *mut dc1394camera_t,
mode: dc1394video_mode_t,
) -> dc1394error_t;
pub fn dc1394_video_get_mode(
camera: *mut dc1394camera_t,
mode: *mut dc1394video_mode_t,
) -> dc1394error_t;
pub fn dc1394_video_set_iso_speed(
camera: *mut dc1394camera_t,
speed: dc1394speed_t,
) -> dc1394error_t;
pub fn dc1394_video_set_transmission(
camera: *mut dc1394camera_t,
pwr: dc1394switch_t,
) -> dc1394error_t;
pub fn dc1394_capture_setup(
camera: *mut dc1394camera_t,
num_dma_buffers: u32,
flags: u32,
) -> dc1394error_t;
pub fn dc1394_capture_dequeue(
camera: *mut dc1394camera_t,
policy: dc1394capture_policy_t,
frame: *mut *mut dc1394video_frame_t,
) -> dc1394error_t;
pub fn dc1394_capture_enqueue(
camera: *mut dc1394camera_t,
frame: *mut dc1394video_frame_t,
) -> dc1394error_t;
pub fn dc1394_capture_stop(camera: *mut dc1394camera_t) -> dc1394error_t;
pub fn dc1394_get_image_size_from_video_mode(
camera: *mut dc1394camera_t,
video_mode: dc1394video_mode_t,
width: *mut u32,
height: *mut u32,
) -> dc1394error_t;
pub fn dc1394_feature_set_value(
camera: *mut dc1394camera_t,
feature: dc1394feature_t,
value: u32,
) -> dc1394error_t;
pub fn dc1394_feature_get_value(
camera: *mut dc1394camera_t,
feature: dc1394feature_t,
value: *mut u32,
) -> dc1394error_t;
pub fn dc1394_feature_set_mode(
camera: *mut dc1394camera_t,
feature: dc1394feature_t,
mode: dc1394feature_mode_t,
) -> dc1394error_t;
}