From 642aaa7a3e11b2de719fc9decc45174bcc235c0c Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Fri, 10 Apr 2015 12:47:46 -0700 Subject: Fix ScreenRecoveryUI to handle devices without power/up/down. Currently fugu has a custom subclass to handle this. The default code supports devices with trackballs but not all shipping Nexus devices? That's just silly. Change-Id: Id2779c91284899a26b4bb1af41e7033aa889df10 --- minui/events.cpp | 4 ++-- minui/minui.h | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'minui') diff --git a/minui/events.cpp b/minui/events.cpp index 2c41eb8..daa10c6 100644 --- a/minui/events.cpp +++ b/minui/events.cpp @@ -201,7 +201,7 @@ int ev_sync_key_state(ev_set_key_callback set_key_cb, void* data) { return 0; } -void ev_iterate_available_keys(ev_key_callback cb, void* data) { +void ev_iterate_available_keys(std::function f) { unsigned long ev_bits[BITS_TO_LONGS(EV_MAX)]; unsigned long key_bits[BITS_TO_LONGS(KEY_MAX)]; @@ -224,7 +224,7 @@ void ev_iterate_available_keys(ev_key_callback cb, void* data) { for (int key_code = 0; key_code <= KEY_MAX; ++key_code) { if (test_bit(key_code, key_bits)) { - cb(key_code, data); + f(key_code); } } } diff --git a/minui/minui.h b/minui/minui.h index 8f2ff11..82abb8a 100644 --- a/minui/minui.h +++ b/minui/minui.h @@ -68,13 +68,11 @@ struct input_event; typedef int (*ev_callback)(int fd, uint32_t epevents, void* data); typedef int (*ev_set_key_callback)(int code, int value, void* data); -typedef void (*ev_key_callback)(int code, void* data); int ev_init(ev_callback input_cb, void* data); void ev_exit(void); int ev_add_fd(int fd, ev_callback cb, void* data); int ev_sync_key_state(ev_set_key_callback set_key_cb, void* data); -void ev_iterate_available_keys(ev_key_callback cb, void* data); // 'timeout' has the same semantics as poll(2). // 0 : don't block @@ -130,4 +128,11 @@ void res_free_surface(gr_surface surface); } #endif +#ifdef __cplusplus + +#include +void ev_iterate_available_keys(std::function f); + +#endif + #endif -- cgit v1.1