X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic_batch.cc;h=baac049c06f828b7479e877ba36f122e89f5cbe3;hb=3a56fa86d04c631143a45bdb34cb0e570e4ca9fb;hp=5693c391dfd4fda7329e5b92f2d52a679743e4ff;hpb=540ec5413635440872b713cbfb79d98899e35a01;p=dcpomatic.git diff --git a/src/tools/dcpomatic_batch.cc b/src/tools/dcpomatic_batch.cc index 5693c391d..baac049c0 100644 --- a/src/tools/dcpomatic_batch.cc +++ b/src/tools/dcpomatic_batch.cc @@ -1,19 +1,20 @@ /* Copyright (C) 2013-2015 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ @@ -35,16 +36,18 @@ #include #include #include +#include #include using std::exception; using std::string; using std::cout; +using std::list; using boost::shared_ptr; using boost::thread; using boost::scoped_array; -static std::string film_to_load; +static list films_to_load; enum { ID_file_add_film = 1, @@ -108,7 +111,7 @@ public: s->Add (panel, 1, wxEXPAND); SetSizer (s); - JobManagerView* job_manager_view = new JobManagerView (panel); + JobManagerView* job_manager_view = new JobManagerView (panel, true); _sizer->Add (job_manager_view, 1, wxALL | wxEXPAND, 6); wxSizer* buttons = new wxBoxSizer (wxHORIZONTAL); @@ -261,6 +264,7 @@ public: socket->read (reinterpret_cast (buffer.get()), length); string s (buffer.get()); _frame->start_job (s); + socket->write (reinterpret_cast ("OK"), 3); } catch (...) { } @@ -316,13 +320,22 @@ class App : public wxApp this->Bind (wxEVT_IDLE, boost::bind (&App::idle, this)); shared_ptr film; - if (!film_to_load.empty() && boost::filesystem::is_directory (film_to_load)) { - try { - film.reset (new Film (film_to_load)); - film->read_metadata (); - film->make_dcp (); - } catch (exception& e) { - error_dialog (0, std_to_wx (String::compose (wx_to_std (_("Could not load film %1 (%2)")), film_to_load, e.what()))); + BOOST_FOREACH (boost::filesystem::path i, films_to_load) { + if (boost::filesystem::is_directory (i)) { + try { + film.reset (new Film (i)); + film->read_metadata (); + film->make_dcp (); + } catch (exception& e) { + error_dialog ( + 0, std_to_wx ( + String::compose ( + wx_to_std (_("Could not load film %1 (%2)")), i.string(), + e.what() + ) + ) + ); + } } } @@ -342,8 +355,8 @@ class App : public wxApp bool OnCmdLineParsed (wxCmdLineParser& parser) { - if (parser.GetParamCount() > 0) { - film_to_load = wx_to_std (parser.GetParam(0)); + for (size_t i = 0; i < parser.GetParamCount(); ++i) { + films_to_load.push_back (wx_to_std (parser.GetParam(i))); } return true;