diff --git a/doc/bash-completion/lmms b/doc/bash-completion/lmms index ccff8f249d9..b582612bddc 100644 --- a/doc/bash-completion/lmms +++ b/doc/bash-completion/lmms @@ -89,7 +89,7 @@ _lmms() pars_render=(--float --bitrate --format --interpolation) pars_render+=(--loop --mode --output --profile) pars_render+=(--samplerate --oversampling) - actions=(dump render rendertracks upgrade) + actions=(dump compress render rendertracks upgrade) actions_old=(-d --dump -r --render --rendertracks -u --upgrade) shortargs+=(-a -b -c -f -h -i -l -m -o -p -s -v -x) diff --git a/src/core/main.cpp b/src/core/main.cpp index 531a0a4da89..9b932536fdd 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -161,6 +161,7 @@ void printHelp() "Actions:\n" " [options...] [] Start LMMS in normal GUI mode\n" " dump Dump XML of compressed file \n" + " compress Compress file \n" " render [options...] Render given project file\n" " rendertracks [options...] Render each track to a different file\n" " upgrade [out] Upgrade file and save as \n" @@ -427,6 +428,22 @@ int main( int argc, char * * argv ) return EXIT_SUCCESS; } + else if( arg == "compress" || arg == "--compress" ) + { + ++i; + + if( i == argc ) + { + return noInputFileError(); + } + + QFile f( QString::fromLocal8Bit( argv[i] ) ); + f.open( QIODevice::ReadOnly ); + QByteArray d = qCompress( f.readAll() ) ; + fwrite( d.constData(), sizeof(char), d.size(), stdout ); + + return EXIT_SUCCESS; + } else if( arg == "render" || arg == "--render" || arg == "-r" || arg == "rendertracks" || arg == "--rendertracks" ) {