TRAIN BAR
[csRadar.git] / csrLog.h
index f0735ad84e356a2a29eafe3cd7c025285a4191c7..42b16722aab0ec86279b85119647711c69c2e079 100644 (file)
--- 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" );
+}