X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdcp_content.h;h=7ea9c3500f95b1284b05c9c9210cd742ad5004ff;hb=93d57d46e52e0050efda894fc3089a6410d55754;hp=be12ba5346eb7f81fa85dd75eec0df625818f8d3;hpb=f9068dcbfbb09082e29e2a779ef1a7a2f6ee849e;p=dcpomatic.git diff --git a/src/lib/dcp_content.h b/src/lib/dcp_content.h index be12ba534..7ea9c3500 100644 --- a/src/lib/dcp_content.h +++ b/src/lib/dcp_content.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington + Copyright (C) 2014-2016 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,9 +24,7 @@ * @brief DCPContent class. */ -#include "video_content.h" -#include "single_stream_audio_content.h" -#include "subtitle_content.h" +#include "content.h" #include #include @@ -39,10 +37,12 @@ public: static int const REFERENCE_SUBTITLE; }; +class ContentPart; + /** @class DCPContent * @brief An existing DCP used as input. */ -class DCPContent : public VideoContent, public SingleStreamAudioContent, public SubtitleContent +class DCPContent : public Content { public: DCPContent (boost::shared_ptr, boost::filesystem::path p); @@ -67,21 +67,6 @@ public: void set_default_colour_conversion (); std::list reel_split_points () const; - /* SubtitleContent */ - - bool has_text_subtitles () const { - boost::mutex::scoped_lock lm (_mutex); - return _has_subtitles; - } - - bool has_image_subtitles () const { - return false; - } - - double subtitle_video_frame_rate () const { - return video_frame_rate (); - } - boost::filesystem::path directory () const; bool encrypted () const { @@ -104,6 +89,8 @@ public: return _reference_video; } + bool can_reference_video (std::list &) const; + void set_reference_audio (bool r); bool reference_audio () const { @@ -111,6 +98,8 @@ public: return _reference_audio; } + bool can_reference_audio (std::list &) const; + void set_reference_subtitle (bool r); bool reference_subtitle () const { @@ -118,14 +107,20 @@ public: return _reference_subtitle; } -protected: - void add_properties (std::list >& p) const; + bool can_reference_subtitle (std::list &) const; private: + void add_properties (std::list& p) const; + void read_directory (boost::filesystem::path); + std::list reels () const; + bool can_reference ( + boost::function (boost::shared_ptr)>, + std::string overlapping, + std::list& why_not + ) const; std::string _name; - bool _has_subtitles; /** true if our DCP is encrypted */ bool _encrypted; boost::optional _kdm; @@ -143,6 +138,8 @@ private: * rather than by rewrapping. */ bool _reference_subtitle; + + boost::optional _standard; }; #endif