X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fsubtitle_content.h;h=c00c3f310a650197e3abf502c1d3327b14156d40;hb=bd491319f52ba7f37ef5763960b4c0c00434b5f9;hp=410c5934a23cb1a4b96f07a2a95f2583a9d586bb;hpb=77b0ffe6c50796b8fb132f56394995e0df089713;p=libdcp.git diff --git a/src/subtitle_content.h b/src/subtitle_content.h index 410c5934..c00c3f31 100644 --- a/src/subtitle_content.h +++ b/src/subtitle_content.h @@ -22,6 +22,7 @@ #include "content.h" #include "dcp_time.h" +#include "subtitle_string.h" #include namespace dcp @@ -34,12 +35,19 @@ class Subtitle; class LoadFont; /** @class SubtitleContent - * @brief A representation of an XML file containing subtitles. + * @brief A representation of an XML or MXF file containing subtitles. + * + * XXX: perhaps this should inhert from MXF, or there should be different + * classes for XML and MXF subs. */ class SubtitleContent : public Content { public: - SubtitleContent (boost::filesystem::path file); + /** Construct a SubtitleContent. + * @param file Filename. + * @param mxf true if the file is an MXF file, false for XML. + */ + SubtitleContent (boost::filesystem::path file, bool mxf); SubtitleContent (Fraction edit_rate, std::string movie_title, std::string language); bool equals ( @@ -48,7 +56,7 @@ public: boost::function note ) const { /* XXX */ - note (ERROR, "subtitle content not compared yet"); + note (DCP_ERROR, "subtitle content not compared yet"); return true; } @@ -56,14 +64,14 @@ public: return _language; } - std::list > subtitles_at (Time t) const; - std::list > const & subtitles () const { + std::list subtitles_at (Time t) const; + std::list const & subtitles () const { return _subtitles; } - void add (boost::shared_ptr); + void add (SubtitleString); - void write_xml () const; + void write_xml (boost::filesystem::path) const; Glib::ustring xml_as_string () const; protected: @@ -98,13 +106,13 @@ private: ParseState& parse_state ); - std::string _movie_title; + boost::optional _movie_title; /* strangely, this is sometimes a string */ std::string _reel_number; std::string _language; std::list > _load_font_nodes; - std::list > _subtitles; + std::list _subtitles; bool _need_sort; };