libevdev_sys/
evdev.rs

1use libc::size_t;
2use linux_input::{input_event, input_absinfo};
3
4/// AFAIK there's no useful and officially supported way a Rust function can accept a C `va_list`,
5/// so you won't be able to use a custom logging function.
6pub enum va_list {}
7
8/* automatically generated by rust-bindgen */
9
10pub 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}