Untested merge of master.
[dcpomatic.git] / src / lib / decoder.h
index 96d3a201460df5b2b9e9e0be77f44708c430b9d4..20e32bfbf64ce83d58b38672a0a6be5500085eb7 100644 (file)
@@ -21,8 +21,8 @@
  *  @brief Parent class for decoders of content.
  */
 
-#ifndef DVDOMATIC_DECODER_H
-#define DVDOMATIC_DECODER_H
+#ifndef DCPOMATIC_DECODER_H
+#define DCPOMATIC_DECODER_H
 
 #include <vector>
 #include <string>
 #include <boost/shared_ptr.hpp>
 #include <boost/signals2.hpp>
 #include "util.h"
-#include "stream.h"
 #include "video_source.h"
 #include "audio_source.h"
+#include "film.h"
 
-class Job;
-class Options;
 class Image;
 class Log;
 class DelayLine;
 class TimedSubtitle;
 class Subtitle;
-class Film;
 class FilterGraph;
 
 /** @class Decoder.
@@ -54,19 +51,23 @@ class FilterGraph;
 class Decoder
 {
 public:
-       Decoder (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *);
+       Decoder (boost::shared_ptr<const Film>);
        virtual ~Decoder () {}
 
        virtual bool pass () = 0;
-       virtual void seek (SourceFrame);
+       virtual bool seek (double);
+       virtual void seek_back () {}
+       virtual void seek_forward () {}
+
+       boost::signals2::signal<void()> OutputChanged;
 
 protected:
-       /** our Film */
-       boost::shared_ptr<Film> _film;
-       /** our options */
-       boost::shared_ptr<const Options> _opt;
-       /** associated Job, or 0 */
-       Job* _job;
+       boost::shared_ptr<const Film> _film;
+
+private:
+       virtual void film_changed (Film::Property) {}
+
+       boost::signals2::scoped_connection _film_connection;
 };
 
 #endif