Hopefully fix seek back/forward.
[dcpomatic.git] / src / lib / player.h
index bbdb14ec240ace9494dc1f973869c65a81c91a85..15fa4dbd6ce5c1d118683e26bc5278e96cf31eef 100644 (file)
@@ -26,6 +26,7 @@
 #include "playlist.h"
 #include "audio_buffers.h"
 #include "content.h"
+#include "film.h"
 
 class Job;
 class Film;
@@ -48,8 +49,7 @@ public:
        void disable_audio ();
 
        bool pass ();
-       void seek (Time);
-       void seek_back ();
+       void seek (Time, bool);
 
        Time video_position () const {
                return _video_position;
@@ -67,6 +67,12 @@ public:
        /** Emitted when some audio data is ready */
        boost::signals2::signal<void (boost::shared_ptr<const AudioBuffers>, Time)> Audio;
 
+       /** Emitted when something has changed such that if we went back and emitted
+        *  the last frame again it would look different.  This is not emitted after
+        *  a seek.
+        */
+       boost::signals2::signal<void ()> Changed;
+
 private:
 
        void process_video (boost::weak_ptr<Piece>, boost::shared_ptr<const Image>, bool, VideoContent::Frame);
@@ -79,6 +85,7 @@ private:
        void emit_black ();
        void emit_silence (OutputAudioFrame);
        boost::shared_ptr<Resampler> resampler (boost::shared_ptr<AudioContent>);
+       void film_changed (Film::Property);
 
        boost::shared_ptr<const Film> _film;
        boost::shared_ptr<const Playlist> _playlist;