#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 <libcxml/cxml.h>
shared_ptr<const Film> film = _film.lock ();
DCPOMATIC_ASSERT (film);
- list<shared_ptr<ScreenKDM> > screen_kdms;
+ list<KDMWithMetadataPtr> kdms;
try {
/* Start off by enabling forensic marking for all */
optional<int> for_audio;
BOOST_FOREACH (shared_ptr<dcpomatic::Screen> 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<ScreenKDM>(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)));
}
}
return;
}
- pair<shared_ptr<Job>, int> result = _output->make (screen_kdms, film->name(), _timing, bind (&KDMDialog::confirm_overwrite, this, _1));
+ pair<shared_ptr<Job>, int> result = _output->make (kdms, film->name(), bind (&KDMDialog::confirm_overwrite, this, _1));
if (result.first) {
JobManager::instance()->add (result.first);
}