mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-05-06 04:28:22 +02:00
evdev: use a separate function for adding devices
Adds new function evdev_add_devices for adding udev devices. No functional changes. Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
This commit is contained in:
parent
47dfaffa0e
commit
0b85ddac4c
1 changed files with 27 additions and 19 deletions
|
|
@ -434,6 +434,32 @@ device_removed(struct udev_device *udev_device, struct evdev_input *master)
|
||||||
fprintf(stderr, "evdev input device: removed: %s\n", devnode);
|
fprintf(stderr, "evdev input device: removed: %s\n", devnode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
evdev_add_devices(struct udev *udev, struct wlsc_input_device *input_base)
|
||||||
|
{
|
||||||
|
struct evdev_input *input = (struct evdev_input *) input_base;
|
||||||
|
struct udev_enumerate *e;
|
||||||
|
struct udev_list_entry *entry;
|
||||||
|
struct udev_device *device;
|
||||||
|
const char *path;
|
||||||
|
|
||||||
|
e = udev_enumerate_new(udev);
|
||||||
|
udev_enumerate_add_match_subsystem(e, "input");
|
||||||
|
udev_enumerate_scan_devices(e);
|
||||||
|
udev_list_entry_foreach(entry, udev_enumerate_get_list_entry(e)) {
|
||||||
|
path = udev_list_entry_get_name(entry);
|
||||||
|
device = udev_device_new_from_syspath(udev, path);
|
||||||
|
|
||||||
|
if (strncmp("event", udev_device_get_sysname(device), 5) != 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
device_added(device, input);
|
||||||
|
|
||||||
|
udev_device_unref(device);
|
||||||
|
}
|
||||||
|
udev_enumerate_unref(e);
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
evdev_udev_handler(int fd, uint32_t mask, void *data)
|
evdev_udev_handler(int fd, uint32_t mask, void *data)
|
||||||
{
|
{
|
||||||
|
|
@ -491,10 +517,6 @@ evdev_input_add_devices(struct wlsc_compositor *c,
|
||||||
struct udev *udev, const char *seat)
|
struct udev *udev, const char *seat)
|
||||||
{
|
{
|
||||||
struct evdev_input *input;
|
struct evdev_input *input;
|
||||||
struct udev_enumerate *e;
|
|
||||||
struct udev_list_entry *entry;
|
|
||||||
struct udev_device *device;
|
|
||||||
const char *path;
|
|
||||||
|
|
||||||
input = malloc(sizeof *input);
|
input = malloc(sizeof *input);
|
||||||
if (input == NULL)
|
if (input == NULL)
|
||||||
|
|
@ -511,21 +533,7 @@ evdev_input_add_devices(struct wlsc_compositor *c,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
e = udev_enumerate_new(udev);
|
evdev_add_devices(udev, &input->base);
|
||||||
udev_enumerate_add_match_subsystem(e, "input");
|
|
||||||
udev_enumerate_scan_devices(e);
|
|
||||||
udev_list_entry_foreach(entry, udev_enumerate_get_list_entry(e)) {
|
|
||||||
path = udev_list_entry_get_name(entry);
|
|
||||||
device = udev_device_new_from_syspath(udev, path);
|
|
||||||
|
|
||||||
if (strncmp("event", udev_device_get_sysname(device), 5) != 0)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
device_added(device, input);
|
|
||||||
|
|
||||||
udev_device_unref(device);
|
|
||||||
}
|
|
||||||
udev_enumerate_unref(e);
|
|
||||||
|
|
||||||
c->input_device = &input->base.input_device;
|
c->input_device = &input->base.input_device;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue