diff options
author | David Robillard <d@drobilla.net> | 2017-02-18 18:00:03 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2017-02-18 18:00:03 +0100 |
commit | 3a46e861b5b8dbbacb8dd1cec9fa2c69a10b26e0 (patch) | |
tree | c4a2ac344e71132eb81306a84bfb1b6d762547ac | |
parent | dfb2415e7a8f36ef7ff635d7410dc83d391eaf26 (diff) | |
download | jalv-3a46e861b5b8dbbacb8dd1cec9fa2c69a10b26e0.tar.gz jalv-3a46e861b5b8dbbacb8dd1cec9fa2c69a10b26e0.tar.bz2 jalv-3a46e861b5b8dbbacb8dd1cec9fa2c69a10b26e0.zip |
Add jalv -i option to ignore stdin for background use
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | doc/jalv.1 | 4 | ||||
-rw-r--r-- | src/jalv_console.c | 6 | ||||
-rw-r--r-- | src/jalv_internal.h | 1 |
4 files changed, 12 insertions, 2 deletions
@@ -1,8 +1,9 @@ jalv (1.6.1) unstable; * Fix compilation with recent Gtkmm versions that require C++11 + * Add jalv -i option to ignore stdin for background use - -- David Robillard <d@drobilla.net> Sun, 12 Feb 2017 15:20:20 +0100 + -- David Robillard <d@drobilla.net> Sat, 18 Feb 2017 17:59:35 +0100 jalv (1.6.0) stable; @@ -17,6 +17,10 @@ Print the command line options. Print control output changes to stdout. .TP +\fB\-i\fR +Ignore input on stdin (for background use). + +.TP \fB\-c SYM=VAL\fR Set control value (e.g. "vol=1.4"). diff --git a/src/jalv_console.c b/src/jalv_console.c index c0f369c..e0e114b 100644 --- a/src/jalv_console.c +++ b/src/jalv_console.c @@ -106,6 +106,8 @@ jalv_init(int* argc, char*** argv, JalvOptions* opts) opts->controls, (++n_controls + 1) * sizeof(char*)); opts->controls[n_controls - 1] = (*argv)[a]; opts->controls[n_controls] = NULL; + } else if ((*argv)[a][1] == 'i') { + opts->non_interactive = true; } else if ((*argv)[a][1] == 'd') { opts->dump = true; } else if ((*argv)[a][1] == 't') { @@ -191,7 +193,7 @@ jalv_open_ui(Jalv* jalv) show_iface->hide(suil_instance_get_handle(jalv->ui_instance)); - } else { + } else if (!jalv->opts.non_interactive) { // Primitive command prompt for setting control values while (!zix_sem_try_wait(jalv->done)) { char line[128]; @@ -202,6 +204,8 @@ jalv_open_ui(Jalv* jalv) break; } } + } else { + zix_sem_wait(jalv->done); } // Caller waits on the done sem, so increment it again to exit diff --git a/src/jalv_internal.h b/src/jalv_internal.h index 3a565ec..06f116a 100644 --- a/src/jalv_internal.h +++ b/src/jalv_internal.h @@ -172,6 +172,7 @@ typedef struct { int no_menu; ///< Hide menu iff true int show_ui; ///< Show non-embedded UI int print_controls; ///< Print control changes to stdout + int non_interactive; ///< Do not listen for commands on stdin } JalvOptions; typedef struct { |