summaryrefslogtreecommitdiff
path: root/app/src/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/keymap.c')
-rw-r--r--app/src/keymap.c18
1 files changed, 11 insertions, 7 deletions
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;
}