X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic.cc;h=d50604740590b79153cf323759cc183b92a2ff6d;hb=0b59b4f8da889a547a1be03f51118769d73aff2a;hp=ae80a42da97c7e482d2bd926cdf3f63cc594f2af;hpb=73799b11bdd90ef9ddd70bdd9bc3f4e1e12bcd07;p=dcpomatic.git diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index ae80a42da..d50604740 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -92,6 +92,9 @@ #include #include #include +#ifdef __WXGTK__ +#include +#endif #ifdef __WXMSW__ #include #endif @@ -447,6 +450,11 @@ public: catch (std::exception& e) { wxString p = std_to_wx (file.string ()); wxCharBuffer b = p.ToUTF8 (); + boost::stacktrace::stacktrace* st = boost::get_error_info(e); + std::cout << "Amiga!\n"; + if (st) { + std::cout << "Awooga! " << *st << "\n"; + } error_dialog (this, wxString::Format (_("Could not open film at %s"), p.data()), std_to_wx (e.what())); } @@ -875,14 +883,19 @@ private: ) ); + + dcp::LocalTime from (Config::instance()->decryption_chain()->leaf().not_before()); + from.add_months (1); + dcp::LocalTime to (Config::instance()->decryption_chain()->leaf().not_after()); + to.add_months (-1); + optional kdm; try { kdm = _film->make_kdm ( Config::instance()->decryption_chain()->leaf(), vector(), d->cpl (), - dcp::LocalTime ("2012-01-01T01:00:00+00:00"), - dcp::LocalTime ("2112-01-01T01:00:00+00:00"), + from, to, dcp::MODIFIED_TRANSITIONAL_1, true, 0 @@ -913,6 +926,18 @@ private: { ExportDialog* d = new ExportDialog (this, _film->isdcf_name(true)); if (d->ShowModal() == wxID_OK) { + if (boost::filesystem::exists(d->path())) { + bool ok = confirm_dialog( + this, + wxString::Format (_("File %s already exists. Do you want to overwrite it?"), std_to_wx(d->path().string()).data()) + ); + + if (!ok) { + d->Destroy (); + return; + } + } + shared_ptr job (new TranscodeJob (_film)); if (d->format() == EXPORT_FORMAT_SUBTITLES_DCP) { job->set_encoder ( @@ -1470,6 +1495,8 @@ static const wxCmdLineEntryDesc command_line_description[] = { { wxCMD_LINE_SWITCH, "n", "new", "create new film", wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL }, { wxCMD_LINE_OPTION, "c", "content", "add content file / directory", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL }, { wxCMD_LINE_OPTION, "d", "dcp", "add content DCP", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL }, + { wxCMD_LINE_SWITCH, "v", "version", "show DCP-o-matic version", wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL }, + { wxCMD_LINE_OPTION, "", "config", "directory containing config.xml and cinemas.xml", 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 } }; @@ -1484,7 +1511,11 @@ public: : wxApp () , _frame (0) , _splash (0) - {} + { +#ifdef DCPOMATIC_LINUX + XInitThreads (); +#endif + } private: @@ -1612,6 +1643,11 @@ private: bool OnCmdLineParsed (wxCmdLineParser& parser) { + if (parser.Found (wxT("version"))) { + cout << "dcpomatic version " << dcpomatic_version << " " << dcpomatic_git_commit << "\n"; + exit (EXIT_SUCCESS); + } + if (parser.GetParamCount() > 0) { if (parser.Found (wxT ("new"))) { _film_to_create = wx_to_std (parser.GetParam (0)); @@ -1630,6 +1666,11 @@ private: _dcp_to_add = wx_to_std (dcp); } + wxString config; + if (parser.Found (wxT("config"), &config)) { + State::override_path = wx_to_std (config); + } + return true; } @@ -1647,6 +1688,11 @@ private: ) ); } catch (exception& e) { + boost::stacktrace::stacktrace* st = boost::get_error_info(e); + std::cout << "Amiga!\n"; + if (st) { + std::cout << "Awooga! " << *st << "\n"; + } error_dialog ( 0, wxString::Format (