using boost::optional;
void
-CinemaKDMs::make_zip_file (boost::filesystem::path zip_file, dcp::NameFormat name_format, dcp::NameFormat::Map name_values) const
+make_zip_file (CinemaKDMs kdms, boost::filesystem::path zip_file, dcp::NameFormat name_format, dcp::NameFormat::Map name_values)
{
Zipper zipper (zip_file);
- name_values['c'] = cinema->name;
+ name_values['c'] = kdms.cinema->name;
- BOOST_FOREACH (KDMWithMetadataPtr i, screen_kdms) {
+ BOOST_FOREACH (KDMWithMetadataPtr i, kdms.screen_kdms) {
name_values['i'] = i->kdm_id ();
string const name = careful_string_filter(name_format.get(name_values, ".xml"));
zipper.add (name, i->kdm_as_xml());
* CinemaKDM contains the KDMs for its cinema.
*/
list<CinemaKDMs>
-CinemaKDMs::collect (list<KDMWithMetadataPtr> screen_kdms)
+collect (list<KDMWithMetadataPtr> screen_kdms)
{
list<CinemaKDMs> cinema_kdms;
/** Write one directory per cinema into another directory */
int
-CinemaKDMs::write_directories (
+write_directories (
list<CinemaKDMs> cinema_kdms,
boost::filesystem::path directory,
dcp::NameFormat container_name_format,
/** Write one ZIP file per cinema into a directory */
int
-CinemaKDMs::write_zip_files (
+write_zip_files (
list<CinemaKDMs> cinema_kdms,
boost::filesystem::path directory,
dcp::NameFormat container_name_format,
/* Creating a new zip file over an existing one is an error */
boost::filesystem::remove (path);
}
- i.make_zip_file (path, filename_format, name_values);
+ make_zip_file (i, path, filename_format, name_values);
written += i.screen_kdms.size();
}
}
* @param cpl_name Name of the CPL that the KDMs are for.
*/
void
-CinemaKDMs::email (
+email (
list<CinemaKDMs> cinema_kdms,
dcp::NameFormat container_name_format,
dcp::NameFormat filename_format,
boost::filesystem::path zip_file = boost::filesystem::temp_directory_path() / boost::filesystem::unique_path();
boost::filesystem::create_directories (zip_file);
zip_file /= container_name_format.get(name_values, ".zip");
- i.make_zip_file (zip_file, filename_format, name_values);
+ make_zip_file (i, zip_file, filename_format, name_values);
string subject = config->kdm_subject();
boost::algorithm::replace_all (subject, "$CPL_NAME", cpl_name);
class CinemaKDMs
{
public:
- void make_zip_file (boost::filesystem::path zip_file, dcp::NameFormat name_format, dcp::NameFormat::Map name_values) const;
+ boost::shared_ptr<Cinema> cinema;
+ std::list<KDMWithMetadataPtr > screen_kdms;
+};
+
+void make_zip_file (CinemaKDMs kdms, boost::filesystem::path zip_file, dcp::NameFormat name_format, dcp::NameFormat::Map name_values);
- static std::list<CinemaKDMs> collect (std::list<KDMWithMetadataPtr > kdms);
+std::list<CinemaKDMs> collect (std::list<KDMWithMetadataPtr > kdms);
- static int write_directories (
+int write_directories (
std::list<CinemaKDMs> cinema_kdms,
boost::filesystem::path directory,
dcp::NameFormat container_name_format,
boost::function<bool (boost::filesystem::path)> confirm_overwrite
);
- static int write_zip_files (
+int write_zip_files (
std::list<CinemaKDMs> cinema_kdms,
boost::filesystem::path directory,
dcp::NameFormat container_name_format,
boost::function<bool (boost::filesystem::path)> confirm_overwrite
);
- static void email (
+void email (
std::list<CinemaKDMs> cinema_kdms,
dcp::NameFormat container_name_format,
dcp::NameFormat filename_format,
std::string cpl_name
);
- boost::shared_ptr<Cinema> cinema;
- std::list<KDMWithMetadataPtr > screen_kdms;
-};
list<KDMWithMetadataPtr> screen_kdms, string name, KDMTimingPanel* timing, function<bool (boost::filesystem::path)> confirm_overwrite
)
{
- list<CinemaKDMs> const cinema_kdms = CinemaKDMs::collect (screen_kdms);
+ list<CinemaKDMs> const cinema_kdms = collect (screen_kdms);
/* Decide whether to proceed */
confirm_overwrite
);
} else if (_write_folder->GetValue()) {
- written = CinemaKDMs::write_directories (
- CinemaKDMs::collect (screen_kdms),
+ written = write_directories (
+ collect (screen_kdms),
directory(),
_container_name_format->get(),
_filename_format->get(),
confirm_overwrite
);
} else if (_write_zip->GetValue()) {
- written = CinemaKDMs::write_zip_files (
- CinemaKDMs::collect (screen_kdms),
+ written = write_zip_files (
+ collect (screen_kdms),
directory(),
_container_name_format->get(),
_filename_format->get(),