From df17bbd25da69fc38eb2dcd8b4a2531cf0bab0bc Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 23 Jul 2018 11:20:12 +0100 Subject: More automated renaming. ActiveCaptions -> ActiveText BitmapCaption -> BitmapText ContentCaption -> ContentText ContentTextCaption -> ContentStringText TextCaptionFileContent -> StringTextFileContent TextCaptionFileDecoder -> StringTextFileDecoder TextCaptionFile -> StringTextFile TextCaption -> StringText PlayerCaption -> PlayerText CaptionContent -> TextContent CaptionDecoder -> TextDecoder CaptionPanel -> TextPanel CaptionView -> TextView CaptionAppearanceDialog -> SubtitleAppearanceDialog CaptionType -> TextType --- src/lib/active_text.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/lib/active_text.h (limited to 'src/lib/active_text.h') diff --git a/src/lib/active_text.h b/src/lib/active_text.h new file mode 100644 index 000000000..10ce30f08 --- /dev/null +++ b/src/lib/active_text.h @@ -0,0 +1,68 @@ +/* + Copyright (C) 2017-2018 Carl Hetherington + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see . + +*/ + +/** @file src/lib/active_captions.h + * @brief ActiveText class. + */ + +#include "dcpomatic_time.h" +#include "player_text.h" +#include +#include +#include + +class TextContent; + +/** @class ActiveText + * @brief A class to maintain information on active subtitles for Player. + */ +class ActiveText : public boost::noncopyable +{ +public: + std::list get (DCPTimePeriod period) const; + std::list get_burnt (DCPTimePeriod period, bool always_burn_captions) const; + void clear_before (DCPTime time); + void clear (); + void add_from (boost::weak_ptr content, PlayerText ps, DCPTime from); + std::pair add_to (boost::weak_ptr content, DCPTime to); + bool have (boost::weak_ptr content) const; + +private: + class Period + { + public: + Period () {} + + Period (PlayerText s, DCPTime f) + : subs (s) + , from (f) + {} + + PlayerText subs; + DCPTime from; + boost::optional to; + }; + + typedef std::map, std::list > Map; + + void add (DCPTimePeriod period, std::list& pc, std::list p) const; + + Map _data; +}; -- cgit v1.2.3