Name Date Size

..25-Oct-20244 KiB

.gitattributesH A D25-Oct-2024631

aclocal.m4H A D25-Oct-202467.2 KiB

build-aux/H25-Oct-20244 KiB

BUILD.gnH A D25-Oct-2024678

bundle.jsonH A D25-Oct-20241.4 KiB

config.h.inH A D25-Oct-20244.8 KiB

configureH A D25-Oct-2024474.3 KiB

configure.acH A D25-Oct-20244.4 KiB

COPYINGH A D25-Oct-20241.5 KiB

doc/H25-Oct-20244 KiB

export_include/libevdev/H25-Oct-20244 KiB

include/H25-Oct-20244 KiB

libevdev/H25-Oct-20244 KiB

libevdev.pc.inH A D25-Oct-2024227

m4/H25-Oct-20244 KiB

Makefile.amH A D25-Oct-2024386

Makefile.inH A D25-Oct-202428.8 KiB

meson.buildH A D25-Oct-20249.1 KiB

meson_options.txtH A D25-Oct-2024370

OAT.xmlH A D25-Oct-20246.4 KiB

patch/H25-Oct-20244 KiB

README.mdH A D25-Oct-2024867

README.OpenSourceH A D25-Oct-2024530

README_zh.mdH A D25-Oct-20242.8 KiB

test/H25-Oct-20244 KiB

tools/H25-Oct-20244 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