Rename some variables and re-implement collect().
authorCarl Hetherington <cth@carlh.net>
Tue, 5 May 2020 12:16:36 +0000 (14:16 +0200)
committerCarl Hetherington <cth@carlh.net>
Wed, 6 May 2020 18:15:39 +0000 (20:15 +0200)
src/lib/kdm_with_metadata.cc
src/tools/dcpomatic_kdm.cc
src/tools/dcpomatic_kdm_cli.cc
src/wx/kdm_dialog.cc
src/wx/kdm_output_panel.cc

index fe4f9ccdde7154e9e15fcab784253a191c073ccf..62d544e0b836ad8f898cbf7fc944a6b34cbd39c4 100644 (file)
@@ -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;
 }
 
 
index bbaf5bad717d03b6b6eb12c3855251113fe23210..dd45401cb70c050c79c602c1d7a1e0a182daa680 100644 (file)
@@ -302,7 +302,7 @@ private:
                                return;
                        }
 
-                       list<KDMWithMetadataPtr> screen_kdms;
+                       list<KDMWithMetadataPtr> kdms;
                        string title;
 
 #ifdef DCPOMATIC_VARIANT_SWAROOP
@@ -330,7 +330,7 @@ private:
                                        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()))
                                                        )
@@ -377,7 +377,7 @@ private:
                                        name_values['s'] = i->name;
 
                                        /* Encrypt */
-                                       screen_kdms.push_back (
+                                       kdms.push_back (
                                                KDMWithMetadataPtr(
                                                        new DCPKDMWithMetadata(
                                                                name_values,
@@ -392,12 +392,12 @@ private:
                                }
                        }
 
-                       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) {
index e3e977c6a2d511e602bda3d7a10157c38533cb9a..ec49723a8fcdf71892837da62d4d13de5fab5ae8 100644 (file)
@@ -129,7 +129,7 @@ always_overwrite ()
 
 void
 write_files (
-       list<KDMWithMetadataPtr> screen_kdms,
+       list<KDMWithMetadataPtr> kdms,
        bool zip,
        boost::filesystem::path output,
        dcp::NameFormat container_name_format,
@@ -140,7 +140,7 @@ write_files (
 {
        if (zip) {
                int const N = write_zip_files (
-                       collect (screen_kdms),
+                       collect (kdms),
                        output,
                        container_name_format,
                        filename_format,
@@ -153,7 +153,7 @@ write_files (
                }
        } else {
                int const N = write_files (
-                       screen_kdms, output, filename_format, values,
+                       kdms, output, filename_format, values,
                        bind (&always_overwrite)
                        );
 
@@ -348,7 +348,7 @@ from_dkdm (
        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;
@@ -358,7 +358,7 @@ from_dkdm (
                        name_values['c'] = i->cinema->name;
                        name_values['s'] = i->name;
 
-                       screen_kdms.push_back (
+                       kdms.push_back (
                                KDMWithMetadataPtr(
                                        new DCPKDMWithMetadata(
                                                name_values,
@@ -377,7 +377,7 @@ from_dkdm (
                                        )
                                );
                }
-               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);
index 14ba5cf0512bc52b4bfede6d88d912b71440e781..0686450fbf7fbf814efcb2ba6e20939217192cb9 100644 (file)
@@ -149,7 +149,7 @@ KDMDialog::make_clicked ()
        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;
@@ -180,7 +180,7 @@ KDMDialog::make_clicked ()
                                }
                                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)));
                        }
                }
 
@@ -196,7 +196,7 @@ KDMDialog::make_clicked ()
                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);
        }
index dcd5c6f91171e1dec299db5aef8f337cb2b8f36e..025707b287213ea813742d1609166babb2d25f3b 100644 (file)
@@ -182,10 +182,10 @@ KDMOutputPanel::kdm_write_type_changed ()
 
 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 */
 
@@ -247,7 +247,7 @@ KDMOutputPanel::make (
                if (_write_to->GetValue()) {
                        if (_write_flat->GetValue()) {
                                written = write_files (
-                                       screen_kdms,
+                                       kdms,
                                        directory(),
                                        _filename_format->get(),
                                        name_values,
@@ -255,7 +255,7 @@ KDMOutputPanel::make (
                                        );
                        } else if (_write_folder->GetValue()) {
                                written = write_directories (
-                                       collect (screen_kdms),
+                                       collect (kdms),
                                        directory(),
                                        _container_name_format->get(),
                                        _filename_format->get(),
@@ -264,7 +264,7 @@ KDMOutputPanel::make (
                                        );
                        } else if (_write_zip->GetValue()) {
                                written = write_zip_files (
-                                       collect (screen_kdms),
+                                       collect (kdms),
                                        directory(),
                                        _container_name_format->get(),
                                        _filename_format->get(),