Add KDMs after resolving asset references; don't complain
authorCarl Hetherington <cth@carlh.net>
Fri, 14 Oct 2016 23:52:58 +0000 (00:52 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 14 Oct 2016 23:52:58 +0000 (00:52 +0100)
if a single KDM fails to decrypt a VF/OV combination.

src/lib/dcp.cc
src/wx/content_menu.cc
src/wx/content_menu.h

index 6d5c0b2910ba5e6a78b41a75b5c873f8db81ea12..f58b06b57f4aab65ed48ac282f59cb4c18d7792c 100644 (file)
@@ -38,9 +38,6 @@ DCP::cpls () const
        BOOST_FOREACH (boost::filesystem::path i, _dcp_content->directories()) {
                shared_ptr<dcp::DCP> 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<dcp::CPL> i, dcp->cpls()) {
                        cpls.push_back (i);
@@ -55,5 +52,11 @@ DCP::cpls () const
                }
        }
 
+       if (_dcp_content->kdm ()) {
+               BOOST_FOREACH (shared_ptr<dcp::DCP> i, dcps) {
+                       i->add (dcp::DecryptedKDM (_dcp_content->kdm().get(), Config::instance()->decryption_chain()->key().get ()));
+               }
+       }
+
        return cpls;
 }
index ad6d6fc654403dbfda7fb8064152122097521bcb..de3aceac0ff574c2e4d0c9ce81712eeab4217d0f 100644 (file)
@@ -379,29 +379,12 @@ ContentMenu::kdm ()
 
                shared_ptr<Film> film = _film.lock ();
                DCPOMATIC_ASSERT (film);
-               shared_ptr<Job> j (new ExamineContentJob (film, dcp));
-               _job_connections.push_back (
-                       j->Finished.connect (bind (&ContentMenu::check_kdm_validity, this, weak_ptr<DCPContent> (dcp)))
-                       );
-               JobManager::instance()->add (j);
+               JobManager::instance()->add (shared_ptr<Job> (new ExamineContentJob (film, dcp)));
        }
 
        d->Destroy ();
 }
 
-void
-ContentMenu::check_kdm_validity (weak_ptr<DCPContent> wp)
-{
-       shared_ptr<DCPContent> 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 ()
 {
index 7b1e663fa8a86902746ca9c6e05d1b30b26a961a..84daa71a56e0cd13a749471699d79ab5e0f27e1d 100644 (file)
@@ -50,7 +50,6 @@ private:
        void remove ();
        void maybe_found_missing (boost::weak_ptr<Job>, boost::weak_ptr<Content>, boost::weak_ptr<Content>);
        void cpl_selected (wxCommandEvent& ev);
-       void check_kdm_validity (boost::weak_ptr<DCPContent> wp);
 
        wxMenu* _menu;
        wxMenu* _cpl_menu;