diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2015-01-17 09:32:56 -0500 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2015-01-17 09:32:56 -0500 |
commit | f3965062948a086256b7ff6e317954b789fa13c3 (patch) | |
tree | e50263a8410572aeaef93e2df8c2f179c77f0049 /src/udev/udev-builtin-evdev_id.c | |
parent | 1fd8fecb5f962def553e41df7d57d54b6d514197 (diff) |
udev: merge evdev_id into input_id
There is no reason to keep both separated. We want to avoid API specific
tools and instead keep generic terms like 'input'.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'src/udev/udev-builtin-evdev_id.c')
-rw-r--r-- | src/udev/udev-builtin-evdev_id.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/src/udev/udev-builtin-evdev_id.c b/src/udev/udev-builtin-evdev_id.c deleted file mode 100644 index 1b58bdda3d..0000000000 --- a/src/udev/udev-builtin-evdev_id.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * evdev_id - extracts miscellaneous information from evdev devices - * - * Copyright (C) 2014 Red Hat - * Author: - * Carlos Garnacho <carlosg@gnome.org> - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with keymap; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ - -#include <linux/input.h> -#include "udev.h" -#include "util.h" - -static inline int abs_size_mm(const struct input_absinfo *absinfo) { - /* Resolution is defined to be in units/mm for ABS_X/Y */ - return (absinfo->maximum - absinfo->minimum) / absinfo->resolution; -} - -static void extract_info(struct udev_device *dev, const char *devpath, bool test) { - char width[DECIMAL_STR_MAX(int)], height[DECIMAL_STR_MAX(int)]; - struct input_absinfo xabsinfo = {}, yabsinfo = {}; - _cleanup_close_ int fd = -1; - - fd = open(devpath, O_RDONLY|O_CLOEXEC); - if (fd < 0) - return; - - if (ioctl(fd, EVIOCGABS(ABS_X), &xabsinfo) < 0 || - ioctl(fd, EVIOCGABS(ABS_Y), &yabsinfo) < 0) - return; - - if (xabsinfo.resolution <= 0 || yabsinfo.resolution <= 0) - return; - - snprintf(width, sizeof(width), "%d", abs_size_mm(&xabsinfo)); - snprintf(height, sizeof(height), "%d", abs_size_mm(&yabsinfo)); - - udev_builtin_add_property(dev, test, "ID_INPUT_WIDTH_MM", width); - udev_builtin_add_property(dev, test, "ID_INPUT_HEIGHT_MM", height); -} - -static int builtin_evdev_id(struct udev_device *dev, int argc, char *argv[], bool test) { - const char *subsystem; - const char *devnode; - - subsystem = udev_device_get_subsystem(dev); - - if (!subsystem || !streq(subsystem, "input")) - return EXIT_SUCCESS; - - devnode = udev_device_get_devnode(dev); - /* not an evdev node */ - if (!devnode) - return EXIT_SUCCESS; - - extract_info(dev, devnode, test); - - return EXIT_SUCCESS; -} - -const struct udev_builtin udev_builtin_evdev_id = { - .name = "evdev_id", - .cmd = builtin_evdev_id, - .help = "evdev devices information", -}; |