On Tue, 08 Mar 2016 23:06:47 +0100, Martin Koegler wrote: > > From: Martin Koegler <martin.koegler@xxxxxxxxx> > > 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@xxxxxxxxx> 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@xxxxxxxxxxxxxxxx > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel