Add direction support for SMPTE subtitles; fix pragma warnings with non-openmp builds.
[libdcp.git] / src / subtitle_string.cc
index d565d453ae2eb91f4d3ffbe90aa50898e2b29b16..7ba6e0e112910748f69e6f949d77c9020ba9fffb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    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
     it under the terms of the GNU General Public License as published by
@@ -30,6 +30,7 @@ using namespace dcp;
 SubtitleString::SubtitleString (
        optional<string> font,
        bool italic,
+       bool bold,
        Colour colour,
        int size,
        float aspect_adjust,
@@ -39,6 +40,7 @@ SubtitleString::SubtitleString (
        HAlign h_align,
        float v_position,
        VAlign v_align,
+       Direction direction,
        string text,
        Effect effect,
        Colour effect_colour,
@@ -47,6 +49,7 @@ SubtitleString::SubtitleString (
        )
        : _font (font)
        , _italic (italic)
+       , _bold (bold)
        , _colour (colour)
        , _size (size)
        , _aspect_adjust (aspect_adjust)
@@ -56,6 +59,7 @@ SubtitleString::SubtitleString (
        , _h_align (h_align)
        , _v_position (v_position)
        , _v_align (v_align)
+       , _direction (direction)
        , _text (text)
        , _effect (effect)
        , _effect_colour (effect_colour)
@@ -82,6 +86,7 @@ dcp::operator== (SubtitleString const & a, SubtitleString const & b)
        return (
                a.font() == b.font() &&
                a.italic() == b.italic() &&
+               a.bold() == b.bold() &&
                a.colour() == b.colour() &&
                a.size() == b.size() &&
                fabs (a.aspect_adjust() - b.aspect_adjust()) < ASPECT_ADJUST_EPSILON &&
@@ -91,6 +96,7 @@ dcp::operator== (SubtitleString const & a, SubtitleString const & b)
                a.h_align() == b.h_align() &&
                a.v_position() == b.v_position() &&
                a.v_align() == b.v_align() &&
+               a.direction() == b.direction() &&
                a.text() == b.text() &&
                a.effect() == b.effect() &&
                a.effect_colour() == b.effect_colour() &&
@@ -107,14 +113,21 @@ dcp::operator<< (ostream& s, SubtitleString const & sub)
          << "font " << sub.font().get_value_or ("[default]") << ", ";
 
        if (sub.italic()) {
-               s << "italic";
+               s << "italic";
        } else {
-               s << "non-italic";
+               s << "non-italic";
        }
 
-       s << ", size " << sub.size() << ", aspect " << sub.aspect_adjust() << ", colour " << sub.colour()
+       if (sub.bold()) {
+               s << "bold, ";
+       } else {
+               s << "normal, ";
+       }
+
+       s << "size " << sub.size() << ", aspect " << sub.aspect_adjust() << ", colour " << sub.colour()
          << ", vpos " << sub.v_position() << ", valign " << ((int) sub.v_align())
          << ", hpos " << sub.h_position() << ", halign " << ((int) sub.h_align())
+         << ", direction " << ((int) sub.direction())
          << ", effect " << ((int) sub.effect()) << ", effect colour " << sub.effect_colour();
 
        return s;