Fix log display and auto-load KDMs from the configured directory. v2.13.55
authorCarl Hetherington <cth@carlh.net>
Tue, 25 Sep 2018 00:28:37 +0000 (01:28 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 25 Sep 2018 00:28:37 +0000 (01:28 +0100)
src/tools/dcpomatic_player.cc
src/wx/controls.cc

index 07583ccafdffa125bc5501ae99a3cc8a3ec39fcf..db9b21d925958cd04f07c98f53a981ce60d6ad01 100644 (file)
@@ -315,6 +315,27 @@ public:
                        return;
                }
 
+               /* The DCP has been examined and loaded */
+
+               optional<boost::filesystem::path> kdm_dir = Config::instance()->player_kdm_directory();
+               if (dcp->needs_kdm() && kdm_dir) {
+                       /* Look for a KDM */
+                       using namespace boost::filesystem;
+                       for (directory_iterator i = directory_iterator(*kdm_dir); i != directory_iterator(); ++i) {
+                               if (file_size(i->path()) < MAX_KDM_SIZE) {
+                                       try {
+                                               dcp::EncryptedKDM kdm(dcp::file_to_string(i->path()));
+                                               if (kdm.cpl_id() == dcp->cpl()) {
+                                                       dcp->add_kdm (kdm);
+                                                       dcp->examine (shared_ptr<Job>());
+                                               }
+                                       } catch (...) {
+                                               /* Hey well */
+                                       }
+                               }
+                       }
+               }
+
                setup_from_dcp (dcp);
 
                if (dcp->three_d()) {
index bc373812d3d2f5ad140a78792dc77fd6aba5d90e..1f6a30ae955c0bd8f428ea62cc228c673398a4da 100644 (file)
@@ -83,6 +83,7 @@ Controls::Controls (wxWindow* parent, shared_ptr<FilmViewer> viewer, bool editor
        e_sizer->Add (_log, 1, wxALL | wxEXPAND, DCPOMATIC_SIZER_GAP);
 
        _dcp_directory->Show (false);
+       _log->Show (false);
 
        _v_sizer->Add (e_sizer, 0, wxEXPAND);
 
@@ -457,6 +458,7 @@ void
 Controls::show_extended_player_controls (bool s)
 {
        _dcp_directory->Show (s);
+       _log->Show (s);
 }
 
 void