More fixes for errors / crashes / misbehaviour with content changes
[dcpomatic.git] / src / lib / playlist.h
index 073e53de71c44dd42d3f0ddfb939071588b1a006..649887f7271f38b2c2fd9c4afdf0f63bb4f0d195 100644 (file)
@@ -64,7 +64,7 @@ public:
 
        int best_video_frame_rate () const;
        DCPTime video_end () const;
-       DCPTime caption_end () const;
+       DCPTime text_end () const;
        FrameRateChange active_frame_rate_change (DCPTime, int dcp_frame_rate) const;
        std::string content_summary (DCPTimePeriod period) const;
        std::pair<double, double> speed_up_range (int dcp_video_frame_rate) const;
@@ -77,14 +77,19 @@ public:
        /** Emitted when content has been added to or removed from the playlist; implies OrderChanged */
        mutable boost::signals2::signal<void ()> Changed;
        mutable boost::signals2::signal<void ()> OrderChanged;
+
+       mutable boost::signals2::signal<void ()> ContentMayChange;
        /** Emitted when something about a piece of our content has changed;
         *  these emissions include when the position of the content changes.
         *  Third parameter is true if signals are currently being emitted frequently.
         */
        mutable boost::signals2::signal<void (boost::weak_ptr<Content>, int, bool)> ContentChanged;
+       mutable boost::signals2::signal<void ()> ContentNotChanged;
 
 private:
+       void content_may_change ();
        void content_changed (boost::weak_ptr<Content>, int, bool);
+       void content_not_changed ();
        void reconnect ();
 
        /** List of content.  Kept sorted in position order. */