/* * Copyright © 2013 Red Hat, Inc. * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of the copyright holders not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. The copyright holders make no representations * about the suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ #if HAVE_CONFIG_H #include "config.h" #endif #include "litest.h" #include "litest-int.h" #include "libinput-util.h" static void litest_trackpoint_setup(void) { struct litest_device *d = litest_create_device(LITEST_TRACKPOINT); litest_set_current_device(d); } static struct litest_device_interface interface = { }; static void litest_create_trackpoint(struct litest_device *d) { struct libevdev *dev; int rc; d->interface = &interface; dev = libevdev_new(); ck_assert(dev != NULL); libevdev_set_name(dev, "TPPS/2 IBM TrackPoint"); libevdev_set_id_bustype(dev, 0x11); libevdev_set_id_vendor(dev, 0x2); libevdev_set_id_product(dev, 0xa); libevdev_enable_event_code(dev, EV_KEY, BTN_LEFT, NULL); libevdev_enable_event_code(dev, EV_KEY, BTN_RIGHT, NULL); libevdev_enable_event_code(dev, EV_KEY, BTN_MIDDLE, NULL); libevdev_enable_event_code(dev, EV_REL, REL_X, NULL); libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL); rc = libevdev_uinput_create_from_device(dev, LIBEVDEV_UINPUT_OPEN_MANAGED, &d->uinput); ck_assert_int_eq(rc, 0); libevdev_free(dev); } struct litest_test_device litest_trackpoint_device = { .type = LITEST_TRACKPOINT, .features = LITEST_POINTER | LITEST_BUTTON, .shortname = "trackpoint", .setup = litest_trackpoint_setup, .teardown = litest_generic_device_teardown, .create = litest_create_trackpoint, };