aboutsummaryrefslogtreecommitdiff
path: root/include/wlr/interfaces/wlr_input_device.h
blob: ab3148076885f836ea3d93c18b9b987cc454c29a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
 * This an unstable interface of wlroots. No guarantees are made regarding the
 * future consistency of this API.
 */
#ifndef WLR_USE_UNSTABLE
#error "Add -DWLR_USE_UNSTABLE to enable unstable wlroots features"
#endif

#ifndef WLR_INTERFACES_WLR_INPUT_DEVICE_H
#define WLR_INTERFACES_WLR_INPUT_DEVICE_H

#include <wlr/types/wlr_input_device.h>

struct wlr_input_device_impl {
	void (*destroy)(struct wlr_input_device *wlr_device);
};

void wlr_input_device_init(struct wlr_input_device *wlr_device,
	enum wlr_input_device_type type, const struct wlr_input_device_impl *impl,
	const char *name);

/**
 * Cleans up all of the provided wlr_input_device resources and signals the
 * destroy event.
 */
void wlr_input_device_finish(struct wlr_input_device *wlr_device);

/**
 * Calls the specialized input device destroy function.
 * If the wlr_input_device is not owned by a specialized input device, the
 * function will finish the wlr_input_device, and either call its implementation
 * destroy function if one has been given, or free the wlr_input_device.
 */
void wlr_input_device_destroy(struct wlr_input_device *dev);

#endif