aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2017-02-18 18:00:03 +0100
committerDavid Robillard <d@drobilla.net>2017-02-18 18:00:03 +0100
commit3a46e861b5b8dbbacb8dd1cec9fa2c69a10b26e0 (patch)
treec4a2ac344e71132eb81306a84bfb1b6d762547ac
parentdfb2415e7a8f36ef7ff635d7410dc83d391eaf26 (diff)
downloadjalv-3a46e861b5b8dbbacb8dd1cec9fa2c69a10b26e0.tar.gz
jalv-3a46e861b5b8dbbacb8dd1cec9fa2c69a10b26e0.tar.bz2
jalv-3a46e861b5b8dbbacb8dd1cec9fa2c69a10b26e0.zip
Add jalv -i option to ignore stdin for background use
-rw-r--r--NEWS3
-rw-r--r--doc/jalv.14
-rw-r--r--src/jalv_console.c6
-rw-r--r--src/jalv_internal.h1
4 files changed, 12 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index bb1c7bb..0112e71 100644
--- a/NEWS
+++ b/NEWS
@@ -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;
diff --git a/doc/jalv.1 b/doc/jalv.1
index 6d93a72..000ed5a 100644
--- a/doc/jalv.1
+++ b/doc/jalv.1
@@ -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 {