[alsa-devel] [PATCH] Show sequencer sound card numer/PID via aconnect

Takashi Iwai tiwai at suse.de
Wed Mar 9 09:16:45 CET 2016


On Tue, 08 Mar 2016 23:06:47 +0100,
Martin Koegler wrote:
> 
> From: Martin Koegler <martin.koegler at chello.at>
> 
> rawmidi devices expose the card number via IOCTLs, which allows to
> find the corresponding device in sysfs.
> 
> The sequencer provides no identifing data. Chromium works around this
> issue by scanning rawmidi as well as sequencer devices and matching
> them by using assumtions, how the kernel register sequencer devices.
> 
> This patch adds support for displaying the sound card number/PID to
> aconnect.
> 
> Signed-off-by: Martin Koegler <martin.koegler at chello.at>

Applied, thanks.


Takashi

> ---
>  configure.ac            |  9 +++++++++
>  seq/aconnect/aconnect.c | 17 ++++++++++++++++-
>  2 files changed, 25 insertions(+), 1 deletion(-)
> 
> diff --git a/configure.ac b/configure.ac
> index bdb133c..9e48190 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -41,6 +41,15 @@ AC_CHECK_HEADERS([alsa/topology.h], [have_topology="yes"], [have_topology="no"],
>  AC_CHECK_HEADERS([samplerate.h], [have_samplerate="yes"], [have_samplerate="no"],
>    [#include <samplerate.h>])
>  
> +AC_CHECK_LIB([asound], [snd_seq_client_info_get_card], [HAVE_SEQ_CLIENT_INFO_GET_CARD="yes"])
> +if test "$HAVE_SEQ_CLIENT_INFO_GET_CARD" = "yes" ; then
> +    AC_DEFINE([HAVE_SEQ_CLIENT_INFO_GET_CARD], 1, [alsa-lib supports snd_seq_client_info_get_card])
> +fi
> +AC_CHECK_LIB([asound], [snd_seq_client_info_get_pid], [HAVE_SEQ_CLIENT_INFO_GET_PID="yes"])
> +if test "$HAVE_SEQ_CLIENT_INFO_GET_PID" = "yes" ; then
> +    AC_DEFINE([HAVE_SEQ_CLIENT_INFO_GET_PID], 1, [alsa-lib supports snd_seq_client_info_get_pid])
> +fi
> +
>  AM_CONDITIONAL(HAVE_PCM, test "$have_pcm" = "yes")
>  AM_CONDITIONAL(HAVE_MIXER, test "$have_mixer" = "yes")
>  AM_CONDITIONAL(HAVE_RAWMIDI, test "$have_rawmidi" = "yes")
> diff --git a/seq/aconnect/aconnect.c b/seq/aconnect/aconnect.c
> index 8d6cebb..85a7770 100644
> --- a/seq/aconnect/aconnect.c
> +++ b/seq/aconnect/aconnect.c
> @@ -166,11 +166,26 @@ static void print_port(snd_seq_t *seq, snd_seq_client_info_t *cinfo,
>  		       snd_seq_port_info_t *pinfo, int count)
>  {
>  	if (! count) {
> -		printf(_("client %d: '%s' [type=%s]\n"),
> +		int card = -1, pid = -1;
> +
> +		printf(_("client %d: '%s' [type=%s"),
>  		       snd_seq_client_info_get_client(cinfo),
>  		       snd_seq_client_info_get_name(cinfo),
>  		       (snd_seq_client_info_get_type(cinfo) == SND_SEQ_USER_CLIENT ?
>  			_("user") : _("kernel")));
> +
> +#ifdef HAVE_SEQ_CLIENT_INFO_GET_CARD
> +		card = snd_seq_client_info_get_card(cinfo);
> +#endif
> +		if (card != -1)
> +			printf(",card=%d", card);
> +
> +#ifdef HAVE_SEQ_CLIENT_INFO_GET_PID
> +		pid = snd_seq_client_info_get_pid(cinfo);
> +#endif
> +		if (pid != -1)
> +			printf(",pid=%d", pid);
> +		printf("]\n");
>  	}
>  	printf("  %3d '%-16s'\n",
>  	       snd_seq_port_info_get_port(pinfo),
> -- 
> 2.1.4
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list