diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-01-26 21:35:02 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-01-26 21:35:02 +0000 |
| commit | 59886567974bd3e79d30a4a9425d86d50bf425f3 (patch) | |
| tree | 68e583a64144f5cbffede882e1187ecf737b2e43 /src/parse/subtitle.cc | |
| parent | 0703842433013ac1d5f79c09d7a8361dc2e565c8 (diff) | |
It builds again.
Diffstat (limited to 'src/parse/subtitle.cc')
| -rw-r--r-- | src/parse/subtitle.cc | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/src/parse/subtitle.cc b/src/parse/subtitle.cc deleted file mode 100644 index 3f9869b4..00000000 --- a/src/parse/subtitle.cc +++ /dev/null @@ -1,135 +0,0 @@ -/* - Copyright (C) 2012-2013 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 - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#include <boost/shared_ptr.hpp> -#include <boost/optional.hpp> -#include "subtitle.h" -#include "../types.h" - -using std::string; -using std::list; -using boost::shared_ptr; -using boost::optional; -using boost::lexical_cast; -using namespace dcp; -using namespace dcp::parse; - -Font::Font (shared_ptr<const cxml::Node> node) -{ - text = node->content (); - - id = node->optional_string_attribute ("Id").get_value_or (""); - size = node->optional_number_attribute<int64_t> ("Size").get_value_or (0); - italic = node->optional_bool_attribute ("Italic"); - optional<string> c = node->optional_string_attribute ("Color"); - if (c) { - color = Color (c.get ()); - } - optional<string> const e = node->optional_string_attribute ("Effect"); - if (e) { - effect = string_to_effect (e.get ()); - } - c = node->optional_string_attribute ( "EffectColor"); - if (c) { - effect_color = Color (c.get ()); - } - subtitle_nodes = type_children<Subtitle> (node, "Subtitle"); - font_nodes = type_children<Font> (node, "Font"); - text_nodes = type_children<Text> (node, "Text"); -} - -Font::Font (list<shared_ptr<Font> > const & font_nodes) - : size (0) - , italic (false) - , color ("FFFFFFFF") - , effect_color ("FFFFFFFF") -{ - for (list<shared_ptr<Font> >::const_iterator i = font_nodes.begin(); i != font_nodes.end(); ++i) { - if (!(*i)->id.empty ()) { - id = (*i)->id; - } - if ((*i)->size != 0) { - size = (*i)->size; - } - if ((*i)->italic) { - italic = (*i)->italic.get (); - } - if ((*i)->color) { - color = (*i)->color.get (); - } - if ((*i)->effect) { - effect = (*i)->effect.get (); - } - if ((*i)->effect_color) { - effect_color = (*i)->effect_color.get (); - } - } -} - -LoadFont::LoadFont (shared_ptr<const cxml::Node> node) -{ - id = node->string_attribute ("Id"); - uri = node->string_attribute ("URI"); -} - - -Subtitle::Subtitle (shared_ptr<const cxml::Node> node) -{ - in = Time (node->string_attribute ("TimeIn")); - out = Time (node->string_attribute ("TimeOut")); - font_nodes = type_children<Font> (node, "Font"); - text_nodes = type_children<Text> (node, "Text"); - fade_up_time = fade_time (node, "FadeUpTime"); - fade_down_time = fade_time (node, "FadeDownTime"); -} - -Time -Subtitle::fade_time (shared_ptr<const cxml::Node> node, string name) -{ - string const u = node->optional_string_attribute (name).get_value_or (""); - Time t; - - if (u.empty ()) { - t = Time (0, 0, 0, 20); - } else if (u.find (":") != string::npos) { - t = Time (u); - } else { - t = Time (0, 0, 0, lexical_cast<int> (u)); - } - - if (t > Time (0, 0, 8, 0)) { - t = Time (0, 0, 8, 0); - } - - return t; -} - -Text::Text (shared_ptr<const cxml::Node> node) - : v_align (CENTER) -{ - text = node->content (); - v_position = node->number_attribute<float> ("VPosition"); - optional<string> v = node->optional_string_attribute ("VAlign"); - if (v) { - v_align = string_to_valign (v.get ()); - } - - font_nodes = type_children<Font> (node, "Font"); -} - |
