1
2pub const STATUS_LINUXTRACK_OK: Status = 0;
3pub const STATUS_INITIALIZING: Status = 1;
4pub const STATUS_RUNNING: Status = 2;
5pub const STATUS_PAUSED: Status = 3;
6pub const STATUS_STOPPED: Status = 4;
7pub const STATUS_ERR_NOT_INITIALIZED: Status = -1;
8pub const STATUS_ERR_SYMBOL_LOOKUP: Status = -2;
9pub const STATUS_ERR_NO_CONFIG: Status = -3;
10pub const STATUS_ERR_NOT_FOUND: Status = -4;
11pub const STATUS_ERR_PROCESSING_FRAME: Status = -5;
12pub type Status = ::std::os::raw::c_int;
13
14#[repr(C)]
15#[derive(Debug, Copy, Clone)]
16pub struct Pose {
17 pub pitch: f32,
18 pub yaw: f32,
19 pub roll: f32,
20 pub tx: f32,
21 pub ty: f32,
22 pub tz: f32,
23 pub counter: u32,
24 pub resolution_x: u32,
25 pub resolution_y: u32,
26 pub raw_pitch: f32,
27 pub raw_yaw: f32,
28 pub raw_roll: f32,
29 pub raw_tx: f32,
30 pub raw_ty: f32,
31 pub raw_tz: f32,
32 pub status: u8,
33}
34
35extern "C" {
36 pub fn linuxtrack_init(cust_section: *const ::std::os::raw::c_char) -> Status;
37 pub fn linuxtrack_shutdown() -> Status;
38 pub fn linuxtrack_suspend() -> Status;
39 pub fn linuxtrack_wakeup() -> Status;
40 pub fn linuxtrack_recenter() -> Status;
41 pub fn linuxtrack_explain(err: Status) -> *const ::std::os::raw::c_char;
42 pub fn linuxtrack_get_tracking_state() -> Status;
43 pub fn linuxtrack_get_pose(heading: *mut f32,
44 pitch: *mut f32,
45 roll: *mut f32,
46 tx: *mut f32,
47 ty: *mut f32,
48 tz: *mut f32,
49 counter: *mut u32)
50 -> ::std::os::raw::c_int;
51 pub fn linuxtrack_get_pose_full(pose: *mut Pose,
52 blobs: *mut f32,
53 num_blobs: ::std::os::raw::c_int,
54 blobs_read: *mut ::std::os::raw::c_int)
55 -> ::std::os::raw::c_int;
56 pub fn linuxtrack_get_abs_pose(heading: *mut f32,
57 pitch: *mut f32,
58 roll: *mut f32,
59 tx: *mut f32,
60 ty: *mut f32,
61 tz: *mut f32,
62 counter: *mut u32)
63 -> ::std::os::raw::c_int;
64 pub fn linuxtrack_request_frames() -> Status;
65 pub fn linuxtrack_get_frame(req_width: *mut ::std::os::raw::c_int,
66 req_height: *mut ::std::os::raw::c_int,
67 buf_size: usize,
68 buffer: *mut u8)
69 -> ::std::os::raw::c_int;
70 pub fn linuxtrack_notification_on() -> Status;
71 pub fn linuxtrack_get_notify_pipe() -> ::std::os::raw::c_int;
72
73 pub fn linuxtrack_wait(timeout: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
75}