- std::string _subtitle_id;
- std::string _movie_title;
- int64_t _reel_number;
- std::string _language;
- std::list<boost::shared_ptr<Font> > _fonts;
+ /** @struct ParseState
+ * @brief A struct to hold state when parsing a subtitle XML file.
+ */
+ struct ParseState {
+ std::list<boost::shared_ptr<FontNode> > font_nodes;
+ std::list<boost::shared_ptr<TextNode> > text_nodes;
+ std::list<boost::shared_ptr<SubtitleNode> > subtitle_nodes;
+ };
+
+ void maybe_add_subtitle (std::string text, ParseState const & parse_state);
+
+ void examine_nodes (
+ boost::shared_ptr<const cxml::Node> xml,
+ std::list<boost::shared_ptr<FontNode> > const & font_nodes,
+ ParseState& parse_state
+ );
+
+ void examine_nodes (
+ boost::shared_ptr<const cxml::Node> xml,
+ std::list<boost::shared_ptr<TextNode> > const & text_nodes,
+ ParseState& parse_state
+ );
+
+ void examine_nodes (
+ boost::shared_ptr<const cxml::Node> xml,
+ std::list<boost::shared_ptr<SubtitleNode> > const & subtitle_nodes,
+ ParseState& parse_state
+ );