2 * Copyright © 2013 Red Hat, Inc.
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that copyright
7 * notice and this permission notice appear in supporting documentation, and
8 * that the name of the copyright holders not be used in advertising or
9 * publicity pertaining to distribution of the software without specific,
10 * written prior permission. The copyright holders make no representations
11 * about the suitability of this software for any purpose. It is provided "as
12 * is" without express or implied warranty.
14 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32 #include <libevdev/libevdev.h>
33 #include <libevdev/libevdev-uinput.h>
36 enum litest_device_type {
37 LITEST_NO_DEVICE = -1,
38 LITEST_SYNAPTICS_CLICKPAD,
44 enum litest_device_feature {
45 LITEST_DISABLE_DEVICE = -1,
47 LITEST_TOUCHPAD = 1 << 0,
48 LITEST_CLICKPAD = 1 << 1,
49 LITEST_BUTTON = 1 << 2,
51 LITEST_POINTER = 1 << 4,
54 struct litest_device {
55 struct libevdev *evdev;
56 struct libevdev_uinput *uinput;
57 struct libinput *libinput;
58 struct litest_device_interface *interface;
61 void litest_add(const char *name, void *func,
62 enum litest_device_feature required_feature,
63 enum litest_device_feature excluded_feature);
64 void litest_add_no_device(const char *name, void *func);
66 int litest_run(int argc, char **argv);
67 struct litest_device * litest_create_device(enum litest_device_type which);
68 struct litest_device *litest_current_device(void);
69 void litest_delete_device(struct litest_device *d);
70 int litest_handle_events(struct litest_device *d);
72 void litest_event(struct litest_device *t,
76 void litest_touch_up(struct litest_device *d, unsigned int slot);
77 void litest_touch_move(struct litest_device *d,
81 void litest_touch_down(struct litest_device *d,
85 void litest_touch_move_to(struct litest_device *d,
87 int x_from, int y_from,
90 void litest_button_click(struct litest_device *d,
93 void litest_drain_events(struct libinput *li);