diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-05-05 14:16:36 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-05-05 14:16:36 +0200 |
| commit | 4314c86435299cad8dd72f61e7ae1e406e720399 (patch) | |
| tree | 2903426d85630d8cf34ca2ea16ffe920f685afc4 /src | |
| parent | 58f3fa4635c87a884287dc1885f2a07d4026badb (diff) | |
Rename some variables and re-implement collect().
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/kdm_with_metadata.cc | 39 |
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; } |
