diff options
author | Pete Johanson <peter@peterjohanson.com> | 2020-09-02 13:55:26 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-02 13:55:26 -0400 |
commit | 48a3729ffe269527bea948147f0b83ba1a1fa86d (patch) | |
tree | 73e5e7975138a88bb845e02b41c583d90a377c5f /app/src/event_manager.c | |
parent | c80b0a754b4b31cf303c2c9a26c51c72e56b0208 (diff) | |
parent | c9a82d71d06146dfe706a2e8d223dab593dffffc (diff) |
Merge pull request #146 from okke-formsma/hold-tap
Hold-Tap implementation
Diffstat (limited to 'app/src/event_manager.c')
-rw-r--r-- | app/src/event_manager.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/app/src/event_manager.c b/app/src/event_manager.c index c405176..47ad6b7 100644 --- a/app/src/event_manager.c +++ b/app/src/event_manager.c @@ -71,7 +71,23 @@ int zmk_event_manager_raise_after(struct zmk_event_header *event, const struct z return -EINVAL; } +int zmk_event_manager_raise_at(struct zmk_event_header *event, const struct zmk_listener *listener) +{ + u8_t len = __event_subscriptions_end - __event_subscriptions_start; + for (int i = 0; i < len; i++) { + struct zmk_event_subscription *ev_sub = __event_subscriptions_start + i; + + if (ev_sub->event_type == event->event && ev_sub->listener == listener) { + return zmk_event_manager_handle_from(event, i); + } + } + + LOG_WRN("Unable to find where to raise this event"); + + return -EINVAL; +} + int zmk_event_manager_release(struct zmk_event_header *event) { return zmk_event_manager_handle_from(event, event->last_listener_index + 1); -}
\ No newline at end of file +} |