From f87977165a0f40d2e914c7f4dcc20e6f9494bac1 Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Fri, 5 Jul 2024 11:21:46 +0100 Subject: [PATCH] add `-p` flag for loading a user configuration file. add -p explanation to README --- README.md | 3 ++- src/vmrcli.c | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 92216d0..9c481a8 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ ## `Use` ```powershell -./vmrcli.exe [-h] [-i] [-k] [-D] [-v] [-m] [-s] +./vmrcli.exe [-h] [-i] [-k] [-D] [-v] [-p] [-m] [-s] ``` Where: @@ -23,6 +23,7 @@ Where: - `k`: The kind of Voicemeeter (basic, banana or potato). Use this to launch the GUI. - `D`: Set log level 0=TRACE, 1=DEBUG, 2=INFO, 3=WARN, 4=ERROR, 5=FATAL - `v`: Enable extra console output (toggle, set messages) +- `p`: Load a user configuration (given the file name or a full path) - `m`: Launch the MacroButtons application - `s`: Launch the StreamerView application diff --git a/src/vmrcli.c b/src/vmrcli.c index c961f7b..4ebb920 100644 --- a/src/vmrcli.c +++ b/src/vmrcli.c @@ -49,9 +49,11 @@ int main(int argc, char *argv[]) { bool iflag = false, mflag = false, - sflag = false; + sflag = false, + pflag = false; int opt; int dvalue; + char *pvalue; enum kind kind = BANANAX64; if (argc == 1) @@ -62,7 +64,7 @@ int main(int argc, char *argv[]) log_set_level(LOG_WARN); - while ((opt = getopt(argc, argv, "hk:msiD:v")) != -1) + while ((opt = getopt(argc, argv, "hk:msp:iD:v")) != -1) { switch (opt) { @@ -83,6 +85,10 @@ int main(int argc, char *argv[]) case 's': sflag = true; break; + case 'p': + pflag = true; + pvalue = optarg; + break; case 'i': iflag = true; break; @@ -128,6 +134,12 @@ int main(int argc, char *argv[]) run_voicemeeter(vmr, STREAMERVIEW); } + if (pflag) + { + log_info("Profile %s loaded", pvalue); + set_parameter_string(vmr, "command.load", pvalue); + } + if (iflag) { puts("Interactive mode enabled. Enter 'Q' to exit."); @@ -160,13 +172,14 @@ int main(int argc, char *argv[]) void help() { puts( - "Usage: ./vmrcli.exe [-h] [-i] [-k] [-D] [-v] [-m] [-s] \n" + "Usage: ./vmrcli.exe [-h] [-i] [-k] [-D] [-v] [-p] [-m] [-s] \n" "Where: \n" "\th: Prints the help message\n" "\ti: Enable interactive mode\n" "\tk: The kind of Voicemeeter (basic, banana, potato)\n" "\tD: Set log level 0=TRACE, 1=DEBUG, 2=INFO, 3=WARN, 4=ERROR, 5=FATAL\n" "\tv: Enable extra console output (toggle, set messages)\n" + "\tp: Load a user configuration (given the file name or a full path)\n" "\tm: Launch the MacroButtons application\n" "\ts: Launch the StreamerView application"); }