1
0
mirror of https://github.com/Yours3lf/rpi-vk-driver.git synced 2025-01-20 12:52:15 +01:00
rpi-vk-driver/test/inputTest/inputTest.cpp
2020-05-11 19:45:46 +01:00

69 lines
1.3 KiB
C++

#include <iostream>
#include <vector>
#include <algorithm>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <libinput.h>
#include <libudev.h>
static int open_restricted(const char *path, int flags, void *user_data)
{
int fd = open(path, flags);
return fd < 0 ? -errno : fd;
}
static void close_restricted(int fd, void *user_data)
{
close(fd);
}
const static struct libinput_interface interface = {
.open_restricted = open_restricted,
.close_restricted = close_restricted,
};
int main(void) {
struct libinput *li;
struct libinput_event *event;
struct udev* udev;
udev = udev_new();
li = libinput_udev_create_context(&interface, NULL, udev);
libinput_udev_assign_seat(li, "seat0");
libinput_dispatch(li);
while (true)
{
event = libinput_get_event(li);
if(event)
{
uint32_t type = libinput_event_get_type(event);
struct libinput_device* dev = libinput_event_get_device(event);
// handle the event here
std::cout << "Event type: " << type << std::endl;
switch(type)
{
case LIBINPUT_EVENT_DEVICE_ADDED:
{
std::cout << "Device name: " << libinput_device_get_name(dev) << std::endl;
break;
}
};
libinput_event_destroy(event);
libinput_dispatch(li);
}
}
libinput_unref(li);
return 0;
}