X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fcontent_subtitle.h;h=5a3e8157cfb06011c16ded74831164b82aab1c6d;hb=d3c009991a782fa51e85828c7600994a9dd91559;hp=8868618ada940ccf883f552dbf075ab449fab3bb;hpb=7b2054e2a73844450b5b55c5788c02af671812ce;p=dcpomatic.git diff --git a/src/lib/content_subtitle.h b/src/lib/content_subtitle.h index 8868618ad..5a3e8157c 100644 --- a/src/lib/content_subtitle.h +++ b/src/lib/content_subtitle.h @@ -1,67 +1,73 @@ /* Copyright (C) 2014 Carl Hetherington - This program is free software; you can redistribute it and/or modify + 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. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ #ifndef DCPOMATIC_CONTENT_SUBTITLE_H #define DCPOMATIC_CONTENT_SUBTITLE_H -#include -#include #include "dcpomatic_time.h" #include "rect.h" -#include "image_subtitle.h" +#include "bitmap_text.h" +#include +#include class Image; class ContentSubtitle { public: - virtual ContentTimePeriod period () const = 0; + explicit ContentSubtitle (ContentTime f) + : _from (f) + {} + + ContentTime from () const { + return _from; + } + +private: + ContentTime _from; }; -class ContentImageSubtitle : public ContentSubtitle +class ContentBitmapText : public ContentSubtitle { public: - ContentImageSubtitle (ContentTimePeriod p, boost::shared_ptr im, dcpomatic::Rect r) - : sub (im, r) - , _period (p) + ContentBitmapText (ContentTime f, boost::shared_ptr im, dcpomatic::Rect r) + : ContentSubtitle (f) + , sub (im, r) {} - ContentTimePeriod period () const { - return _period; - } - /* Our subtitle, with its rectangle unmodified by any offsets or scales that the content specifies */ - ImageSubtitle sub; - -private: - ContentTimePeriod _period; + BitmapText sub; }; +/** A text subtitle. We store the time period separately (as well as in the dcp::SubtitleStrings) + * as the dcp::SubtitleString timings are sometimes quite heavily quantised and this causes problems + * when we want to compare the quantised periods to the unquantised ones. + */ class ContentTextSubtitle : public ContentSubtitle { public: - ContentTextSubtitle (std::list s) - : subs (s) + ContentTextSubtitle (ContentTime f, std::list s) + : ContentSubtitle (f) + , subs (s) {} - ContentTimePeriod period () const; - std::list subs; };