diff options
author | David Robillard <d@drobilla.net> | 2013-12-25 19:11:30 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-12-25 19:11:30 +0000 |
commit | e0b7e4f26111f0e5dddf6a6b5f2285b39e1e0368 (patch) | |
tree | 81eb9322074a3af06bddd354150d0933f83e3178 /src/jalv.c | |
parent | d8f7e5c92f7e03bfd28cb137ce40536f9f36818f (diff) | |
download | jalv-e0b7e4f26111f0e5dddf6a6b5f2285b39e1e0368.tar.gz jalv-e0b7e4f26111f0e5dddf6a6b5f2285b39e1e0368.tar.bz2 jalv-e0b7e4f26111f0e5dddf6a6b5f2285b39e1e0368.zip |
Add -c option for setting controls from the command line (#816).
git-svn-id: http://svn.drobilla.net/lad/trunk/jalv@5202 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/jalv.c')
-rw-r--r-- | src/jalv.c | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -795,6 +795,26 @@ jalv_emit_ui_events(Jalv* jalv) return true; } +static bool +jalv_apply_control_arg(Jalv* jalv, const char* s) +{ + char sym[256]; + float val = 0.0f; + if (sscanf(s, "%[^=]=%f", sym, &val) != 2) { + fprintf(stderr, "warning: Ignoring invalid value `%s'\n", s); + return false; + } + + struct Port* port = jalv_port_by_symbol(jalv, sym); + if (!port) { + fprintf(stderr, "warning: Ignoring value for unknown port `%s'\n", sym); + return false; + } + + port->control = val; + return true; +} + static void signal_handler(int ignored) { @@ -1120,6 +1140,10 @@ main(int argc, char** argv) jalv_apply_state(&jalv, state); } + for (char** c = jalv.opts.controls; *c; ++c) { + jalv_apply_control_arg(&jalv, *c); + } + /* Set Jack callbacks */ jack_set_process_callback(jalv.jack_client, &jack_process_cb, (void*)(&jalv)); |