X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fplaylist.h;h=921637bc3a6d8e6cfcfea9535aae3ae3fc963701;hb=b0d658e5c5b953b38e341a90518b5e7b2108811a;hp=91f39bf6b058e54324412e6c5ba670abe46d8b1f;hpb=e0255a64d22440d718e5512f34a4f21f0d37a21b;p=dcpomatic.git diff --git a/src/lib/playlist.h b/src/lib/playlist.h index 91f39bf6b..921637bc3 100644 --- a/src/lib/playlist.h +++ b/src/lib/playlist.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2020 Carl Hetherington + Copyright (C) 2013-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,9 +18,11 @@ */ + #ifndef DCPOMATIC_PLAYLIST_H #define DCPOMATIC_PLAYLIST_H + #include "change_signaller.h" #include "frame_rate_change.h" #include "util.h" @@ -29,23 +31,29 @@ #include #include + class Film; + struct ContentSorter { bool operator() (std::shared_ptr a, std::shared_ptr b); }; + /** @class Playlist * @brief A set of Content objects with knowledge of how they should be arranged into * a DCP. */ -class Playlist : public boost::noncopyable +class Playlist { public: Playlist (); ~Playlist (); + Playlist (Playlist const&) = delete; + Playlist& operator= (Playlist const&) = delete; + void as_xml (xmlpp::Node *, bool with_content_paths); void set_from_xml (std::shared_ptr film, cxml::ConstNodePtr node, int version, std::list& notes); @@ -75,7 +83,7 @@ public: void repeat (std::shared_ptr film, ContentList, int); - /** Emitted when content has been added to or removed from the playlist; implies OrderChanged */ + /** Emitted when content has been added to or removed from the playlist; implies OrderChange */ mutable boost::signals2::signal Change; mutable boost::signals2::signal OrderChange; /** Emitted when the length might have changed; may sometimes be emitted when it has not */ @@ -91,9 +99,10 @@ private: mutable boost::mutex _mutex; /** List of content. Kept sorted in position order. */ ContentList _content; - bool _sequence; - bool _sequencing; + bool _sequence = true; + bool _sequencing = false; std::list _content_connections; }; + #endif