Switch to testing on Ubuntu 16.04 and 22.04.
[libdcp.git] / src / subtitle_asset_internal.h
index 9b5bb2da67ea67ad71863ff8cdcab7680089a851..adf2c994788f037bbc8d0e52311d70c6fb3401d6 100644 (file)
@@ -43,8 +43,9 @@
 
 #include "array_data.h"
 #include "dcp_time.h"
+#include "h_align.h"
 #include "raw_convert.h"
-#include "types.h"
+#include "v_align.h"
 #include "warnings.h"
 LIBDCP_DISABLE_WARNINGS
 #include <libxml++/libxml++.h>
@@ -69,8 +70,6 @@ namespace order {
 
 struct Context
 {
-       std::string xmlns () const;
-
        int time_code_rate;
        Standard standard;
        int spot_number;
@@ -129,26 +128,30 @@ public:
 class String : public Part
 {
 public:
-       String (std::shared_ptr<Part> parent, Font font, std::string text_)
+       String (std::shared_ptr<Part> parent, Font font, std::string text, float space_before)
                : Part (parent, font)
-               , text (text_)
+               , _text (text)
+               , _space_before (space_before)
        {}
 
        virtual xmlpp::Element* as_xml (xmlpp::Element* parent, Context &) const override;
 
-       std::string text;
+private:
+       std::string _text;
+       float _space_before;
 };
 
 
 class Text : public Part
 {
 public:
-       Text (std::shared_ptr<Part> parent, HAlign h_align, float h_position, VAlign v_align, float v_position, Direction direction)
+       Text (std::shared_ptr<Part> parent, HAlign h_align, float h_position, VAlign v_align, float v_position, float z_position, Direction direction)
                : Part (parent)
                , _h_align (h_align)
                , _h_position (h_position)
                , _v_align (v_align)
                , _v_position (v_position)
+               , _z_position(z_position)
                , _direction (direction)
        {}
 
@@ -159,6 +162,7 @@ private:
        float _h_position;
        VAlign _v_align;
        float _v_position;
+       float _z_position;
        Direction _direction;
 };
 
@@ -187,7 +191,7 @@ private:
 class Image : public Part
 {
 public:
-       Image (std::shared_ptr<Part> parent, std::string id, ArrayData png_data, HAlign h_align, float h_position, VAlign v_align, float v_position)
+       Image (std::shared_ptr<Part> parent, std::string id, ArrayData png_data, HAlign h_align, float h_position, VAlign v_align, float v_position, float z_position)
                : Part (parent)
                , _png_data (png_data)
                , _id (id)
@@ -195,6 +199,7 @@ public:
                , _h_position (h_position)
                , _v_align (v_align)
                , _v_position (v_position)
+               , _z_position(z_position)
        {}
 
        xmlpp::Element* as_xml (xmlpp::Element* parent, Context& context) const override;
@@ -206,6 +211,7 @@ private:
        float _h_position;
        VAlign _v_align;
        float _v_position;
+       float _z_position;
 };