diff options
Diffstat (limited to 'src/lib/string_text.cc')
| -rw-r--r-- | src/lib/string_text.cc | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/lib/string_text.cc b/src/lib/string_text.cc index 54ff32578..bf017caf8 100644 --- a/src/lib/string_text.cc +++ b/src/lib/string_text.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2016-2019 Carl Hetherington <cth@carlh.net> + Copyright (C) 2016-2020 Carl Hetherington <cth@carlh.net> This file is part of DCP-o-matic. @@ -19,6 +19,11 @@ */ #include "string_text.h" +#include <dcp/raw_convert.h> +#include <libxml++/libxml++.h> + +using std::string; +using dcp::raw_convert; bool operator== (StringText const & a, StringText const & b) @@ -26,3 +31,24 @@ operator== (StringText const & a, StringText const & b) return static_cast<dcp::SubtitleString const &>(a) == static_cast<dcp::SubtitleString const &>(b) && a.outline_width == b.outline_width; } +void +StringText::transfer_xml (xmlpp::Node* node) const +{ + if (font()) { + node->add_child("Font")->add_child_text(*font()); + } + node->add_child("Italic")->add_child_text(italic() ? "1" : "0"); + node->add_child("Bold")->add_child_text(bold() ? "1" : "0"); + node->add_child("Underline")->add_child_text(underline() ? "1" : "0"); + node->add_child("Colour")->add_child_text(colour().to_argb_string()); + node->add_child("Size")->add_child_text(raw_convert<string>(size())); + node->add_child("AspectAdjust")->add_child_text(raw_convert<string>(aspect_adjust())); + node->add_child("Direction")->add_child_text(dcp::direction_to_string(direction())); + node->add_child("Text")->add_child_text(text()); + node->add_child("Effect")->add_child_text(dcp::effect_to_string(effect())); + node->add_child("EffectColour")->add_child_text(effect_colour().to_argb_string()); + + node->add_child("OutlineWidth")->add_child_text(raw_convert<string>(outline_width)); +} + + |
