diff options
Diffstat (limited to 'drumgizmo')
| -rw-r--r-- | drumgizmo/drumgizmoc.cc | 23 | 
1 files changed, 20 insertions, 3 deletions
| diff --git a/drumgizmo/drumgizmoc.cc b/drumgizmo/drumgizmoc.cc index 1ba9516..56b2367 100644 --- a/drumgizmo/drumgizmoc.cc +++ b/drumgizmo/drumgizmoc.cc @@ -39,6 +39,7 @@  #include "drumgizmo.h"  #include "drumgizmoc.h"  #include "enginefactory.h" +#include "bytesizeparser.h"  #include "event.h" @@ -65,6 +66,7 @@ static const char usage_str[] =      "output engine.\n"      "  -O, --outputparms      parmlist  Set output engine parameters.\n"      "  -e, --endpos           Number of samples to process, -1: infinite.\n" +    "  -m, --diskstreamsize   Size of buffer for disk streaming, eg. 5{k,M,G}.\n"  #ifndef DISABLE_HUGIN      "  -D, --debug ddd        Enable debug messages on 'ddd'; see hugin "      "documentation for details\n" @@ -92,10 +94,12 @@ static const char usage_str[] =      "  dummy:\n"      "\n"; +  int main(int argc, char* argv[])  {  	int c; - +	Settings settings; +	settings.disk_cache_enable = false;  	std::string hugin_filter;  	unsigned int hugin_flags = 0;  #ifndef DISABLE_HUGIN @@ -121,6 +125,7 @@ int main(int argc, char* argv[])  		    {"outputengine", required_argument, 0, 'o'},  		    {"outputparms", required_argument, 0, 'O'},  		    {"endpos", required_argument, 0, 'e'}, +		    {"diskstreamsize", required_argument, 0, 'm'},  #ifndef DISABLE_HUGIN  		    {"debug", required_argument, 0, 'D'},  #endif /*DISABLE_HUGIN*/ @@ -128,7 +133,7 @@ int main(int argc, char* argv[])  		    {"help", no_argument, 0, 'h'},  		    {0, 0, 0, 0}}; -		c = getopt_long(argc, argv, "hvpo:O:i:I:e:a" +		c = getopt_long(argc, argv, "hvpo:O:i:I:e:am:"  #ifndef DISABLE_HUGIN  		                "D:"  #endif /*DISABLE_HUGIN*/ @@ -203,6 +208,19 @@ int main(int argc, char* argv[])  			printf("%s", copyright_str);  			return 0; +		case 'm': +			settings.disk_cache_upper_limit = byteSizeParser(optarg); +			if(!settings.disk_cache_upper_limit) +			{ +				printf("%s", version_str); +				printf(usage_str, argv[0]); +				std::cerr << "Stream size should be in <number>[suffix] format "; +				std::cerr << "where [suffix] is k, M, or G." << std::endl; +				std::cerr << "Example: 10M which is 10 * 1024 * 1024 bytes" << std::endl; +				return 1; +			} +			settings.disk_cache_enable = true; +  		default:  			break;  		} @@ -343,7 +361,6 @@ int main(int argc, char* argv[])  	printf("Using kitfile: %s\n", kitfile.c_str()); -	Settings settings;  	DrumGizmo gizmo(settings, *oe.get(), *ie.get());  	gizmo.setFrameSize(oe->getBufferSize()); | 
