Allocate wlr_touch devices

This commit is contained in:
Drew DeVault 2017-06-14 11:40:03 -04:00
parent 7dfc2c28f1
commit d6905f86cb
11 changed files with 104 additions and 14 deletions

View file

@ -16,7 +16,7 @@ struct wlr_backend_state {
struct libinput *libinput;
struct wl_event_source *input_event;
list_t *keyboards;
list_t *devices;
};
struct wlr_input_device_state {
@ -46,4 +46,17 @@ void handle_pointer_button(struct libinput_event *event,
void handle_pointer_axis(struct libinput_event *event,
struct libinput_device *device);
struct wlr_touch *wlr_libinput_touch_create(
struct libinput_device *device);
void handle_touch_down(struct libinput_event *event,
struct libinput_device *device);
void handle_touch_up(struct libinput_event *event,
struct libinput_device *device);
void handle_touch_motion(struct libinput_event *event,
struct libinput_device *device);
void handle_touch_cancel(struct libinput_event *event,
struct libinput_device *device);
void handle_touch_frame(struct libinput_event *event,
struct libinput_device *device);
#endif

View file

@ -34,6 +34,14 @@ struct wlr_pointer *wlr_pointer_create(struct wlr_pointer_impl *impl,
struct wlr_pointer_state *state);
void wlr_pointer_destroy(struct wlr_pointer *pointer);
struct wlr_touch_impl {
void (*destroy)(struct wlr_touch_state *state);
};
struct wlr_touch *wlr_touch_create(struct wlr_touch_impl *impl,
struct wlr_touch_state *state);
void wlr_touch_destroy(struct wlr_touch *touch);
struct wlr_input_device_impl {
void (*destroy)(struct wlr_input_device_state *state);
};

View file

@ -134,7 +134,22 @@ struct wlr_pointer_axis {
double delta;
};
// TODO: touch
struct wlr_touch_state;
struct wlr_touch_impl;
struct wlr_touch {
struct wlr_touch_state *state;
struct wlr_touch_impl *impl;
struct {
struct wl_signal down;
struct wl_signal up;
struct wl_signal motion;
struct wl_signal cancel;
struct wl_signal frame;
} events;
};
// TODO: tablet & tablet tool
// TODO: gestures
// TODO: switch
@ -164,6 +179,7 @@ struct wlr_input_device {
void *_device;
struct wlr_keyboard *keyboard;
struct wlr_pointer *pointer;
struct wlr_touch *touch;
};
};