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:
Pekka Paalanen 2012-08-03 14:39:07 +03:00 committed by Kristian Høgsberg
parent 3315697739
commit bf639ab892
2 changed files with 24 additions and 4 deletions

View File

@ -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);
} }

View File

@ -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;