X-Git-Url: https://harrygodden.com/git/?p=csRadar.git;a=blobdiff_plain;f=csrLog.h;fp=csrLog.h;h=42b16722aab0ec86279b85119647711c69c2e079;hp=f0735ad84e356a2a29eafe3cd7c025285a4191c7;hb=0bd8697a99ced50789a5d41b84a4b87f39cb1653;hpb=d7339f0f28ca5b35ad60a393ca270cbae1a154c6 diff --git a/csrLog.h b/csrLog.h index f0735ad..42b1672 100644 --- a/csrLog.h +++ b/csrLog.h @@ -55,3 +55,37 @@ void csr_log_out( FILE *f, int type, const char* prefix, const char* fmt, ... ) #define log_init log_alloc #define log_dealloc log_free + +const char *csr_prog_msg; +void csr_prog_begin( const char *msg ) +{ + csr_prog_msg = msg; +} + +void csr_prog_update( float const percent ) +{ + int const k_track_length = 40; + + printf( "\r %s %d%% |", csr_prog_msg, (int)(percent*100.f) ); + + // Calculate how many steps travelled + int cur_pos = ((float)k_track_length * (1.f-percent)); + + for( int i = 0; i < cur_pos; i ++ ) + printf( " " ); + + printf( "🚂🚃🚃🚃🚃" ); + + for( int i = 0; i < k_track_length-cur_pos; i ++ ) + printf( " " ); + + printf( "|" ); + + fflush( stdout ); +} + +void csr_prog_end(void) +{ + csr_prog_update( 1.f ); + printf( "\n" ); +}