X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fjob_manager.h;h=c8450bfdae152e3d4101ad0f1b3c063825e4cc55;hp=6802b511597586de15119df0656c11e6e7faf422;hb=a6c4b4fa16d9c6597e362044b875f3d6df80753f;hpb=dc06f6e964fa3baffc72d6548e47974468f2939f diff --git a/src/lib/job_manager.h b/src/lib/job_manager.h index 6802b5115..c8450bfda 100644 --- a/src/lib/job_manager.h +++ b/src/lib/job_manager.h @@ -24,6 +24,7 @@ */ +#include "job.h" #include "signaller.h" #include #include @@ -32,7 +33,6 @@ #include -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(_paused_job); + return _paused; } void analyse_audio ( @@ -70,14 +70,14 @@ public: std::shared_ptr playlist, bool from_zero, boost::signals2::connection& connection, - std::function ready + std::function ready ); void analyse_subtitles ( std::shared_ptr film, std::shared_ptr content, boost::signals2::connection& connection, - std::function ready + std::function ready ); boost::signals2::signal)> JobAdded; @@ -99,15 +99,17 @@ private: void job_finished (); mutable boost::mutex _mutex; - boost::condition _empty_condition; + boost::condition _schedule_condition; /** List of jobs in the order that they will be executed */ std::list> _jobs; std::list _connections; bool _terminate = false; - std::shared_ptr _paused_job; boost::optional _last_active_job; boost::thread _scheduler; + /** true if all jobs should be paused */ + bool _paused = false; + static JobManager* _instance; };