Merge master.
[dcpomatic.git] / src / lib / isdcf_metadata.h
1 /*
2     Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
3
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU General Public License
15     along with this program; if not, write to the Free Software
16     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18 */
19
20 #ifndef DCPOMATIC_ISDCF_METADATA_H
21 #define DCPOMATIC_ISDCF_METADATA_H
22
23 #include <string>
24 #include <libxml++/libxml++.h>
25 #include <libcxml/cxml.h>
26
27 class ISDCFMetadata
28 {
29 public:
30         ISDCFMetadata ()
31                 : content_version (1)
32                 , temp_version (false)
33                 , pre_release (false)
34                 , red_band (false)
35                 , two_d_version_of_three_d (false)
36         {}
37         
38         ISDCFMetadata (cxml::ConstNodePtr);
39
40         void as_xml (xmlpp::Node *) const;
41         void read_old_metadata (std::string, std::string);
42
43         int content_version;
44         std::string audio_language;
45         std::string subtitle_language;
46         std::string territory;
47         std::string rating;
48         std::string studio;
49         std::string facility;
50         std::string package_type;
51         /** true if this is a temporary version (without final picture or sound) */
52         bool temp_version;
53         /** true if this is a pre-release version (final picture and sound, but without accessibility features) */
54         bool pre_release;
55         /** true if this has adult content */
56         bool red_band;
57         /** specific theatre chain or event */
58         std::string chain;
59         /** true if this is a 2D version of content that also exists in 3D */
60         bool two_d_version_of_three_d;
61         /** mastered luminance if there are multiple versions distributed (e.g. 35, 4fl, 6fl etc.) */
62         std::string mastered_luminance;
63 };
64
65 #endif