int
write_files (
- list<KDMWithMetadataPtr> screen_kdms,
+ list<KDMWithMetadataPtr> kdms,
boost::filesystem::path directory,
dcp::NameFormat name_format,
dcp::NameFormat::Map name_values,
if (directory == "-") {
/* Write KDMs to the stdout */
- BOOST_FOREACH (KDMWithMetadataPtr i, screen_kdms) {
+ BOOST_FOREACH (KDMWithMetadataPtr i, kdms) {
cout << i->kdm_as_xml ();
++written;
}
}
/* Write KDMs to the specified directory */
- BOOST_FOREACH (KDMWithMetadataPtr i, screen_kdms) {
+ BOOST_FOREACH (KDMWithMetadataPtr i, kdms) {
name_values['i'] = i->kdm_id ();
boost::filesystem::path out = directory / careful_string_filter(name_format.get(name_values, ".xml"));
if (!boost::filesystem::exists (out) || confirm_overwrite (out)) {
}
-/** Collect a list of KDMWithMetadatas into a list of list<KDMWithMetadata> so that each
- * CinemaKDM contains the KDMs for its cinema.
+/** Collect a list of KDMWithMetadatas into a list of lists so that
+ * each list contains the KDMs for one cinema.
*/
list<list<KDMWithMetadataPtr> >
-collect (list<KDMWithMetadataPtr> screen_kdms)
+collect (list<KDMWithMetadataPtr> kdms)
{
- list<list<KDMWithMetadataPtr> > cinema_kdms;
-
- while (!screen_kdms.empty ()) {
-
- /* Get all the screens from a single cinema */
+ list<list<KDMWithMetadataPtr> > grouped;
- list<KDMWithMetadataPtr> ck;
+ BOOST_FOREACH (KDMWithMetadataPtr i, kdms) {
- list<KDMWithMetadataPtr>::iterator i = screen_kdms.begin ();
- ck.push_back (*i);
- list<KDMWithMetadataPtr>::iterator j = i;
- ++i;
- screen_kdms.remove (*j);
+ list<list<KDMWithMetadataPtr> >::iterator j = grouped.begin ();
- while (i != screen_kdms.end ()) {
- if ((*i)->cinema() == ck.front()->cinema()) {
- ck.push_back (*i);
- list<KDMWithMetadataPtr>::iterator j = i;
- ++i;
- screen_kdms.remove (*j);
- } else {
- ++i;
+ while (j != grouped.end()) {
+ if (j->front()->cinema() == i->cinema()) {
+ j->push_back (i);
+ break;
}
+ ++j;
}
- cinema_kdms.push_back (ck);
+ if (j == grouped.end()) {
+ grouped.push_back (list<KDMWithMetadataPtr>());
+ grouped.back().push_back (i);
+ }
}
- return cinema_kdms;
+ return grouped;
}
return;
}
- list<KDMWithMetadataPtr> screen_kdms;
+ list<KDMWithMetadataPtr> kdms;
string title;
#ifdef DCPOMATIC_VARIANT_SWAROOP
name_values['s'] = i->name;
/* Encrypt */
- screen_kdms.push_back (
+ kdms.push_back (
KDMWithMetadataPtr(
new ECinemaKDMWithMetadata(name_values, i->cinema, kdm.encrypt(i->recipient.get()))
)
name_values['s'] = i->name;
/* Encrypt */
- screen_kdms.push_back (
+ kdms.push_back (
KDMWithMetadataPtr(
new DCPKDMWithMetadata(
name_values,
}
}
- if (screen_kdms.empty()) {
+ if (kdms.empty()) {
return;
}
pair<shared_ptr<Job>, int> result = _output->make (
- screen_kdms, title, _timing, bind (&DOMFrame::confirm_overwrite, this, _1)
+ kdms, title, _timing, bind (&DOMFrame::confirm_overwrite, this, _1)
);
if (result.first) {
void
write_files (
- list<KDMWithMetadataPtr> screen_kdms,
+ list<KDMWithMetadataPtr> kdms,
bool zip,
boost::filesystem::path output,
dcp::NameFormat container_name_format,
{
if (zip) {
int const N = write_zip_files (
- collect (screen_kdms),
+ collect (kdms),
output,
container_name_format,
filename_format,
}
} else {
int const N = write_files (
- screen_kdms, output, filename_format, values,
+ kdms, output, filename_format, values,
bind (&always_overwrite)
);
values['e'] = dcp::LocalTime(valid_to).date() + " " + dcp::LocalTime(valid_to).time_of_day(true, false);
try {
- list<KDMWithMetadataPtr> screen_kdms;
+ list<KDMWithMetadataPtr> kdms;
BOOST_FOREACH (shared_ptr<Screen> i, screens) {
if (!i->recipient) {
continue;
name_values['c'] = i->cinema->name;
name_values['s'] = i->name;
- screen_kdms.push_back (
+ kdms.push_back (
KDMWithMetadataPtr(
new DCPKDMWithMetadata(
name_values,
)
);
}
- write_files (screen_kdms, zip, output, container_name_format, filename_format, values, verbose);
+ write_files (kdms, zip, output, container_name_format, filename_format, values, verbose);
} catch (FileError& e) {
cerr << program_name << ": " << e.what() << " (" << e.file().string() << ")\n";
exit (EXIT_FAILURE);
shared_ptr<const Film> film = _film.lock ();
DCPOMATIC_ASSERT (film);
- list<KDMWithMetadataPtr> screen_kdms;
+ list<KDMWithMetadataPtr> kdms;
try {
/* Start off by enabling forensic marking for all */
optional<int> for_audio;
}
name_values['s'] = i->name;
- screen_kdms.push_back (KDMWithMetadataPtr(new DCPKDMWithMetadata(name_values, i->cinema, kdm)));
+ kdms.push_back (KDMWithMetadataPtr(new DCPKDMWithMetadata(name_values, i->cinema, kdm)));
}
}
return;
}
- pair<shared_ptr<Job>, int> result = _output->make (screen_kdms, film->name(), _timing, bind (&KDMDialog::confirm_overwrite, this, _1));
+ pair<shared_ptr<Job>, int> result = _output->make (kdms, film->name(), _timing, bind (&KDMDialog::confirm_overwrite, this, _1));
if (result.first) {
JobManager::instance()->add (result.first);
}
pair<shared_ptr<Job>, int>
KDMOutputPanel::make (
- list<KDMWithMetadataPtr> screen_kdms, string name, KDMTimingPanel* timing, function<bool (boost::filesystem::path)> confirm_overwrite
+ list<KDMWithMetadataPtr> kdms, string name, KDMTimingPanel* timing, function<bool (boost::filesystem::path)> confirm_overwrite
)
{
- list<list<KDMWithMetadataPtr> > const cinema_kdms = collect (screen_kdms);
+ list<list<KDMWithMetadataPtr> > const cinema_kdms = collect (kdms);
/* Decide whether to proceed */
if (_write_to->GetValue()) {
if (_write_flat->GetValue()) {
written = write_files (
- screen_kdms,
+ kdms,
directory(),
_filename_format->get(),
name_values,
);
} else if (_write_folder->GetValue()) {
written = write_directories (
- collect (screen_kdms),
+ collect (kdms),
directory(),
_container_name_format->get(),
_filename_format->get(),
);
} else if (_write_zip->GetValue()) {
written = write_zip_files (
- collect (screen_kdms),
+ collect (kdms),
directory(),
_container_name_format->get(),
_filename_format->get(),