summaryrefslogtreecommitdiff
path: root/src/dcp_reader.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-01-13 11:31:55 +0000
committerCarl Hetherington <cth@carlh.net>2015-01-13 11:31:55 +0000
commitd15ef17dccf87b633d1971c38032a2049abe3db0 (patch)
tree3bbde3c1959bae6b0ad064972f95bd9406416fbb /src/dcp_reader.cc
parentacca8cb950de132fbc4be40e7dc7d294c6cb0a38 (diff)
Re-work time.
Diffstat (limited to 'src/dcp_reader.cc')
-rw-r--r--src/dcp_reader.cc17
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);
}
}
}