diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-01-29 00:45:43 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-02-11 22:26:38 +0100 |
| commit | 20c7c1a0bc0c9c07d70b5d3dcc536a5cd94e8a2c (patch) | |
| tree | 7fdb8f0f6c1dbac69d024093323c739d6bbccb11 /src | |
| parent | e18630852de1ac02c23c74cbe7643845b6f4bd17 (diff) | |
Pass make_kdm as a function into kdm_for_screen().
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/kdm_cli.cc | 5 | ||||
| -rw-r--r-- | src/lib/screen.cc | 8 | ||||
| -rw-r--r-- | src/lib/screen.h | 4 | ||||
| -rw-r--r-- | src/wx/kdm_dialog.cc | 6 |
4 files changed, 15 insertions, 8 deletions
diff --git a/src/lib/kdm_cli.cc b/src/lib/kdm_cli.cc index dc74e7161..925626119 100644 --- a/src/lib/kdm_cli.cc +++ b/src/lib/kdm_cli.cc @@ -245,7 +245,10 @@ from_film ( try { list<KDMWithMetadataPtr> kdms; for (auto i: screens) { - auto p = kdm_for_screen(film, cpl, i, valid_from, valid_to, formulation, disable_forensic_marking_picture, disable_forensic_marking_audio, period_checks); + std::function<dcp::DecryptedKDM (dcp::LocalTime, dcp::LocalTime)> make_kdm = [film, cpl](dcp::LocalTime begin, dcp::LocalTime end) { + return film->make_kdm(cpl, begin, end); + }; + auto p = kdm_for_screen(make_kdm, i, valid_from, valid_to, formulation, disable_forensic_marking_picture, disable_forensic_marking_audio, period_checks); if (p) { kdms.push_back (p); } diff --git a/src/lib/screen.cc b/src/lib/screen.cc index 5ef007214..dbf013111 100644 --- a/src/lib/screen.cc +++ b/src/lib/screen.cc @@ -75,8 +75,7 @@ Screen::trusted_device_thumbprints () const KDMWithMetadataPtr kdm_for_screen ( - shared_ptr<const Film> film, - boost::filesystem::path cpl, + std::function<dcp::DecryptedKDM (dcp::LocalTime, dcp::LocalTime)> make_kdm, shared_ptr<const dcpomatic::Screen> screen, boost::posix_time::ptime valid_from, boost::posix_time::ptime valid_to, @@ -101,8 +100,9 @@ kdm_for_screen ( throw InvalidSignerError(); } - auto const decrypted_kdm = film->make_kdm(cpl, begin, end); - auto kdm = decrypted_kdm.encrypt(signer, screen->recipient.get(), screen->trusted_device_thumbprints(), formulation, disable_forensic_marking_picture, disable_forensic_marking_audio); + auto kdm = make_kdm(begin, end).encrypt( + signer, screen->recipient.get(), screen->trusted_device_thumbprints(), formulation, disable_forensic_marking_picture, disable_forensic_marking_audio + ); dcp::NameFormat::Map name_values; if (cinema) { diff --git a/src/lib/screen.h b/src/lib/screen.h index 7cbeb1d15..7f01cdf27 100644 --- a/src/lib/screen.h +++ b/src/lib/screen.h @@ -28,6 +28,7 @@ #include "kdm_util.h" #include "trusted_device.h" #include <dcp/certificate.h> +#include <dcp/decrypted_kdm.h> #include <libcxml/cxml.h> #include <boost/optional.hpp> #include <string> @@ -75,8 +76,7 @@ public: KDMWithMetadataPtr kdm_for_screen ( - std::shared_ptr<const Film> film, - boost::filesystem::path cpl, + std::function<dcp::DecryptedKDM (dcp::LocalTime, dcp::LocalTime)> make_kdm, std::shared_ptr<const dcpomatic::Screen> screen, boost::posix_time::ptime valid_from, boost::posix_time::ptime valid_to, diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc index 2687d1261..f01c47ffb 100644 --- a/src/wx/kdm_dialog.cc +++ b/src/wx/kdm_dialog.cc @@ -174,8 +174,12 @@ KDMDialog::make_clicked () vector<KDMCertificatePeriod> period_checks; + std::function<dcp::DecryptedKDM (dcp::LocalTime, dcp::LocalTime)> make_kdm = [film, this](dcp::LocalTime begin, dcp::LocalTime end) { + return film->make_kdm(_cpl->cpl(), begin, end); + }; + for (auto i: _screens->screens()) { - auto p = kdm_for_screen(film, _cpl->cpl(), i, _timing->from(), _timing->until(), _output->formulation(), !_output->forensic_mark_video(), for_audio, period_checks); + auto p = kdm_for_screen(make_kdm, i, _timing->from(), _timing->until(), _output->formulation(), !_output->forensic_mark_video(), for_audio, period_checks); if (p) { kdms.push_back (p); } |
