From 0ab8cf5b312f36a14f66d4564c6f4b1694ddaae0 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 5 May 2020 14:16:36 +0200 Subject: [PATCH] Rename some variables and re-implement collect(). --- src/lib/kdm_with_metadata.cc | 46 ++++++++++++++-------------------- src/tools/dcpomatic_kdm.cc | 10 ++++---- src/tools/dcpomatic_kdm_cli.cc | 12 ++++----- src/wx/kdm_dialog.cc | 6 ++--- src/wx/kdm_output_panel.cc | 10 ++++---- 5 files changed, 38 insertions(+), 46 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 screen_kdms, + list 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 kdms, boost::filesystem::path zip_file, } -/** Collect a list of KDMWithMetadatas into a list of list 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 > -collect (list screen_kdms) +collect (list kdms) { - list > cinema_kdms; - - while (!screen_kdms.empty ()) { - - /* Get all the screens from a single cinema */ + list > grouped; - list ck; + BOOST_FOREACH (KDMWithMetadataPtr i, kdms) { - list::iterator i = screen_kdms.begin (); - ck.push_back (*i); - list::iterator j = i; - ++i; - screen_kdms.remove (*j); + list >::iterator j = grouped.begin (); - while (i != screen_kdms.end ()) { - if ((*i)->cinema() == ck.front()->cinema()) { - ck.push_back (*i); - list::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()); + grouped.back().push_back (i); + } } - return cinema_kdms; + return grouped; } diff --git a/src/tools/dcpomatic_kdm.cc b/src/tools/dcpomatic_kdm.cc index bbaf5bad7..dd45401cb 100644 --- a/src/tools/dcpomatic_kdm.cc +++ b/src/tools/dcpomatic_kdm.cc @@ -302,7 +302,7 @@ private: return; } - list screen_kdms; + list 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, 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) { diff --git a/src/tools/dcpomatic_kdm_cli.cc b/src/tools/dcpomatic_kdm_cli.cc index e3e977c6a..ec49723a8 100644 --- a/src/tools/dcpomatic_kdm_cli.cc +++ b/src/tools/dcpomatic_kdm_cli.cc @@ -129,7 +129,7 @@ always_overwrite () void write_files ( - list screen_kdms, + list 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 screen_kdms; + list kdms; BOOST_FOREACH (shared_ptr 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); diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc index 14ba5cf05..0686450fb 100644 --- a/src/wx/kdm_dialog.cc +++ b/src/wx/kdm_dialog.cc @@ -149,7 +149,7 @@ KDMDialog::make_clicked () shared_ptr film = _film.lock (); DCPOMATIC_ASSERT (film); - list screen_kdms; + list kdms; try { /* Start off by enabling forensic marking for all */ optional 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, int> result = _output->make (screen_kdms, film->name(), _timing, bind (&KDMDialog::confirm_overwrite, this, _1)); + pair, int> result = _output->make (kdms, film->name(), _timing, bind (&KDMDialog::confirm_overwrite, this, _1)); if (result.first) { JobManager::instance()->add (result.first); } diff --git a/src/wx/kdm_output_panel.cc b/src/wx/kdm_output_panel.cc index dcd5c6f91..025707b28 100644 --- a/src/wx/kdm_output_panel.cc +++ b/src/wx/kdm_output_panel.cc @@ -182,10 +182,10 @@ KDMOutputPanel::kdm_write_type_changed () pair, int> KDMOutputPanel::make ( - list screen_kdms, string name, KDMTimingPanel* timing, function confirm_overwrite + list kdms, string name, KDMTimingPanel* timing, function confirm_overwrite ) { - list > const cinema_kdms = collect (screen_kdms); + list > 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(), -- 2.30.2