Ignore missing asset errors.
[libdcp.git] / src / cpl.h
index d28737e146e6acfad57f6d969c0ae19f9833f6f7..75b9d701c7ee5ae6cf14bf238cf3c2a520cca274 100644 (file)
--- a/src/cpl.h
+++ b/src/cpl.h
 #include "certificates.h"
 #include "key.h"
 #include "asset.h"
+#include "metadata.h"
 #include <libxml++/libxml++.h>
 #include <boost/shared_ptr.hpp>
 #include <boost/function.hpp>
-#include <boost/date_time/posix_time/posix_time.hpp>
 #include <boost/optional.hpp>
 #include <boost/filesystem.hpp>
 #include <list>
@@ -39,7 +39,7 @@ class Reel;
 class XMLMetadata;
 class MXFMetadata;
 class Signer;
-class KDM;
+class DecryptedKDM;
        
 /** @class CPL
  *  @brief A Composition Playlist.
@@ -57,24 +57,24 @@ public:
                ) const;
 
        void add (boost::shared_ptr<Reel> reel);
-       void add (KDM const &);
+       void add (DecryptedKDM const &);
 
-       /** @return contents of the <AnnotationText> node */
+       /** @return contents of the &lt;AnnotationText&gt; node */
        std::string annotation_text () const {
                return _annotation_text;
        }
        
-       /** @return contents of the <ContentTitleText> node */
+       /** @return contents of the &lt;ContentTitleText&gt; node */
        std::string content_title_text () const {
                return _content_title_text;
        }
 
-       /** @return contents of the <Id> node within <ContentVersion> */
+       /** @return contents of the &lt;Id&gt; node within &lt;ContentVersion&gt; */
        void set_content_version_id (std::string id) {
                _content_version_id = id;
        }
 
-       /** @return contents of the <LabelText> node within <ContentVersion> */
+       /** @return contents of the &lt;LabelText&gt; node within &lt;ContentVersion&gt; */
        void set_content_version_label_text (std::string text) {
                _content_version_label_text = text;
        }
@@ -99,11 +99,13 @@ public:
        bool encrypted () const;
 
        void set_mxf_keys (Key);
+       void set_metadata (XMLMetadata m) {
+               _metadata = m;
+       }
 
        void write_xml (
                boost::filesystem::path file,
                Standard standard,
-               XMLMetadata,
                boost::shared_ptr<const Signer>
                ) const;
 
@@ -111,18 +113,18 @@ public:
 
 protected:
        /** @return type string for PKLs for this asset */
-       std::string pkl_type () const {
-               return "text/xml";
-       }
+       std::string pkl_type (Standard standard) const;
 
 private:
-       std::string _annotation_text;               ///< <AnnotationText>
-       std::string _issue_date;                    ///< <IssueDate>
-       std::string _creator;                       ///< <Creator>
-       std::string _content_title_text;            ///< <ContentTitleText>
-       ContentKind _content_kind;                  ///< <ContentKind>
-       std::string _content_version_id;            ///< <Id> in <ContentVersion>
-       std::string _content_version_label_text;    ///< <LabelText> in <ContentVersion>
+       std::string _annotation_text;               ///< &lt;AnnotationText&gt;
+       /** &lt;Issuer&gt;, &lt;Creator&gt; and &lt;IssueDate&gt;.  These are grouped
+        *  because they occur together in a few places.
+        */
+       XMLMetadata _metadata;
+       std::string _content_title_text;            ///< &lt;ContentTitleText&gt;
+       ContentKind _content_kind;                  ///< &lt;ContentKind&gt;
+       std::string _content_version_id;            ///< &lt;Id&gt; in &lt;ContentVersion&gt;
+       std::string _content_version_label_text;    ///< &lt;LabelText&gt; in &lt;ContentVersion&gt;
        std::list<boost::shared_ptr<Reel> > _reels;
 };