return 0;
}
-static void
-register_device_capabilities(struct evdev_device *device)
-{
- if (device->seat_caps & EVDEV_DEVICE_POINTER) {
- device_register_capability(&device->base,
- LIBINPUT_DEVICE_CAP_POINTER);
- }
- if (device->seat_caps & EVDEV_DEVICE_KEYBOARD) {
- device_register_capability(&device->base,
- LIBINPUT_DEVICE_CAP_KEYBOARD);
- }
- if (device->seat_caps & EVDEV_DEVICE_TOUCH) {
- device_register_capability(&device->base,
- LIBINPUT_DEVICE_CAP_TOUCH);
- }
-}
-
struct evdev_device *
evdev_device_create(struct libinput_seat *seat,
const char *devnode,
list_insert(seat->devices_list.prev, &device->base.link);
notify_added_device(&device->base);
- register_device_capabilities(device);
return device;
void
evdev_device_remove(struct evdev_device *device)
{
- if (device->seat_caps & EVDEV_DEVICE_POINTER) {
- device_unregister_capability(&device->base,
- LIBINPUT_DEVICE_CAP_POINTER);
- }
- if (device->seat_caps & EVDEV_DEVICE_KEYBOARD) {
- device_unregister_capability(&device->base,
- LIBINPUT_DEVICE_CAP_KEYBOARD);
- }
- if (device->seat_caps & EVDEV_DEVICE_TOUCH) {
- device_unregister_capability(&device->base,
- LIBINPUT_DEVICE_CAP_TOUCH);
- }
-
if (device->source)
libinput_remove_source(device->base.seat->libinput,
device->source);
void
notify_removed_device(struct libinput_device *device);
-void
-device_register_capability(struct libinput_device *device,
- enum libinput_device_capability capability);
-
-void
-device_unregister_capability(struct libinput_device *device,
- enum libinput_device_capability capability);
-
void
keyboard_notify_key(struct libinput_device *device,
uint32_t time,
struct libinput_device *device;
};
-struct libinput_event_device_register_capability {
- struct libinput_event base;
- enum libinput_device_capability capability;
-};
-
-struct libinput_event_device_unregister_capability {
- struct libinput_event base;
- enum libinput_device_capability capability;
-};
-
struct libinput_event_keyboard_key {
struct libinput_event base;
uint32_t time;
return event->device;
}
-LIBINPUT_EXPORT enum libinput_device_capability
-libinput_event_device_register_capability_get_capability(
- struct libinput_event_device_register_capability *event)
-{
- return event->capability;
-}
-
-LIBINPUT_EXPORT enum libinput_device_capability
-libinput_event_device_unregister_capability_get_capability(
- struct libinput_event_device_unregister_capability *event)
-{
- return event->capability;
-}
-
LIBINPUT_EXPORT uint32_t
libinput_event_keyboard_key_get_time(
struct libinput_event_keyboard_key *event)
case LIBINPUT_EVENT_REMOVED_DEVICE:
return LIBINPUT_EVENT_CLASS_BASE;
- case LIBINPUT_EVENT_DEVICE_REGISTER_CAPABILITY:
- case LIBINPUT_EVENT_DEVICE_UNREGISTER_CAPABILITY:
case LIBINPUT_EVENT_KEYBOARD_KEY:
case LIBINPUT_EVENT_POINTER_MOTION:
case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE:
&removed_device_event->base);
}
-void
-device_register_capability(struct libinput_device *device,
- enum libinput_device_capability capability)
-{
- struct libinput_event_device_register_capability *capability_event;
-
- capability_event = malloc(sizeof *capability_event);
-
- *capability_event = (struct libinput_event_device_register_capability) {
- .capability = capability,
- };
-
- post_device_event(device,
- LIBINPUT_EVENT_DEVICE_REGISTER_CAPABILITY,
- &capability_event->base);
-}
-
-void
-device_unregister_capability(struct libinput_device *device,
- enum libinput_device_capability capability)
-{
- struct libinput_event_device_unregister_capability *capability_event;
-
- capability_event = malloc(sizeof *capability_event);
-
- *capability_event = (struct libinput_event_device_unregister_capability) {
- .capability = capability,
- };
-
- post_device_event(device,
- LIBINPUT_EVENT_DEVICE_UNREGISTER_CAPABILITY,
- &capability_event->base);
-}
-
void
keyboard_notify_key(struct libinput_device *device,
uint32_t time,
LIBINPUT_EVENT_ADDED_DEVICE,
LIBINPUT_EVENT_REMOVED_DEVICE,
- LIBINPUT_EVENT_DEVICE_REGISTER_CAPABILITY = 200,
- LIBINPUT_EVENT_DEVICE_UNREGISTER_CAPABILITY,
-
LIBINPUT_EVENT_KEYBOARD_KEY = 300,
LIBINPUT_EVENT_POINTER_MOTION = 400,
struct libinput_event_removed_seat;
struct libinput_event_added_device;
struct libinput_event_removed_device;
-struct libinput_event_device_register_capability;
-struct libinput_event_device_unregister_capability;
struct libinput_event_keyboard_key;
struct libinput_event_pointer_motion;
struct libinput_event_pointer_motion_absolute;
libinput_event_removed_device_get_device(
struct libinput_event_removed_device *event);
-/**
- * @defgroup event_device_register_capability Register device capability event
- */
-
-enum libinput_device_capability
-libinput_event_device_register_capability_get_capability(
- struct libinput_event_device_register_capability *event);
-
-/**
- * @defgroup event_device_unregister_capability Register device capability event
- */
-
-enum libinput_device_capability
-libinput_event_device_unregister_capability_get_capability(
- struct libinput_event_device_unregister_capability *event);
-
/**
* @defgroup event_keyboard_key Keyboard key event
*/