Emit the state of the job with the Finished signals.
[dcpomatic.git] / src / lib / job_manager.h
index 7b48e79f232558a1d4cdc7151b53f38149de1249..c8450bfdae152e3d4101ad0f1b3c063825e4cc55 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 
+#include "job.h"
 #include "signaller.h"
 #include <boost/thread/mutex.hpp>
 #include <boost/thread.hpp>
@@ -32,7 +33,6 @@
 #include <list>
 
 
-class Job;
 class Film;
 class Playlist;
 class Content;
@@ -62,7 +62,7 @@ public:
        void resume ();
        bool paused () const {
                boost::mutex::scoped_lock lm (_mutex);
-               return static_cast<bool>(_paused_job);
+               return _paused;
        }
 
        void analyse_audio (
@@ -70,14 +70,14 @@ public:
                std::shared_ptr<const Playlist> playlist,
                bool from_zero,
                boost::signals2::connection& connection,
-               std::function<void()> ready
+               std::function<void (Job::Result)> ready
                );
 
        void analyse_subtitles (
                std::shared_ptr<const Film> film,
                std::shared_ptr<Content> content,
                boost::signals2::connection& connection,
-               std::function<void()> ready
+               std::function<void (Job::Result)> ready
                );
 
        boost::signals2::signal<void (std::weak_ptr<Job>)> JobAdded;
@@ -104,10 +104,12 @@ private:
        std::list<std::shared_ptr<Job>> _jobs;
        std::list<boost::signals2::connection> _connections;
        bool _terminate = false;
-       std::shared_ptr<Job> _paused_job;
 
        boost::optional<std::string> _last_active_job;
        boost::thread _scheduler;
 
+       /** true if all jobs should be paused */
+       bool _paused = false;
+
        static JobManager* _instance;
 };