Suspend butler on player may-change as otherwise there's a window
[dcpomatic.git] / src / lib / playlist.h
index 0b19a6e4497000db4292bb0a53bc9e34af896433..649887f7271f38b2c2fd9c4afdf0f63bb4f0d195 100644 (file)
@@ -55,7 +55,6 @@ public:
        void move_later (boost::shared_ptr<Content>);
 
        ContentList content () const;
-       bool video_content_at (DCPTime time) const;
 
        std::string video_identifier () const;
 
@@ -65,9 +64,10 @@ public:
 
        int best_video_frame_rate () const;
        DCPTime video_end () const;
-       DCPTime subtitle_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;
 
        void set_sequence (bool);
        void maybe_sequence ();
@@ -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. */