Use a typedef for a note-taking functor.
[libdcp.git] / src / subtitle_content.h
index 222d52ccbe1d8cd78a8753b53610b47dc1365ec8..0ef7b19d478a3e3438cadcf997c2160fae7c953e 100644 (file)
@@ -32,6 +32,7 @@ class SubtitleString;
 class Font;
 class Text;
 class Subtitle;
+class LoadFont;
 
 /** @class SubtitleContent
  *  @brief A parent for classes representing a file containing subtitles.
@@ -39,24 +40,20 @@ class Subtitle;
 class SubtitleContent : public Content
 {
 public:
-       SubtitleContent () {}
+       SubtitleContent ();
        SubtitleContent (boost::filesystem::path file);
 
        bool equals (
                boost::shared_ptr<const Asset>,
                EqualityOptions,
-               boost::function<void (NoteType, std::string)> note
-               ) const {
-               /* XXX */
-               note (DCP_ERROR, "subtitle content not compared yet");
-               return true;
-       }
+               NoteHandler note
+               ) const;
 
        std::string language () const {
                return _language;
        }
 
-       std::list<SubtitleString> subtitles_at (Time t) const;
+       std::list<SubtitleString> subtitles_during (Time from, Time to) const;
        std::list<SubtitleString> const & subtitles () const {
                return _subtitles;
        }
@@ -71,8 +68,10 @@ public:
 
        Time latest_subtitle_out () const;
 
+       virtual std::list<boost::shared_ptr<LoadFont> > load_font_nodes () const = 0;
+
 protected:
-       void parse_common (boost::shared_ptr<cxml::Document> xml, std::list<boost::shared_ptr<dcp::Font> > font_nodes);
+       void parse_common (boost::shared_ptr<cxml::Document> xml, std::list<boost::shared_ptr<Font> > font_nodes);
        
        std::string pkl_type (Standard) const {
                return "text/xml";