From: Urban Wallasch Date: Thu, 25 Jul 2019 22:14:56 +0000 (+0200) Subject: * Correctly track and display simulation paused status in telelogger. X-Git-Tag: v0.1.0~72 X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=8446b049ee560a24e3aa847e40b55171cc8ba17f;p=ets2_tele.git * Correctly track and display simulation paused status in telelogger. --- diff --git a/telelogger.c b/telelogger.c index 9544418..dbe489f 100644 --- a/telelogger.c +++ b/telelogger.c @@ -1,3 +1,5 @@ +#define _XOPEN_SOURCE 500 // for usleep() + #include #include #include @@ -19,6 +21,7 @@ static const char *s2hms( int s ) { } static int log_console(void) { + bool last_paused = telemetry->paused; uint64_t last_timestamp = telemetry->timestamp; printf( "game id: %s version %u.%u (%s)\n" , telemetry->game_id, @@ -61,9 +64,18 @@ static int log_console(void) { printf( "nav limit: %.1f km/h\n", telemetry->nav_slimit * 3.6 ); puts(""); - sleep( 1 ); - while ( telemetry->paused || last_timestamp == telemetry->timestamp ) + + if ( last_paused ) { + while ( telemetry->paused ) + usleep( 100000 ); + } + else if ( last_timestamp == telemetry->timestamp ) { + while ( last_timestamp == telemetry->timestamp ) + sleep( 1 ); + } + else sleep( 1 ); + last_paused = telemetry->paused; last_timestamp = telemetry->timestamp; } return 0;