s/destroy_thread/stop_thread/
[dcpomatic.git] / src / lib / verify_dcp_job.cc
index 8ac41d2a4b9f70fc4edea9cb957c4825e0056d48..35d3225f1d0133dc05be6057e6d5aa7653768167 100644 (file)
@@ -26,6 +26,7 @@
 using std::string;
 using std::vector;
 using boost::shared_ptr;
+using boost::optional;
 
 VerifyDCPJob::VerifyDCPJob (vector<boost::filesystem::path> directories)
        : Job (shared_ptr<Film>())
@@ -34,6 +35,11 @@ VerifyDCPJob::VerifyDCPJob (vector<boost::filesystem::path> directories)
 
 }
 
+VerifyDCPJob::~VerifyDCPJob ()
+{
+       stop_thread ();
+}
+
 string
 VerifyDCPJob::name () const
 {
@@ -46,10 +52,19 @@ VerifyDCPJob::json_name () const
        return N_("verify_dcp");
 }
 
+void
+VerifyDCPJob::update_stage (string s, optional<boost::filesystem::path> path)
+{
+       if (path) {
+               s += ": " + path->string();
+       }
+       sub (s);
+}
+
 void
 VerifyDCPJob::run ()
 {
-       _notes = dcp::verify (_directories);
+       _notes = dcp::verify (_directories, bind (&VerifyDCPJob::update_stage, this, _1, _2), bind (&VerifyDCPJob::set_progress, this, _1, false));
 
        bool failed = false;
        BOOST_FOREACH (dcp::VerificationNote i, _notes) {