From 3d51688526b205e57a2a3f3f328e9ca1f6c5d5c8 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Tue, 19 Aug 2008 09:51:52 +0000 Subject: [PATCH] improved progress information when rendering at console git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1442 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 6 ++++++ src/core/main.cpp | 2 +- src/core/project_renderer.cpp | 24 +++++++++++++----------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 40ebbca51..a7ebd1654 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-08-19 Tobias Doerffel + + * src/core/main.cpp: + * src/core/project_renderer.cpp: + improved progress information when rendering at console + 2008-08-18 Paul Giblock * include/controller.h: diff --git a/src/core/main.cpp b/src/core/main.cpp index 6ef2d848d..f6d5b356b 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -432,7 +432,7 @@ int main( int argc, char * * argv ) QTimer * t = new QTimer( r ); r->connect( t, SIGNAL( timeout() ), SLOT( updateConsoleProgress() ) ); - t->start( 50 ); + t->start( 200 ); // start now! r->startProcessing(); diff --git a/src/core/project_renderer.cpp b/src/core/project_renderer.cpp index 32ccf682e..ea0f4adc2 100644 --- a/src/core/project_renderer.cpp +++ b/src/core/project_renderer.cpp @@ -186,21 +186,23 @@ void projectRenderer::updateConsoleProgress( void ) { const int cols = 50; static int rot = 0; + char buf[80]; + char prog[cols+1]; - printf("\r|"); for( int i = 0; i < cols; ++i ) { - printf( "%c",( i*100/cols <= m_progress ? '-' : ' ' )); + prog[i] = ( i*100/cols <= m_progress ? '-' : ' ' ); } - printf( "| %3d%% ", m_progress ); - switch( rot ) - { - case 3: putchar( '|' ); break; - case 2: putchar( '/' ); break; - case 1: putchar( '-' ); break; - case 0: putchar( '\\' ); break; - } - rot = ++rot % 4; + prog[cols] = 0; + + const char * activity = (const char *) "|/-\\"; + memset( buf, 0, sizeof( buf ) ); + sprintf( buf, "\r|%s| %3d%% %c ", prog, m_progress, + activity[rot] ); + rot = ( rot+1 ) % 4; + + fprintf( stderr, "%s", buf ); + fflush( stderr ); }