X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fsubrip_content.h;h=68864f58c1a74830a4006e71f7387eceee5d03c7;hb=8f12ef26c5f6c0e9f408828b99ff8bdc90236406;hp=3a8380cec56e1846060c3eacad2ecf4ea7dac1f8;hpb=854f2e5bbb7ffb9758b823af87034033033f3cb8;p=dcpomatic.git diff --git a/src/lib/subrip_content.h b/src/lib/subrip_content.h index 3a8380cec..68864f58c 100644 --- a/src/lib/subrip_content.h +++ b/src/lib/subrip_content.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington + Copyright (C) 2014-2015 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 @@ -19,24 +19,73 @@ #include "subtitle_content.h" +class SubRipContentProperty +{ +public: + static int const SUBTITLE_COLOUR; + static int const SUBTITLE_OUTLINE; + static int const SUBTITLE_OUTLINE_COLOUR; +}; + + class SubRipContent : public SubtitleContent { public: SubRipContent (boost::shared_ptr, boost::filesystem::path); - SubRipContent (boost::shared_ptr, boost::shared_ptr, int); + SubRipContent (boost::shared_ptr, cxml::ConstNodePtr, int); boost::shared_ptr shared_from_this () { return boost::dynamic_pointer_cast (Content::shared_from_this ()); } - + + /* Content */ void examine (boost::shared_ptr); std::string summary () const; std::string technical_summary () const; - std::string information () const; void as_xml (xmlpp::Node *) const; DCPTime full_length () const; - std::string identifier () const; + + /* SubtitleContent */ + + bool has_text_subtitles () const { + return true; + } + + bool has_image_subtitles () const { + return false; + } + + double subtitle_video_frame_rate () const; + void set_subtitle_video_frame_rate (int r); + + void set_colour (dcp::Colour); + + dcp::Colour colour () const { + boost::mutex::scoped_lock lm (_mutex); + return _colour; + } + + void set_outline (bool); + + bool outline () const { + boost::mutex::scoped_lock lm (_mutex); + return _outline; + } + + void set_outline_colour (dcp::Colour); + + dcp::Colour outline_colour () const { + boost::mutex::scoped_lock lm (_mutex); + return _outline_colour; + } + + static std::string const font_id; private: - DCPTime _length; + ContentTime _length; + /** Video frame rate that this content has been prepared for, if known */ + boost::optional _frame_rate; + dcp::Colour _colour; + bool _outline; + dcp::Colour _outline_colour; };