+
+ try {
+ list<ScreenKDM> screen_kdms = film->make_kdms (
+ _screens->screens(), _cpl->cpl(), _timing->from(), _timing->until(), _output->formulation()
+ );
+
+ NameFormat::Map name_values;
+ name_values["film_name"] = film->name();
+ name_values["from"] = dcp::LocalTime(_timing->from()).date() + " " + dcp::LocalTime(_timing->from()).time_of_day();
+ name_values["to"] = dcp::LocalTime(_timing->until()).date() + " " + dcp::LocalTime(_timing->until()).time_of_day();
+
+ if (_output->write_to ()) {
+ ScreenKDM::write_files (
+ screen_kdms,
+ _output->directory(),
+ _output->name_format(),
+ name_values
+ );
+ } else {
+ JobManager::instance()->add (
+ shared_ptr<Job> (new SendKDMEmailJob (
+ CinemaKDMs::collect (screen_kdms),
+ _output->name_format(),
+ name_values,
+ film->dcp_name(),
+ film->log()
+ ))
+ );
+ }
+ } catch (dcp::NotEncryptedError& e) {
+ error_dialog (this, _("CPL's content is not encrypted."));
+ } catch (exception& e) {
+ error_dialog (this, e.what ());
+ } catch (...) {
+ error_dialog (this, _("An unknown exception occurred."));
+ }