aboutsummaryrefslogtreecommitdiffstats
path: root/src/jalv.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2015-10-09 22:00:54 +0000
committerDavid Robillard <d@drobilla.net>2015-10-09 22:00:54 +0000
commit179200bf87a153e1103a3bbe6133c9f5339d62d2 (patch)
treeda5ef637c94c8bc19d168db40997e91a06d4456a /src/jalv.c
parent5791a2a5bb3db7784f87efbb181cf8151a40c2de (diff)
downloadjalv-179200bf87a153e1103a3bbe6133c9f5339d62d2.tar.gz
jalv-179200bf87a153e1103a3bbe6133c9f5339d62d2.tar.bz2
jalv-179200bf87a153e1103a3bbe6133c9f5339d62d2.zip
Allow Jack client name to be set from command line
git-svn-id: http://svn.drobilla.net/lad/trunk/jalv@5760 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/jalv.c')
-rw-r--r--src/jalv.c35
1 files changed, 22 insertions, 13 deletions
diff --git a/src/jalv.c b/src/jalv.c
index 0853b81..c125a52 100644
--- a/src/jalv.c
+++ b/src/jalv.c
@@ -1152,34 +1152,43 @@ main(int argc, char** argv)
/* Create port structures (jalv.ports) */
jalv_create_ports(&jalv);
- /* Get the plugin's name */
- LilvNode* name = lilv_plugin_get_name(jalv.plugin);
- const char* name_str = lilv_node_as_string(name);
-
- /* Truncate plugin name to suit JACK (if necessary) */
+ /* Determine the name of the JACK client */
char* jack_name = NULL;
- if (strlen(name_str) >= (unsigned)jack_client_name_size() - 1) {
- jack_name = (char*)calloc(jack_client_name_size(), 1);
- strncpy(jack_name, name_str, jack_client_name_size() - 1);
+ if (jalv.opts.name) {
+ /* Name given on command line */
+ jack_name = jalv_strdup(jalv.opts.name);
} else {
- jack_name = jalv_strdup(name_str);
+ /* Use plugin name */
+ LilvNode* name = lilv_plugin_get_name(jalv.plugin);
+ jack_name = jalv_strdup(lilv_node_as_string(name));
+ lilv_node_free(name);
+ }
+
+ /* Truncate client name to suit JACK if necessary */
+ if (strlen(jack_name) >= (unsigned)jack_client_name_size() - 1) {
+ jack_name[jack_client_name_size() - 1] = '\0';
}
/* Connect to JACK */
printf("JACK Name: %s\n", jack_name);
#ifdef JALV_JACK_SESSION
if (jalv.opts.uuid) {
- jalv.jack_client = jack_client_open(jack_name, JackSessionID, NULL,
- jalv.opts.uuid);
+ jalv.jack_client = jack_client_open(
+ jack_name,
+ JackSessionID | (jalv.opts.name_exact ? JackUseExactName : 0),
+ NULL,
+ jalv.opts.uuid);
}
#endif
if (!jalv.jack_client) {
- jalv.jack_client = jack_client_open(jack_name, JackNullOption, NULL);
+ jalv.jack_client = jack_client_open(
+ jack_name,
+ (jalv.opts.name_exact ? JackUseExactName : JackNullOption),
+ NULL);
}
free(jack_name);
- lilv_node_free(name);
if (!jalv.jack_client)
die("Failed to connect to JACK.\n");