From 389964ae7e0841f14fe8ad144e2440b0ccf911bc Mon Sep 17 00:00:00 2001 From: Gwenhael Le Moine Date: Fri, 27 Sep 2024 21:47:14 +0200 Subject: [PATCH] allow to only poll UI event every X frames --- src/main.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main.c b/src/main.c index 6a7bc2d..1c26ecc 100644 --- a/src/main.c +++ b/src/main.c @@ -18,15 +18,24 @@ #define CONDITION_STACK_SIZE 16 #define HANDLER_STACK_SIZE 8 +#define QUERY_EVENTS_EVERY_X_FRAME 4 + void signal_handler( int sig ) { + static int nb_refreshes_since_last_checking_events = 0; + switch ( sig ) { - /* case SIGINT: /\* Ctrl-C *\/ */ - /* enter_debugger |= USER_INTERRUPT; */ - /* break; */ + /* case SIGINT: /\* Ctrl-C *\/ */ + /* enter_debugger |= USER_INTERRUPT; */ + /* break; */ case SIGALRM: - ui_get_event(); + if ( nb_refreshes_since_last_checking_events > QUERY_EVENTS_EVERY_X_FRAME ) { + nb_refreshes_since_last_checking_events = 0; + ui_get_event(); + } ui_update_display(); + nb_refreshes_since_last_checking_events++; + break; case SIGPIPE: ui_stop();