X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fsubtitle.h;h=590e0dd31b8ac2865d680b5f3e7343bc76560e39;hb=2231b171b4b624f4b747031727f61bd93f80957f;hp=6fd0d8772643fe3ca8d92d27238a452b53bd867e;hpb=a066feba1b455a72fe10b7baa79f17f69cd24ba9;p=dcpomatic.git diff --git a/src/lib/subtitle.h b/src/lib/subtitle.h index 6fd0d8772..590e0dd31 100644 --- a/src/lib/subtitle.h +++ b/src/lib/subtitle.h @@ -17,59 +17,65 @@ */ +/** @file src/subtitle.h + * @brief Representations of subtitles. + */ + #include #include #include "util.h" struct AVSubtitle; -class SubtitleImage; class Image; -class FilmState; +/** 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, int subtitle_offset, float subtitle_scale + 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 &, double c); - 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; } - Rectangle area () const; - 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; };