Fix interface complexity configuration.
[dcpomatic.git] / src / lib / job_manager.h
index 9cba0fd094a46bd44796532543e6e7ac9ebce4ac..aafb7aa67aa8609ce8214ef2e500cbc6e62580af 100644 (file)
@@ -41,11 +41,18 @@ class JobManager : public Signaller, public boost::noncopyable
 {
 public:
        boost::shared_ptr<Job> add (boost::shared_ptr<Job>);
+       boost::shared_ptr<Job> add_after (boost::shared_ptr<Job> after, boost::shared_ptr<Job> j);
        std::list<boost::shared_ptr<Job> > get () const;
        bool work_to_do () const;
        bool errors () const;
        void increase_priority (boost::shared_ptr<Job>);
        void decrease_priority (boost::shared_ptr<Job>);
+       void pause ();
+       void resume ();
+       bool paused () const {
+               boost::mutex::scoped_lock lm (_mutex);
+               return _paused;
+       }
 
        void analyse_audio (
                boost::shared_ptr<const Film> film,
@@ -76,6 +83,8 @@ private:
        /** List of jobs in the order that they will be executed */
        std::list<boost::shared_ptr<Job> > _jobs;
        bool _terminate;
+       bool _paused;
+       boost::shared_ptr<Job> _paused_job;
 
        boost::optional<std::string> _last_active_job;
        boost::thread* _scheduler;