Tidy and fix logging.
[dcpomatic.git] / src / wx / kdm_dialog.cc
index 64987a1210c677f406c7a9d0a887546ceddcebe5..abb28c22876e441ea549eb3ea1c2c3c671fda7b9 100644 (file)
@@ -47,6 +47,7 @@ using std::pair;
 using std::cout;
 using std::vector;
 using std::make_pair;
+using std::runtime_error;
 using boost::shared_ptr;
 using boost::bind;
 
@@ -139,11 +140,20 @@ KDMDialog::make_clicked ()
        shared_ptr<const Film> film = _film.lock ();
        DCPOMATIC_ASSERT (film);
 
-       list<ScreenKDM> screen_kdms = film->make_kdms (
-               _screens->screens(), _cpl->cpl(), _timing->from(), _timing->until(), _output->formulation(), true, 0
-               );
+       list<ScreenKDM> screen_kdms;
+       try {
+
+               screen_kdms = film->make_kdms (
+                       _screens->screens(), _cpl->cpl(), _timing->from(), _timing->until(), _output->formulation(),
+                       !_output->forensic_mark_video(), _output->forensic_mark_audio() ? boost::optional<int>() : 0
+                       );
+
+       } catch (runtime_error& e) {
+               error_dialog (this, std_to_wx(e.what()));
+               return;
+       }
 
-       pair<shared_ptr<Job>, int> result = _output->make (screen_kdms, film->name(), _timing, bind (&KDMDialog::confirm_overwrite, this, _1), film->log());
+       pair<shared_ptr<Job>, int> result = _output->make (screen_kdms, film->name(), _timing, bind (&KDMDialog::confirm_overwrite, this, _1));
        if (result.first) {
                JobManager::instance()->add (result.first);
        }