int fd;
struct {
const struct input_absinfo *absinfo_x, *absinfo_y;
- int32_t x, y;
+ int fake_resolution;
+ int32_t x, y;
int32_t seat_slot;
int apply_calibration;
struct {
struct motion_filter *filter;
} pointer;
+
+ /* Bitmask of pressed keys used to ignore initial release events from
+ * the kernel. */
+ unsigned long key_mask[NLONGS(KEY_CNT)];
+ /* Key counter used for multiplexing button events internally in
+ * libinput. */
+ uint8_t key_count[KEY_CNT];
};
#define EVDEV_UNHANDLED_DEVICE ((struct evdev_device *) 1)
const char *
evdev_device_get_sysname(struct evdev_device *device);
+const char *
+evdev_device_get_name(struct evdev_device *device);
+
+unsigned int
+evdev_device_get_id_product(struct evdev_device *device);
+
+unsigned int
+evdev_device_get_id_vendor(struct evdev_device *device);
+
void
evdev_device_calibrate(struct evdev_device *device, float calibration[6]);
evdev_device_has_capability(struct evdev_device *device,
enum libinput_device_capability capability);
+int
+evdev_device_get_size(struct evdev_device *device,
+ double *w,
+ double *h);
+
double
evdev_device_transform_x(struct evdev_device *device,
double x,
uint32_t height);
void
+evdev_keyboard_notify_key(struct evdev_device *device,
+ uint32_t time,
+ int key,
+ enum libinput_key_state state);
+
+void
+evdev_pointer_notify_button(struct evdev_device *device,
+ uint32_t time,
+ int button,
+ enum libinput_button_state state);
+
+void
evdev_device_remove(struct evdev_device *device);
void