Message ID | 1457474807-10240-1-git-send-email-martin@mail.zuhause (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 08 Mar 2016 23:06:47 +0100, Martin Koegler wrote: > > From: Martin Koegler <martin.koegler@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@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@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel >
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),