|
1 | 1 | Libsuinput |
2 | 2 | ========== |
3 | 3 |
|
4 | | -Uinput allows attaching user-space device drivers into the Linux |
5 | | -kernel. However, it is pretty low level from the application |
6 | | -developers perspective. This library provides a set of helper |
7 | | -functions for making the uinput usage easier. |
| 4 | +Uinput is a Linux kernel module which allows attaching user-space |
| 5 | +device drivers into the Linux kernel. However, it is pretty low level |
| 6 | +from the application developers perspective. This library provides a |
| 7 | +set of helper functions for making the usage of uinput easier. |
| 8 | + |
| 9 | +Usage example |
| 10 | +------------- |
| 11 | + |
| 12 | +Create and use a new uinput device with key-capabilities: |
| 13 | + |
| 14 | + int uinput_fd; |
| 15 | + int keys[] = {KEY_E, KEY_H, KEY_L, KEY_O}; |
| 16 | + struct uinput_user_dev user_dev; |
| 17 | + |
| 18 | + memset(&user_dev, 0, sizeof(struct uinput_user_dev)); |
| 19 | + strcpy(user_dev.name, "libsuinput-example-keyboard"); |
| 20 | + |
| 21 | + uinput_fd = suinput_open(); |
| 22 | + |
| 23 | + suinput_set_capabilities(uinput_fd, EV_KEY, keys, 4); |
| 24 | + |
| 25 | + suinput_create(uinput_fd, &user_dev); |
| 26 | + |
| 27 | + suinput_write(uinput_fd, EV_KEY, KEY_H, 1); /* Press. */ |
| 28 | + suinput_syn(uinput_fd); /* "Flushes" events written so far. */ |
| 29 | + |
| 30 | + suinput_write(uinput_fd, EV_KEY, KEY_H, 0); /* Release */ |
| 31 | + suinput_syn(uinput_fd); |
| 32 | + |
| 33 | + suinput_write(uinput_fd, EV_KEY, KEY_E, 1); |
| 34 | + suinput_syn(uinput_fd); |
| 35 | + |
| 36 | + suinput_write(uinput_fd, EV_KEY, KEY_E, 0); |
| 37 | + suinput_syn(uinput_fd); |
| 38 | + |
| 39 | + suinput_write(uinput_fd, EV_KEY, KEY_L, 1); |
| 40 | + suinput_syn(uinput_fd); |
| 41 | + |
| 42 | + suinput_write(uinput_fd, EV_KEY, KEY_L, 0); |
| 43 | + suinput_syn(uinput_fd); |
| 44 | + |
| 45 | + suinput_write(uinput_fd, EV_KEY, KEY_L, 1); |
| 46 | + suinput_syn(uinput_fd); |
| 47 | + |
| 48 | + suinput_write(uinput_fd, EV_KEY, KEY_L, 0); |
| 49 | + suinput_syn(uinput_fd); |
| 50 | + |
| 51 | + suinput_write(uinput_fd, EV_KEY, KEY_O, 1); |
| 52 | + suinput_syn(uinput_fd); |
| 53 | + |
| 54 | + suinput_write(uinput_fd, EV_KEY, KEY_O, 0); |
| 55 | + suinput_syn(uinput_fd); |
| 56 | + |
| 57 | + suinput_destroy(uinput_fd); |
8 | 58 |
|
9 | 59 | General information |
10 | 60 | ------------------- |
11 | 61 |
|
12 | | -- Author: [Tuomas Jorma Juhani Räsänen](http://tjjr.fi) <tuomas.rasanen@tjjr.fi> |
13 | | -- Homepage: <http://tjjr.fi/projects/libsuinput> |
| 62 | +- Author: Tuomas Jorma Juhani Räsänen <tuomas.rasanen@tjjr.fi> |
| 63 | +- Homepage: <http://tjjr.fi/sw/libsuinput> |
14 | 64 | - License: GPLv3+ (see COPYING for details) |
15 | 65 | - Version: 0.4 |
16 | | -- Bugs: <http://bugs.launchpad.net/libsuinput> |
17 | | -- Tarball: <http://launchpad.net/libsuinput/trunk/0.4/+download/libsuinput-0.4.tar.gz> |
18 | 66 | - Repository: <http://github.com/tuos/libsuinput> |
| 67 | +- Bugs: <http://github.com/tuos/libsuinput/issues> |
| 68 | +- Tarballs: <http://github.com/tuos/libsuinput/downloads> |
19 | 69 |
|
20 | 70 | Build requirements |
21 | 71 | ------------------ |
|
0 commit comments