diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-09-20 18:47:13 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-09-20 18:47:13 +0100 |
| commit | f0380b3df50ca48ad2f22b5e7d5544dc9fa30d61 (patch) | |
| tree | 3c4a73185ee36a7c73e9e3e84fc6f7447477cb0a /src | |
| parent | 1ba7bca7f2950faa441ec83920d35b65016f3fa6 (diff) | |
More various KDM fixes.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/cinema.cc | 2 | ||||
| -rw-r--r-- | src/lib/film.cc | 19 | ||||
| -rw-r--r-- | src/lib/util.cc | 2 | ||||
| -rw-r--r-- | src/wx/kdm_dialog.cc | 11 | ||||
| -rw-r--r-- | src/wx/kdm_dialog.h | 2 |
5 files changed, 23 insertions, 13 deletions
diff --git a/src/lib/cinema.cc b/src/lib/cinema.cc index ecd083f0a..7af4372f5 100644 --- a/src/lib/cinema.cc +++ b/src/lib/cinema.cc @@ -31,7 +31,7 @@ Cinema::Cinema (shared_ptr<const cxml::Node> node) list<shared_ptr<cxml::Node> > s = node->node_children ("Screen"); for (list<shared_ptr<cxml::Node> >::iterator i = s.begin(); i != s.end(); ++i) { - _screens.push_back (shared_ptr<Screen> (new Screen (*i))); + add_screen (shared_ptr<Screen> (new Screen (*i))); } } diff --git a/src/lib/film.cc b/src/lib/film.cc index 1e76dac2c..708876151 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -933,26 +933,31 @@ Film::make_kdms ( /* Find the DCP to make the KDM for */ string const dir = this->directory (); - list<string> dcps; + list<boost::filesystem::path> dcps; for (boost::filesystem::directory_iterator i = boost::filesystem::directory_iterator(dir); i != boost::filesystem::directory_iterator(); ++i) { - if (boost::filesystem::is_directory (*i) && i->path().leaf() != "j2c" && i->path().leaf() != "wavs") { - dcps.push_back (i->path().string()); + if (boost::filesystem::is_directory (*i) && i->path().leaf() != "j2c" && i->path().leaf() != "video" && i->path().leaf() != "info") { + dcps.push_back (i->path()); } } if (dcps.empty()) { - throw KDMError ("Could not find DCP to make KDM for"); + throw KDMError (_("Could not find DCP to make KDM for")); } else if (dcps.size() > 1) { - throw KDMError ("More than one possible DCP to make KDM for"); + throw KDMError (_("More than one possible DCP to make KDM for")); } for (list<shared_ptr<Screen> >::iterator i = screens.begin(); i != screens.end(); ++i) { libdcp::DCP dcp (dcps.front ()); - dcp.read (); + + try { + dcp.read (); + } catch (...) { + throw KDMError (_("Could not read DCP to make KDM for")); + } shared_ptr<xmlpp::Document> kdm = dcp.cpls().front()->make_kdm ( - signer, (*i)->certificate, from, until, _interop, libdcp::MXFMetadata (), Config::instance()->dcp_metadata () + signer, (*i)->certificate, key (), from, until, _interop, libdcp::MXFMetadata (), Config::instance()->dcp_metadata () ); boost::filesystem::path out = directory; diff --git a/src/lib/util.cc b/src/lib/util.cc index 4e4493ac7..667ee8ce9 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -275,6 +275,8 @@ dcpomatic_setup () #endif avfilter_register_all (); + + libdcp::init (); Ratio::setup_ratios (); DCPContentType::setup_dcp_content_types (); diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc index c8db016aa..c8212636a 100644 --- a/src/wx/kdm_dialog.cc +++ b/src/wx/kdm_dialog.cc @@ -26,7 +26,7 @@ #include "cinema_dialog.h" #include "screen_dialog.h" #include "wx_util.h" -#ifdef __WXMSW__ +#ifdef DCPOMATIC_USE_OWN_DIR_PICKER #include "dir_picker_ctrl.h" #else #include <wx/filepicker.h> @@ -92,10 +92,10 @@ KDMDialog::KDMDialog (wxWindow* parent) add_label_to_sizer (table, this, "Write to", true); -#ifdef __WXMSW__ - _folder = new DirPickerCtrl (this); +#ifdef DCPOMATIC_USE_OWN_DIR_PICKER + _folder = new DirPickerCtrl (this); #else - _folder = new wxDirPickerCtrl (this, wxDD_DIR_MUST_EXIST); + _folder = new wxDirPickerCtrl (this, wxID_ANY); #endif table->Add (_folder, 1, wxEXPAND); @@ -176,6 +176,9 @@ KDMDialog::setup_sensitivity () _add_screen->Enable (sc); _edit_screen->Enable (ss); _remove_screen->Enable (ss); + + wxButton* ok = dynamic_cast<wxButton *> (FindWindowById (wxID_OK)); + ok->Enable (sc || sc); } void diff --git a/src/wx/kdm_dialog.h b/src/wx/kdm_dialog.h index ac2db9b95..96893ccef 100644 --- a/src/wx/kdm_dialog.h +++ b/src/wx/kdm_dialog.h @@ -69,7 +69,7 @@ private: wxDatePickerCtrl* _until_date; wxTimePickerCtrl* _from_time; wxTimePickerCtrl* _until_time; -#ifdef __WXMSW__ +#ifdef DCPOMATIC_USE_OWN_DIR_PICKER DirPickerCtrl* _folder; #else wxDirPickerCtrl* _folder; |
