Name | Date | Size | ||
---|---|---|---|---|
.. | 25-Oct-2024 | 4 KiB | ||
.gitattributes | H A D | 25-Oct-2024 | 631 | |
aclocal.m4 | H A D | 25-Oct-2024 | 67.2 KiB | |
build-aux/ | H | 25-Oct-2024 | 4 KiB | |
BUILD.gn | H A D | 25-Oct-2024 | 678 | |
bundle.json | H A D | 25-Oct-2024 | 1.4 KiB | |
config.h.in | H A D | 25-Oct-2024 | 4.8 KiB | |
configure | H A D | 25-Oct-2024 | 474.3 KiB | |
configure.ac | H A D | 25-Oct-2024 | 4.4 KiB | |
COPYING | H A D | 25-Oct-2024 | 1.5 KiB | |
doc/ | H | 25-Oct-2024 | 4 KiB | |
export_include/libevdev/ | H | 25-Oct-2024 | 4 KiB | |
include/ | H | 25-Oct-2024 | 4 KiB | |
libevdev/ | H | 25-Oct-2024 | 4 KiB | |
libevdev.pc.in | H A D | 25-Oct-2024 | 227 | |
m4/ | H | 25-Oct-2024 | 4 KiB | |
Makefile.am | H A D | 25-Oct-2024 | 386 | |
Makefile.in | H A D | 25-Oct-2024 | 28.8 KiB | |
meson.build | H A D | 25-Oct-2024 | 9.1 KiB | |
meson_options.txt | H A D | 25-Oct-2024 | 370 | |
OAT.xml | H A D | 25-Oct-2024 | 6.4 KiB | |
patch/ | H | 25-Oct-2024 | 4 KiB | |
README.md | H A D | 25-Oct-2024 | 867 | |
README.OpenSource | H A D | 25-Oct-2024 | 530 | |
README_zh.md | H A D | 25-Oct-2024 | 2.8 KiB | |
test/ | H | 25-Oct-2024 | 4 KiB | |
tools/ | H | 25-Oct-2024 | 4 KiB |
README.md
1libevdev - wrapper library for evdev input devices 2================================================== 3 4libevdev is a wrapper library for evdev devices. it moves the common 5tasks when dealing with evdev devices into a library and provides a library 6interface to the callers, thus avoiding erroneous ioctls, etc. 7 8https://gitlab.freedesktop.org/libevdev/libevdev.git 9 10Go here for the API documentation: 11http://www.freedesktop.org/software/libevdev/doc/latest/ 12 13File bugs in the freedesktop.org GitLab instance: 14https://gitlab.freedesktop.org/libevdev/libevdev/issues/ 15 16Patches should be submitted as merge requests in the GitLab instance: 17https://gitlab.freedesktop.org/libevdev/libevdev/merge_requests/ 18 19Questions and general comments should be submitted to the 20input-tools@lists.freedesktop.org mailing list: 21http://lists.freedesktop.org/mailman/listinfo/input-tools 22
README.OpenSource
1[ 2 { 3 "Name":"openEuler:libevdev", 4 "License":"MIT License", 5 "License File":"COPYING", 6 "Version Number":"1.13.0-1.oe2203sp3", 7 "Owner":"gaoshangqi1@huawei.com", 8 "Upstream URL":"https://repo.openeuler.org/openEuler-22.03-LTS-SP3/source/Packages/libevdev-1.13.0-1.oe2203sp3.src.rpm", 9 "Description": "libevdev is a wrapper library for evdev devices. it moves the common tasks when dealing with evdev devices into a library and provides a library interface to the callers, thus avoiding erroneous ioctls, et" 10 } 11] 12
README_zh.md
1# libevdev - wrapper library for evdev input devices 2 3libevdev是evdev设备的包装库。它将处理evdev设备时的常见任务移动到库中,并向调用方提供库接口,从而避免错误的ioctl等。 4 5最终目标是libevdev包装了evdev设备可用的所有ioctl,因此不需要直接访问。 6 7 8## 目录结构 9 10``` 11README.md 英文说明 12README_zh.md 中文说明 13export_include/libevdev/ API定义 14include/ 引用头文件 15libevdev/ 封装层实现 16README.OpenSource 开源说明 17``` 18 19## OpenHarmony如何集成libevdev 20### 1.头文件引入 21```c 22#define EVDEV_H 23#include <libevdev/libevdev.h> 24``` 25### 2.BUILD.gn添加引用 26```c 27public_deps += ["//third_party/libevdev:libevdev"] 28``` 29### 3.调用libevdev函数过程举例 30```c 31// 下面是一个简单的示例,展示了如何使用libevdev。此示例打开一个设备,检查相对坐标和鼠标左键,如果找到,则监听设备并打印输入事件 32 33// 打开一个输入设备 34struct libevdev *dev = NULL; 35int fd; 36int rc = 1; 37 38fd = open("/dev/input/event0", O_RDONLY|O_NONBLOCK); 39rc = libevdev_new_from_fd(fd, &dev); 40if (rc < 0) { 41 fprintf(stderr, "Failed to init libevdev (%s)\n", strerror(-rc)); 42 exit(1); 43} 44// 打印输入设备信息 45printf("Input device name: \"%s\"\n", libevdev_get_name(dev)); 46printf("Input device ID: bus %#x vendor %#x product %#x\n", 47 libevdev_get_id_bustype(dev), 48 libevdev_get_id_vendor(dev), 49 libevdev_get_id_product(dev)); 50// 检查相对坐标和鼠标左键 51if (!libevdev_has_event_type(dev, EV_REL) || 52 !libevdev_has_event_code(dev, EV_KEY, BTN_LEFT)) { 53 printf("This device does not look like a mouse\n"); 54 exit(1); 55} 56 57 // 监听该设备并打印输入事件 58do { 59 struct input_event ev; 60 rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev); 61 if (rc == 0) 62 printf("Event: %s %s %d\n", 63 libevdev_event_type_get_name(ev.type), 64 libevdev_event_code_get_name(ev.type, ev.code), 65 ev.value); 66} while (rc == 1 || rc == 0 || rc == -EAGAIN); 67``` 68 69## libevdev使用文档 70 71代码仓库 https://gitlab.freedesktop.org/libevdev/libevdev.git 72 73API官方文档 http://www.freedesktop.org/software/libevdev/doc/latest/ 74 75API详细定义 https://www.freedesktop.org/software/libevdev/doc/latest/libevdev_8h.html 76 77补丁包 https://gitlab.freedesktop.org/libevdev/libevdev/merge_requests/ 78 79Bug上报 https://gitlab.freedesktop.org/libevdev/libevdev/issues/ 80 81问题反馈 http://lists.freedesktop.org/mailman/listinfo/input-tools 82 83 84## License 85 86见 [LICENSE](MITLicense). 87 88--- 89 90