Add command-line option to add content on startup.
authorCarl Hetherington <cth@carlh.net>
Wed, 19 Feb 2014 15:39:14 +0000 (15:39 +0000)
committerCarl Hetherington <cth@carlh.net>
Wed, 19 Feb 2014 15:39:14 +0000 (15:39 +0000)
src/tools/dcpomatic.cc

index 70e675e4099f52ea15bc2ff80b0370cb35b6e17b..1f546b64f0d073e8ff952e0c02eb04391b931474 100644 (file)
@@ -57,6 +57,7 @@
 #include "lib/send_kdm_email_job.h"
 #include "lib/server_finder.h"
 #include "lib/update.h"
+#include "lib/content_factory.h"
 
 using std::cout;
 using std::string;
@@ -75,6 +76,7 @@ static shared_ptr<Film> film;
 static std::string log_level;
 static std::string film_to_load;
 static std::string film_to_create;
+static std::string content_to_add;
 static wxMenu* jobs_menu = 0;
 
 static void set_menu_sensitivity ();
@@ -581,7 +583,8 @@ private:
 static const wxCmdLineEntryDesc command_line_description[] = {
        { wxCMD_LINE_OPTION, "l", "log", "set log level (silent, verbose or timing)", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
        { wxCMD_LINE_SWITCH, "n", "new", "create new film", wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL },
-       { wxCMD_LINE_PARAM, 0, 0, "film to load or create", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE | wxCMD_LINE_PARAM_OPTIONAL },
+       { wxCMD_LINE_OPTION, "c", "content", "add content file", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
+       { wxCMD_LINE_PARAM, 0, 0, "film to load or create", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
        { wxCMD_LINE_NONE, "", "", "", wxCmdLineParamType (0), 0 }
 };
 
@@ -643,6 +646,10 @@ class App : public wxApp
                        film->set_name (boost::filesystem::path (film_to_create).filename().generic_string ());
                }
 
+               if (!content_to_add.empty ()) {
+                       film->examine_and_add_content (content_factory (film, content_to_add));
+               }
+
                _frame = new Frame (_("DCP-o-matic"));
                SetTopWindow (_frame);
                _frame->Maximize ();
@@ -680,10 +687,15 @@ class App : public wxApp
                        if (parser.Found (wxT ("new"))) {
                                film_to_create = wx_to_std (parser.GetParam (0));
                        } else {
-                               film_to_load = wx_to_std (parser.GetParam(0));
+                               film_to_load = wx_to_std (parser.GetParam (0));
                        }
                }
 
+               wxString content;
+               if (parser.Found (wxT ("content"), &content)) {
+                       content_to_add = wx_to_std (content);
+               }
+
                wxString log;
                if (parser.Found (wxT ("log"), &log)) {
                        log_level = wx_to_std (log);