diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-01-13 11:31:55 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-01-13 11:31:55 +0000 |
| commit | d15ef17dccf87b633d1971c38032a2049abe3db0 (patch) | |
| tree | 3bbde3c1959bae6b0ad064972f95bd9406416fbb /src/dcp_reader.cc | |
| parent | acca8cb950de132fbc4be40e7dc7d294c6cb0a38 (diff) | |
Re-work time.
Diffstat (limited to 'src/dcp_reader.cc')
| -rw-r--r-- | src/dcp_reader.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/dcp_reader.cc b/src/dcp_reader.cc index dbe318c..e83f79c 100644 --- a/src/dcp_reader.cc +++ b/src/dcp_reader.cc @@ -31,20 +31,21 @@ using std::list; using std::cout; using std::string; using boost::shared_ptr; +using boost::optional; using namespace sub; void -DCPReader::parse_common (cxml::NodePtr root, bool smpte) +DCPReader::parse_common (cxml::NodePtr root, optional<int> tcr) { _reel_number = root->string_child ("ReelNumber"); _language = root->string_child ("Language"); ParseState parse_state; - parse_node (root->node(), parse_state, smpte); + parse_node (root->node(), parse_state, tcr); } void -DCPReader::parse_node (xmlpp::Node const * node, ParseState& parse_state, bool smpte) +DCPReader::parse_node (xmlpp::Node const * node, ParseState& parse_state, optional<int> tcr) { xmlpp::Node::NodeList children = node->get_children (); for (xmlpp::Node::NodeList::const_iterator i = children.begin(); i != children.end(); ++i) { @@ -58,18 +59,18 @@ DCPReader::parse_node (xmlpp::Node const * node, ParseState& parse_state, bool s cxml::ConstNodePtr n (new cxml::Node (e)); if (n->name() == "Font") { parse_state.font_nodes.push_back (shared_ptr<dcp::Font> (new dcp::Font (n))); - parse_node (e, parse_state, smpte); + parse_node (e, parse_state, tcr); parse_state.font_nodes.pop_back (); } else if (n->name() == "Text") { parse_state.text_nodes.push_back (shared_ptr<dcp::Text> (new dcp::Text (n))); - parse_node (e, parse_state, smpte); + parse_node (e, parse_state, tcr); parse_state.text_nodes.pop_back (); } else if (n->name() == "Subtitle") { - parse_state.subtitle_nodes.push_back (shared_ptr<dcp::Subtitle> (new dcp::Subtitle (n, smpte))); - parse_node (e, parse_state, smpte); + parse_state.subtitle_nodes.push_back (shared_ptr<dcp::Subtitle> (new dcp::Subtitle (n, tcr))); + parse_node (e, parse_state, tcr); parse_state.subtitle_nodes.pop_back (); } else if (n->name() == "SubtitleList") { - parse_node (e, parse_state, smpte); + parse_node (e, parse_state, tcr); } } } |
