From 20c7c1a0bc0c9c07d70b5d3dcc536a5cd94e8a2c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Jan 2023 00:45:43 +0100 Subject: Pass make_kdm as a function into kdm_for_screen(). --- src/lib/kdm_cli.cc | 5 ++++- src/lib/screen.cc | 8 ++++---- src/lib/screen.h | 4 ++-- src/wx/kdm_dialog.cc | 6 +++++- 4 files changed, 15 insertions(+), 8 deletions(-) (limited to 'src') 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 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 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 film, - boost::filesystem::path cpl, + std::function make_kdm, shared_ptr 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 +#include #include #include #include @@ -75,8 +76,7 @@ public: KDMWithMetadataPtr kdm_for_screen ( - std::shared_ptr film, - boost::filesystem::path cpl, + std::function make_kdm, std::shared_ptr 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 period_checks; + std::function 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); } -- cgit v1.2.3