Windows build fixes.
[libdcp.git] / src / cpl.h
1 #include <stdint.h>
2 #include <boost/shared_ptr.hpp>
3 #include "xml.h"
4
5 namespace libdcp {
6
7 class MainPicture : public XMLNode
8 {
9 public:
10         MainPicture () {}
11         MainPicture (xmlpp::Node const * node);
12
13         std::string id;
14         std::string annotation_text;
15         Fraction edit_rate;
16         int64_t intrinsic_duration;
17         int64_t entry_point;
18         int64_t duration;
19         Fraction frame_rate;
20         Fraction screen_aspect_ratio;
21 };
22
23 class MainSound : public XMLNode
24 {
25 public:
26         MainSound () {}
27         MainSound (xmlpp::Node const * node);
28
29         std::string id;
30         std::string annotation_text;
31         Fraction edit_rate;
32         int64_t intrinsic_duration;
33         int64_t entry_point;
34         int64_t duration;
35 };
36
37 class CPLAssetList : public XMLNode
38 {
39 public:
40         CPLAssetList () {}
41         CPLAssetList (xmlpp::Node const * node);
42
43         boost::shared_ptr<MainPicture> main_picture;
44         boost::shared_ptr<MainSound> main_sound;
45 };
46
47 class Reel : public XMLNode
48 {
49 public:
50         Reel () {}
51         Reel (xmlpp::Node const * node);
52
53         std::string id;
54         boost::shared_ptr<CPLAssetList> asset_list;
55 };
56
57 class ContentVersion : public XMLNode
58 {
59 public:
60         ContentVersion () {}
61         ContentVersion (xmlpp::Node const * node);
62
63         std::string id;
64         std::string label_text;
65 };
66
67 class CPL : public XMLFile
68 {
69 public:
70         CPL (std::string file);
71
72         std::string id;
73         std::string annotation_text;
74         std::string issue_date;
75         std::string creator;
76         std::string content_title_text;
77         ContentKind content_kind;
78         boost::shared_ptr<ContentVersion> content_version;
79         std::list<boost::shared_ptr<Reel> > reels;
80 };
81
82 }
83