dcpdiff option to allow issue dates to differ.
[libdcp.git] / src / subtitle_string.h
index cf787e641eaab946be3ddc58f25f70537f4922d7..6713584a118f5aca4761b35e088b254eb7eb3d93 100644 (file)
@@ -1,20 +1,34 @@
 /*
-    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2016 Carl Hetherington <cth@carlh.net>
 
-    This program is free software; you can redistribute it and/or modify
+    This file is part of libdcp.
+
+    libdcp 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,
+    libdcp 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 libdcp.  If not, see <http://www.gnu.org/licenses/>.
+
+    In addition, as a special exception, the copyright holders give
+    permission to link the code of portions of this program with the
+    OpenSSL library under certain conditions as described in each
+    individual source file, and distribute linked combinations
+    including the two.
+
+    You must obey the GNU General Public License in all respects
+    for all of the code used other than OpenSSL.  If you modify
+    file(s) with this exception, you may extend this exception to your
+    version of the file(s), but you are not obligated to do so.  If you
+    do not wish to do so, delete this exception statement from your
+    version.  If you delete this exception statement from all source
+    files in the program, then also delete it here.
 */
 
 /** @file  src/subtitle_string.h
@@ -40,13 +54,18 @@ public:
        SubtitleString (
                boost::optional<std::string> font,
                bool italic,
+               bool bold,
+               bool underline,
                Colour colour,
                int size,
                float aspect_adjust,
                Time in,
                Time out,
+               float h_position,
+               HAlign h_align,
                float v_position,
                VAlign v_align,
+               Direction direction,
                std::string text,
                Effect effect,
                Colour effect_colour,
@@ -63,6 +82,14 @@ public:
                return _italic;
        }
 
+       bool bold () const {
+               return _bold;
+       }
+
+       bool underline () const {
+               return _underline;
+       }
+
        Colour colour () const {
                return _colour;
        }
@@ -79,7 +106,16 @@ public:
                return _text;
        }
 
-       /** @return vertical position as a proportion of the screen height from the top
+       float h_position () const {
+               return _h_position;
+       }
+
+       HAlign h_align () const {
+               return _h_align;
+       }
+
+       /** @return vertical position as a proportion of the screen height from the
+        *  vertical alignment point.
         *  (between 0 and 1)
         */
        float v_position () const {
@@ -90,6 +126,10 @@ public:
                return _v_align;
        }
 
+       Direction direction () const {
+               return _direction;
+       }
+
        Effect effect () const {
                return _effect;
        }
@@ -120,6 +160,18 @@ public:
                return _aspect_adjust;
        }
 
+       void set_in (Time i) {
+               _in = i;
+       }
+
+       void set_out (Time o) {
+               _out = o;
+       }
+
+       void set_h_position (float p) {
+               _h_position = p;
+       }
+
        /** @param p New vertical position as a proportion of the screen height
         *  from the top (between 0 and 1)
         */
@@ -135,25 +187,39 @@ public:
                _aspect_adjust = a;
        }
 
+       void set_text (std::string t) {
+               _text = t;
+       }
+
 private:
        /** font ID */
        boost::optional<std::string> _font;
        /** true if the text is italic */
        bool _italic;
+       /** true if the weight is bold, false for normal */
+       bool _bold;
+       /** true to enable underlining, false otherwise */
+       bool _underline;
        /** text colour */
        Colour _colour;
        /** Size in points as if the screen height is 11 inches, so a 72pt font
         *  would be 1/11th of the screen height.
-        */ 
+        */
        int _size;
        float _aspect_adjust;
        Time _in;
        Time _out;
+       /** Horizontal position as a proportion of the screen width from the _h_align
+        *  (between 0 and 1)
+        */
+       float _h_position;
+       HAlign _h_align;
        /** Vertical position as a proportion of the screen height from the _v_align
         *  (between 0 and 1)
         */
        float _v_position;
        VAlign _v_align;
+       Direction _direction;
        std::string _text;
        Effect _effect;
        Colour _effect_colour;