Basic support for decryption of imported DCPs.
[dcpomatic.git] / src / lib / film.cc
index 85dc5b168d2012e0d98d78606656fcc221225dd4..99a668e373b2567a9ac24151fb91db13d3266f5f 100644 (file)
@@ -30,7 +30,6 @@
 #include <boost/lexical_cast.hpp>
 #include <libxml++/libxml++.h>
 #include <libcxml/cxml.h>
-#include <dcp/signer_chain.h>
 #include <dcp/cpl.h>
 #include <dcp/signer.h>
 #include <dcp/util.h>
@@ -940,6 +939,13 @@ Film::content () const
        return _playlist->content ();
 }
 
+void
+Film::examine_content (shared_ptr<Content> c)
+{
+       shared_ptr<Job> j (new ExamineContentJob (shared_from_this(), c));
+       JobManager::instance()->add (j);
+}
+
 void
 Film::examine_and_add_content (shared_ptr<Content> c)
 {
@@ -1078,9 +1084,14 @@ Film::make_kdm (
        ) const
 {
        shared_ptr<const dcp::CPL> cpl (new dcp::CPL (cpl_file));
+       shared_ptr<const dcp::Signer> signer = Config::instance()->signer();
+       if (!signer->valid ()) {
+               throw InvalidSignerError ();
+       }
+       
        return dcp::DecryptedKDM (
-               cpl, from, until, "DCP-o-matic", cpl->content_title_text(), dcp::LocalTime().as_string()
-               ).encrypt (make_signer(), target, formulation);
+               cpl, key(), from, until, "DCP-o-matic", cpl->content_title_text(), dcp::LocalTime().as_string()
+               ).encrypt (signer, target, formulation);
 }
 
 list<dcp::EncryptedKDM>