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