Bump version
[dcpomatic.git] / src / lib / types.h
index ad706270e66a79d2ace667d79604f35bc9c69de4..4eb3d927e5090c8af08ef0c3cdc1167e9fe88929 100644 (file)
@@ -29,13 +29,22 @@ class Content;
 class VideoContent;
 class AudioContent;
 class SubtitleContent;
+class FFmpegContent;
 class AudioBuffers;
 
+namespace cxml {
+       class Node;
+}
+
+namespace xmlpp {
+       class Node;
+}
+
 /** The version number of the protocol used to communicate
  *  with servers.  Intended to be bumped when incompatibilities
  *  are introduced.
  */
-#define SERVER_LINK_VERSION 1
+#define SERVER_LINK_VERSION 2
 
 typedef int64_t Time;
 #define TIME_MAX INT64_MAX
@@ -46,6 +55,7 @@ typedef std::vector<boost::shared_ptr<Content> > ContentList;
 typedef std::vector<boost::shared_ptr<VideoContent> > VideoContentList;
 typedef std::vector<boost::shared_ptr<AudioContent> > AudioContentList;
 typedef std::vector<boost::shared_ptr<SubtitleContent> > SubtitleContentList;
+typedef std::vector<boost::shared_ptr<FFmpegContent> > FFmpegContentList;
 
 template<class T>
 struct TimedAudioBuffers
@@ -66,7 +76,13 @@ struct TimedAudioBuffers
 enum VideoFrameType
 {
        VIDEO_FRAME_TYPE_2D,
-       VIDEO_FRAME_TYPE_3D_LEFT_RIGHT
+       VIDEO_FRAME_TYPE_3D_LEFT_RIGHT,
+       VIDEO_FRAME_TYPE_3D_TOP_BOTTOM,
+       VIDEO_FRAME_TYPE_3D_ALTERNATE,
+       /** This content is all the left frames of some 3D */
+       VIDEO_FRAME_TYPE_3D_LEFT,
+       /** This content is all the right frames of some 3D */
+       VIDEO_FRAME_TYPE_3D_RIGHT
 };
 
 enum Eyes
@@ -77,6 +93,15 @@ enum Eyes
        EYES_COUNT
 };
 
+enum Part
+{
+       PART_LEFT_HALF,
+       PART_RIGHT_HALF,
+       PART_TOP_HALF,
+       PART_BOTTOM_HALF,
+       PART_WHOLE
+};
+
 /** @struct Crop
  *  @brief A description of the crop of an image or video.
  */
@@ -84,6 +109,7 @@ struct Crop
 {
        Crop () : left (0), right (0), top (0), bottom (0) {}
        Crop (int l, int r, int t, int b) : left (l), right (r), top (t), bottom (b) {}
+       Crop (boost::shared_ptr<cxml::Node>);
 
        /** Number of pixels to remove from the left-hand side */
        int left;
@@ -108,6 +134,23 @@ struct Crop
                
                return s;
        }
+
+       void as_xml (xmlpp::Node *) const;
+};
+
+struct CPLSummary
+{
+       CPLSummary (std::string d, std::string i, std::string a, boost::filesystem::path f)
+               : dcp_directory (d)
+               , cpl_id (i)
+               , cpl_annotation_text (a)
+               , cpl_file (f)
+       {}
+       
+       std::string dcp_directory;
+       std::string cpl_id;
+       std::string cpl_annotation_text;
+       boost::filesystem::path cpl_file;
 };
 
 extern bool operator== (Crop const & a, Crop const & b);