Disallow referencing of Interop DCPs in SMPTE films, and vice versa (#804).
[dcpomatic.git] / src / lib / dcp_examiner.h
index a2793c7880ca907b99ddb8d242e2736e4ea16c40..542f018c9eac9b806c9b41999bed8f5b247f2027 100644 (file)
 
 */
 
+/** @file  src/lib/dcp_examiner.h
+ *  @brief DCPExaminer class.
+ */
+
 #include "video_examiner.h"
+#include "audio_examiner.h"
 
 class DCPContent;
 
-class DCPExaminer : public VideoExaminer
+class DCPExaminer : public VideoExaminer, public AudioExaminer
 {
 public:
        DCPExaminer (boost::shared_ptr<const DCPContent>);
-       
-       float video_frame_rate () const {
-               return _video_frame_rate.get_value_or (24);
+
+       boost::optional<double> video_frame_rate () const {
+               return _video_frame_rate;
        }
-       
+
        dcp::Size video_size () const {
                return _video_size.get_value_or (dcp::Size (1998, 1080));
        }
-       
-       ContentTime video_length () const {
+
+       Frame video_length () const {
                return _video_length;
        }
 
+       bool yuv () const {
+               return false;
+       }
+
        std::string name () const {
                return _name;
        }
 
+       bool has_subtitles () const {
+               return _has_subtitles;
+       }
+
+       bool encrypted () const {
+               return _encrypted;
+       }
+
+       int audio_channels () const {
+               return _audio_channels.get_value_or (0);
+       }
+
+       Frame audio_length () const {
+               return _audio_length;
+       }
+
+       int audio_frame_rate () const {
+               return _audio_frame_rate.get_value_or (48000);
+       }
+
+       bool kdm_valid () const {
+               return _kdm_valid;
+       }
+
+       boost::optional<dcp::Standard> standard () const {
+               return _standard;
+       }
+
 private:
-       boost::optional<float> _video_frame_rate;
+       boost::optional<double> _video_frame_rate;
        boost::optional<dcp::Size> _video_size;
-       ContentTime _video_length;
-       /* XXX: used? */
+       Frame _video_length;
        boost::optional<int> _audio_channels;
        boost::optional<int> _audio_frame_rate;
+       Frame _audio_length;
        std::string _name;
+       bool _has_subtitles;
+       bool _encrypted;
+       bool _kdm_valid;
+       boost::optional<dcp::Standard> _standard;
 };