X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fkdm_dialog.cc;h=d74741871a63213fefbdd8419b506f7f7b9146e6;hb=5d6c87f482cec7049107f8d32c2c49e79e4819d7;hp=59d961e6c9d1e226cf7790c0af252c72cb43bb48;hpb=08f96200aacf9f91ef3e3f5b80224a5b2437f279;p=dcpomatic.git diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc index 59d961e6c..d74741871 100644 --- a/src/wx/kdm_dialog.cc +++ b/src/wx/kdm_dialog.cc @@ -29,9 +29,8 @@ #include "dcpomatic_button.h" #include "lib/film.h" #include "lib/screen.h" -#include "lib/screen_kdm.h" +#include "lib/kdm_with_metadata.h" #include "lib/job_manager.h" -#include "lib/cinema_kdms.h" #include "lib/config.h" #include "lib/cinema.h" #include @@ -150,7 +149,7 @@ KDMDialog::make_clicked () shared_ptr film = _film.lock (); DCPOMATIC_ASSERT (film); - list > screen_kdms; + list kdms; try { /* Start off by enabling forensic marking for all */ optional for_audio; @@ -164,18 +163,31 @@ KDMDialog::make_clicked () BOOST_FOREACH (shared_ptr i, _screens->screens()) { if (i->recipient) { + dcp::LocalTime const begin(_timing->from(), i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0); + dcp::LocalTime const end(_timing->until(), i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0); + dcp::EncryptedKDM const kdm = film->make_kdm ( i->recipient.get(), i->trusted_device_thumbprints(), _cpl->cpl(), - dcp::LocalTime(_timing->from(), i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0), - dcp::LocalTime(_timing->until(), i->cinema ? i->cinema->utc_offset_hour() : 0, i->cinema ? i->cinema->utc_offset_minute() : 0), + begin, + end, _output->formulation(), !_output->forensic_mark_video(), for_audio ); - screen_kdms.push_back (shared_ptr(new DCPScreenKDM(i, kdm))); + dcp::NameFormat::Map name_values; + if (i->cinema) { + name_values['c'] = i->cinema->name; + } + name_values['s'] = i->name; + name_values['f'] = film->name(); + name_values['b'] = dcp::LocalTime(begin).date() + " " + dcp::LocalTime(begin).time_of_day(false, false); + name_values['e'] = dcp::LocalTime(end).date() + " " + dcp::LocalTime(end).time_of_day(false, false); + name_values['i'] = kdm.cpl_id(); + + kdms.push_back (KDMWithMetadataPtr(new DCPKDMWithMetadata(name_values, i->cinema, kdm))); } } @@ -191,7 +203,7 @@ KDMDialog::make_clicked () return; } - pair, int> result = _output->make (screen_kdms, film->name(), _timing, bind (&KDMDialog::confirm_overwrite, this, _1)); + pair, int> result = _output->make (kdms, film->name(), bind (&KDMDialog::confirm_overwrite, this, _1)); if (result.first) { JobManager::instance()->add (result.first); }