Pick up effect and effect color.
[libdcp.git] / src / subtitle_asset.h
index 71ae1401c6924acf5ca6b6a57971f7beec46d372..d3f9fa9b6ca95ed9ea1709bdb6434f397d140f02 100644 (file)
@@ -50,11 +50,17 @@ class FontNode : public XMLNode
 public:
        FontNode () {}
        FontNode (xmlpp::Node const * node);
+       FontNode (std::list<boost::shared_ptr<FontNode> > const & font_nodes);
 
        std::string id;
        int size;
+       boost::optional<bool> italic;
+       boost::optional<Color> color;
+       std::string effect;
+       boost::optional<Color> effect_color;
        
        std::list<boost::shared_ptr<SubtitleNode> > subtitle_nodes;
+       std::list<boost::shared_ptr<FontNode> > font_nodes;
 };
 
 class LoadFontNode : public XMLNode
@@ -72,17 +78,29 @@ class Subtitle
 public:
        Subtitle (
                std::string font,
+               bool italic,
+               Color color,
                int size,
                Time in,
                Time out,
                float v_position,
-               std::string text
+               std::string text,
+               std::string effect,
+               Color effect_color
                );
 
        std::string font () const {
                return _font;
        }
 
+       bool italic () const {
+               return _italic;
+       }
+
+       Color color () const {
+               return _color;
+       }
+
        Time in () const {
                return _in;
        }
@@ -99,15 +117,27 @@ public:
                return _v_position;
        }
 
+       std::string effect () const {
+               return _effect;
+       }
+
+       Color effect_color () const {
+               return _effect_color;
+       }
+
        int size_in_pixels (int screen_height) const;
 
 private:
        std::string _font;
+       bool _italic;
+       Color _color;
        int _size;
        Time _in;
        Time _out;
        float _v_position;
        std::string _text;
+       std::string _effect;
+       Color _effect_color;
 };
 
 class SubtitleAsset : public Asset, public XMLFile
@@ -127,18 +157,15 @@ public:
 
        std::list<boost::shared_ptr<Subtitle> > subtitles_at (Time t) const;
 
-       std::list<boost::shared_ptr<FontNode> > font_nodes () const {
-               return _font_nodes;
-       }
-
 private:
-       std::string font_id_to_name (std::string id, std::list<boost::shared_ptr<LoadFontNode> > const & load_font_nodes) const;
+       std::string font_id_to_name (std::string id) const;
+       void examine_font_node (boost::shared_ptr<FontNode> font_node, std::list<boost::shared_ptr<FontNode> >& current_font_nodes);
        
        std::string _subtitle_id;
        std::string _movie_title;
        int64_t _reel_number;
        std::string _language;
-       std::list<boost::shared_ptr<FontNode> > _font_nodes;
+       std::list<boost::shared_ptr<LoadFontNode> > _load_font_nodes;
 
        std::list<boost::shared_ptr<Subtitle> > _subtitles;
 };