X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fcontent_subtitle.h;h=3c0ce523e8497e969836cf0305957fc323f2c46e;hp=6a28c37bf2c79b19eb3ffde4040f66559c6b277a;hb=aeb835a18c8df347e0ed68fb24631b320abeb611;hpb=e6c67f4aac2ca9afc275b6f13058e1e46f2cecc3 diff --git a/src/lib/content_subtitle.h b/src/lib/content_subtitle.h index 6a28c37bf..3c0ce523e 100644 --- a/src/lib/content_subtitle.h +++ b/src/lib/content_subtitle.h @@ -20,48 +20,53 @@ #ifndef DCPOMATIC_CONTENT_SUBTITLE_H #define DCPOMATIC_CONTENT_SUBTITLE_H -#include -#include #include "dcpomatic_time.h" #include "rect.h" +#include "image_subtitle.h" +#include +#include class Image; class ContentSubtitle { public: - virtual ContentTimePeriod period () const = 0; -}; - -class ContentImageSubtitle : public ContentSubtitle -{ -public: - ContentImageSubtitle (ContentTimePeriod p, boost::shared_ptr im, dcpomatic::Rect r) - : image (im) - , rectangle (r) - , _period (p) + ContentSubtitle (ContentTimePeriod p) + : _period (p) {} ContentTimePeriod period () const { return _period; } - boost::shared_ptr image; - dcpomatic::Rect rectangle; - private: ContentTimePeriod _period; }; +class ContentImageSubtitle : public ContentSubtitle +{ +public: + ContentImageSubtitle (ContentTimePeriod p, boost::shared_ptr im, dcpomatic::Rect r) + : ContentSubtitle (p) + , sub (im, r) + {} + + /* Our subtitle, with its rectangle unmodified by any offsets or scales that the content specifies */ + ImageSubtitle 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 (ContentTimePeriod p, std::list s) + : ContentSubtitle (p) + , subs (s) {} - ContentTimePeriod period () const; - std::list subs; };