[PATCH libinput 2/2] evdev: add a wrapper to get the evdev device from a libinput device
Peter Hutterer
peter.hutterer at who-t.net
Mon Jan 30 22:21:56 UTC 2017
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
src/evdev-middle-button.c | 8 ++--
src/evdev-mt-touchpad-buttons.c | 10 ++---
src/evdev-mt-touchpad-tap.c | 60 +++++++++----------------
src/evdev-mt-touchpad.c | 24 +++++-----
src/evdev-tablet-pad.c | 4 +-
src/evdev.c | 98 ++++++++++++++++++++---------------------
src/evdev.h | 8 ++++
src/libinput.c | 38 ++++++----------
src/path-seat.c | 6 +--
src/udev-seat.c | 4 +-
10 files changed, 119 insertions(+), 141 deletions(-)
diff --git a/src/evdev-middle-button.c b/src/evdev-middle-button.c
index 09f77de..d9330ba 100644
--- a/src/evdev-middle-button.c
+++ b/src/evdev-middle-button.c
@@ -638,7 +638,7 @@ evdev_middlebutton_filter_button(struct evdev_device *device,
static void
evdev_middlebutton_handle_timeout(uint64_t now, void *data)
{
- struct evdev_device *device = (struct evdev_device*)data;
+ struct evdev_device *device = evdev_device(data);
evdev_middlebutton_handle_event(device, now, MIDDLEBUTTON_EVENT_TIMEOUT);
}
@@ -653,7 +653,7 @@ static enum libinput_config_status
evdev_middlebutton_set(struct libinput_device *device,
enum libinput_config_middle_emulation_state enable)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
switch (enable) {
case LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED:
@@ -674,7 +674,7 @@ evdev_middlebutton_set(struct libinput_device *device,
enum libinput_config_middle_emulation_state
evdev_middlebutton_get(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
return evdev->middlebutton.want_enabled ?
LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED :
@@ -684,7 +684,7 @@ evdev_middlebutton_get(struct libinput_device *device)
enum libinput_config_middle_emulation_state
evdev_middlebutton_get_default(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
return evdev->middlebutton.enabled_default ?
LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED :
diff --git a/src/evdev-mt-touchpad-buttons.c b/src/evdev-mt-touchpad-buttons.c
index f4fe6b7..4a68470 100644
--- a/src/evdev-mt-touchpad-buttons.c
+++ b/src/evdev-mt-touchpad-buttons.c
@@ -627,7 +627,7 @@ tp_init_top_softbuttons(struct tp_dispatch *tp,
static inline uint32_t
tp_button_config_click_get_methods(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
uint32_t methods = LIBINPUT_CONFIG_CLICK_METHOD_NONE;
@@ -669,7 +669,7 @@ static enum libinput_config_status
tp_button_config_click_set_method(struct libinput_device *device,
enum libinput_config_click_method method)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
tp->buttons.click_method = method;
@@ -681,7 +681,7 @@ tp_button_config_click_set_method(struct libinput_device *device,
static enum libinput_config_click_method
tp_button_config_click_get_method(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
return tp->buttons.click_method;
@@ -711,7 +711,7 @@ tp_click_get_default_method(struct tp_dispatch *tp)
static enum libinput_config_click_method
tp_button_config_click_get_default_method(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
return tp_click_get_default_method(tp);
@@ -746,7 +746,7 @@ static enum libinput_config_status
tp_clickpad_middlebutton_set(struct libinput_device *device,
enum libinput_config_middle_emulation_state enable)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
switch (enable) {
case LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED:
diff --git a/src/evdev-mt-touchpad-tap.c b/src/evdev-mt-touchpad-tap.c
index 5fccbc2..1829732 100644
--- a/src/evdev-mt-touchpad-tap.c
+++ b/src/evdev-mt-touchpad-tap.c
@@ -897,11 +897,8 @@ tp_tap_enabled_update(struct tp_dispatch *tp, bool suspended, bool enabled, uint
static int
tp_tap_config_count(struct libinput_device *device)
{
- struct evdev_dispatch *dispatch;
- struct tp_dispatch *tp = NULL;
-
- dispatch = ((struct evdev_device *) device)->dispatch;
- tp = tp_dispatch(dispatch);
+ struct evdev_dispatch *dispatch = evdev_device(device)->dispatch;
+ struct tp_dispatch *tp = tp_dispatch(dispatch);
return min(tp->ntouches, 3U); /* we only do up to 3 finger tap */
}
@@ -910,11 +907,8 @@ static enum libinput_config_status
tp_tap_config_set_enabled(struct libinput_device *device,
enum libinput_config_tap_state enabled)
{
- struct evdev_dispatch *dispatch;
- struct tp_dispatch *tp = NULL;
-
- dispatch = ((struct evdev_device *) device)->dispatch;
- tp = tp_dispatch(dispatch);
+ struct evdev_dispatch *dispatch = evdev_device(device)->dispatch;
+ struct tp_dispatch *tp = tp_dispatch(dispatch);
tp_tap_enabled_update(tp, tp->tap.suspended,
(enabled == LIBINPUT_CONFIG_TAP_ENABLED),
@@ -926,11 +920,8 @@ tp_tap_config_set_enabled(struct libinput_device *device,
static enum libinput_config_tap_state
tp_tap_config_is_enabled(struct libinput_device *device)
{
- struct evdev_dispatch *dispatch;
- struct tp_dispatch *tp = NULL;
-
- dispatch = ((struct evdev_device *) device)->dispatch;
- tp = tp_dispatch(dispatch);
+ struct evdev_dispatch *dispatch = evdev_device(device)->dispatch;
+ struct tp_dispatch *tp = tp_dispatch(dispatch);
return tp->tap.enabled ? LIBINPUT_CONFIG_TAP_ENABLED :
LIBINPUT_CONFIG_TAP_DISABLED;
@@ -961,7 +952,7 @@ tp_tap_default(struct evdev_device *evdev)
static enum libinput_config_tap_state
tp_tap_config_get_default(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
return tp_tap_default(evdev);
}
@@ -970,10 +961,9 @@ static enum libinput_config_status
tp_tap_config_set_map(struct libinput_device *device,
enum libinput_config_tap_button_map map)
{
- struct evdev_dispatch *dispatch = ((struct evdev_device *) device)->dispatch;
- struct tp_dispatch *tp = NULL;
+ struct evdev_dispatch *dispatch = evdev_device(device)->dispatch;
+ struct tp_dispatch *tp = tp_dispatch(dispatch);
- tp = tp_dispatch(dispatch);
tp->tap.want_map = map;
tp_tap_update_map(tp);
@@ -984,10 +974,8 @@ tp_tap_config_set_map(struct libinput_device *device,
static enum libinput_config_tap_button_map
tp_tap_config_get_map(struct libinput_device *device)
{
- struct evdev_dispatch *dispatch = ((struct evdev_device *) device)->dispatch;
- struct tp_dispatch *tp = NULL;
-
- tp = tp_dispatch(dispatch);
+ struct evdev_dispatch *dispatch = evdev_device(device)->dispatch;
+ struct tp_dispatch *tp = tp_dispatch(dispatch);
return tp->tap.want_map;
}
@@ -1002,10 +990,9 @@ static enum libinput_config_status
tp_tap_config_set_drag_enabled(struct libinput_device *device,
enum libinput_config_drag_state enabled)
{
- struct evdev_dispatch *dispatch = ((struct evdev_device *) device)->dispatch;
- struct tp_dispatch *tp = NULL;
+ struct evdev_dispatch *dispatch = evdev_device(device)->dispatch;
+ struct tp_dispatch *tp = tp_dispatch(dispatch);
- tp = tp_dispatch(dispatch);
tp->tap.drag_enabled = enabled;
return LIBINPUT_CONFIG_STATUS_SUCCESS;
@@ -1014,10 +1001,8 @@ tp_tap_config_set_drag_enabled(struct libinput_device *device,
static enum libinput_config_drag_state
tp_tap_config_get_drag_enabled(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device *)device;
- struct tp_dispatch *tp = NULL;
-
- tp = tp_dispatch(evdev->dispatch);
+ struct evdev_dispatch *dispatch = evdev_device(device)->dispatch;
+ struct tp_dispatch *tp = tp_dispatch(dispatch);
return tp->tap.drag_enabled;
}
@@ -1031,7 +1016,7 @@ tp_drag_default(struct evdev_device *device)
static enum libinput_config_drag_state
tp_tap_config_get_default_drag_enabled(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
return tp_drag_default(evdev);
}
@@ -1040,10 +1025,9 @@ static enum libinput_config_status
tp_tap_config_set_draglock_enabled(struct libinput_device *device,
enum libinput_config_drag_lock_state enabled)
{
- struct evdev_dispatch *dispatch = ((struct evdev_device *) device)->dispatch;
- struct tp_dispatch *tp = NULL;
+ struct evdev_dispatch *dispatch = evdev_device(device)->dispatch;
+ struct tp_dispatch *tp = tp_dispatch(dispatch);
- tp = tp_dispatch(dispatch);
tp->tap.drag_lock_enabled = enabled;
return LIBINPUT_CONFIG_STATUS_SUCCESS;
@@ -1052,10 +1036,8 @@ tp_tap_config_set_draglock_enabled(struct libinput_device *device,
static enum libinput_config_drag_lock_state
tp_tap_config_get_draglock_enabled(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device *)device;
- struct tp_dispatch *tp = NULL;
-
- tp = tp_dispatch(evdev->dispatch);
+ struct evdev_dispatch *dispatch = evdev_device(device)->dispatch;
+ struct tp_dispatch *tp = tp_dispatch(dispatch);
return tp->tap.drag_lock_enabled;
}
@@ -1069,7 +1051,7 @@ tp_drag_lock_default(struct evdev_device *device)
static enum libinput_config_drag_lock_state
tp_tap_config_get_default_draglock_enabled(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
return tp_drag_lock_default(evdev);
}
diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index d232634..9614f8e 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -1645,7 +1645,7 @@ tp_interface_device_removed(struct evdev_device *device,
return;
list_for_each(dev, &device->base.seat->devices_list, link) {
- struct evdev_device *d = (struct evdev_device*)dev;
+ struct evdev_device *d = evdev_device(dev);
if (d != removed_device &&
(d->tags & EVDEV_TAG_EXTERNAL_MOUSE)) {
return;
@@ -1982,7 +1982,7 @@ tp_scroll_get_methods(struct tp_dispatch *tp)
static uint32_t
tp_scroll_config_scroll_method_get_methods(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
return tp_scroll_get_methods(tp);
@@ -1992,7 +1992,7 @@ static enum libinput_config_status
tp_scroll_config_scroll_method_set_method(struct libinput_device *device,
enum libinput_config_scroll_method method)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
uint64_t time = libinput_now(tp_libinput_context(tp));
@@ -2010,7 +2010,7 @@ tp_scroll_config_scroll_method_set_method(struct libinput_device *device,
static enum libinput_config_scroll_method
tp_scroll_config_scroll_method_get_method(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
return tp->scroll.method;
@@ -2039,7 +2039,7 @@ tp_scroll_get_default_method(struct tp_dispatch *tp)
static enum libinput_config_scroll_method
tp_scroll_config_scroll_method_get_default_method(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
return tp_scroll_get_default_method(tp);
@@ -2074,7 +2074,7 @@ static enum libinput_config_status
tp_dwt_config_set(struct libinput_device *device,
enum libinput_config_dwt_state enable)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
switch(enable) {
@@ -2093,7 +2093,7 @@ tp_dwt_config_set(struct libinput_device *device,
static enum libinput_config_dwt_state
tp_dwt_config_get(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
return tp->dwt.dwt_enabled ?
@@ -2110,7 +2110,7 @@ tp_dwt_default_enabled(struct tp_dispatch *tp)
static enum libinput_config_dwt_state
tp_dwt_config_get_default(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
return tp_dwt_default_enabled(tp) ?
@@ -2365,7 +2365,7 @@ tp_init(struct tp_dispatch *tp,
static uint32_t
tp_sendevents_get_modes(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
uint32_t modes = LIBINPUT_CONFIG_SEND_EVENTS_DISABLED;
if (evdev->tags & EVDEV_TAG_INTERNAL_TOUCHPAD)
@@ -2381,7 +2381,7 @@ tp_suspend_conditional(struct tp_dispatch *tp,
struct libinput_device *dev;
list_for_each(dev, &device->base.seat->devices_list, link) {
- struct evdev_device *d = (struct evdev_device*)dev;
+ struct evdev_device *d = evdev_device(dev);
if (d->tags & EVDEV_TAG_EXTERNAL_MOUSE) {
tp_suspend(tp, device);
return;
@@ -2393,7 +2393,7 @@ static enum libinput_config_status
tp_sendevents_set_mode(struct libinput_device *device,
enum libinput_config_send_events_mode mode)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *tp = (struct tp_dispatch*)evdev->dispatch;
/* DISABLED overrides any DISABLED_ON_ */
@@ -2426,7 +2426,7 @@ tp_sendevents_set_mode(struct libinput_device *device,
static enum libinput_config_send_events_mode
tp_sendevents_get_mode(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct tp_dispatch *dispatch = (struct tp_dispatch*)evdev->dispatch;
return dispatch->sendevents.current_mode;
diff --git a/src/evdev-tablet-pad.c b/src/evdev-tablet-pad.c
index cc7553f..bed43b6 100644
--- a/src/evdev-tablet-pad.c
+++ b/src/evdev-tablet-pad.c
@@ -580,7 +580,7 @@ static enum libinput_config_status
pad_sendevents_set_mode(struct libinput_device *device,
enum libinput_config_send_events_mode mode)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct pad_dispatch *pad = (struct pad_dispatch*)evdev->dispatch;
if (mode == pad->sendevents.current_mode)
@@ -604,7 +604,7 @@ pad_sendevents_set_mode(struct libinput_device *device,
static enum libinput_config_send_events_mode
pad_sendevents_get_mode(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct pad_dispatch *dispatch = (struct pad_dispatch*)evdev->dispatch;
return dispatch->sendevents.current_mode;
diff --git a/src/evdev.c b/src/evdev.c
index e040583..afee590 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1260,7 +1260,7 @@ fallback_destroy(struct evdev_dispatch *evdev_dispatch)
static int
evdev_calibration_has_matrix(struct libinput_device *libinput_device)
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
return device->abs.absinfo_x && device->abs.absinfo_y;
}
@@ -1269,7 +1269,7 @@ static enum libinput_config_status
evdev_calibration_set_matrix(struct libinput_device *libinput_device,
const float matrix[6])
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
evdev_device_calibrate(device, matrix);
@@ -1280,7 +1280,7 @@ static int
evdev_calibration_get_matrix(struct libinput_device *libinput_device,
float matrix[6])
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
matrix_to_farray6(&device->abs.usermatrix, matrix);
@@ -1291,7 +1291,7 @@ static int
evdev_calibration_get_default_matrix(struct libinput_device *libinput_device,
float matrix[6])
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
matrix_to_farray6(&device->abs.default_calibration, matrix);
@@ -1321,7 +1321,7 @@ static enum libinput_config_status
evdev_sendevents_set_mode(struct libinput_device *device,
enum libinput_config_send_events_mode mode)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct evdev_dispatch *dispatch = evdev->dispatch;
if (mode == dispatch->sendevents.current_mode)
@@ -1346,7 +1346,7 @@ evdev_sendevents_set_mode(struct libinput_device *device,
static enum libinput_config_send_events_mode
evdev_sendevents_get_mode(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct evdev_dispatch *dispatch = evdev->dispatch;
return dispatch->sendevents.current_mode;
@@ -1383,11 +1383,11 @@ evdev_change_to_left_handed(struct evdev_device *device)
static enum libinput_config_status
evdev_left_handed_set(struct libinput_device *device, int left_handed)
{
- struct evdev_device *evdev_device = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
- evdev_device->left_handed.want_enabled = left_handed ? true : false;
+ evdev->left_handed.want_enabled = left_handed ? true : false;
- evdev_device->left_handed.change_to_enabled(evdev_device);
+ evdev->left_handed.change_to_enabled(evdev);
return LIBINPUT_CONFIG_STATUS_SUCCESS;
}
@@ -1395,11 +1395,11 @@ evdev_left_handed_set(struct libinput_device *device, int left_handed)
static int
evdev_left_handed_get(struct libinput_device *device)
{
- struct evdev_device *evdev_device = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
/* return the wanted configuration, even if it hasn't taken
* effect yet! */
- return evdev_device->left_handed.want_enabled;
+ return evdev->left_handed.want_enabled;
}
static int
@@ -1448,7 +1448,7 @@ static enum libinput_config_status
evdev_scroll_set_method(struct libinput_device *device,
enum libinput_config_scroll_method method)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
evdev->scroll.want_method = method;
evdev->scroll.change_scroll_method(evdev);
@@ -1459,7 +1459,7 @@ evdev_scroll_set_method(struct libinput_device *device,
static enum libinput_config_scroll_method
evdev_scroll_get_method(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
/* return the wanted configuration, even if it hasn't taken
* effect yet! */
@@ -1469,7 +1469,7 @@ evdev_scroll_get_method(struct libinput_device *device)
static enum libinput_config_scroll_method
evdev_scroll_get_default_method(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
if (evdev->tags & EVDEV_TAG_TRACKPOINT)
return LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN;
@@ -1488,7 +1488,7 @@ static enum libinput_config_status
evdev_scroll_set_button(struct libinput_device *device,
uint32_t button)
{
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
evdev->scroll.want_button = button;
evdev->scroll.change_scroll_method(evdev);
@@ -1499,7 +1499,7 @@ evdev_scroll_set_button(struct libinput_device *device,
static uint32_t
evdev_scroll_get_button(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
/* return the wanted configuration, even if it hasn't taken
* effect yet! */
@@ -1509,7 +1509,7 @@ evdev_scroll_get_button(struct libinput_device *device)
static uint32_t
evdev_scroll_get_default_button(struct libinput_device *device)
{
- struct evdev_device *evdev = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
if (libevdev_has_event_code(evdev->evdev, EV_KEY, BTN_MIDDLE))
return BTN_MIDDLE;
@@ -1574,7 +1574,7 @@ static enum libinput_config_status
evdev_scroll_config_natural_set(struct libinput_device *device,
int enabled)
{
- struct evdev_device *dev = (struct evdev_device *)device;
+ struct evdev_device *dev = evdev_device(device);
dev->scroll.natural_scrolling_enabled = enabled ? true : false;
@@ -1584,7 +1584,7 @@ evdev_scroll_config_natural_set(struct libinput_device *device,
static int
evdev_scroll_config_natural_get(struct libinput_device *device)
{
- struct evdev_device *dev = (struct evdev_device *)device;
+ struct evdev_device *dev = evdev_device(device);
return dev->scroll.natural_scrolling_enabled ? 1 : 0;
}
@@ -1619,7 +1619,7 @@ static enum libinput_config_status
evdev_rotation_config_set_angle(struct libinput_device *libinput_device,
unsigned int degrees_cw)
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
struct fallback_dispatch *dispatch = fallback_dispatch(device->dispatch);
dispatch->rotation.angle = degrees_cw;
@@ -1631,7 +1631,7 @@ evdev_rotation_config_set_angle(struct libinput_device *libinput_device,
static unsigned int
evdev_rotation_config_get_angle(struct libinput_device *libinput_device)
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
struct fallback_dispatch *dispatch = fallback_dispatch(device->dispatch);
return dispatch->rotation.angle;
@@ -1766,10 +1766,10 @@ fallback_dispatch_init_abs(struct fallback_dispatch *dispatch,
}
static struct evdev_dispatch *
-fallback_dispatch_create(struct libinput_device *device)
+fallback_dispatch_create(struct libinput_device *libinput_device)
{
struct fallback_dispatch *dispatch = zalloc(sizeof *dispatch);
- struct evdev_device *evdev_device = (struct evdev_device *)device;
+ struct evdev_device *device = evdev_device(libinput_device);
if (dispatch == NULL)
return NULL;
@@ -1778,42 +1778,42 @@ fallback_dispatch_create(struct libinput_device *device)
dispatch->base.interface = &fallback_interface;
dispatch->pending_event = EVDEV_NONE;
- fallback_dispatch_init_rel(dispatch, evdev_device);
- fallback_dispatch_init_abs(dispatch, evdev_device);
- if (fallback_dispatch_init_slots(dispatch, evdev_device) == -1) {
+ fallback_dispatch_init_rel(dispatch, device);
+ fallback_dispatch_init_abs(dispatch, device);
+ if (fallback_dispatch_init_slots(dispatch, device) == -1) {
free(dispatch);
return NULL;
}
- if (evdev_device->left_handed.want_enabled)
- evdev_init_left_handed(evdev_device,
+ if (device->left_handed.want_enabled)
+ evdev_init_left_handed(device,
evdev_change_to_left_handed);
- if (evdev_device->scroll.want_button)
- evdev_init_button_scroll(evdev_device,
+ if (device->scroll.want_button)
+ evdev_init_button_scroll(device,
evdev_change_scroll_method);
- if (evdev_device->scroll.natural_scrolling_enabled)
- evdev_init_natural_scroll(evdev_device);
+ if (device->scroll.natural_scrolling_enabled)
+ evdev_init_natural_scroll(device);
- evdev_init_calibration(evdev_device, &dispatch->calibration);
- evdev_init_sendevents(evdev_device, &dispatch->base);
- evdev_init_rotation(evdev_device, dispatch);
+ evdev_init_calibration(device, &dispatch->calibration);
+ evdev_init_sendevents(device, &dispatch->base);
+ evdev_init_rotation(device, dispatch);
/* BTN_MIDDLE is set on mice even when it's not present. So
* we can only use the absence of BTN_MIDDLE to mean something, i.e.
* we enable it by default on anything that only has L&R.
* If we have L&R and no middle, we don't expose it as config
* option */
- if (libevdev_has_event_code(evdev_device->evdev, EV_KEY, BTN_LEFT) &&
- libevdev_has_event_code(evdev_device->evdev, EV_KEY, BTN_RIGHT)) {
- bool has_middle = libevdev_has_event_code(evdev_device->evdev,
+ if (libevdev_has_event_code(device->evdev, EV_KEY, BTN_LEFT) &&
+ libevdev_has_event_code(device->evdev, EV_KEY, BTN_RIGHT)) {
+ bool has_middle = libevdev_has_event_code(device->evdev,
EV_KEY,
BTN_MIDDLE);
bool want_config = has_middle;
bool enable_by_default = !has_middle;
- evdev_init_middlebutton(evdev_device,
+ evdev_init_middlebutton(device,
enable_by_default,
want_config);
}
@@ -1952,7 +1952,7 @@ evdev_accel_config_available(struct libinput_device *device)
static enum libinput_config_status
evdev_accel_config_set_speed(struct libinput_device *device, double speed)
{
- struct evdev_device *dev = (struct evdev_device *)device;
+ struct evdev_device *dev = evdev_device(device);
if (!filter_set_speed(dev->pointer.filter, speed))
return LIBINPUT_CONFIG_STATUS_INVALID;
@@ -1963,7 +1963,7 @@ evdev_accel_config_set_speed(struct libinput_device *device, double speed)
static double
evdev_accel_config_get_speed(struct libinput_device *device)
{
- struct evdev_device *dev = (struct evdev_device *)device;
+ struct evdev_device *dev = evdev_device(device);
return filter_get_speed(dev->pointer.filter);
}
@@ -1977,7 +1977,7 @@ evdev_accel_config_get_default_speed(struct libinput_device *device)
static uint32_t
evdev_accel_config_get_profiles(struct libinput_device *libinput_device)
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
if (!device->pointer.filter)
return LIBINPUT_CONFIG_ACCEL_PROFILE_NONE;
@@ -1990,7 +1990,7 @@ static enum libinput_config_status
evdev_accel_config_set_profile(struct libinput_device *libinput_device,
enum libinput_config_accel_profile profile)
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
struct motion_filter *filter;
double speed;
@@ -2014,7 +2014,7 @@ evdev_accel_config_set_profile(struct libinput_device *libinput_device,
static enum libinput_config_accel_profile
evdev_accel_config_get_profile(struct libinput_device *libinput_device)
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
return filter_get_type(device->pointer.filter);
}
@@ -2022,7 +2022,7 @@ evdev_accel_config_get_profile(struct libinput_device *libinput_device)
static enum libinput_config_accel_profile
evdev_accel_config_get_default_profile(struct libinput_device *libinput_device)
{
- struct evdev_device *device = (struct evdev_device*)libinput_device;
+ struct evdev_device *device = evdev_device(libinput_device);
if (!device->pointer.filter)
return LIBINPUT_CONFIG_ACCEL_PROFILE_NONE;
@@ -2698,7 +2698,7 @@ evdev_notify_added_device(struct evdev_device *device)
struct libinput_device *dev;
list_for_each(dev, &device->base.seat->devices_list, link) {
- struct evdev_device *d = (struct evdev_device*)dev;
+ struct evdev_device *d = evdev_device(dev);
if (dev == &device->base)
continue;
@@ -3282,7 +3282,7 @@ evdev_notify_suspended_device(struct evdev_device *device)
return;
list_for_each(it, &device->base.seat->devices_list, link) {
- struct evdev_device *d = (struct evdev_device*)it;
+ struct evdev_device *d = evdev_device(it);
if (it == &device->base)
continue;
@@ -3302,7 +3302,7 @@ evdev_notify_resumed_device(struct evdev_device *device)
return;
list_for_each(it, &device->base.seat->devices_list, link) {
- struct evdev_device *d = (struct evdev_device*)it;
+ struct evdev_device *d = evdev_device(it);
if (it == &device->base)
continue;
@@ -3409,7 +3409,7 @@ evdev_device_remove(struct evdev_device *device)
struct libinput_device *dev;
list_for_each(dev, &device->base.seat->devices_list, link) {
- struct evdev_device *d = (struct evdev_device*)dev;
+ struct evdev_device *d = evdev_device(dev);
if (dev == &device->base)
continue;
diff --git a/src/evdev.h b/src/evdev.h
index 924a4a1..462776d 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -237,6 +237,14 @@ struct evdev_device {
} middlebutton;
};
+static inline struct evdev_device *
+evdev_device(struct libinput_device *device)
+{
+ struct evdev_device *d;
+
+ return container_of(device, d, base);
+}
+
#define EVDEV_UNHANDLED_DEVICE ((struct evdev_device *) 1)
struct evdev_dispatch;
diff --git a/src/libinput.c b/src/libinput.c
index ebfedec..84e329d 100644
--- a/src/libinput.c
+++ b/src/libinput.c
@@ -516,8 +516,7 @@ libinput_event_pointer_get_dy_unaccelerated(
LIBINPUT_EXPORT double
libinput_event_pointer_get_absolute_x(struct libinput_event_pointer *event)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -530,8 +529,7 @@ libinput_event_pointer_get_absolute_x(struct libinput_event_pointer *event)
LIBINPUT_EXPORT double
libinput_event_pointer_get_absolute_y(struct libinput_event_pointer *event)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -546,8 +544,7 @@ libinput_event_pointer_get_absolute_x_transformed(
struct libinput_event_pointer *event,
uint32_t width)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -562,8 +559,7 @@ libinput_event_pointer_get_absolute_y_transformed(
struct libinput_event_pointer *event,
uint32_t height)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -752,8 +748,7 @@ libinput_event_touch_get_seat_slot(struct libinput_event_touch *event)
LIBINPUT_EXPORT double
libinput_event_touch_get_x(struct libinput_event_touch *event)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -768,8 +763,7 @@ LIBINPUT_EXPORT double
libinput_event_touch_get_x_transformed(struct libinput_event_touch *event,
uint32_t width)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -784,8 +778,7 @@ LIBINPUT_EXPORT double
libinput_event_touch_get_y_transformed(struct libinput_event_touch *event,
uint32_t height)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -799,8 +792,7 @@ libinput_event_touch_get_y_transformed(struct libinput_event_touch *event,
LIBINPUT_EXPORT double
libinput_event_touch_get_y(struct libinput_event_touch *event)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -1110,8 +1102,7 @@ libinput_event_tablet_tool_wheel_has_changed(
LIBINPUT_EXPORT double
libinput_event_tablet_tool_get_x(struct libinput_event_tablet_tool *event)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -1128,8 +1119,7 @@ libinput_event_tablet_tool_get_x(struct libinput_event_tablet_tool *event)
LIBINPUT_EXPORT double
libinput_event_tablet_tool_get_y(struct libinput_event_tablet_tool *event)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -1277,8 +1267,7 @@ LIBINPUT_EXPORT double
libinput_event_tablet_tool_get_x_transformed(struct libinput_event_tablet_tool *event,
uint32_t width)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -1297,8 +1286,7 @@ LIBINPUT_EXPORT double
libinput_event_tablet_tool_get_y_transformed(struct libinput_event_tablet_tool *event,
uint32_t height)
{
- struct evdev_device *device =
- (struct evdev_device *) event->base.device;
+ struct evdev_device *device = evdev_device(event->base.device);
require_event_type(libinput_event_get_context(&event->base),
event->base.type,
@@ -1898,7 +1886,7 @@ static void
libinput_device_destroy(struct libinput_device *device)
{
assert(list_empty(&device->event_listeners));
- evdev_device_destroy((struct evdev_device *) device);
+ evdev_device_destroy(evdev_device(device));
}
LIBINPUT_EXPORT struct libinput_device *
diff --git a/src/path-seat.c b/src/path-seat.c
index d806bfb..e6289a2 100644
--- a/src/path-seat.c
+++ b/src/path-seat.c
@@ -244,11 +244,11 @@ path_device_change_seat(struct libinput_device *device,
const char *seat_name)
{
struct libinput *libinput = device->seat->libinput;
- struct evdev_device *evdev_device = (struct evdev_device *)device;
+ struct evdev_device *evdev = evdev_device(device);
struct udev_device *udev_device = NULL;
int rc = -1;
- udev_device = evdev_device->udev_device;
+ udev_device = evdev->udev_device;
udev_device_ref(udev_device);
libinput_path_remove_device(device);
@@ -361,7 +361,7 @@ libinput_path_remove_device(struct libinput_device *device)
struct libinput *libinput = device->seat->libinput;
struct path_input *input = (struct path_input*)libinput;
struct libinput_seat *seat;
- struct evdev_device *evdev = (struct evdev_device*)device;
+ struct evdev_device *evdev = evdev_device(device);
struct path_device *dev;
if (libinput->interface_backend != &interface_backend) {
diff --git a/src/udev-seat.c b/src/udev-seat.c
index d1eaed8..a19afb4 100644
--- a/src/udev-seat.c
+++ b/src/udev-seat.c
@@ -322,8 +322,8 @@ udev_device_change_seat(struct libinput_device *device,
{
struct libinput *libinput = device->seat->libinput;
struct udev_input *input = (struct udev_input *)libinput;
- struct evdev_device *evdev_device = (struct evdev_device *)device;
- struct udev_device *udev_device = evdev_device->udev_device;
+ struct evdev_device *evdev = evdev_device(device);
+ struct udev_device *udev_device = evdev->udev_device;
int rc;
udev_device_ref(udev_device);
--
2.9.3
More information about the wayland-devel
mailing list