diff --git a/src/core/main.cpp b/src/core/main.cpp index 044508cdf..1f1e3095c 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -125,31 +125,31 @@ void printHelp() " [ -d ]\n" " [ -h ]\n" " [ ]\n\n" - "-r, --render render given project file\n" - "-o, --output render into \n" - "-f, --output-format specify format of render-output where\n" - " format is either 'wav' or 'ogg'.\n" - "-s, --samplerate specify output samplerate in Hz\n" - " range: 44100 (default) to 192000\n" - "-b, --bitrate specify output bitrate in kHz\n" - " default: 160.\n" - "-i, --interpolation specify interpolation method\n" - " possible values:\n" + "-r, --render Render given project file\n" + "-o, --output Render into \n" + "-f, --output-format Specify format of render-output where\n" + " Format is either 'wav' or 'ogg'.\n" + "-s, --samplerate Specify output samplerate in Hz\n" + " Range: 44100 (default) to 192000\n" + "-b, --bitrate Specify output bitrate in KBit/s\n" + " Default: 160.\n" + "-i, --interpolation Specify interpolation method\n" + " Possible values:\n" " - linear\n" " - sincfastest (default)\n" " - sincmedium\n" " - sincbest\n" - "-x, --oversampling specify oversampling\n" - " possible values: 1, 2, 4, 8\n" - " default: 2\n" + "-x, --oversampling Specify oversampling\n" + " Possible values: 1, 2, 4, 8\n" + " Default: 2\n" "-a, --float 32bit float bit depth\n" - "-l, --loop-mode render as a loop\n" - "-u, --upgrade [out] upgrade file and save as \n" - " standard out is used if no output file is specifed\n" - "-d, --dump dump XML of compressed file \n" - "-v, --version show version information and exit.\n" - " --allowroot bypass root user startup check (use with caution).\n" - "-h, --help show this usage information and exit.\n\n", + "-l, --loop-mode Render as a loop\n" + "-u, --upgrade [out] Upgrade file and save as \n" + " Standard out is used if no output file is specifed\n" + "-d, --dump Dump XML of compressed file \n" + "-v, --version Show version information and exit.\n" + " --allowroot Bypass root user startup check (use with caution).\n" + "-h, --help Show this usage information and exit.\n\n", LMMS_VERSION, getCurrentYear().c_str() ); } @@ -233,6 +233,8 @@ int main( int argc, char * * argv ) } else if( arg == "--upgrade" || arg == "-u" ) { + ++i; + if( i == argc ) { printf( "\nNo input file specified.\n\n" @@ -241,11 +243,11 @@ int main( int argc, char * * argv ) } - DataFile dataFile( QString::fromLocal8Bit( argv[i + 1] ) ); + DataFile dataFile( QString::fromLocal8Bit( argv[i] ) ); - if( argc > i+2 ) // output file specified + if( argc > i+1 ) // output file specified { - dataFile.writeFile( QString::fromLocal8Bit( argv[i + 2] ) ); + dataFile.writeFile( QString::fromLocal8Bit( argv[i+1] ) ); } else // no output file specified; use stdout { @@ -256,7 +258,7 @@ int main( int argc, char * * argv ) return EXIT_SUCCESS; } - else if( argc > i && arg == "--allowroot" ) + else if( arg == "--allowroot" ) { // Ignore, processed earlier #ifdef LMMS_BUILD_WIN32 @@ -269,6 +271,8 @@ int main( int argc, char * * argv ) } else if( arg == "--dump" || arg == "-d" ) { + ++i; + if( i == argc ) { printf( "\nNo input file specified.\n\n" @@ -277,7 +281,7 @@ int main( int argc, char * * argv ) } - QFile f( QString::fromLocal8Bit( argv[i + 1] ) ); + QFile f( QString::fromLocal8Bit( argv[i] ) ); f.open( QIODevice::ReadOnly ); QString d = qUncompress( f.readAll() ); printf( "%s\n", d.toUtf8().constData() ); @@ -286,6 +290,8 @@ int main( int argc, char * * argv ) } else if( arg == "--render" || arg == "-r" ) { + ++i; + if( i == argc ) { printf( "\nNo input file specified.\n\n" @@ -294,9 +300,8 @@ int main( int argc, char * * argv ) } - fileToLoad = QString::fromLocal8Bit( argv[i + 1] ); + fileToLoad = QString::fromLocal8Bit( argv[i] ); renderOut = baseName( fileToLoad ) + "."; - ++i; } else if( arg == "--loop-mode" || arg == "-l" ) { @@ -304,6 +309,8 @@ int main( int argc, char * * argv ) } else if( arg == "--output" || arg == "-o" ) { + ++i; + if( i == argc ) { printf( "\nNo output file specified.\n\n" @@ -312,11 +319,12 @@ int main( int argc, char * * argv ) } - renderOut = baseName( QString::fromLocal8Bit( argv[i + 1] ) ) + "."; - ++i; + renderOut = baseName( QString::fromLocal8Bit( argv[i] ) ) + "."; } else if( arg == "--format" || arg == "-f" ) { + ++i; + if( i == argc ) { printf( "\nNo output format specified.\n\n" @@ -325,7 +333,7 @@ int main( int argc, char * * argv ) } - const QString ext = QString( argv[i + 1] ); + const QString ext = QString( argv[i] ); if( ext == "wav" ) { @@ -340,14 +348,14 @@ int main( int argc, char * * argv ) else { printf( "\nInvalid output format %s.\n\n" - "Try \"%s --help\" for more information.\n\n", argv[i + 1], argv[0] ); + "Try \"%s --help\" for more information.\n\n", argv[i], argv[0] ); return EXIT_FAILURE; } - - ++i; } else if( arg == "--samplerate" || arg == "-s" ) { + ++i; + if( i == argc ) { printf( "\nNo samplerate specified.\n\n" @@ -356,7 +364,7 @@ int main( int argc, char * * argv ) } - sample_rate_t sr = QString( argv[i + 1] ).toUInt(); + sample_rate_t sr = QString( argv[i] ).toUInt(); if( sr >= 44100 && sr <= 192000 ) { os.samplerate = sr; @@ -364,13 +372,14 @@ int main( int argc, char * * argv ) else { printf( "\nInvalid samplerate %s.\n\n" - "Try \"%s --help\" for more information.\n\n", argv[i + 1], argv[0] ); + "Try \"%s --help\" for more information.\n\n", argv[i], argv[0] ); return EXIT_FAILURE; } - ++i; } else if( arg == "--bitrate" || arg == "-b" ) { + ++i; + if( i == argc ) { printf( "\nNo bitrate specified.\n\n" @@ -379,7 +388,7 @@ int main( int argc, char * * argv ) } - int br = QString( argv[i + 1] ).toUInt(); + int br = QString( argv[i] ).toUInt(); if( br >= 64 && br <= 384 ) { @@ -388,10 +397,9 @@ int main( int argc, char * * argv ) else { printf( "\nInvalid bitrate %s.\n\n" - "Try \"%s --help\" for more information.\n\n", argv[i + 1], argv[0] ); + "Try \"%s --help\" for more information.\n\n", argv[i], argv[0] ); return EXIT_FAILURE; } - ++i; } else if( arg =="--float" || arg == "-a" ) { @@ -399,6 +407,8 @@ int main( int argc, char * * argv ) } else if( arg == "--interpolation" || arg == "-i" ) { + ++i; + if( i == argc ) { printf( "\nNo interpolation method specified.\n\n" @@ -407,7 +417,7 @@ int main( int argc, char * * argv ) } - const QString ip = QString( argv[i + 1] ); + const QString ip = QString( argv[i] ); if( ip == "linear" ) { @@ -428,13 +438,14 @@ int main( int argc, char * * argv ) else { printf( "\nInvalid interpolation method %s.\n\n" - "Try \"%s --help\" for more information.\n\n", argv[i + 1], argv[0] ); + "Try \"%s --help\" for more information.\n\n", argv[i], argv[0] ); return EXIT_FAILURE; } - ++i; } else if( arg == "--oversampling" || arg == "-x" ) { + ++i; + if( i == argc ) { printf( "\nNo oversampling specified.\n\n" @@ -443,7 +454,7 @@ int main( int argc, char * * argv ) } - int o = QString( argv[i + 1] ).toUInt(); + int o = QString( argv[i] ).toUInt(); switch( o ) { @@ -461,13 +472,14 @@ int main( int argc, char * * argv ) break; default: printf( "\nInvalid oversampling %s.\n\n" - "Try \"%s --help\" for more information.\n\n", argv[i + 1], argv[0] ); + "Try \"%s --help\" for more information.\n\n", argv[i], argv[0] ); return EXIT_FAILURE; } - ++i; } else if( arg == "--import" ) { + ++i; + if( i == argc ) { printf( "\nNo file specified for importing.\n\n" @@ -476,16 +488,19 @@ int main( int argc, char * * argv ) } - fileToImport = QString::fromLocal8Bit( argv[i + 1] ); - ++i; + fileToImport = QString::fromLocal8Bit( argv[i] ); + // exit after import? (only for debugging) - if( argc > i && QString( argv[i + 1] ) == "-e" ) + if( QString( argv[i + 1] ) == "-e" ) { exitAfterImport = true; + ++i; } } else if( arg == "--profile" || arg == "-p" ) { + ++i; + if( i == argc ) { printf( "\nNo profile specified.\n\n" @@ -494,8 +509,7 @@ int main( int argc, char * * argv ) } - profilerOutputFile = QString::fromLocal8Bit( argv[i+1] ); - ++i; + profilerOutputFile = QString::fromLocal8Bit( argv[1] ); } else { @@ -561,9 +575,9 @@ int main( int argc, char * * argv ) { Engine::init( true ); - printf( "loading project...\n" ); + printf( "Loading project...\n" ); Engine::getSong()->loadProject( fileToLoad ); - printf( "done\n" ); + printf( "Done\n" ); Engine::getSong()->setExportLoop( renderLoop );