Another macOS std::list boost::thread SNAFU.
[dcpomatic.git] / src / lib / spl_entry.h
index e79d89afcf7263f0cdd37f7a7e126c95ebd2ec82..d939ec66a23193d205972f5f033559ed4726ebcc 100644 (file)
 #ifndef DCPOMATIC_SPL_ENTRY_H
 #define DCPOMATIC_SPL_ENTRY_H
 
-#include "dcpomatic_time.h"
+#include <libcxml/cxml.h>
+#include <dcp/types.h>
+#include <boost/shared_ptr.hpp>
 
-namespace dcp {
-       class CPL;
+namespace xmlpp {
+       class Element;
 }
 
+class Content;
+
 class SPLEntry
 {
 public:
-       SPLEntry (boost::shared_ptr<dcp::CPL> cpl_, boost::filesystem::path directory_)
-               : cpl (cpl_)
-               , directory (directory_)
-       {}
-
-       /* Length of black before this DCP */
-       DCPTime black_before;
-       boost::shared_ptr<dcp::CPL> cpl;
-       boost::filesystem::path directory;
+       SPLEntry (boost::shared_ptr<Content> content);
+       SPLEntry (boost::shared_ptr<Content> content, cxml::ConstNodePtr node);
+
+       void as_xml (xmlpp::Element* e);
+
+       boost::shared_ptr<Content> content;
+       std::string name;
+       /** Digest of this content */
+       std::string digest;
+       /** CPL ID or something else for MP4 (?) */
+       std::string id;
+       dcp::ContentKind kind;
+       enum Type {
+               DCP,
+               ECINEMA
+       };
+       Type type;
+       bool encrypted;
+       bool skippable;
+       bool disable_timeline;
+       bool stop_after_play;
+
+private:
+       void construct (boost::shared_ptr<Content> content);
 };
 
 #endif