X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Ftools%2Fservomatic_cli.cc;h=76d0850341619c9638861e27538ee7f22285ea5b;hb=2f43c704eca4d7954b08edc82bb2706967f62e96;hp=3ad73faf95b2309a836b1faa88386f80ca39703e;hpb=3c1b239453936128d1711ffa063ad4e1617b3e40;p=dcpomatic.git diff --git a/src/tools/servomatic_cli.cc b/src/tools/servomatic_cli.cc index 3ad73faf9..76d085034 100644 --- a/src/tools/servomatic_cli.cc +++ b/src/tools/servomatic_cli.cc @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -39,13 +40,58 @@ #include "scaler.h" #include "image.h" #include "log.h" +#include "version.h" + +using std::cerr; +using std::string; +using std::cout; +using boost::shared_ptr; + +static void +help (string n) +{ + cerr << "Syntax: " << n << " [OPTION]\n" + << " -v, --version show DCP-o-matic version\n" + << " -h, --help show this help\n" + << " -t, --threads number of parallel encoding threads to use\n"; +} int -main () +main (int argc, char* argv[]) { + int num_threads = Config::instance()->num_local_encoding_threads (); + + int option_index = 0; + while (1) { + static struct option long_options[] = { + { "version", no_argument, 0, 'v'}, + { "help", no_argument, 0, 'h'}, + { "threads", required_argument, 0, 't'}, + { 0, 0, 0, 0 } + }; + + int c = getopt_long (argc, argv, "vht:", long_options, &option_index); + + if (c == -1) { + break; + } + + switch (c) { + case 'v': + cout << "dcpomatic version " << dcpomatic_version << " " << dcpomatic_git_commit << "\n"; + exit (EXIT_SUCCESS); + case 'h': + help (argv[0]); + exit (EXIT_SUCCESS); + case 't': + num_threads = atoi (optarg); + break; + } + } + Scaler::setup_scalers (); - FileLog log ("servomatic.log"); - Server server (&log); - server.run (); + shared_ptr log (new FileLog ("servomatic.log")); + Server server (log); + server.run (num_threads); return 0; }