summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-05-05 14:16:36 +0200
committerCarl Hetherington <cth@carlh.net>2020-05-05 14:16:36 +0200
commit4314c86435299cad8dd72f61e7ae1e406e720399 (patch)
tree2903426d85630d8cf34ca2ea16ffe920f685afc4 /src
parent58f3fa4635c87a884287dc1885f2a07d4026badb (diff)
Rename some variables and re-implement collect().
Diffstat (limited to 'src')
-rw-r--r--src/lib/kdm_with_metadata.cc39
1 files changed, 15 insertions, 24 deletions
diff --git a/src/lib/kdm_with_metadata.cc b/src/lib/kdm_with_metadata.cc
index fe4f9ccdd..58d9e5357 100644
--- a/src/lib/kdm_with_metadata.cc
+++ b/src/lib/kdm_with_metadata.cc
@@ -105,41 +105,32 @@ 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;
+ list<list<KDMWithMetadataPtr> > grouped;
- while (!screen_kdms.empty ()) {
-
- /* Get all the screens from a single cinema */
-
- 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;
}
}
- cinema_kdms.push_back (ck);
+ if (j == grouped.end()) {
+ grouped.push_back (list<KDMWithMetadataPtr>());
+ grouped.back().push_back (i);
+ }
}
- return cinema_kdms;
+ return grouped;
}