Improve error handling

This commit is contained in:
M374LX
2015-08-13 22:50:46 -03:00
parent c7b867c2a0
commit 8bb7b71aab

View File

@@ -125,31 +125,31 @@ void printHelp()
" [ -d <in> ]\n"
" [ -h ]\n"
" [ <file to load> ]\n\n"
"-r, --render <project file> render given project file\n"
"-o, --output <file> render into <file>\n"
"-f, --output-format <format> specify format of render-output where\n"
" format is either 'wav' or 'ogg'.\n"
"-s, --samplerate <samplerate> specify output samplerate in Hz\n"
" range: 44100 (default) to 192000\n"
"-b, --bitrate <bitrate> specify output bitrate in kHz\n"
" default: 160.\n"
"-i, --interpolation <method> specify interpolation method\n"
" possible values:\n"
"-r, --render <project file> Render given project file\n"
"-o, --output <file> Render into <file>\n"
"-f, --output-format <format> Specify format of render-output where\n"
" Format is either 'wav' or 'ogg'.\n"
"-s, --samplerate <samplerate> Specify output samplerate in Hz\n"
" Range: 44100 (default) to 192000\n"
"-b, --bitrate <bitrate> Specify output bitrate in KBit/s\n"
" Default: 160.\n"
"-i, --interpolation <method> Specify interpolation method\n"
" Possible values:\n"
" - linear\n"
" - sincfastest (default)\n"
" - sincmedium\n"
" - sincbest\n"
"-x, --oversampling <value> specify oversampling\n"
" possible values: 1, 2, 4, 8\n"
" default: 2\n"
"-x, --oversampling <value> 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 <in> [out] upgrade file <in> and save as <out>\n"
" standard out is used if no output file is specifed\n"
"-d, --dump <in> dump XML of compressed file <in>\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 <in> [out] Upgrade file <in> and save as <out>\n"
" Standard out is used if no output file is specifed\n"
"-d, --dump <in> Dump XML of compressed file <in>\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 );