Pass make_kdm as a function into kdm_for_screen().
[dcpomatic.git] / src / wx / kdm_dialog.cc
index 2687d126162560682bd5bcf1fb948228697fe36a..f01c47ffbba3ad86636295695b4a0f16b70adf9d 100644 (file)
@@ -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);
                        }