Move some functions to kdm_with_metadata
[dcpomatic.git] / src / tools / dcpomatic_kdm.cc
index 9f1c28c990f9992f1a42a297313bb5a557c27fb2..bbaf5bad717d03b6b6eb12c3855251113fe23210 100644 (file)
@@ -38,9 +38,8 @@
 #include "lib/util.h"
 #include "lib/screen.h"
 #include "lib/job_manager.h"
-#include "lib/screen_kdm.h"
+#include "lib/kdm_with_metadata.h"
 #include "lib/exceptions.h"
-#include "lib/cinema_kdms.h"
 #include "lib/send_kdm_email_job.h"
 #include "lib/compose.hpp"
 #include "lib/cinema.h"
@@ -303,7 +302,7 @@ private:
                                return;
                        }
 
-                       list<shared_ptr<ScreenKDM> > screen_kdms;
+                       list<KDMWithMetadataPtr> screen_kdms;
                        string title;
 
 #ifdef DCPOMATIC_VARIANT_SWAROOP
@@ -318,12 +317,22 @@ private:
                                                continue;
                                        }
 
-                                       DecryptedECinemaKDM kdm (decrypted.id(), decrypted.name(), decrypted.key());
+                                       DecryptedECinemaKDM kdm (
+                                               decrypted.id(),
+                                               decrypted.name(),
+                                               decrypted.key(),
+                                               dcp::LocalTime (_timing->from(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute()),
+                                               dcp::LocalTime (_timing->until(), i->cinema->utc_offset_hour(), i->cinema->utc_offset_minute())
+                                               );
+
+                                       dcp::NameFormat::Map name_values;
+                                       name_values['c'] = i->cinema->name;
+                                       name_values['s'] = i->name;
 
                                        /* Encrypt */
                                        screen_kdms.push_back (
-                                               shared_ptr<ScreenKDM>(
-                                                       new ECinemaScreenKDM(i, kdm.encrypt(i->recipient.get()))
+                                               KDMWithMetadataPtr(
+                                                       new ECinemaKDMWithMetadata(name_values, i->cinema, kdm.encrypt(i->recipient.get()))
                                                        )
                                                );
                                }
@@ -363,11 +372,16 @@ private:
                                                kdm.add_key (j);
                                        }
 
+                                       dcp::NameFormat::Map name_values;
+                                       name_values['c'] = i->cinema->name;
+                                       name_values['s'] = i->name;
+
                                        /* Encrypt */
                                        screen_kdms.push_back (
-                                               shared_ptr<ScreenKDM>(
-                                                       new DCPScreenKDM(
-                                                               i,
+                                               KDMWithMetadataPtr(
+                                                       new DCPKDMWithMetadata(
+                                                               name_values,
+                                                               i->cinema,
                                                                kdm.encrypt(
                                                                        signer, i->recipient.get(), i->trusted_device_thumbprints(), _output->formulation(),
                                                                        !_output->forensic_mark_video(), _output->forensic_mark_audio() ? boost::optional<int>() : 0