From: Pekka Paalanen Date: Fri, 3 Aug 2012 11:39:07 +0000 (+0300) Subject: evdev: log input devices X-Git-Tag: 0.1.0~163^2~64 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b2d021b95ec157b16d65a709d79d817106640778;p=platform%2Fupstream%2Flibinput.git 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 --- diff --git a/src/evdev.c b/src/evdev.c index 8f57c42..7efbc7d 100644 --- a/src/evdev.c +++ b/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 * want to adjust the protocol later adding a proper event for dealing * 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; + } 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); - 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); - 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_log("input device %s, %s is a touch device\n", + device->devname, device->devnode); + } return 0; } @@ -465,6 +478,7 @@ evdev_input_device_create(struct weston_seat *seat, { struct evdev_input_device *device; struct weston_compositor *ec; + char devname[256] = "unknown"; device = malloc(sizeof *device); if (device == NULL) @@ -485,6 +499,9 @@ evdev_input_device_create(struct weston_seat *seat, device->dispatch = NULL; device->fd = device_fd; + ioctl(device->fd, EVIOCGNAME(sizeof(devname)), devname); + device->devname = strdup(devname); + if (evdev_configure_device(device) == -1) goto err1; @@ -512,6 +529,7 @@ evdev_input_device_create(struct weston_seat *seat, err2: device->dispatch->interface->destroy(device->dispatch); err1: + free(device->devname); free(device->devnode); free(device); return NULL; @@ -531,6 +549,7 @@ evdev_input_device_destroy(struct evdev_input_device *device) if (device->mtdev) mtdev_close_delete(device->mtdev); close(device->fd); + free(device->devname); free(device->devnode); free(device); } diff --git a/src/evdev.h b/src/evdev.h index 6556df0..379838a 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -51,6 +51,7 @@ struct evdev_input_device { struct weston_output *output; struct evdev_dispatch *dispatch; char *devnode; + char *devname; int fd; struct { int min_x, max_x, min_y, max_y;