X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fkdm_cli.cc;h=56977b52160811b20c966ca60232ed945abc8de7;hp=4c1a55d7d3f19423148d6797040fdcbb182f2c22;hb=758bcded6f954a60d4b9a38d12b51c68260e08f6;hpb=3daded6109b5a931b0764e8c5d461310c82ea1ed diff --git a/src/lib/kdm_cli.cc b/src/lib/kdm_cli.cc index 4c1a55d7d..56977b521 100644 --- a/src/lib/kdm_cli.cc +++ b/src/lib/kdm_cli.cc @@ -422,7 +422,8 @@ try auto filename_format = Config::instance()->kdm_filename_format(); optional cinema_name; shared_ptr cinema; - string screen_description; + optional certificate; + string screen; list> screens; optional dkdm; optional valid_from; @@ -534,19 +535,11 @@ try cinema = make_shared(optarg, list(), "", 0, 0); break; case 'S': - screen_description = optarg; + screen = optarg; break; case 'C': - { - /* Make a new screen and add it to the current cinema */ - dcp::CertificateChain chain (dcp::file_to_string(optarg)); - auto screen = std::make_shared(screen_description, "", chain.leaf(), boost::none, vector()); - if (cinema) { - cinema->add_screen (screen); - } - screens.push_back (screen); + certificate = optarg; break; - } case 'T': /* A trusted device ends up in the last screen we made */ if (!screens.empty ()) { @@ -562,6 +555,16 @@ try } } + if (certificate) { + /* Make a new screen and add it to the current cinema */ + dcp::CertificateChain chain(dcp::file_to_string(*certificate)); + auto screen_to_add = std::make_shared(screen, "", chain.leaf(), boost::none, vector()); + if (cinema) { + cinema->add_screen(screen_to_add); + } + screens.push_back(screen_to_add); + } + if (list_cinemas) { auto cinemas = Config::instance()->cinemas (); for (auto i: cinemas) {