evdev: log input devices
Write information about found input devices into the log. Also fetch and record the device name. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
This commit is contained in:
parent
3315697739
commit
bf639ab892
27
src/evdev.c
27
src/evdev.c
@ -445,16 +445,29 @@ evdev_configure_device(struct evdev_input_device *device)
|
|||||||
/* This rule tries to catch accelerometer devices and opt out. We may
|
/* This rule tries to catch accelerometer devices and opt out. We may
|
||||||
* want to adjust the protocol later adding a proper event for dealing
|
* want to adjust the protocol later adding a proper event for dealing
|
||||||
* with accelerometers and implement here accordingly */
|
* with accelerometers and implement here accordingly */
|
||||||
if (has_abs && !has_key && !device->is_mt)
|
if (has_abs && !has_key && !device->is_mt) {
|
||||||
|
weston_log("input device %s, %s "
|
||||||
|
"ignored: unsupported device type\n",
|
||||||
|
device->devname, device->devnode);
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if ((device->caps &
|
if ((device->caps &
|
||||||
(EVDEV_MOTION_ABS | EVDEV_MOTION_REL | EVDEV_BUTTON)))
|
(EVDEV_MOTION_ABS | EVDEV_MOTION_REL | EVDEV_BUTTON))) {
|
||||||
weston_seat_init_pointer(device->seat);
|
weston_seat_init_pointer(device->seat);
|
||||||
if ((device->caps & EVDEV_KEYBOARD))
|
weston_log("input device %s, %s is a pointer\n",
|
||||||
|
device->devname, device->devnode);
|
||||||
|
}
|
||||||
|
if ((device->caps & EVDEV_KEYBOARD)) {
|
||||||
weston_seat_init_keyboard(device->seat, NULL);
|
weston_seat_init_keyboard(device->seat, NULL);
|
||||||
if ((device->caps & EVDEV_TOUCH))
|
weston_log("input device %s, %s is a keyboard\n",
|
||||||
|
device->devname, device->devnode);
|
||||||
|
}
|
||||||
|
if ((device->caps & EVDEV_TOUCH)) {
|
||||||
weston_seat_init_touch(device->seat);
|
weston_seat_init_touch(device->seat);
|
||||||
|
weston_log("input device %s, %s is a touch device\n",
|
||||||
|
device->devname, device->devnode);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -465,6 +478,7 @@ evdev_input_device_create(struct weston_seat *seat,
|
|||||||
{
|
{
|
||||||
struct evdev_input_device *device;
|
struct evdev_input_device *device;
|
||||||
struct weston_compositor *ec;
|
struct weston_compositor *ec;
|
||||||
|
char devname[256] = "unknown";
|
||||||
|
|
||||||
device = malloc(sizeof *device);
|
device = malloc(sizeof *device);
|
||||||
if (device == NULL)
|
if (device == NULL)
|
||||||
@ -485,6 +499,9 @@ evdev_input_device_create(struct weston_seat *seat,
|
|||||||
device->dispatch = NULL;
|
device->dispatch = NULL;
|
||||||
device->fd = device_fd;
|
device->fd = device_fd;
|
||||||
|
|
||||||
|
ioctl(device->fd, EVIOCGNAME(sizeof(devname)), devname);
|
||||||
|
device->devname = strdup(devname);
|
||||||
|
|
||||||
if (evdev_configure_device(device) == -1)
|
if (evdev_configure_device(device) == -1)
|
||||||
goto err1;
|
goto err1;
|
||||||
|
|
||||||
@ -512,6 +529,7 @@ evdev_input_device_create(struct weston_seat *seat,
|
|||||||
err2:
|
err2:
|
||||||
device->dispatch->interface->destroy(device->dispatch);
|
device->dispatch->interface->destroy(device->dispatch);
|
||||||
err1:
|
err1:
|
||||||
|
free(device->devname);
|
||||||
free(device->devnode);
|
free(device->devnode);
|
||||||
free(device);
|
free(device);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -531,6 +549,7 @@ evdev_input_device_destroy(struct evdev_input_device *device)
|
|||||||
if (device->mtdev)
|
if (device->mtdev)
|
||||||
mtdev_close_delete(device->mtdev);
|
mtdev_close_delete(device->mtdev);
|
||||||
close(device->fd);
|
close(device->fd);
|
||||||
|
free(device->devname);
|
||||||
free(device->devnode);
|
free(device->devnode);
|
||||||
free(device);
|
free(device);
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,7 @@ struct evdev_input_device {
|
|||||||
struct weston_output *output;
|
struct weston_output *output;
|
||||||
struct evdev_dispatch *dispatch;
|
struct evdev_dispatch *dispatch;
|
||||||
char *devnode;
|
char *devnode;
|
||||||
|
char *devname;
|
||||||
int fd;
|
int fd;
|
||||||
struct {
|
struct {
|
||||||
int min_x, max_x, min_y, max_y;
|
int min_x, max_x, min_y, max_y;
|
||||||
|
Loading…
Reference in New Issue
Block a user