changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/ffi/evdev/dev.lisp

changeset 684: 29fe829a7ac3
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 29 Sep 2024 00:31:24 -0400
permissions: -rw-r--r--
description: evdev and io/kbd
1 ;;; dev.lisp --- Event Device FFI
2 
3 ;;
4 
5 ;;; Code:
6 (in-package :evdev)
7 
8 (define-alien-enum (libevdev-read-status unsigned-char)
9  :success 0
10  :sync 1)
11 
12 (define-alien-routine libevdev-next-event int
13  (dev (* libevdev))
14  (flags unsigned-int)
15  (ev (* input-event)))
16 
17 (define-alien-routine libevdev-has-event-pending int
18  (dev (* libevdev)))
19 
20 (define-alien-routine libevdev-get-name c-string
21  (dev (* libevdev)))
22 
23 (define-alien-routine libevdev-set-name void
24  (dev (* libevdev))
25  (name c-string))
26 
27 (define-alien-routine libevdev-get-phys c-string
28  (dev (* libevdev)))
29 
30 (define-alien-routine libevdev-set-phys void
31  (dev (* libevdev))
32  (phys c-string))
33 
34 (define-alien-routine libevdev-get-uniq c-string
35  (dev (* libevdev)))
36 
37 (define-alien-routine libevdev-set-uniq void
38  (dev (* libevdev))
39  (uniq c-string))
40 
41 (define-alien-routine libevdev-get-id-product int
42  (dev (* libevdev)))
43 
44 (define-alien-routine libevdev-set-id-product void
45  (dev (* libevdev))
46  (product-id int))
47 
48 (define-alien-routine libevdev-get-id-vendor int
49  (dev (* libevdev)))
50 
51 (define-alien-routine libevdev-set-id-vendor void
52  (dev (* libevdev))
53  (vendor-id int))
54 
55 (define-alien-routine libevdev-get-id-bustype int
56  (dev (* libevdev)))
57 
58 (define-alien-routine libevdev-set-id-bustype void
59  (dev (* libevdev))
60  (bustype int))
61 
62 (define-alien-routine libevdev-get-id-version int
63  (dev (* libevdev)))
64 
65 (define-alien-routine libevdev-set-id-version void
66  (dev (* libevdev))
67  (version int))
68 
69 (define-alien-routine libevdev-get-driver-version int
70  (dev (* libevdev)))
71 
72 (define-alien-routine libevdev-has-property int
73  (dev (* libevdev))
74  (prop unsigned-int))
75 
76 (define-alien-routine libevdev-enable-property int
77  (dev (* libevdev))
78  (prop unsigned-int))
79 
80 (define-alien-routine libevdev-disable-property int
81  (dev (* libevdev))
82  (prop unsigned-int))
83 
84 (define-alien-routine libevdev-has-event-type int
85  (dev (* libevdev))
86  (type unsigned-int))
87 
88 (define-alien-routine libevdev-has-event-code int
89  (dev (* libevdev))
90  (type unsigned-int)
91  (code unsigned-int))
92 
93 (define-alien-routine libevdev-get-abs-minimum int
94  (dev (* libevdev))
95  (code unsigned-int))
96 
97 (define-alien-routine libevdev-get-abs-maximum int
98  (dev (* libevdev))
99  (code unsigned-int))
100 
101 (define-alien-routine libevdev-get-abs-fuzz int
102  (dev (* libevdev))
103  (code unsigned-int))
104 
105 (define-alien-routine libevdev-get-abs-resolution int
106  (dev (* libevdev))
107  (code unsigned-int))
108 
109 (define-alien-routine libevdev-get-abs-info (* input-absinfo)
110  (dev (* libevdev))
111  (code unsigned-int))
112 
113 (define-alien-routine libevdev-get-event-value int
114  (dev (* libevdev))
115  (type unsigned-int)
116  (code unsigned-int))
117 
118 (define-alien-routine libevdev-set-event-value int
119  (dev (* libevdev))
120  (type unsigned-int)
121  (code unsigned-int)
122  (value int))
123 
124 (define-alien-routine libevdev-fetch-event-value int
125  (dev (* libevdev))
126  (type unsigned-int)
127  (code unsigned-int)
128  (value (* int)))
129 
130 (define-alien-routine libevdev-get-slot-value int
131  (dev (* libevdev))
132  (slot unsigned-int)
133  (code unsigned-int))
134 
135 (define-alien-routine libevdev-set-slot-value int
136  (dev (* libevdev))
137  (slot unsigned-int)
138  (code unsigned-int)
139  (value int))
140 
141 (define-alien-routine libevdev-fetch-slot-value int
142  (dev (* libevdev))
143  (slot unsigned-int)
144  (code unsigned-int)
145  (value (* int)))
146 
147 (define-alien-routine libevdev-get-num-slots int
148  (dev (* libevdev)))
149 
150 (define-alien-routine libevdev-get-current-slot int
151  (dev (* libevdev)))
152 
153 (define-alien-routine libevdev-set-abs-minimum void
154  (dev (* libevdev))
155  (code unsigned-int)
156  (val int))
157 
158 (define-alien-routine libevdev-set-abs-maximum void
159  (dev (* libevdev))
160  (code unsigned-int)
161  (val int))
162 
163 (define-alien-routine libevdev-set-abs-fuzz void
164  (dev (* libevdev))
165  (code unsigned-int)
166  (val int))
167 
168 (define-alien-routine libevdev-set-abs-flat void
169  (dev (* libevdev))
170  (code unsigned-int)
171  (val int))
172 
173 (define-alien-routine libevdev-set-abs-resolution void
174  (dev (* libevdev))
175  (code unsigned-int)
176  (val int))
177 
178 (define-alien-routine libevdev-set-abs-info void
179  (dev (* libevdev))
180  (code unsigned-int)
181  (abs (* input-absinfo)))
182 
183 (define-alien-routine libevdev-enable-event-type int
184  (dev (* libevdev))
185  (type unsigned-int))
186 
187 (define-alien-routine libevdev-disable-event-type int
188  (dev (* libevdev))
189  (type unsigned-int))
190 
191 (define-alien-routine libevdev-enable-event-code int
192  (dev (* libevdev))
193  (type unsigned-int)
194  (code unsigned-int)
195  (data (* t)))
196 
197 (define-alien-routine libevdev-disable-event-code int
198  (dev (* libevdev))
199  (type unsigned-int)
200  (code unsigned-int))
201 
202 (define-alien-routine libevdev-kernel-set-abs-info int
203  (dev (* libevdev))
204  (code unsigned-int)
205  (abs (* input-absinfo)))
206 
207 (define-alien-enum (libevdev-led-value unsigned-char)
208  :on 3
209  :off 4)
210 
211 (define-alien-routine libevdev-kernel-set-led-value int
212  (dev (* libevdev))
213  (code unsigned-int)
214  (value libevdev-led-value))
215 
216 ;; (define-alien-routine libevdev-kernel-set-led-values int
217 ;; (dev (* libevdev)))
218 
219 (define-alien-routine libevdev-set-clock-id int
220  (dev (* libevdev))
221  (clockid int))
222 
223 (define-alien-routine libevdev-event-is-type int
224  (ev (* input-event))
225  (type unsigned-int))
226 
227 (define-alien-routine libevdev-event-is-code int
228  (ev (* input-event))
229  (type unsigned-int)
230  (code unsigned-int))
231 
232 (define-alien-routine libevdev-event-type-get-name c-string
233  (type unsigned-int))
234 
235 (define-alien-routine libevdev-event-code-get-name c-string
236  (type unsigned-int)
237  (code unsigned-int))
238 
239 (define-alien-routine libevdev-event-value-get-name c-string
240  (type unsigned-int)
241  (code unsigned-int)
242  (value int))
243 
244 (define-alien-routine libevdev-property-get-name c-string
245  (prop unsigned-int))
246 
247 (define-alien-routine libevdev-event-type-get-max int
248  (type unsigned-int))
249 
250 (define-alien-routine libevdev-event-type-from-name int
251  (name c-string))
252 
253 (define-alien-routine libevdev-event-type-from-name-n int
254  (name c-string)
255  (len size-t))
256 
257 (define-alien-routine libevdev-event-code-from-name int
258  (type unsigned-int)
259  (name c-string))
260 
261 (define-alien-routine libevdev-event-code-from-name-n int
262  (type unsigned-int)
263  (name c-string)
264  (len size-t))
265 
266 (define-alien-routine libevdev-event-value-from-name int
267  (type unsigned-int)
268  (code unsigned-int)
269  (name c-string))
270 
271 (define-alien-routine libevdev-event-type-from-code-name int
272  (name c-string))
273 
274 (define-alien-routine libevdev-event-type-from-code-name-n int
275  (name c-string)
276  (len size-t))
277 
278 (define-alien-routine libevdev-event-code-from-code-name int
279  (name c-string))
280 
281 (define-alien-routine libevdev-event-code-from-code-name-n int
282  (name c-string)
283  (len size-t))
284 
285 (define-alien-routine libevdev-event-value-from-name-n int
286  (type unsigned-int)
287  (code unsigned-int)
288  (name c-string)
289  (len size-t))
290 
291 (define-alien-routine libevdev-property-from-name int
292  (name c-string))
293 
294 (define-alien-routine libevdev-property-from-name-n int
295  (name c-string)
296  (len size-t))
297 
298 (define-alien-routine libevdev-get-repeat int
299  (dev (* libevdev))
300  (delay (* int))
301  (period (* int)))