Force initial update of progress so that the sub-job gets updates straight away.
authorCarl Hetherington <cth@carlh.net>
Thu, 7 Nov 2013 10:28:00 +0000 (10:28 +0000)
committerCarl Hetherington <cth@carlh.net>
Thu, 7 Nov 2013 10:28:00 +0000 (10:28 +0000)
src/lib/job.cc
src/lib/job.h
src/lib/writer.cc

index 5fbd1a160e49622007fbcbb3ac346f4bfdf2f83c..cc52a29f2d5eb4be076d9df9786341497cb50af1 100644 (file)
@@ -212,9 +212,9 @@ Job::elapsed_time () const
  *  @param p Progress (from 0 to 1)
  */
 void
-Job::set_progress (float p)
+Job::set_progress (float p, bool force)
 {
-       if (fabs (p - progress()) < 0.01) {
+       if (!force && fabs (p - progress()) < 0.01) {
                /* Calm excessive progress reporting */
                return;
        }
@@ -248,7 +248,7 @@ Job::sub (string n)
                _sub_name = n;
        }
        
-       set_progress (0);
+       set_progress (0, true);
 }
 
 string
index 62db0fc4664308fcf316a4498573538962e7b47b..6310da32ae69a2b87db7bdbc8cb29688b447a418 100644 (file)
@@ -69,7 +69,7 @@ public:
        }
 
        void set_progress_unknown ();
-       void set_progress (float);
+       void set_progress (float, bool force = false);
        void sub (std::string);
        float progress () const;
        bool progress_unknown () const {
index d7f3512cbf033809c4604b50a6eb824f8a0001d8..40f6ed9714baacd1a2bc9bb93b813d651a48225e 100644 (file)
@@ -383,10 +383,10 @@ Writer::finish ()
                               ));
 
        _job->sub (_("Computing image digest"));
-       _picture_asset->compute_digest (boost::bind (&Job::set_progress, _job.get(), _1));
+       _picture_asset->compute_digest (boost::bind (&Job::set_progress, _job.get(), _1, false));
 
        _job->sub (_("Computing audio digest"));
-       _sound_asset->compute_digest (boost::bind (&Job::set_progress, _job.get(), _1));
+       _sound_asset->compute_digest (boost::bind (&Job::set_progress, _job.get(), _1, false));
 
        libdcp::XMLMetadata meta = Config::instance()->dcp_metadata ();
        meta.set_issue_date_now ();