Allow repeat of multiple stuff.
[dcpomatic.git] / src / lib / playlist.h
index a31b6826e667db00cfd1f0b68cc198a740d27714..1d69c34baee71bde82ee950cf9f5854e88f0fbf9 100644 (file)
@@ -41,10 +41,7 @@ class Region;
  *  @brief A set of content files (video and audio), with knowledge of how they should be arranged into
  *  a DCP.
  *
- * This class holds Content objects, and it knows how they should be arranged. At the moment
- * the ordering is implicit; video content is placed sequentially, and audio content is taken
- * from the video unless any sound-only files are present.  If sound-only files exist, they
- * are played simultaneously (i.e. they can be split up into multiple files for different channels)
+ * This class holds Content objects, and it knows how they should be arranged.
  */
 
 struct ContentSorter
@@ -67,26 +64,21 @@ public:
        bool has_subtitles () const;
 
        typedef std::vector<boost::shared_ptr<Content> > ContentList;
-       
-       ContentList content () const {
-               return _content;
-       }
 
-       std::string video_identifier () const;
+       ContentList content () const;
 
-       int loop () const {
-               return _loop;
-       }
-       
-       void set_loop (int l);
+       std::string video_identifier () const;
 
        Time length () const;
+       
        int best_dcp_frame_rate () const;
        Time video_end () const;
 
        void set_sequence_video (bool);
        void maybe_sequence_video ();
 
+       void repeat (std::list<boost::shared_ptr<Content> >, int);
+
        mutable boost::signals2::signal<void ()> Changed;
        /** Third parameter is true if signals are currently being emitted frequently */
        mutable boost::signals2::signal<void (boost::weak_ptr<Content>, int, bool)> ContentChanged;
@@ -96,7 +88,6 @@ private:
        void reconnect ();
 
        ContentList _content;
-       int _loop;
        bool _sequence_video;
        bool _sequencing_video;
        std::list<boost::signals2::connection> _content_connections;