Merge master.
[dcpomatic.git] / src / lib / subtitle.h
index ef9571ad4f6a0f849b80ac61ce54858a77399b9e..c3929d676ef721b39de7f6d68bbca40e6dce6513 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
+
 /*
     Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
 
 
 */
 
+/** @file  src/subtitle.h
+ *  @brief Representations of subtitles.
+ */
+
 #include <list>
 #include <boost/shared_ptr.hpp>
-#include "util.h"
+#include "types.h"
 
 struct AVSubtitle;
 class Image;
 
+/** A subtitle, consisting of an image and a position */
 class Subtitle
 {
 public:
-       Subtitle (AVSubtitle const &);
        Subtitle (Position p, boost::shared_ptr<Image> i);
 
-       bool displayed_at (double t);
-
        void set_position (Position p) {
                _position = p;
        }
@@ -44,20 +48,36 @@ public:
                return _image;
        }
 
-       Rectangle area () const;
+       dvdomatic::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;
        Position _position;
        boost::shared_ptr<Image> _image;
 };
 
-Rectangle
+dvdomatic::Rect
 subtitle_transformed_area (
        float target_x_scale, float target_y_scale,
-       Rectangle sub_area, int subtitle_offset, float subtitle_scale
+       dvdomatic::Rect sub_area, int subtitle_offset, float subtitle_scale
        );
+
+/** A Subtitle class with details of the time over which it should be shown */
+class TimedSubtitle
+{
+public:
+       TimedSubtitle (AVSubtitle const &);
+
+       bool displayed_at (Time) const;
        
+       boost::shared_ptr<Subtitle> subtitle () const {
+               return _subtitle;
+       }
+
+private:
+       /** the subtitle */
+       boost::shared_ptr<Subtitle> _subtitle;
+       /** display from time from the start of the content */
+       Time _from;
+       /** display to time from the start of the content */
+       Time _to;
+};