diff options
author | David Robillard <d@drobilla.net> | 2011-08-21 05:00:54 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-08-21 05:00:54 +0000 |
commit | bdfc77e8cd8a586e535f5eab109dd0411e0554a0 (patch) | |
tree | dbd5aca9ff69682c4a67e5441f024e47f0f07604 /src/jalv_console.c | |
parent | 6084d3995a42001b1169cc3e8d50c4b7acf0deb6 (diff) | |
download | jalv-bdfc77e8cd8a586e535f5eab109dd0411e0554a0.tar.gz jalv-bdfc77e8cd8a586e535f5eab109dd0411e0554a0.tar.bz2 jalv-bdfc77e8cd8a586e535f5eab109dd0411e0554a0.zip |
Preliminary support for Jack Session and LV2 Persist.
Real command line argument support.
git-svn-id: http://svn.drobilla.net/lad/trunk/jalv@3441 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/jalv_console.c')
-rw-r--r-- | src/jalv_console.c | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/src/jalv_console.c b/src/jalv_console.c index 48c3ed3..6c0addd 100644 --- a/src/jalv_console.c +++ b/src/jalv_console.c @@ -14,14 +14,53 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#define _XOPEN_SOURCE 500 + +#include <string.h> +#include <stdbool.h> #include <stdio.h> #include "jalv-config.h" #include "jalv_internal.h" -void -jalv_init(int* argc, char*** argv) +static int +print_usage(const char* name, bool error) { + FILE* const os = error ? stderr : stdout; + fprintf(os, "Usage: %s [OPTION...] PLUGIN_URI\n", name); + fprintf(os, "Run an LV2 plugin as a Jack application.\n"); + fprintf(os, " -h Display this help and exit\n"); + fprintf(os, " -u UUID UUID for Jack session restoration\n"); + fprintf(os, " -l DIR Load state from save directory\n"); + return error ? 1 : 0; +} + +int +jalv_init(int* argc, char*** argv, JalvOptions* opts) +{ + int a = 1; + for (; a < *argc && (*argv)[a][0] == '-'; ++a) { + if ((*argv)[a][1] == 'h') { + return print_usage((*argv)[0], false); + } else if ((*argv)[a][1] == 'u') { + if (++a == *argc) { + fprintf(stderr, "Missing argument for -u\n"); + return 1; + } + opts->uuid = strdup((*argv)[a]); + } else if ((*argv)[a][1] == 'l') { + if (++a == *argc) { + fprintf(stderr, "Missing argument for -l\n"); + return 1; + } + opts->load = strdup((*argv)[a]); + } else { + fprintf(stderr, "Unknown option %s\n", (*argv)[a]); + return print_usage((*argv)[0], true); + } + } + + return 0; } LilvNode* |