aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/wayland/seat.c1
-rw-r--r--include/interfaces/wlr_input_device.h20
-rw-r--r--include/wlr/backend/headless.h1
-rw-r--r--include/wlr/backend/libinput.h3
-rw-r--r--include/wlr/backend/wayland.h3
-rw-r--r--include/wlr/backend/x11.h3
-rw-r--r--include/wlr/types/wlr_cursor.h3
-rw-r--r--include/wlr/types/wlr_input_device.h10
-rw-r--r--include/wlr/types/wlr_tablet_v2.h3
-rw-r--r--types/seat/wlr_seat.c1
-rw-r--r--types/seat/wlr_seat_keyboard.c1
-rw-r--r--types/seat/wlr_seat_pointer.c1
-rw-r--r--types/seat/wlr_seat_touch.c1
-rw-r--r--types/wlr_input_device.c2
-rw-r--r--types/wlr_keyboard.c2
-rw-r--r--types/wlr_pointer.c2
-rw-r--r--types/wlr_switch.c2
-rw-r--r--types/wlr_tablet_pad.c2
-rw-r--r--types/wlr_tablet_tool.c2
-rw-r--r--types/wlr_touch.c2
20 files changed, 43 insertions, 22 deletions
diff --git a/backend/wayland/seat.c b/backend/wayland/seat.c
index e9785d9a..c1eddcd7 100644
--- a/backend/wayland/seat.c
+++ b/backend/wayland/seat.c
@@ -20,6 +20,7 @@
#include "pointer-gestures-unstable-v1-client-protocol.h"
#include "relative-pointer-unstable-v1-client-protocol.h"
+#include "interfaces/wlr_input_device.h"
#include "backend/wayland.h"
#include "util/signal.h"
#include "util/time.h"
diff --git a/include/interfaces/wlr_input_device.h b/include/interfaces/wlr_input_device.h
new file mode 100644
index 00000000..c24b5366
--- /dev/null
+++ b/include/interfaces/wlr_input_device.h
@@ -0,0 +1,20 @@
+#ifndef INTERFACES_INPUT_DEVICE_H
+#define INTERFACES_INPUT_DEVICE_H
+
+#include <wlr/types/wlr_input_device.h>
+
+/**
+ * Initializes a given wlr_input_device. Allocates memory for the name and sets
+ * its vendor and product id to 0.
+ * wlr_device must be non-NULL.
+ */
+void wlr_input_device_init(struct wlr_input_device *wlr_device,
+ enum wlr_input_device_type type, const char *name);
+
+/**
+ * Cleans up all the memory owned by a given wlr_input_device and signals
+ * the destroy event.
+ */
+void wlr_input_device_finish(struct wlr_input_device *wlr_device);
+
+#endif
diff --git a/include/wlr/backend/headless.h b/include/wlr/backend/headless.h
index f4735483..ff55746f 100644
--- a/include/wlr/backend/headless.h
+++ b/include/wlr/backend/headless.h
@@ -10,7 +10,6 @@
#define WLR_BACKEND_HEADLESS_H
#include <wlr/backend.h>
-#include <wlr/types/wlr_input_device.h>
#include <wlr/types/wlr_output.h>
/**
diff --git a/include/wlr/backend/libinput.h b/include/wlr/backend/libinput.h
index 50faaf7d..94197b7a 100644
--- a/include/wlr/backend/libinput.h
+++ b/include/wlr/backend/libinput.h
@@ -13,7 +13,8 @@
#include <wayland-server-core.h>
#include <wlr/backend.h>
#include <wlr/backend/session.h>
-#include <wlr/types/wlr_input_device.h>
+
+struct wlr_input_device;
struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display,
struct wlr_session *session);
diff --git a/include/wlr/backend/wayland.h b/include/wlr/backend/wayland.h
index a32a682a..0aed3aa1 100644
--- a/include/wlr/backend/wayland.h
+++ b/include/wlr/backend/wayland.h
@@ -4,9 +4,10 @@
#include <wayland-client.h>
#include <wayland-server-core.h>
#include <wlr/backend.h>
-#include <wlr/types/wlr_input_device.h>
#include <wlr/types/wlr_output.h>
+struct wlr_input_device;
+
/**
* Creates a new wlr_wl_backend. This backend will be created with no outputs;
* you must use wlr_wl_output_create to add them.
diff --git a/include/wlr/backend/x11.h b/include/wlr/backend/x11.h
index 90918f3f..c6aaaf80 100644
--- a/include/wlr/backend/x11.h
+++ b/include/wlr/backend/x11.h
@@ -6,9 +6,10 @@
#include <wayland-server-core.h>
#include <wlr/backend.h>
-#include <wlr/types/wlr_input_device.h>
#include <wlr/types/wlr_output.h>
+struct wlr_input_device;
+
/**
* Creates a new wlr_x11_backend. This backend will be created with no outputs;
* you must use wlr_x11_output_create to add them.
diff --git a/include/wlr/types/wlr_cursor.h b/include/wlr/types/wlr_cursor.h
index 7dd73c48..95a3e37f 100644
--- a/include/wlr/types/wlr_cursor.h
+++ b/include/wlr/types/wlr_cursor.h
@@ -10,10 +10,11 @@
#define WLR_TYPES_WLR_CURSOR_H
#include <wayland-server-core.h>
-#include <wlr/types/wlr_input_device.h>
#include <wlr/types/wlr_output_layout.h>
#include <wlr/types/wlr_output.h>
+struct wlr_input_device;
+
/**
* wlr_cursor implements the behavior of the "cursor", that is, the image on the
* screen typically moved about with a mouse or so. It provides tracking for
diff --git a/include/wlr/types/wlr_input_device.h b/include/wlr/types/wlr_input_device.h
index 73d90fa5..0ca64341 100644
--- a/include/wlr/types/wlr_input_device.h
+++ b/include/wlr/types/wlr_input_device.h
@@ -25,8 +25,6 @@ enum wlr_input_device_type {
WLR_INPUT_DEVICE_SWITCH,
};
-struct wlr_input_device_impl;
-
struct wlr_input_device {
enum wlr_input_device_type type;
unsigned int vendor, product;
@@ -53,12 +51,4 @@ struct wlr_input_device {
void *data;
};
-void wlr_input_device_init(struct wlr_input_device *wlr_device,
- enum wlr_input_device_type type, const char *name);
-
-/**
- * Clean up all of the provided wlr_input_device resources
- */
-void wlr_input_device_finish(struct wlr_input_device *wlr_device);
-
#endif
diff --git a/include/wlr/types/wlr_tablet_v2.h b/include/wlr/types/wlr_tablet_v2.h
index 4483a578..c05015b2 100644
--- a/include/wlr/types/wlr_tablet_v2.h
+++ b/include/wlr/types/wlr_tablet_v2.h
@@ -11,13 +11,14 @@
#include <wayland-server-core.h>
#include <wlr/types/wlr_seat.h>
-#include <wlr/types/wlr_input_device.h>
#include "tablet-unstable-v2-protocol.h"
/* This can probably be even lower,the tools don't have a lot of buttons */
#define WLR_TABLET_V2_TOOL_BUTTONS_CAP 16
+struct wlr_input_device;
+
struct wlr_tablet_pad_v2_grab_interface;
struct wlr_tablet_pad_v2_grab {
diff --git a/types/seat/wlr_seat.c b/types/seat/wlr_seat.c
index 4933133c..f2fd04c1 100644
--- a/types/seat/wlr_seat.c
+++ b/types/seat/wlr_seat.c
@@ -5,7 +5,6 @@
#include <time.h>
#include <wayland-server-core.h>
#include <wlr/types/wlr_data_device.h>
-#include <wlr/types/wlr_input_device.h>
#include <wlr/types/wlr_primary_selection.h>
#include <wlr/types/wlr_seat.h>
#include <wlr/util/log.h>
diff --git a/types/seat/wlr_seat_keyboard.c b/types/seat/wlr_seat_keyboard.c
index 9ed5fb34..1bad8ff6 100644
--- a/types/seat/wlr_seat_keyboard.c
+++ b/types/seat/wlr_seat_keyboard.c
@@ -5,7 +5,6 @@
#include <wayland-server-core.h>
#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_data_device.h>
-#include <wlr/types/wlr_input_device.h>
#include <wlr/util/log.h>
#include "types/wlr_data_device.h"
#include "types/wlr_seat.h"
diff --git a/types/seat/wlr_seat_pointer.c b/types/seat/wlr_seat_pointer.c
index ce4ca54e..ef058999 100644
--- a/types/seat/wlr_seat_pointer.c
+++ b/types/seat/wlr_seat_pointer.c
@@ -5,7 +5,6 @@
#include <time.h>
#include <wayland-server-core.h>
#include <wlr/types/wlr_compositor.h>
-#include <wlr/types/wlr_input_device.h>
#include <wlr/util/log.h>
#include "types/wlr_seat.h"
#include "util/signal.h"
diff --git a/types/seat/wlr_seat_touch.c b/types/seat/wlr_seat_touch.c
index 99c50cf8..65a8c7c0 100644
--- a/types/seat/wlr_seat_touch.c
+++ b/types/seat/wlr_seat_touch.c
@@ -5,7 +5,6 @@
#include <time.h>
#include <wayland-server-core.h>
#include <wlr/types/wlr_compositor.h>
-#include <wlr/types/wlr_input_device.h>
#include <wlr/util/log.h>
#include "types/wlr_seat.h"
#include "util/signal.h"
diff --git a/types/wlr_input_device.c b/types/wlr_input_device.c
index 23ee4177..d376582e 100644
--- a/types/wlr_input_device.c
+++ b/types/wlr_input_device.c
@@ -2,7 +2,7 @@
#include <stdlib.h>
#include <string.h>
-#include <wlr/types/wlr_input_device.h>
+#include "interfaces/wlr_input_device.h"
#include "util/signal.h"
void wlr_input_device_init(struct wlr_input_device *dev,
diff --git a/types/wlr_keyboard.c b/types/wlr_keyboard.c
index 372efcb5..1d609094 100644
--- a/types/wlr_keyboard.c
+++ b/types/wlr_keyboard.c
@@ -5,8 +5,8 @@
#include <unistd.h>
#include <wayland-server-core.h>
#include <wlr/interfaces/wlr_keyboard.h>
-#include <wlr/types/wlr_keyboard.h>
#include <wlr/util/log.h>
+#include "interfaces/wlr_input_device.h"
#include "types/wlr_keyboard.h"
#include "util/array.h"
#include "util/shm.h"
diff --git a/types/wlr_pointer.c b/types/wlr_pointer.c
index 9f07e290..737d36ec 100644
--- a/types/wlr_pointer.c
+++ b/types/wlr_pointer.c
@@ -4,6 +4,8 @@
#include <wlr/interfaces/wlr_pointer.h>
#include <wlr/types/wlr_pointer.h>
+#include "interfaces/wlr_input_device.h"
+
void wlr_pointer_init(struct wlr_pointer *pointer,
const struct wlr_pointer_impl *impl, const char *name) {
wlr_input_device_init(&pointer->base, WLR_INPUT_DEVICE_POINTER, name);
diff --git a/types/wlr_switch.c b/types/wlr_switch.c
index b6972eea..8e84841d 100644
--- a/types/wlr_switch.c
+++ b/types/wlr_switch.c
@@ -4,6 +4,8 @@
#include <wlr/interfaces/wlr_switch.h>
#include <wlr/types/wlr_switch.h>
+#include "interfaces/wlr_input_device.h"
+
void wlr_switch_init(struct wlr_switch *switch_device,
const struct wlr_switch_impl *impl, const char *name) {
wlr_input_device_init(&switch_device->base, WLR_INPUT_DEVICE_SWITCH, name);
diff --git a/types/wlr_tablet_pad.c b/types/wlr_tablet_pad.c
index 73dd625c..df389c46 100644
--- a/types/wlr_tablet_pad.c
+++ b/types/wlr_tablet_pad.c
@@ -5,6 +5,8 @@
#include <wlr/types/wlr_tablet_pad.h>
#include <wlr/util/log.h>
+#include "interfaces/wlr_input_device.h"
+
void wlr_tablet_pad_init(struct wlr_tablet_pad *pad,
const struct wlr_tablet_pad_impl *impl, const char *name) {
wlr_input_device_init(&pad->base, WLR_INPUT_DEVICE_TABLET_PAD, name);
diff --git a/types/wlr_tablet_tool.c b/types/wlr_tablet_tool.c
index 8718abe9..a5c9d44f 100644
--- a/types/wlr_tablet_tool.c
+++ b/types/wlr_tablet_tool.c
@@ -4,6 +4,8 @@
#include <wlr/interfaces/wlr_tablet_tool.h>
#include <wlr/types/wlr_tablet_tool.h>
+#include "interfaces/wlr_input_device.h"
+
void wlr_tablet_init(struct wlr_tablet *tablet,
const struct wlr_tablet_impl *impl, const char *name) {
wlr_input_device_init(&tablet->base, WLR_INPUT_DEVICE_TABLET_TOOL, name);
diff --git a/types/wlr_touch.c b/types/wlr_touch.c
index de288347..612efcda 100644
--- a/types/wlr_touch.c
+++ b/types/wlr_touch.c
@@ -4,6 +4,8 @@
#include <wlr/interfaces/wlr_touch.h>
#include <wlr/types/wlr_touch.h>
+#include "interfaces/wlr_input_device.h"
+
void wlr_touch_init(struct wlr_touch *touch,
const struct wlr_touch_impl *impl, const char *name) {
wlr_input_device_init(&touch->base, WLR_INPUT_DEVICE_TOUCH, name);