/*
- Copyright (C) 2013-2017 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-2018 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
using std::cerr;
using std::list;
using std::vector;
+using std::runtime_error;
using boost::shared_ptr;
using boost::optional;
using boost::bind;
"For example:\n\n"
"Create KDMs for my_great_movie to play in all of Fred's Cinema's screens for the next two weeks and zip them up.\n"
"(Fred's Cinema must have been set up in DCP-o-matic's KDM window)\n\n"
- "\tdcpomatic_kdm -c \"Fred's Cinema\" -f now -d \"2 weeks\" -z my_great_movie\n\n";
+ "\t" << program_name << " -c \"Fred's Cinema\" -f now -d \"2 weeks\" -z my_great_movie\n\n";
}
static void
} catch (KDMError& e) {
cerr << program_name << ": " << e.what() << "\n";
exit (EXIT_FAILURE);
+ } catch (runtime_error& e) {
+ cerr << program_name << ": " << e.what() << "\n";
+ exit (EXIT_FAILURE);
}
}
kdm_from_dkdm (
dcp::DecryptedKDM dkdm,
dcp::Certificate target,
- vector<dcp::Certificate> trusted_devices,
+ vector<string> trusted_devices,
dcp::LocalTime valid_from,
dcp::LocalTime valid_to,
dcp::Formulation formulation,
kdm_from_dkdm (
dkdm,
i->recipient.get(),
- i->trusted_devices,
+ i->trusted_device_thumbprints(),
dcp::LocalTime(valid_from, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()),
dcp::LocalTime(valid_to, i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()),
formulation,
screen_description = optarg;
break;
case 'C':
+ {
/* Make a new screen and add it to the current cinema */
- shared_ptr<Screen> screen (new Screen (screen_description, dcp::Certificate (dcp::file_to_string (optarg)), vector<dcp::Certificate>()));
+ dcp::CertificateChain chain (dcp::file_to_string(optarg));
+ shared_ptr<Screen> screen (new Screen (screen_description, chain.leaf(), vector<TrustedDevice>()));
if (cinema) {
cinema->add_screen (screen);
}
screens.push_back (screen);
break;
+ }
case 'T':
/* A trusted device ends up in the last screen we made */
if (!screens.empty ()) {
- screens.back()->trusted_devices.push_back (dcp::Certificate (dcp::file_to_string (optarg)));
+ screens.back()->trusted_devices.push_back(TrustedDevice(dcp::Certificate(dcp::file_to_string(optarg))));
}
break;
case 'B':