diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-05-05 14:16:36 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-05-06 20:15:39 +0200 |
| commit | 0ab8cf5b312f36a14f66d4564c6f4b1694ddaae0 (patch) | |
| tree | 105228f3c2e2d77a02566a9344712e3c7e6cebaf /src/lib/kdm_with_metadata.cc | |
| parent | 8f8730cadb3dae36e8aa7b7c732a7c162eac0fb6 (diff) | |
Rename some variables and re-implement collect().
Diffstat (limited to 'src/lib/kdm_with_metadata.cc')
| -rw-r--r-- | src/lib/kdm_with_metadata.cc | 46 |
1 files changed, 19 insertions, 27 deletions
diff --git a/src/lib/kdm_with_metadata.cc b/src/lib/kdm_with_metadata.cc index fe4f9ccdd..62d544e0b 100644 --- a/src/lib/kdm_with_metadata.cc +++ b/src/lib/kdm_with_metadata.cc @@ -41,7 +41,7 @@ using boost::function; int write_files ( - list<KDMWithMetadataPtr> screen_kdms, + list<KDMWithMetadataPtr> kdms, boost::filesystem::path directory, dcp::NameFormat name_format, dcp::NameFormat::Map name_values, @@ -52,7 +52,7 @@ write_files ( if (directory == "-") { /* Write KDMs to the stdout */ - BOOST_FOREACH (KDMWithMetadataPtr i, screen_kdms) { + BOOST_FOREACH (KDMWithMetadataPtr i, kdms) { cout << i->kdm_as_xml (); ++written; } @@ -65,7 +65,7 @@ write_files ( } /* 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)) { @@ -105,41 +105,33 @@ make_zip_file (list<KDMWithMetadataPtr> kdms, boost::filesystem::path zip_file, } -/** 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; } |
