1 // Copyright (C) 2021 Harry Godden (hgn)
4 // ======================================================================================
6 void log_success( const char *fmt
, ... );
7 void log_info( const char *fmt
, ... );
8 void log_warn( const char *fmt
, ... );
9 void log_error( const char *fmt
, ... );
13 #define KNRM "\x1B[0m"
14 #define KRED "\x1B[31m"
15 #define KGRN "\x1B[32m"
16 #define KYEL "\x1B[33m"
17 #define KBLU "\x1B[34m"
18 #define KMAG "\x1B[35m"
19 #define KCYN "\x1B[36m"
20 #define KWHT "\x1B[37m"
22 #define CSR_LOG_WRITE( FILE, PREFIX ) \
23 fprintf( FILE, PREFIX ); \
25 va_start( args, fmt ); \
26 vfprintf( FILE, fmt, args ); \
28 fprintf( FILE, KNRM );
30 void log_success( const char *fmt
, ... ) { CSR_LOG_WRITE( stdout
, (KGRN
"success" KWHT
"| " KGRN
) ); }
31 void log_info( const char *fmt
, ... ) { CSR_LOG_WRITE( stdout
, (KNRM
" info" KWHT
"| " KNRM
) ); }
32 void log_warn( const char *fmt
, ... ) { CSR_LOG_WRITE( stdout
, (KYEL
" warn" KWHT
"| " KYEL
) ); }
33 void log_error( const char *fmt
, ... ) { CSR_LOG_WRITE( stderr
, (KRED
" error" KWHT
"| " KRED
) ); }
36 const char *csr_prog_msg
;
37 void csr_prog_begin( const char *msg
)
42 void csr_prog_update( float const percent
)
44 int const k_track_length
= 40;
46 printf( "\r %s %d%% |", csr_prog_msg
, (int)(percent
*100.f
) );
48 // Calculate how many steps travelled
49 int cur_pos
= ((float)k_track_length
* (1.f
-percent
));
51 for( int i
= 0; i
< cur_pos
; i
++ )
54 printf( "🚂🚃🚃🚃🚃" );
56 for( int i
= 0; i
< k_track_length
-cur_pos
; i
++ )
64 void csr_prog_end(void)
66 csr_prog_update( 1.f
);