From 3368a81057d4981aa259c5548050d95739d99d51 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Tue, 19 Jan 2021 14:21:00 -0500 Subject: refactor(core): Combine `is_` and `cast_` event functions. * Use a single `as_foo` generated function to conditionally return a certain event type from a generic `zmk_event_t*` pointer. --- app/src/keymap.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'app/src/keymap.c') diff --git a/app/src/keymap.c b/app/src/keymap.c index 169cf9c..31258e0 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -247,15 +247,19 @@ int zmk_keymap_sensor_triggered(uint8_t sensor_number, const struct device *sens #endif /* ZMK_KEYMAP_HAS_SENSORS */ int keymap_listener(const zmk_event_t *eh) { - if (is_zmk_position_state_changed(eh)) { - const struct zmk_position_state_changed *ev = cast_zmk_position_state_changed(eh); - return zmk_keymap_position_state_changed(ev->position, ev->state, ev->timestamp); + const struct zmk_position_state_changed *pos_ev; + if ((pos_ev = as_zmk_position_state_changed(eh)) != NULL) { + return zmk_keymap_position_state_changed(pos_ev->position, pos_ev->state, + pos_ev->timestamp); + } + #if ZMK_KEYMAP_HAS_SENSORS - } else if (is_zmk_sensor_event(eh)) { - const struct zmk_sensor_event *ev = cast_zmk_sensor_event(eh); - return zmk_keymap_sensor_triggered(ev->sensor_number, ev->sensor, ev->timestamp); -#endif /* ZMK_KEYMAP_HAS_SENSORS */ + const struct zmk_sensor_event *sensor_ev; + if ((sensor_ev = as_zmk_sensor_event(eh)) != NULL) { + return zmk_keymap_sensor_triggered(sensor_ev->sensor_number, sensor_ev->sensor, + sensor_ev->timestamp); } +#endif /* ZMK_KEYMAP_HAS_SENSORS */ return -ENOTSUP; } -- cgit v1.2.3