X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fsubtitle.h;h=38ba4e70e0170fabd5e2a71ee2ad9eadceb5a2ee;hb=eac941aed6e6eed7f0329e42c7a036ed620f8df0;hp=0b82320a1e939fa58dc532e396cd63296e0743c1;hpb=48c8f23660184486efbb34df9d677108b0eab204;p=dcpomatic.git diff --git a/src/lib/subtitle.h b/src/lib/subtitle.h index 0b82320a1..38ba4e70e 100644 --- a/src/lib/subtitle.h +++ b/src/lib/subtitle.h @@ -17,58 +17,65 @@ */ +/** @file src/subtitle.h + * @brief Representations of subtitles. + */ + #include #include #include "util.h" struct AVSubtitle; -class SubtitleImage; -class SimpleImage; -class FilmState; +class Image; +/** A subtitle, consisting of an image and a position */ class Subtitle { public: - Subtitle (AVSubtitle const &); + Subtitle (Position p, boost::shared_ptr i); - bool displayed_at (double t); + void set_position (Position p) { + _position = p; + } - std::list > images () const { - return _images; + Position position () const { + return _position; + } + + boost::shared_ptr image () const { + return _image; } + Rect area () const; + private: - /** display from time in seconds from the start of the film */ - double _from; - /** display to time in seconds from the start of the film */ - double _to; - std::list > _images; + Position _position; + boost::shared_ptr _image; }; -extern Rectangle transformed_subtitle_area ( +Rect +subtitle_transformed_area ( float target_x_scale, float target_y_scale, - Rectangle sub_area, - boost::shared_ptr fs + Rect sub_area, int subtitle_offset, float subtitle_scale ); -class SubtitleImage +/** A Subtitle class with details of the time over which it should be shown */ +class TimedSubtitle { public: - SubtitleImage (AVSubtitleRect const *); + TimedSubtitle (AVSubtitle const &); - void set_position (Position p) { - _position = p; - } - - Position position () const { - return _position; - } + bool displayed_at (double t) const; - boost::shared_ptr image () const { - return _image; + boost::shared_ptr subtitle () const { + return _subtitle; } private: - Position _position; - boost::shared_ptr _image; + /** the subtitle */ + boost::shared_ptr _subtitle; + /** display from time in seconds from the start of the film */ + double _from; + /** display to time in seconds from the start of the film */ + double _to; };