From c4d0d2c09da0df9b0ad0de1ec37bbc616de0f8b8 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 6 Jun 2025 11:58:53 +1000 Subject: [PATCH] Switch some uint32_t usage loops to use evdev_usage_next Part-of: --- src/evdev-debounce.c | 5 +++-- src/evdev-fallback.c | 18 ++++++++++-------- src/evdev-frame.h | 6 ++++++ src/evdev-tablet-pad.c | 8 ++++---- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/evdev-debounce.c b/src/evdev-debounce.c index 708fc180..f6b8f9f1 100644 --- a/src/evdev-debounce.c +++ b/src/evdev-debounce.c @@ -488,8 +488,9 @@ fallback_debounce_handle_state(struct fallback_dispatch *dispatch, size_t nchanged = 0; bool flushed = false; - for (uint32_t u = EVDEV_KEY_RESERVED; u <= EVDEV_KEY_MAX; u++) { - evdev_usage_t usage = evdev_usage_from_uint32_t(u); + for (evdev_usage_t usage = evdev_usage_from(EVDEV_KEY_RESERVED); + evdev_usage_le(usage, EVDEV_KEY_MAX); + usage = evdev_usage_next(usage)) { if (get_key_type(usage) != KEY_TYPE_BUTTON) continue; diff --git a/src/evdev-fallback.c b/src/evdev-fallback.c index d46e6d5a..96313c10 100644 --- a/src/evdev-fallback.c +++ b/src/evdev-fallback.c @@ -808,9 +808,9 @@ static inline bool fallback_any_button_down(struct fallback_dispatch *dispatch, struct evdev_device *device) { - uint32_t button; - for (button = EVDEV_BTN_LEFT; button < EVDEV_BTN_JOYSTICK; button++) { - evdev_usage_t usage = evdev_usage_from_uint32_t(button); + for (evdev_usage_t usage = evdev_usage_from(EVDEV_BTN_LEFT); + evdev_usage_lt(usage, EVDEV_BTN_JOYSTICK); + usage = evdev_usage_next(usage)) { if (libevdev_has_event_code(device->evdev, EV_KEY, evdev_usage_code(usage)) && @@ -959,8 +959,9 @@ fallback_handle_state(struct fallback_dispatch *dispatch, /* Buttons and keys */ if (dispatch->pending_event & EVDEV_KEY) { bool want_debounce = false; - for (uint32_t u = EVDEV_KEY_RESERVED; u <= EVDEV_KEY_MAX; u++) { - evdev_usage_t usage = evdev_usage_from_uint32_t(u); + for (evdev_usage_t usage = evdev_usage_from(EVDEV_KEY_RESERVED); + evdev_usage_le(usage, EVDEV_KEY_MAX); + usage = evdev_usage_next(usage)) { if (!hw_key_has_changed(dispatch, usage)) continue; @@ -1057,8 +1058,9 @@ release_pressed_keys(struct fallback_dispatch *dispatch, struct evdev_device *device, uint64_t time) { - for (uint32_t u = EVDEV_KEY_RESERVED; u <= EVDEV_KEY_MAX; u++) { - evdev_usage_t usage = evdev_usage_from_uint32_t(u); + for (evdev_usage_t usage = evdev_usage_from(EVDEV_KEY_RESERVED); + evdev_usage_le(usage, EVDEV_KEY_MAX); + usage = evdev_usage_next(usage)) { int count = get_key_down_count(device, usage); if (count == 0) @@ -1067,7 +1069,7 @@ release_pressed_keys(struct fallback_dispatch *dispatch, if (count > 1) { evdev_log_bug_libinput(device, "key %d is down %d times.\n", - u, + evdev_usage_code(usage), count); } diff --git a/src/evdev-frame.h b/src/evdev-frame.h index 82b3fedf..8b5fac0b 100644 --- a/src/evdev-frame.h +++ b/src/evdev-frame.h @@ -191,6 +191,12 @@ evdev_usage_type_name(evdev_usage_t usage) return libevdev_event_type_get_name(evdev_usage_type(usage)); } +static inline evdev_usage_t +evdev_usage_next(evdev_usage_t usage) +{ + return evdev_usage_from_code(evdev_usage_type(usage), evdev_usage_code(usage) + 1); +} + struct evdev_event { /* this may be a value outside the known usages above but it's just an int */ evdev_usage_t usage; diff --git a/src/evdev-tablet-pad.c b/src/evdev-tablet-pad.c index f75c069e..53849c43 100644 --- a/src/evdev-tablet-pad.c +++ b/src/evdev-tablet-pad.c @@ -629,11 +629,11 @@ pad_suspend(struct evdev_dispatch *dispatch, { struct pad_dispatch *pad = pad_dispatch(dispatch); struct libinput *libinput = pad_libinput_context(pad); - unsigned int code; - for (code = KEY_ESC; code < KEY_CNT; code++) { - evdev_usage_t usage = evdev_usage_from_code(EV_KEY, code); - if (pad_button_is_down(pad, code)) + for (evdev_usage_t usage = evdev_usage_from(EVDEV_KEY_ESC); + evdev_usage_le(usage, EVDEV_KEY_MAX); + usage = evdev_usage_next(usage)) { + if (pad_button_is_down(pad, evdev_usage_code(usage))) pad_button_set_down(pad, usage, false); }