Another macOS std::list boost::thread SNAFU.
[dcpomatic.git] / src / lib / verify_dcp_job.cc
index 0a54cabd03f9c5ff24f014d8fe7fad9f052fab73..908cd53a7f14d3ae8ad8665a3874d480ebc1661e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2018 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2018-2019 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -18,6 +18,7 @@
 
 */
 
+#include "cross.h"
 #include "verify_dcp_job.h"
 #include "content.h"
 
@@ -26,6 +27,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>())
@@ -46,14 +48,23 @@ 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), shared_path() / "xsd");
 
        bool failed = false;
        BOOST_FOREACH (dcp::VerificationNote i, _notes) {
-               if (i.type() == dcp::VerificationNote::ERROR) {
+               if (i.type() == dcp::VerificationNote::VERIFY_ERROR) {
                        failed = true;
                }
        }