summaryrefslogtreecommitdiff
path: root/src/lib/encode_cli.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-03-03 20:52:47 +0100
committerCarl Hetherington <cth@carlh.net>2025-03-08 00:12:07 +0100
commit27f9ce96db8b800b301ad3b21fb81355e982941a (patch)
treebf516a44edfc970bc3d64e03c603807830d4d555 /src/lib/encode_cli.cc
parent3f2675aab119e55f958563e2fe6949192a2b976d (diff)
Allow configuration of Grok licence via dcpomatic2_cli (#2981).
Diffstat (limited to 'src/lib/encode_cli.cc')
-rw-r--r--src/lib/encode_cli.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/lib/encode_cli.cc b/src/lib/encode_cli.cc
index 67c82c141..7e9c25a6a 100644
--- a/src/lib/encode_cli.cc
+++ b/src/lib/encode_cli.cc
@@ -72,6 +72,10 @@ help(function <void (string)> out)
out(" make-dcp <FILM> make DCP from the given film; default if no other command is specified\n");
out(variant::insert_dcpomatic(" list-servers display a list of encoding servers that %1 can use (until Ctrl-C)\n"));
out(" dump <FILM> show a summary of the film's settings\n");
+#ifdef DCPOMATIC_GROK
+ out(" config-params list the parameters that can be set with `config`\n");
+ out(" config <PARAMETER> <VALUE> set a DCP-o-matic configuration value\n");
+#endif
out("\nOptions:\n\n");
out(variant::insert_dcpomatic(" -v, --version show %1 version\n"));
@@ -95,6 +99,7 @@ help(function <void (string)> out)
out(" --hints analyze film for hints before encoding and abort if any are found\n");
out("\ne.g.\n");
out(fmt::format("\n {} -t 4 make-dcp my_great_movie\n", program_name));
+ out(fmt::format("\n {} config grok-licence 12345ABCD\n", program_name));
out("\n");
}
@@ -374,7 +379,13 @@ encode_cli(int argc, char* argv[], function<void (string)> out, function<void ()
vector<string> commands = {
"make-dcp",
"list-servers",
+#ifdef DCPOMATIC_GROK
+ "dump",
+ "config-params",
+ "config"
+#else
"dump"
+#endif
};
if (optind < argc - 1) {
@@ -387,6 +398,33 @@ encode_cli(int argc, char* argv[], function<void (string)> out, function<void ()
}
}
+
+#ifdef DCPOMATIC_GROK
+ if (command == "config-params") {
+ out("Configurable parameters:\n\n");
+ out(" grok-licence licence string for using the Grok JPEG2000 encoder\n");
+ return {};
+ }
+
+ if (command == "config") {
+ if (optind < argc - 1) {
+ string const parameter = argv[optind++];
+ string const value = argv[optind++];
+ auto grok = Config::instance()->grok();
+ if (parameter == "grok-licence") {
+ grok.licence = value;
+ Config::instance()->set_grok(grok);
+ Config::instance()->write();
+ } else {
+ return fmt::format("Unrecognised configuration parameter `{}'", parameter);
+ }
+ } else {
+ return fmt::format("Missing configuration parameter: use {} config <parameter> <value>", program_name);
+ }
+ return {};
+ }
+#endif
+
if (config) {
State::override_path = *config;
}