allow to only poll UI event every X frames

This commit is contained in:
Gwenhael Le Moine 2024-09-27 21:47:14 +02:00
parent eee03e3b8e
commit 389964ae7e
No known key found for this signature in database
GPG key ID: FDFE3669426707A7

View file

@ -18,15 +18,24 @@
#define CONDITION_STACK_SIZE 16 #define CONDITION_STACK_SIZE 16
#define HANDLER_STACK_SIZE 8 #define HANDLER_STACK_SIZE 8
#define QUERY_EVENTS_EVERY_X_FRAME 4
void signal_handler( int sig ) void signal_handler( int sig )
{ {
static int nb_refreshes_since_last_checking_events = 0;
switch ( sig ) { switch ( sig ) {
/* case SIGINT: /\* Ctrl-C *\/ */ /* case SIGINT: /\* Ctrl-C *\/ */
/* enter_debugger |= USER_INTERRUPT; */ /* enter_debugger |= USER_INTERRUPT; */
/* break; */ /* break; */
case SIGALRM: 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(); ui_update_display();
nb_refreshes_since_last_checking_events++;
break; break;
case SIGPIPE: case SIGPIPE:
ui_stop(); ui_stop();