[alsa-devel] [alsa-plugins] [PATCH 1/2] Allow to specify a client name as parameters
From 1ac8268330df7564edf252a542a27f3cf4f4472f Mon Sep 17 00:00:00 2001
From: Valentin Corfu valentinx.corfu@intel.com Date: Fri, 31 Jan 2014 08:06:23 -0500 Subject: [PATCH 1/2] Allow to specify a client name as parameters
The current jack client name contains the process id of the application providing the audio samples. This leads to unpredictable jack client names which makes handling of the connections by a controlling application very hard. This modification now, allows to specify a client name as parameters in the configuration file. The implementation is backward compatible and simply adds a new configuration option to the plugin.
Signed-off-by: Valentin Corfu valentinx.corfu@intel.com
diff --git a/jack/pcm_jack.c b/jack/pcm_jack.c index c51fe84..475c619 100644 --- a/jack/pcm_jack.c +++ b/jack/pcm_jack.c @@ -355,12 +355,19 @@ static int snd_pcm_jack_open(snd_pcm_t **pcmp, const char *name, snd_pcm_jack_free(jack); return -EINVAL; } - - if (snprintf(jack_client_name, sizeof(jack_client_name), "alsa-jack.%s%s.%d.%d", name, - stream == SND_PCM_STREAM_PLAYBACK ? "P" : "C", getpid(), num++) - >= (int)sizeof(jack_client_name)) { - fprintf(stderr, "%s: WARNING: JACK client name '%s' truncated to %d characters, might not be unique\n", - __func__, jack_client_name, (int)strlen(jack_client_name)); + if ( name == NULL ) { + if (snprintf(jack_client_name, sizeof(jack_client_name), "alsa-jack.%s%s.%d.%d", name, + stream == SND_PCM_STREAM_PLAYBACK ? "P" : "C", getpid(), num++) + >= (int)sizeof(jack_client_name)) { + fprintf(stderr, "%s: WARNING: JACK client name '%s' truncated to %d characters, might not be unique\n", + __func__, jack_client_name, (int)strlen(jack_client_name)); + } + } else { + if (snprintf(jack_client_name, sizeof(jack_client_name), "%s", name) + >= (int)sizeof(jack_client_name)) { + fprintf(stderr, "%s: WARNING: JACK client name '%s' truncated to %d characters, might not be unique\n", + __func__, jack_client_name, (int)strlen(jack_client_name)); + } }
jack->client = jack_client_new(jack_client_name); @@ -423,6 +430,10 @@ SND_PCM_PLUGIN_DEFINE_FUNC(jack) continue; if (strcmp(id, "comment") == 0 || strcmp(id, "type") == 0 || strcmp(id, "hint") == 0) continue; + if (strcmp(id, "name") == 0) { + snd_config_get_string(n, &name); + continue; + } if (strcmp(id, "playback_ports") == 0) { if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) { SNDERR("Invalid type for %s", id); -- 1.8.1.4
-------------------------------------------------------------- Intel Shannon Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 Business address: Dromore House, East Park, Shannon, Co. Clare
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
At Fri, 31 Jan 2014 14:05:42 +0000, Corfu, ValentinX wrote:
From 1ac8268330df7564edf252a542a27f3cf4f4472f Mon Sep 17 00:00:00 2001
From: Valentin Corfu valentinx.corfu@intel.com Date: Fri, 31 Jan 2014 08:06:23 -0500 Subject: [PATCH 1/2] Allow to specify a client name as parameters
The current jack client name contains the process id of the application providing the audio samples. This leads to unpredictable jack client names which makes handling of the connections by a controlling application very hard. This modification now, allows to specify a client name as parameters in the configuration file. The implementation is backward compatible and simply adds a new configuration option to the plugin.
Thanks, now it's much simpler than previous versions. But the patch you embedded in the mail couldn't be applied because your mailer converted the spaces wrongly. Please fix your mailer, or use an attachment if it's difficult.
Also, it'd be better to break lines in some fixed width (less than 80 chars) in changelog.
thanks,
Takashi
Signed-off-by: Valentin Corfu valentinx.corfu@intel.com
diff --git a/jack/pcm_jack.c b/jack/pcm_jack.c index c51fe84..475c619 100644 --- a/jack/pcm_jack.c +++ b/jack/pcm_jack.c @@ -355,12 +355,19 @@ static int snd_pcm_jack_open(snd_pcm_t **pcmp, const char *name, snd_pcm_jack_free(jack); return -EINVAL; }
- if (snprintf(jack_client_name, sizeof(jack_client_name), "alsa-jack.%s%s.%d.%d", name,
stream == SND_PCM_STREAM_PLAYBACK ? "P" : "C", getpid(), num++)
>= (int)sizeof(jack_client_name)) {
fprintf(stderr, "%s: WARNING: JACK client name '%s' truncated to %d characters, might not be unique\n",
__func__, jack_client_name, (int)strlen(jack_client_name));
if ( name == NULL ) {
if (snprintf(jack_client_name, sizeof(jack_client_name), "alsa-jack.%s%s.%d.%d", name,
stream == SND_PCM_STREAM_PLAYBACK ? "P" : "C", getpid(), num++)
>= (int)sizeof(jack_client_name)) {
fprintf(stderr, "%s: WARNING: JACK client name '%s' truncated to %d characters, might not be unique\n",
__func__, jack_client_name, (int)strlen(jack_client_name));
}
} else {
if (snprintf(jack_client_name, sizeof(jack_client_name), "%s", name)
>= (int)sizeof(jack_client_name)) {
fprintf(stderr, "%s: WARNING: JACK client name '%s' truncated to %d characters, might not be unique\n",
__func__, jack_client_name, (int)strlen(jack_client_name));
}
}
jack->client = jack_client_new(jack_client_name);
@@ -423,6 +430,10 @@ SND_PCM_PLUGIN_DEFINE_FUNC(jack) continue; if (strcmp(id, "comment") == 0 || strcmp(id, "type") == 0 || strcmp(id, "hint") == 0) continue;
if (strcmp(id, "name") == 0) {
snd_config_get_string(n, &name);
continue;
} if (strcmp(id, "playback_ports") == 0) { if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) { SNDERR("Invalid type for %s", id);
-- 1.8.1.4
Intel Shannon Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 Business address: Dromore House, East Park, Shannon, Co. Clare
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
participants (2)
-
Corfu, ValentinX
-
Takashi Iwai