From 9476c535e929974cc11070002938bbc9476cce32 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 15 Oct 2016 00:52:58 +0100 Subject: [PATCH] Add KDMs after resolving asset references; don't complain if a single KDM fails to decrypt a VF/OV combination. --- src/lib/dcp.cc | 9 ++++++--- src/wx/content_menu.cc | 19 +------------------ src/wx/content_menu.h | 1 - 3 files changed, 7 insertions(+), 22 deletions(-) diff --git a/src/lib/dcp.cc b/src/lib/dcp.cc index 6d5c0b291..f58b06b57 100644 --- a/src/lib/dcp.cc +++ b/src/lib/dcp.cc @@ -38,9 +38,6 @@ DCP::cpls () const BOOST_FOREACH (boost::filesystem::path i, _dcp_content->directories()) { shared_ptr dcp (new dcp::DCP (i)); dcp->read (false, 0, true); - if (_dcp_content->kdm ()) { - dcp->add (dcp::DecryptedKDM (_dcp_content->kdm().get(), Config::instance()->decryption_chain()->key().get ())); - } dcps.push_back (dcp); BOOST_FOREACH (shared_ptr i, dcp->cpls()) { cpls.push_back (i); @@ -55,5 +52,11 @@ DCP::cpls () const } } + if (_dcp_content->kdm ()) { + BOOST_FOREACH (shared_ptr i, dcps) { + i->add (dcp::DecryptedKDM (_dcp_content->kdm().get(), Config::instance()->decryption_chain()->key().get ())); + } + } + return cpls; } diff --git a/src/wx/content_menu.cc b/src/wx/content_menu.cc index ad6d6fc65..de3aceac0 100644 --- a/src/wx/content_menu.cc +++ b/src/wx/content_menu.cc @@ -379,29 +379,12 @@ ContentMenu::kdm () shared_ptr film = _film.lock (); DCPOMATIC_ASSERT (film); - shared_ptr j (new ExamineContentJob (film, dcp)); - _job_connections.push_back ( - j->Finished.connect (bind (&ContentMenu::check_kdm_validity, this, weak_ptr (dcp))) - ); - JobManager::instance()->add (j); + JobManager::instance()->add (shared_ptr (new ExamineContentJob (film, dcp))); } d->Destroy (); } -void -ContentMenu::check_kdm_validity (weak_ptr wp) -{ - shared_ptr dcp = wp.lock (); - if (!dcp) { - return; - } - - if (dcp->needs_kdm ()) { - error_dialog (0, _("The KDM does not decrypt the DCP. Perhaps it is targeted at the wrong CPL.")); - } -} - void ContentMenu::ov () { diff --git a/src/wx/content_menu.h b/src/wx/content_menu.h index 7b1e663fa..84daa71a5 100644 --- a/src/wx/content_menu.h +++ b/src/wx/content_menu.h @@ -50,7 +50,6 @@ private: void remove (); void maybe_found_missing (boost::weak_ptr, boost::weak_ptr, boost::weak_ptr); void cpl_selected (wxCommandEvent& ev); - void check_kdm_validity (boost::weak_ptr wp); wxMenu* _menu; wxMenu* _cpl_menu; -- 2.30.2