X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fdolby_doremi_certificate_panel.cc;h=66dce8612a80e6d0b9bccc2aa8ad7d9d415432f6;hb=34df545d56df724949f9974dbc20bd2857a2650a;hp=25f7392396b39000333cbdaf60f11cb781774f26;hpb=3c29aa6531a4046a8db72dcac81189eb8893233c;p=dcpomatic.git diff --git a/src/wx/dolby_doremi_certificate_panel.cc b/src/wx/dolby_doremi_certificate_panel.cc index 25f739239..66dce8612 100644 --- a/src/wx/dolby_doremi_certificate_panel.cc +++ b/src/wx/dolby_doremi_certificate_panel.cc @@ -29,11 +29,13 @@ #include #include #include +#include using std::function; using std::list; using std::string; +using namespace boost::algorithm; using boost::optional; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; @@ -51,6 +53,15 @@ DolbyDoremiCertificatePanel::DolbyDoremiCertificatePanel (DownloadCertificateDia static void try_dcp2000 (list& urls, list& files, string prefix, string serial) { + urls.push_back(String::compose("%1%2xxx/Dolby-DCP2000-%3.dcicerts.zip", prefix, serial.substr(0, 3), serial)); + files.push_back(String::compose("Dolby-DCP2000-%1.cert.sha256.pem", serial)); + + urls.push_back(String::compose("%1%2xxx/Dolby-DCP2000-%3.dcicerts.zip", prefix, serial.substr(0, 3), serial)); + files.push_back(String::compose("Dolby-DCP2000-%1.cert.sha256.pem", serial)); + + urls.push_back(String::compose("%1%2xxx/Dolby-DCP2000-%3.certs.zip", prefix, serial.substr(0, 3), serial)); + files.push_back(String::compose("Dolby-DCP2000-%1.cert.sha256.pem", serial)); + urls.push_back (String::compose("%1%2xxx/dcp2000-%3.dcicerts.zip", prefix, serial.substr(0, 3), serial)); files.push_back (String::compose("dcp2000-%1.cert.sha256.pem", serial)); @@ -160,7 +171,8 @@ try_ims3000 (list& urls, list& files, string prefix, string seri void DolbyDoremiCertificatePanel::do_download () { - string const serial = wx_to_std (_serial->GetValue()); + string serial = wx_to_std(_serial->GetValue()); + trim(serial); /* Try dcp2000, imb and ims prefixes (see mantis #375) */ @@ -179,6 +191,8 @@ DolbyDoremiCertificatePanel::do_download () } } + list errors; + if (starts_with_digit) { try_dcp2000 (urls, files, prefix, serial); try_imb (urls, files, prefix, serial); @@ -190,9 +204,10 @@ DolbyDoremiCertificatePanel::do_download () try_cat745 (urls, files, prefix, serial); } else if (starting_char == 'F') { try_cp850 (urls, files, prefix, serial); + } else { + errors.push_back(wx_to_std(_("Unrecognised serial number format (does not start with a number, H or F)"))); } - list errors; bool ok = false; auto i = urls.begin (); auto j = files.begin ();