X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fstring_text_file_content.cc;h=9a25ef06f00ce6e10532721b88183a9d0ed46d9a;hp=6c181bb912093c55fc2b30e724a05ab9b6a3127a;hb=5eb8b5c3a1566aef638e9d9df03b88d320735092;hpb=df17bbd25da69fc38eb2dcd8b4a2531cf0bab0bc diff --git a/src/lib/string_text_file_content.cc b/src/lib/string_text_file_content.cc index 6c181bb91..9a25ef06f 100644 --- a/src/lib/string_text_file_content.cc +++ b/src/lib/string_text_file_content.cc @@ -33,33 +33,35 @@ using std::string; using std::cout; using boost::shared_ptr; +using boost::optional; using dcp::raw_convert; +using namespace dcpomatic; -StringTextFileContent::StringTextFileContent (shared_ptr film, boost::filesystem::path path) - : Content (film, path) +StringTextFileContent::StringTextFileContent (boost::filesystem::path path) + : Content (path) { - caption.push_back (shared_ptr (new TextContent (this, CAPTION_OPEN))); + text.push_back (shared_ptr (new TextContent (this, TEXT_OPEN_SUBTITLE, TEXT_UNKNOWN))); } -StringTextFileContent::StringTextFileContent (shared_ptr film, cxml::ConstNodePtr node, int version) - : Content (film, node) +StringTextFileContent::StringTextFileContent (cxml::ConstNodePtr node, int version) + : Content (node) , _length (node->number_child ("Length")) { - caption = TextContent::from_xml (this, node, version); + text = TextContent::from_xml (this, node, version); } void -StringTextFileContent::examine (boost::shared_ptr job) +StringTextFileContent::examine (shared_ptr film, shared_ptr job) { - Content::examine (job); + Content::examine (film, job); StringTextFile s (shared_from_this ()); /* Default to turning these subtitles on */ - only_caption()->set_use (true); + only_text()->set_use (true); boost::mutex::scoped_lock lm (_mutex); _length = s.length (); - only_caption()->add_font (shared_ptr (new Font (TEXT_FONT_ID))); + only_text()->add_font (shared_ptr (new Font (TEXT_FONT_ID))); } string @@ -80,16 +82,30 @@ StringTextFileContent::as_xml (xmlpp::Node* node, bool with_paths) const node->add_child("Type")->add_child_text ("TextSubtitle"); Content::as_xml (node, with_paths); - if (only_caption()) { - only_caption()->as_xml (node); + if (only_text()) { + only_text()->as_xml (node); } node->add_child("Length")->add_child_text (raw_convert (_length.get ())); } DCPTime -StringTextFileContent::full_length () const +StringTextFileContent::full_length (shared_ptr film) const { - FrameRateChange const frc (active_video_frame_rate(), film()->video_frame_rate ()); + FrameRateChange const frc (film, shared_from_this()); return DCPTime (_length, frc); } + +DCPTime +StringTextFileContent::approximate_length () const +{ + return DCPTime (_length, FrameRateChange()); +} + +string +StringTextFileContent::identifier () const +{ + string s = Content::identifier (); + s += "_" + only_text()->identifier(); + return s; +}