diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-08-22 21:04:56 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-08-22 21:04:56 +0100 |
| commit | 2571104b6a208fa00b2c98d50f97849c3e7fa6c9 (patch) | |
| tree | 0e2db3a2bef44ce98066fd966c9a32be7af163f6 /src/lib | |
| parent | ea9715cdfee4349ae9680b890032b0f9c61d5620 (diff) | |
Store a name with text content.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/text_content.cc | 33 | ||||
| -rw-r--r-- | src/lib/text_content.h | 9 |
2 files changed, 31 insertions, 11 deletions
diff --git a/src/lib/text_content.cc b/src/lib/text_content.cc index a077b2c46..abc68cf65 100644 --- a/src/lib/text_content.cc +++ b/src/lib/text_content.cc @@ -46,16 +46,17 @@ int const TextContentProperty::X_SCALE = 502; int const TextContentProperty::Y_SCALE = 503; int const TextContentProperty::USE = 504; int const TextContentProperty::BURN = 505; -int const TextContentProperty::LANGUAGE = 506; -int const TextContentProperty::FONTS = 507; -int const TextContentProperty::COLOUR = 508; -int const TextContentProperty::EFFECT = 509; -int const TextContentProperty::EFFECT_COLOUR = 510; -int const TextContentProperty::LINE_SPACING = 511; -int const TextContentProperty::FADE_IN = 512; -int const TextContentProperty::FADE_OUT = 513; -int const TextContentProperty::OUTLINE_WIDTH = 514; -int const TextContentProperty::TYPE = 515; +int const TextContentProperty::NAME = 506; +int const TextContentProperty::LANGUAGE = 507; +int const TextContentProperty::FONTS = 508; +int const TextContentProperty::COLOUR = 509; +int const TextContentProperty::EFFECT = 510; +int const TextContentProperty::EFFECT_COLOUR = 511; +int const TextContentProperty::LINE_SPACING = 512; +int const TextContentProperty::FADE_IN = 513; +int const TextContentProperty::FADE_OUT = 514; +int const TextContentProperty::OUTLINE_WIDTH = 515; +int const TextContentProperty::TYPE = 516; TextContent::TextContent (Content* parent, TextType type, TextType original_type) : ContentPart (parent) @@ -218,6 +219,8 @@ TextContent::TextContent (Content* parent, cxml::ConstNodePtr node, int version) _language = node->optional_string_child ("SubtitleLanguage").get_value_or (""); } + _name = node->optional_string_child("Name").get_value_or(""); + list<cxml::NodePtr> fonts = node->node_children ("Font"); for (list<cxml::NodePtr>::const_iterator i = fonts.begin(); i != fonts.end(); ++i) { _fonts.push_back (shared_ptr<Font> (new Font (*i))); @@ -304,6 +307,7 @@ TextContent::TextContent (Content* parent, vector<shared_ptr<Content> > c) _y_offset = ref->y_offset (); _x_scale = ref->x_scale (); _y_scale = ref->y_scale (); + _name = ref->name (); _language = ref->language (); _fonts = ref_fonts; _line_spacing = ref->line_spacing (); @@ -330,6 +334,7 @@ TextContent::as_xml (xmlpp::Node* root) const text->add_child("YOffset")->add_child_text (raw_convert<string> (_y_offset)); text->add_child("XScale")->add_child_text (raw_convert<string> (_x_scale)); text->add_child("YScale")->add_child_text (raw_convert<string> (_y_scale)); + text->add_child("Name")->add_child_text (_name); text->add_child("Language")->add_child_text (_language); if (_colour) { text->add_child("Red")->add_child_text (raw_convert<string> (_colour->r)); @@ -395,7 +400,7 @@ TextContent::identifier () const } } - /* The language is for metadata only, and doesn't affect + /* The name and language are for metadata only, and don't affect how this content looks. */ @@ -503,6 +508,12 @@ TextContent::set_y_scale (double s) } void +TextContent::set_name (string name) +{ + maybe_set (_name, name, TextContentProperty::NAME); +} + +void TextContent::set_language (string language) { maybe_set (_language, language, TextContentProperty::LANGUAGE); diff --git a/src/lib/text_content.h b/src/lib/text_content.h index e5981acaf..0327d4a97 100644 --- a/src/lib/text_content.h +++ b/src/lib/text_content.h @@ -37,6 +37,7 @@ public: static int const Y_SCALE; static int const USE; static int const BURN; + static int const NAME; static int const LANGUAGE; static int const FONTS; static int const COLOUR; @@ -73,6 +74,7 @@ public: void set_y_offset (double); void set_x_scale (double); void set_y_scale (double); + void set_name (std::string name); void set_language (std::string language); void set_colour (dcp::Colour); void unset_colour (); @@ -123,6 +125,11 @@ public: return _fonts; } + std::string name () const { + boost::mutex::scoped_lock lm (_mutex); + return _name; + } + std::string language () const { boost::mutex::scoped_lock lm (_mutex); return _language; @@ -176,6 +183,8 @@ public: static std::list<boost::shared_ptr<TextContent> > from_xml (Content* parent, cxml::ConstNodePtr, int version); protected: + /** Name (annotation text) for this subtitle */ + std::string _name; /** subtitle language (e.g. "German") or empty if it is not known */ std::string _language; |
