Save KDMs for imported DCPs to metadata.xml.
authorCarl Hetherington <cth@carlh.net>
Sun, 20 Jul 2014 23:19:42 +0000 (00:19 +0100)
committerCarl Hetherington <cth@carlh.net>
Sun, 20 Jul 2014 23:19:42 +0000 (00:19 +0100)
src/lib/dcp_content.cc
src/wx/content_menu.cc

index 9d4ee63887e9e5d4aecc7d8d167639cef314b226..a5b5f37e13f967a9c4845d707000f19049c140cb 100644 (file)
@@ -58,6 +58,9 @@ DCPContent::DCPContent (shared_ptr<const Film> f, cxml::ConstNodePtr node, int v
        _has_subtitles = node->bool_child ("HasSubtitles");
        _directory = node->string_child ("Directory");
        _encrypted = node->bool_child ("Encrypted");
+       if (node->optional_node_child ("KDM")) {
+               _kdm = dcp::EncryptedKDM (node->string_child ("KDM"));
+       }
        _kdm_valid = node->bool_child ("KDMValid");
 }
 
@@ -126,7 +129,9 @@ DCPContent::as_xml (xmlpp::Node* node) const
        node->add_child("HasSubtitles")->add_child_text (_has_subtitles ? "1" : "0");
        node->add_child("Encrypted")->add_child_text (_encrypted ? "1" : "0");
        node->add_child("Directory")->add_child_text (_directory.string ());
-       /* XXX: KDM */
+       if (_kdm) {
+               node->add_child("KDM")->add_child_text (_kdm->as_xml ());
+       }
        node->add_child("KDMValid")->add_child_text (_kdm_valid ? "1" : "0");
 }
 
index b396ceb41d211b65cad48075b2b0dabde183d040..741fc8283b00ad67a1e33ef4bb2c3f060ba9048e 100644 (file)
@@ -249,7 +249,7 @@ ContentMenu::kdm ()
        wxFileDialog* d = new wxFileDialog (_parent, _("Select KDM"));
                
        if (d->ShowModal() == wxID_OK) {
-               dcp->add_kdm (dcp::EncryptedKDM (wx_to_std (d->GetPath ())));
+               dcp->add_kdm (dcp::EncryptedKDM (dcp::file_to_string (wx_to_std (d->GetPath ()))));
                shared_ptr<Film> film = _film.lock ();
                assert (film);
                film->examine_content (dcp);