1use libc::size_t;
2use linux_input::{input_event, input_absinfo};
3
4pub enum va_list {}
7
8pub enum libevdev { }
11#[derive(Copy, Clone)]
12#[repr(u32)]
13#[derive(Debug)]
14pub enum libevdev_read_flag {
15 LIBEVDEV_READ_FLAG_SYNC = 1,
16 LIBEVDEV_READ_FLAG_NORMAL = 2,
17 LIBEVDEV_READ_FLAG_FORCE_SYNC = 4,
18 LIBEVDEV_READ_FLAG_BLOCKING = 8,
19}
20#[derive(Copy, Clone)]
21#[repr(u32)]
22#[derive(Debug)]
23pub enum libevdev_log_priority {
24 LIBEVDEV_LOG_ERROR = 10,
25 LIBEVDEV_LOG_INFO = 20,
26 LIBEVDEV_LOG_DEBUG = 30,
27}
28pub type libevdev_log_func_t =
29 ::std::option::Option<unsafe extern "C" fn(priority:
30 libevdev_log_priority,
31 data: *mut ::libc::c_void,
32 file: *const ::libc::c_char,
33 line: ::libc::c_int,
34 func: *const ::libc::c_char,
35 format: *const ::libc::c_char,
36 args: va_list)>;
37pub type libevdev_device_log_func_t =
38 ::std::option::Option<unsafe extern "C" fn(dev: *const libevdev,
39 priority:
40 libevdev_log_priority,
41 data: *mut ::libc::c_void,
42 file: *const ::libc::c_char,
43 line: ::libc::c_int,
44 func: *const ::libc::c_char,
45 format: *const ::libc::c_char,
46 args: va_list)>;
47#[derive(Copy, Clone)]
48#[repr(u32)]
49#[derive(Debug)]
50pub enum libevdev_grab_mode { LIBEVDEV_GRAB = 3, LIBEVDEV_UNGRAB = 4, }
51#[derive(Copy, Clone)]
52#[repr(u32)]
53#[derive(Debug)]
54pub enum libevdev_read_status {
55 LIBEVDEV_READ_STATUS_SUCCESS = 0,
56 LIBEVDEV_READ_STATUS_SYNC = 1,
57}
58#[derive(Copy, Clone)]
59#[repr(u32)]
60#[derive(Debug)]
61pub enum libevdev_led_value { LIBEVDEV_LED_ON = 3, LIBEVDEV_LED_OFF = 4, }
62#[link(name = "evdev")]
63extern "C" {
64 pub fn libevdev_new() -> *mut libevdev;
65 pub fn libevdev_new_from_fd(fd: ::libc::c_int, dev: *mut *mut libevdev)
66 -> ::libc::c_int;
67 pub fn libevdev_free(dev: *mut libevdev);
68 pub fn libevdev_set_log_function(logfunc: libevdev_log_func_t,
69 data: *mut ::libc::c_void);
70 pub fn libevdev_set_log_priority(priority: libevdev_log_priority);
71 pub fn libevdev_get_log_priority() -> libevdev_log_priority;
72 pub fn libevdev_set_device_log_function(dev: *mut libevdev,
73 logfunc:
74 libevdev_device_log_func_t,
75 priority: libevdev_log_priority,
76 data: *mut ::libc::c_void);
77 pub fn libevdev_grab(dev: *mut libevdev, grab: libevdev_grab_mode)
78 -> ::libc::c_int;
79 pub fn libevdev_set_fd(dev: *mut libevdev, fd: ::libc::c_int)
80 -> ::libc::c_int;
81 pub fn libevdev_change_fd(dev: *mut libevdev, fd: ::libc::c_int)
82 -> ::libc::c_int;
83 pub fn libevdev_get_fd(dev: *const libevdev) -> ::libc::c_int;
84 pub fn libevdev_next_event(dev: *mut libevdev, flags: ::libc::c_uint,
85 ev: *mut input_event) -> ::libc::c_int;
86 pub fn libevdev_has_event_pending(dev: *mut libevdev) -> ::libc::c_int;
87 pub fn libevdev_get_name(dev: *const libevdev) -> *const ::libc::c_char;
88 pub fn libevdev_set_name(dev: *mut libevdev, name: *const ::libc::c_char);
89 pub fn libevdev_get_phys(dev: *const libevdev) -> *const ::libc::c_char;
90 pub fn libevdev_set_phys(dev: *mut libevdev, phys: *const ::libc::c_char);
91 pub fn libevdev_get_uniq(dev: *const libevdev) -> *const ::libc::c_char;
92 pub fn libevdev_set_uniq(dev: *mut libevdev, uniq: *const ::libc::c_char);
93 pub fn libevdev_get_id_product(dev: *const libevdev) -> ::libc::c_int;
94 pub fn libevdev_set_id_product(dev: *mut libevdev,
95 product_id: ::libc::c_int);
96 pub fn libevdev_get_id_vendor(dev: *const libevdev) -> ::libc::c_int;
97 pub fn libevdev_set_id_vendor(dev: *mut libevdev,
98 vendor_id: ::libc::c_int);
99 pub fn libevdev_get_id_bustype(dev: *const libevdev) -> ::libc::c_int;
100 pub fn libevdev_set_id_bustype(dev: *mut libevdev,
101 bustype: ::libc::c_int);
102 pub fn libevdev_get_id_version(dev: *const libevdev) -> ::libc::c_int;
103 pub fn libevdev_set_id_version(dev: *mut libevdev,
104 version: ::libc::c_int);
105 pub fn libevdev_get_driver_version(dev: *const libevdev) -> ::libc::c_int;
106 pub fn libevdev_has_property(dev: *const libevdev, prop: ::libc::c_uint)
107 -> ::libc::c_int;
108 pub fn libevdev_enable_property(dev: *mut libevdev, prop: ::libc::c_uint)
109 -> ::libc::c_int;
110 pub fn libevdev_has_event_type(dev: *const libevdev,
111 type_: ::libc::c_uint) -> ::libc::c_int;
112 pub fn libevdev_has_event_code(dev: *const libevdev,
113 type_: ::libc::c_uint,
114 code: ::libc::c_uint) -> ::libc::c_int;
115 pub fn libevdev_get_abs_minimum(dev: *const libevdev,
116 code: ::libc::c_uint) -> ::libc::c_int;
117 pub fn libevdev_get_abs_maximum(dev: *const libevdev,
118 code: ::libc::c_uint) -> ::libc::c_int;
119 pub fn libevdev_get_abs_fuzz(dev: *const libevdev, code: ::libc::c_uint)
120 -> ::libc::c_int;
121 pub fn libevdev_get_abs_flat(dev: *const libevdev, code: ::libc::c_uint)
122 -> ::libc::c_int;
123 pub fn libevdev_get_abs_resolution(dev: *const libevdev,
124 code: ::libc::c_uint) -> ::libc::c_int;
125 pub fn libevdev_get_abs_info(dev: *const libevdev, code: ::libc::c_uint)
126 -> *const input_absinfo;
127 pub fn libevdev_get_event_value(dev: *const libevdev,
128 type_: ::libc::c_uint,
129 code: ::libc::c_uint) -> ::libc::c_int;
130 pub fn libevdev_set_event_value(dev: *mut libevdev, type_: ::libc::c_uint,
131 code: ::libc::c_uint,
132 value: ::libc::c_int) -> ::libc::c_int;
133 pub fn libevdev_fetch_event_value(dev: *const libevdev,
134 type_: ::libc::c_uint,
135 code: ::libc::c_uint,
136 value: *mut ::libc::c_int)
137 -> ::libc::c_int;
138 pub fn libevdev_get_slot_value(dev: *const libevdev, slot: ::libc::c_uint,
139 code: ::libc::c_uint) -> ::libc::c_int;
140 pub fn libevdev_set_slot_value(dev: *mut libevdev, slot: ::libc::c_uint,
141 code: ::libc::c_uint, value: ::libc::c_int)
142 -> ::libc::c_int;
143 pub fn libevdev_fetch_slot_value(dev: *const libevdev,
144 slot: ::libc::c_uint,
145 code: ::libc::c_uint,
146 value: *mut ::libc::c_int)
147 -> ::libc::c_int;
148 pub fn libevdev_get_num_slots(dev: *const libevdev) -> ::libc::c_int;
149 pub fn libevdev_get_current_slot(dev: *const libevdev) -> ::libc::c_int;
150 pub fn libevdev_set_abs_minimum(dev: *mut libevdev, code: ::libc::c_uint,
151 min: ::libc::c_int);
152 pub fn libevdev_set_abs_maximum(dev: *mut libevdev, code: ::libc::c_uint,
153 max: ::libc::c_int);
154 pub fn libevdev_set_abs_fuzz(dev: *mut libevdev, code: ::libc::c_uint,
155 fuzz: ::libc::c_int);
156 pub fn libevdev_set_abs_flat(dev: *mut libevdev, code: ::libc::c_uint,
157 flat: ::libc::c_int);
158 pub fn libevdev_set_abs_resolution(dev: *mut libevdev,
159 code: ::libc::c_uint,
160 resolution: ::libc::c_int);
161 pub fn libevdev_set_abs_info(dev: *mut libevdev, code: ::libc::c_uint,
162 abs: *const input_absinfo);
163 pub fn libevdev_enable_event_type(dev: *mut libevdev,
164 type_: ::libc::c_uint) -> ::libc::c_int;
165 pub fn libevdev_disable_event_type(dev: *mut libevdev,
166 type_: ::libc::c_uint)
167 -> ::libc::c_int;
168 pub fn libevdev_enable_event_code(dev: *mut libevdev,
169 type_: ::libc::c_uint,
170 code: ::libc::c_uint,
171 data: *const ::libc::c_void)
172 -> ::libc::c_int;
173 pub fn libevdev_disable_event_code(dev: *mut libevdev,
174 type_: ::libc::c_uint,
175 code: ::libc::c_uint) -> ::libc::c_int;
176 pub fn libevdev_kernel_set_abs_info(dev: *mut libevdev,
177 code: ::libc::c_uint,
178 abs: *const input_absinfo)
179 -> ::libc::c_int;
180 pub fn libevdev_kernel_set_led_value(dev: *mut libevdev,
181 code: ::libc::c_uint,
182 value: libevdev_led_value)
183 -> ::libc::c_int;
184 pub fn libevdev_kernel_set_led_values(dev: *mut libevdev, ...)
185 -> ::libc::c_int;
186 pub fn libevdev_set_clock_id(dev: *mut libevdev, clockid: ::libc::c_int)
187 -> ::libc::c_int;
188 pub fn libevdev_event_is_type(ev: *const input_event,
189 type_: ::libc::c_uint) -> ::libc::c_int;
190 pub fn libevdev_event_is_code(ev: *const input_event,
191 type_: ::libc::c_uint, code: ::libc::c_uint)
192 -> ::libc::c_int;
193 pub fn libevdev_event_type_get_name(type_: ::libc::c_uint)
194 -> *const ::libc::c_char;
195 pub fn libevdev_event_code_get_name(type_: ::libc::c_uint,
196 code: ::libc::c_uint)
197 -> *const ::libc::c_char;
198 pub fn libevdev_property_get_name(prop: ::libc::c_uint)
199 -> *const ::libc::c_char;
200 pub fn libevdev_event_type_get_max(type_: ::libc::c_uint)
201 -> ::libc::c_int;
202 pub fn libevdev_event_type_from_name(name: *const ::libc::c_char)
203 -> ::libc::c_int;
204 pub fn libevdev_event_type_from_name_n(name: *const ::libc::c_char,
205 len: size_t) -> ::libc::c_int;
206 pub fn libevdev_event_code_from_name(type_: ::libc::c_uint,
207 name: *const ::libc::c_char)
208 -> ::libc::c_int;
209 pub fn libevdev_event_code_from_name_n(type_: ::libc::c_uint,
210 name: *const ::libc::c_char,
211 len: size_t) -> ::libc::c_int;
212 pub fn libevdev_property_from_name(name: *const ::libc::c_char)
213 -> ::libc::c_int;
214 pub fn libevdev_property_from_name_n(name: *const ::libc::c_char,
215 len: size_t) -> ::libc::c_int;
216 pub fn libevdev_get_repeat(dev: *const libevdev,
217 delay: *mut ::libc::c_int,
218 period: *mut ::libc::c_int) -> ::libc::c_int;
219}