2.0 init
authorSeungbae Shin <seungbae.shin@samsung.com>
Tue, 21 Aug 2012 10:22:49 +0000 (19:22 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Tue, 21 Aug 2012 10:22:49 +0000 (19:22 +0900)
86 files changed:
Makefile.am
Makefile.in
aclocal.m4
alsaconf/Makefile.in
alsaconf/alsaconf.in
alsactl/90-alsa-restore.rules [new file with mode: 0644]
alsactl/90-alsa-restore.rules.in [new file with mode: 0644]
alsactl/Makefile.am
alsactl/Makefile.in
alsactl/alsa-restore.service.in [new file with mode: 0644]
alsactl/alsa-store.service.in [new file with mode: 0644]
alsactl/alsactl.1
alsactl/alsactl.c
alsactl/alsactl.h
alsactl/alsactl_init.xml
alsactl/init/00main
alsactl/init/Makefile.in
alsactl/init/default
alsactl/init/test
alsactl/init_parse.c
alsactl/state.c
alsactl/utils.c
alsaloop/Makefile.am [new file with mode: 0644]
alsaloop/Makefile.in [new file with mode: 0644]
alsaloop/alsaloop.1 [new file with mode: 0644]
alsaloop/alsaloop.c [new file with mode: 0644]
alsaloop/alsaloop.h [new file with mode: 0644]
alsaloop/control.c [new file with mode: 0644]
alsaloop/pcmjob.c [new file with mode: 0644]
alsamixer/Makefile.am
alsamixer/Makefile.in
alsamixer/alsamixer.1
alsamixer/cli.c
alsamixer/colors.c
alsamixer/mixer_controls.c
alsamixer/mixer_display.c
alsamixer/mixer_widget.c
alsamixer/textbox.c
alsamixer/volume_mapping.c [new file with mode: 0644]
alsamixer/volume_mapping.h [new file with mode: 0644]
alsaucm/Makefile.am [new file with mode: 0644]
alsaucm/Makefile.in [new file with mode: 0644]
alsaucm/go.sh [new file with mode: 0755]
alsaucm/usecase.c [new file with mode: 0644]
amidi/Makefile.in
amidi/amidi.c
amixer/Makefile.in
amixer/amixer.c
aplay/Makefile.in
aplay/aplay.1
aplay/aplay.c
aplay/arecord [deleted symlink]
aplay/arecord.1
config.guess
config.sub
configure
configure.in
debian/changelog
depcomp
iecset/Makefile.in
include/Makefile.in
include/aconfig.h.in
include/version.h
install-sh
m4/Makefile.in
missing
packaging/alsa-utils.spec
po/LINGUAS
po/alsa-utils.pot
po/de.gmo
po/de.po
po/fr.gmo [new file with mode: 0644]
po/fr.po [new file with mode: 0644]
po/ja.gmo
po/ja.po
seq/Makefile.in
seq/aconnect/Makefile.in
seq/aconnect/aconnect.c
seq/aplaymidi/Makefile.in
seq/aseqdump/Makefile.in
seq/aseqnet/Makefile.in
speaker-test/Makefile.in
speaker-test/samples/Makefile.in
speaker-test/speaker-test.c
utils/Makefile.in
version [deleted file]

index 69ce92c..5d5c38e 100644 (file)
@@ -1,6 +1,6 @@
 INCLUDES=-I$(top_srcdir)/include
 
-SUBDIRS = include alsactl utils m4 po
+SUBDIRS = include alsactl alsaucm utils m4 po
 if ALSAMIXER
 SUBDIRS += alsamixer
 endif
@@ -15,6 +15,9 @@ SUBDIRS += alsaconf
 endif
 if HAVE_PCM
 SUBDIRS += aplay iecset speaker-test
+if ALSALOOP
+SUBDIRS += alsaloop
+endif
 endif
 if HAVE_SEQ
 SUBDIRS += seq
@@ -34,3 +37,9 @@ dist-hook:
        else \
                $(TAR) --create --verbose --file=- $(distdir) | bzip2 -c -9 > $(distdir).tar.bz2 ; \
        fi
+
+install-data-hook:
+       $(MKDIR_P) -m 0755 $(DESTDIR)$(ASOUND_STATE_DIR)
+
+DISTCHECK_CONFIGURE_FLAGS = \
+        --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
index 9805d9e..7f2bf91 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -40,13 +38,14 @@ host_triplet = @host@
 @HAVE_RAWMIDI_TRUE@am__append_3 = amidi
 @ALSACONF_TRUE@am__append_4 = alsaconf
 @HAVE_PCM_TRUE@am__append_5 = aplay iecset speaker-test
-@HAVE_SEQ_TRUE@am__append_6 = seq
+@ALSALOOP_TRUE@@HAVE_PCM_TRUE@am__append_6 = alsaloop
+@HAVE_SEQ_TRUE@am__append_7 = seq
+subdir = .
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in $(top_srcdir)/alsaconf/po/Makefile.in \
        $(top_srcdir)/configure ABOUT-NLS COPYING ChangeLog INSTALL \
        TODO config.guess config.rpath config.sub depcomp install-sh \
        missing
-subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
@@ -57,43 +56,70 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno configure.status.lineno
+ configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES = alsaconf/po/Makefile
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
-       install-exec-recursive install-info-recursive \
-       install-recursive installcheck-recursive installdirs-recursive \
-       pdf-recursive ps-recursive uninstall-info-recursive \
-       uninstall-recursive
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir dist dist-all distcheck
 ETAGS = etags
 CTAGS = ctags
-DIST_SUBDIRS = include alsactl utils m4 po alsamixer amixer amidi \
-       alsaconf aplay iecset speaker-test seq
+DIST_SUBDIRS = include alsactl alsaucm utils m4 po alsamixer amixer \
+       amidi alsaconf aplay iecset speaker-test alsaloop seq
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d $(distdir) \
-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr $(distdir); }; }
+  { test ! -d "$(distdir)" \
+    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr "$(distdir)"; }; }
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 DIST_ARCHIVES = $(distdir).tar.gz
 GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
 distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -117,14 +143,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -142,6 +161,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -154,6 +174,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -164,14 +185,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -183,6 +204,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -212,16 +234,25 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
-SUBDIRS = include alsactl utils m4 po $(am__append_1) $(am__append_2) \
-       $(am__append_3) $(am__append_4) $(am__append_5) \
-       $(am__append_6)
+SUBDIRS = include alsactl alsaucm utils m4 po $(am__append_1) \
+       $(am__append_2) $(am__append_3) $(am__append_4) \
+       $(am__append_5) $(am__append_6) $(am__append_7)
 EXTRA_DIST = config.rpath  TODO gitcompile
 AUTOMAKE_OPTIONS = foreign
 ACLOCAL_AMFLAGS = -I m4
+DISTCHECK_CONFIGURE_FLAGS = \
+        --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
+
 all: all-recursive
 
 .SUFFIXES:
@@ -231,15 +262,15 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
-             cd $(srcdir) && $(AUTOMAKE) --foreign  \
+             echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+             $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
                && exit 0; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -255,12 +286,12 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC
        $(SHELL) ./config.status --recheck
 
 $(top_srcdir)/configure:  $(am__configure_deps)
-       cd $(srcdir) && $(AUTOCONF)
+       $(am__cd) $(srcdir) && $(AUTOCONF)
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-       cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+       $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
 alsaconf/po/Makefile: $(top_builddir)/config.status $(top_srcdir)/alsaconf/po/Makefile.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
-uninstall-info-am:
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -269,7 +300,7 @@ uninstall-info-am:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-       @failcom='exit 1'; \
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -286,16 +317,15 @@ $(RECURSIVE_TARGETS):
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done; \
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
-       @failcom='exit 1'; \
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -321,16 +351,16 @@ maintainer-clean-recursive:
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
        done
 ctags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
        done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -338,14 +368,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
          include_option=--etags-include; \
@@ -357,84 +387,103 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
        list='$(SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test ! -f $$subdir/TAGS || \
-             tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
        $(am__remove_distdir)
-       mkdir $(distdir)
-       $(mkdir_p) $(distdir)/alsaconf $(distdir)/alsaconf/po $(distdir)/m4 $(distdir)/po $(distdir)/utils
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       test -d "$(distdir)" || mkdir "$(distdir)"
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
-       list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test -d "$(distdir)/$$subdir" \
-           || $(mkdir_p) "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
            || exit 1; \
-           distdir=`$(am__cd) $(distdir) && pwd`; \
-           top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-           (cd $$subdir && \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
              $(MAKE) $(AM_MAKEFLAGS) \
-               top_distdir="$$top_distdir" \
-               distdir="$$distdir/$$subdir" \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
                distdir) \
              || exit 1; \
          fi; \
@@ -442,12 +491,13 @@ distdir: $(DISTFILES)
        $(MAKE) $(AM_MAKEFLAGS) \
          top_distdir="$(top_distdir)" distdir="$(distdir)" \
          dist-hook
-       -find "$(distdir)" -type d ! -perm -755 \
+       -test -n "$(am__skip_mode_fix)" \
+       || find "$(distdir)" -type d ! -perm -755 \
                -exec chmod u+rwx,go+rx {} \; -o \
          ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
          ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-         ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
-       || chmod -R a+r $(distdir)
+         ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+       || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
        $(am__remove_distdir)
@@ -456,6 +506,14 @@ dist-bzip2: distdir
        tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
        $(am__remove_distdir)
 
+dist-lzma: distdir
+       tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+       $(am__remove_distdir)
+
+dist-xz: distdir
+       tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+       $(am__remove_distdir)
+
 dist-tarZ: distdir
        tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
        $(am__remove_distdir)
@@ -479,13 +537,17 @@ dist dist-all: distdir
 distcheck: dist
        case '$(DIST_ARCHIVES)' in \
        *.tar.gz*) \
-         GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+         GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
-         bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+         bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+       *.tar.lzma*) \
+         lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+       *.tar.xz*) \
+         xz -dc $(distdir).tar.xz | $(am__untar) ;;\
        *.tar.Z*) \
          uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
        *.shar.gz*) \
-         GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+         GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
@@ -493,9 +555,11 @@ distcheck: dist
        mkdir $(distdir)/_build
        mkdir $(distdir)/_inst
        chmod a-w $(distdir)
+       test -d $(distdir)/_build || exit 0; \
        dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
          && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-         && cd $(distdir)/_build \
+         && am__cwd=`pwd` \
+         && $(am__cd) $(distdir)/_build \
          && ../configure --srcdir=.. --prefix="$$dc_install_base" \
            $(DISTCHECK_CONFIGURE_FLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) \
@@ -517,13 +581,15 @@ distcheck: dist
          && rm -rf "$$dc_destdir" \
          && $(MAKE) $(AM_MAKEFLAGS) dist \
          && rm -rf $(DIST_ARCHIVES) \
-         && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+         && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+         && cd "$$am__cwd" \
+         || exit 1
        $(am__remove_distdir)
        @(echo "$(distdir) archives ready for distribution: "; \
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-         sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+         sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-       @cd $(distuninstallcheck_dir) \
+       @$(am__cd) '$(distuninstallcheck_dir)' \
        && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
           || { echo "ERROR: files left after uninstall:" ; \
                if test -n "$(DESTDIR)"; then \
@@ -565,6 +631,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -584,18 +651,39 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
 
 install-data-am:
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
 
 install-exec-am:
 
+install-html: install-html-recursive
+
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -616,24 +704,26 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-info-am
+uninstall-am:
 
-uninstall-info: uninstall-info-recursive
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-data-am install-strip tags-recursive
 
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
-       check-am clean clean-generic clean-recursive ctags \
-       ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \
-       dist-shar dist-tarZ dist-zip distcheck distclean \
-       distclean-generic distclean-recursive distclean-tags \
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am am--refresh check check-am clean clean-generic \
+       ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+       dist-hook dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
+       distcheck distclean distclean-generic distclean-tags \
        distcleancheck distdir distuninstallcheck dvi dvi-am html \
        html-am info info-am install install-am install-data \
-       install-data-am install-exec install-exec-am install-info \
-       install-info-am install-man install-strip installcheck \
-       installcheck-am installdirs installdirs-am maintainer-clean \
-       maintainer-clean-generic maintainer-clean-recursive \
-       mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
-       pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
-       uninstall-info-am
+       install-data-am install-data-hook install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am
 
 
 rpm: dist
@@ -646,6 +736,10 @@ dist-hook:
        else \
                $(TAR) --create --verbose --file=- $(distdir) | bzip2 -c -9 > $(distdir).tar.bz2 ; \
        fi
+
+install-data-hook:
+       $(MKDIR_P) -m 0755 $(DESTDIR)$(ASOUND_STATE_DIR)
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index 36ac191..90ac756 100644 (file)
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
 dnl Configure Paths for Alsa
 dnl Some modifications by Richard Boulton <richard-alsa@tartarus.org>
 dnl Christopher Lansdown <lansdoct@cs.alfred.edu>
@@ -153,7 +161,164 @@ AC_SUBST(ALSA_LIBS)
 ])
 
 
-# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# 
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=m4_default([$1], [0.9.0])
+       AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               AC_MSG_RESULT([yes])
+       else
+               AC_MSG_RESULT([no])
+               PKG_CONFIG=""
+       fi
+               
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$PKG_CONFIG"; then
+    if test -n "$$1"; then
+        pkg_cv_[]$1="$$1"
+    else
+        PKG_CHECK_EXISTS([$3],
+                         [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+                        [pkg_failed=yes])
+    fi
+else
+       pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+               $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+        else 
+               $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+       ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+               [$4])
+elif test $pkg_failed = untried; then
+       ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
+               [$4])
+else
+       $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+       $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+       ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -163,14 +328,31 @@ AC_SUBST(ALSA_LIBS)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
 
 # AM_SET_CURRENT_AUTOMAKE_VERSION
 # -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-        [AM_AUTOMAKE_VERSION([1.9.6])])
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
@@ -227,14 +409,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 7
+# serial 9
 
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
@@ -243,8 +425,11 @@ AC_DEFUN([AM_CONDITIONAL],
 [AC_PREREQ(2.52)dnl
  ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
        [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
 if $2; then
   $1_TRUE=
   $1_FALSE='#'
@@ -258,15 +443,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 8
+# serial 10
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -294,6 +478,7 @@ AC_REQUIRE([AM_DEP_TRACK])dnl
 ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
        [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
        [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
        [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
                    [depcc="$$1"   am_compiler_list=])
 
@@ -322,6 +507,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
   fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -339,7 +534,17 @@ AC_CACHE_CHECK([dependency style of $depcc],
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -349,18 +554,23 @@ AC_CACHE_CHECK([dependency style of $depcc],
        break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -411,61 +621,74 @@ if test "x$enable_dependency_tracking" != xno; then
   AMDEPBACKSLASH='\'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 3
+#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
-  # Strip MF so we end up with the name of the file.
-  mf=`echo "$mf" | sed -e 's/:.*$//'`
-  # Check whether this is an Automake generated Makefile or not.
-  # We used to match only the files named `Makefile.in', but
-  # some people rename them; so instead we look at the file content.
-  # Grep'ing the first line is not enough: some people post-process
-  # each Makefile.in and add a new line on top of each file to say so.
-  # So let's grep whole file.
-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
-    dirpart=`AS_DIRNAME("$mf")`
-  else
-    continue
-  fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-  # from the Makefile without running `make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-  test -z "$DEPDIR" && continue
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-  test -z "am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-  # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n 's/^U = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
-  # simplest approach to changing $(DEPDIR) to its actual value in the
-  # expansion.
-  for file in `sed -n "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-    # Make sure the directory exists.
-    test -f "$dirpart/$file" && continue
-    fdir=`AS_DIRNAME(["$file"])`
-    AS_MKDIR_P([$dirpart/$fdir])
-    # echo "creating $dirpart/$file"
-    echo '# dummy' > "$dirpart/$file"
+[{
+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named `Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`AS_DIRNAME("$mf")`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running `make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`AS_DIRNAME(["$file"])`
+      AS_MKDIR_P([$dirpart/$fdir])
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
   done
-done
+}
 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
 
 
@@ -496,14 +719,14 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 12
+# serial 16
 
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
@@ -520,16 +743,20 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.58])dnl
+[AC_PREREQ([2.62])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
 AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
 AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
-   test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
 fi
 
 # test whether we have cygpath
@@ -549,6 +776,9 @@ m4_ifval([$2],
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
@@ -564,8 +794,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf)
 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
 AM_MISSING_PROG(AUTOHEADER, autoheader)
 AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
 AC_REQUIRE([AM_PROG_MKDIR_P])dnl
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
@@ -573,20 +803,37 @@ AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-                            [_AM_PROG_TAR([v7])])])
+             [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+                            [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-                  [_AM_DEPENDENCIES(CC)],
-                  [define([AC_PROG_CC],
-                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+                 [_AM_DEPENDENCIES(CC)],
+                 [define([AC_PROG_CC],
+                         defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-                  [_AM_DEPENDENCIES(CXX)],
-                  [define([AC_PROG_CXX],
-                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+                 [_AM_DEPENDENCIES(CXX)],
+                 [define([AC_PROG_CXX],
+                         defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+                 [_AM_DEPENDENCIES(OBJC)],
+                 [define([AC_PROG_OBJC],
+                         defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
 ])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
 
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
@@ -597,18 +844,19 @@ AC_PROVIDE_IFELSE([AC_PROG_CXX],
 # our stamp files there.
 AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
 [# Compute $1's index in $config_headers.
+_am_arg=$1
 _am_stamp_count=1
 for _am_header in $config_headers :; do
   case $_am_header in
-    $1 | $1:* )
+    $_am_arg | $_am_arg:* )
       break ;;
     * )
       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
   esac
 done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -619,7 +867,14 @@ echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\    *)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
 AC_SUBST(install_sh)])
 
 # Copyright (C) 2003, 2005  Free Software Foundation, Inc.
@@ -645,13 +900,13 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 # AM_MAKE_INCLUDE()
 # -----------------
@@ -660,7 +915,7 @@ AC_DEFUN([AM_MAKE_INCLUDE],
 [am_make=${MAKE-make}
 cat > confinc << 'END'
 am__doit:
-       @echo done
+       @echo this is the am__doit target
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
@@ -670,24 +925,24 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
-   am__include=include
-   am__quote=
-   _am_result=GNU
-fi
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
 # Now try BSD make style include.
 if test "$am__include" = "#"; then
    echo '.include "confinc"' > confmf
-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
-      am__include=.include
-      am__quote="\""
-      _am_result=BSD
-   fi
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
 fi
 AC_SUBST([am__include])
 AC_SUBST([am__quote])
@@ -697,14 +952,14 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 6
 
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
@@ -720,7 +975,15 @@ AC_SUBST($1)])
 # If it does, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\    *)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
 # Use eval to expand $SHELL
 if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
@@ -730,7 +993,7 @@ else
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -738,70 +1001,33 @@ fi
 
 # AM_PROG_MKDIR_P
 # ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
-# created by `make install' are always world readable, even if the
-# installer happens to have an overly restrictive umask (e.g. 077).
-# This was a mistake.  There are at least two reasons why we must not
-# use `-m 0755':
-#   - it causes special bits like SGID to be ignored,
-#   - it may be too restrictive (some setups expect 775 directories).
-#
-# Do not use -m 0755 and let people choose whatever they expect by
-# setting umask.
-#
-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
-# Some implementations (such as Solaris 8's) are not thread-safe: if a
-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
-# concurrently, both version can detect that a/ is missing, but only
-# one can create it and the other will error out.  Consequently we
-# restrict ourselves to GNU make (using the --version option ensures
-# this.)
+# Check for `mkdir -p'.
 AC_DEFUN([AM_PROG_MKDIR_P],
-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-  # We used to keeping the `.' as first argument, in order to
-  # allow $(mkdir_p) to be used without argument.  As in
-  #   $(mkdir_p) $(somedir)
-  # where $(somedir) is conditionally defined.  However this is wrong
-  # for two reasons:
-  #  1. if the package is installed by a user who cannot write `.'
-  #     make install will fail,
-  #  2. the above comment should most certainly read
-  #     $(mkdir_p) $(DESTDIR)$(somedir)
-  #     so it does not work when $(somedir) is undefined and
-  #     $(DESTDIR) is not.
-  #  To support the latter case, we have to write
-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
-  #  so the `.' trick is pointless.
-  mkdir_p='mkdir -p --'
-else
-  # On NextStep and OpenStep, the `mkdir' command does not
-  # recognize any option.  It will interpret all options as
-  # directories to create, and then abort because `.' already
-  # exists.
-  for d in ./-p ./--version;
-  do
-    test -d $d && rmdir $d
-  done
-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
-  if test -f "$ac_aux_dir/mkinstalldirs"; then
-    mkdir_p='$(mkinstalldirs)'
-  else
-    mkdir_p='$(install_sh) -d'
-  fi
-fi
-AC_SUBST([mkdir_p])])
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+  [[\\/$]]* | ?:[[\\/]]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -818,7 +1044,7 @@ AC_DEFUN([_AM_SET_OPTION],
 # ----------------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
 
 # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
 # -------------------------------------------
@@ -828,14 +1054,14 @@ AC_DEFUN([_AM_IF_OPTION],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 # AM_SANITY_CHECK
 # ---------------
@@ -844,16 +1070,29 @@ AC_DEFUN([AM_SANITY_CHECK],
 # Just in case
 sleep 1
 echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \   ]]*)
+    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
    if test "$[*]" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftest.file`
+      set X `ls -t "$srcdir/configure" conftest.file`
    fi
    rm -f conftest.file
    if test "$[*]" != "X $srcdir/configure conftest.file" \
@@ -903,9 +1142,28 @@ dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
+# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
 # Check how to create a tarball.                            -*- Autoconf -*-
 
 # Copyright (C) 2004, 2005  Free Software Foundation, Inc.
index a7ee813..e452efb 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,34 +49,81 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES = alsaconf
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"
-sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
 SCRIPTS = $(sbin_SCRIPTS)
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
-       install-exec-recursive install-info-recursive \
-       install-recursive installcheck-recursive installdirs-recursive \
-       pdf-recursive ps-recursive uninstall-info-recursive \
-       uninstall-recursive
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
 man8dir = $(mandir)/man8
 NROFF = nroff
 MANS = $(man_MANS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -102,14 +147,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -127,6 +165,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -139,6 +178,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -149,14 +189,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -168,6 +208,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -197,8 +238,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 sbin_SCRIPTS = alsaconf
 man_MANS = alsaconf.8 alsaconf.fr.8
@@ -211,14 +258,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  alsaconf/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  alsaconf/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign alsaconf/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign alsaconf/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -236,28 +283,43 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 alsaconf: $(top_builddir)/config.status $(srcdir)/alsaconf.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 install-sbinSCRIPTS: $(sbin_SCRIPTS)
        @$(NORMAL_INSTALL)
-       test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
-       @list='$(sbin_SCRIPTS)'; for p in $$list; do \
+       test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
+       @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \
+       for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         if test -f $$d$$p; then \
-           f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
-           echo " $(sbinSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
-           $(sbinSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(sbindir)/$$f"; \
-         else :; fi; \
-       done
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
+            } \
+       ; done
 
 uninstall-sbinSCRIPTS:
        @$(NORMAL_UNINSTALL)
-       @list='$(sbin_SCRIPTS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
-         echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(sbindir)/$$f"; \
-       done
-uninstall-info-am:
+       @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(sbindir)" && rm -f $$files
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -266,7 +328,7 @@ uninstall-info-am:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-       @failcom='exit 1'; \
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -283,16 +345,15 @@ $(RECURSIVE_TARGETS):
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done; \
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
-       @failcom='exit 1'; \
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -318,16 +379,16 @@ maintainer-clean-recursive:
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
        done
 ctags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
        done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -335,14 +396,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
          include_option=--etags-include; \
@@ -354,81 +415,114 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
        list='$(SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test ! -f $$subdir/TAGS || \
-             tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
-       list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test -d "$(distdir)/$$subdir" \
-           || $(mkdir_p) "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
            || exit 1; \
-           distdir=`$(am__cd) $(distdir) && pwd`; \
-           top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-           (cd $$subdir && \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
              $(MAKE) $(AM_MAKEFLAGS) \
-               top_distdir="$$top_distdir" \
-               distdir="$$distdir/$$subdir" \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
                distdir) \
              || exit 1; \
          fi; \
@@ -439,7 +533,7 @@ all-am: Makefile $(SCRIPTS) $(MANS)
 installdirs: installdirs-recursive
 installdirs-am:
        for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-recursive
 install-exec: install-exec-recursive
@@ -461,6 +555,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -479,18 +574,38 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
 install-exec-am: install-sbinSCRIPTS
 
+install-html: install-html-recursive
+
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man: install-man8
 
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -509,25 +624,26 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-info-am uninstall-man uninstall-sbinSCRIPTS
-
-uninstall-info: uninstall-info-recursive
+uninstall-am: uninstall-man uninstall-sbinSCRIPTS
 
 uninstall-man: uninstall-man8
 
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
-       clean clean-generic clean-recursive ctags ctags-recursive \
-       distclean distclean-generic distclean-recursive distclean-tags \
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic ctags \
+       ctags-recursive distclean distclean-generic distclean-tags \
        distdir dvi dvi-am html html-am info info-am install \
-       install-am install-data install-data-am install-exec \
-       install-exec-am install-info install-info-am install-man \
-       install-man8 install-sbinSCRIPTS install-strip installcheck \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-man8 install-pdf install-pdf-am install-ps \
+       install-ps-am install-sbinSCRIPTS install-strip installcheck \
        installcheck-am installdirs installdirs-am maintainer-clean \
-       maintainer-clean-generic maintainer-clean-recursive \
-       mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
+       maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
        pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
-       uninstall-info-am uninstall-man uninstall-man8 \
-       uninstall-sbinSCRIPTS
+       uninstall-man uninstall-man8 uninstall-sbinSCRIPTS
 
 
 install-man8:
@@ -562,6 +678,7 @@ uninstall-man8:
          echo " rm -f $(DESTDIR)$(mandir)$$loc/man$$ext/$$inst.$$ext"; \
          rm -f $(DESTDIR)$(mandir)$$loc/man$$ext/$$inst.$$ext; \
        done
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index ccc1b37..5c23787 100644 (file)
@@ -956,8 +956,9 @@ If you have a big amplifier, lower your volumes or say no.
          aplay -N $TESTSOUND
       fi
     fi
-    if [ ! -r /etc/asound.state ]; then
-       xecho "Saving the mixer setup used for this in /etc/asound.state."
+    mkdir -p -m 0755 @ASOUND_STATE_DIR@
+    if [ ! -r @ASOUND_STATE_DIR@/asound.state ]; then
+       xecho "Saving the mixer setup used for this in @ASOUND_STATE_DIR@/asound.state."
        $sbindir/alsactl store
     fi
     clear
diff --git a/alsactl/90-alsa-restore.rules b/alsactl/90-alsa-restore.rules
new file mode 100644 (file)
index 0000000..51ee299
--- /dev/null
@@ -0,0 +1,2 @@
+ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS=="card*", \
+        RUN+="/usr/sbin/alsactl restore $attr{number}"
diff --git a/alsactl/90-alsa-restore.rules.in b/alsactl/90-alsa-restore.rules.in
new file mode 100644 (file)
index 0000000..0bcee5b
--- /dev/null
@@ -0,0 +1,2 @@
+ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS=="card*", \
+        RUN+="@sbindir@/alsactl restore $attr{number}"
index 359f73a..5cfc415 100644 (file)
@@ -8,7 +8,52 @@ endif
 EXTRA_DIST=alsactl.1 alsactl_init.xml
 
 alsactl_SOURCES=alsactl.c state.c utils.c init_parse.c
+alsactl_CFLAGS=$(AM_CFLAGS) -DSYS_ASOUNDRC=\"$(ASOUND_STATE_DIR)/asound.state\"
 noinst_HEADERS=alsactl.h list.h init_sysdeps.c init_utils_string.c init_utils_run.c init_sysfs.c
 
+dist_udevrules_DATA = \
+       90-alsa-restore.rules
+
+if HAVE_SYSTEMD
+
+systemdsystemunit_DATA = \
+       alsa-store.service \
+       alsa-restore.service
+
+install-data-hook:
+       $(MKDIR_P) -m 0755 \
+               $(DESTDIR)$(systemdsystemunitdir)/basic.target.wants \
+               $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants
+       ( cd $(DESTDIR)$(systemdsystemunitdir)/basic.target.wants && \
+               rm -f alsa-restore.service && \
+               $(LN_S) ../alsa-restore.service alsa-restore.service )
+       ( cd $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants && \
+               rm -f alsa-store.service && \
+               $(LN_S) ../alsa-store.service alsa-store.service )
+
+endif
+
+edit = \
+       sed $(SED) -r 's,@sbindir\@,$(sbindir),g' < $< > $@ || rm $@
+
+alsa-store.service: alsa-store.service.in
+       $(edit)
+
+alsa-restore.service: alsa-restore.service.in
+       $(edit)
+
+90-alsa-restore.rules: 90-alsa-restore.rules.in
+       $(edit)
+
+EXTRA_DIST += \
+       alsa-store.service.in \
+       alsa-restore.service.in \
+       90-alsa-restore.rules.in
+
+CLEANFILES = \
+       alsa-store.service \
+       alsa-restore.service \
+       90-alsa-restore.rules
+
 %.7: %.xml
        xmlto man $?
index fbbb4a4..71d41c7 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 @SET_MAKE@
 
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
+
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -40,8 +39,8 @@ host_triplet = @host@
 sbin_PROGRAMS = alsactl$(EXEEXT)
 @USE_XMLTO_TRUE@am__append_1 = alsactl_init.7
 subdir = alsactl
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in
+DIST_COMMON = $(dist_udevrules_DATA) $(noinst_HEADERS) \
+       $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
@@ -54,17 +53,21 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)" \
-       "$(DESTDIR)$(man7dir)"
-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+       "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(udevrulesdir)" \
+       "$(DESTDIR)$(systemdsystemunitdir)"
 PROGRAMS = $(sbin_PROGRAMS)
-am_alsactl_OBJECTS = alsactl.$(OBJEXT) state.$(OBJEXT) utils.$(OBJEXT) \
-       init_parse.$(OBJEXT)
+am_alsactl_OBJECTS = alsactl-alsactl.$(OBJEXT) alsactl-state.$(OBJEXT) \
+       alsactl-utils.$(OBJEXT) alsactl-init_parse.$(OBJEXT)
 alsactl_OBJECTS = $(am_alsactl_OBJECTS)
 alsactl_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+alsactl_LINK = $(CCLD) $(alsactl_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+       $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -73,29 +76,77 @@ SOURCES = $(alsactl_SOURCES)
 DIST_SOURCES = $(alsactl_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
-       install-exec-recursive install-info-recursive \
-       install-recursive installcheck-recursive installdirs-recursive \
-       pdf-recursive ps-recursive uninstall-info-recursive \
-       uninstall-recursive
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 man7dir = $(mandir)/man7
 NROFF = nroff
 MANS = $(man_MANS)
+DATA = $(dist_udevrules_DATA) $(systemdsystemunit_DATA)
 HEADERS = $(noinst_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -119,14 +170,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -144,6 +188,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -156,6 +201,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -166,14 +212,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -185,6 +231,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -214,14 +261,37 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 SUBDIRS = init
 man_MANS = alsactl.1 $(am__append_1)
-EXTRA_DIST = alsactl.1 alsactl_init.xml
+EXTRA_DIST = alsactl.1 alsactl_init.xml alsa-store.service.in \
+       alsa-restore.service.in 90-alsa-restore.rules.in
 alsactl_SOURCES = alsactl.c state.c utils.c init_parse.c
+alsactl_CFLAGS = $(AM_CFLAGS) -DSYS_ASOUNDRC=\"$(ASOUND_STATE_DIR)/asound.state\"
 noinst_HEADERS = alsactl.h list.h init_sysdeps.c init_utils_string.c init_utils_run.c init_sysfs.c
+dist_udevrules_DATA = \
+       90-alsa-restore.rules
+
+@HAVE_SYSTEMD_TRUE@systemdsystemunit_DATA = \
+@HAVE_SYSTEMD_TRUE@    alsa-store.service \
+@HAVE_SYSTEMD_TRUE@    alsa-restore.service
+
+edit = \
+       sed $(SED) -r 's,@sbindir\@,$(sbindir),g' < $< > $@ || rm $@
+
+CLEANFILES = \
+       alsa-store.service \
+       alsa-restore.service \
+       90-alsa-restore.rules
+
 all: all-recursive
 
 .SUFFIXES:
@@ -230,14 +300,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  alsactl/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  alsactl/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign alsactl/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign alsactl/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -255,32 +325,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
-       @list='$(sbin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
+       @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-sbinPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(sbin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(sbindir)/$$f"; \
-       done
+       @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(sbindir)" && rm -f $$files
 
 clean-sbinPROGRAMS:
        -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
 alsactl$(EXEEXT): $(alsactl_OBJECTS) $(alsactl_DEPENDENCIES) 
        @rm -f alsactl$(EXEEXT)
-       $(LINK) $(alsactl_LDFLAGS) $(alsactl_OBJECTS) $(alsactl_LDADD) $(LIBS)
+       $(alsactl_LINK) $(alsactl_OBJECTS) $(alsactl_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -288,116 +373,197 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsactl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init_parse.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/state.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsactl-alsactl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsactl-init_parse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsactl-state.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsactl-utils.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+
+alsactl-alsactl.o: alsactl.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -MT alsactl-alsactl.o -MD -MP -MF $(DEPDIR)/alsactl-alsactl.Tpo -c -o alsactl-alsactl.o `test -f 'alsactl.c' || echo '$(srcdir)/'`alsactl.c
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/alsactl-alsactl.Tpo $(DEPDIR)/alsactl-alsactl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='alsactl.c' object='alsactl-alsactl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -c -o alsactl-alsactl.o `test -f 'alsactl.c' || echo '$(srcdir)/'`alsactl.c
+
+alsactl-alsactl.obj: alsactl.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -MT alsactl-alsactl.obj -MD -MP -MF $(DEPDIR)/alsactl-alsactl.Tpo -c -o alsactl-alsactl.obj `if test -f 'alsactl.c'; then $(CYGPATH_W) 'alsactl.c'; else $(CYGPATH_W) '$(srcdir)/alsactl.c'; fi`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/alsactl-alsactl.Tpo $(DEPDIR)/alsactl-alsactl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='alsactl.c' object='alsactl-alsactl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -c -o alsactl-alsactl.obj `if test -f 'alsactl.c'; then $(CYGPATH_W) 'alsactl.c'; else $(CYGPATH_W) '$(srcdir)/alsactl.c'; fi`
+
+alsactl-state.o: state.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -MT alsactl-state.o -MD -MP -MF $(DEPDIR)/alsactl-state.Tpo -c -o alsactl-state.o `test -f 'state.c' || echo '$(srcdir)/'`state.c
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/alsactl-state.Tpo $(DEPDIR)/alsactl-state.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='state.c' object='alsactl-state.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -c -o alsactl-state.o `test -f 'state.c' || echo '$(srcdir)/'`state.c
+
+alsactl-state.obj: state.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -MT alsactl-state.obj -MD -MP -MF $(DEPDIR)/alsactl-state.Tpo -c -o alsactl-state.obj `if test -f 'state.c'; then $(CYGPATH_W) 'state.c'; else $(CYGPATH_W) '$(srcdir)/state.c'; fi`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/alsactl-state.Tpo $(DEPDIR)/alsactl-state.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='state.c' object='alsactl-state.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -c -o alsactl-state.obj `if test -f 'state.c'; then $(CYGPATH_W) 'state.c'; else $(CYGPATH_W) '$(srcdir)/state.c'; fi`
+
+alsactl-utils.o: utils.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -MT alsactl-utils.o -MD -MP -MF $(DEPDIR)/alsactl-utils.Tpo -c -o alsactl-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/alsactl-utils.Tpo $(DEPDIR)/alsactl-utils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='utils.c' object='alsactl-utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -c -o alsactl-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+
+alsactl-utils.obj: utils.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -MT alsactl-utils.obj -MD -MP -MF $(DEPDIR)/alsactl-utils.Tpo -c -o alsactl-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/alsactl-utils.Tpo $(DEPDIR)/alsactl-utils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='utils.c' object='alsactl-utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -c -o alsactl-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+
+alsactl-init_parse.o: init_parse.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -MT alsactl-init_parse.o -MD -MP -MF $(DEPDIR)/alsactl-init_parse.Tpo -c -o alsactl-init_parse.o `test -f 'init_parse.c' || echo '$(srcdir)/'`init_parse.c
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/alsactl-init_parse.Tpo $(DEPDIR)/alsactl-init_parse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='init_parse.c' object='alsactl-init_parse.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -c -o alsactl-init_parse.o `test -f 'init_parse.c' || echo '$(srcdir)/'`init_parse.c
+
+alsactl-init_parse.obj: init_parse.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -MT alsactl-init_parse.obj -MD -MP -MF $(DEPDIR)/alsactl-init_parse.Tpo -c -o alsactl-init_parse.obj `if test -f 'init_parse.c'; then $(CYGPATH_W) 'init_parse.c'; else $(CYGPATH_W) '$(srcdir)/init_parse.c'; fi`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/alsactl-init_parse.Tpo $(DEPDIR)/alsactl-init_parse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='init_parse.c' object='alsactl-init_parse.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(alsactl_CFLAGS) $(CFLAGS) -c -o alsactl-init_parse.obj `if test -f 'init_parse.c'; then $(CYGPATH_W) 'init_parse.c'; else $(CYGPATH_W) '$(srcdir)/init_parse.c'; fi`
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
-install-man7: $(man7_MANS) $(man_MANS)
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+install-man7: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man7dir)" || $(mkdir_p) "$(DESTDIR)$(man7dir)"
-       @list='$(man7_MANS) $(dist_man7_MANS) $(nodist_man7_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.7*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man7dir)" || $(MKDIR_P) "$(DESTDIR)$(man7dir)"
+       @list=''; test -n "$(man7dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.7[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^7][0-9a-z]*$$,7,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man7dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man7dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           7*) ;; \
-           *) ext='7' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man7dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man7dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man7dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man7dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man7:
        @$(NORMAL_UNINSTALL)
-       @list='$(man7_MANS) $(dist_man7_MANS) $(nodist_man7_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.7*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           7*) ;; \
-           *) ext='7' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man7dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man7dir)/$$inst"; \
+       @list=''; test -n "$(man7dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.7[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^7][0-9a-z]*$$,7,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man7dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man7dir)" && rm -f $$files; }
+install-dist_udevrulesDATA: $(dist_udevrules_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(udevrulesdir)" || $(MKDIR_P) "$(DESTDIR)$(udevrulesdir)"
+       @list='$(dist_udevrules_DATA)'; test -n "$(udevrulesdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(udevrulesdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(udevrulesdir)" || exit $$?; \
+       done
+
+uninstall-dist_udevrulesDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_udevrules_DATA)'; test -n "$(udevrulesdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(udevrulesdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(udevrulesdir)" && rm -f $$files
+install-systemdsystemunitDATA: $(systemdsystemunit_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(systemdsystemunitdir)" || $(MKDIR_P) "$(DESTDIR)$(systemdsystemunitdir)"
+       @list='$(systemdsystemunit_DATA)'; test -n "$(systemdsystemunitdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(systemdsystemunitdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(systemdsystemunitdir)" || exit $$?; \
        done
 
+uninstall-systemdsystemunitDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(systemdsystemunit_DATA)'; test -n "$(systemdsystemunitdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(systemdsystemunitdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(systemdsystemunitdir)" && rm -f $$files
+
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
 # To change the values of `make' variables: instead of editing Makefiles,
@@ -405,7 +571,7 @@ uninstall-man7:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-       @failcom='exit 1'; \
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -422,16 +588,15 @@ $(RECURSIVE_TARGETS):
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done; \
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
-       @failcom='exit 1'; \
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -457,16 +622,16 @@ maintainer-clean-recursive:
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
        done
 ctags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
        done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -474,14 +639,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
          include_option=--etags-include; \
@@ -493,92 +658,125 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
        list='$(SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test ! -f $$subdir/TAGS || \
-             tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
-       list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test -d "$(distdir)/$$subdir" \
-           || $(mkdir_p) "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
            || exit 1; \
-           distdir=`$(am__cd) $(distdir) && pwd`; \
-           top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-           (cd $$subdir && \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
              $(MAKE) $(AM_MAKEFLAGS) \
-               top_distdir="$$top_distdir" \
-               distdir="$$distdir/$$subdir" \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
                distdir) \
              || exit 1; \
          fi; \
        done
 check-am: all-am
 check: check-recursive
-all-am: Makefile $(PROGRAMS) $(MANS) $(HEADERS)
+all-am: Makefile $(PROGRAMS) $(MANS) $(DATA) $(HEADERS)
 installdirs: installdirs-recursive
 installdirs-am:
-       for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man7dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+       for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(udevrulesdir)" "$(DESTDIR)$(systemdsystemunitdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-recursive
 install-exec: install-exec-recursive
@@ -597,13 +795,16 @@ install-strip:
 mostlyclean-generic:
 
 clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
+@HAVE_SYSTEMD_FALSE@install-data-hook:
 clean: clean-recursive
 
 clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
@@ -620,18 +821,40 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
 
-install-data-am: install-man
+install-data-am: install-dist_udevrulesDATA install-man \
+       install-systemdsystemunitDATA
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
 
 install-exec-am: install-sbinPROGRAMS
 
+install-html: install-html-recursive
+
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man: install-man1 install-man7
 
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -651,30 +874,57 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-info-am uninstall-man uninstall-sbinPROGRAMS
-
-uninstall-info: uninstall-info-recursive
+uninstall-am: uninstall-dist_udevrulesDATA uninstall-man \
+       uninstall-sbinPROGRAMS uninstall-systemdsystemunitDATA
 
 uninstall-man: uninstall-man1 uninstall-man7
 
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
-       clean clean-generic clean-recursive clean-sbinPROGRAMS ctags \
-       ctags-recursive distclean distclean-compile distclean-generic \
-       distclean-recursive distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-exec install-exec-am install-info \
-       install-info-am install-man install-man1 install-man7 \
-       install-sbinPROGRAMS install-strip installcheck \
-       installcheck-am installdirs installdirs-am maintainer-clean \
-       maintainer-clean-generic maintainer-clean-recursive \
-       mostlyclean mostlyclean-compile mostlyclean-generic \
-       mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
-       uninstall uninstall-am uninstall-info-am uninstall-man \
-       uninstall-man1 uninstall-man7 uninstall-sbinPROGRAMS
-
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-data-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic \
+       clean-sbinPROGRAMS ctags ctags-recursive distclean \
+       distclean-compile distclean-generic distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-data-hook \
+       install-dist_udevrulesDATA install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-man1 \
+       install-man7 install-pdf install-pdf-am install-ps \
+       install-ps-am install-sbinPROGRAMS install-strip \
+       install-systemdsystemunitDATA installcheck installcheck-am \
+       installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am uninstall-dist_udevrulesDATA \
+       uninstall-man uninstall-man1 uninstall-man7 \
+       uninstall-sbinPROGRAMS uninstall-systemdsystemunitDATA
+
+
+@HAVE_SYSTEMD_TRUE@install-data-hook:
+@HAVE_SYSTEMD_TRUE@    $(MKDIR_P) -m 0755 \
+@HAVE_SYSTEMD_TRUE@            $(DESTDIR)$(systemdsystemunitdir)/basic.target.wants \
+@HAVE_SYSTEMD_TRUE@            $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants
+@HAVE_SYSTEMD_TRUE@    ( cd $(DESTDIR)$(systemdsystemunitdir)/basic.target.wants && \
+@HAVE_SYSTEMD_TRUE@            rm -f alsa-restore.service && \
+@HAVE_SYSTEMD_TRUE@            $(LN_S) ../alsa-restore.service alsa-restore.service )
+@HAVE_SYSTEMD_TRUE@    ( cd $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants && \
+@HAVE_SYSTEMD_TRUE@            rm -f alsa-store.service && \
+@HAVE_SYSTEMD_TRUE@            $(LN_S) ../alsa-store.service alsa-store.service )
+
+alsa-store.service: alsa-store.service.in
+       $(edit)
+
+alsa-restore.service: alsa-restore.service.in
+       $(edit)
+
+90-alsa-restore.rules: 90-alsa-restore.rules.in
+       $(edit)
 
 %.7: %.xml
        xmlto man $?
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/alsactl/alsa-restore.service.in b/alsactl/alsa-restore.service.in
new file mode 100644 (file)
index 0000000..e97d196
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Description=Restore Sound Card State
+DefaultDependencies=no
+After=sysinit.target
+Before=shutdown.target
+Conflicts=shutdown.target
+
+[Service]
+Type=oneshot
+ExecStart=-@sbindir@/alsactl restore
+StandardOutput=syslog
diff --git a/alsactl/alsa-store.service.in b/alsactl/alsa-store.service.in
new file mode 100644 (file)
index 0000000..0e2823c
--- /dev/null
@@ -0,0 +1,9 @@
+[Unit]
+Description=Store Sound Card State
+DefaultDependencies=no
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+ExecStart=@sbindir@/alsactl store
+StandardOutput=syslog
index eb3cbd1..eb5968c 100644 (file)
@@ -43,7 +43,7 @@ Print alsactl version number.
 
 .TP
 \fI\-f, \-\-file\fP
-Select the configuration file to use. The default is /etc/asound.state.
+Select the configuration file to use. The default is /var/lib/alsa/asound.state.
 
 .TP
 \fI\-F, \-\-force\fP
@@ -90,7 +90,7 @@ The configuration file for init. By default, PREFIX/share/alsa/init/00main
 is used.
 
 .SH FILES
-\fI/etc/asound.state\fP (or whatever file you specify with the
+\fI/var/lib/alsa/asound.state\fP (or whatever file you specify with the
 \fB\-f\fP flag) is used to store current settings for your
 soundcards. The settings include all the usual soundcard mixer
 settings.  More importantly, alsactl is
index 02e082f..c2120bd 100644 (file)
@@ -30,7 +30,9 @@
 #include <alsa/asoundlib.h>
 #include "alsactl.h"
 
-#define SYS_ASOUNDRC "/etc/asound.state"
+#ifndef SYS_ASOUNDRC
+#define SYS_ASOUNDRC "/var/lib/alsa/asound.state"
+#endif
 
 int debugflag = 0;
 int force_restore = 1;
@@ -189,5 +191,5 @@ int main(int argc, char *argv[])
        }
 
        snd_config_update_free_global();
-       return res < 0 ? res : 0;
+       return res < 0 ? -res : 0;
 }
index 89ad295..be90efb 100644 (file)
@@ -34,16 +34,16 @@ extern char *statefile;
 
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
 #define cerror(cond, ...) do {\
-       if (cond) { \
-               fprintf(stderr, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \
+       if (cond || debugflag) { \
+               fprintf(stderr, "%s%s: %s:%d: ", debugflag ? "WARNING: " : "", command, __FUNCTION__, __LINE__); \
                fprintf(stderr, __VA_ARGS__); \
                putc('\n', stderr); \
        } \
 } while (0)
 #else
 #define cerror(cond, args...) do {\
-       if (cond) { \
-               fprintf(stderr, "%s: %s:%d: ", command, __FUNCTION__, __LINE__); \
+       if (cond || debugflag) { \
+               fprintf(stderr, "%s%s: %s:%d: ", debugflag ? "WARNING: " : "", command, __FUNCTION__, __LINE__); \
                fprintf(stderr, ##args); \
                putc('\n', stderr); \
        } \
@@ -78,7 +78,7 @@ int generate_names(const char *cfgfile);
 int file_map(const char *filename, char **buf, size_t *bufsize);
 void file_unmap(void *buf, size_t bufsize);
 size_t line_width(const char *buf, size_t bufsize, size_t pos);
-void initfailed(int cardnumber, const char *reason);
+void initfailed(int cardnumber, const char *reason, int exitcode);
 
 static inline int hextodigit(int c)
 {
index dd4239c..eefe9ef 100644 (file)
                       comma (,).</para>
                     </listitem>
                   </varlistentry>
+                  <varlistentry>
+                    <term><option>do_search</option></term>
+                    <listitem>
+                      <para>Search for a control. Value "1" is returned
+                      if a control was found. The CTL{name} key might
+                     contain match characters * and ?. An control index
+                     might be specified as first argument starting from
+                     zero (e.g. CTL{do_search 2}="1").</para>
+                     </listitem>
+                  </varlistentry>
+                  <varlistentry>
+                    <term><option>do_count</option></term>
+                    <listitem>
+                      <para>Search for a controls and return total count
+                      of matched ones. The CTL{name} key might contain match
+                      characters * and ?.</para>
+                     </listitem>
+                  </varlistentry>
                 </variablelist>
               </listitem>
             </varlistentry>
                  next key on line).</para>
               </listitem>
             </varlistentry>
+            <varlistentry>
+              <term><option>CTL{write}</option></term>
+              <listitem>
+                <para>Value is set (written) also to soundcard's control
+                device (all control values are set to specified value).
+                The result of set operation is true when operation
+                succeed (it means continue with next key on line).</para>
+              </listitem>
+            </varlistentry>
 
             <varlistentry>
               <term><option>ENV{<replaceable>key</replaceable>}</option></term>
             <varlistentry>
               <term><option>GOTO</option></term>
               <listitem>
-                <para>Jumps to the next LABEL with a matching name</para>
+                <para>Jumps to the next LABEL with a matching name.
+                      The goto cannot jump backward.</para>
               </listitem>
             </varlistentry>
 
index 2d26bbf..660df38 100644 (file)
@@ -37,8 +37,8 @@ CARDINFO{driver}=="Test", INCLUDE="test", GOTO="init_end"
 LABEL="init_end"
 ACCESS=="postinit", INCLUDE="postinit"
 RESULT=="true", GOTO="00_mainend"
-ERROR="Unknown hardware: \"$cardinfo{driver}\" \"$cardinfo{mixername}\" \"$cardinfo{components}\" \"$attr{subsystem_vendor}\" \"$attr{subsystem_device}\"\n"
-ERROR="Hardware is initialized using a guess method\n"
+ERROR="Found hardware: \"$cardinfo{driver}\" \"$cardinfo{mixername}\" \"$cardinfo{components}\" \"$attr{subsystem_vendor}\" \"$attr{subsystem_device}\"\n"
+ERROR="Hardware is initialized using a generic method\n"
 INCLUDE="default"
 EXIT="99"
 
index 4fc65b9..e96d9bd 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ../..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -50,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -57,21 +56,30 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(alsainitdir)"
-alsainitDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(alsainit_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -95,14 +103,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -120,6 +121,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -132,6 +134,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -142,14 +145,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -161,6 +164,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -190,8 +194,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 init_files = \
        00main default help info test \
@@ -207,14 +217,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  alsactl/init/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  alsactl/init/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign alsactl/init/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign alsactl/init/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -232,24 +242,27 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
+$(am__aclocal_m4_deps):
 install-alsainitDATA: $(alsainit_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(alsainitdir)" || $(mkdir_p) "$(DESTDIR)$(alsainitdir)"
-       @list='$(alsainit_DATA)'; for p in $$list; do \
+       test -z "$(alsainitdir)" || $(MKDIR_P) "$(DESTDIR)$(alsainitdir)"
+       @list='$(alsainit_DATA)'; test -n "$(alsainitdir)" || list=; \
+       for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         f=$(am__strip_dir) \
-         echo " $(alsainitDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(alsainitdir)/$$f'"; \
-         $(alsainitDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(alsainitdir)/$$f"; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(alsainitdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(alsainitdir)" || exit $$?; \
        done
 
 uninstall-alsainitDATA:
        @$(NORMAL_UNINSTALL)
-       @list='$(alsainit_DATA)'; for p in $$list; do \
-         f=$(am__strip_dir) \
-         echo " rm -f '$(DESTDIR)$(alsainitdir)/$$f'"; \
-         rm -f "$(DESTDIR)$(alsainitdir)/$$f"; \
-       done
+       @list='$(alsainit_DATA)'; test -n "$(alsainitdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(alsainitdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(alsainitdir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -258,29 +271,32 @@ CTAGS:
 
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -289,7 +305,7 @@ check: check-am
 all-am: Makefile $(DATA)
 installdirs:
        for dir in "$(DESTDIR)$(alsainitdir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -311,6 +327,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -329,18 +346,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-alsainitDATA
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am:
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -359,17 +396,21 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-alsainitDATA uninstall-info-am
+uninstall-am: uninstall-alsainitDATA
+
+.MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic distclean \
        distclean-generic distdir dvi dvi-am html html-am info info-am \
        install install-alsainitDATA install-am install-data \
-       install-data-am install-exec install-exec-am install-info \
-       install-info-am install-man install-strip installcheck \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
        installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-       pdf-am ps ps-am uninstall uninstall-alsainitDATA uninstall-am \
-       uninstall-info-am
+       pdf-am ps ps-am uninstall uninstall-alsainitDATA uninstall-am
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 8653ec6..7f8ec4c 100644 (file)
@@ -17,139 +17,161 @@ ENV{cvolume}:="12dB"
 ENV{has_pmaster_vol}:="false"
 
 CTL{reset}="mixer"
-CTL{name}="Playback Volume",PROGRAM=="__ctl_search", \
-  CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-CTL{name}="Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="Playback Volume",CTL{do_search}=="1", \
+  CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+CTL{name}="Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Master Playback Volume",PROGRAM=="__ctl_search", \
+CTL{name}="Master Playback Volume",CTL{do_search}=="1", \
   ENV{has_pmaster_vol}:="true", \
-  CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-CTL{name}="Master Playback Switch",PROGRAM=="__ctl_search", \
+  CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+CTL{name}="Master Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Master Digital Playback Volume",PROGRAM=="__ctl_search", \
-  CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-CTL{name}="Master Digital Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="Master Front Playback Volume",CTL{do_search}=="1", \
+  ENV{has_pmaster_vol}:="true", \
+  CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+CTL{name}="Master Front Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Front Playback Volume",PROGRAM!="__ctl_search",GOTO="front0_end"
+CTL{name}="Master Digital Playback Volume",CTL{do_search}=="1", \
+  CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+CTL{name}="Master Digital Playback Switch",CTL{do_search}=="1", \
+  CTL{values}="on"
+
+CTL{reset}="mixer"
+CTL{name}="Front Playback Volume",PROGRAM!="__ctl_search",GOTO=""
 # if master volume control is present, turn front volume to max
-ENV{has_pmaster_vol}=="true",CTL{values}="0dB",RESULT=="0",GOTO="front0_end"
-ENV{has_pmaster_vol}=="true",CTL{values)="100%",GOTO="front0_end"
-CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-LABEL="front0_end"
-CTL{name}="Front Playback Switch",PROGRAM=="__ctl_search", \
+ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
+ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
+CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+LABEL=""
+CTL{name}="Front Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Headphone Playback Volume",PROGRAM!="__ctl_search",GOTO="headphone0_end"
+CTL{name}="Headphone Playback Volume",PROGRAM!="__ctl_search",GOTO=""
 # if master volume control is present, turn headphone volume to max
-ENV{has_pmaster_vol}=="true",CTL{values}="0dB",RESULT=="0",GOTO="headphone0_end"
-ENV{has_pmaster_vol}=="true",CTL{values)="100%",GOTO="headphone0_end"
-CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-LABEL="headphone0_end"
-CTL{name}="Headphone Playback Switch",PROGRAM=="__ctl_search", \
+ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
+ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
+CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+LABEL=""
+CTL{name}="Headphone Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Speaker Playback Volume",PROGRAM=="__ctl_search", \
-  CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-CTL{name}="Speaker Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="Headphone Playback Volume",CTL{index}="1",PROGRAM!="__ctl_search",\
+  GOTO=""
+# if master volume control is present, turn headphone volume to max
+ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
+ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
+CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+LABEL=""
+CTL{name}="Headphone Playback Switch",CTL{index}="1",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="PC Speaker Playback Volume",PROGRAM=="__ctl_search", \
+CTL{name}="Speaker Playback Volume",PROGRAM!="__ctl_search",GOTO=""
+# if master volume control is present, turn speaker volume to max
+ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
+ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
+CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+LABEL=""
+CTL{name}="Speaker Playback Switch",CTL{do_search}=="1", \
+  CTL{values}="on"
+
+CTL{reset}="mixer"
+CTL{name}="PC Speaker Playback Volume",CTL{do_search}=="1", \
   CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-CTL{name}="PC Speaker Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="PC Speaker Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
 CTL{name}="PCM Playback Volume",PROGRAM!="__ctl_search", \
- CTL{name}="PCM Volume",PROGRAM!="__ctl_search", GOTO="pcm0_end"
+ CTL{name}="PCM Volume",PROGRAM!="__ctl_search", GOTO=""
 # if master volume control is present, turn PCM volume to max
-ENV{has_pmaster_vol}=="true",CTL{values}="0dB",RESULT=="0",GOTO="pcm0_end"
-ENV{has_pmaster_vol}=="true",CTL{values)="100%",GOTO="pcm0_end"
+ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
+ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
 # exception - some HDA codecs have shifted dB range
-CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{values}="0dB",GOTO="pcm0_end"
-CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{values}="0dB",GOTO="pcm0_end"
-CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="75%"
-LABEL="pcm0_end"
-CTL{name}="PCM Playback Switch",PROGRAM=="__ctl_search", CTL{values}="on"
-CTL{name}="PCM Switch",PROGRAM=="__ctl_search",CTL{values}="on"
+CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{write}=="0dB",GOTO=""
+CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{write}=="0dB",GOTO=""
+CTL{write}!="$env{pvolume}",CTL{values}="75%"
+LABEL=""
+CTL{name}="PCM Playback Switch",CTL{do_search}=="1", CTL{values}="on"
+CTL{name}="PCM Switch",CTL{do_search}=="1",CTL{values}="on"
 
 CTL{reset}="mixer"
 CTL{name}="PCM Playback Volume",CTL{index}="1",PROGRAM!="__ctl_search", \
-  CTL{name}="PCM Volume",PROGRAM!="__ctl_search",GOTO="pcm1_end"
+  CTL{name}="PCM Volume",PROGRAM!="__ctl_search",GOTO=""
 # if master volume control is present, turn PCM volume to max
-ENV{has_pmaster_vol}=="true",CTL{values}="0dB",RESULT=="0",GOTO="pcm1_end"
-ENV{has_pmaster_vol}=="true",CTL{values)="100%",GOTO="pcm1_end"
+ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
+ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
 # exception - some HDA codecs have shifted dB range
-CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{values}="0dB",GOTO="pcm1_end"
-CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{values}="0dB",GOTO="pcm1_end"
-CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="75%"
-LABEL="pcm1_end"
-CTL{name}="PCM Playback Switch",CTL{index}="1",PROGRAM=="__ctl_search", \
+CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{write}=="0dB",GOTO=""
+CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{write}=="0dB",GOTO=""
+CTL{write}!="$env{pvolume}",CTL{values}="75%"
+LABEL=""
+CTL{name}="PCM Playback Switch",CTL{index}="1",CTL{do_search}=="1", \
   CTL{values}="on"
-CTL{name}="PCM Switch",CTL{index}="1",PROGRAM=="__ctl_search", \
+CTL{name}="PCM Switch",CTL{index}="1",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="DAC Playback Volume",PROGRAM=="__ctl_search", \
+CTL{name}="DAC Playback Volume",CTL{do_search}=="1", \
   CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-CTL{name}="DAC Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="DAC Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Synth Playback Volume",PROGRAM=="__ctl_search", \
+CTL{name}="Synth Playback Volume",CTL{do_search}=="1", \
   CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-CTL{name}="Synth Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="Synth Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Wave Playback Volume",PROGRAM=="__ctl_search", \
+CTL{name}="Wave Playback Volume",CTL{do_search}=="1", \
   CTL{values}="100%"
-CTL{name}="Wave Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="Wave Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Music Playback Volume",PROGRAM=="__ctl_search", \
+CTL{name}="Music Playback Volume",CTL{do_search}=="1", \
   CTL{values}="100%"
-CTL{name}="Music Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="Music Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="CD Playback Volume",PROGRAM!="__ctl_search", GOTO="cd0_end"
+CTL{name}="CD Playback Volume",PROGRAM!="__ctl_search", GOTO=""
 # if master volume control is present, turn CD volume to max
-ENV{has_pmaster_vol}=="true",CTL{values}="0dB",RESULT=="0",GOTO="cd0_end"
-ENV{has_pmaster_vol}=="true",CTL{values)="100%",GOTO="cd0_end"
+ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO=""
+ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO=""
 # exception - some HDA codecs have shifted dB range
-CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{values}="0dB",GOTO="cd0_end"
-CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{values}="0dB",GOTO="cd0_end"
-CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-LABEL="cd0_end"
-CTL{name}="CD Playback Switch",PROGRAM=="__ctl_search", \
+CTL{dBmin}=="-34.50dB",CTL{dBmax}=="12.00dB",CTL{write}=="0dB",GOTO=""
+CTL{dBmin}=="-30.00dB",CTL{dBmax}=="0dB",CTL{write}=="0dB",GOTO=""
+CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
+LABEL=""
+CTL{name}="CD Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Mono Playback Volume",PROGRAM=="__ctl_search", \
+CTL{name}="Mono Playback Volume",CTL{do_search}=="1", \
   CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-CTL{name}="Mono Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="Mono Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="Master Mono Playback Volume",PROGRAM=="__ctl_search", \
+CTL{name}="Master Mono Playback Volume",CTL{do_search}=="1", \
   CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
-CTL{name}="Master Mono Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="Master Mono Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 CTL{reset}="mixer"
-CTL{name}="AC97 Playback Volume",PROGRAM=="__ctl_search", \
+CTL{name}="AC97 Playback Volume",CTL{do_search}=="1", \
   CTL{values}="100%"
-CTL{name}="AC97 Playback Switch",PROGRAM=="__ctl_search", \
+CTL{name}="AC97 Playback Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
 #
@@ -157,24 +179,33 @@ CTL{name}="AC97 Playback Switch",PROGRAM=="__ctl_search", \
 #
 
 CTL{reset}="mixer"
-CTL{name}="DRC Range",PROGRAM=="__ctl_search", \
-  CTL{values}="$env{pvolume}",RESULT!="0",CTL{values}="$env{ppercent}"
+CTL{name}="DRC Range",CTL{do_search}=="1", \
+  CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}"
 
 # **************************************************************************
 # capture
 # **************************************************************************
 
 CTL{reset}="mixer"
-CTL{name}="Capture Volume",PROGRAM=="__ctl_search", \
-  CTL{values}="$env{cvolume}",RESULT!="0",CTL{values}="$env{cpercent}"
-CTL{name}="Capture Switch",PROGRAM=="__ctl_search", \
+CTL{name}="Capture Volume",CTL{do_search}=="1", \
+  CTL{write}!="$env{cvolume}",CTL{values}="$env{cpercent}"
+CTL{name}="Capture Switch",CTL{do_search}=="1", \
   CTL{values}="on"
 
-CTL{name}="Input Source",PROGRAM!="__ctl_search", GOTO="end_input_source"
-CTL{enums}=="*|Internal Mic|*",CTL{values}="Internal Mic", \
-  GOTO="end_input_source"
+CTL{name}="Capture Source",PROGRAM!="__ctl_search", GOTO=""
+CTL{enums}=="*|Internal Mic|*",CTL{values}="Internal Mic", GOTO=""
 CTL{enums}=="*|Mic|*",CTL{values}="Mic"
-LABEL="end_input_source"
+LABEL=""
 
-CTL{name}="Internal Mic Boost",PROGRAM=="__ctl_search", \
-  CTL{values}="on"
+CTL{name}="Input Source",PROGRAM!="__ctl_search", GOTO=""
+CTL{enums}=="*|Internal Mic|*",CTL{values}="Internal Mic", GOTO=""
+CTL{enums}=="*|Mic|*",CTL{values}="Mic"
+LABEL=""
+
+CTL{name}="Digital Input Source",PROGRAM!="__ctl_search", GOTO=""
+CTL{enums}=="*|Digital Mic 1|*",CTL{values}="Digital Mic 1", GOTO=""
+CTL{enums}=="*|Mic|*",CTL{values}="Mic"
+LABEL=""
+
+CTL{name}="Mic Boost",CTL{do_search}=="1", CTL{values}="on"
+CTL{name}="Internal Mic Boost",CTL{do_search}=="1", CTL{values}="on"
index 26db2a3..56659f8 100644 (file)
@@ -37,9 +37,9 @@ PRINT="  CTL{index}=\"$ctl{index}\"\n"
 ERROR="Ignore following error:\n  "
 PROGRAM="__just_test"
 
-PRINT="__ctl_count test:\n"
-CTL{search}="mixer", CTL{name}="*Switch*", PROGRAM="__ctl_count", \
-  PRINT="  *Switch* count result: $result\n"
+PRINT="CTL{do_count} test:\n"
+CTL{search}="mixer", CTL{name}="*Switch*", \
+  PRINT="  *Switch* count result: $ctl{do_count}\n"
 
 PRINT="__ctl_search test:\n"
 CTL{search}="mixer", CTL{name}="*Switch*", PROGRAM!="__ctl_search", GOTO="skip_switch_search"
@@ -60,7 +60,7 @@ PRINT="    CTL{name}=\"$ctl{name}\"\n"
 PRINT="    CTL{index}=\"$ctl{index}\"\n"
 
 PRINT="First ten elements:\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 0", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 0}!="1", GOTO="skip_first_ten_search"
 PRINT="  Element #0:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -79,7 +79,7 @@ PRINT="    CTL{dBmin}=\"$ctl{dBmin}\"\n"
 PRINT="    CTL{dBmax}=\"$ctl{dBmax}\"\n"
 PRINT="    CTL{items}=\"$ctl{items}\"\n"
 PRINT="    CTL{value}=\"$ctl{value}\"\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 1", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 1}!="1", GOTO="skip_first_ten_search"
 PRINT="  Element #1:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -98,7 +98,7 @@ PRINT="    CTL{dBmin}=\"$ctl{dBmin}\"\n"
 PRINT="    CTL{dBmax}=\"$ctl{dBmax}\"\n"
 PRINT="    CTL{items}=\"$ctl{items}\"\n"
 PRINT="    CTL{value}=\"$ctl{value}\"\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 2", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 2}!="1", GOTO="skip_first_ten_search"
 PRINT="  Element #2:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -117,7 +117,7 @@ PRINT="    CTL{dBmin}=\"$ctl{dBmin}\"\n"
 PRINT="    CTL{dBmax}=\"$ctl{dBmax}\"\n"
 PRINT="    CTL{items}=\"$ctl{items}\"\n"
 PRINT="    CTL{value}=\"$ctl{value}\"\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 3", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 3}!="3", GOTO="skip_first_ten_search"
 PRINT="  Element #3:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -136,7 +136,7 @@ PRINT="    CTL{dBmax}=\"$ctl{dBmax}\"\n"
 PRINT="    CTL{step}=\"$ctl{step}\"\n"
 PRINT="    CTL{items}=\"$ctl{items}\"\n"
 PRINT="    CTL{value}=\"$ctl{value}\"\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 4", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 4}!="1", GOTO="skip_first_ten_search"
 PRINT="  Element #4:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -155,7 +155,7 @@ PRINT="    CTL{dBmin}=\"$ctl{dBmin}\"\n"
 PRINT="    CTL{dBmax}=\"$ctl{dBmax}\"\n"
 PRINT="    CTL{items}=\"$ctl{items}\"\n"
 PRINT="    CTL{value}=\"$ctl{value}\"\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 5", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 5}!="1", GOTO="skip_first_ten_search"
 PRINT="  Element #5:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -174,7 +174,7 @@ PRINT="    CTL{dBmin}=\"$ctl{dBmin}\"\n"
 PRINT="    CTL{dBmax}=\"$ctl{dBmax}\"\n"
 PRINT="    CTL{items}=\"$ctl{items}\"\n"
 PRINT="    CTL{value}=\"$ctl{value}\"\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 6", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 6}!="1", GOTO="skip_first_ten_search"
 PRINT="  Element #6:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -193,7 +193,7 @@ PRINT="    CTL{dBmin}=\"$ctl{dBmin}\"\n"
 PRINT="    CTL{dBmax}=\"$ctl{dBmax}\"\n"
 PRINT="    CTL{items}=\"$ctl{items}\"\n"
 PRINT="    CTL{value}=\"$ctl{value}\"\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 7", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 7}!="1", GOTO="skip_first_ten_search"
 PRINT="  Element #7:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -212,7 +212,7 @@ PRINT="    CTL{dBmin}=\"$ctl{dBmin}\"\n"
 PRINT="    CTL{dBmax}=\"$ctl{dBmax}\"\n"
 PRINT="    CTL{items}=\"$ctl{items}\"\n"
 PRINT="    CTL{value}=\"$ctl{value}\"\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 8", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 8}!="1", GOTO="skip_first_ten_search"
 PRINT="  Element #8:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -231,7 +231,7 @@ PRINT="    CTL{dBmin}=\"$ctl{dBmin}\"\n"
 PRINT="    CTL{dBmax}=\"$ctl{dBmax}\"\n"
 PRINT="    CTL{items}=\"$ctl{items}\"\n"
 PRINT="    CTL{value}=\"$ctl{value}\"\n"
-CTL{search}="mixer", CTL{name}="*", PROGRAM!="__ctl_search 9", GOTO="skip_first_ten_search"
+CTL{search}="mixer", CTL{name}="*", CTL{do_search 9}!="1", GOTO="skip_first_ten_search"
 PRINT="  Element #9:\n"
 PRINT="    CTL{numid}=\"$ctl{numid}\"\n"
 PRINT="    CTL{iface}=\"$ctl{iface}\"\n"
@@ -254,15 +254,15 @@ LABEL="skip_first_ten_search"
 
 PRINT="Elements write test #1:\n", \
   CTL{search}="mixer", CTL{name}="Front Playback Switch", \
-  PROGRAM="__ctl_search", CTL{value}="on,on", \
+  CTL{do_search}=="1", CTL{value}="on,on", \
   PRINT="  result=$result\n"
 PRINT="Elements write test #2:\n", \
   CTL{search}="mixer", CTL{name}="Front Playback Volume", \
-  PROGRAM="__ctl_search", CTL{value}="32,32", \
+  CTL{do_search}=="1", CTL{value}="32,32", \
   PRINT="  result=$result\n"
 PRINT="Elements write test #3:\n", \
   CTL{search}="mixer", CTL{name}="Front Playback Volume Error", \
-  PROGRAM="__ctl_search"
+  CTL{do_search}=="1", \
 PRINT="  result=$result\n"
 
 #CTL{reset}="mixer", CTL{name}="Input Source", PRINT="***$ctl{enums}\n"
index 756cf92..51b515c 100644 (file)
@@ -485,6 +485,46 @@ static int set_ctl_value(struct space *space, const char *value, int all)
        return -EINVAL;
 }
 
+static int do_match(const char *key, enum key_op op,
+                   const char *key_value, const char *value)
+{
+       int match;
+
+       if (value == NULL)
+               return 0;
+       dbg("match %s '%s' <-> '%s'", key, key_value, value);
+       match = fnmatch(key_value, value, 0) == 0;
+       if (match && op == KEY_OP_MATCH) {
+               dbg("%s is true (matching value)", key);
+               return 1;
+       }
+       if (!match && op == KEY_OP_NOMATCH) {
+               dbg("%s is true (non-matching value)", key);
+               return 1;
+       }
+       dbg("%s is false", key);
+       return 0;
+}
+
+static int ctl_match(snd_ctl_elem_id_t *pattern, snd_ctl_elem_id_t *id)
+{
+       if (snd_ctl_elem_id_get_interface(pattern) != -1 &&
+           snd_ctl_elem_id_get_interface(pattern) != snd_ctl_elem_id_get_interface(id))
+               return 0;
+       if (snd_ctl_elem_id_get_device(pattern) != -1 &&
+           snd_ctl_elem_id_get_device(pattern) != snd_ctl_elem_id_get_device(id))
+               return 0;
+       if (snd_ctl_elem_id_get_subdevice(pattern) != -1 &&
+           snd_ctl_elem_id_get_subdevice(pattern) != snd_ctl_elem_id_get_subdevice(id))
+               return 0;
+       if (snd_ctl_elem_id_get_index(pattern) != -1 &&
+           snd_ctl_elem_id_get_index(pattern) != snd_ctl_elem_id_get_index(id))
+               return 0;
+       if (fnmatch(snd_ctl_elem_id_get_name(pattern), snd_ctl_elem_id_get_name(id), 0) != 0)
+               return 0;
+       return 1;
+}
+
 static const char *elemid_get(struct space *space, const char *attr)
 {
        long long val;
@@ -649,6 +689,56 @@ dbvalue:
                }
                return res;
        }
+       if (strncasecmp(attr, "do_search", 9) == 0) {
+               int err, index = 0;
+               snd_hctl_elem_t *elem;
+               snd_ctl_elem_id_t *id;
+               char *pos = strchr(attr, ' ');
+               if (pos)
+                       index = strtol(pos, NULL, 0);
+               err = snd_ctl_elem_id_malloc(&id);
+               if (err < 0)
+                       return NULL;
+               elem = snd_hctl_first_elem(space->ctl_handle);
+               while (elem) {
+                       snd_hctl_elem_get_id(elem, id);
+                       if (!ctl_match(space->ctl_id, id))
+                               goto next_search;
+                       if (index > 0) {
+                               index--;
+                               goto next_search;
+                       }
+                       strcpy(res, "1");
+                       snd_ctl_elem_id_copy(space->ctl_id, id);
+                       snd_ctl_elem_id_free(id);
+                       dbg("do_ctl_search found a control");
+                       return res;
+                     next_search:
+                       elem = snd_hctl_elem_next(elem);
+               }
+               snd_ctl_elem_id_free(id);
+               strcpy(res, "0");
+               return res;
+       }
+       if (strncasecmp(attr, "do_count", 8) == 0) {
+               int err, index = 0;
+               snd_hctl_elem_t *elem;
+               snd_ctl_elem_id_t *id;
+               err = snd_ctl_elem_id_malloc(&id);
+               if (err < 0)
+                       return NULL;
+               elem = snd_hctl_first_elem(space->ctl_handle);
+               while (elem) {
+                       snd_hctl_elem_get_id(elem, id);
+                       if (ctl_match(space->ctl_id, id))
+                               index++;
+                       elem = snd_hctl_elem_next(elem);
+               }
+               snd_ctl_elem_id_free(id);
+               sprintf(res, "%u", index);
+               dbg("do_ctl_count found %s controls", res);
+               return res;
+       }
        Perror(space, "unknown ctl{} attribute '%s'", attr);
        return NULL;
   value:
@@ -1150,108 +1240,23 @@ found:
        *tail = 0;
 }
 
-static int do_match(const char *key, enum key_op op,
-                   const char *key_value, const char *value)
-{
-       int match;
-
-       if (value == NULL)
-               return 0;
-       dbg("match %s '%s' <-> '%s'", key, key_value, value);
-       match = fnmatch(key_value, value, 0) == 0;
-       if (match && op == KEY_OP_MATCH) {
-               dbg("%s is true (matching value)", key);
-               return 1;
-       }
-       if (!match && op == KEY_OP_NOMATCH) {
-               dbg("%s is true (non-matching value)", key);
-               return 1;
-       }
-       dbg("%s is false", key);
-       return 0;
-}
-
-static int ctl_match(snd_ctl_elem_id_t *pattern, snd_ctl_elem_id_t *id)
-{
-       if (snd_ctl_elem_id_get_interface(pattern) != -1 &&
-           snd_ctl_elem_id_get_interface(pattern) != snd_ctl_elem_id_get_interface(id))
-               return 0;
-       if (snd_ctl_elem_id_get_device(pattern) != -1 &&
-           snd_ctl_elem_id_get_device(pattern) != snd_ctl_elem_id_get_device(id))
-               return 0;
-       if (snd_ctl_elem_id_get_subdevice(pattern) != -1 &&
-           snd_ctl_elem_id_get_subdevice(pattern) != snd_ctl_elem_id_get_subdevice(id))
-               return 0;
-       if (snd_ctl_elem_id_get_index(pattern) != -1 &&
-           snd_ctl_elem_id_get_index(pattern) != snd_ctl_elem_id_get_index(id))
-               return 0;
-       if (fnmatch(snd_ctl_elem_id_get_name(pattern), snd_ctl_elem_id_get_name(id), 0) != 0)
-               return 0;
-       return 1;
-}
-
 static
 int run_program1(struct space *space,
                 const char *command0, char *result,
                 size_t ressize, size_t *reslen, int log)
 {
-       char *pos = strchr(command0, ' ');
-       int cmdlen = pos ? pos - command0 : strlen(command0);
-       int err, index;
-       snd_hctl_elem_t *elem;
-       snd_ctl_elem_id_t *id;
-       
-       if (cmdlen == 12 && strncmp(command0, "__ctl_search", 12) == 0) {
-               index = 0;
-               if (pos)
-                       index = strtol(pos, NULL, 0);
-               err = snd_ctl_elem_id_malloc(&id);
-               if (err < 0)
+       if (strncmp(command0, "__ctl_search", 12) == 0) {
+               const char *res = elemid_get(space, "do_search");
+               if (res == NULL || strcmp(res, "1") != 0)
                        return EXIT_FAILURE;
-               elem = snd_hctl_first_elem(space->ctl_handle);
-               while (elem) {
-                       snd_hctl_elem_get_id(elem, id);
-                       if (!ctl_match(space->ctl_id, id))
-                               goto next_search;
-                       if (index > 0) {
-                               index--;
-                               goto next_search;
-                       }
-                       strlcpy(result, "0", ressize);
-                       snd_ctl_elem_id_copy(space->ctl_id, id);
-                       snd_ctl_elem_id_free(id);
-                       dbg("__ctl_search found a control");
-                       return EXIT_SUCCESS;
-                     next_search:
-                       elem = snd_hctl_elem_next(elem);
-               }
-               snd_ctl_elem_id_free(id);
-               return EXIT_FAILURE;
+               return EXIT_SUCCESS;
        }
-       if (cmdlen == 11 && strncmp(command0, "__ctl_count", 11) == 0) {
-               index = 0;
-               err = snd_ctl_elem_id_malloc(&id);
-               if (err < 0)
+       if (strncmp(command0, "__ctl_count", 11) == 0) {
+               const char *res = elemid_get(space, "do_count");
+               if (res == NULL || strcmp(res, "0") == 0)
                        return EXIT_FAILURE;
-               elem = snd_hctl_first_elem(space->ctl_handle);
-               while (elem) {
-                       snd_hctl_elem_get_id(elem, id);
-                       if (!ctl_match(space->ctl_id, id))
-                               goto next_count;
-                       index++;
-                     next_count:
-                       elem = snd_hctl_elem_next(elem);
-               }
-               snd_ctl_elem_id_free(id);
-               if (index > 0) {
-                       snprintf(result, ressize, "%u", index);
-                       dbg("__ctl_count found %s controls", result);
-                       return EXIT_SUCCESS;
-               }
-               dbg("__ctl_count no match");
-               return EXIT_FAILURE;
-       }
-       if (cmdlen == 11 && strncmp(command0, "__ctl_write", 11) == 0) {
+               strlcpy(result, res, ressize);
+               return EXIT_SUCCESS;
        }
        Perror(space, "unknown buildin command '%s'", command0);
        return EXIT_FAILURE;
@@ -1329,10 +1334,21 @@ static int parse_line(struct space *space, char *line, size_t linesize)
                                if (space->program_result == NULL)
                                        break;
                        } else if (op == KEY_OP_MATCH || op == KEY_OP_NOMATCH) {
-                               dbg("ctl match: '%s' '%s'", value, attr);
-                               temp = (char *)elemid_get(space, attr);
-                               if (!do_match(key, op, value, temp))
-                                       break;
+                               if (strncmp(attr, "write", 5) == 0) {
+                                       strlcpy(result, value, sizeof(result));
+                                       apply_format(space, result, sizeof(result));
+                                       dbg("ctl write: '%s' '%s'", value, attr);
+                                       err = elemid_set(space, "values", result);
+                                       if (err == 0 && op == KEY_OP_NOMATCH)
+                                               break;
+                                       if (err != 0 && op == KEY_OP_MATCH)
+                                               break;
+                               } else {
+                                       temp = (char *)elemid_get(space, attr);
+                                       dbg("ctl match: '%s' '%s' '%s'", attr, value, temp);
+                                       if (!do_match(key, op, value, temp))
+                                               break;
+                               }
                        } else {
                                Perror(space, "invalid CTL{} operation");
                                goto invalid;
@@ -1731,10 +1747,12 @@ int init(const char *filename, const char *cardname)
                        }
                        first = 0;
                        err = init_space(&space, card);
-                       if (err == 0 &&
-                           (space->rootdir = new_root_dir(filename)) != NULL)
-                               err = parse(space, filename);
-                       free_space(space);
+                       if (err == 0) {
+                               space->rootdir = new_root_dir(filename);
+                               if (space->rootdir != NULL)
+                                       err = parse(space, filename);
+                               free_space(space);
+                       }
                        if (err < 0)
                                break;
                }
@@ -1746,10 +1764,12 @@ int init(const char *filename, const char *cardname)
                }
                memset(&space, 0, sizeof(space));
                err = init_space(&space, card);
-               if (err == 0 &&
-                   (space->rootdir = new_root_dir(filename)) != NULL)
-                       err = parse(space, filename);
-               free_space(space);
+               if (err == 0) {
+                       space->rootdir = new_root_dir(filename);
+                       if (space->rootdir  != NULL)
+                               err = parse(space, filename);
+                       free_space(space);
+               }
        }
   error:
        sysfs_cleanup();
index 635a999..7422deb 100644 (file)
@@ -58,7 +58,7 @@ static int snd_config_integer_add(snd_config_t *father, char *id, long integer)
 {
        int err;
        snd_config_t *leaf;
-       err = snd_config_make_integer(&leaf, id);
+       err = snd_config_imake_integer(&leaf, id, integer);
        if (err < 0)
                return err;
        err = snd_config_add(father, leaf);
@@ -66,11 +66,6 @@ static int snd_config_integer_add(snd_config_t *father, char *id, long integer)
                snd_config_delete(leaf);
                return err;
        }
-       err = snd_config_set_integer(leaf, integer);
-       if (err < 0) {
-               snd_config_delete(leaf);
-               return err;
-       }
        return 0;
 }
 
@@ -78,7 +73,7 @@ static int snd_config_integer64_add(snd_config_t *father, char *id, long long in
 {
        int err;
        snd_config_t *leaf;
-       err = snd_config_make_integer64(&leaf, id);
+       err = snd_config_imake_integer64(&leaf, id, integer);
        if (err < 0)
                return err;
        err = snd_config_add(father, leaf);
@@ -86,11 +81,6 @@ static int snd_config_integer64_add(snd_config_t *father, char *id, long long in
                snd_config_delete(leaf);
                return err;
        }
-       err = snd_config_set_integer64(leaf, integer);
-       if (err < 0) {
-               snd_config_delete(leaf);
-               return err;
-       }
        return 0;
 }
 
@@ -98,7 +88,7 @@ static int snd_config_string_add(snd_config_t *father, const char *id, const cha
 {
        int err;
        snd_config_t *leaf;
-       err = snd_config_make_string(&leaf, id);
+       err = snd_config_imake_string(&leaf, id, string);
        if (err < 0)
                return err;
        err = snd_config_add(father, leaf);
@@ -106,11 +96,6 @@ static int snd_config_string_add(snd_config_t *father, const char *id, const cha
                snd_config_delete(leaf);
                return err;
        }
-       err = snd_config_set_string(leaf, string);
-       if (err < 0) {
-               snd_config_delete(leaf);
-               return err;
-       }
        return 0;
 }
 
@@ -179,14 +164,18 @@ static unsigned int *str_to_tlv(const char *s)
 }
 
 /*
- * add the TLV string and dB ranges to comment fields
+ * add the TLV string, dB ranges, and dB values to comment fields
  */
 static int add_tlv_comments(snd_ctl_t *handle, snd_ctl_elem_id_t *id,
-                           snd_ctl_elem_info_t *info, snd_config_t *comment)
+                           snd_ctl_elem_info_t *info, snd_ctl_elem_value_t *ctl,
+                           snd_config_t *comment)
 {
        unsigned int tlv[MAX_USER_TLV_SIZE];
        unsigned int *db;
-       long dbmin, dbmax;
+       long rangemin, rangemax;
+       long dbmin, dbmax, dbgain;
+       snd_config_t *value;
+       unsigned int i, count;
        int err;
 
        if (snd_ctl_elem_tlv_read(handle, id, tlv, sizeof(tlv)) < 0)
@@ -208,13 +197,35 @@ static int add_tlv_comments(snd_ctl_t *handle, snd_ctl_elem_id_t *id,
        if (err <= 0)
                return 0;
 
-       snd_tlv_get_dB_range(db, snd_ctl_elem_info_get_min(info),
-                            snd_ctl_elem_info_get_max(info),
-                            &dbmin, &dbmax);
+       rangemin = snd_ctl_elem_info_get_min(info);
+       rangemax = snd_ctl_elem_info_get_max(info);
+       snd_tlv_get_dB_range(db, rangemin, rangemax, &dbmin, &dbmax);
        if (err < 0)
                return err;
        snd_config_integer_add(comment, "dbmin", dbmin);
        snd_config_integer_add(comment, "dbmax", dbmax);
+
+       if (snd_ctl_elem_info_get_type(info) == SND_CTL_ELEM_TYPE_INTEGER) {
+               err = snd_config_compound_add(comment, "dbvalue", 1, &value);
+               if (err < 0) {
+                       error("snd_config_compound_add: %s", snd_strerror(err));
+                       return err;
+               }
+               count = snd_ctl_elem_info_get_count(info);
+               for (i = 0; i < count; i++) {
+                       err = snd_tlv_convert_to_dB(db, rangemin, rangemax,
+                                       snd_ctl_elem_value_get_integer(ctl, i), &dbgain);
+                       if (err < 0) {
+                               error("snd_tlv_convert_to_dB: %s", snd_strerror(err));
+                               return err;
+                       }
+                       err = snd_config_integer_add(value, num_str(i), dbgain);
+                       if (err < 0) {
+                               error("snd_config_integer_add: %s", snd_strerror(err));
+                               return err;
+                       }
+               }
+       }
        return 0;
 }
 
@@ -240,8 +251,7 @@ static int get_control(snd_ctl_t *handle, snd_ctl_elem_id_t *id, snd_config_t *t
                return err;
        }
 
-       if (snd_ctl_elem_info_is_inactive(info) ||
-                               !snd_ctl_elem_info_is_readable(info))
+       if (!snd_ctl_elem_info_is_readable(info))
                return 0;
        snd_ctl_elem_value_set_id(ctl, id);
        err = snd_ctl_elem_read(handle, ctl);
@@ -255,9 +265,9 @@ static int get_control(snd_ctl_t *handle, snd_ctl_elem_id_t *id, snd_config_t *t
                error("snd_config_compound_add: %s", snd_strerror(err));
                return err;
        }
-       err = snd_config_compound_add(control, "comment", 1, &comment);
+       err = snd_config_make_compound(&comment, "comment", 0);
        if (err < 0) {
-               error("snd_config_compound_add: %s", snd_strerror(err));
+               error("snd_config_make_compound: %s", snd_strerror(err));
                return err;
        }
 
@@ -317,7 +327,7 @@ static int get_control(snd_ctl_t *handle, snd_ctl_elem_id_t *id, snd_config_t *t
                        return err;
                }
                if (snd_ctl_elem_info_is_tlv_readable(info)) {
-                       err = add_tlv_comments(handle, id, info, comment);
+                       err = add_tlv_comments(handle, id, info, ctl, comment);
                        if (err < 0)
                                return err;
                }
@@ -421,7 +431,7 @@ static int get_control(snd_ctl_t *handle, snd_ctl_elem_id_t *id, snd_config_t *t
                        error("snd_config_string_add: %s", snd_strerror(err));
                        return err;
                }
-               return 0;
+               goto finish;
        }
        default:
                break;
@@ -435,21 +445,21 @@ static int get_control(snd_ctl_t *handle, snd_ctl_elem_id_t *id, snd_config_t *t
                                error("snd_config_string_add: %s", snd_strerror(err));
                                return err;
                        }
-                       return 0;
+                       goto finish;
                case SND_CTL_ELEM_TYPE_INTEGER:
                        err = snd_config_integer_add(control, "value", snd_ctl_elem_value_get_integer(ctl, 0));
                        if (err < 0) {
                                error("snd_config_integer_add: %s", snd_strerror(err));
                                return err;
                        }
-                       return 0;
+                       goto finish;
                case SND_CTL_ELEM_TYPE_INTEGER64:
                        err = snd_config_integer64_add(control, "value", snd_ctl_elem_value_get_integer64(ctl, 0));
                        if (err < 0) {
                                error("snd_config_integer64_add: %s", snd_strerror(err));
                                return err;
                        }
-                       return 0;
+                       goto finish;
                case SND_CTL_ELEM_TYPE_ENUMERATED:
                {
                        unsigned int v = snd_ctl_elem_value_get_enumerated(ctl, 0);
@@ -464,7 +474,7 @@ static int get_control(snd_ctl_t *handle, snd_ctl_elem_id_t *id, snd_config_t *t
                        }
                        if (err < 0)
                                error("snd_config add: %s", snd_strerror(err));
-                       return 0;
+                       goto finish;
                }
                default:
                        error("Unknown control type: %d\n", type);
@@ -529,6 +539,12 @@ static int get_control(snd_ctl_t *handle, snd_ctl_elem_id_t *id, snd_config_t *t
                return -EINVAL;
        }
        
+finish:
+       err = snd_config_add(control, comment);
+       if (err < 0) {
+               error("snd_config_add: %s", snd_strerror(err));
+               return err;
+       }
        return 0;
 }
        
@@ -538,6 +554,7 @@ static int get_controls(int cardno, snd_config_t *top)
        snd_ctl_card_info_t *info;
        snd_config_t *state, *card, *control;
        snd_ctl_elem_list_t *list;
+       snd_ctl_elem_id_t *elem_id;
        unsigned int idx;
        int err;
        char name[32];
@@ -545,6 +562,7 @@ static int get_controls(int cardno, snd_config_t *top)
        const char *id;
        snd_ctl_card_info_alloca(&info);
        snd_ctl_elem_list_alloca(&list);
+       snd_ctl_elem_id_alloca(&elem_id);
 
        sprintf(name, "hw:%d", cardno);
        err = snd_ctl_open(&handle, name, SND_CTL_READONLY);
@@ -619,10 +637,8 @@ static int get_controls(int cardno, snd_config_t *top)
                goto _free;
        }
        for (idx = 0; idx < count; ++idx) {
-               snd_ctl_elem_id_t *id;
-               snd_ctl_elem_id_alloca(&id);
-               snd_ctl_elem_list_get_id(list, idx, id);
-               err = get_control(handle, id, control);
+               snd_ctl_elem_list_get_id(list, idx, elem_id);
+               err = get_control(handle, elem_id, control);
                if (err < 0)
                        goto _free;
        }               
@@ -761,7 +777,7 @@ static int config_integer64(snd_config_t *n, long long *val, int doit)
        return err;
 }
 
-static int is_user_control(snd_config_t *conf)
+static int check_comment_access(snd_config_t *conf, const char *str)
 {
        snd_config_iterator_t i, next;
 
@@ -773,7 +789,7 @@ static int is_user_control(snd_config_t *conf)
                if (strcmp(id, "access") == 0) {
                        if (snd_config_get_string(n, &s) < 0)
                                return 0;
-                       if (strstr(s, "user"))
+                       if (strstr(s, str))
                                return 1;
                }
        }
@@ -915,31 +931,14 @@ static int add_user_control(snd_ctl_t *handle, snd_ctl_elem_info_t *info, snd_co
 }
 
 /*
- * look for a config node with the given item name
- */
-static snd_config_t *search_comment_item(snd_config_t *conf, const char *name)
-{
-       snd_config_iterator_t i, next;
-       snd_config_for_each(i, next, conf) {
-               snd_config_t *n = snd_config_iterator_entry(i);
-               const char *id;
-               if (snd_config_get_id(n, &id) < 0)
-                       continue;
-               if (strcmp(id, name) == 0)
-                       return n;
-       }
-       return NULL;
-}
-
-/*
  * check whether the config item has the same of compatible type
  */
 static int check_comment_type(snd_config_t *conf, int type)
 {
-       snd_config_t *n = search_comment_item(conf, "type");
+       snd_config_t *n;
        int ctype;
 
-       if (!n)
+       if (snd_config_search(conf, "type", &n) < 0)
                return 0; /* not defined */
        ctype = get_comment_type(n);
        if (ctype == type)
@@ -962,20 +961,31 @@ static int check_comment_type(snd_config_t *conf, int type)
 static int convert_to_new_db(snd_config_t *value, long omin, long omax,
                             long nmin, long nmax,
                             long odbmin, long odbmax,
-                            long ndbmin, long ndbmax,
+                            snd_config_t *comment, const char *index,
+                            snd_ctl_t *device, snd_ctl_elem_id_t *id,
                             int doit)
 {
-       long val;
-       if (config_integer(value, &val, doit) < 0)
-               return -EINVAL;
-       if (val < omin || val > omax)
-               return -EINVAL;
-       val = ((val - omin) * (odbmax - odbmin)) / (omax - omin) + odbmin;
-       if (val < ndbmin)
-               val = ndbmin;
-       else if (val > ndbmax)
-               val = ndbmax;
-       val = ((val - ndbmin) * (nmax - nmin)) / (ndbmax - ndbmin) + nmin;
+       snd_config_t *db_node;
+       long db, val;
+       int err;
+
+       if (snd_config_searchv(comment, &db_node, "dbvalue", index, NULL) < 0 ||
+           snd_config_get_integer(db_node, &db) < 0) {
+               err = config_integer(value, &val, doit);
+               if (err < 0)
+                       return err;
+               if (val < omin || val > omax)
+                       return -EINVAL;
+               db = ((val - omin) * (odbmax - odbmin)) / (omax - omin) + odbmin;
+       }
+
+       err = snd_ctl_convert_from_dB(device, id, db, &val, db > 0);
+       if (err < 0)
+               return err;
+       if (val < nmin)
+               val = nmin;
+       else if (val > nmax)
+               val = nmax;
        return snd_config_set_integer(value, val);
 }
 
@@ -995,8 +1005,7 @@ static int check_comment_range(snd_ctl_t *handle, snd_config_t *conf,
        long ndbmin, ndbmax;
        snd_ctl_elem_id_t *id;
 
-       n = search_comment_item(conf, "range");
-       if (!n)
+       if (snd_config_search(conf, "range", &n) < 0)
                return 0;
        if (get_comment_range(n, SND_CTL_ELEM_TYPE_INTEGER,
                              &omin, &omax, &ostep) < 0)
@@ -1011,13 +1020,11 @@ static int check_comment_range(snd_ctl_t *handle, snd_config_t *conf,
        if (omin >= omax || nmin >= nmax)
                return 0; /* invalid values */
 
-       n = search_comment_item(conf, "dbmin");
-       if (!n)
+       if (snd_config_search(conf, "dbmin", &n) < 0)
                return 0;
        if (config_integer(n, &odbmin, doit) < 0)
                return 0;
-       n = search_comment_item(conf, "dbmax");
-       if (!n)
+       if (snd_config_search(conf, "dbmax", &n) < 0)
                return 0;
        if (config_integer(n, &odbmax, doit) < 0)
                return 0;
@@ -1038,12 +1045,17 @@ static int check_comment_range(snd_ctl_t *handle, snd_config_t *conf,
                snd_config_iterator_t i, next;
                snd_config_for_each(i, next, value) {
                        snd_config_t *n = snd_config_iterator_entry(i);
+                       const char *idxstr;
+                       if (snd_config_get_id(n, &idxstr) < 0)
+                               continue;
                        convert_to_new_db(n, omin, omax, nmin, nmax,
-                                         odbmin, odbmax, ndbmin, ndbmax, doit);
+                                         odbmin, odbmax, conf, idxstr,
+                                         handle, id, doit);
                }
        } else
                convert_to_new_db(value, omin, omax, nmin, nmax,
-                                 odbmin, odbmax, ndbmin, ndbmax, doit);
+                                 odbmin, odbmax, conf, "0",
+                                 handle, id, doit);
        return 0;
 }
 
@@ -1117,7 +1129,6 @@ static int restore_config_value2(snd_ctl_t *handle, snd_ctl_elem_info_t *info,
                }
                snd_ctl_elem_value_set_byte(ctl, idx, val);
                return 1;
-               break;
        default:
                break;
        }
@@ -1243,7 +1254,7 @@ static int set_control(snd_ctl_t *handle, snd_config_t *control,
                snd_ctl_elem_info_set_name(info, name);
                snd_ctl_elem_info_set_index(info, index);
                err = snd_ctl_elem_info(handle, info);
-               if (err < 0 && comment && is_user_control(comment)) {
+               if (err < 0 && comment && check_comment_access(comment, "user")) {
                        err = add_user_control(handle, info, comment);
                        if (err < 0) {
                                cerror(doit, "failed to add user control #%d (%s)",
@@ -1292,6 +1303,9 @@ static int set_control(snd_ctl_t *handle, snd_config_t *control,
                                return -EINVAL;
                        }
                }
+               /* inactive controls are not restored */
+               if (comment && check_comment_access(comment, "inactive"))
+                       return 0;
        }
 
        if (snd_ctl_elem_info_is_inactive(info) ||
@@ -1404,6 +1418,7 @@ static int set_controls(int card, snd_config_t *top, int doit)
        snd_ctl_card_info_alloca(&info);
 
        sprintf(name, "hw:%d", card);
+       dbg("device='%s', doit=%i", name, doit);
        err = snd_ctl_open(&handle, name, 0);
        if (err < 0) {
                error("snd_ctl_open error: %s", snd_strerror(err));
@@ -1415,6 +1430,7 @@ static int set_controls(int card, snd_config_t *top, int doit)
                goto _close;
        }
        id = snd_ctl_card_info_get_id(info);
+       dbg("card-info-id: '%s'", id);
        err = snd_config_searchv(top, &control, "state", id, "control", 0);
        if (err < 0) {
                if (force_restore) {
@@ -1440,24 +1456,25 @@ static int set_controls(int card, snd_config_t *top, int doit)
                        goto _close;
        }
 
+       dbg("maxnumid=%i", maxnumid);
        /* check if we have additional controls in driver */
        /* in this case we should go through init procedure */
        if (!doit && maxnumid >= 0) {
-               snd_ctl_elem_id_t *id;
                snd_ctl_elem_info_t *info;
-               snd_ctl_elem_id_alloca(&id);
                snd_ctl_elem_info_alloca(&info);
                snd_ctl_elem_info_set_numid(info, maxnumid+1);
                if (snd_ctl_elem_info(handle, info) == 0) {
                        /* not very informative */
                        /* but value is used for check only */
                        err = -EAGAIN;
+                       dbg("more controls than maxnumid?");
                        goto _close;
                }
        }
 
  _close:
        snd_ctl_close(handle);
+       dbg("result code: %i", err);
        return err;
 }
 
@@ -1582,9 +1599,9 @@ int load_state(const char *file, const char *initfile, const char *cardname,
                        err = init(initfile, cardname1);
                        if (err < 0) {
                                finalerr = err;
-                               initfailed(card, "init");
+                               initfailed(card, "init", err);
                        }
-                       initfailed(card, "restore");
+                       initfailed(card, "restore", -ENOENT);
                }
                if (first)
                        finalerr = 0;   /* no cards, no error code */
@@ -1617,14 +1634,14 @@ int load_state(const char *file, const char *initfile, const char *cardname,
                                sprintf(cardname1, "%i", card);
                                err = init(initfile, cardname1);
                                if (err < 0) {
-                                       initfailed(card, "init");
+                                       initfailed(card, "init", err);
                                        finalerr = err;
                                }
                        }
                        if ((err = set_controls(card, config, 1))) {
                                if (!force_restore)
                                        finalerr = err;
-                               initfailed(card, "restore");
+                               initfailed(card, "restore", err);
                        }
                }
        } else {
@@ -1639,12 +1656,12 @@ int load_state(const char *file, const char *initfile, const char *cardname,
                if (do_init && set_controls(cardno, config, 0)) {
                        err = init(initfile, cardname);
                        if (err < 0) {
-                               initfailed(cardno, "init");
-                               return err;
+                               initfailed(cardno, "init", err);
+                               finalerr = err;
                        }
                }
                if ((err = set_controls(cardno, config, 1))) {
-                       initfailed(cardno, "restore");
+                       initfailed(cardno, "restore", err);
                        if (!force_restore)
                                return err;
                }
index ab4dbd4..a27eb6e 100644 (file)
@@ -79,19 +79,23 @@ size_t line_width(const char *buf, size_t bufsize, size_t pos)
        return count - pos;
 }
 
-void initfailed(int cardnumber, const char *reason)
+void initfailed(int cardnumber, const char *reason, int exitcode)
 {
        int fp;
        char *str;
+       char sexitcode[16];
 
        if (statefile == NULL)
                return;
        if (snd_card_get_name(cardnumber, &str) < 0)
                return;
+       sprintf(sexitcode, "%i", exitcode);
        fp = open(statefile, O_WRONLY|O_CREAT|O_APPEND, 0644);
        write(fp, str, strlen(str));
        write(fp, ":", 1);
        write(fp, reason, strlen(reason));
+       write(fp, ":", 1);
+       write(fp, sexitcode, strlen(sexitcode));
        write(fp, "\n", 1);
        close(fp);
        free(str);
diff --git a/alsaloop/Makefile.am b/alsaloop/Makefile.am
new file mode 100644 (file)
index 0000000..f76eafd
--- /dev/null
@@ -0,0 +1,14 @@
+INCLUDES = -I$(top_srcdir)/include
+LDADD = -lm
+CFLAGS += -D_GNU_SOURCE
+if HAVE_SAMPLERATE
+LDADD += -lsamplerate
+endif
+# LDFLAGS = -static
+# CFLAGS += -g -Wall
+
+bin_PROGRAMS = alsaloop
+alsaloop_SOURCES = alsaloop.c pcmjob.c control.c
+noinst_HEADERS = alsaloop.h
+man_MANS = alsaloop.1
+EXTRA_DIST = alsaloop.1
diff --git a/alsaloop/Makefile.in b/alsaloop/Makefile.in
new file mode 100644 (file)
index 0000000..929b56d
--- /dev/null
@@ -0,0 +1,590 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@HAVE_SAMPLERATE_TRUE@am__append_1 = -lsamplerate
+bin_PROGRAMS = alsaloop$(EXEEXT)
+subdir = alsaloop
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \
+       $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/aconfig.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_alsaloop_OBJECTS = alsaloop.$(OBJEXT) pcmjob.$(OBJEXT) \
+       control.$(OBJEXT)
+alsaloop_OBJECTS = $(am_alsaloop_OBJECTS)
+alsaloop_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+alsaloop_DEPENDENCIES = $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(alsaloop_SOURCES)
+DIST_SOURCES = $(alsaloop_SOURCES)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man_MANS)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@ -D_GNU_SOURCE
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURSESINC = @CURSESINC@
+CURSESLIB = @CURSESLIB@
+CURSES_CFLAGS = @CURSES_CFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBRT = @LIBRT@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SND_UTIL_MAJOR = @SND_UTIL_MAJOR@
+SND_UTIL_MINOR = @SND_UTIL_MINOR@
+SND_UTIL_SUBMINOR = @SND_UTIL_SUBMINOR@
+SND_UTIL_VERSION = @SND_UTIL_VERSION@
+STRIP = @STRIP@
+TESTSOUND = @TESTSOUND@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+ncurses5_config = @ncurses5_config@
+ncursesw5_config = @ncursesw5_config@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
+xmlto = @xmlto@
+INCLUDES = -I$(top_srcdir)/include
+LDADD = -lm $(am__append_1)
+alsaloop_SOURCES = alsaloop.c pcmjob.c control.c
+noinst_HEADERS = alsaloop.h
+man_MANS = alsaloop.1
+EXTRA_DIST = alsaloop.1
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign alsaloop/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign alsaloop/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+alsaloop$(EXEEXT): $(alsaloop_OBJECTS) $(alsaloop_DEPENDENCIES) 
+       @rm -f alsaloop$(EXEEXT)
+       $(LINK) $(alsaloop_OBJECTS) $(alsaloop_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsaloop.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/control.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcmjob.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+install-man1: $(man_MANS)
+       @$(NORMAL_INSTALL)
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
+       done; \
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
+uninstall-man1:
+       @$(NORMAL_UNINSTALL)
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(MANS) $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic ctags distclean distclean-compile \
+       distclean-generic distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-binPROGRAMS \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-man1 \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+       tags uninstall uninstall-am uninstall-binPROGRAMS \
+       uninstall-man uninstall-man1
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/alsaloop/alsaloop.1 b/alsaloop/alsaloop.1
new file mode 100644 (file)
index 0000000..048d1e0
--- /dev/null
@@ -0,0 +1,206 @@
+.TH ALSALOOP 1 "5 Aug 2010"
+.SH NAME
+alsaloop \- command-line PCM loopback
+.SH SYNOPSIS
+\fBalsaloop\fP [\fI\-option\fP] [\fIcmd\fP]
+.SH DESCRIPTION
+
+\fBalsaloop\fP allows create a PCM loopback between a PCM capture device
+and a PCM playback device.
+
+\fBalsaloop\fP supports multiple soundcards, adaptive clock synchronization,
+adaptive rate resampling using the samplerate library (if available in
+the system). Also, mixer controls can be redirected from one card to
+another (for example Master and PCM).
+
+.SH OPTIONS
+
+.TP
+\fI\-h\fP | \fI\-\-help\fP
+
+Prints the help information.
+
+.TP
+\fI\-g <file>\fP | \fI\-\-config=<file>\fP
+
+Use given configuration file. The syntax of this file is simple: one line
+contains the command line options for one job. The '#' means comment and
+rest of line is ignored. Example:
+
+  # First line - comment, second line - first job
+  -C hw:1,0 -P hw:0,0 -t 50000 -T 1
+  # Third line - comment, fourth line - second job
+  -C hw:1,1 -P hw:0,1 -t 40000 -T 2
+
+.TP
+\fI\-d\fP | \fI\-\-daemonize\fP
+
+Daemonize the main process and use syslog for messages.
+
+.TP
+\fI\-P <device>\fP | \fI\-\-pdevice=<device>\fP
+
+Use given playback device.
+
+.TP
+\fI\-C <device>\fP | \fI\-\-cdevice=<device>\fP
+
+Use given capture device.
+
+.TP
+\fI\-X <device>\fP | \fI\-\-pctl=<device>\fP
+
+Use given CTL device for playback.
+
+.TP
+\fI\-Y <device>\fP | \fI\-\-cctl=<device>\fP
+
+Use given CTL device for capture.
+
+.TP
+\fI\-l <latency>\fP | \fI\-\-latency=<frames>\fP
+
+Requested latency in frames.
+
+.TP
+\fI\-t <usec>\fP | \fI\-\-tlatency=<usec>\fP
+
+Requested latency in usec (1/1000000sec).
+
+.TP
+\fI\-f <format>\fP | \fI\-\-format=<format>\fP
+
+Format specification (usually S16_LE S32_LE). Use -h to list all formats.
+Default format is S16_LE.
+
+.TP
+\fI\-c <channels>\fP | \fI\-\-channels=<channels>\fP
+
+Channel count specification. Default value is 2.
+
+.TP
+\fI\-c <rate>\fP | \fI\-\-rate=<rate>\fP
+
+Rate specification. Default value is 48000 (Hz).
+
+.TP
+\fI\-n\fP | \fI\-\-resample\fP
+
+Allow rate resampling using alsa-lib.
+
+.TP
+\fI\-A <converter>\fP | \fI\-\-samplerate=<converter>\fP
+
+Use libsamplerate and choose a converter:
+
+  0 or sincbest     - best quality
+  1 or sincmedium   - medium quality
+  2 or sincfastest  - lowest quality
+  3 or zerohold     - hold zero samples
+  4 or linear       - worst quality - linear resampling
+  5 or auto         - choose best method
+
+.TP
+\fI\-B <size>\fP | \fI\-\-buffer=<size>\fP
+
+Buffer size in frames.
+
+.TP
+\fI\-E <size>\fP | \fI\-\-period=<size>\fP
+
+Period size in frames.
+
+.TP
+\fI\-s <secs>\fP | \fI\-\-seconds=<secs>\fP
+
+Duration of loop in seconds.
+
+.TP
+\fI\-b\fP | \fI\-\-nblock\fP
+
+Non-block mode (very early process wakeup). Eats more CPU.
+
+.TP
+\fI\-S <mode>\fP | \fI\-\-sync=<mode>\fP
+
+Sync mode specification for capture to playback stream:
+  0 or none       - do not touch the stream
+  1 or simple     - add or remove samples to keep
+                    both streams synchronized
+  2 or captshift  - use driver for the capture device
+                    (if supported) to compensate
+                    the rate shift
+  3 or playshift  - use driver for the playback device
+                    (if supported) to compensate
+                    the rate shift
+  4 or samplerate - use samplerate library to do rate resampling
+  5 or auto       - automatically selects the best method
+                    in this order: captshift, playshift,
+                    samplerate, simple
+
+.TP
+\fI\-T <num>\fP | \fI\-\-thread=<num>\fP
+
+Thread number (-1 means create a unique thread). All jobs with same
+thread numbers are run within one thread.
+
+.TP
+\fI\-m <mixid>\fP | \fI\-\-mixer=<midid>\fP
+
+Redirect mixer control from the playback card to the capture card. Format of
+\fImixid\fP is SRCID(PLAYBACK)[@DSTID(PLAYBACK)]:
+
+  "name='Master Playback Switch'@name='Another Switch'"
+  "name='PCM Playback Volume'"
+
+Known attributes:
+
+  name      - control ID name
+  index     - control ID index
+  device    - control ID device
+  subdevice - control ID subdevice
+  iface     - control ID interface
+  numid     - control ID numid
+
+.TP
+\fI\-O <ossmixid>\fP | \fI\-\-ossmixer=<midid>\fP
+
+Redirect mixer control from the OSS Mixer emulation layer (capture card)
+to the ALSA layer (capture card). Format of \fIossmixid\fP is
+ALSAID[,INDEX]@OSSID:
+
+  "Master@VOLUME"
+  "PCM,1@ALTPCM"
+
+Known OSS attributes:
+
+  VOLUME, BASS, TREBLE, SYNTH, PCM, SPEAKER, LINE, MIC, CD, IMIX, ALTPCM,
+  RECLEV, IGAIN, OGAIN, LINE1, LINE2, LINE3, DIGITAL1, DIGITAL2, DIGITAL3,
+  PHONEIN, PHONEOUT, VIDEO, RADIO, MONITOR
+
+.TP
+\fI\-v\fP | \fI\-\-verbose\fP
+
+Verbose mode. Use multiple times to increase verbosity.
+
+
+.TP
+\fI\-U\fP | \fI\-\-xrun\fP
+
+Verbose xrun profiling.
+
+.TP
+\fI\-W <timeout>\fP | \fI\-\-wake=<timeout>\fP
+
+Set process wake timeout.
+
+.SH EXAMPLES
+
+.TP
+\fBalsaloop \-C hw:0,0 \-P hw:1,0 \-t 50000\fR
+
+.SH BUGS
+None known.
+.SH AUTHOR
+\fBalsaloop\fP is by Jaroslav Kysela <perex@perex.cz>.
+This document is by Jaroslav Kysela <perex@perex.cz>.
diff --git a/alsaloop/alsaloop.c b/alsaloop/alsaloop.c
new file mode 100644 (file)
index 0000000..8710dd1
--- /dev/null
@@ -0,0 +1,923 @@
+/*
+ *  A simple PCM loopback utility with adaptive sample rate support
+ *
+ *     Author: Jaroslav Kysela <perex@perex.cz>
+ *
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sched.h>
+#include <errno.h>
+#include <getopt.h>
+#include <alsa/asoundlib.h>
+#include <sys/time.h>
+#include <math.h>
+#include <pthread.h>
+#include <syslog.h>
+#include <sys/signal.h>
+#include "alsaloop.h"
+
+struct loopback_thread {
+       int threaded;
+       pthread_t thread;
+       int exitcode;
+       struct loopback **loopbacks;
+       int loopbacks_count;
+       snd_output_t *output;
+};
+
+int quit = 0;
+int verbose = 0;
+int workarounds = 0;
+int daemonize = 0;
+int use_syslog = 0;
+struct loopback **loopbacks = NULL;
+int loopbacks_count = 0;
+char **my_argv = NULL;
+int my_argc = 0;
+struct loopback_thread *threads;
+int threads_count = 0;
+pthread_t main_job;
+int arg_default_xrun = 0;
+int arg_default_wake = 0;
+
+static void my_exit(struct loopback_thread *thread, int exitcode)
+{
+       int i;
+
+       for (i = 0; i < thread->loopbacks_count; i++)
+               pcmjob_done(thread->loopbacks[i]);
+       if (thread->threaded) {
+               thread->exitcode = exitcode;
+               pthread_exit(0);
+       }
+       exit(exitcode);
+}
+
+static int create_loopback_handle(struct loopback_handle **_handle,
+                                 const char *device,
+                                 const char *ctldev,
+                                 const char *id)
+{
+       char idbuf[1024];
+       struct loopback_handle *handle;
+
+       handle = calloc(1, sizeof(*handle));
+       if (handle == NULL)
+               return -ENOMEM;
+       if (device == NULL)
+               device = "hw:0,0";
+       handle->device = strdup(device);
+       if (handle->device == NULL)
+               return -ENOMEM;
+       if (ctldev) {
+               handle->ctldev = strdup(ctldev);
+               if (handle->ctldev == NULL)
+                       return -ENOMEM;
+       } else {
+               handle->ctldev = NULL;
+       }
+       snprintf(idbuf, sizeof(idbuf)-1, "%s %s", id, device);
+       idbuf[sizeof(idbuf)-1] = '\0';
+       handle->id = strdup(idbuf);
+       handle->access = SND_PCM_ACCESS_RW_INTERLEAVED;
+       handle->format = SND_PCM_FORMAT_S16_LE;
+       handle->rate = handle->rate_req = 48000;
+       handle->channels = 2;
+       handle->resample = 0;
+       *_handle = handle;
+       return 0;
+}
+
+static int create_loopback(struct loopback **_handle,
+                          struct loopback_handle *play,
+                          struct loopback_handle *capt,
+                          snd_output_t *output)
+{
+       struct loopback *handle;
+
+       handle = calloc(1, sizeof(*handle));
+       if (handle == NULL)
+               return -ENOMEM;
+       handle->play = play;
+       handle->capt = capt;
+       play->loopback = handle;
+       capt->loopback = handle;
+       handle->latency_req = 0;
+       handle->latency_reqtime = 10000;
+       handle->loop_time = ~0UL;
+       handle->loop_limit = ~0ULL;
+       handle->output = output;
+       handle->state = output;
+#ifdef USE_SAMPLERATE
+       handle->src_enable = 1;
+       handle->src_converter_type = SRC_SINC_BEST_QUALITY;
+#endif
+       *_handle = handle;
+       return 0;
+}
+
+static void set_loop_time(struct loopback *loop, unsigned long loop_time)
+{
+       loop->loop_time = loop_time;
+       loop->loop_limit = loop->capt->rate * loop_time;
+}
+
+static void setscheduler(void)
+{
+       struct sched_param sched_param;
+
+       if (sched_getparam(0, &sched_param) < 0) {
+               logit(LOG_WARNING, "Scheduler getparam failed.\n");
+               return;
+       }
+       sched_param.sched_priority = sched_get_priority_max(SCHED_RR);
+       if (!sched_setscheduler(0, SCHED_RR, &sched_param)) {
+               if (verbose)
+                       logit(LOG_WARNING, "Scheduler set to Round Robin with priority %i\n", sched_param.sched_priority);
+               return;
+       }
+       if (verbose)
+               logit(LOG_INFO, "!!!Scheduler set to Round Robin with priority %i FAILED!\n", sched_param.sched_priority);
+}
+
+void help(void)
+{
+       int k;
+       printf(
+"Usage: alsaloop [OPTION]...\n\n"
+"-h,--help      help\n"
+"-g,--config    configuration file (one line = one job specified)\n"
+"-d,--daemonize daemonize the main process and use syslog for errors\n"
+"-P,--pdevice   playback device\n"
+"-C,--cdevice   capture device\n"
+"-X,--pctl      playback ctl device\n"
+"-Y,--cctl      capture ctl device\n"
+"-l,--latency   requested latency in frames\n"
+"-t,--tlatency  requested latency in usec (1/1000000sec)\n"
+"-f,--format    sample format\n"
+"-c,--channels  channels\n"
+"-r,--rate      rate\n"
+"-n,--resample  resample in alsa-lib\n"
+"-A,--samplerate use converter (0=sincbest,1=sincmedium,2=sincfastest,\n"
+"                               3=zerohold,4=linear)\n"
+"-B,--buffer    buffer size in frames\n"
+"-E,--period    period size in frames\n"
+"-s,--seconds   duration of loop in seconds\n"
+"-b,--nblock    non-block mode (very early process wakeup)\n"
+"-S,--sync      sync mode(0=none,1=simple,2=captshift,3=playshift,4=samplerate,\n"
+"                         5=auto)\n"
+"-a,--slave     stream parameters slave mode (0=auto, 1=on, 2=off)\n"
+"-T,--thread    thread number (-1 = create unique)\n"
+"-m,--mixer    redirect mixer, argument is:\n"
+"                  SRC_SLAVE_ID(PLAYBACK)[@DST_SLAVE_ID(CAPTURE)]\n"
+"-O,--ossmixer rescan and redirect oss mixer, argument is:\n"
+"                  ALSA_ID@OSS_ID  (for example: \"Master@VOLUME\")\n"
+"-e,--effect    apply an effect (bandpass filter sweep)\n"
+"-v,--verbose   verbose mode (more -v means more verbose)\n"
+"-w,--workaround use workaround (serialopen)\n"
+"-U,--xrun      xrun profiling\n"
+"-W,--wake      process wake timeout in ms\n"
+);
+       printf("\nRecognized sample formats are:");
+       for (k = 0; k < SND_PCM_FORMAT_LAST; ++k) {
+               const char *s = snd_pcm_format_name(k);
+               if (s)
+                       printf(" %s", s);
+       }
+       printf("\n\n");
+       printf(
+"Tip #1 (usable 500ms latency, good CPU usage, superb xrun prevention):\n"
+"  alsaloop -t 500000\n"
+"Tip #2 (superb 1ms latency, but heavy CPU usage):\n"
+"  alsaloop -t 1000\n"
+);
+}
+
+static long timediff(struct timeval t1, struct timeval t2)
+{
+       signed long l;
+
+       t1.tv_sec -= t2.tv_sec;
+       l = (signed long) t1.tv_usec - (signed long) t2.tv_usec;
+       if (l < 0) {
+               t1.tv_sec--;
+               l = 1000000 + l;
+               l %= 1000000;
+       }
+       return (t1.tv_sec * 1000000) + l;
+}
+
+static void add_loop(struct loopback *loop)
+{
+       loopbacks = realloc(loopbacks, (loopbacks_count + 1) *
+                                               sizeof(struct loopback *));
+       if (loopbacks == NULL) {
+               logit(LOG_CRIT, "No enough memory\n");
+               exit(EXIT_FAILURE);
+       }
+       loopbacks[loopbacks_count++] = loop;
+}
+
+static int init_mixer_control(struct loopback_control *control,
+                             char *id)
+{
+       int err;
+
+       err = snd_ctl_elem_id_malloc(&control->id);
+       if (err < 0)
+               return err;
+       err = snd_ctl_elem_info_malloc(&control->info);
+       if (err < 0)
+               return err;
+       err = snd_ctl_elem_value_malloc(&control->value);
+       if (err < 0)
+               return err;
+       err = control_parse_id(id, control->id);
+       if (err < 0)
+               return err;
+       return 0;
+}
+
+static int add_mixers(struct loopback *loop,
+                     char **mixers,
+                     int mixers_count)
+{
+       struct loopback_mixer *mixer, *last = NULL;
+       char *str1;
+       int err;
+
+       while (mixers_count > 0) {
+               mixer = calloc(1, sizeof(*mixer));
+               if (mixer == NULL)
+                       return -ENOMEM;
+               if (last)
+                       last->next = mixer;
+               else
+                       loop->controls = mixer;
+               last = mixer;
+               str1 = strchr(*mixers, '@');
+               if (str1)
+                       *str1 = '\0';
+               err = init_mixer_control(&mixer->src, *mixers);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Wrong mixer control ID syntax '%s'\n", *mixers);
+                       return -EINVAL;
+               }
+               err = init_mixer_control(&mixer->dst, str1 ? str1 + 1 : *mixers);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Wrong mixer control ID syntax '%s'\n", str1 ? str1 + 1 : *mixers);
+                       return -EINVAL;
+               }
+               if (str1)
+                       *str1 = '@';
+               mixers++;
+               mixers_count--;
+       }
+       return 0;
+}
+
+static int add_oss_mixers(struct loopback *loop,
+                         char **mixers,
+                         int mixers_count)
+{
+       struct loopback_ossmixer *mixer, *last = NULL;
+       char *str1, *str2;
+
+       while (mixers_count > 0) {
+               mixer = calloc(1, sizeof(*mixer));
+               if (mixer == NULL)
+                       return -ENOMEM;
+               if (last)
+                       last->next = mixer;
+               else
+                       loop->oss_controls = mixer;
+               last = mixer;
+               str1 = strchr(*mixers, ',');
+               if (str1)
+                       *str1 = '\0';
+               str2 = strchr(str1 ? str1 + 1 : *mixers, '@');
+               if (str2)
+                       *str2 = '\0';
+               mixer->alsa_id = strdup(*mixers);
+               if (str1)
+                       mixer->alsa_index = atoi(str1);
+               mixer->oss_id = strdup(str2 ? str2 + 1 : *mixers);
+               if (mixer->alsa_id == NULL || mixer->oss_id == NULL) {
+                       logit(LOG_CRIT, "Not enough memory");
+                       return -ENOMEM;
+               }
+               if (str1)
+                       *str1 = ',';
+               if (str2)
+                       *str2 = ',';
+               mixers++;
+               mixers_count--;
+       }
+       return 0;
+}
+
+static int parse_config_file(const char *file, snd_output_t *output);
+
+static int parse_config(int argc, char *argv[], snd_output_t *output,
+                       int cmdline)
+{
+       struct option long_option[] =
+       {
+               {"help", 0, NULL, 'h'},
+               {"config", 1, NULL, 'g'},
+               {"daemonize", 0, NULL, 'd'},
+               {"pdevice", 1, NULL, 'P'},
+               {"cdevice", 1, NULL, 'C'},
+               {"pctl", 1, NULL, 'X'},
+               {"cctl", 1, NULL, 'Y'},
+               {"latency", 1, NULL, 'l'},
+               {"tlatency", 1, NULL, 't'},
+               {"format", 1, NULL, 'f'},
+               {"channels", 1, NULL, 'c'},
+               {"rate", 1, NULL, 'r'},
+               {"buffer", 1, NULL, 'B'},
+               {"period", 1, NULL, 'E'},
+               {"seconds", 1, NULL, 's'},
+               {"nblock", 0, NULL, 'b'},
+               {"effect", 0, NULL, 'e'},
+               {"verbose", 0, NULL, 'v'},
+               {"resample", 0, NULL, 'n'},
+               {"samplerate", 1, NULL, 'A'},
+               {"sync", 1, NULL, 'S'},
+               {"slave", 1, NULL, 'a'},
+               {"thread", 1, NULL, 'T'},
+               {"mixer", 1, NULL, 'm'},
+               {"ossmixer", 1, NULL, 'O'},
+               {"workaround", 1, NULL, 'w'},
+               {"xrun", 0, NULL, 'U'},
+               {NULL, 0, NULL, 0},
+       };
+       int err, morehelp;
+       char *arg_config = NULL;
+       char *arg_pdevice = NULL;
+       char *arg_cdevice = NULL;
+       char *arg_pctl = NULL;
+       char *arg_cctl = NULL;
+       unsigned int arg_latency_req = 0;
+       unsigned int arg_latency_reqtime = 10000;
+       snd_pcm_format_t arg_format = SND_PCM_FORMAT_S16_LE;
+       unsigned int arg_channels = 2;
+       unsigned int arg_rate = 48000;
+       snd_pcm_uframes_t arg_buffer_size = 0;
+       snd_pcm_uframes_t arg_period_size = 0;
+       unsigned long arg_loop_time = ~0UL;
+       int arg_nblock = 0;
+       int arg_effect = 0;
+       int arg_resample = 0;
+       int arg_samplerate = SRC_SINC_FASTEST + 1;
+       int arg_sync = SYNC_TYPE_AUTO;
+       int arg_slave = SLAVE_TYPE_AUTO;
+       int arg_thread = 0;
+       struct loopback *loop = NULL;
+       char *arg_mixers[MAX_MIXERS];
+       int arg_mixers_count = 0;
+       char *arg_ossmixers[MAX_MIXERS];
+       int arg_ossmixers_count = 0;
+       int arg_xrun = arg_default_xrun;
+       int arg_wake = arg_default_wake;
+
+       morehelp = 0;
+       while (1) {
+               int c;
+               if ((c = getopt_long(argc, argv,
+                               "hdg:P:C:X:Y:l:t:F:f:c:r:s:benvA:S:a:m:T:O:w:UW:",
+                               long_option, NULL)) < 0)
+                       break;
+               switch (c) {
+               case 'h':
+                       morehelp++;
+                       break;
+               case 'g':
+                       arg_config = strdup(optarg);
+                       break;
+               case 'd':
+                       daemonize = 1;
+                       use_syslog = 1;
+                       openlog("alsaloop", LOG_NDELAY|LOG_PID, LOG_DAEMON);
+                       break;
+               case 'P':
+                       arg_pdevice = strdup(optarg);
+                       break;
+               case 'C':
+                       arg_cdevice = strdup(optarg);
+                       break;
+               case 'X':
+                       arg_pctl = strdup(optarg);
+                       break;
+               case 'Y':
+                       arg_cctl = strdup(optarg);
+                       break;
+               case 'l':
+                       err = atoi(optarg);
+                       arg_latency_req = err >= 4 ? err : 4;
+                       break;
+               case 't':
+                       err = atoi(optarg);
+                       arg_latency_reqtime = err >= 500 ? err : 500;
+                       break;
+               case 'f':
+                       arg_format = snd_pcm_format_value(optarg);
+                       if (arg_format == SND_PCM_FORMAT_UNKNOWN) {
+                               logit(LOG_WARNING, "Unknown format, setting to default S16_LE\n");
+                               arg_format = SND_PCM_FORMAT_S16_LE;
+                       }
+                       break;
+               case 'c':
+                       err = atoi(optarg);
+                       arg_channels = err >= 1 && err < 1024 ? err : 1;
+                       break;
+               case 'r':
+                       err = atoi(optarg);
+                       arg_rate = err >= 4000 && err < 200000 ? err : 44100;
+                       break;
+               case 'B':
+                       err = atoi(optarg);
+                       arg_buffer_size = err >= 32 && err < 200000 ? err : 0;
+                       break;
+               case 'E':
+                       err = atoi(optarg);
+                       arg_period_size = err >= 32 && err < 200000 ? err : 0;
+                       break;
+               case 's':
+                       err = atoi(optarg);
+                       arg_loop_time = err >= 1 && err <= 100000 ? err : 30;
+                       break;
+               case 'b':
+                       arg_nblock = 1;
+                       break;
+               case 'e':
+                       arg_effect = 1;
+                       break;
+               case 'n':
+                       arg_resample = 1;
+                       break;
+               case 'A':
+                       if (strcasecmp(optarg, "sincbest") == 0)
+                               arg_samplerate = SRC_SINC_BEST_QUALITY;
+                       else if (strcasecmp(optarg, "sincmedium") == 0)
+                               arg_samplerate = SRC_SINC_MEDIUM_QUALITY;
+                       else if (strcasecmp(optarg, "sincfastest") == 0)
+                               arg_samplerate = SRC_SINC_FASTEST;
+                       else if (strcasecmp(optarg, "zerohold") == 0)
+                               arg_samplerate = SRC_ZERO_ORDER_HOLD;
+                       else if (strcasecmp(optarg, "linear") == 0)
+                               arg_samplerate = SRC_LINEAR;
+                       else
+                               arg_samplerate = atoi(optarg);
+                       if (arg_samplerate < 0 || arg_samplerate > SRC_LINEAR)
+                               arg_sync = SRC_SINC_FASTEST;
+                       arg_samplerate += 1;
+                       break;
+               case 'S':
+                       if (strcasecmp(optarg, "samplerate") == 0)
+                               arg_sync = SYNC_TYPE_SAMPLERATE;
+                       else if (optarg[0] == 'n')
+                               arg_sync = SYNC_TYPE_NONE;
+                       else if (optarg[0] == 's')
+                               arg_sync = SYNC_TYPE_SIMPLE;
+                       else if (optarg[0] == 'c')
+                               arg_sync = SYNC_TYPE_CAPTRATESHIFT;
+                       else if (optarg[0] == 'p')
+                               arg_sync = SYNC_TYPE_PLAYRATESHIFT;
+                       else if (optarg[0] == 'r')
+                               arg_sync = SYNC_TYPE_SAMPLERATE;
+                       else
+                               arg_sync = atoi(optarg);
+                       if (arg_sync < 0 || arg_sync > SYNC_TYPE_LAST)
+                               arg_sync = SYNC_TYPE_AUTO;
+                       break;
+               case 'a':
+                       if (optarg[0] == 'a')
+                               arg_slave = SLAVE_TYPE_AUTO;
+                       else if (strcasecmp(optarg, "on") == 0)
+                               arg_slave = SLAVE_TYPE_ON;
+                       else if (strcasecmp(optarg, "off") == 0)
+                               arg_slave = SLAVE_TYPE_OFF;
+                       else
+                               arg_slave = atoi(optarg);
+                       if (arg_slave < 0 || arg_slave > SLAVE_TYPE_LAST)
+                               arg_slave = SLAVE_TYPE_AUTO;
+                       break;
+               case 'T':
+                       arg_thread = atoi(optarg);
+                       if (arg_thread < 0)
+                               arg_thread = 10000000 + loopbacks_count;
+                       break;
+               case 'm':
+                       if (arg_mixers_count >= MAX_MIXERS) {
+                               logit(LOG_CRIT, "Maximum redirected mixer controls reached (max %i)\n", (int)MAX_MIXERS);
+                               exit(EXIT_FAILURE);
+                       }
+                       arg_mixers[arg_mixers_count++] = optarg;
+                       break;
+               case 'O':
+                       if (arg_ossmixers_count >= MAX_MIXERS) {
+                               logit(LOG_CRIT, "Maximum redirected mixer controls reached (max %i)\n", (int)MAX_MIXERS);
+                               exit(EXIT_FAILURE);
+                       }
+                       arg_ossmixers[arg_ossmixers_count++] = optarg;
+                       break;
+               case 'v':
+                       verbose++;
+                       break;
+               case 'w':
+                       if (strcasecmp(optarg, "serialopen") == 0)
+                               workarounds |= WORKAROUND_SERIALOPEN;
+                       break;
+               case 'U':
+                       arg_xrun = 1;
+                       if (cmdline)
+                               arg_default_xrun = 1;
+                       break;
+               case 'W':
+                       arg_wake = atoi(optarg);
+                       if (cmdline)
+                               arg_default_wake = arg_wake;
+                       break;
+               }
+       }
+
+       if (morehelp) {
+               help();
+               exit(EXIT_SUCCESS);
+       }
+       if (arg_config == NULL) {
+               struct loopback_handle *play;
+               struct loopback_handle *capt;
+               err = create_loopback_handle(&play, arg_pdevice, arg_pctl, "playback");
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to create playback handle.\n");
+                       exit(EXIT_FAILURE);
+               }
+               err = create_loopback_handle(&capt, arg_cdevice, arg_cctl, "capture");
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to create capture handle.\n");
+                       exit(EXIT_FAILURE);
+               }
+               err = create_loopback(&loop, play, capt, output);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to create loopback handle.\n");
+                       exit(EXIT_FAILURE);
+               }
+               play->format = capt->format = arg_format;
+               play->rate = play->rate_req = capt->rate = capt->rate_req = arg_rate;
+               play->channels = capt->channels = arg_channels;
+               play->buffer_size_req = capt->buffer_size_req = arg_buffer_size;
+               play->period_size_req = capt->period_size_req = arg_period_size;
+               play->resample = capt->resample = arg_resample;
+               play->nblock = capt->nblock = arg_nblock ? 1 : 0;
+               loop->latency_req = arg_latency_req;
+               loop->latency_reqtime = arg_latency_reqtime;
+               loop->sync = arg_sync;
+               loop->slave = arg_slave;
+               loop->thread = arg_thread;
+               loop->xrun = arg_xrun;
+               loop->wake = arg_wake;
+               err = add_mixers(loop, arg_mixers, arg_mixers_count);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to add mixer controls.\n");
+                       exit(EXIT_FAILURE);
+               }
+               err = add_oss_mixers(loop, arg_ossmixers, arg_ossmixers_count);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to add ossmixer controls.\n");
+                       exit(EXIT_FAILURE);
+               }
+#ifdef USE_SAMPLERATE
+               loop->src_enable = arg_samplerate > 0;
+               if (loop->src_enable)
+                       loop->src_converter_type = arg_samplerate - 1;
+#else
+               if (arg_samplerate > 0) {
+                       logit(LOG_CRIT, "No libsamplerate support.\n");
+                       exit(EXIT_FAILURE);
+               }
+#endif
+               set_loop_time(loop, arg_loop_time);
+               add_loop(loop);
+               return 0;
+       }
+
+       return parse_config_file(arg_config, output);
+}
+
+static int parse_config_file(const char *file, snd_output_t *output)
+{
+       FILE *fp;
+       char line[2048], word[2048];
+       char *str, *ptr;
+       int argc, c, err = 0;
+       char **argv;
+
+       fp = fopen(file, "r");
+       if (fp == NULL) {
+               logit(LOG_CRIT, "Unable to open file '%s': %s\n", file, strerror(errno));
+               return -EIO;
+       }
+       while (!feof(fp)) {
+               if (fgets(line, sizeof(line)-1, fp) == NULL)
+                       break;
+               line[sizeof(line)-1] = '\0';
+               my_argv = realloc(my_argv, my_argc + MAX_ARGS * sizeof(char *));
+               if (my_argv == NULL)
+                       return -ENOMEM;
+               argv = my_argv + my_argc;
+               argc = 0;
+               argv[argc++] = strdup("<prog>");
+               my_argc++;
+               str = line;
+               while (*str) {
+                       ptr = word;
+                       while (*str && (*str == ' ' || *str < ' '))
+                               str++;
+                       if (*str == '#')
+                               goto __next;
+                       if (*str == '\'' || *str == '\"') {
+                               c = *str++;
+                               while (*str && *str != c)
+                                       *ptr++ = *str++;
+                               if (*str == c)
+                                       str++;
+                       } else {
+                               while (*str && *str != ' ' && *str != '\t')
+                                       *ptr++ = *str++;
+                       }
+                       if (ptr != word) {
+                               if (*(ptr-1) == '\n')
+                                       ptr--;
+                               *ptr = '\0';
+                               if (argc >= MAX_ARGS) {
+                                       logit(LOG_CRIT, "Too many arguments.");
+                                       goto __error;
+                               }
+                               argv[argc++] = strdup(word);
+                               my_argc++;
+                       }
+               }
+               /* erase runtime variables for getopt */
+               optarg = NULL;
+               optind = opterr = 1;
+               optopt = '?';
+
+               err = parse_config(argc, argv, output, 0);
+             __next:
+               if (err < 0)
+                       break;
+               err = 0;
+       }
+      __error:
+       fclose(fp);
+
+       return err;
+}
+
+static void thread_job1(void *_data)
+{
+       struct loopback_thread *thread = _data;
+       snd_output_t *output = thread->output;
+       struct pollfd *pfds = NULL;
+       int pfds_count = 0;
+       int i, j, err, wake = 1000000;
+
+       setscheduler();
+
+       for (i = 0; i < thread->loopbacks_count; i++) {
+               err = pcmjob_init(thread->loopbacks[i]);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Loopback initialization failure.\n");
+                       my_exit(thread, EXIT_FAILURE);
+               }
+       }
+       for (i = 0; i < thread->loopbacks_count; i++) {
+               err = pcmjob_start(thread->loopbacks[i]);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Loopback start failure.\n");
+                       my_exit(thread, EXIT_FAILURE);
+               }
+               pfds_count += thread->loopbacks[i]->pollfd_count;
+               j = thread->loopbacks[i]->wake;
+               if (j > 0 && j < wake)
+                       wake = j;
+       }
+       if (wake >= 1000000)
+               wake = -1;
+       pfds = calloc(pfds_count, sizeof(struct pollfd));
+       if (pfds == NULL || pfds_count <= 0) {
+               logit(LOG_CRIT, "Poll FDs allocation failed.\n");
+               my_exit(thread, EXIT_FAILURE);
+       }
+       while (!quit) {
+               struct timeval tv1, tv2;
+               for (i = j = 0; i < thread->loopbacks_count; i++) {
+                       err = pcmjob_pollfds_init(thread->loopbacks[i], &pfds[j]);
+                       if (err < 0) {
+                               logit(LOG_CRIT, "Poll FD initialization failed.\n");
+                               my_exit(thread, EXIT_FAILURE);
+                       }
+                       j += err;
+               }
+               if (verbose > 10)
+                       gettimeofday(&tv1, NULL);
+               err = poll(pfds, j, wake);
+               if (err < 0)
+                       err = -errno;
+               if (verbose > 10) {
+                       gettimeofday(&tv2, NULL);
+                       snd_output_printf(output, "pool took %lius\n", timediff(tv2, tv1));
+               }
+               if (err < 0) {
+                       if (err == -EINTR || err == -ERESTART)
+                               continue;
+                       logit(LOG_CRIT, "Poll failed: %s\n", strerror(-err));
+                       my_exit(thread, EXIT_FAILURE);
+               }
+               for (i = j = 0; i < thread->loopbacks_count; i++) {
+                       struct loopback *loop = thread->loopbacks[i];
+                       if (j < loop->active_pollfd_count) {
+                               err = pcmjob_pollfds_handle(loop, &pfds[j]);
+                               if (err < 0) {
+                                       logit(LOG_CRIT, "pcmjob failed.\n");
+                                       exit(EXIT_FAILURE);
+                               }
+                       }
+                       j += loop->active_pollfd_count;
+               }
+       }
+
+       my_exit(thread, EXIT_SUCCESS);
+}
+
+static void thread_job(struct loopback_thread *thread)
+{
+       if (!thread->threaded) {
+               thread_job1(thread);
+               return;
+       }
+       pthread_create(&thread->thread, NULL, (void *) &thread_job1,
+                                             (void *) thread);
+}
+
+static void send_to_all(int sig)
+{
+       struct loopback_thread *thread;
+       int i;
+
+       for (i = 0; i < threads_count; i++) {
+               thread = &threads[i];
+               if (thread->threaded)
+                       pthread_kill(thread->thread, sig);
+       }
+}
+
+static void signal_handler(int sig)
+{
+       quit = 1;
+       send_to_all(SIGUSR2);
+}
+
+static void signal_handler_state(int sig)
+{
+       pthread_t self = pthread_self();
+       struct loopback_thread *thread;
+       int i, j;
+
+       if (pthread_equal(main_job, self))
+               send_to_all(SIGUSR1);
+       for (i = 0; i < threads_count; i++) {
+               thread = &threads[i];
+               if (thread->thread == self) {
+                       for (j = 0; j < thread->loopbacks_count; j++)
+                               pcmjob_state(thread->loopbacks[j]);
+               }
+       }
+       signal(sig, signal_handler_state);
+}
+
+static void signal_handler_ignore(int sig)
+{
+       signal(sig, signal_handler_ignore);
+}
+
+int main(int argc, char *argv[])
+{
+       snd_output_t *output;
+       int i, j, k, l, err;
+
+       err = snd_output_stdio_attach(&output, stdout, 0);
+       if (err < 0) {
+               logit(LOG_CRIT, "Output failed: %s\n", snd_strerror(err));
+               exit(EXIT_FAILURE);
+       }
+       err = parse_config(argc, argv, output, 1);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to parse arguments or configuration...\n");
+               exit(EXIT_FAILURE);
+       }
+       while (my_argc > 0)
+               free(my_argv[--my_argc]);
+       free(my_argv);
+
+       if (loopbacks_count <= 0) {
+               logit(LOG_CRIT, "No loopback defined...\n");
+               exit(EXIT_FAILURE);
+       }
+
+       if (daemonize) {
+               if (daemon(0, 0) < 0) {
+                       logit(LOG_CRIT, "daemon() failed: %s\n", strerror(errno));
+                       exit(EXIT_FAILURE);
+               }
+               i = fork();
+               if (i < 0) {
+                       logit(LOG_CRIT, "fork() failed: %s\n", strerror(errno));
+                       exit(EXIT_FAILURE);
+               }
+               if (i > 0) {
+                       /* wait(&i); */
+                       exit(EXIT_SUCCESS);
+               }
+       }
+
+       /* we must sort thread IDs */
+       j = -1;
+       do {
+               k = 0x7fffffff;
+               for (i = 0; i < loopbacks_count; i++) {
+                       if (loopbacks[i]->thread < k &&
+                           loopbacks[i]->thread > j)
+                               k = loopbacks[i]->thread;
+               }
+               j++;
+               for (i = 0; i < loopbacks_count; i++) {
+                       if (loopbacks[i]->thread == k)
+                               loopbacks[i]->thread = j;
+               }
+       } while (k != 0x7fffffff);
+       /* fix maximum thread id */
+       for (i = 0, j = -1; i < loopbacks_count; i++) {
+               if (loopbacks[i]->thread > j)
+                       j = loopbacks[i]->thread;
+       }
+       j += 1;
+       threads = calloc(1, sizeof(struct loopback_thread) * j);
+       if (threads == NULL) {
+               logit(LOG_CRIT, "No enough memory\n");
+               exit(EXIT_FAILURE);
+       }
+       /* sort all threads */
+       for (k = 0; k < j; k++) {
+               for (i = l = 0; i < loopbacks_count; i++)
+                       if (loopbacks[i]->thread == k)
+                               l++;
+               threads[k].loopbacks = malloc(l * sizeof(struct loopback *));
+               threads[k].loopbacks_count = l;
+               threads[k].output = output;
+               threads[k].threaded = j > 1;
+               for (i = l = 0; i < loopbacks_count; i++)
+                       if (loopbacks[i]->thread == k)
+                               threads[k].loopbacks[l++] = loopbacks[i];
+       }
+       threads_count = j;
+       main_job = pthread_self();
+       signal(SIGINT, signal_handler);
+       signal(SIGTERM, signal_handler);
+       signal(SIGABRT, signal_handler);
+       signal(SIGUSR1, signal_handler_state);
+       signal(SIGUSR2, signal_handler_ignore);
+
+       for (k = 0; k < threads_count; k++)
+               thread_job(&threads[k]);
+
+       if (j > 1) {
+               for (k = 0; k < threads_count; k++)
+                       pthread_join(threads[k].thread, NULL);
+       }
+
+       if (use_syslog)
+               closelog();
+       exit(EXIT_SUCCESS);
+}
diff --git a/alsaloop/alsaloop.h b/alsaloop/alsaloop.h
new file mode 100644 (file)
index 0000000..8dc445a
--- /dev/null
@@ -0,0 +1,218 @@
+/*
+ *  A simple PCM loopback utility
+ *  Copyright (c) 2010 by Jaroslav Kysela <perex@perex.cz>
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *
+ */
+
+#include "aconfig.h"
+#ifdef HAVE_SAMPLERATE_H
+#define USE_SAMPLERATE
+#include <samplerate.h>
+#else
+enum {
+       SRC_SINC_BEST_QUALITY   = 0,
+       SRC_SINC_MEDIUM_QUALITY = 1,
+       SRC_SINC_FASTEST        = 2,
+       SRC_ZERO_ORDER_HOLD     = 3,
+       SRC_LINEAR              = 4
+};
+#endif
+
+#define MAX_ARGS       128
+#define MAX_MIXERS     64
+
+#if 0
+#define FILE_PWRITE "/tmp/alsaloop.praw"
+#define FILE_CWRITE "/tmp/alsaloop.craw"
+#endif
+
+#define WORKAROUND_SERIALOPEN  (1<<0)
+
+typedef enum _sync_type {
+       SYNC_TYPE_NONE = 0,
+       SYNC_TYPE_SIMPLE,       /* add or remove samples */
+       SYNC_TYPE_CAPTRATESHIFT,
+       SYNC_TYPE_PLAYRATESHIFT,
+       SYNC_TYPE_SAMPLERATE,
+       SYNC_TYPE_AUTO,         /* order: CAPTRATESHIFT, PLAYRATESHIFT, */
+                               /*        SAMPLERATE, SIMPLE */
+       SYNC_TYPE_LAST = SYNC_TYPE_AUTO
+} sync_type_t;
+
+typedef enum _slave_type {
+       SLAVE_TYPE_AUTO = 0,
+       SLAVE_TYPE_ON = 1,
+       SLAVE_TYPE_OFF = 2,
+       SLAVE_TYPE_LAST = SLAVE_TYPE_OFF
+} slave_type_t;
+
+struct loopback_control {
+       snd_ctl_elem_id_t *id;
+       snd_ctl_elem_info_t *info;
+       snd_ctl_elem_value_t *value;
+};
+
+struct loopback_mixer {
+       unsigned int skip:1;
+       struct loopback_control src;
+       struct loopback_control dst;
+       struct loopback_mixer *next;
+};
+
+struct loopback_ossmixer {
+       unsigned int skip:1;
+       const char *alsa_id;
+       int alsa_index;
+       const char *oss_id;
+       struct loopback_ossmixer *next;
+};
+
+struct loopback_handle {
+       struct loopback *loopback;
+       char *device;
+       char *ctldev;
+       char *id;
+       int card_number;
+       snd_pcm_t *handle;
+       snd_pcm_access_t access;
+       snd_pcm_format_t format;
+       unsigned int rate;
+       unsigned int rate_req;
+       unsigned int channels;
+       unsigned int buffer_size;
+       unsigned int period_size;
+       snd_pcm_uframes_t avail_min;
+       unsigned int buffer_size_req;
+       unsigned int period_size_req;
+       unsigned int frame_size;
+       unsigned int resample:1;        /* do resample */
+       unsigned int nblock:1;          /* do block (period size) transfers */
+       unsigned int xrun_pending:1;
+       unsigned int pollfd_count;
+       /* I/O job */
+       char *buf;                      /* I/O buffer */
+       snd_pcm_uframes_t buf_pos;      /* I/O position */
+       snd_pcm_uframes_t buf_count;    /* filled samples */
+       snd_pcm_uframes_t buf_size;     /* buffer size in frames */
+       snd_pcm_uframes_t buf_over;     /* capture buffer overflow */
+       /* statistics */
+       snd_pcm_uframes_t max;
+       unsigned long long counter;
+       unsigned long sync_point;       /* in samples */
+       snd_pcm_sframes_t last_delay;
+       double pitch;
+       snd_pcm_uframes_t total_queued;
+       /* control */
+       snd_ctl_t *ctl;
+       unsigned int ctl_pollfd_count;
+       snd_ctl_elem_value_t *ctl_notify;
+       snd_ctl_elem_value_t *ctl_rate_shift;
+       snd_ctl_elem_value_t *ctl_active;
+       snd_ctl_elem_value_t *ctl_format;
+       snd_ctl_elem_value_t *ctl_rate;
+       snd_ctl_elem_value_t *ctl_channels;
+};
+
+struct loopback {
+       char *id;
+       struct loopback_handle *capt;
+       struct loopback_handle *play;
+       snd_pcm_uframes_t latency;      /* final latency in frames */
+       unsigned int latency_req;       /* in frames */
+       unsigned int latency_reqtime;   /* in us */
+       unsigned long loop_time;        /* ~0 = unlimited (in seconds) */
+       unsigned long long loop_limit;  /* ~0 = unlimited (in frames) */
+       snd_output_t *output;
+       snd_output_t *state;
+       int pollfd_count;
+       int active_pollfd_count;
+       unsigned int linked:1;          /* linked streams */
+       unsigned int reinit:1;
+       unsigned int running:1;
+       unsigned int stop_pending:1;
+       snd_pcm_uframes_t stop_count;
+       sync_type_t sync;               /* type of sync */
+       slave_type_t slave;
+       int thread;                     /* thread number */
+       unsigned int wake;
+       /* statistics */
+       double pitch;
+       double pitch_delta;
+       snd_pcm_sframes_t pitch_diff;
+       snd_pcm_sframes_t pitch_diff_min;
+       snd_pcm_sframes_t pitch_diff_max;
+       unsigned int total_queued_count;
+       snd_timestamp_t tstamp_start;
+       snd_timestamp_t tstamp_end;
+       /* xrun profiling */
+       unsigned int xrun:1;            /* xrun profiling */
+       snd_timestamp_t xrun_last_update;
+       snd_timestamp_t xrun_last_wake0;
+       snd_timestamp_t xrun_last_wake;
+       snd_timestamp_t xrun_last_check0;
+       snd_timestamp_t xrun_last_check;
+       snd_pcm_sframes_t xrun_last_pdelay;
+       snd_pcm_sframes_t xrun_last_cdelay;
+       snd_pcm_uframes_t xrun_buf_pcount;
+       snd_pcm_uframes_t xrun_buf_ccount;
+       unsigned int xrun_out_frames;
+       long xrun_max_proctime;
+       double xrun_max_missing;
+       /* control mixer */
+       struct loopback_mixer *controls;
+       struct loopback_ossmixer *oss_controls;
+       /* sample rate */
+       unsigned int use_samplerate:1;
+#ifdef USE_SAMPLERATE
+       unsigned int src_enable:1;
+       int src_converter_type;
+       SRC_STATE *src_state;
+       SRC_DATA src_data;
+       unsigned int src_out_frames;
+#endif
+#ifdef FILE_CWRITE
+       FILE *cfile;
+#endif
+#ifdef FILE_PWRITE
+       FILE *pfile;
+#endif
+};
+
+extern int verbose;
+extern int workarounds;
+extern int use_syslog;
+
+#define logit(priority, fmt, args...) do {             \
+       if (use_syslog)                                 \
+               syslog(priority, fmt, ##args);          \
+       else                                            \
+               fprintf(stderr, fmt, ##args);           \
+} while (0)
+
+int pcmjob_init(struct loopback *loop);
+int pcmjob_done(struct loopback *loop);
+int pcmjob_start(struct loopback *loop);
+int pcmjob_stop(struct loopback *loop);
+int pcmjob_pollfds_init(struct loopback *loop, struct pollfd *fds);
+int pcmjob_pollfds_handle(struct loopback *loop, struct pollfd *fds);
+void pcmjob_state(struct loopback *loop);
+
+int control_parse_id(const char *str, snd_ctl_elem_id_t *id);
+int control_id_match(snd_ctl_elem_id_t *id1, snd_ctl_elem_id_t *id2);
+int control_init(struct loopback *loop);
+int control_done(struct loopback *loop);
+int control_event(struct loopback_handle *lhandle, snd_ctl_event_t *ev);
diff --git a/alsaloop/control.c b/alsaloop/control.c
new file mode 100644 (file)
index 0000000..8383d79
--- /dev/null
@@ -0,0 +1,424 @@
+/*
+ *  A simple PCM loopback utility
+ *  Copyright (c) 2010 by Jaroslav Kysela <perex@perex.cz>
+ *
+ *     Author: Jaroslav Kysela <perex@perex.cz>
+ *
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *
+ */
+
+#include <ctype.h>
+#include <syslog.h>
+#include <alsa/asoundlib.h>
+#include "alsaloop.h"
+
+static char *id_str(snd_ctl_elem_id_t *id)
+{
+       static char str[128];
+
+       sprintf(str, "%i,%s,%i,%i,%s,%i",
+               snd_ctl_elem_id_get_numid(id),
+               snd_ctl_elem_iface_name(snd_ctl_elem_id_get_interface(id)),
+               snd_ctl_elem_id_get_device(id),
+               snd_ctl_elem_id_get_subdevice(id),
+               snd_ctl_elem_id_get_name(id),
+               snd_ctl_elem_id_get_index(id));
+       return str;
+}
+
+int control_parse_id(const char *str, snd_ctl_elem_id_t *id)
+{
+       int c, size, numid;
+       char *ptr;
+
+       while (*str == ' ' || *str == '\t')
+               str++;
+       if (!(*str))
+               return -EINVAL;
+       snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_MIXER);    /* default */
+       while (*str) {
+               if (!strncasecmp(str, "numid=", 6)) {
+                       str += 6;
+                       numid = atoi(str);
+                       if (numid <= 0) {
+                               logit(LOG_CRIT, "Invalid numid %d\n", numid);
+                               return -EINVAL;
+                       }
+                       snd_ctl_elem_id_set_numid(id, atoi(str));
+                       while (isdigit(*str))
+                               str++;
+               } else if (!strncasecmp(str, "iface=", 6)) {
+                       str += 6;
+                       if (!strncasecmp(str, "card", 4)) {
+                               snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_CARD);
+                               str += 4;
+                       } else if (!strncasecmp(str, "mixer", 5)) {
+                               snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_MIXER);
+                               str += 5;
+                       } else if (!strncasecmp(str, "pcm", 3)) {
+                               snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_PCM);
+                               str += 3;
+                       } else if (!strncasecmp(str, "rawmidi", 7)) {
+                               snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_RAWMIDI);
+                               str += 7;
+                       } else if (!strncasecmp(str, "timer", 5)) {
+                               snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_TIMER);
+                               str += 5;
+                       } else if (!strncasecmp(str, "sequencer", 9)) {
+                               snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_SEQUENCER);
+                               str += 9;
+                       } else {
+                               return -EINVAL;
+                       }
+               } else if (!strncasecmp(str, "name=", 5)) {
+                       char buf[64];
+                       str += 5;
+                       ptr = buf;
+                       size = 0;
+                       if (*str == '\'' || *str == '\"') {
+                               c = *str++;
+                               while (*str && *str != c) {
+                                       if (size < (int)sizeof(buf)) {
+                                               *ptr++ = *str;
+                                               size++;
+                                       }
+                                       str++;
+                               }
+                               if (*str == c)
+                                       str++;
+                       } else {
+                               while (*str && *str != ',') {
+                                       if (size < (int)sizeof(buf)) {
+                                               *ptr++ = *str;
+                                               size++;
+                                       }
+                                       str++;
+                               }
+                       }
+                       *ptr = '\0';
+                       snd_ctl_elem_id_set_name(id, buf);
+               } else if (!strncasecmp(str, "index=", 6)) {
+                       str += 6;
+                       snd_ctl_elem_id_set_index(id, atoi(str));
+                       while (isdigit(*str))
+                               str++;
+               } else if (!strncasecmp(str, "device=", 7)) {
+                       str += 7;
+                       snd_ctl_elem_id_set_device(id, atoi(str));
+                       while (isdigit(*str))
+                               str++;
+               } else if (!strncasecmp(str, "subdevice=", 10)) {
+                       str += 10;
+                       snd_ctl_elem_id_set_subdevice(id, atoi(str));
+                       while (isdigit(*str))
+                               str++;
+               }
+               if (*str == ',') {
+                       str++;
+               } else {
+                       if (*str)
+                               return -EINVAL;
+               }
+       }
+       return 0;
+}
+
+int control_id_match(snd_ctl_elem_id_t *id1, snd_ctl_elem_id_t *id2)
+{
+       if (snd_ctl_elem_id_get_interface(id1) !=
+           snd_ctl_elem_id_get_interface(id2))
+               return 0;
+       if (snd_ctl_elem_id_get_device(id1) !=
+           snd_ctl_elem_id_get_device(id2))
+               return 0;
+       if (snd_ctl_elem_id_get_subdevice(id1) !=
+           snd_ctl_elem_id_get_subdevice(id2))
+               return 0;
+       if (strcmp(snd_ctl_elem_id_get_name(id1),
+                  snd_ctl_elem_id_get_name(id2)) != 0)
+               return 0;
+       if (snd_ctl_elem_id_get_index(id1) !=
+           snd_ctl_elem_id_get_index(id2))
+               return 0;
+       return 1;
+}
+
+static int control_init1(struct loopback_handle *lhandle,
+                        struct loopback_control *ctl)
+{
+       int err;
+
+       snd_ctl_elem_info_set_id(ctl->info, ctl->id);
+       snd_ctl_elem_value_set_id(ctl->value, ctl->id);
+       if (lhandle->ctl == NULL) {
+               logit(LOG_WARNING, "Unable to read control info for '%s'\n", id_str(ctl->id));
+               return -EIO;
+       }
+       err = snd_ctl_elem_info(lhandle->ctl, ctl->info);
+       if (err < 0) {
+               logit(LOG_WARNING, "Unable to read control info '%s': %s\n", id_str(ctl->id), snd_strerror(err));
+               return err;
+       }
+       err = snd_ctl_elem_read(lhandle->ctl, ctl->value);
+       if (err < 0) {
+               logit(LOG_WARNING, "Unable to read control value (init1) '%s': %s\n", id_str(ctl->id), snd_strerror(err));
+               return err;
+       }
+       return 0;
+}
+
+static int copy_value(struct loopback_control *dst,
+                     struct loopback_control *src)
+{
+       snd_ctl_elem_type_t type;
+       unsigned int count;
+       int i;
+
+       type = snd_ctl_elem_info_get_type(dst->info);
+       count = snd_ctl_elem_info_get_count(dst->info);
+       switch (type) {
+       case SND_CTL_ELEM_TYPE_BOOLEAN:
+               for (i = 0; i < count; i++)
+                       snd_ctl_elem_value_set_boolean(dst->value,
+                               i, snd_ctl_elem_value_get_boolean(src->value, i));
+               break;
+       case SND_CTL_ELEM_TYPE_INTEGER:
+               for (i = 0; i < count; i++) {
+                       snd_ctl_elem_value_set_integer(dst->value,
+                               i, snd_ctl_elem_value_get_integer(src->value, i));
+               }
+               break;
+       default:
+               logit(LOG_CRIT, "Unable to copy control value for type %s\n", snd_ctl_elem_type_name(type));
+               return -EINVAL;
+       }
+       return 0;
+}
+
+static int oss_set(struct loopback *loop,
+                  struct loopback_ossmixer *ossmix,
+                  int enable)
+{
+       char buf[128], file[128];
+       int fd;
+
+       if (loop->capt->card_number < 0)
+               return 0;
+       if (!enable) {
+               sprintf(buf, "%s \"\" 0\n", ossmix->oss_id);
+       } else {
+               sprintf(buf, "%s \"%s\" %i\n", ossmix->oss_id, ossmix->alsa_id, ossmix->alsa_index);
+       }
+       sprintf(file, "/proc/asound/card%i/oss_mixer", loop->capt->card_number);
+       if (verbose)
+               snd_output_printf(loop->output, "%s: Initialize OSS volume %s: %s", loop->id, file, buf);
+       fd = open(file, O_WRONLY);
+       if (fd >= 0 && write(fd, buf, strlen(buf)) == strlen(buf)) {
+               close(fd);
+               return 0;
+       }
+       if (fd >= 0)
+               close(fd);
+       logit(LOG_INFO, "%s: Unable to initialize OSS Mixer ID '%s'\n", loop->id, ossmix->oss_id);
+       return -1;
+}
+
+static int control_init2(struct loopback *loop,
+                        struct loopback_mixer *mix)
+{
+       snd_ctl_elem_type_t type;
+       unsigned int count;
+       int err;
+
+       snd_ctl_elem_info_copy(mix->dst.info, mix->src.info);
+       snd_ctl_elem_info_set_id(mix->dst.info, mix->dst.id);
+       snd_ctl_elem_value_clear(mix->dst.value);
+       snd_ctl_elem_value_set_id(mix->dst.value, mix->dst.id);
+       type = snd_ctl_elem_info_get_type(mix->dst.info);
+       count = snd_ctl_elem_info_get_count(mix->dst.info);
+       snd_ctl_elem_remove(loop->capt->ctl, mix->dst.id);
+       switch (type) {
+       case SND_CTL_ELEM_TYPE_BOOLEAN:
+               err = snd_ctl_elem_add_boolean(loop->capt->ctl,
+                                              mix->dst.id, count);
+               copy_value(&mix->dst, &mix->src);
+               break;
+       case SND_CTL_ELEM_TYPE_INTEGER:
+               err = snd_ctl_elem_add_integer(loop->capt->ctl,
+                               mix->dst.id, count,
+                               snd_ctl_elem_info_get_min(mix->dst.info),
+                               snd_ctl_elem_info_get_max(mix->dst.info),
+                               snd_ctl_elem_info_get_step(mix->dst.info));
+               copy_value(&mix->dst, &mix->src);
+               break;
+       default:
+               logit(LOG_CRIT, "Unable to handle control type %s\n", snd_ctl_elem_type_name(type));
+               err = -EINVAL;
+               break;
+       }
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to create control '%s': %s\n", id_str(mix->dst.id), snd_strerror(err));
+               return err;
+       }
+       err = snd_ctl_elem_unlock(loop->capt->ctl, mix->dst.id);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to unlock control info '%s': %s\n", id_str(mix->dst.id), snd_strerror(err));
+               return err;
+       }
+       err = snd_ctl_elem_info(loop->capt->ctl, mix->dst.info);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to read control info '%s': %s\n", id_str(mix->dst.id), snd_strerror(err));
+               return err;
+       }
+       if (snd_ctl_elem_info_is_tlv_writable(mix->dst.info)) {
+               unsigned int tlv[64];
+               err = snd_ctl_elem_tlv_read(loop->play->ctl,
+                                           mix->src.id,
+                                           tlv, sizeof(tlv));
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to read TLV for '%s': %s\n", id_str(mix->src.id), snd_strerror(err));
+                       tlv[0] = tlv[1] = 0;
+               }
+               err = snd_ctl_elem_tlv_write(loop->capt->ctl,
+                                            mix->dst.id,
+                                            tlv);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to write TLV for '%s': %s\n", id_str(mix->src.id), snd_strerror(err));
+                       return err;
+               }
+       }
+       err = snd_ctl_elem_write(loop->capt->ctl, mix->dst.value);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to write control value '%s': %s\n", id_str(mix->dst.id), snd_strerror(err));
+               return err;
+       }
+       return 0;
+}
+
+int control_init(struct loopback *loop)
+{
+       struct loopback_mixer *mix;
+       struct loopback_ossmixer *ossmix;
+       int err;
+
+       for (ossmix = loop->oss_controls; ossmix; ossmix = ossmix->next)
+               oss_set(loop, ossmix, 0);
+       for (mix = loop->controls; mix; mix = mix->next) {
+               err = control_init1(loop->play, &mix->src);
+               if (err < 0) {
+                       logit(LOG_WARNING, "%s: Disabling playback control '%s'\n", loop->id, id_str(mix->src.id));
+                       mix->skip = 1;
+                       continue;
+               }
+               err = control_init2(loop, mix);
+               if (err < 0)
+                       return err;
+       }
+       for (ossmix = loop->oss_controls; ossmix; ossmix = ossmix->next) {
+               err = oss_set(loop, ossmix, 1);
+               if (err < 0) {
+                       ossmix->skip = 1;
+                       logit(LOG_WARNING, "%s: Disabling OSS mixer ID '%s'\n", loop->id, ossmix->oss_id);
+               }
+       }
+       return 0;
+}
+
+int control_done(struct loopback *loop)
+{
+       struct loopback_mixer *mix;
+       struct loopback_ossmixer *ossmix;
+       int err;
+
+       if (loop->capt->ctl == NULL)
+               return 0;
+       for (ossmix = loop->oss_controls; ossmix; ossmix = ossmix->next) {
+               err = oss_set(loop, ossmix, 0);
+               if (err < 0)
+                       logit(LOG_WARNING, "%s: Unable to remove OSS control '%s'\n", loop->id, ossmix->oss_id);
+       }
+       for (mix = loop->controls; mix; mix = mix->next) {
+               if (mix->skip)
+                       continue;
+               err = snd_ctl_elem_remove(loop->capt->ctl, mix->dst.id);
+               if (err < 0)
+                       logit(LOG_WARNING, "%s: Unable to remove control '%s': %s\n", loop->id, id_str(mix->dst.id), snd_strerror(err));
+       }
+       return 0;
+}
+
+static int control_event1(struct loopback *loop,
+                         struct loopback_mixer *mix,
+                         snd_ctl_event_t *ev,
+                         int capture)
+{
+       unsigned int mask = snd_ctl_event_elem_get_mask(ev);
+       int err;
+
+       if (mask == SND_CTL_EVENT_MASK_REMOVE)
+               return 0;
+       if ((mask & SND_CTL_EVENT_MASK_VALUE) == 0)
+               return 0;
+       if (!capture) {
+               snd_ctl_elem_value_set_id(mix->src.value, mix->src.id);
+               err = snd_ctl_elem_read(loop->play->ctl, mix->src.value);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to read control value (event1) '%s': %s\n", id_str(mix->src.id), snd_strerror(err));
+                       return err;
+               }
+               copy_value(&mix->dst, &mix->src);
+               err = snd_ctl_elem_write(loop->capt->ctl, mix->dst.value);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to write control value (event1) '%s': %s\n", id_str(mix->dst.id), snd_strerror(err));
+                       return err;
+               }
+       } else {
+               err = snd_ctl_elem_read(loop->capt->ctl, mix->dst.value);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to read control value (event2) '%s': %s\n", id_str(mix->dst.id), snd_strerror(err));
+                       return err;
+               }
+               copy_value(&mix->src, &mix->dst);
+               err = snd_ctl_elem_write(loop->play->ctl, mix->src.value);
+               if (err < 0) {
+                       logit(LOG_CRIT, "Unable to write control value (event2) '%s': %s\n", id_str(mix->src.id), snd_strerror(err));
+                       return err;
+               }
+       }
+       return 0;
+}
+
+int control_event(struct loopback_handle *lhandle, snd_ctl_event_t *ev)
+{
+       snd_ctl_elem_id_t *id2;
+       struct loopback_mixer *mix;
+       int capt = lhandle == lhandle->loopback->capt;
+       int err;
+
+       snd_ctl_elem_id_alloca(&id2);
+       snd_ctl_event_elem_get_id(ev, id2);
+       for (mix = lhandle->loopback->controls; mix; mix = mix->next) {
+               if (mix->skip)
+                       continue;
+               if (control_id_match(id2, capt ? mix->dst.id : mix->src.id)) {
+                       err = control_event1(lhandle->loopback, mix, ev, capt);
+                       if (err < 0)
+                               return err;
+               }
+       }
+       return 0;
+}
diff --git a/alsaloop/pcmjob.c b/alsaloop/pcmjob.c
new file mode 100644 (file)
index 0000000..0b84803
--- /dev/null
@@ -0,0 +1,1925 @@
+/*
+ *  A simple PCM loopback utility
+ *  Copyright (c) 2010 by Jaroslav Kysela <perex@perex.cz>
+ *
+ *     Author: Jaroslav Kysela <perex@perex.cz>
+ *
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sched.h>
+#include <errno.h>
+#include <getopt.h>
+#include <alsa/asoundlib.h>
+#include <sys/time.h>
+#include <math.h>
+#include <syslog.h>
+#include <pthread.h>
+#include "alsaloop.h"
+
+#define XRUN_PROFILE_UNKNOWN (-10000000)
+
+static int set_rate_shift(struct loopback_handle *lhandle, double pitch);
+static int get_rate(struct loopback_handle *lhandle);
+
+#define SYNCTYPE(v) [SYNC_TYPE_##v] = #v
+
+static const char *sync_types[] = {
+       SYNCTYPE(NONE),
+       SYNCTYPE(SIMPLE),
+       SYNCTYPE(CAPTRATESHIFT),
+       SYNCTYPE(PLAYRATESHIFT),
+       SYNCTYPE(SAMPLERATE),
+       SYNCTYPE(AUTO)
+};
+
+#define SRCTYPE(v) [SRC_##v] = "SRC_" #v
+
+#ifdef USE_SAMPLERATE
+static const char *src_types[] = {
+       SRCTYPE(SINC_BEST_QUALITY),
+       SRCTYPE(SINC_MEDIUM_QUALITY),
+       SRCTYPE(SINC_FASTEST),
+       SRCTYPE(ZERO_ORDER_HOLD),
+       SRCTYPE(LINEAR)
+};
+#endif
+
+static pthread_mutex_t pcm_open_mutex =
+                                PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+
+static inline void pcm_open_lock(void)
+{
+       if (workarounds & WORKAROUND_SERIALOPEN)
+               pthread_mutex_lock(&pcm_open_mutex);
+}
+static inline void pcm_open_unlock(void)
+{
+       if (workarounds & WORKAROUND_SERIALOPEN)
+               pthread_mutex_unlock(&pcm_open_mutex);
+}
+
+static inline snd_pcm_uframes_t get_whole_latency(struct loopback *loop)
+{
+       return loop->latency;
+}
+
+static inline unsigned long long
+                       frames_to_time(unsigned int rate,
+                                      snd_pcm_uframes_t frames)
+{
+       return (frames * 1000000ULL) / rate;
+}
+
+static inline snd_pcm_uframes_t time_to_frames(unsigned int rate,
+                                              unsigned long long time)
+{
+       return (time * rate) / 1000000ULL;
+}
+
+static int setparams_stream(struct loopback_handle *lhandle,
+                           snd_pcm_hw_params_t *params)
+{
+       snd_pcm_t *handle = lhandle->handle;
+       int err;
+       unsigned int rrate;
+
+       err = snd_pcm_hw_params_any(handle, params);
+       if (err < 0) {
+               logit(LOG_CRIT, "Broken configuration for %s PCM: no configurations available: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       err = snd_pcm_hw_params_set_rate_resample(handle, params, lhandle->resample);
+       if (err < 0) {
+               logit(LOG_CRIT, "Resample setup failed for %s (val %i): %s\n", lhandle->id, lhandle->resample, snd_strerror(err));
+               return err;
+       }
+       err = snd_pcm_hw_params_set_access(handle, params, lhandle->access);
+       if (err < 0) {
+               logit(LOG_CRIT, "Access type not available for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       err = snd_pcm_hw_params_set_format(handle, params, lhandle->format);
+       if (err < 0) {
+               logit(LOG_CRIT, "Sample format not available for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       err = snd_pcm_hw_params_set_channels(handle, params, lhandle->channels);
+       if (err < 0) {
+               logit(LOG_CRIT, "Channels count (%i) not available for %s: %s\n", lhandle->channels, lhandle->id, snd_strerror(err));
+               return err;
+       }
+       rrate = lhandle->rate_req;
+       err = snd_pcm_hw_params_set_rate_near(handle, params, &rrate, 0);
+       if (err < 0) {
+               logit(LOG_CRIT, "Rate %iHz not available for %s: %s\n", lhandle->rate_req, lhandle->id, snd_strerror(err));
+               return err;
+       }
+       rrate = 0;
+       snd_pcm_hw_params_get_rate(params, &rrate, 0);
+       lhandle->rate = rrate;
+       if (
+#ifdef USE_SAMPLERATE
+           !lhandle->loopback->src_enable &&
+#endif
+           (int)rrate != lhandle->rate) {
+               logit(LOG_CRIT, "Rate does not match (requested %iHz, got %iHz, resample %i)\n", lhandle->rate, rrate, lhandle->resample);
+               return -EINVAL;
+       }
+       lhandle->pitch = (double)lhandle->rate_req / (double)lhandle->rate;
+       return 0;
+}
+
+static int setparams_bufsize(struct loopback_handle *lhandle,
+                            snd_pcm_hw_params_t *params,
+                            snd_pcm_hw_params_t *tparams,
+                            snd_pcm_uframes_t bufsize)
+{
+       snd_pcm_t *handle = lhandle->handle;
+       int err;
+       snd_pcm_uframes_t periodsize;
+       snd_pcm_uframes_t buffersize;
+       snd_pcm_uframes_t last_bufsize = 0;
+
+       if (lhandle->buffer_size_req > 0) {
+               bufsize = lhandle->buffer_size_req;
+               last_bufsize = bufsize;
+               goto __set_it;
+       }
+      __again:
+       if (lhandle->buffer_size_req > 0) {
+               logit(LOG_CRIT, "Unable to set buffer size %li for %s\n", (long)lhandle->buffer_size, lhandle->id);
+               return -EIO;
+       }
+       if (last_bufsize == bufsize)
+               bufsize += 4;
+       last_bufsize = bufsize;
+       if (bufsize > 10*1024*1024) {
+               logit(LOG_CRIT, "Buffer size too big\n");
+               return -EIO;
+       }
+      __set_it:
+       snd_pcm_hw_params_copy(params, tparams);
+       periodsize = bufsize * 8;
+       err = snd_pcm_hw_params_set_buffer_size_near(handle, params, &periodsize);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to set buffer size %li for %s: %s\n", periodsize, lhandle->id, snd_strerror(err));
+               goto __again;
+       }
+       snd_pcm_hw_params_get_buffer_size(params, &periodsize);
+       if (verbose > 6)
+               snd_output_printf(lhandle->loopback->output, "%s: buffer_size=%li\n", lhandle->id, periodsize);
+       if (lhandle->period_size_req > 0)
+               periodsize = lhandle->period_size_req;
+       else
+               periodsize /= 8;
+       err = snd_pcm_hw_params_set_period_size_near(handle, params, &periodsize, 0);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to set period size %li for %s: %s\n", periodsize, lhandle->id, snd_strerror(err));
+               goto __again;
+       }
+       snd_pcm_hw_params_get_period_size(params, &periodsize, NULL);
+       if (verbose > 6)
+               snd_output_printf(lhandle->loopback->output, "%s: period_size=%li\n", lhandle->id, periodsize);
+       if (periodsize != bufsize)
+               bufsize = periodsize;
+       snd_pcm_hw_params_get_buffer_size(params, &buffersize);
+       if (periodsize * 2 > buffersize)
+               goto __again;
+       lhandle->period_size = periodsize;
+       lhandle->buffer_size = buffersize;
+       return 0;
+}
+
+static int setparams_set(struct loopback_handle *lhandle,
+                        snd_pcm_hw_params_t *params,
+                        snd_pcm_sw_params_t *swparams,
+                        snd_pcm_uframes_t bufsize)
+{
+       snd_pcm_t *handle = lhandle->handle;
+       int err;
+       snd_pcm_uframes_t val, period_size, buffer_size;
+
+       err = snd_pcm_hw_params(handle, params);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to set hw params for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       err = snd_pcm_sw_params_current(handle, swparams);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to determine current swparams for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       err = snd_pcm_sw_params_set_start_threshold(handle, swparams, 0x7fffffff);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to set start threshold mode for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       snd_pcm_hw_params_get_period_size(params, &period_size, NULL);
+       snd_pcm_hw_params_get_buffer_size(params, &buffer_size);
+       if (lhandle->nblock) {
+               if (lhandle == lhandle->loopback->play) {
+                       val = buffer_size - (2 * period_size - 4);
+               } else {
+                       val = 4;
+               }
+               if (verbose > 6)
+                       snd_output_printf(lhandle->loopback->output, "%s: avail_min1=%li\n", lhandle->id, val);
+       } else {
+               if (lhandle == lhandle->loopback->play) {
+                       val = bufsize + bufsize / 2;
+                       if (val < (period_size * 3) / 4)
+                               val = (period_size * 3) / 4;
+                       if (val > (buffer_size * 3) / 4)
+                               val = (buffer_size * 3) / 4;
+                       val = buffer_size - val;
+               } else {
+                       val = bufsize / 2;
+                       if (val < period_size / 2)
+                               val = period_size / 2;
+                       if (val > buffer_size / 4)
+                               val = buffer_size / 4;
+               }
+               if (verbose > 6)
+                       snd_output_printf(lhandle->loopback->output, "%s: avail_min2=%li\n", lhandle->id, val);
+       }
+       err = snd_pcm_sw_params_set_avail_min(handle, swparams, val);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to set avail min for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       snd_pcm_sw_params_get_avail_min(swparams, &lhandle->avail_min);
+       err = snd_pcm_sw_params(handle, swparams);
+       if (err < 0) {
+               logit(LOG_CRIT, "Unable to set sw params for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       return 0;
+}
+
+static int setparams(struct loopback *loop, snd_pcm_uframes_t bufsize)
+{
+       int err;
+       snd_pcm_hw_params_t *pt_params, *ct_params;     /* templates with rate, format and channels */
+       snd_pcm_hw_params_t *p_params, *c_params;
+       snd_pcm_sw_params_t *p_swparams, *c_swparams;
+
+       snd_pcm_hw_params_alloca(&p_params);
+       snd_pcm_hw_params_alloca(&c_params);
+       snd_pcm_hw_params_alloca(&pt_params);
+       snd_pcm_hw_params_alloca(&ct_params);
+       snd_pcm_sw_params_alloca(&p_swparams);
+       snd_pcm_sw_params_alloca(&c_swparams);
+       if ((err = setparams_stream(loop->play, pt_params)) < 0) {
+               logit(LOG_CRIT, "Unable to set parameters for %s stream: %s\n", loop->play->id, snd_strerror(err));
+               return err;
+       }
+       if ((err = setparams_stream(loop->capt, ct_params)) < 0) {
+               logit(LOG_CRIT, "Unable to set parameters for %s stream: %s\n", loop->capt->id, snd_strerror(err));
+               return err;
+       }
+
+       if ((err = setparams_bufsize(loop->play, p_params, pt_params, bufsize / loop->play->pitch)) < 0) {
+               logit(LOG_CRIT, "Unable to set buffer parameters for %s stream: %s\n", loop->play->id, snd_strerror(err));
+               return err;
+       }
+       if ((err = setparams_bufsize(loop->capt, c_params, ct_params, bufsize / loop->capt->pitch)) < 0) {
+               logit(LOG_CRIT, "Unable to set buffer parameters for %s stream: %s\n", loop->capt->id, snd_strerror(err));
+               return err;
+       }
+
+       if ((err = setparams_set(loop->play, p_params, p_swparams, bufsize / loop->play->pitch)) < 0) {
+               logit(LOG_CRIT, "Unable to set sw parameters for %s stream: %s\n", loop->play->id, snd_strerror(err));
+               return err;
+       }
+       if ((err = setparams_set(loop->capt, c_params, c_swparams, bufsize / loop->capt->pitch)) < 0) {
+               logit(LOG_CRIT, "Unable to set sw parameters for %s stream: %s\n", loop->capt->id, snd_strerror(err));
+               return err;
+       }
+
+#if 0
+       if (!loop->linked)
+               if (snd_pcm_link(loop->capt->handle, loop->play->handle) >= 0)
+                       loop->linked = 1;
+#endif
+       if ((err = snd_pcm_prepare(loop->play->handle)) < 0) {
+               logit(LOG_CRIT, "Prepare %s error: %s\n", loop->play->id, snd_strerror(err));
+               return err;
+       }
+       if (!loop->linked && (err = snd_pcm_prepare(loop->capt->handle)) < 0) {
+               logit(LOG_CRIT, "Prepare %s error: %s\n", loop->capt->id, snd_strerror(err));
+               return err;
+       }
+
+       if (verbose) {
+               snd_pcm_dump(loop->play->handle, loop->output);
+               snd_pcm_dump(loop->capt->handle, loop->output);
+       }
+       return 0;
+}
+
+static void showlatency(snd_output_t *out, size_t latency, unsigned int rate,
+                       char *prefix)
+{
+       double d;
+       d = (double)latency / (double)rate;
+       snd_output_printf(out, "%s %li frames, %.3fus, %.6fms (%.4fHz)\n", prefix, (long)latency, d * 1000000, d * 1000, (double)1 / d);
+}
+
+static long timediff(snd_timestamp_t t1, snd_timestamp_t t2)
+{
+       signed long l;
+
+       t1.tv_sec -= t2.tv_sec;
+       if (t1.tv_usec < t2.tv_usec) {
+               l = ((t1.tv_usec + 1000000) - t2.tv_usec) % 1000000;
+               t1.tv_sec--;
+       } else {
+               l = t1.tv_usec - t2.tv_usec;
+       }
+       return (t1.tv_sec * 1000000) + l;
+}
+
+static int getcurtimestamp(snd_timestamp_t *ts)
+{
+       struct timeval tv;
+       gettimeofday(&tv, NULL);
+       ts->tv_sec = tv.tv_sec;
+       ts->tv_usec = tv.tv_usec;
+       return 0;
+}
+
+static void xrun_profile0(struct loopback *loop)
+{
+       snd_pcm_sframes_t pdelay, cdelay;
+
+       if (snd_pcm_delay(loop->play->handle, &pdelay) >= 0 &&
+           snd_pcm_delay(loop->capt->handle, &cdelay) >= 0) {
+               getcurtimestamp(&loop->xrun_last_update);
+               loop->xrun_last_pdelay = pdelay;
+               loop->xrun_last_cdelay = cdelay;
+               loop->xrun_buf_pcount = loop->play->buf_count;
+               loop->xrun_buf_ccount = loop->capt->buf_count;
+#ifdef USE_SAMPLERATE
+               loop->xrun_out_frames = loop->src_out_frames;
+#endif
+       }
+}
+
+static inline void xrun_profile(struct loopback *loop)
+{
+       if (loop->xrun)
+               xrun_profile0(loop);
+}
+
+static void xrun_stats0(struct loopback *loop)
+{
+       snd_timestamp_t t;
+       double expected, last, wake, check, queued = -1, proc, missing = -1;
+       double maxbuf, pfilled, cfilled, cqueued = -1, avail_min;
+       double sincejob;
+
+       expected = ((double)loop->latency /
+                               (double)loop->play->rate_req) * 1000;
+       getcurtimestamp(&t);
+       last = (double)timediff(t, loop->xrun_last_update) / 1000;
+       wake = (double)timediff(t, loop->xrun_last_wake) / 1000;
+       check = (double)timediff(t, loop->xrun_last_check) / 1000;
+       sincejob = (double)timediff(t, loop->tstamp_start) / 1000;
+       if (loop->xrun_last_pdelay != XRUN_PROFILE_UNKNOWN)
+               queued = ((double)loop->xrun_last_pdelay /
+                               (double)loop->play->rate) * 1000;
+       if (loop->xrun_last_cdelay != XRUN_PROFILE_UNKNOWN)
+               cqueued = ((double)loop->xrun_last_cdelay /
+                               (double)loop->capt->rate) * 1000;
+       maxbuf = ((double)loop->play->buffer_size /
+                               (double)loop->play->rate) * 1000;
+       proc = (double)loop->xrun_max_proctime / 1000;
+       pfilled = ((double)(loop->xrun_buf_pcount + loop->xrun_out_frames) /
+                               (double)loop->play->rate) * 1000;
+       cfilled = ((double)loop->xrun_buf_ccount /
+                               (double)loop->capt->rate) * 1000;
+       avail_min = (((double)loop->play->buffer_size - 
+                               (double)loop->play->avail_min ) / 
+                               (double)loop->play->rate) * 1000;
+       avail_min = expected - avail_min;
+       if (queued >= 0)
+               missing = last - queued;
+       if (missing >= 0 && loop->xrun_max_missing < missing)
+               loop->xrun_max_missing = missing;
+       loop->xrun_max_proctime = 0;
+       getcurtimestamp(&t);
+       logit(LOG_INFO, "  last write before %.4fms, queued %.4fms/%.4fms -> missing %.4fms\n", last, queued, cqueued, missing);
+       logit(LOG_INFO, "  expected %.4fms, processing %.4fms, max missing %.4fms\n", expected, proc, loop->xrun_max_missing);
+       logit(LOG_INFO, "  last wake %.4fms, last check %.4fms, avail_min %.4fms\n", wake, check, avail_min);
+       logit(LOG_INFO, "  max buf %.4fms, pfilled %.4fms, cfilled %.4fms\n", maxbuf, pfilled, cfilled);
+       logit(LOG_INFO, "  job started before %.4fms\n", sincejob);
+}
+
+static inline void xrun_stats(struct loopback *loop)
+{
+       if (loop->xrun)
+               xrun_stats0(loop);
+}
+
+static inline snd_pcm_uframes_t buf_avail(struct loopback_handle *lhandle)
+{
+       return lhandle->buf_size - lhandle->buf_count;
+}
+
+static void buf_remove(struct loopback *loop, snd_pcm_uframes_t count)
+{
+       /* remove samples from the capture buffer */
+       if (count <= 0)
+               return;
+       if (loop->play->buf == loop->capt->buf) {
+               if (count < loop->capt->buf_count)
+                       loop->capt->buf_count -= count;
+               else
+                       loop->capt->buf_count = 0;
+       }
+}
+
+#if 0
+static void buf_add_copy(struct loopback *loop)
+{
+       struct loopback_handle *capt = loop->capt;
+       struct loopback_handle *play = loop->play;
+       snd_pcm_uframes_t count, count1, cpos, ppos;
+
+       count = capt->buf_count;
+       cpos = capt->buf_pos - count;
+       if (cpos > capt->buf_size)
+               cpos += capt->buf_size;
+       ppos = (play->buf_pos + play->buf_count) % play->buf_size;
+       while (count > 0) {
+               count1 = count;
+               if (count1 + cpos > capt->buf_size)
+                       count1 = capt->buf_size - cpos;
+               if (count1 > buf_avail(play))
+                       count1 = buf_avail(play);
+               if (count1 + ppos > play->buf_size)
+                       count1 = play->buf_size - ppos;
+               if (count1 == 0)
+                       break;
+               memcpy(play->buf + ppos * play->frame_size,
+                      capt->buf + cpos * capt->frame_size,
+                      count1 * capt->frame_size);
+               play->buf_count += count1;
+               capt->buf_count -= count1;
+               ppos += count1;
+               ppos %= play->buf_size;
+               cpos += count1;
+               cpos %= capt->buf_size;
+               count -= count1;
+       }
+}
+#endif
+
+#ifdef USE_SAMPLERATE
+static void buf_add_src(struct loopback *loop)
+{
+       struct loopback_handle *capt = loop->capt;
+       struct loopback_handle *play = loop->play;
+       float *old_data_out;
+       snd_pcm_uframes_t count, pos, count1, pos1;
+       count = capt->buf_count;
+       pos = 0;
+       pos1 = capt->buf_pos - count;
+       if (pos1 > capt->buf_size)
+               pos1 += capt->buf_size;
+       while (count > 0) {
+               count1 = count;
+               if (count1 + pos1 > capt->buf_size)
+                       count1 = capt->buf_size - pos1;
+               if (capt->format == SND_PCM_FORMAT_S32)
+                       src_int_to_float_array((int *)(capt->buf +
+                                               pos1 * capt->frame_size),
+                                        loop->src_data.data_in +
+                                          pos * capt->channels,
+                                        count1 * capt->channels);
+               else
+                       src_short_to_float_array((short *)(capt->buf +
+                                               pos1 * capt->frame_size),
+                                        loop->src_data.data_in +
+                                          pos * capt->channels,
+                                        count1 * capt->channels);
+               count -= count1;
+               pos += count1;
+               pos1 += count1;
+               pos1 %= capt->buf_size;
+       }
+       loop->src_data.input_frames = pos;
+       loop->src_data.output_frames = play->buf_size -
+                                               loop->src_out_frames;
+       loop->src_data.end_of_input = 0;
+       old_data_out = loop->src_data.data_out;
+       loop->src_data.data_out = old_data_out + loop->src_out_frames;
+       src_process(loop->src_state, &loop->src_data);
+       loop->src_data.data_out = old_data_out;
+       capt->buf_count -= loop->src_data.input_frames_used;
+       count = loop->src_data.output_frames_gen +
+               loop->src_out_frames;
+       pos = 0;
+       pos1 = (play->buf_pos + play->buf_count) % play->buf_size;
+       while (count > 0) {
+               count1 = count;
+               if (count1 + pos1 > play->buf_size)
+                       count1 = play->buf_size - pos1;
+               if (count1 > buf_avail(play))
+                       count1 = buf_avail(play);
+               if (count1 == 0)
+                       break;
+               if (capt->format == SND_PCM_FORMAT_S32)
+                       src_float_to_int_array(loop->src_data.data_out +
+                                          pos * play->channels,
+                                        (int *)(play->buf +
+                                          pos1 * play->frame_size),
+                                        count1 * play->channels);
+               else
+                       src_float_to_short_array(loop->src_data.data_out +
+                                          pos * play->channels,
+                                        (short *)(play->buf +
+                                          pos1 * play->frame_size),
+                                        count1 * play->channels);
+               play->buf_count += count1;
+               count -= count1;
+               pos += count1;
+               pos1 += count1;
+               pos1 %= play->buf_size;
+       }
+#if 0
+       printf("src: pos = %li, gen = %li, out = %li, count = %li\n",
+               (long)pos, (long)loop->src_data.output_frames_gen,
+               (long)loop->src_out_frames, play->buf_count);
+#endif
+       loop->src_out_frames = (loop->src_data.output_frames_gen +
+                                       loop->src_out_frames) - pos;
+       if (loop->src_out_frames > 0) {
+               memmove(loop->src_data.data_out,
+                       loop->src_data.data_out + pos * play->channels,
+                       loop->src_out_frames * play->channels * sizeof(float));
+       }
+}
+#else
+static void buf_add_src(struct loopback *loop)
+{
+}
+#endif
+
+static void buf_add(struct loopback *loop, snd_pcm_uframes_t count)
+{
+       /* copy samples from capture to playback buffer */
+       if (count <= 0)
+               return;
+       if (loop->play->buf == loop->capt->buf) {
+               loop->play->buf_count += count;
+       } else {
+               buf_add_src(loop);
+       }
+}
+
+static int xrun(struct loopback_handle *lhandle)
+{
+       int err;
+
+       if (lhandle == lhandle->loopback->play) {
+               logit(LOG_DEBUG, "underrun for %s\n", lhandle->id);
+               xrun_stats(lhandle->loopback);
+               if ((err = snd_pcm_prepare(lhandle->handle)) < 0)
+                       return err;
+               lhandle->xrun_pending = 1;
+       } else {
+               logit(LOG_DEBUG, "overrun for %s\n", lhandle->id);
+               xrun_stats(lhandle->loopback);
+               if ((err = snd_pcm_prepare(lhandle->handle)) < 0)
+                       return err;
+               lhandle->xrun_pending = 1;
+       }
+       return 0;
+}
+
+static int suspend(struct loopback_handle *lhandle)
+{
+       int err;
+
+       while ((err = snd_pcm_resume(lhandle->handle)) == -EAGAIN)
+               usleep(1);
+       if (err < 0)
+               return xrun(lhandle);
+       return 0;
+}
+
+static int readit(struct loopback_handle *lhandle)
+{
+       snd_pcm_sframes_t r, res = 0;
+       snd_pcm_sframes_t avail;
+       int err;
+
+       avail = snd_pcm_avail_update(lhandle->handle);
+       if (avail == -EPIPE) {
+               return xrun(lhandle);
+       } else if (avail == -ESTRPIPE) {
+               if ((err = suspend(lhandle)) < 0)
+                       return err;
+       }
+       if (avail > buf_avail(lhandle)) {
+               lhandle->buf_over += avail - buf_avail(lhandle);
+               avail = buf_avail(lhandle);
+       } else if (avail == 0) {
+               if (snd_pcm_state(lhandle->handle) == SND_PCM_STATE_DRAINING) {
+                       lhandle->loopback->reinit = 1;
+                       return 0;
+               }
+       }
+       while (avail > 0) {
+               r = buf_avail(lhandle);
+               if (r + lhandle->buf_pos > lhandle->buf_size)
+                       r = lhandle->buf_size - lhandle->buf_pos;
+               if (r > avail)
+                       r = avail;
+               r = snd_pcm_readi(lhandle->handle,
+                                 lhandle->buf +
+                                 lhandle->buf_pos *
+                                 lhandle->frame_size, r);
+               if (r == 0)
+                       return res;
+               if (r < 0) {
+                       if (r == -EPIPE) {
+                               err = xrun(lhandle);
+                               return res > 0 ? res : err;
+                       } else if (r == -ESTRPIPE) {
+                               if ((err = suspend(lhandle)) < 0)
+                                       return res > 0 ? res : err;
+                               r = 0;
+                       } else {
+                               return res > 0 ? res : r;
+                       }
+               }
+#ifdef FILE_CWRITE
+               if (lhandle->loopback->cfile)
+                       fwrite(lhandle->buf + lhandle->buf_pos * lhandle->frame_size,
+                              r, lhandle->frame_size, lhandle->loopback->cfile);
+#endif
+               res += r;
+               if (lhandle->max < res)
+                       lhandle->max = res;
+               lhandle->counter += r;
+               lhandle->buf_count += r;
+               lhandle->buf_pos += r;
+               lhandle->buf_pos %= lhandle->buf_size;
+               avail -= r;
+       }
+       return res;
+}
+
+static int writeit(struct loopback_handle *lhandle)
+{
+       snd_pcm_sframes_t avail;
+       snd_pcm_sframes_t r, res = 0;
+       int err;
+
+      __again:
+       avail = snd_pcm_avail_update(lhandle->handle);
+       if (avail == -EPIPE) {
+               if ((err = xrun(lhandle)) < 0)
+                       return err;
+               return res;
+       } else if (avail == -ESTRPIPE) {
+               if ((err = suspend(lhandle)) < 0)
+                       return err;
+               goto __again;
+       }
+       while (avail > 0 && lhandle->buf_count > 0) {
+               r = lhandle->buf_count;
+               if (r + lhandle->buf_pos > lhandle->buf_size)
+                       r = lhandle->buf_size - lhandle->buf_pos;
+               if (r > avail)
+                       r = avail;
+               r = snd_pcm_writei(lhandle->handle,
+                                  lhandle->buf +
+                                  lhandle->buf_pos *
+                                  lhandle->frame_size, r);
+               if (r <= 0) {
+                       if (r == -EPIPE) {
+                               if ((err = xrun(lhandle)) < 0)
+                                       return err;
+                               return res;
+                       } else if (r == -ESTRPIPE) {
+                       }
+                       return res > 0 ? res : r;
+               }
+#ifdef FILE_PWRITE
+               if (lhandle->loopback->pfile)
+                       fwrite(lhandle->buf + lhandle->buf_pos * lhandle->frame_size,
+                              r, lhandle->frame_size, lhandle->loopback->pfile);
+#endif
+               res += r;
+               lhandle->counter += r;
+               lhandle->buf_count -= r;
+               lhandle->buf_pos += r;
+               lhandle->buf_pos %= lhandle->buf_size;
+               xrun_profile(lhandle->loopback);
+               if (lhandle->loopback->stop_pending) {
+                       lhandle->loopback->stop_count += r;
+                       if (lhandle->loopback->stop_count * lhandle->pitch >
+                           lhandle->loopback->latency * 3) {
+                               lhandle->loopback->stop_pending = 0;
+                               lhandle->loopback->reinit = 1;
+                               break;
+                       }
+               }
+       }
+       return res;
+}
+
+static snd_pcm_sframes_t remove_samples(struct loopback *loop,
+                                       int capture_preferred,
+                                       snd_pcm_sframes_t count)
+{
+       struct loopback_handle *play = loop->play;
+       struct loopback_handle *capt = loop->capt;
+
+       if (loop->play->buf == loop->capt->buf) {
+               if (count > loop->play->buf_count)
+                       count = loop->play->buf_count;
+               if (count > loop->capt->buf_count)
+                       count = loop->capt->buf_count;
+               capt->buf_count -= count;
+               play->buf_pos += count;
+               play->buf_pos %= play->buf_size;
+               play->buf_count -= count;
+               return count;
+       }
+       if (capture_preferred) {
+               if (count > capt->buf_count)
+                       count = capt->buf_count;
+               capt->buf_count -= count;
+       } else {
+               if (count > play->buf_count)
+                       count = play->buf_count;
+               play->buf_count -= count;
+       }
+       return count;
+}
+
+static int xrun_sync(struct loopback *loop)
+{
+       struct loopback_handle *play = loop->play;
+       struct loopback_handle *capt = loop->capt;
+       snd_pcm_uframes_t fill = get_whole_latency(loop);
+       snd_pcm_sframes_t pdelay, cdelay, delay1, pdelay1, cdelay1, diff;
+       int err;
+
+      __again:
+       if (verbose > 5)
+               snd_output_printf(loop->output, "%s: xrun sync %i %i\n", loop->id, capt->xrun_pending, play->xrun_pending);
+       if (capt->xrun_pending) {
+             __pagain:
+               capt->xrun_pending = 0;
+               if ((err = snd_pcm_prepare(capt->handle)) < 0) {
+                       logit(LOG_CRIT, "%s prepare failed: %s\n", capt->id, snd_strerror(err));
+                       return err;
+               }
+               if ((err = snd_pcm_start(capt->handle)) < 0) {
+                       logit(LOG_CRIT, "%s start failed: %s\n", capt->id, snd_strerror(err));
+                       return err;
+               }
+       } else {
+               diff = readit(capt);
+               buf_add(loop, diff);
+               if (capt->xrun_pending)
+                       goto __pagain;
+       }
+       /* skip additional playback samples */
+       if ((err = snd_pcm_delay(capt->handle, &cdelay)) < 0) {
+               if (err == -EPIPE) {
+                       capt->xrun_pending = 1;
+                       goto __again;
+               }
+               if (err == -ESTRPIPE) {
+                       err = suspend(capt);
+                       if (err < 0)
+                               return err;
+                       goto __again;
+               }
+               logit(LOG_CRIT, "%s capture delay failed: %s\n", capt->id, snd_strerror(err));
+               return err;
+       }
+       if ((err = snd_pcm_delay(play->handle, &pdelay)) < 0) {
+               if (err == -EPIPE) {
+                       pdelay = 0;
+                       play->xrun_pending = 1;
+               } else if (err == -ESTRPIPE) {
+                       err = suspend(play);
+                       if (err < 0)
+                               return err;
+                       goto __again;
+               } else {
+                       logit(LOG_CRIT, "%s playback delay failed: %s\n", play->id, snd_strerror(err));
+                       return err;
+               }
+       }
+       capt->counter = cdelay;
+       play->counter = pdelay;
+       if (play->buf != capt->buf)
+               cdelay += capt->buf_count;
+       pdelay += play->buf_count;
+#ifdef USE_SAMPLERATE
+       pdelay += loop->src_out_frames;
+#endif
+       cdelay1 = cdelay * capt->pitch;
+       pdelay1 = pdelay * play->pitch;
+       delay1 = cdelay1 + pdelay1;
+       capt->total_queued = 0;
+       play->total_queued = 0;
+       loop->total_queued_count = 0;
+       loop->pitch_diff = loop->pitch_diff_min = loop->pitch_diff_max = 0;
+       if (verbose > 6) {
+               snd_output_printf(loop->output,
+                       "sync: cdelay=%li(%li), pdelay=%li(%li), fill=%li (delay=%li)"
+#ifdef USE_SAMPLERATE
+                       ", src_out=%li"
+#endif
+                       "\n",
+                       (long)cdelay, (long)cdelay1, (long)pdelay, (long)pdelay1,
+                       (long)fill, (long)delay1
+#ifdef USE_SAMPLERATE
+                       , (long)loop->src_out_frames
+#endif
+                       );
+               snd_output_printf(loop->output,
+                       "sync: cbufcount=%li, pbufcount=%li\n",
+                       (long)capt->buf_count, (long)play->buf_count);
+       }
+       if (delay1 > fill && capt->counter > 0) {
+               if ((err = snd_pcm_drop(capt->handle)) < 0)
+                       return err;
+               if ((err = snd_pcm_prepare(capt->handle)) < 0)
+                       return err;
+               if ((err = snd_pcm_start(capt->handle)) < 0)
+                       return err;
+               diff = remove_samples(loop, 1, (delay1 - fill) / capt->pitch);
+               if (verbose > 6)
+                       snd_output_printf(loop->output,
+                               "sync: capt stop removed %li samples\n", (long)diff);
+               goto __again;
+       }
+       if (delay1 > fill) {
+               diff = (delay1 - fill) / play->pitch;
+               if (diff > play->buf_count)
+                       diff = play->buf_count;
+               if (verbose > 6)
+                       snd_output_printf(loop->output,
+                               "sync: removing %li playback samples, delay1=%li\n", (long)diff, (long)delay1);
+               diff = remove_samples(loop, 0, diff);
+               pdelay -= diff;
+               pdelay1 = pdelay * play->pitch;
+               delay1 = cdelay1 + pdelay1;
+               if (verbose > 6)
+                       snd_output_printf(loop->output,
+                               "sync: removed %li playback samples, delay1=%li\n", (long)diff, (long)delay1);
+       }
+       if (delay1 > fill) {
+               diff = (delay1 - fill) / capt->pitch;
+               if (diff > capt->buf_count)
+                       diff = capt->buf_count;
+               if (verbose > 6)
+                       snd_output_printf(loop->output,
+                               "sync: removing %li captured samples, delay1=%li\n", (long)diff, (long)delay1);
+               diff -= remove_samples(loop, 1, diff);
+               cdelay -= diff;
+               cdelay1 = cdelay * capt->pitch;
+               delay1 = cdelay1 + pdelay1;             
+               if (verbose > 6)
+                       snd_output_printf(loop->output,
+                               "sync: removed %li captured samples, delay1=%li\n", (long)diff, (long)delay1);
+       }
+       if (play->xrun_pending) {
+               play->xrun_pending = 0;
+               diff = (fill - delay1) / play->pitch;
+               if (verbose > 6)
+                       snd_output_printf(loop->output,
+                               "sync: xrun_pending, silence filling %li / buf_count=%li\n", (long)diff, play->buf_count);
+               if (fill > delay1 && play->buf_count < diff) {
+                       diff = diff - play->buf_count;
+                       if (verbose > 6)
+                               snd_output_printf(loop->output,
+                                       "sync: playback silence added %li samples\n", (long)diff);
+                       play->buf_pos -= diff;
+                       play->buf_pos %= play->buf_size;
+                       if ((err = snd_pcm_format_set_silence(play->format, play->buf + play->buf_pos * play->channels, diff)) < 0)
+                               return err;
+                       play->buf_count += diff;
+               }
+               if ((err = snd_pcm_prepare(play->handle)) < 0) {
+                       logit(LOG_CRIT, "%s prepare failed: %s\n", play->id, snd_strerror(err));
+
+                       return err;
+               }
+               delay1 = writeit(play);
+               if (verbose > 6)
+                       snd_output_printf(loop->output,
+                               "sync: playback wrote %li samples\n", (long)delay1);
+               if (delay1 > diff) {
+                       buf_remove(loop, delay1 - diff);
+                       if (verbose > 6)
+                               snd_output_printf(loop->output,
+                                       "sync: playback buf_remove %li samples\n", (long)(delay1 - diff));
+               }
+               if ((err = snd_pcm_start(play->handle)) < 0) {
+                       logit(LOG_CRIT, "%s start failed: %s\n", play->id, snd_strerror(err));
+                       return err;
+               }
+       }
+       if (verbose > 5) {
+               snd_output_printf(loop->output, "%s: xrun sync ok\n", loop->id);
+               if (verbose > 6) {
+                       if (snd_pcm_delay(capt->handle, &cdelay) < 0)
+                               cdelay = -1;
+                       if (snd_pcm_delay(play->handle, &pdelay) < 0)
+                               pdelay = -1;
+                       if (play->buf != capt->buf)
+                               cdelay += capt->buf_count;
+                       pdelay += play->buf_count;
+#ifdef USE_SAMPLERATE
+                       pdelay += loop->src_out_frames;
+#endif
+                       cdelay1 = cdelay * capt->pitch;
+                       pdelay1 = pdelay * play->pitch;
+                       delay1 = cdelay1 + pdelay1;
+                       snd_output_printf(loop->output, "%s: sync verify: %li\n", loop->id, delay1);
+               }
+       }
+       loop->xrun_max_proctime = 0;
+       return 0;
+}
+
+static int set_notify(struct loopback_handle *lhandle, int enable)
+{
+       int err;
+
+       if (lhandle->ctl_notify == NULL)
+               return 0;
+       snd_ctl_elem_value_set_boolean(lhandle->ctl_notify, 0, enable);
+       err = snd_ctl_elem_write(lhandle->ctl, lhandle->ctl_notify);
+       if (err < 0) {
+               logit(LOG_CRIT, "Cannot set PCM Notify element for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       err = snd_ctl_elem_read(lhandle->ctl, lhandle->ctl_notify);
+       if (err < 0) {
+               logit(LOG_CRIT, "Cannot get PCM Notify element for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       return 0;
+}
+
+static int set_rate_shift(struct loopback_handle *lhandle, double pitch)
+{
+       int err;
+
+       if (lhandle->ctl_rate_shift == NULL)
+               return 0;
+       snd_ctl_elem_value_set_integer(lhandle->ctl_rate_shift, 0, pitch * 100000);
+       err = snd_ctl_elem_write(lhandle->ctl, lhandle->ctl_rate_shift);
+       if (err < 0) {
+               logit(LOG_CRIT, "Cannot set PCM Rate Shift element for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       return 0;
+}
+
+void update_pitch(struct loopback *loop)
+{
+       double pitch = loop->pitch;
+
+#ifdef USE_SAMPLERATE
+       if (loop->sync == SYNC_TYPE_SAMPLERATE) {
+               loop->src_data.src_ratio = (double)1.0 / (pitch *
+                               loop->play->pitch * loop->capt->pitch);
+               if (verbose > 2)
+                       snd_output_printf(loop->output, "%s: Samplerate src_ratio update1: %.8f\n", loop->id, loop->src_data.src_ratio);
+       } else
+#endif
+       if (loop->sync == SYNC_TYPE_CAPTRATESHIFT) {
+               set_rate_shift(loop->capt, pitch);
+#ifdef USE_SAMPLERATE
+               if (loop->use_samplerate) {
+                       loop->src_data.src_ratio = 
+                               (double)1.0 /
+                                       (loop->play->pitch * loop->capt->pitch);
+                       if (verbose > 2)
+                               snd_output_printf(loop->output, "%s: Samplerate src_ratio update2: %.8f\n", loop->id, loop->src_data.src_ratio);
+               }
+#endif
+       }
+       else if (loop->sync == SYNC_TYPE_PLAYRATESHIFT) {
+               set_rate_shift(loop->play, pitch);
+#ifdef USE_SAMPLERATE
+               if (loop->use_samplerate) {
+                       loop->src_data.src_ratio = 
+                               (double)1.0 /
+                                       (loop->play->pitch * loop->capt->pitch);
+                       if (verbose > 2)
+                               snd_output_printf(loop->output, "%s: Samplerate src_ratio update3: %.8f\n", loop->id, loop->src_data.src_ratio);
+               }
+#endif
+       }
+       if (verbose)
+               snd_output_printf(loop->output, "New pitch for %s: %.8f (min/max samples = %li/%li)\n", loop->id, pitch, loop->pitch_diff_min, loop->pitch_diff_max);
+}
+
+static int get_active(struct loopback_handle *lhandle)
+{
+       int err;
+
+       if (lhandle->ctl_active == NULL)
+               return 0;
+       err = snd_ctl_elem_read(lhandle->ctl, lhandle->ctl_active);
+       if (err < 0) {
+               logit(LOG_CRIT, "Cannot get PCM Slave Active element for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       return snd_ctl_elem_value_get_boolean(lhandle->ctl_active, 0);
+}
+
+static int get_format(struct loopback_handle *lhandle)
+{
+       int err;
+
+       if (lhandle->ctl_format == NULL)
+               return 0;
+       err = snd_ctl_elem_read(lhandle->ctl, lhandle->ctl_format);
+       if (err < 0) {
+               logit(LOG_CRIT, "Cannot get PCM Format element for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       return snd_ctl_elem_value_get_integer(lhandle->ctl_format, 0);
+}
+
+static int get_rate(struct loopback_handle *lhandle)
+{
+       int err;
+
+       if (lhandle->ctl_rate == NULL)
+               return 0;
+       err = snd_ctl_elem_read(lhandle->ctl, lhandle->ctl_rate);
+       if (err < 0) {
+               logit(LOG_CRIT, "Cannot get PCM Rate element for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       return snd_ctl_elem_value_get_integer(lhandle->ctl_rate, 0);
+}
+
+static int get_channels(struct loopback_handle *lhandle)
+{
+       int err;
+
+       if (lhandle->ctl_channels == NULL)
+               return 0;
+       err = snd_ctl_elem_read(lhandle->ctl, lhandle->ctl_channels);
+       if (err < 0) {
+               logit(LOG_CRIT, "Cannot get PCM Channels element for %s: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       return snd_ctl_elem_value_get_integer(lhandle->ctl_channels, 0);
+}
+
+static void openctl_elem(struct loopback_handle *lhandle,
+                        int device, int subdevice,
+                        const char *name,
+                        snd_ctl_elem_value_t **elem)
+{
+       int err;
+
+       if (snd_ctl_elem_value_malloc(elem) < 0) {
+               *elem = NULL;
+       } else {
+               snd_ctl_elem_value_set_interface(*elem,
+                                                SND_CTL_ELEM_IFACE_PCM);
+               snd_ctl_elem_value_set_device(*elem, device);
+               snd_ctl_elem_value_set_subdevice(*elem, subdevice);
+               snd_ctl_elem_value_set_name(*elem, name);
+               err = snd_ctl_elem_read(lhandle->ctl, *elem);
+               if (err < 0) {
+                       snd_ctl_elem_value_free(*elem);
+                       *elem = NULL;
+               }
+       }
+}
+
+static int openctl(struct loopback_handle *lhandle, int device, int subdevice)
+{
+       int err;
+
+       lhandle->ctl_rate_shift = NULL;
+       if (lhandle->loopback->play == lhandle) {
+               if (lhandle->loopback->controls)
+                       goto __events;
+               return 0;
+       }
+       openctl_elem(lhandle, device, subdevice, "PCM Notify",
+                       &lhandle->ctl_notify);
+       openctl_elem(lhandle, device, subdevice, "PCM Rate Shift 100000",
+                       &lhandle->ctl_rate_shift);
+       set_rate_shift(lhandle, 1);
+       openctl_elem(lhandle, device, subdevice, "PCM Slave Active",
+                       &lhandle->ctl_active);
+       openctl_elem(lhandle, device, subdevice, "PCM Slave Format",
+                       &lhandle->ctl_format);
+       openctl_elem(lhandle, device, subdevice, "PCM Slave Rate",
+                       &lhandle->ctl_rate);
+       openctl_elem(lhandle, device, subdevice, "PCM Slave Channels",
+                       &lhandle->ctl_channels);
+       if ((lhandle->ctl_active &&
+            lhandle->ctl_format &&
+            lhandle->ctl_rate &&
+            lhandle->ctl_channels) ||
+           lhandle->loopback->controls) {
+             __events:
+               if ((err = snd_ctl_poll_descriptors_count(lhandle->ctl)) < 0)
+                       lhandle->ctl_pollfd_count = 0;
+               else
+                       lhandle->ctl_pollfd_count = err;
+               if (snd_ctl_subscribe_events(lhandle->ctl, 1) < 0)
+                       lhandle->ctl_pollfd_count = 0;
+       }
+       return 0;
+}
+
+static int openit(struct loopback_handle *lhandle)
+{
+       snd_pcm_info_t *info;
+       int stream = lhandle == lhandle->loopback->play ?
+                               SND_PCM_STREAM_PLAYBACK :
+                               SND_PCM_STREAM_CAPTURE;
+       int err, card, device, subdevice;
+       pcm_open_lock();
+       err = snd_pcm_open(&lhandle->handle, lhandle->device, stream, SND_PCM_NONBLOCK);
+       pcm_open_unlock();
+       if (err < 0) {
+               logit(LOG_CRIT, "%s open error: %s\n", lhandle->id, snd_strerror(err));
+               return err;
+       }
+       if ((err = snd_pcm_info_malloc(&info)) < 0)
+               return err;
+       if ((err = snd_pcm_info(lhandle->handle, info)) < 0) {
+               snd_pcm_info_free(info);
+               return err;
+       }
+       card = snd_pcm_info_get_card(info);
+       device = snd_pcm_info_get_device(info);
+       subdevice = snd_pcm_info_get_subdevice(info);
+       snd_pcm_info_free(info);
+       lhandle->card_number = card;
+       lhandle->ctl = NULL;
+       if (card >= 0 || lhandle->ctldev) {
+               char name[16], *dev = lhandle->ctldev;
+               if (dev == NULL) {
+                       sprintf(name, "hw:%i", card);
+                       dev = name;
+               }
+               pcm_open_lock();
+               err = snd_ctl_open(&lhandle->ctl, dev, SND_CTL_NONBLOCK);
+               pcm_open_unlock();
+               if (err < 0) {
+                       logit(LOG_CRIT, "%s [%s] ctl open error: %s\n", lhandle->id, dev, snd_strerror(err));
+                       lhandle->ctl = NULL;
+               }
+               if (lhandle->ctl)
+                       openctl(lhandle, device, subdevice);
+       }
+       return 0;
+}
+
+static int freeit(struct loopback_handle *lhandle)
+{
+       free(lhandle->buf);
+       lhandle->buf = NULL;
+       return 0;
+}
+
+static int closeit(struct loopback_handle *lhandle)
+{
+       int err = 0;
+
+       set_rate_shift(lhandle, 1);
+       if (lhandle->ctl_rate_shift)
+               snd_ctl_elem_value_free(lhandle->ctl_rate_shift);
+       lhandle->ctl_rate_shift = NULL;
+       if (lhandle->ctl)
+               err = snd_ctl_close(lhandle->ctl);
+       lhandle->ctl = NULL;
+       if (lhandle->handle)
+               err = snd_pcm_close(lhandle->handle);
+       lhandle->handle = NULL;
+       return err;
+}
+
+static int init_handle(struct loopback_handle *lhandle, int alloc)
+{
+       snd_pcm_uframes_t lat;
+       lhandle->frame_size = (snd_pcm_format_width(lhandle->format) / 8) *
+                                                          lhandle->channels;
+       lhandle->sync_point = lhandle->rate * 15;       /* every 15 seconds */
+       lat = lhandle->loopback->latency;
+       if (lhandle->buffer_size > lat)
+               lat = lhandle->buffer_size;
+       lhandle->buf_size = lat * 2;
+       if (alloc) {
+               lhandle->buf = calloc(1, lhandle->buf_size * lhandle->frame_size);
+               if (lhandle->buf == NULL)
+                       return -ENOMEM;
+       }
+       return 0;
+}
+
+int pcmjob_init(struct loopback *loop)
+{
+       int err;
+       char id[128];
+
+#ifdef FILE_CWRITE
+       loop->cfile = fopen(FILE_CWRITE, "w+");
+#endif
+#ifdef FILE_PWRITE
+       loop->pfile = fopen(FILE_PWRITE, "w+");
+#endif
+       if ((err = openit(loop->play)) < 0)
+               goto __error;
+       if ((err = openit(loop->capt)) < 0)
+               goto __error;
+       snprintf(id, sizeof(id), "%s/%s", loop->play->id, loop->capt->id);
+       id[sizeof(id)-1] = '\0';
+       loop->id = strdup(id);
+       if (loop->sync == SYNC_TYPE_AUTO && loop->capt->ctl_rate_shift)
+               loop->sync = SYNC_TYPE_CAPTRATESHIFT;
+       if (loop->sync == SYNC_TYPE_AUTO && loop->play->ctl_rate_shift)
+               loop->sync = SYNC_TYPE_PLAYRATESHIFT;
+#ifdef USE_SAMPLERATE
+       if (loop->sync == SYNC_TYPE_AUTO && loop->src_enable)
+               loop->sync = SYNC_TYPE_SAMPLERATE;
+#endif
+       if (loop->sync == SYNC_TYPE_AUTO)
+               loop->sync = SYNC_TYPE_SIMPLE;
+       if (loop->slave == SLAVE_TYPE_AUTO &&
+           loop->capt->ctl_notify &&
+           loop->capt->ctl_active &&
+           loop->capt->ctl_format &&
+           loop->capt->ctl_rate &&
+           loop->capt->ctl_channels)
+               loop->slave = SLAVE_TYPE_ON;
+       if (loop->slave == SLAVE_TYPE_ON) {
+               err = set_notify(loop->capt, 1);
+               if (err < 0)
+                       goto __error;
+               if (loop->capt->ctl_notify == NULL ||
+                   snd_ctl_elem_value_get_boolean(loop->capt->ctl_notify, 0) == 0) {
+                       logit(LOG_CRIT, "unable to enable slave mode for %s\n", loop->id);
+                       err = -EINVAL;
+                       goto __error;
+               }
+       }
+       err = control_init(loop);
+       if (err < 0)
+               goto __error;
+       return 0;
+      __error:
+       pcmjob_done(loop);
+       return err;
+}
+
+static void freeloop(struct loopback *loop)
+{
+#ifdef USE_SAMPLERATE
+       if (loop->use_samplerate) {
+               if (loop->src_state)
+                       src_delete(loop->src_state);
+               loop->src_state = NULL;
+               free(loop->src_data.data_in);
+               loop->src_data.data_in = NULL;
+               free(loop->src_data.data_out);
+               loop->src_data.data_out = NULL;
+       }
+#endif
+       if (loop->play->buf == loop->capt->buf)
+               loop->play->buf = NULL;
+       freeit(loop->play);
+       freeit(loop->capt);
+}
+
+int pcmjob_done(struct loopback *loop)
+{
+       control_done(loop);
+       closeit(loop->play);
+       closeit(loop->capt);
+       freeloop(loop);
+       free(loop->id);
+       loop->id = NULL;
+#ifdef FILE_PWRITE
+       if (loop->pfile) {
+               fclose(loop->pfile);
+               loop->pfile = NULL;
+       }
+#endif
+#ifdef FILE_CWRITE
+       if (loop->cfile) {
+               fclose(loop->cfile);
+               loop->cfile = NULL;
+       }
+#endif
+       return 0;
+}
+
+static void lhandle_start(struct loopback_handle *lhandle)
+{
+       lhandle->buf_pos = 0;
+       lhandle->buf_count = 0;
+       lhandle->counter = 0;
+       lhandle->total_queued = 0;
+}
+
+int pcmjob_start(struct loopback *loop)
+{
+       snd_pcm_uframes_t count;
+       int err;
+
+       loop->pollfd_count = loop->play->ctl_pollfd_count +
+                            loop->capt->ctl_pollfd_count;
+       if ((err = snd_pcm_poll_descriptors_count(loop->play->handle)) < 0)
+               goto __error;
+       loop->play->pollfd_count = err;
+       loop->pollfd_count += err;
+       if ((err = snd_pcm_poll_descriptors_count(loop->capt->handle)) < 0)
+               goto __error;
+       loop->capt->pollfd_count = err;
+       loop->pollfd_count += err;
+       if (loop->slave == SLAVE_TYPE_ON) {
+               err = get_active(loop->capt);
+               if (err < 0)
+                       goto __error;
+               if (err == 0)           /* stream is not active */
+                       return 0;
+               err = get_format(loop->capt);
+               if (err < 0)
+                       goto __error;
+               loop->play->format = loop->capt->format = err;
+               err = get_rate(loop->capt);
+               if (err < 0)
+                       goto __error;
+               loop->play->rate_req = loop->capt->rate_req = err;
+               err = get_channels(loop->capt);
+               if (err < 0)
+                       goto __error;
+               loop->play->channels = loop->capt->channels = err;
+       }
+       loop->reinit = 0;
+       loop->use_samplerate = 0;
+       if (loop->latency_req) {
+               loop->latency_reqtime = frames_to_time(loop->play->rate_req,
+                                                      loop->latency_req);
+               loop->latency_req = 0;
+       }
+       loop->latency = time_to_frames(loop->play->rate_req, loop->latency_reqtime);
+       if ((err = setparams(loop, loop->latency/2)) < 0)
+               goto __error;
+       if (verbose)
+               showlatency(loop->output, loop->latency, loop->play->rate_req, "Latency");
+       if (loop->play->access == loop->capt->access &&
+           loop->play->format == loop->capt->format &&
+           loop->play->rate == loop->capt->rate &&
+           loop->play->channels == loop->play->channels &&
+           loop->sync != SYNC_TYPE_SAMPLERATE) {
+               if (verbose > 1)
+                       snd_output_printf(loop->output, "shared buffer!!!\n");
+               if ((err = init_handle(loop->play, 1)) < 0)
+                       goto __error;
+               if ((err = init_handle(loop->capt, 0)) < 0)
+                       goto __error;
+               if (loop->play->buf_size < loop->capt->buf_size) {
+                       char *nbuf = realloc(loop->play->buf,
+                                            loop->capt->buf_size *
+                                              loop->capt->frame_size);
+                       if (nbuf == NULL) {
+                               err = -ENOMEM;
+                               goto __error;
+                       }
+                       loop->play->buf = nbuf;
+                       loop->play->buf_size = loop->capt->buf_size;
+               } else if (loop->capt->buf_size < loop->play->buf_size) {
+                       char *nbuf = realloc(loop->capt->buf,
+                                            loop->play->buf_size *
+                                              loop->play->frame_size);
+                       if (nbuf == NULL) {
+                               err = -ENOMEM;
+                               goto __error;
+                       }
+                       loop->capt->buf = nbuf;
+                       loop->capt->buf_size = loop->play->buf_size;
+               }
+               loop->capt->buf = loop->play->buf;
+       } else {
+               if ((err = init_handle(loop->play, 1)) < 0)
+                       goto __error;
+               if ((err = init_handle(loop->capt, 1)) < 0)
+                       goto __error;
+               if (loop->play->rate_req != loop->play->rate)
+                       loop->use_samplerate = 1;
+               if (loop->capt->rate_req != loop->capt->rate)
+                       loop->use_samplerate = 1;
+       }
+#ifdef USE_SAMPLERATE
+       if (loop->sync == SYNC_TYPE_SAMPLERATE)
+               loop->use_samplerate = 1;
+       if (loop->use_samplerate && !loop->src_enable) {
+               logit(LOG_CRIT, "samplerate conversion required but disabled\n");
+               loop->use_samplerate = 0;
+               err = -EIO;
+               goto __error;           
+       }
+       if (loop->use_samplerate) {
+               if ((loop->capt->format != SND_PCM_FORMAT_S16 ||
+                   loop->play->format != SND_PCM_FORMAT_S16) &&
+                   (loop->capt->format != SND_PCM_FORMAT_S32 ||
+                    loop->play->format != SND_PCM_FORMAT_S32)) {
+                       logit(LOG_CRIT, "samplerate conversion supports only %s or %s formats (play=%s, capt=%s)\n", snd_pcm_format_name(SND_PCM_FORMAT_S16), snd_pcm_format_name(SND_PCM_FORMAT_S32), snd_pcm_format_name(loop->play->format), snd_pcm_format_name(loop->capt->format));
+                       loop->use_samplerate = 0;
+                       err = -EIO;
+                       goto __error;           
+               }
+               loop->src_state = src_new(loop->src_converter_type,
+                                         loop->play->channels, &err);
+               loop->src_data.data_in = calloc(1, sizeof(float)*loop->capt->channels*loop->capt->buf_size);
+               if (loop->src_data.data_in == NULL) {
+                       err = -ENOMEM;
+                       goto __error;
+               }
+               loop->src_data.data_out =  calloc(1, sizeof(float)*loop->play->channels*loop->play->buf_size);
+               if (loop->src_data.data_out == NULL) {
+                       err = -ENOMEM;
+                       goto __error;
+               }
+               loop->src_data.src_ratio = (double)loop->play->rate /
+                                          (double)loop->capt->rate;
+               loop->src_data.end_of_input = 0;
+               loop->src_out_frames = 0;
+       } else {
+               loop->src_state = NULL;
+       }
+#else
+       if (loop->sync == SYNC_TYPE_SAMPLERATE || loop->use_samplerate) {
+               logit(LOG_CRIT, "alsaloop is compiled without libsamplerate support\n");
+               err = -EIO;
+               goto __error;
+       }
+#endif
+       if (verbose) {
+               snd_output_printf(loop->output, "%s sync type: %s", loop->id, sync_types[loop->sync]);
+#ifdef USE_SAMPLERATE
+               if (loop->sync == SYNC_TYPE_SAMPLERATE)
+                       snd_output_printf(loop->output, " (%s)", src_types[loop->src_converter_type]);
+#endif
+               snd_output_printf(loop->output, "\n");
+       }
+       lhandle_start(loop->play);
+       lhandle_start(loop->capt);
+       if ((err = snd_pcm_format_set_silence(loop->play->format,
+                                             loop->play->buf,
+                                             loop->play->buf_size * loop->play->channels)) < 0) {
+               logit(LOG_CRIT, "%s: silence error\n", loop->id);
+               goto __error;
+       }
+       if (verbose > 4)
+               snd_output_printf(loop->output, "%s: capt->buffer_size = %li, play->buffer_size = %li\n", loop->id, loop->capt->buf_size, loop->play->buf_size);
+       loop->pitch = 1.0;
+       update_pitch(loop);
+       loop->pitch_delta = 1.0 / ((double)loop->capt->rate * 4);
+       loop->total_queued_count = 0;
+       loop->pitch_diff = 0;
+       count = get_whole_latency(loop) / loop->play->pitch;
+       loop->play->buf_count = count;
+       if (loop->play->buf == loop->capt->buf)
+               loop->capt->buf_pos = count;
+       err = writeit(loop->play);
+       if (verbose > 4)
+               snd_output_printf(loop->output, "%s: silence queued %i samples\n", loop->id, err);
+       if (count > loop->play->buffer_size)
+               count = loop->play->buffer_size;
+       if (err != count) {
+               logit(LOG_CRIT, "%s: initial playback fill error (%i/%i/%i)\n", loop->id, err, (int)count, loop->play->buffer_size);
+               err = -EIO;
+               goto __error;
+       }
+       loop->running = 1;
+       loop->stop_pending = 0;
+       if (loop->xrun) {
+               getcurtimestamp(&loop->xrun_last_update);
+               loop->xrun_last_pdelay = XRUN_PROFILE_UNKNOWN;
+               loop->xrun_last_cdelay = XRUN_PROFILE_UNKNOWN;
+               loop->xrun_max_proctime = 0;
+       }
+       if ((err = snd_pcm_start(loop->capt->handle)) < 0) {
+               logit(LOG_CRIT, "pcm start %s error: %s\n", loop->capt->id, snd_strerror(err));
+               goto __error;
+       }
+       if (!loop->linked) {
+               if ((err = snd_pcm_start(loop->play->handle)) < 0) {
+                       logit(LOG_CRIT, "pcm start %s error: %s\n", loop->play->id, snd_strerror(err));
+                       goto __error;
+               }
+       }
+       return 0;
+      __error:
+       pcmjob_stop(loop);
+       return err;
+}
+
+int pcmjob_stop(struct loopback *loop)
+{
+       int err;
+
+       if (loop->running) {
+               if ((err = snd_pcm_drop(loop->capt->handle)) < 0)
+                       logit(LOG_WARNING, "pcm drop %s error: %s\n", loop->capt->id, snd_strerror(err));
+               if ((err = snd_pcm_drop(loop->play->handle)) < 0)
+                       logit(LOG_WARNING, "pcm drop %s error: %s\n", loop->play->id, snd_strerror(err));
+               if ((err = snd_pcm_hw_free(loop->capt->handle)) < 0)
+                       logit(LOG_WARNING, "pcm hw_free %s error: %s\n", loop->capt->id, snd_strerror(err));
+               if ((err = snd_pcm_hw_free(loop->play->handle)) < 0)
+                       logit(LOG_WARNING, "pcm hw_free %s error: %s\n", loop->play->id, snd_strerror(err));
+               loop->running = 0;
+       }
+       freeloop(loop);
+       return 0;
+}
+
+int pcmjob_pollfds_init(struct loopback *loop, struct pollfd *fds)
+{
+       int err, idx = 0;
+
+       if (loop->running) {
+               err = snd_pcm_poll_descriptors(loop->play->handle, fds + idx, loop->play->pollfd_count);
+               if (err < 0)
+                       return err;
+               idx += loop->play->pollfd_count;
+               err = snd_pcm_poll_descriptors(loop->capt->handle, fds + idx, loop->capt->pollfd_count);
+               if (err < 0)
+                       return err;
+               idx += loop->capt->pollfd_count;
+       }
+       if (loop->play->ctl_pollfd_count > 0 &&
+           (loop->slave == SLAVE_TYPE_ON || loop->controls)) {
+               err = snd_ctl_poll_descriptors(loop->play->ctl, fds + idx, loop->play->ctl_pollfd_count);
+               if (err < 0)
+                       return err;
+               idx += loop->play->ctl_pollfd_count;
+       }
+       if (loop->capt->ctl_pollfd_count > 0 &&
+           (loop->slave == SLAVE_TYPE_ON || loop->controls)) {
+               err = snd_ctl_poll_descriptors(loop->capt->ctl, fds + idx, loop->capt->ctl_pollfd_count);
+               if (err < 0)
+                       return err;
+               idx += loop->capt->ctl_pollfd_count;
+       }
+       loop->active_pollfd_count = idx;
+       return idx;
+}
+
+static snd_pcm_sframes_t get_queued_playback_samples(struct loopback *loop)
+{
+       snd_pcm_sframes_t delay;
+       int err;
+
+       if ((err = snd_pcm_delay(loop->play->handle, &delay)) < 0)
+               return 0;
+       loop->play->last_delay = delay;
+       delay += loop->play->buf_count;
+#ifdef USE_SAMPLERATE
+       delay += loop->src_out_frames;
+#endif
+       return delay;
+}
+
+static snd_pcm_sframes_t get_queued_capture_samples(struct loopback *loop)
+{
+       snd_pcm_sframes_t delay;
+       int err;
+
+       if ((err = snd_pcm_delay(loop->capt->handle, &delay)) < 0)
+               return 0;
+       loop->capt->last_delay = delay;
+       delay += loop->capt->buf_count;
+       return delay;
+}
+
+static int ctl_event_check(snd_ctl_elem_value_t *val, snd_ctl_event_t *ev)
+{
+       snd_ctl_elem_id_t *id1, *id2;
+       snd_ctl_elem_id_alloca(&id1);
+       snd_ctl_elem_id_alloca(&id2);
+       snd_ctl_elem_value_get_id(val, id1);
+       snd_ctl_event_elem_get_id(ev, id2);
+       if (snd_ctl_event_elem_get_mask(ev) == SND_CTL_EVENT_MASK_REMOVE)
+               return 0;
+       if ((snd_ctl_event_elem_get_mask(ev) & SND_CTL_EVENT_MASK_VALUE) == 0)
+               return 0;
+       return control_id_match(id1, id2);
+}
+
+static int handle_ctl_events(struct loopback_handle *lhandle,
+                            unsigned short events)
+{
+       struct loopback *loop = lhandle->loopback;
+       snd_ctl_event_t *ev;
+       int err, restart = 0;
+
+       snd_ctl_event_alloca(&ev);
+       while ((err = snd_ctl_read(lhandle->ctl, ev)) != 0 && err != -EAGAIN) {
+               if (err < 0)
+                       break;
+               if (snd_ctl_event_get_type(ev) != SND_CTL_EVENT_ELEM)
+                       continue;
+               if (lhandle == loop->play)
+                       goto __ctl_check;
+               if (verbose > 6)
+                       snd_output_printf(loop->output, "%s: ctl event!!!! %s\n", lhandle->id, snd_ctl_event_elem_get_name(ev));
+               if (ctl_event_check(lhandle->ctl_active, ev)) {
+                       continue;
+               } else if (ctl_event_check(lhandle->ctl_format, ev)) {
+                       err = get_format(lhandle);
+                       if (lhandle->format != err)
+                               restart = 1;
+                       continue;
+               } else if (ctl_event_check(lhandle->ctl_rate, ev)) {
+                       err = get_rate(lhandle);
+                       if (lhandle->rate != err)
+                               restart = 1;
+                       continue;
+               } else if (ctl_event_check(lhandle->ctl_channels, ev)) {
+                       err = get_channels(lhandle);
+                       if (lhandle->channels != err)
+                               restart = 1;
+                       continue;
+               }
+             __ctl_check:
+               control_event(lhandle, ev);
+       }
+       err = get_active(lhandle);
+       if (verbose > 7)
+               snd_output_printf(loop->output, "%s: ctl event active %i\n", lhandle->id, err);
+       if (!err) {
+               if (lhandle->loopback->running) {
+                       loop->stop_pending = 1;
+                       loop->stop_count = 0;
+               }
+       } else {
+               loop->stop_pending = 0;
+               if (loop->running == 0)
+                       restart = 1;
+       }
+       if (restart) {
+               pcmjob_stop(loop);
+               err = pcmjob_start(loop);
+               if (err < 0)
+                       return err;
+       }
+       return 1;
+}
+
+int pcmjob_pollfds_handle(struct loopback *loop, struct pollfd *fds)
+{
+       struct loopback_handle *play = loop->play;
+       struct loopback_handle *capt = loop->capt;
+       unsigned short prevents, crevents, events;
+       snd_pcm_uframes_t ccount, pcount;
+       int err, loopcount = 10, idx;
+
+       if (verbose > 11)
+               snd_output_printf(loop->output, "%s: pollfds handle\n", loop->id);
+       if (verbose > 13 || loop->xrun)
+               getcurtimestamp(&loop->tstamp_start);
+       if (verbose > 12) {
+               snd_pcm_sframes_t pdelay, cdelay;
+               if ((err = snd_pcm_delay(play->handle, &pdelay)) < 0)
+                       snd_output_printf(loop->output, "%s: delay error: %s / %li / %li\n", play->id, snd_strerror(err), play->buf_size, play->buf_count);
+               else
+                       snd_output_printf(loop->output, "%s: delay %li / %li / %li\n", play->id, pdelay, play->buf_size, play->buf_count);
+               if ((err = snd_pcm_delay(capt->handle, &cdelay)) < 0)
+                       snd_output_printf(loop->output, "%s: delay error: %s / %li / %li\n", capt->id, snd_strerror(err), capt->buf_size, capt->buf_count);
+               else
+                       snd_output_printf(loop->output, "%s: delay %li / %li / %li\n", capt->id, cdelay, capt->buf_size, capt->buf_count);
+       }
+       idx = 0;
+       if (loop->running) {
+               err = snd_pcm_poll_descriptors_revents(play->handle, fds,
+                                                      play->pollfd_count,
+                                                      &prevents);
+               if (err < 0)
+                       return err;
+               idx += play->pollfd_count;
+               err = snd_pcm_poll_descriptors_revents(capt->handle, fds + idx,
+                                                      capt->pollfd_count,
+                                                      &crevents);
+               if (err < 0)
+                       return err;
+               idx += capt->pollfd_count;
+               if (loop->xrun) {
+                       if (prevents || crevents) {
+                               loop->xrun_last_wake = loop->xrun_last_wake0;
+                               loop->xrun_last_wake0 = loop->tstamp_start;
+                       }
+                       loop->xrun_last_check = loop->xrun_last_check0;
+                       loop->xrun_last_check0 = loop->tstamp_start;
+               }
+       } else {
+               prevents = crevents = 0;
+       }
+       if (play->ctl_pollfd_count > 0 &&
+           (loop->slave == SLAVE_TYPE_ON || loop->controls)) {
+               err = snd_ctl_poll_descriptors_revents(play->ctl, fds + idx,
+                                                      play->ctl_pollfd_count,
+                                                      &events);
+               if (err < 0)
+                       return err;
+               if (events) {
+                       err = handle_ctl_events(play, events);
+                       if (err == 1)
+                               return 0;
+                       if (err < 0)
+                               return err;
+               }
+               idx += play->ctl_pollfd_count;
+       }
+       if (capt->ctl_pollfd_count > 0 &&
+           (loop->slave == SLAVE_TYPE_ON || loop->controls)) {
+               err = snd_ctl_poll_descriptors_revents(capt->ctl, fds + idx,
+                                                      capt->ctl_pollfd_count,
+                                                      &events);
+               if (err < 0)
+                       return err;
+               if (events) {
+                       err = handle_ctl_events(capt, events);
+                       if (err == 1)
+                               return 0;
+                       if (err < 0)
+                               return err;
+               }
+               idx += capt->ctl_pollfd_count;
+       }
+       if (verbose > 9)
+               snd_output_printf(loop->output, "%s: prevents = 0x%x, crevents = 0x%x\n", loop->id, prevents, crevents);
+       if (!loop->running)
+               goto __pcm_end;
+       do {
+               ccount = readit(capt);
+               buf_add(loop, ccount);
+               if (capt->xrun_pending || loop->reinit)
+                       break;
+               /* we read new samples, if we have a room in the playback
+                  buffer, feed them there */
+               pcount = writeit(play);
+               buf_remove(loop, pcount);
+               if (play->xrun_pending || loop->reinit)
+                       break;
+               loopcount--;
+       } while ((ccount > 0 || pcount > 0) && loopcount > 0);
+       if (play->xrun_pending || capt->xrun_pending) {
+               if ((err = xrun_sync(loop)) < 0)
+                       return err;
+       }
+       if (loop->reinit) {
+               err = pcmjob_stop(loop);
+               if (err < 0)
+                       return err;
+               err = pcmjob_start(loop);
+               if (err < 0)
+                       return err;
+       }
+       if (loop->sync != SYNC_TYPE_NONE &&
+           play->counter >= play->sync_point &&
+           capt->counter >= play->sync_point) {
+               snd_pcm_sframes_t diff, lat = get_whole_latency(loop);
+               diff = ((double)(((double)play->total_queued * play->pitch) +
+                                ((double)capt->total_queued * capt->pitch)) /
+                       (double)loop->total_queued_count) - lat;
+               /* FIXME: this algorithm may be slightly better */
+               if (verbose > 3)
+                       snd_output_printf(loop->output, "%s: sync diff %li old diff %li\n", loop->id, diff, loop->pitch_diff);
+               if (diff > 0) {
+                       if (diff == loop->pitch_diff)
+                               loop->pitch += loop->pitch_delta;
+                       else if (diff > loop->pitch_diff)
+                               loop->pitch += loop->pitch_delta*2;
+               } else if (diff < 0) {
+                       if (diff == loop->pitch_diff)
+                               loop->pitch -= loop->pitch_delta;
+                       else if (diff < loop->pitch_diff)
+                               loop->pitch -= loop->pitch_delta*2;
+               }
+               loop->pitch_diff = diff;
+               if (loop->pitch_diff_min > diff)
+                       loop->pitch_diff_min = diff;
+               if (loop->pitch_diff_max < diff)
+                       loop->pitch_diff_max = diff;
+               update_pitch(loop);
+               play->counter -= play->sync_point;
+               capt->counter -= play->sync_point;
+               play->total_queued = 0;
+               capt->total_queued = 0;
+               loop->total_queued_count = 0;
+       }
+       if (loop->sync != SYNC_TYPE_NONE) {
+               snd_pcm_sframes_t pqueued, cqueued;
+               pqueued = get_queued_playback_samples(loop);
+               cqueued = get_queued_capture_samples(loop);
+               if (verbose > 4)
+                       snd_output_printf(loop->output, "%s: queued %li/%li samples\n", loop->id, pqueued, cqueued);
+               if (pqueued > 0)
+                       play->total_queued += pqueued;
+               if (cqueued > 0)
+                       capt->total_queued += cqueued;
+               if (pqueued > 0 || cqueued > 0)
+                       loop->total_queued_count += 1;
+       }
+       if (verbose > 12) {
+               snd_pcm_sframes_t pdelay, cdelay;
+               if ((err = snd_pcm_delay(play->handle, &pdelay)) < 0)
+                       snd_output_printf(loop->output, "%s: end delay error: %s / %li / %li\n", play->id, snd_strerror(err), play->buf_size, play->buf_count);
+               else
+                       snd_output_printf(loop->output, "%s: end delay %li / %li / %li\n", play->id, pdelay, play->buf_size, play->buf_count);
+               if ((err = snd_pcm_delay(capt->handle, &cdelay)) < 0)
+                       snd_output_printf(loop->output, "%s: end delay error: %s / %li / %li\n", capt->id, snd_strerror(err), capt->buf_size, capt->buf_count);
+               else
+                       snd_output_printf(loop->output, "%s: end delay %li / %li / %li\n", capt->id, cdelay, capt->buf_size, capt->buf_count);
+       }
+      __pcm_end:
+       if (verbose > 13 || loop->xrun) {
+               long diff;
+               getcurtimestamp(&loop->tstamp_end);
+               diff = timediff(loop->tstamp_end, loop->tstamp_start);
+               if (verbose > 13)
+                       snd_output_printf(loop->output, "%s: processing time %lius\n", loop->id, diff);
+               if (loop->xrun && loop->xrun_max_proctime < diff)
+                       loop->xrun_max_proctime = diff;
+       }
+       return 0;
+}
+
+#define OUT(args...) \
+       snd_output_printf(loop->state, ##args)
+
+static pthread_mutex_t state_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+static void show_handle(struct loopback_handle *lhandle, const char *id)
+{
+       struct loopback *loop = lhandle->loopback;
+
+       OUT("  %s: %s:\n", id, lhandle->id);
+       OUT("    device = '%s', ctldev '%s'\n", lhandle->device, lhandle->ctldev);
+       OUT("    card_number = %i\n", lhandle->card_number);
+       if (!loop->running)
+               return;
+       OUT("    access = %s, format = %s, rate = %u, channels = %u\n", snd_pcm_access_name(lhandle->access), snd_pcm_format_name(lhandle->format), lhandle->rate, lhandle->channels);
+       OUT("    buffer_size = %u, period_size = %u, avail_min = %li\n", lhandle->buffer_size, lhandle->period_size, lhandle->avail_min);
+       OUT("    xrun_pending = %i\n", lhandle->xrun_pending);
+       OUT("    buf_size = %li, buf_pos = %li, buf_count = %li, buf_over = %li\n", lhandle->buf_size, lhandle->buf_pos, lhandle->buf_count, lhandle->buf_over);
+       OUT("    pitch = %.8f\n", lhandle->pitch);
+}
+
+void pcmjob_state(struct loopback *loop)
+{
+       pthread_t self = pthread_self();
+       pthread_mutex_lock(&state_mutex);
+       OUT("State dump for thread %p job %i: %s:\n", (void *)self, loop->thread, loop->id);
+       OUT("  running = %i\n", loop->running);
+       OUT("  sync = %i\n", loop->sync);
+       OUT("  slave = %i\n", loop->slave);
+       if (!loop->running)
+               goto __skip;
+       OUT("  pollfd_count = %i\n", loop->pollfd_count);
+       OUT("  pitch = %.8f, delta = %.8f, diff = %li, min = %li, max = %li\n", loop->pitch, loop->pitch_delta, loop->pitch_diff, loop->pitch_diff_min, loop->pitch_diff_max);
+       OUT("  use_samplerate = %i\n", loop->use_samplerate);
+      __skip:
+       show_handle(loop->play, "playback");
+       show_handle(loop->capt, "capture");
+       pthread_mutex_unlock(&state_mutex);
+}
index 1de47c6..8a82323 100644 (file)
@@ -15,6 +15,7 @@ alsamixer_SOURCES = card_select.c card_select.h \
                proc_files.c proc_files.h \
                textbox.c textbox.h \
                utils.c utils.h \
+               volume_mapping.c volume_mapping.h \
                widget.c widget.h
 man_MANS = alsamixer.1
 EXTRA_DIST = alsamixer.1
index f17df45..daefb4e 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,27 +49,49 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am_alsamixer_OBJECTS = card_select.$(OBJEXT) cli.$(OBJEXT) \
        colors.$(OBJEXT) device_name.$(OBJEXT) die.$(OBJEXT) \
        mainloop.$(OBJEXT) mem.$(OBJEXT) mixer_controls.$(OBJEXT) \
        mixer_display.$(OBJEXT) mixer_widget.$(OBJEXT) \
        proc_files.$(OBJEXT) textbox.$(OBJEXT) utils.$(OBJEXT) \
-       widget.$(OBJEXT)
+       volume_mapping.$(OBJEXT) widget.$(OBJEXT)
 alsamixer_OBJECTS = $(am_alsamixer_OBJECTS)
 alsamixer_LDADD = $(LDADD)
 alsamixer_DEPENDENCIES =
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(alsamixer_SOURCES)
 DIST_SOURCES = $(alsamixer_SOURCES)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -79,15 +99,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -111,14 +126,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -136,6 +144,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -148,6 +157,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -158,14 +168,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -177,6 +187,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -206,8 +217,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 AM_CFLAGS = @CURSES_CFLAGS@ -DCURSESINC="@CURSESINC@"
 LDADD = @CURSESLIB@
@@ -224,6 +241,7 @@ alsamixer_SOURCES = card_select.c card_select.h \
                proc_files.c proc_files.h \
                textbox.c textbox.h \
                utils.c utils.h \
+               volume_mapping.c volume_mapping.h \
                widget.c widget.h
 
 man_MANS = alsamixer.1
@@ -237,14 +255,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  alsamixer/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  alsamixer/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign alsamixer/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign alsamixer/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -262,32 +280,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 alsamixer$(EXEEXT): $(alsamixer_OBJECTS) $(alsamixer_DEPENDENCIES) 
        @rm -f alsamixer$(EXEEXT)
-       $(LINK) $(alsamixer_LDFLAGS) $(alsamixer_OBJECTS) $(alsamixer_LDADD) $(LIBS)
+       $(LINK) $(alsamixer_OBJECTS) $(alsamixer_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -308,140 +341,153 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proc_files.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/textbox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/volume_mapping.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/widget.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -450,7 +496,7 @@ check: check-am
 all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -472,6 +518,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -492,18 +539,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -523,25 +590,30 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
+.MAKE: install-am install-strip
+
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
        clean-generic ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-exec install-exec-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
        install-info install-info-am install-man install-man1 \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
        tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-info-am uninstall-man uninstall-man1
+       uninstall-man uninstall-man1
 
 
 #LDFLAGS = -static
 #CFLAGS += -g -Wall
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index ba05aca..cd88404 100644 (file)
@@ -171,7 +171,7 @@ fault. Plain old \fBxterm\fP seems to be fine.
 
 .SH AUTHOR
 .B alsamixer
-has been written by Tim Janik <timj@gtk.org> and
+has been written by Tim Janik and
 been further improved by Jaroslav Kysela <perex@perex.cz>
 and Clemens Ladisch <clemens@ladisch.de>.
 
index ab6255f..3898196 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * alsamixer - curses mixer for the ALSA project
- * Copyright (c) 1998,1999 Tim Janik <timj@gtk.org>
+ * Copyright (c) 1998,1999 Tim Janik
  *                         Jaroslav Kysela <perex@perex.cz>
  * Copyright (c) 2009      Clemens Ladisch <clemens@ladisch.de>
  *
index fcceb16..b4b98e5 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * colors.c - color and attribute definitions
- * Copyright (c) 1998,1999 Tim Janik <timj@gtk.org>
+ * Copyright (c) 1998,1999 Tim Janik
  *                         Jaroslav Kysela <perex@perex.cz>
  * Copyright (c) 2009      Clemens Ladisch <clemens@ladisch.de>
  *
index 796df7b..cc98b64 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * mixer_controls.c - handles mixer controls and mapping from selems
- * Copyright (c) 1998,1999 Tim Janik <timj@gtk.org>
+ * Copyright (c) 1998,1999 Tim Janik
  *                         Jaroslav Kysela <perex@perex.cz>
  * Copyright (c) 2009      Clemens Ladisch <clemens@ladisch.de>
  *
index 9eadcc9..51a1546 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define _C99_SOURCE /* lrint() */
 #include "aconfig.h"
 #include <stdlib.h>
 #include <string.h>
 #include <strings.h>
+#include <math.h>
 #include CURSESINC
 #include <alsa/asoundlib.h>
 #include "gettext_curses.h"
@@ -28,6 +30,7 @@
 #include "mem.h"
 #include "colors.h"
 #include "widget.h"
+#include "volume_mapping.h"
 #include "mixer_widget.h"
 #include "mixer_controls.h"
 #include "mixer_display.h"
@@ -396,9 +399,8 @@ static void display_control(unsigned int control_index)
        int col;
        int i, c;
        int left, frame_left;
-       int bar_height, value;
-       long volumes[2];
-       long min, max;
+       int bar_height;
+       double volumes[2];
        int switches[2];
        unsigned int index;
        const char *s;
@@ -443,31 +445,22 @@ static void display_control(unsigned int control_index)
                waddch(mixer_widget.window, ACS_LRCORNER);
        }
        if (control->flags & (TYPE_PVOLUME | TYPE_CVOLUME)) {
-               int (*get_vol_func)(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, long *);
+               double (*get_vol_func)(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t);
 
                if (control->flags & TYPE_PVOLUME)
-                       get_vol_func = snd_mixer_selem_get_playback_volume;
+                       get_vol_func = get_normalized_playback_volume;
                else
-                       get_vol_func = snd_mixer_selem_get_capture_volume;
-               err = get_vol_func(control->elem, control->volume_channels[0], &volumes[0]);
-               if (err >= 0 && (control->flags & HAS_VOLUME_1))
-                       err = get_vol_func(control->elem, control->volume_channels[1], &volumes[1]);
+                       get_vol_func = get_normalized_capture_volume;
+               volumes[0] = get_vol_func(control->elem, control->volume_channels[0]);
+               if (control->flags & HAS_VOLUME_1)
+                       volumes[1] = get_vol_func(control->elem, control->volume_channels[1]);
                else
                        volumes[1] = volumes[0];
-               if (err < 0)
-                       return;
-               if (control->flags & TYPE_PVOLUME)
-                       err = snd_mixer_selem_get_playback_volume_range(control->elem, &min, &max);
-               else
-                       err = snd_mixer_selem_get_capture_volume_range(control->elem, &min, &max);
-               if (err < 0)
-                       return;
 
                if (control->flags & IS_ACTIVE)
                        wattrset(mixer_widget.window, 0);
                for (c = 0; c < 2; c++) {
-                       bar_height = ((volumes[c] - min) * volume_height +
-                                     max - min - 1) / (max - min);
+                       bar_height = lrint(volumes[c] * volume_height);
                        for (i = 0; i < volume_height; ++i) {
                                chtype ch;
                                if (i + 1 > bar_height)
@@ -492,19 +485,18 @@ static void display_control(unsigned int control_index)
                }
                if (control->flags & IS_ACTIVE)
                        wattrset(mixer_widget.window, attr_mixer_active);
-               value = ((volumes[0] - min) * 100 + (max - min) / 2) / (max - min);
                if (!(control->flags & HAS_VOLUME_1)) {
-                       sprintf(buf, "%d", value);
+                       sprintf(buf, "%d", lrint(volumes[0] * 100));
                        display_string_in_field(values_y, frame_left - 2, buf, 8, ALIGN_CENTER);
                } else {
-                       mvwprintw(mixer_widget.window, values_y, frame_left - 2, "%3d", value);
+                       mvwprintw(mixer_widget.window, values_y, frame_left - 2,
+                                 "%3d", lrint(volumes[0] * 100));
                        if (control->flags & IS_ACTIVE)
                                wattrset(mixer_widget.window, attr_ctl_frame);
                        waddstr(mixer_widget.window, "<>");
                        if (control->flags & IS_ACTIVE)
                                wattrset(mixer_widget.window, attr_mixer_active);
-                       value = ((volumes[1] - min) * 100 + (max - min) / 2) / (max - min);
-                       wprintw(mixer_widget.window, "%-3d", value);
+                       wprintw(mixer_widget.window, "%-3d", lrint(volumes[1] * 100));
                }
        }
 
index 796ea1d..fb352d3 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * mixer_widget.c - mixer widget and keys handling
- * Copyright (c) 1998,1999 Tim Janik <timj@gtk.org>
+ * Copyright (c) 1998,1999 Tim Janik
  *                         Jaroslav Kysela <perex@perex.cz>
  * Copyright (c) 2009      Clemens Ladisch <clemens@ladisch.de>
  *
@@ -33,6 +33,7 @@
 #include "textbox.h"
 #include "proc_files.h"
 #include "card_select.h"
+#include "volume_mapping.h"
 #include "mixer_controls.h"
 #include "mixer_display.h"
 #include "mixer_widget.h"
@@ -211,7 +212,7 @@ static void show_help(void)
                _("; '        Toggle left/right capture"),
                "",
                _("Authors:"),
-               _("  Tim Janik <timj@gtk.org>"),
+               _("  Tim Janik"),
                _("  Jaroslav Kysela <perex@perex.cz>"),
                _("  Clemens Ladisch <clemens@ladisch.de>"),
        };
@@ -295,80 +296,57 @@ static void change_enum_relative(struct control *control, int delta)
 
 static void change_volume_to_percent(struct control *control, int value, unsigned int channels)
 {
-       int (*get_range_func)(snd_mixer_elem_t *, long *, long *);
-       int (*set_func)(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, long);
-       long min, max;
-       int err;
+       int (*set_func)(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, double, int);
 
        if (!(control->flags & HAS_VOLUME_1))
                channels = LEFT;
-       if (control->flags & TYPE_PVOLUME) {
-               get_range_func = snd_mixer_selem_get_playback_volume_range;
-               set_func = snd_mixer_selem_set_playback_volume;
-       } else {
-               get_range_func = snd_mixer_selem_get_capture_volume_range;
-               set_func = snd_mixer_selem_set_capture_volume;
-       }
-       err = get_range_func(control->elem, &min, &max);
-       if (err < 0)
-               return;
+       if (control->flags & TYPE_PVOLUME)
+               set_func = set_normalized_playback_volume;
+       else
+               set_func = set_normalized_capture_volume;
        if (channels & LEFT)
-               set_func(control->elem, control->volume_channels[0], min + (max - min) * value / 100);
+               set_func(control->elem, control->volume_channels[0], value / 100.0, 0);
        if (channels & RIGHT)
-               set_func(control->elem, control->volume_channels[1], min + (max - min) * value / 100);
+               set_func(control->elem, control->volume_channels[1], value / 100.0, 0);
+}
+
+static double clamp_volume(double v)
+{
+       if (v < 0)
+               return 0;
+       if (v > 1)
+               return 1;
+       return v;
 }
 
 static void change_volume_relative(struct control *control, int delta, unsigned int channels)
 {
-       int (*get_range_func)(snd_mixer_elem_t *, long *, long *);
-       int (*get_func)(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, long *);
-       int (*set_func)(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, long);
-       long min, max;
-       long left, right;
-       long value;
-       int err;
+       double (*get_func)(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t);
+       int (*set_func)(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, double, int);
+       double left, right;
+       int dir;
 
        if (!(control->flags & HAS_VOLUME_1))
                channels = LEFT;
        if (control->flags & TYPE_PVOLUME) {
-               get_range_func = snd_mixer_selem_get_playback_volume_range;
-               get_func = snd_mixer_selem_get_playback_volume;
-               set_func = snd_mixer_selem_set_playback_volume;
+               get_func = get_normalized_playback_volume;
+               set_func = set_normalized_playback_volume;
        } else {
-               get_range_func = snd_mixer_selem_get_capture_volume_range;
-               get_func = snd_mixer_selem_get_capture_volume;
-               set_func = snd_mixer_selem_set_capture_volume;
-       }
-       err = get_range_func(control->elem, &min, &max);
-       if (err < 0)
-               return;
-       if (channels & LEFT) {
-               err = get_func(control->elem, control->volume_channels[0], &left);
-               if (err < 0)
-                       return;
-       }
-       if (channels & RIGHT) {
-               err = get_func(control->elem, control->volume_channels[1], &right);
-               if (err < 0)
-                       return;
+               get_func = get_normalized_capture_volume;
+               set_func = set_normalized_capture_volume;
        }
+       if (channels & LEFT)
+               left = get_func(control->elem, control->volume_channels[0]);
+       if (channels & RIGHT)
+               right = get_func(control->elem, control->volume_channels[1]);
+       dir = delta > 0 ? 1 : -1;
        if (channels & LEFT) {
-               value = left + delta;
-               if (value < min)
-                       value = min;
-               else if (value > max)
-                       value = max;
-               if (value != left)
-                       set_func(control->elem, control->volume_channels[0], value);
+               left = clamp_volume(left + delta / 100.0);
+               set_func(control->elem, control->volume_channels[0], left, dir);
        }
        if (channels & RIGHT) {
-               value = right + delta;
-               if (value < min)
-                       value = min;
-               else if (value > max)
-                       value = max;
-               if (value != right)
-                       set_func(control->elem, control->volume_channels[1], value);
+               right = clamp_volume(right + delta / 100.0);
+               set_func(control->elem, control->volume_channels[1], right, dir);
        }
 }
 
@@ -458,34 +436,26 @@ static void toggle_capture(unsigned int channels)
 static void balance_volumes(void)
 {
        struct control *control;
-       long left, right;
+       double left, right;
        int err;
 
        control = get_focus_control(TYPE_PVOLUME | TYPE_CVOLUME);
        if (!control || !(control->flags & HAS_VOLUME_1))
                return;
        if (control->flags & TYPE_PVOLUME) {
-               err = snd_mixer_selem_get_playback_volume(control->elem, control->volume_channels[0], &left);
-               if (err < 0)
-                       return;
-               err = snd_mixer_selem_get_playback_volume(control->elem, control->volume_channels[1], &right);
-               if (err < 0)
-                       return;
+               left = get_normalized_playback_volume(control->elem, control->volume_channels[0]);
+               right = get_normalized_playback_volume(control->elem, control->volume_channels[1]);
        } else {
-               err = snd_mixer_selem_get_capture_volume(control->elem, control->volume_channels[0], &left);
-               if (err < 0)
-                       return;
-               err = snd_mixer_selem_get_capture_volume(control->elem, control->volume_channels[1], &right);
-               if (err < 0)
-                       return;
+               left = get_normalized_capture_volume(control->elem, control->volume_channels[0]);
+               right = get_normalized_capture_volume(control->elem, control->volume_channels[1]);
        }
        left = (left + right) / 2;
        if (control->flags & TYPE_PVOLUME) {
-               snd_mixer_selem_set_playback_volume(control->elem, control->volume_channels[0], left);
-               snd_mixer_selem_set_playback_volume(control->elem, control->volume_channels[1], left);
+               set_normalized_playback_volume(control->elem, control->volume_channels[0], left, 0);
+               set_normalized_playback_volume(control->elem, control->volume_channels[1], left, 0);
        } else {
-               snd_mixer_selem_set_capture_volume(control->elem, control->volume_channels[0], left);
-               snd_mixer_selem_set_capture_volume(control->elem, control->volume_channels[1], left);
+               set_normalized_capture_volume(control->elem, control->volume_channels[0], left, 0);
+               set_normalized_capture_volume(control->elem, control->volume_channels[1], left, 0);
        }
        display_controls();
 }
index d743a14..a979d3c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * textbox.c - show a text box for messages, files or help
- * Copyright (c) 1998,1999 Tim Janik <timj@gtk.org>
+ * Copyright (c) 1998,1999 Tim Janik
  *                         Jaroslav Kysela <perex@perex.cz>
  * Copyright (c) 2009      Clemens Ladisch <clemens@ladisch.de>
  *
diff --git a/alsamixer/volume_mapping.c b/alsamixer/volume_mapping.c
new file mode 100644 (file)
index 0000000..9cacad8
--- /dev/null
@@ -0,0 +1,180 @@
+/*
+ * Copyright (c) 2010 Clemens Ladisch <clemens@ladisch.de>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * The functions in this file map the value ranges of ALSA mixer controls onto
+ * the interval 0..1.
+ *
+ * The mapping is designed so that the position in the interval is proportional
+ * to the volume as a human ear would perceive it (i.e., the position is the
+ * cubic root of the linear sample multiplication factor).  For controls with
+ * a small range (24 dB or less), the mapping is linear in the dB values so
+ * that each step has the same size visually.  Only for controls without dB
+ * information, a linear mapping of the hardware volume register values is used
+ * (this is the same algorithm as used in the old alsamixer).
+ *
+ * When setting the volume, 'dir' is the rounding direction:
+ * -1/0/1 = down/nearest/up.
+ */
+
+#define _ISOC99_SOURCE /* lrint() */
+#define _GNU_SOURCE /* exp10() */
+#include "aconfig.h"
+#include <math.h>
+#include <stdbool.h>
+#include "volume_mapping.h"
+
+#define MAX_LINEAR_DB_SCALE    24
+
+static inline bool use_linear_dB_scale(long dBmin, long dBmax)
+{
+       return dBmax - dBmin <= MAX_LINEAR_DB_SCALE * 100;
+}
+
+static long lrint_dir(double x, int dir)
+{
+       if (dir > 0)
+               return lrint(ceil(x));
+       else if (dir < 0)
+               return lrint(floor(x));
+       else
+               return lrint(x);
+}
+
+enum ctl_dir { PLAYBACK, CAPTURE };
+
+static int (* const get_dB_range[2])(snd_mixer_elem_t *, long *, long *) = {
+       snd_mixer_selem_get_playback_dB_range,
+       snd_mixer_selem_get_capture_dB_range,
+};
+static int (* const get_raw_range[2])(snd_mixer_elem_t *, long *, long *) = {
+       snd_mixer_selem_get_playback_volume_range,
+       snd_mixer_selem_get_capture_volume_range,
+};
+static int (* const get_dB[2])(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, long *) = {
+       snd_mixer_selem_get_playback_dB,
+       snd_mixer_selem_get_capture_dB,
+};
+static int (* const get_raw[2])(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, long *) = {
+       snd_mixer_selem_get_playback_volume,
+       snd_mixer_selem_get_capture_volume,
+};
+static int (* const set_dB[2])(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, long, int) = {
+       snd_mixer_selem_set_playback_dB,
+       snd_mixer_selem_set_capture_dB,
+};
+static int (* const set_raw[2])(snd_mixer_elem_t *, snd_mixer_selem_channel_id_t, long) = {
+       snd_mixer_selem_set_playback_volume,
+       snd_mixer_selem_set_capture_volume,
+};
+
+static double get_normalized_volume(snd_mixer_elem_t *elem,
+                                   snd_mixer_selem_channel_id_t channel,
+                                   enum ctl_dir ctl_dir)
+{
+       long min, max, value;
+       double normalized, min_norm;
+       int err;
+
+       err = get_dB_range[ctl_dir](elem, &min, &max);
+       if (err < 0 || min >= max) {
+               err = get_raw_range[ctl_dir](elem, &min, &max);
+               if (err < 0 || min == max)
+                       return 0;
+
+               err = get_raw[ctl_dir](elem, channel, &value);
+               if (err < 0)
+                       return 0;
+
+               return (value - min) / (double)(max - min);
+       }
+
+       err = get_dB[ctl_dir](elem, channel, &value);
+       if (err < 0)
+               return 0;
+
+       if (use_linear_dB_scale(min, max))
+               return (value - min) / (double)(max - min);
+
+       normalized = exp10((value - max) / 6000.0);
+       if (min != SND_CTL_TLV_DB_GAIN_MUTE) {
+               min_norm = exp10((min - max) / 6000.0);
+               normalized = (normalized - min_norm) / (1 - min_norm);
+       }
+
+       return normalized;
+}
+
+static int set_normalized_volume(snd_mixer_elem_t *elem,
+                                snd_mixer_selem_channel_id_t channel,
+                                double volume,
+                                int dir,
+                                enum ctl_dir ctl_dir)
+{
+       long min, max, value;
+       double min_norm;
+       int err;
+
+       err = get_dB_range[ctl_dir](elem, &min, &max);
+       if (err < 0 || min >= max) {
+               err = get_raw_range[ctl_dir](elem, &min, &max);
+               if (err < 0)
+                       return err;
+
+               value = lrint_dir(volume * (max - min), dir) + min;
+               return set_raw[ctl_dir](elem, channel, value);
+       }
+
+       if (use_linear_dB_scale(min, max)) {
+               value = lrint_dir(volume * (max - min), dir) + min;
+               return set_dB[ctl_dir](elem, channel, value, dir);
+       }
+
+       if (min != SND_CTL_TLV_DB_GAIN_MUTE) {
+               min_norm = exp10((min - max) / 6000.0);
+               volume = volume * (1 - min_norm) + min_norm;
+       }
+       value = lrint_dir(6000.0 * log10(volume), dir) + max;
+       return set_dB[ctl_dir](elem, channel, value, dir);
+}
+
+double get_normalized_playback_volume(snd_mixer_elem_t *elem,
+                                     snd_mixer_selem_channel_id_t channel)
+{
+       return get_normalized_volume(elem, channel, PLAYBACK);
+}
+
+double get_normalized_capture_volume(snd_mixer_elem_t *elem,
+                                    snd_mixer_selem_channel_id_t channel)
+{
+       return get_normalized_volume(elem, channel, CAPTURE);
+}
+
+int set_normalized_playback_volume(snd_mixer_elem_t *elem,
+                                  snd_mixer_selem_channel_id_t channel,
+                                  double volume,
+                                  int dir)
+{
+       return set_normalized_volume(elem, channel, volume, dir, PLAYBACK);
+}
+
+int set_normalized_capture_volume(snd_mixer_elem_t *elem,
+                                 snd_mixer_selem_channel_id_t channel,
+                                 double volume,
+                                 int dir)
+{
+       return set_normalized_volume(elem, channel, volume, dir, CAPTURE);
+}
diff --git a/alsamixer/volume_mapping.h b/alsamixer/volume_mapping.h
new file mode 100644 (file)
index 0000000..d4251d6
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef VOLUME_MAPPING_H_INCLUDED
+#define VOLUME_MAPPING_H_INCLUDED
+
+#include <alsa/asoundlib.h>
+
+double get_normalized_playback_volume(snd_mixer_elem_t *elem,
+                                     snd_mixer_selem_channel_id_t channel);
+double get_normalized_capture_volume(snd_mixer_elem_t *elem,
+                                    snd_mixer_selem_channel_id_t channel);
+int set_normalized_playback_volume(snd_mixer_elem_t *elem,
+                                  snd_mixer_selem_channel_id_t channel,
+                                  double volume,
+                                  int dir);
+int set_normalized_capture_volume(snd_mixer_elem_t *elem,
+                                 snd_mixer_selem_channel_id_t channel,
+                                 double volume,
+                                 int dir);
+
+#endif
diff --git a/alsaucm/Makefile.am b/alsaucm/Makefile.am
new file mode 100644 (file)
index 0000000..4eba677
--- /dev/null
@@ -0,0 +1,13 @@
+bin_PROGRAMS = \
+        alsaucm
+
+alsaucm_SOURCES = usecase.c
+
+INCLUDES = \
+         -Wall -I$(top_srcdir)/include
+
+alsaucm_LDADD = -lasound
+
+# local build
+INCLUDES += -I$(top_srcdir)/../alsa-lib/include
+alsaucm_LDADD += -L$(top_srcdir)/../alsa-lib/src/.libs
diff --git a/alsaucm/Makefile.in b/alsaucm/Makefile.in
new file mode 100644 (file)
index 0000000..bee94a3
--- /dev/null
@@ -0,0 +1,503 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = alsaucm$(EXEEXT)
+subdir = alsaucm
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \
+       $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/include/aconfig.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_alsaucm_OBJECTS = usecase.$(OBJEXT)
+alsaucm_OBJECTS = $(am_alsaucm_OBJECTS)
+alsaucm_DEPENDENCIES =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(alsaucm_SOURCES)
+DIST_SOURCES = $(alsaucm_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURSESINC = @CURSESINC@
+CURSESLIB = @CURSESLIB@
+CURSES_CFLAGS = @CURSES_CFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBRT = @LIBRT@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SND_UTIL_MAJOR = @SND_UTIL_MAJOR@
+SND_UTIL_MINOR = @SND_UTIL_MINOR@
+SND_UTIL_SUBMINOR = @SND_UTIL_SUBMINOR@
+SND_UTIL_VERSION = @SND_UTIL_VERSION@
+STRIP = @STRIP@
+TESTSOUND = @TESTSOUND@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+ncurses5_config = @ncurses5_config@
+ncursesw5_config = @ncursesw5_config@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
+xmlto = @xmlto@
+alsaucm_SOURCES = usecase.c
+
+# local build
+INCLUDES = -Wall -I$(top_srcdir)/include \
+       -I$(top_srcdir)/../alsa-lib/include
+alsaucm_LDADD = -lasound -L$(top_srcdir)/../alsa-lib/src/.libs
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign alsaucm/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign alsaucm/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+alsaucm$(EXEEXT): $(alsaucm_OBJECTS) $(alsaucm_DEPENDENCIES) 
+       @rm -f alsaucm$(EXEEXT)
+       $(LINK) $(alsaucm_OBJECTS) $(alsaucm_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usecase.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+       for dir in "$(DESTDIR)$(bindir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic ctags distclean distclean-compile \
+       distclean-generic distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-binPROGRAMS \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-binPROGRAMS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/alsaucm/go.sh b/alsaucm/go.sh
new file mode 100755 (executable)
index 0000000..2aadd1c
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+#GDB="gdb --args"
+
+ALSA_CONFIG_UCM="$HOME/alsa/alsa-lib/test/ucm" \
+LD_PRELOAD="$HOME/alsa/alsa-lib/src/.libs/libasound.so" \
+$GDB ./alsaucm "$@"
diff --git a/alsaucm/usecase.c b/alsaucm/usecase.c
new file mode 100644 (file)
index 0000000..1c94680
--- /dev/null
@@ -0,0 +1,505 @@
+/*
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *  Support for the verb/device/modifier core logic and API, 
+ *  command line tool and file parser was kindly sponsored by 
+ *  Texas Instruments Inc.
+ *  Support for multiple active modifiers and devices, 
+ *  transition sequences, multiple client access and user defined use
+ *  cases was kindly sponsored by Wolfson Microelectronics PLC.
+ * 
+ *  Copyright (C) 2008-2010 SlimLogic Ltd
+ *  Copyright (C) 2010 Wolfson Microelectronics PLC
+ *  Copyright (C) 2010 Texas Instruments Inc.
+ *  Copyright (C) 2010 Red Hat Inc.
+ *  Authors: Liam Girdwood <lrg@slimlogic.co.uk>
+ *           Stefan Schmidt <stefan@slimlogic.co.uk>
+ *           Justin Xu <justinx@slimlogic.co.uk>
+ *           Jaroslav Kysela <perex@perex.cz>
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+#include <getopt.h>
+#include <alsa/asoundlib.h>
+#include <alsa/use-case.h>
+#include "aconfig.h"
+#include "version.h"
+
+#define MAX_BUF 256
+
+struct context {
+       snd_use_case_mgr_t *uc_mgr;
+       const char *command;
+       char *card;
+       char **argv;
+       int argc;
+       int arga;
+       char *batch;
+       unsigned int interactive:1;
+       unsigned int no_open:1;
+       unsigned int do_exit:1;
+};
+
+enum uc_cmd {
+       /* management */
+       OM_UNKNOWN = 0,
+       OM_OPEN,
+       OM_RESET,
+       OM_RELOAD,
+       OM_LISTCARDS,
+       OM_LIST2,
+       OM_LIST1,
+
+       /* set/get */
+       OM_SET,
+       OM_GET,
+       OM_GETI,
+
+       /* misc */
+       OM_HELP,
+       OM_QUIT,
+};
+
+struct cmd {
+       int code;
+       int args;
+       unsigned int opencard:1;
+       const char *id;
+};
+
+static struct cmd cmds[] = {
+       { OM_OPEN, 1, 0, "open" },
+       { OM_RESET, 0, 1, "reset" },
+       { OM_RELOAD, 0, 1, "reload" },
+       { OM_LISTCARDS, 0, 0, "listcards" },
+       { OM_LIST1, 1, 1, "list1" },
+       { OM_LIST2, 1, 1, "list" },
+       { OM_SET, 2, 1, "set" },
+       { OM_GET, 1, 1, "get" },
+       { OM_GETI, 1, 1, "geti" },
+       { OM_HELP, 0, 0, "help" },
+       { OM_QUIT, 0, 0, "quit" },
+       { OM_HELP, 0, 0, "h" },
+       { OM_HELP, 0, 0, "?" },
+       { OM_QUIT, 0, 0, "q" },
+       { OM_UNKNOWN, 0, 0, NULL }
+};
+
+static void dump_help(struct context *context)
+{
+       if (context->command)
+               printf("Usage: %s <options> [command]\n", context->command);
+       printf(
+"\nAvailable options:\n"
+"  -h,--help                  this help\n"
+"  -c,--card NAME             open card NAME\n"
+"  -i,--interactive           interactive mode\n"
+"  -b,--batch FILE            batch mode (use '-' for the stdin input)\n"
+"  -n,--no-open               do not open first card found\n"
+"\nAvailable commands:\n"
+"  open NAME                  open card NAME\n"
+"  reset                      reset sound card to default state\n"
+"  reload                     reload configuration\n"
+"  listcards                  list available cards\n"
+"  list IDENTIFIER            list command\n"
+"  get IDENTIFIER             get string value\n"
+"  geti IDENTIFIER            get integer value\n"
+"  set IDENTIFIER VALUE       set string value\n"
+"  h,help                     help\n"
+"  q,quit                     quit\n"
+);
+}
+
+static int parse_line(struct context *context, char *line)
+{
+       char *start, **nargv;
+       int c;
+
+       context->argc = 0;
+       while (*line) {
+               while (*line && (*line == ' ' || *line == '\t' ||
+                                                       *line == '\n'))
+                       line++;
+               c = *line;
+               if (c == '\"' || c == '\'') {
+                       start = ++line;
+                       while (*line && *line != c)
+                               line++;
+                       if (*line) {
+                               *line = '\0';
+                               line++;
+                       }
+               } else {
+                       start = line;
+                       while (*line && *line != ' ' && *line != '\t' &&
+                              *line != '\n')
+                               line++;
+                       if (*line) {
+                               *line = '\0';
+                               line++;
+                       }
+               }
+               if (start[0] == '\0' && context->argc == 0)
+                       return 0;
+               if (context->argc + 1 >= context->arga) {
+                       context->arga += 4;
+                       nargv = realloc(context->argv,
+                                       context->arga * sizeof(char *));
+                       if (nargv == NULL)
+                               return -ENOMEM;
+                       context->argv = nargv;
+               }
+               context->argv[context->argc++] = start;
+       }
+       return 0;
+}
+
+static int do_one(struct context *context, struct cmd *cmd, char **argv)
+{
+       const char **list, *str;
+       long lval;
+       int err, i, j, entries;
+
+       if (cmd->opencard && context->uc_mgr == NULL) {
+               fprintf(stderr, "%s: command '%s' requires an open card\n",
+                               context->command, cmd->id);
+               return 0;
+       }
+       switch (cmd->code) {
+       case OM_OPEN:
+               if (context->uc_mgr)
+                       snd_use_case_mgr_close(context->uc_mgr);
+               context->uc_mgr = NULL;
+               free(context->card);
+               context->card = strdup(argv[0]);
+               err = snd_use_case_mgr_open(&context->uc_mgr, context->card);
+               if (err < 0) {
+                       fprintf(stderr,
+                               "%s: error failed to open sound card %s: %s\n",
+                               context->command, context->card,
+                               snd_strerror(err));
+                       return err;
+               }
+               break;
+       case OM_RESET:
+               err = snd_use_case_mgr_reset(context->uc_mgr);
+               if (err < 0) {
+                       fprintf(stderr,
+                               "%s: error failed to reset sound card %s: %s\n",
+                               context->command, context->card,
+                               snd_strerror(err));
+                       return err;
+               }
+               break;
+       case OM_RELOAD:
+               err = snd_use_case_mgr_reload(context->uc_mgr);
+               if (err < 0) {
+                       fprintf(stderr,
+                               "%s: error failed to reload manager %s: %s\n",
+                               context->command, context->card,
+                               snd_strerror(err));
+                       return err;
+               }
+               break;
+       case OM_LISTCARDS:
+               err = snd_use_case_card_list(&list);
+               if (err < 0) {
+                       fprintf(stderr,
+                               "%s: error failed to get card list: %s\n",
+                               context->command,
+                               snd_strerror(err));
+                       return err;
+               }
+               if (err == 0) {
+                       printf("  list is empty\n");
+                       return 0;
+               }
+               for (i = 0; i < err / 2; i++) {
+                       printf("  %i: %s\n", i, list[i*2]);
+                       if (list[i*2+1])
+                               printf("    %s\n", list[i*2+1]);
+               }
+               snd_use_case_free_list(list, err);
+               break;
+       case OM_LIST1:
+       case OM_LIST2:
+               switch (cmd->code) {
+               case OM_LIST1:
+                   entries = 1;
+                   break;
+               case OM_LIST2:
+                   entries = 2;
+                   break;
+               }
+
+               err = snd_use_case_get_list(context->uc_mgr,
+                                           argv[0],
+                                           &list);
+               if (err < 0) {
+                       fprintf(stderr,
+                               "%s: error failed to get list %s: %s\n",
+                               context->command, argv[0],
+                               snd_strerror(err));
+                       return err;
+               }
+               if (err == 0) {
+                       printf("  list is empty\n");
+                       return 0;
+               }
+               for (i = 0; i < err / entries; i++) {
+                       printf("  %i: %s\n", i, list[i*entries]);
+                       for (j = 0; j < entries - 1; j++)
+                               if (list[i*entries+j+1])
+                                       printf("    %s\n", list[i*entries+j+1]);
+               }
+               snd_use_case_free_list(list, err);
+               break;
+       case OM_SET:
+               err = snd_use_case_set(context->uc_mgr, argv[0], argv[1]);
+               if (err < 0) {
+                       fprintf(stderr,
+                               "%s: error failed to set %s=%s: %s\n",
+                               context->command, argv[0], argv[1],
+                               snd_strerror(err));
+                       return err;
+               }
+               break;
+       case OM_GET:
+               err = snd_use_case_get(context->uc_mgr, argv[0], &str);
+               if (err < 0) {
+                       fprintf(stderr,
+                               "%s: error failed to get %s: %s\n",
+                               context->command, argv[0],
+                               snd_strerror(err));
+                       return err;
+               }
+               printf("  %s=%s\n", argv[0], str);
+               free((void *)str);
+               break;
+       case OM_GETI:
+               err = snd_use_case_geti(context->uc_mgr, argv[0], &lval);
+               if (err < 0) {
+                       fprintf(stderr,
+                               "%s: error failed to get integer %s: %s\n",
+                               context->command, argv[0],
+                               snd_strerror(err));
+                       return lval;
+               }
+               printf("  %s=%li\n", argv[0], lval);
+               break;
+       case OM_QUIT:
+               context->do_exit = 1;
+               break;
+       case OM_HELP:
+               dump_help(context);
+               break;
+       default:
+               fprintf(stderr, "%s: unimplemented command '%s'\n",
+                               context->command, cmd->id);
+               return -EINVAL;
+       }
+       return 0;
+}
+
+static int do_commands(struct context *context)
+{
+       char *command, **argv;
+       struct cmd *cmd;
+       int i, acnt, err;
+
+       for (i = 0; i < context->argc && !context->do_exit; i++) {
+               command = context->argv[i];
+               for (cmd = cmds; cmd->id != NULL; cmd++) {
+                       if (strcmp(cmd->id, command) == 0)
+                               break;
+               }
+               if (cmd->id == NULL) {
+                       fprintf(stderr, "%s: unknown command '%s'\n",
+                                               context->command, command);
+                       return -EINVAL;
+               }
+               acnt = context->argc - (i + 1);
+               if (acnt < cmd->args) {
+                       fprintf(stderr, "%s: expected %i arguments (got %i)\n",
+                                       context->command, cmd->args, acnt);
+                       return -EINVAL;
+               }
+               argv = context->argv + i + 1;
+               err = do_one(context, cmd, argv);
+               if (err < 0)
+                       return err;
+               i += cmd->args;
+       }
+       return 0;
+}
+
+static void my_exit(struct context *context, int exitcode)
+{
+       if (context->uc_mgr)
+               snd_use_case_mgr_close(context->uc_mgr);
+       if (context->arga > 0)
+               free(context->argv);
+       if (context->card)
+               free(context->card);
+       if (context->batch)
+               free(context->batch);
+       free(context);
+       exit(exitcode);
+}
+
+enum {
+       OPT_VERSION = 1,
+};
+
+int main(int argc, char *argv[])
+{
+       static const char short_options[] = "hb:c:in";
+       static const struct option long_options[] = {
+               {"help", 0, 0, 'h'},
+               {"version", 0, 0, OPT_VERSION},
+               {"card", 1, 0, 'c'},
+               {"interactive", 0, 0, 'i'},
+               {"batch", 1, 0, 'b'},
+               {"no-open", 0, 0, 'n'},
+               {0, 0, 0, 0}
+       };
+       struct context *context;
+       const char *command = argv[0];
+       const char **list;
+       int c, err, option_index;
+       char cmd[MAX_BUF];
+       FILE *in;
+
+       context = calloc(1, sizeof(*context));
+       if (context == NULL)
+               return EXIT_FAILURE;
+       context->command = command;
+       while ((c = getopt_long(argc, argv, short_options,
+                                long_options, &option_index)) != -1) {
+               switch (c) {
+               case 'h':
+                       dump_help(context);
+                       break;
+               case OPT_VERSION:
+                       printf("%s: version " SND_UTIL_VERSION_STR "\n", command);
+                       break;
+               case 'c':
+                       if (context->card)
+                               free(context->card);
+                       context->card = strdup(optarg);
+                       break;
+               case 'i':
+                       context->interactive = 1;
+                       context->batch = NULL;
+                       break;
+               case 'b':
+                       context->batch = strdup(optarg);
+                       context->interactive = 0;
+                       break;
+               case 'n':
+                       context->no_open = 1;
+                       break;
+               default:
+                       fprintf(stderr, "Try '%s --help' for more information.\n", command);
+                       my_exit(context, EXIT_FAILURE);
+               }
+       }
+
+       if (!context->no_open && context->card == NULL) {
+               err = snd_use_case_card_list(&list);
+               if (err < 0) {
+                       fprintf(stderr, "%s: unable to obtain card list: %s\n", command, snd_strerror(err));
+                       my_exit(context, EXIT_FAILURE);
+               }
+               if (err == 0) {
+                       printf("No card found\n");
+                       my_exit(context, EXIT_SUCCESS);
+               }
+               context->card = strdup(list[0]);
+               snd_use_case_free_list(list, err);
+       }
+
+       /* open library */
+       if (!context->no_open) {
+               err = snd_use_case_mgr_open(&context->uc_mgr,
+                                           context->card);
+               if (err < 0) {
+                       fprintf(stderr,
+                               "%s: error failed to open sound card %s: %s\n",
+                               command, context->card, snd_strerror(err));
+                       my_exit(context, EXIT_FAILURE);
+               }
+       }
+
+       /* parse and execute any command line commands */
+       if (argc > optind) {
+               context->argv = argv + optind;
+               context->argc = argc - optind;
+               err = do_commands(context);
+               if (err < 0)
+                       my_exit(context, EXIT_FAILURE);
+       }
+
+       if (!context->interactive && !context->batch)
+               my_exit(context, EXIT_SUCCESS);
+
+       if (context->interactive) {
+               printf("%s: Interacive mode - 'q' to quit\n", command);
+               in = stdin;
+       } else {
+               if (strcmp(context->batch, "-") == 0) {
+                       in = stdin;
+               } else {
+                       in = fopen(context->batch, "r");
+                       if (in == NULL) {
+                               fprintf(stderr, "%s: error failed to open file '%s': %s\n",
+                                       command, context->batch, strerror(-errno));
+                               my_exit(context, EXIT_FAILURE);
+                       }
+               }
+       }
+
+       /* run the interactive command parser and handler */
+       while (!context->do_exit && !feof(in)) {
+               if (context->interactive)
+                       printf("%s>> ", argv[0]);
+               fflush(stdin);
+               if (fgets(cmd, MAX_BUF, in) == NULL)
+                       break;
+               err = parse_line(context, cmd);
+               if (err < 0) {
+                       fprintf(stderr, "%s: unable to parse line\n",
+                               command);
+                       my_exit(context, EXIT_FAILURE);
+               }
+               err = do_commands(context);
+               if (err < 0) {
+                       if (context->interactive)
+                               printf("^^^ error, try again\n");
+                       else
+                               my_exit(context, EXIT_FAILURE);
+               }
+       }
+       
+       if (in != stdin)
+               fclose(in);
+
+       my_exit(context, EXIT_SUCCESS);
+       return EXIT_SUCCESS;
+}
index c5f2589..9798a5f 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,21 +49,43 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 amidi_SOURCES = amidi.c
 amidi_OBJECTS = amidi.$(OBJEXT)
 amidi_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = amidi.c
 DIST_SOURCES = amidi.c
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -73,15 +93,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -105,14 +120,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -130,6 +138,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -142,6 +151,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -152,14 +162,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -171,6 +181,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -200,8 +211,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
 EXTRA_DIST = amidi.1
@@ -214,14 +231,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  amidi/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  amidi/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign amidi/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign amidi/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -239,32 +256,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 amidi$(EXEEXT): $(amidi_OBJECTS) $(amidi_DEPENDENCIES) 
        @rm -f amidi$(EXEEXT)
-       $(LINK) $(amidi_LDFLAGS) $(amidi_OBJECTS) $(amidi_LDADD) $(LIBS)
+       $(LINK) $(amidi_OBJECTS) $(amidi_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -275,137 +307,149 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amidi.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -414,7 +458,7 @@ check: check-am
 all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -436,6 +480,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -456,18 +501,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -487,21 +552,26 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
+.MAKE: install-am install-strip
+
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
        clean-generic ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-exec install-exec-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
        install-info install-info-am install-man install-man1 \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
        tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-info-am uninstall-man uninstall-man1
+       uninstall-man uninstall-man1
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 2e970ae..cedf18c 100644 (file)
@@ -95,122 +95,63 @@ static void *my_malloc(size_t size)
        return p;
 }
 
-static int is_input(snd_ctl_t *ctl, int card, int device, int sub)
-{
-       snd_rawmidi_info_t *info;
-       int err;
-
-       snd_rawmidi_info_alloca(&info);
-       snd_rawmidi_info_set_device(info, device);
-       snd_rawmidi_info_set_subdevice(info, sub);
-       snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_INPUT);
-       
-       if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0 && err != -ENXIO)
-               return err;
-       else if (err == 0)
-               return 1;
-
-       return 0;
-}
-
-static int is_output(snd_ctl_t *ctl, int card, int device, int sub)
-{
-       snd_rawmidi_info_t *info;
-       int err;
-
-       snd_rawmidi_info_alloca(&info);
-       snd_rawmidi_info_set_device(info, device);
-       snd_rawmidi_info_set_subdevice(info, sub);
-       snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_OUTPUT);
-       
-       if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0 && err != -ENXIO)
-               return err;
-       else if (err == 0)
-               return 1;
-
-       return 0;
-}
-
 static void list_device(snd_ctl_t *ctl, int card, int device)
 {
        snd_rawmidi_info_t *info;
        const char *name;
        const char *sub_name;
        int subs, subs_in, subs_out;
-       int sub, in, out;
+       int sub;
        int err;
 
        snd_rawmidi_info_alloca(&info);
        snd_rawmidi_info_set_device(info, device);
 
        snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_INPUT);
-       snd_ctl_rawmidi_info(ctl, info);
-       subs_in = snd_rawmidi_info_get_subdevices_count(info);
+       err = snd_ctl_rawmidi_info(ctl, info);
+       if (err >= 0)
+               subs_in = snd_rawmidi_info_get_subdevices_count(info);
+       else
+               subs_in = 0;
+
        snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_OUTPUT);
-       snd_ctl_rawmidi_info(ctl, info);
-       subs_out = snd_rawmidi_info_get_subdevices_count(info);
-       subs = subs_in > subs_out ? subs_in : subs_out;
+       err = snd_ctl_rawmidi_info(ctl, info);
+       if (err >= 0)
+               subs_out = snd_rawmidi_info_get_subdevices_count(info);
+       else
+               subs_out = 0;
 
-       sub = 0;
-       in = out = 0;
-       if ((err = is_output(ctl, card, device, sub)) < 0) {
-               error("cannot get rawmidi information %d:%d: %s",
-                     card, device, snd_strerror(err));
+       subs = subs_in > subs_out ? subs_in : subs_out;
+       if (!subs)
                return;
-       } else if (err)
-               out = 1;
 
-       if (err == 0) {
-               if ((err = is_input(ctl, card, device, sub)) < 0) {
-                       error("cannot get rawmidi information %d:%d: %s",
-                             card, device, snd_strerror(err));
+       for (sub = 0; sub < subs; ++sub) {
+               snd_rawmidi_info_set_stream(info, sub < subs_in ?
+                                           SND_RAWMIDI_STREAM_INPUT :
+                                           SND_RAWMIDI_STREAM_OUTPUT);
+               snd_rawmidi_info_set_subdevice(info, sub);
+               err = snd_ctl_rawmidi_info(ctl, info);
+               if (err < 0) {
+                       error("cannot get rawmidi information %d:%d:%d: %s\n",
+                             card, device, sub, snd_strerror(err));
                        return;
                }
-       } else if (err) 
-               in = 1;
-
-       if (err == 0)
-               return;
-
-       name = snd_rawmidi_info_get_name(info);
-       sub_name = snd_rawmidi_info_get_subdevice_name(info);
-       if (sub_name[0] == '\0') {
-               if (subs == 1) {
-                       printf("%c%c  hw:%d,%d    %s\n", 
-                              in ? 'I' : ' ', out ? 'O' : ' ',
+               name = snd_rawmidi_info_get_name(info);
+               sub_name = snd_rawmidi_info_get_subdevice_name(info);
+               if (sub == 0 && sub_name[0] == '\0') {
+                       printf("%c%c  hw:%d,%d    %s",
+                              sub < subs_in ? 'I' : ' ',
+                              sub < subs_out ? 'O' : ' ',
                               card, device, name);
-               } else
-                       printf("%c%c  hw:%d,%d    %s (%d subdevices)\n",
-                              in ? 'I' : ' ', out ? 'O' : ' ',
-                              card, device, name, subs);
-       } else {
-               sub = 0;
-               for (;;) {
+                       if (subs > 1)
+                               printf(" (%d subdevices)", subs);
+                       putchar('\n');
+                       break;
+               } else {
                        printf("%c%c  hw:%d,%d,%d  %s\n",
-                              in ? 'I' : ' ', out ? 'O' : ' ',
+                              sub < subs_in ? 'I' : ' ',
+                              sub < subs_out ? 'O' : ' ',
                               card, device, sub, sub_name);
-                       if (++sub >= subs)
-                               break;
-
-                       in = is_input(ctl, card, device, sub);
-                       out = is_output(ctl, card, device, sub);
-                       snd_rawmidi_info_set_subdevice(info, sub);
-                       if (out) {
-                               snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_OUTPUT);
-                               if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0) {
-                                       error("cannot get rawmidi information %d:%d:%d: %s",
-                                             card, device, sub, snd_strerror(err));
-                                       break;
-                               } 
-                       } else {
-                               snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_INPUT);
-                               if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0) {
-                                       error("cannot get rawmidi information %d:%d:%d: %s",
-                                             card, device, sub, snd_strerror(err));
-                                       break;
-                               }
-                       }
-                       sub_name = snd_rawmidi_info_get_subdevice_name(info);
                }
        }
 }
index 07eb2fa..ada5dab 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 @SET_MAKE@
 
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -53,22 +51,44 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am_amixer_OBJECTS = amixer.$(OBJEXT)
 amixer_OBJECTS = $(am_amixer_OBJECTS)
 amixer_LDADD = $(LDADD)
 amixer_DEPENDENCIES =
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(amixer_SOURCES)
 DIST_SOURCES = $(amixer_SOURCES)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -77,15 +97,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -109,14 +124,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -134,6 +142,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -146,6 +155,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -156,14 +166,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -175,6 +185,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -204,8 +215,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
 LDADD = -lm
@@ -221,14 +238,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  amixer/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  amixer/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign amixer/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign amixer/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -246,32 +263,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 amixer$(EXEEXT): $(amixer_OBJECTS) $(amixer_DEPENDENCIES) 
        @rm -f amixer$(EXEEXT)
-       $(LINK) $(amixer_LDFLAGS) $(amixer_OBJECTS) $(amixer_LDADD) $(LIBS)
+       $(LINK) $(amixer_OBJECTS) $(amixer_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -282,137 +314,149 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amixer.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -421,7 +465,7 @@ check: check-am
 all-am: Makefile $(PROGRAMS) $(MANS) $(HEADERS)
 installdirs:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -443,6 +487,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -463,18 +508,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -494,21 +559,26 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
+.MAKE: install-am install-strip
+
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
        clean-generic ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-exec install-exec-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
        install-info install-info-am install-man install-man1 \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
        tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-info-am uninstall-man uninstall-man1
+       uninstall-man uninstall-man1
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 9620721..a177288 100644 (file)
@@ -534,6 +534,26 @@ static void decode_tlv(unsigned int spaces, unsigned int *tlv, unsigned int tlv_
                }
                break;
 #endif
+#ifdef SND_CTL_TLVT_DB_MINMAX
+       case SND_CTL_TLVT_DB_MINMAX:
+       case SND_CTL_TLVT_DB_MINMAX_MUTE:
+               if (type == SND_CTL_TLVT_DB_MINMAX_MUTE)
+                       printf("dBminmaxmute-");
+               else
+                       printf("dBminmax-");
+               if (size != 2 * sizeof(unsigned int)) {
+                       while (size > 0) {
+                               printf("0x%08x,", tlv[idx++]);
+                               size -= sizeof(unsigned int);
+                       }
+               } else {
+                       printf("min=");
+                       print_dB(tlv[2]);
+                       printf(",max=");
+                       print_dB(tlv[3]);
+               }
+               break;
+#endif
        default:
                printf("unk-%i-", type);
                while (size > 0) {
@@ -602,6 +622,8 @@ static int show_control(const char *space, snd_hctl_elem_t *elem,
                break;
        }
        if (level & LEVEL_BASIC) {
+               if (!snd_ctl_elem_info_is_readable(info))
+                       goto __skip_read;
                if ((err = snd_hctl_elem_read(elem, control)) < 0) {
                        error("Control %s element read error: %s\n", card, snd_strerror(err));
                        return err;
@@ -638,6 +660,7 @@ static int show_control(const char *space, snd_hctl_elem_t *elem,
                        }
                }
                printf("\n");
+             __skip_read:
                if (!snd_ctl_elem_info_is_tlv_readable(info))
                        goto __skip_tlv;
                tlv = malloc(4096);
@@ -1097,8 +1120,8 @@ static int parse_control_id(const char *str, snd_ctl_elem_id_t *id)
                                        }
                                        str++;
                                }
-                               *ptr = '\0';
                        }
+                       *ptr = '\0';
                        snd_ctl_elem_id_set_name(id, buf);
                } else if (!strncasecmp(str, "index=", 6)) {
                        str += 6;
index b726c02..3039dbc 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 @SET_MAKE@
 
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -53,23 +51,45 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 aplay_SOURCES = aplay.c
 aplay_OBJECTS = aplay.$(OBJEXT)
 aplay_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
 aplay_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = aplay.c
 DIST_SOURCES = aplay.c
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -78,15 +98,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -110,14 +125,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -135,6 +143,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -147,6 +156,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -157,14 +167,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -176,6 +186,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -205,8 +216,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
 LDADD = $(LIBINTL) $(LIBRT)
@@ -222,14 +239,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  aplay/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  aplay/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign aplay/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign aplay/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -247,32 +264,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 aplay$(EXEEXT): $(aplay_OBJECTS) $(aplay_DEPENDENCIES) 
        @rm -f aplay$(EXEEXT)
-       $(LINK) $(aplay_LDFLAGS) $(aplay_OBJECTS) $(aplay_LDADD) $(LIBS)
+       $(LINK) $(aplay_OBJECTS) $(aplay_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -283,137 +315,149 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aplay.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -422,7 +466,7 @@ check: check-am
 all-am: Makefile $(PROGRAMS) $(MANS) $(HEADERS)
 installdirs:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -444,6 +488,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -464,6 +509,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -471,15 +518,31 @@ info-am:
 install-data-am: install-man
        @$(NORMAL_INSTALL)
        $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
 
 install-exec-am: install-binPROGRAMS
        @$(NORMAL_INSTALL)
        $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
+install-html: install-html-am
+
+install-html-am:
 
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -499,21 +562,24 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
+.MAKE: install-am install-data-am install-exec-am install-strip
+
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
        clean-generic ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-data-hook install-exec \
-       install-exec-am install-exec-hook install-info install-info-am \
-       install-man install-man1 install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-       uninstall-am uninstall-binPROGRAMS uninstall-info-am \
+       install-data install-data-am install-data-hook install-dvi \
+       install-dvi-am install-exec install-exec-am install-exec-hook \
+       install-html install-html-am install-info install-info-am \
+       install-man install-man1 install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+       ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \
        uninstall-man uninstall-man1
 
 
@@ -532,6 +598,7 @@ install-exec-hook: arecord
 install-data-hook:
        rm -f $(DESTDIR)$(mandir)/man1/arecord.1
        (cd $(DESTDIR)$(mandir)/man1 && $(LN_S) aplay.1 arecord.1)
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index 7759347..b6caf0b 100644 (file)
@@ -1,4 +1,4 @@
-.TH APLAY 1 "2 August 2001"
+.TH APLAY 1 "1 January 2010"
 .SH NAME
 arecord, aplay \- command-line sound recorder and player for ALSA 
 soundcard driver
@@ -46,6 +46,7 @@ If this parameter is omitted the WAVE format is used.
 \fI\-c, \-\-channels=#\fP
 The number of channels.
 The default is one channel.
+Valid values are 1 through 32.
 .TP
 \fI\-f \-\-format=FORMAT\fP
 Sample format
@@ -53,19 +54,23 @@ Sample format
 Recognized sample formats are: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE
 S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE
 FLOAT64_LE FLOAT64_BE IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW
-A_LAW IMA_ADPCM MPEG GSM
+A_LAW IMA_ADPCM MPEG GSM SPECIAL S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE
+S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE
 .br
 Some of these may not be available on selected hardware
 .br
-There are also two format shortcuts available:
+The available format shortcuts are:
 .nf
-\-f cd (16 bit little endian, 44100, stereo [\-f S16_LE \-c2 \-r44100]
+\-f cd (16 bit little endian, 44100, stereo) [\-f S16_LE \-c2 \-r44100]
+\-f cdr (16 bit big endian, 44100, stereo) [\-f S16_BE \-c2 \-f44100]
 \-f dat (16 bit little endian, 48000, stereo) [\-f S16_LE \-c2 \-r48000]
 .fi
 If no format is given U8 is used.
 .TP
 \fI\-r, \-\-rate=#<Hz>\fP
 Sampling rate in Hertz. The default rate is 8000 Hertz.
+If the value specified is less than 300, it is taken as the rate in kilohertz.
+Valid values are 2000 through 192000 Hertz.
 .TP
 \fI\-d, \-\-duration=#\fP
 Interrupt after # seconds.
@@ -120,10 +125,69 @@ The stereo VU-meter is available only for 2-channel stereo samples
 with interleaved format.
 .TP
 \fI\-I, \-\-separate\-channels\fP 
-One file for each channel
+One file for each channel.  This option disables max\-file\-time
+and use\-strftime, and ignores SIGUSR1.  The stereo VU meter is
+not available with separate channels.
+.TP
+\fI\-P\fP
+Playback.  This is the default if the program is invoked
+by typing aplay.
+.TP
+\fI\-C\fP
+Record.  This is the default if the program is invoked
+by typing arecord.
+.TP
+\fI\-\-disable\-resample\fP
+Disable automatic rate resample.
+.TP
+\fI\-\-disable\-channels\fP
+Disable automatic channel conversions.
+.TP
+\fI\-\-disable\-format\fP
+Disable automatic format conversions.
+.TP
+\fI\-\-disable\-softvol\fP
+Disable software volume control (softvol).
+.TP
+\fI\-\-test\-position\fP
+Test ring buffer position.
+.TP
+\fI\-\-test\-coef=<coef>\fP
+Test coefficient for ring buffer position; default is 8.
+Expression for validation is: coef * (buffer_size / 2).
+Minimum value is 1.
+.TP
+\fI\-\-test\-nowait\fP
+Do not wait for the ring buffer--eats the whole CPU.
+.TP
+\fI\-\-max\-file\-time\fP
+While recording, when the output file has been accumulating
+sound for this long,
+close it and open a new output file.  Default is the maximum
+size supported by the file format: 2 GiB for WAV files.
+This option has no effect if  \-\-separate\-channels is
+specified.
+.TP
+\fI\-\-process\-id\-file <file name>\fP
+aplay writes its process ID here, so other programs can
+send signals to it.
+.TP
+\fI\-\-use\-strftime\fP
+When recording, interpret %-codes in the file name parameter using
+the strftime facility whenever the output file is opened.  The
+important strftime codes are: %Y is the year, %m month, %d day of
+the month, %H hour, %M minute and %S second.  In addition, %v is
+the file number, starting at 1.  When this option is specified,
+intermediate directories for the output file are created automatically.
+This option has no effect if \-\-separate\-channels is specified.
 
-.SS
-Example:
+.SH SIGNALS
+When recording, SIGINT, SIGTERM and SIGABRT will close the output 
+file and exit.  SIGUSR1 will close the output file, open a new one,
+and continue recording.  However, SIGUSR1 does not work with
+\-\-separate\-channels.
+
+.SH EXAMPLES
 
 .TP
 \fBaplay \-c 1 \-t raw \-r 22050 \-f mu_law foobar\fR
@@ -144,6 +208,19 @@ pcm.copy {
 }
 .fi
 
+.TP
+\fBarecord \-t wav \-max-file_time 30 mon.wav\fP
+Record from the default audio source in monaural, 8,000 samples
+per second, 8 bits per sample.  Start a new file every
+30 seconds.  File names are mon-nn.wav, where nn increases
+from 01.  The file after mon-99.wav is mon-100.wav.
+
+.TP
+\fBarecord \-f cd \-t wav \-max-file-time 3600 --use-strftime %Y/%m/%d/listen-%H-%M-%v.wav\fP
+Record in stereo from the default audio source.  Create a new file
+every hour.  The files are placed in directories based on their start dates
+and have names which include their start times and file numbers.
+
 .SH SEE ALSO
 \fB
 alsamixer(1),
index c7c82a1..c09f23c 100644 (file)
@@ -41,6 +41,7 @@
 #include <locale.h>
 #include <alsa/asoundlib.h>
 #include <assert.h>
+#include <termios.h>
 #include <sys/poll.h>
 #include <sys/uio.h>
 #include <sys/time.h>
@@ -102,6 +103,7 @@ static int avail_min = -1;
 static int start_delay = 0;
 static int stop_delay = 0;
 static int monotonic = 0;
+static int can_pause = 0;
 static int verbose = 0;
 static int vumeter = VUMETER_NONE;
 static int buffer_pos = 0;
@@ -111,13 +113,24 @@ static int test_position = 0;
 static int test_coef = 8;
 static int test_nowait = 0;
 static snd_output_t *log;
+static long long max_file_size = 0;
+static int max_file_time = 0;
+static int use_strftime = 0;
+volatile static int recycle_capture_file = 0;
+static long term_c_lflag = -1;
 
 static int fd = -1;
 static off64_t pbrec_count = LLONG_MAX, fdcount;
 static int vocmajor, vocminor;
 
+static char *pidfile_name = NULL;
+FILE *pidf = NULL;
+static int pidfile_written = 0;
+
 /* needed prototypes */
 
+static void done_stdin(void);
+
 static void playback(char *filename);
 static void capture(char *filename);
 static void playbackv(char **filenames, unsigned int count);
@@ -194,7 +207,11 @@ _("Usage: %s [OPTION]... [FILE]...\n"
 "    --test-position     test ring buffer position\n"
 "    --test-coef=#      test coeficient for ring buffer position (default 8)\n"
 "                        expression for validation is: coef * (buffer_size / 2)\n"
-"    --test-nowait       do not wait for ring buffer - eats whole CPU\n")
+"    --test-nowait       do not wait for ring buffer - eats whole CPU\n"
+"    --max-file-time=#   start another output file when the old file has recorded\n"
+"                        for this many seconds\n"
+"    --process-id-file   write the process ID here\n"
+"    --use-strftime      apply the strftime facility to the output file name\n")
                , command);
        printf(_("Recognized sample formats are:"));
        for (k = 0; k < SND_PCM_FORMAT_LAST; ++k) {
@@ -324,6 +341,19 @@ static void version(void)
        printf("%s: version " SND_UTIL_VERSION_STR " by Jaroslav Kysela <perex@perex.cz>\n", command);
 }
 
+/*
+ *     Subroutine to clean up before exit.
+ */
+static void prg_exit(int code) 
+{
+       done_stdin();
+       if (handle)
+               snd_pcm_close(handle);
+       if (pidfile_written)
+               remove (pidfile_name);
+       exit(code);
+}
+
 static void signal_handler(int sig)
 {
        if (verbose==2)
@@ -345,7 +375,14 @@ static void signal_handler(int sig)
                snd_pcm_close(handle);
                handle = NULL;
        }
-       exit(EXIT_FAILURE);
+       prg_exit(EXIT_FAILURE);
+}
+
+/* call on SIGUSR1 signal. */
+static void signal_handler_recycle (int sig)
+{
+       /* flag the capture loop to start a new output file */
+       recycle_capture_file = 1;
 }
 
 enum {
@@ -358,7 +395,10 @@ enum {
        OPT_DISABLE_SOFTVOL,
        OPT_TEST_POSITION,
        OPT_TEST_COEF,
-       OPT_TEST_NOWAIT
+       OPT_TEST_NOWAIT,
+       OPT_MAX_FILE_TIME,
+       OPT_PROCESS_ID_FILE,
+       OPT_USE_STRFTIME
 };
 
 int main(int argc, char *argv[])
@@ -399,6 +439,9 @@ int main(int argc, char *argv[])
                {"test-position", 0, 0, OPT_TEST_POSITION},
                {"test-coef", 1, 0, OPT_TEST_COEF},
                {"test-nowait", 0, 0, OPT_TEST_NOWAIT},
+               {"max-file-time", 1, 0, OPT_MAX_FILE_TIME},
+               {"process-id-file", 1, 0, OPT_PROCESS_ID_FILE},
+               {"use-strftime", 0, 0, OPT_USE_STRFTIME},
                {0, 0, 0, 0}
        };
        char *pcm_name = "default";
@@ -493,7 +536,7 @@ int main(int argc, char *argv[])
                                rhwparams.format = snd_pcm_format_value(optarg);
                                if (rhwparams.format == SND_PCM_FORMAT_UNKNOWN) {
                                        error(_("wrong extended format '%s'"), optarg);
-                                       exit(EXIT_FAILURE);
+                                       prg_exit(EXIT_FAILURE);
                                }
                        }
                        break;
@@ -588,6 +631,15 @@ int main(int argc, char *argv[])
                case OPT_TEST_NOWAIT:
                        test_nowait = 1;
                        break;
+               case OPT_MAX_FILE_TIME:
+                       max_file_time = strtol(optarg, NULL, 0);
+                       break;
+               case OPT_PROCESS_ID_FILE:
+                       pidfile_name = optarg;
+                       break;
+               case OPT_USE_STRFTIME:
+                       use_strftime = 1;
+                       break;
                default:
                        fprintf(stderr, _("Try `%s --help' for more information.\n"), command);
                        return 1;
@@ -643,10 +695,24 @@ int main(int argc, char *argv[])
                readn_func = snd_pcm_readn;
        }
 
+       if (pidfile_name) {
+               errno = 0;
+               pidf = fopen (pidfile_name, "w");
+               if (pidf) {
+                       (void)fprintf (pidf, "%d\n", getpid());
+                       fclose(pidf);
+                       pidfile_written = 1;
+               } else {
+                       error(_("Cannot create process ID file %s: %s"), 
+                               pidfile_name, strerror (errno));
+                       return 1;
+               }
+       }
 
        signal(SIGINT, signal_handler);
        signal(SIGTERM, signal_handler);
        signal(SIGABRT, signal_handler);
+       signal(SIGUSR1, signal_handler_recycle);
        if (interleaved) {
                if (optind > argc - 1) {
                        if (stream == SND_PCM_STREAM_PLAYBACK)
@@ -670,10 +736,13 @@ int main(int argc, char *argv[])
        if (verbose==2)
                putchar('\n');
        snd_pcm_close(handle);
+       handle = NULL;
        free(audiobuf);
       __end:
        snd_output_close(log);
        snd_config_update_free_global();
+       prg_exit(EXIT_SUCCESS);
+       /* avoid warning */
        return EXIT_SUCCESS;
 }
 
@@ -725,7 +794,7 @@ static size_t test_wavefile_read(int fd, u_char *buffer, size_t *size, size_t re
                return *size;
        if ((size_t)safe_read(fd, buffer + *size, reqsize - *size) != reqsize - *size) {
                error(_("read error (called from line %i)"), line);
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        return *size = reqsize;
 }
@@ -735,7 +804,7 @@ static size_t test_wavefile_read(int fd, u_char *buffer, size_t *size, size_t re
                blimit = len; \
                if ((buffer = realloc(buffer, blimit)) == NULL) { \
                        error(_("not enough memory"));            \
-                       exit(EXIT_FAILURE); \
+                       prg_exit(EXIT_FAILURE);  \
                } \
        }
 
@@ -784,7 +853,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
        if (len < sizeof(WaveFmtBody)) {
                error(_("unknown length of 'fmt ' chunk (read %u, should be %u at least)"),
                      len, (u_int)sizeof(WaveFmtBody));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        check_wavefile_space(buffer, len, blimit);
        test_wavefile_read(fd, buffer, &size, len, __LINE__);
@@ -794,22 +863,22 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
                if (len < sizeof(WaveFmtExtensibleBody)) {
                        error(_("unknown length of extensible 'fmt ' chunk (read %u, should be %u at least)"),
                                        len, (u_int)sizeof(WaveFmtExtensibleBody));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                if (memcmp(fe->guid_tag, WAV_GUID_TAG, 14) != 0) {
                        error(_("wrong format tag in extensible 'fmt ' chunk"));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                f->format = fe->guid_format;
        }
         if (LE_SHORT(f->format) != WAV_FMT_PCM &&
             LE_SHORT(f->format) != WAV_FMT_IEEE_FLOAT) {
                 error(_("can't play WAVE-file format 0x%04x which is not PCM or FLOAT encoded"), LE_SHORT(f->format));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        if (LE_SHORT(f->channels) < 1) {
                error(_("can't play WAVE-files with %d tracks"), LE_SHORT(f->channels));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        hwparams.channels = LE_SHORT(f->channels);
        switch (LE_SHORT(f->bit_p_spl)) {
@@ -842,7 +911,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
                default:
                        error(_(" can't play WAVE-files with sample %d bits in %d bytes wide (%d channels)"),
                              LE_SHORT(f->bit_p_spl), LE_SHORT(f->byte_p_spl), hwparams.channels);
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                break;
        case 32:
@@ -854,7 +923,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
        default:
                error(_(" can't play WAVE-files with sample %d bits wide"),
                      LE_SHORT(f->bit_p_spl));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        hwparams.rate = LE_INT(f->sample_fq);
        
@@ -936,11 +1005,22 @@ static int test_au(int fd, void *buffer)
                return -1;
        if ((size_t)safe_read(fd, buffer + sizeof(AuHeader), BE_INT(ap->hdr_size) - sizeof(AuHeader)) != BE_INT(ap->hdr_size) - sizeof(AuHeader)) {
                error(_("read error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        return 0;
 }
 
+static void show_available_sample_formats(snd_pcm_hw_params_t* params)
+{
+       snd_pcm_format_t format;
+
+       fprintf(stderr, "Available formats:\n");
+       for (format = 0; format < SND_PCM_FORMAT_LAST; format++) {
+               if (snd_pcm_hw_params_test_format(handle, params, format) == 0)
+                       fprintf(stderr, "- %s\n", snd_pcm_format_name(format));
+       }
+}
+
 static void set_params(void)
 {
        snd_pcm_hw_params_t *params;
@@ -955,7 +1035,7 @@ static void set_params(void)
        err = snd_pcm_hw_params_any(handle, params);
        if (err < 0) {
                error(_("Broken configuration for this PCM: no configurations available"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        if (mmap_flag) {
                snd_pcm_access_mask_t *mask = alloca(snd_pcm_access_mask_sizeof());
@@ -972,17 +1052,18 @@ static void set_params(void)
                                                   SND_PCM_ACCESS_RW_NONINTERLEAVED);
        if (err < 0) {
                error(_("Access type not available"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        err = snd_pcm_hw_params_set_format(handle, params, hwparams.format);
        if (err < 0) {
                error(_("Sample format non available"));
-               exit(EXIT_FAILURE);
+               show_available_sample_formats(params);
+               prg_exit(EXIT_FAILURE);
        }
        err = snd_pcm_hw_params_set_channels(handle, params, hwparams.channels);
        if (err < 0) {
                error(_("Channels count non available"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
 
 #if 0
@@ -1036,18 +1117,19 @@ static void set_params(void)
        }
        assert(err >= 0);
        monotonic = snd_pcm_hw_params_is_monotonic(params);
+       can_pause = snd_pcm_hw_params_can_pause(params);
        err = snd_pcm_hw_params(handle, params);
        if (err < 0) {
                error(_("Unable to install hw params:"));
                snd_pcm_hw_params_dump(params, log);
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        snd_pcm_hw_params_get_period_size(params, &chunk_size, 0);
        snd_pcm_hw_params_get_buffer_size(params, &buffer_size);
        if (chunk_size == buffer_size) {
                error(_("Can't use period equal to buffer size (%lu == %lu)"),
                      chunk_size, buffer_size);
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        snd_pcm_sw_params_current(handle, swparams);
        if (avail_min < 0)
@@ -1078,7 +1160,7 @@ static void set_params(void)
        if (snd_pcm_sw_params(handle, swparams) < 0) {
                error(_("unable to install sw params:"));
                snd_pcm_sw_params_dump(swparams, log);
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
 
        if (verbose)
@@ -1090,7 +1172,7 @@ static void set_params(void)
        audiobuf = realloc(audiobuf, chunk_bytes);
        if (audiobuf == NULL) {
                error(_("not enough memory"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        // fprintf(stderr, "real chunk_size = %i, frags = %i, total = %i\n", chunk_size, setup.buf.block.frags, setup.buf.block.frags * chunk_size);
 
@@ -1103,12 +1185,12 @@ static void set_params(void)
        /* show mmap buffer arragment */
        if (mmap_flag && verbose) {
                const snd_pcm_channel_area_t *areas;
-               snd_pcm_uframes_t offset;
+               snd_pcm_uframes_t offset, size = chunk_size;
                int i;
-               err = snd_pcm_mmap_begin(handle, &areas, &offset, &chunk_size);
+               err = snd_pcm_mmap_begin(handle, &areas, &offset, &size);
                if (err < 0) {
-                       error("snd_pcm_mmap_begin problem: %s", snd_strerror(err));
-                       exit(EXIT_FAILURE);
+                       error(_("snd_pcm_mmap_begin problem: %s"), snd_strerror(err));
+                       prg_exit(EXIT_FAILURE);
                }
                for (i = 0; i < hwparams.channels; i++)
                        fprintf(stderr, "mmap_area[%i] = %p,%u,%u (%u)\n", i, areas[i].addr, areas[i].first, areas[i].step, snd_pcm_format_physical_width(hwparams.format));
@@ -1119,6 +1201,77 @@ static void set_params(void)
        buffer_frames = buffer_size;    /* for position test */
 }
 
+static void init_stdin(void)
+{
+       struct termios term;
+       long flags;
+
+       tcgetattr(fileno(stdin), &term);
+       term_c_lflag = term.c_lflag;
+       if (fd == fileno(stdin))
+               return;
+       flags = fcntl(fileno(stdin), F_GETFL);
+       if (flags < 0 || fcntl(fileno(stdin), F_SETFL, flags|O_NONBLOCK) < 0)
+               fprintf(stderr, _("stdin O_NONBLOCK flag setup failed\n"));
+       term.c_lflag &= ~ICANON;
+       tcsetattr(fileno(stdin), TCSANOW, &term);
+}
+
+static void done_stdin(void)
+{
+       struct termios term;
+
+       if (fd == fileno(stdin) || term_c_lflag == -1)
+               return;
+       tcgetattr(fileno(stdin), &term);
+       term.c_lflag = term_c_lflag;
+       tcsetattr(fileno(stdin), TCSANOW, &term);
+}
+
+static void do_pause(void)
+{
+       int err;
+       unsigned char b;
+
+       if (!can_pause) {
+               fprintf(stderr, _("\rPAUSE command ignored (no hw support)\n"));
+               return;
+       }
+       err = snd_pcm_pause(handle, 1);
+       if (err < 0) {
+               error(_("pause push error: %s"), snd_strerror(err));
+               return;
+       }
+       while (1) {
+               while (read(fileno(stdin), &b, 1) != 1);
+               if (b == ' ' || b == '\r') {
+                       while (read(fileno(stdin), &b, 1) == 1);
+                       err = snd_pcm_pause(handle, 0);
+                       if (err < 0)
+                               error(_("pause release error: %s"), snd_strerror(err));
+                       return;
+               }
+       }
+}
+
+static void check_stdin(void)
+{
+       unsigned char b;
+
+       if (fd != fileno(stdin)) {
+               while (read(fileno(stdin), &b, 1) == 1) {
+                       if (b == ' ' || b == '\r') {
+                               while (read(fileno(stdin), &b, 1) == 1);
+                               fprintf(stderr, _("\r=== PAUSE ===                                                            "));
+                               fflush(stderr);
+                       do_pause();
+                               fprintf(stderr, "                                                                          \r");
+                               fflush(stderr);
+                       }
+               }
+       }
+}
+
 #ifndef timersub
 #define        timersub(a, b, result) \
 do { \
@@ -1152,7 +1305,7 @@ static void xrun(void)
        snd_pcm_status_alloca(&status);
        if ((res = snd_pcm_status(handle, status))<0) {
                error(_("status error: %s"), snd_strerror(res));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        if (snd_pcm_status_get_state(status) == SND_PCM_STATE_XRUN) {
                if (monotonic) {
@@ -1182,7 +1335,7 @@ static void xrun(void)
                }
                if ((res = snd_pcm_prepare(handle))<0) {
                        error(_("xrun: prepare error: %s"), snd_strerror(res));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                return;         /* ok, data should be accepted again */
        } if (snd_pcm_status_get_state(status) == SND_PCM_STATE_DRAINING) {
@@ -1194,7 +1347,7 @@ static void xrun(void)
                        fprintf(stderr, _("capture stream format change? attempting recover...\n"));
                        if ((res = snd_pcm_prepare(handle))<0) {
                                error(_("xrun(DRAINING): prepare error: %s"), snd_strerror(res));
-                               exit(EXIT_FAILURE);
+                               prg_exit(EXIT_FAILURE);
                        }
                        return;
                }
@@ -1204,7 +1357,7 @@ static void xrun(void)
                snd_pcm_status_dump(status, log);
        }
        error(_("read/write error, state = %s"), snd_pcm_state_name(snd_pcm_status_get_state(status)));
-       exit(EXIT_FAILURE);
+       prg_exit(EXIT_FAILURE);
 }
 
 /* I/O suspend handler */
@@ -1221,7 +1374,7 @@ static void suspend(void)
                        fprintf(stderr, _("Failed. Restarting stream. ")); fflush(stderr);
                if ((res = snd_pcm_prepare(handle)) < 0) {
                        error(_("suspend: prepare error: %s"), snd_strerror(res));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
        }
        if (!quiet_mode)
@@ -1514,19 +1667,20 @@ static ssize_t pcm_write(u_char *data, size_t count)
        while (count > 0) {
                if (test_position)
                        do_test_position();
+               check_stdin();
                r = writei_func(handle, data, count);
                if (test_position)
                        do_test_position();
                if (r == -EAGAIN || (r >= 0 && (size_t)r < count)) {
                        if (!test_nowait)
-                               snd_pcm_wait(handle, 1000);
+                               snd_pcm_wait(handle, 100);
                } else if (r == -EPIPE) {
                        xrun();
                } else if (r == -ESTRPIPE) {
                        suspend();
                } else if (r < 0) {
                        error(_("write error: %s"), snd_strerror(r));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                if (r > 0) {
                        if (vumeter)
@@ -1560,19 +1714,20 @@ static ssize_t pcm_writev(u_char **data, unsigned int channels, size_t count)
                        bufs[channel] = data[channel] + offset * bits_per_sample / 8;
                if (test_position)
                        do_test_position();
+               check_stdin();
                r = writen_func(handle, bufs, count);
                if (test_position)
                        do_test_position();
                if (r == -EAGAIN || (r >= 0 && (size_t)r < count)) {
                        if (!test_nowait)
-                               snd_pcm_wait(handle, 1000);
+                               snd_pcm_wait(handle, 100);
                } else if (r == -EPIPE) {
                        xrun();
                } else if (r == -ESTRPIPE) {
                        suspend();
                } else if (r < 0) {
                        error(_("writev error: %s"), snd_strerror(r));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                if (r > 0) {
                        if (vumeter) {
@@ -1603,19 +1758,20 @@ static ssize_t pcm_read(u_char *data, size_t rcount)
        while (count > 0) {
                if (test_position)
                        do_test_position();
+               check_stdin();
                r = readi_func(handle, data, count);
                if (test_position)
                        do_test_position();
                if (r == -EAGAIN || (r >= 0 && (size_t)r < count)) {
                        if (!test_nowait)
-                               snd_pcm_wait(handle, 1000);
+                               snd_pcm_wait(handle, 100);
                } else if (r == -EPIPE) {
                        xrun();
                } else if (r == -ESTRPIPE) {
                        suspend();
                } else if (r < 0) {
                        error(_("read error: %s"), snd_strerror(r));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                if (r > 0) {
                        if (vumeter)
@@ -1646,19 +1802,20 @@ static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount)
                        bufs[channel] = data[channel] + offset * bits_per_sample / 8;
                if (test_position)
                        do_test_position();
+               check_stdin();
                r = readn_func(handle, bufs, count);
                if (test_position)
                        do_test_position();
                if (r == -EAGAIN || (r >= 0 && (size_t)r < count)) {
                        if (!test_nowait)
-                               snd_pcm_wait(handle, 1000);
+                               snd_pcm_wait(handle, 100);
                } else if (r == -EPIPE) {
                        xrun();
                } else if (r == -ESTRPIPE) {
                        suspend();
                } else if (r < 0) {
                        error(_("readv error: %s"), snd_strerror(r));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                if (r > 0) {
                        if (vumeter) {
@@ -1715,7 +1872,7 @@ static void voc_write_silence(unsigned x)
                        l = chunk_size;
                if (voc_pcm_write(buf, l) != (ssize_t)l) {
                        error(_("write error"));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                x -= l;
        }
@@ -1757,7 +1914,7 @@ static void voc_play(int fd, int ofs, char *name)
        buffer_pos = 0;
        if (data == NULL) {
                error(_("malloc error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        if (!quiet_mode) {
                fprintf(stderr, _("Playing Creative Labs Channel file '%s'...\n"), name);
@@ -1766,14 +1923,14 @@ static void voc_play(int fd, int ofs, char *name)
        while (ofs > (ssize_t)chunk_bytes) {
                if ((size_t)safe_read(fd, buf, chunk_bytes) != chunk_bytes) {
                        error(_("read error"));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                ofs -= chunk_bytes;
        }
        if (ofs) {
                if (safe_read(fd, buf, ofs) != ofs) {
                        error(_("read error"));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
        }
        hwparams.format = DEFAULT_FORMAT;
@@ -1797,7 +1954,7 @@ static void voc_play(int fd, int ofs, char *name)
                                nextblock = buf[0] = 0;
                                if (l == -1) {
                                        perror(name);
-                                       exit(EXIT_FAILURE);
+                                       prg_exit(EXIT_FAILURE);
                                }
                        }
                }
@@ -1941,12 +2098,12 @@ static void voc_play(int fd, int ofs, char *name)
                        if (output && !quiet_mode) {
                                if (write(2, data, l) != l) {   /* to stderr */
                                        error(_("write error"));
-                                       exit(EXIT_FAILURE);
+                                       prg_exit(EXIT_FAILURE);
                                }
                        } else {
                                if (voc_pcm_write(data, l) != l) {
                                        error(_("write error"));
-                                       exit(EXIT_FAILURE);
+                                       prg_exit(EXIT_FAILURE);
                                }
                        }
                        COUNT(l);
@@ -1993,7 +2150,7 @@ static void begin_voc(int fd, size_t cnt)
 
        if (write(fd, &vh, sizeof(VocHeader)) != sizeof(VocHeader)) {
                error(_("write error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        if (hwparams.channels > 1) {
                /* write an extended block */
@@ -2002,14 +2159,14 @@ static void begin_voc(int fd, size_t cnt)
                bt.datalen_m = bt.datalen_h = 0;
                if (write(fd, &bt, sizeof(VocBlockType)) != sizeof(VocBlockType)) {
                        error(_("write error"));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
                eb.tc = LE_SHORT(65536 - 256000000L / (hwparams.rate << 1));
                eb.pack = 0;
                eb.mode = 1;
                if (write(fd, &eb, sizeof(VocExtBlock)) != sizeof(VocExtBlock)) {
                        error(_("write error"));
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
        }
        bt.type = 1;
@@ -2019,13 +2176,13 @@ static void begin_voc(int fd, size_t cnt)
        bt.datalen_h = (u_char) ((cnt & 0xFF0000) >> 16);
        if (write(fd, &bt, sizeof(VocBlockType)) != sizeof(VocBlockType)) {
                error(_("write error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        vd.tc = (u_char) (256 - (1000000 / hwparams.rate));
        vd.pack = 0;
        if (write(fd, &vd, sizeof(VocVoiceData)) != sizeof(VocVoiceData)) {
                error(_("write error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
 }
 
@@ -2061,7 +2218,7 @@ static void begin_wave(int fd, size_t cnt)
                break;
        default:
                error(_("Wave doesn't support %s format..."), snd_pcm_format_name(hwparams.format));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        h.magic = WAV_RIFF;
        tmp = cnt + sizeof(WaveHeader) + sizeof(WaveChunkHeader) + sizeof(WaveFmtBody) + sizeof(WaveChunkHeader) - 8;
@@ -2097,7 +2254,7 @@ static void begin_wave(int fd, size_t cnt)
            write(fd, &f, sizeof(WaveFmtBody)) != sizeof(WaveFmtBody) ||
            write(fd, &cd, sizeof(WaveChunkHeader)) != sizeof(WaveChunkHeader)) {
                error(_("write error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
 }
 
@@ -2121,13 +2278,13 @@ static void begin_au(int fd, size_t cnt)
                break;
        default:
                error(_("Sparc Audio doesn't support %s format..."), snd_pcm_format_name(hwparams.format));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        ah.sample_rate = BE_INT(hwparams.rate);
        ah.channels = BE_INT(hwparams.channels);
        if (write(fd, &ah, sizeof(AuHeader)) != sizeof(AuHeader)) {
                error(_("write error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
 }
 
@@ -2141,7 +2298,7 @@ static void end_voc(int fd)
 
        if (write(fd, &dummy, 1) != 1) {
                error(_("write error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        length_seek = sizeof(VocHeader);
        if (hwparams.channels > 1)
@@ -2249,7 +2406,7 @@ static void playback_go(int fd, size_t loaded, off64_t count, int rtype, char *n
                        r = safe_read(fd, audiobuf + l, c);
                        if (r < 0) {
                                perror(name);
-                               exit(EXIT_FAILURE);
+                               prg_exit(EXIT_FAILURE);
                        }
                        fdcount += r;
                        if (r == 0)
@@ -2286,16 +2443,17 @@ static void playback(char *name)
                fd = fileno(stdin);
                name = "stdin";
        } else {
+               init_stdin();
                if ((fd = open64(name, O_RDONLY, 0)) == -1) {
                        perror(name);
-                       exit(EXIT_FAILURE);
+                       prg_exit(EXIT_FAILURE);
                }
        }
        /* read the file header */
        dta = sizeof(AuHeader);
        if ((size_t)safe_read(fd, audiobuf, dta) != dta) {
                error(_("read error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
        if (test_au(fd, audiobuf) >= 0) {
                rhwparams.format = hwparams.format;
@@ -2307,7 +2465,7 @@ static void playback(char *name)
        if ((size_t)safe_read(fd, audiobuf + sizeof(AuHeader),
                 dta - sizeof(AuHeader)) != dta - sizeof(AuHeader)) {
                error(_("read error"));
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);;
        }
        if ((ofs = test_vocfile(audiobuf)) >= 0) {
                pbrec_count = calc_count();
@@ -2329,13 +2487,98 @@ static void playback(char *name)
                close(fd);
 }
 
+/**
+ * mystrftime
+ *
+ *   Variant of strftime(3) that supports additional format
+ *   specifiers in the format string.
+ *
+ * Parameters:
+ *
+ *   s   - destination string
+ *   max       - max number of bytes to write
+ *   userformat - format string
+ *   tm         - time information
+ *   filenumber - the number of the file, starting at 1
+ *
+ * Returns: number of bytes written to the string s
+ */
+size_t mystrftime(char *s, size_t max, const char *userformat,
+                 const struct tm *tm, const int filenumber)
+{
+       char formatstring[PATH_MAX] = "";
+       char tempstring[PATH_MAX] = "";
+       char *format, *tempstr;
+       const char *pos_userformat;
+
+       format = formatstring;
+
+       /* if mystrftime is called with userformat = NULL we return a zero length string */
+       if (userformat == NULL) {
+               *s = '\0';
+               return 0;
+       }
+
+       for (pos_userformat = userformat; *pos_userformat; ++pos_userformat) {
+               if (*pos_userformat == '%') {
+                       tempstr = tempstring;
+                       tempstr[0] = '\0';
+                       switch (*++pos_userformat) {
+
+                               case '\0': // end of string
+                                       --pos_userformat;
+                                       break;
+
+                               case 'v': // file number 
+                                       sprintf(tempstr, "%02d", filenumber);
+                                       break;
+
+                               default: // All other codes will be handled by strftime
+                                       *format++ = '%';
+                                       *format++ = *pos_userformat;
+                                       continue;
+                       }
+
+                       /* If a format specifier was found and used, copy the result. */
+                       if (tempstr[0]) {
+                               while ((*format = *tempstr++) != '\0')
+                                       ++format;
+                               continue;
+                       }
+               }
+
+               /* For any other character than % we simply copy the character */
+               *format++ = *pos_userformat;
+       }
+
+       *format = '\0';
+       format = formatstring;
+       return strftime(s, max, format, tm);
+}
+
 static int new_capture_file(char *name, char *namebuf, size_t namelen,
                            int filecount)
 {
-       /* get a copy of the original filename */
        char *s;
        char buf[PATH_MAX+1];
+       time_t t;
+       struct tm *tmp;
+
+       if (use_strftime) {
+               t = time(NULL);
+               tmp = localtime(&t);
+               if (tmp == NULL) {
+                       perror("localtime");
+                       prg_exit(EXIT_FAILURE);
+               }
+               if (mystrftime(namebuf, namelen, name, tmp, filecount+1) == 0) {
+                       fprintf(stderr, "mystrftime returned 0");
+                       prg_exit(EXIT_FAILURE);
+               }
+               return filecount;
+       }
 
+       /* get a copy of the original filename */
        strncpy(buf, name, sizeof(buf));
 
        /* separate extension from filename */
@@ -2367,6 +2610,58 @@ static int new_capture_file(char *name, char *namebuf, size_t namelen,
        return filecount;
 }
 
+/**
+ * create_path
+ *
+ *   This function creates a file path, like mkdir -p. 
+ *
+ * Parameters:
+ *
+ *   path - the path to create
+ *
+ * Returns: 0 on success, -1 on failure
+ * On failure, a message has been printed to stderr.
+ */
+int create_path(const char *path)
+{
+       char *start;
+       mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
+
+       if (path[0] == '/')
+               start = strchr(path + 1, '/');
+       else
+               start = strchr(path, '/');
+
+       while (start) {
+               char *buffer = strdup(path);
+               buffer[start-path] = 0x00;
+
+               if (mkdir(buffer, mode) == -1 && errno != EEXIST) {
+                       fprintf(stderr, "Problem creating directory %s", buffer);
+                       perror(" ");
+                       free(buffer);
+                       return -1;
+               }
+               free(buffer);
+               start = strchr(start + 1, '/');
+       }
+       return 0;
+}
+
+static int safe_open(const char *name)
+{
+       int fd;
+
+       fd = open64(name, O_WRONLY | O_CREAT, 0644);
+       if (fd == -1) {
+               if (errno != ENOENT || !use_strftime)
+                       return -1;
+               if (create_path(name) == 0)
+                       fd = open64(name, O_WRONLY | O_CREAT, 0644);
+       }
+       return fd;
+}
+
 static void capture(char *orig_name)
 {
        int tostdout=0;         /* boolean which describes output stream */
@@ -2379,6 +2674,10 @@ static void capture(char *orig_name)
        count = calc_count();
        if (count == 0)
                count = LLONG_MAX;
+       /* compute the number of bytes per file */
+       max_file_size = max_file_time *
+               snd_pcm_format_size(hwparams.format,
+                                   hwparams.rate * hwparams.channels);
        /* WAVE-file should be even (I'm not sure), but wasting one byte
           isn't a problem (this can only be in 8 bit mono) */
        if (count < LLONG_MAX)
@@ -2400,12 +2699,13 @@ static void capture(char *orig_name)
                if (count > fmt_rec_table[file_type].max_filesize)
                        count = fmt_rec_table[file_type].max_filesize;
        }
+       init_stdin();
 
        do {
                /* open a file to write */
                if(!tostdout) {
                        /* upon the second file we start the numbering scheme */
-                       if (filecount) {
+                       if (filecount || use_strftime) {
                                filecount = new_capture_file(orig_name, namebuf,
                                                             sizeof(namebuf),
                                                             filecount);
@@ -2414,9 +2714,10 @@ static void capture(char *orig_name)
                        
                        /* open a new file */
                        remove(name);
-                       if ((fd = open64(name, O_WRONLY | O_CREAT, 0644)) == -1) {
+                       fd = safe_open(name);
+                       if (fd < 0) {
                                perror(name);
-                               exit(EXIT_FAILURE);
+                               prg_exit(EXIT_FAILURE);
                        }
                        filecount++;
                }
@@ -2424,6 +2725,8 @@ static void capture(char *orig_name)
                rest = count;
                if (rest > fmt_rec_table[file_type].max_filesize)
                        rest = fmt_rec_table[file_type].max_filesize;
+               if (max_file_size && (rest > max_file_size)) 
+                       rest = max_file_size;
 
                /* setup sample header */
                if (fmt_rec_table[file_type].start)
@@ -2431,7 +2734,7 @@ static void capture(char *orig_name)
 
                /* capture */
                fdcount = 0;
-               while (rest > 0) {
+               while (rest > 0 && recycle_capture_file == 0) {
                        size_t c = (rest <= (off64_t)chunk_bytes) ?
                                (size_t)rest : chunk_bytes;
                        size_t f = c * 8 / bits_per_frame;
@@ -2439,13 +2742,19 @@ static void capture(char *orig_name)
                                break;
                        if (write(fd, audiobuf, c) != c) {
                                perror(name);
-                               exit(EXIT_FAILURE);
+                               prg_exit(EXIT_FAILURE);
                        }
                        count -= c;
                        rest -= c;
                        fdcount += c;
                }
 
+               /* re-enable SIGUSR1 signal */
+               if (recycle_capture_file) {
+                       recycle_capture_file = 0;
+                       signal(SIGUSR1, signal_handler_recycle);
+               }
+
                /* finish sample container */
                if (fmt_rec_table[file_type].end && !tostdout) {
                        fmt_rec_table[file_type].end(fd);
@@ -2486,12 +2795,12 @@ static void playbackv_go(int* fds, unsigned int channels, size_t loaded, off64_t
                        r = safe_read(fds[0], bufs[0], expected);
                        if (r < 0) {
                                perror(names[channel]);
-                               exit(EXIT_FAILURE);
+                               prg_exit(EXIT_FAILURE);
                        }
                        for (channel = 1; channel < channels; ++channel) {
                                if (safe_read(fds[channel], bufs[channel], r) != r) {
                                        perror(names[channel]);
-                                       exit(EXIT_FAILURE);
+                                       prg_exit(EXIT_FAILURE);
                                }
                        }
                        if (r == 0)
@@ -2538,7 +2847,7 @@ static void capturev_go(int* fds, unsigned int channels, off64_t count, int rtyp
                for (channel = 0; channel < channels; ++channel) {
                        if ((size_t)write(fds[channel], bufs[channel], rv) != rv) {
                                perror(names[channel]);
-                               exit(EXIT_FAILURE);
+                               prg_exit(EXIT_FAILURE);
                        }
                }
                r = r * bits_per_frame / 8;
@@ -2571,7 +2880,7 @@ static void playbackv(char **names, unsigned int count)
                alloced = 1;
        } else if (count != channels) {
                error(_("You need to specify %d files"), channels);
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
 
        for (channel = 0; channel < channels; ++channel) {
@@ -2597,7 +2906,7 @@ static void playbackv(char **names, unsigned int count)
        if (alloced)
                free(names);
        if (ret)
-               exit(ret);
+               prg_exit(ret);
 }
 
 static void capturev(char **names, unsigned int count)
@@ -2624,7 +2933,7 @@ static void capturev(char **names, unsigned int count)
                alloced = 1;
        } else if (count != channels) {
                error(_("You need to specify %d files"), channels);
-               exit(EXIT_FAILURE);
+               prg_exit(EXIT_FAILURE);
        }
 
        for (channel = 0; channel < channels; ++channel) {
@@ -2650,5 +2959,5 @@ static void capturev(char **names, unsigned int count)
        if (alloced)
                free(names);
        if (ret)
-               exit(ret);
+               prg_exit(ret);
 }
diff --git a/aplay/arecord b/aplay/arecord
deleted file mode 120000 (symlink)
index 82fbd43..0000000
+++ /dev/null
@@ -1 +0,0 @@
-aplay
\ No newline at end of file
index 7759347..b6caf0b 100644 (file)
@@ -1,4 +1,4 @@
-.TH APLAY 1 "2 August 2001"
+.TH APLAY 1 "1 January 2010"
 .SH NAME
 arecord, aplay \- command-line sound recorder and player for ALSA 
 soundcard driver
@@ -46,6 +46,7 @@ If this parameter is omitted the WAVE format is used.
 \fI\-c, \-\-channels=#\fP
 The number of channels.
 The default is one channel.
+Valid values are 1 through 32.
 .TP
 \fI\-f \-\-format=FORMAT\fP
 Sample format
@@ -53,19 +54,23 @@ Sample format
 Recognized sample formats are: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE
 S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE
 FLOAT64_LE FLOAT64_BE IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW
-A_LAW IMA_ADPCM MPEG GSM
+A_LAW IMA_ADPCM MPEG GSM SPECIAL S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE
+S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE
 .br
 Some of these may not be available on selected hardware
 .br
-There are also two format shortcuts available:
+The available format shortcuts are:
 .nf
-\-f cd (16 bit little endian, 44100, stereo [\-f S16_LE \-c2 \-r44100]
+\-f cd (16 bit little endian, 44100, stereo) [\-f S16_LE \-c2 \-r44100]
+\-f cdr (16 bit big endian, 44100, stereo) [\-f S16_BE \-c2 \-f44100]
 \-f dat (16 bit little endian, 48000, stereo) [\-f S16_LE \-c2 \-r48000]
 .fi
 If no format is given U8 is used.
 .TP
 \fI\-r, \-\-rate=#<Hz>\fP
 Sampling rate in Hertz. The default rate is 8000 Hertz.
+If the value specified is less than 300, it is taken as the rate in kilohertz.
+Valid values are 2000 through 192000 Hertz.
 .TP
 \fI\-d, \-\-duration=#\fP
 Interrupt after # seconds.
@@ -120,10 +125,69 @@ The stereo VU-meter is available only for 2-channel stereo samples
 with interleaved format.
 .TP
 \fI\-I, \-\-separate\-channels\fP 
-One file for each channel
+One file for each channel.  This option disables max\-file\-time
+and use\-strftime, and ignores SIGUSR1.  The stereo VU meter is
+not available with separate channels.
+.TP
+\fI\-P\fP
+Playback.  This is the default if the program is invoked
+by typing aplay.
+.TP
+\fI\-C\fP
+Record.  This is the default if the program is invoked
+by typing arecord.
+.TP
+\fI\-\-disable\-resample\fP
+Disable automatic rate resample.
+.TP
+\fI\-\-disable\-channels\fP
+Disable automatic channel conversions.
+.TP
+\fI\-\-disable\-format\fP
+Disable automatic format conversions.
+.TP
+\fI\-\-disable\-softvol\fP
+Disable software volume control (softvol).
+.TP
+\fI\-\-test\-position\fP
+Test ring buffer position.
+.TP
+\fI\-\-test\-coef=<coef>\fP
+Test coefficient for ring buffer position; default is 8.
+Expression for validation is: coef * (buffer_size / 2).
+Minimum value is 1.
+.TP
+\fI\-\-test\-nowait\fP
+Do not wait for the ring buffer--eats the whole CPU.
+.TP
+\fI\-\-max\-file\-time\fP
+While recording, when the output file has been accumulating
+sound for this long,
+close it and open a new output file.  Default is the maximum
+size supported by the file format: 2 GiB for WAV files.
+This option has no effect if  \-\-separate\-channels is
+specified.
+.TP
+\fI\-\-process\-id\-file <file name>\fP
+aplay writes its process ID here, so other programs can
+send signals to it.
+.TP
+\fI\-\-use\-strftime\fP
+When recording, interpret %-codes in the file name parameter using
+the strftime facility whenever the output file is opened.  The
+important strftime codes are: %Y is the year, %m month, %d day of
+the month, %H hour, %M minute and %S second.  In addition, %v is
+the file number, starting at 1.  When this option is specified,
+intermediate directories for the output file are created automatically.
+This option has no effect if \-\-separate\-channels is specified.
 
-.SS
-Example:
+.SH SIGNALS
+When recording, SIGINT, SIGTERM and SIGABRT will close the output 
+file and exit.  SIGUSR1 will close the output file, open a new one,
+and continue recording.  However, SIGUSR1 does not work with
+\-\-separate\-channels.
+
+.SH EXAMPLES
 
 .TP
 \fBaplay \-c 1 \-t raw \-r 22050 \-f mu_law foobar\fR
@@ -144,6 +208,19 @@ pcm.copy {
 }
 .fi
 
+.TP
+\fBarecord \-t wav \-max-file_time 30 mon.wav\fP
+Record from the default audio source in monaural, 8,000 samples
+per second, 8 bits per sample.  Start a new file every
+30 seconds.  File names are mon-nn.wav, where nn increases
+from 01.  The file after mon-99.wav is mon-100.wav.
+
+.TP
+\fBarecord \-f cd \-t wav \-max-file-time 3600 --use-strftime %Y/%m/%d/listen-%H-%M-%v.wav\fP
+Record in stereo from the default audio source.  Create a new file
+every hour.  The files are placed in directories based on their start dates
+and have names which include their start times and file numbers.
+
 .SH SEE ALSO
 \fB
 alsamixer(1),
index c2246a4..dc84c68 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2009-12-30'
+timestamp='2009-11-20'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -56,9 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
index c2d1257..2a55a50 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2010-01-22'
+timestamp='2009-11-20'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -75,9 +75,8 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -381,8 +380,7 @@ case $basic_machine in
        | sparclite-* \
        | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
        | tahoe-* | thumb-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tile-* | tilegx-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
        | tron-* \
        | ubicom32-* \
        | v850-* | v850e-* | vax-* \
@@ -1087,11 +1085,6 @@ case $basic_machine in
                basic_machine=tic6x-unknown
                os=-coff
                ;;
-        # This must be matched before tile*.
-        tilegx*)
-               basic_machine=tilegx-unknown
-               os=-linux-gnu
-               ;;
        tile*)
                basic_machine=tile-unknown
                os=-linux-gnu
@@ -1442,8 +1435,6 @@ case $os in
        -dicos*)
                os=-dicos
                ;;
-        -nacl*)
-               ;;
        -none)
                ;;
        *)
index 7bc65ba..cd0b71e 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67.
+# Generated by GNU Autoconf 2.68.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -89,6 +89,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -214,11 +215,18 @@ IFS=$as_save_IFS
   # We cannot yet assume a decent shell, so we have to provide a
        # neutralization value for shells without unset; and this also
        # works around shells that cannot unset nonexistent variables.
+       # Preserve -v and -x to the replacement shell.
        BASH_ENV=/dev/null
        ENV=/dev/null
        (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
        export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+       case $- in # ((((
+         *v*x* | *x*v* ) as_opts=-vx ;;
+         *v* ) as_opts=-v ;;
+         *x* ) as_opts=-x ;;
+         * ) as_opts= ;;
+       esac
+       exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
 fi
 
     if test x$as_have_required = xno; then :
@@ -592,8 +600,15 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='LTLIBOBJS
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
 LIBOBJS
+ASOUND_STATE_DIR
+HAVE_SYSTEMD_FALSE
+HAVE_SYSTEMD_TRUE
+systemdsystemunitdir
+PKG_CONFIG
 LIBRT
 SND_UTIL_SUBMINOR
 SND_UTIL_MINOR
@@ -608,13 +623,18 @@ ncursesw5_config
 EGREP
 GREP
 CPP
+udevrulesdir
 USE_XMLTO_FALSE
 USE_XMLTO_TRUE
 xmlto
+ALSALOOP_FALSE
+ALSALOOP_TRUE
 ALSACONF_FALSE
 ALSACONF_TRUE
 ALSAMIXER_FALSE
 ALSAMIXER_TRUE
+HAVE_SAMPLERATE_FALSE
+HAVE_SAMPLERATE_TRUE
 HAVE_SEQ_FALSE
 HAVE_SEQ_TRUE
 HAVE_RAWMIDI_FALSE
@@ -672,6 +692,7 @@ am__leading_dot
 SET_MAKE
 AWK
 mkdir_p
+MKDIR_P
 INSTALL_STRIP_PROGRAM
 STRIP
 install_sh
@@ -683,6 +704,7 @@ ACLOCAL
 VERSION
 PACKAGE
 CYGPATH_W
+am__isrc
 INSTALL_DATA
 INSTALL_SCRIPT
 INSTALL_PROGRAM
@@ -739,10 +761,14 @@ enable_alsatest
 with_librt
 enable_alsamixer
 enable_alsaconf
+enable_alsaloop
 enable_xmlto
+with_udev_rules_dir
 with_curses
 with_testsound
 enable_largefile
+with_systemdsystemunitdir
+with_asound_state_dir
 '
       ac_precious_vars='build_alias
 host_alias
@@ -752,7 +778,8 @@ CFLAGS
 LDFLAGS
 LIBS
 CPPFLAGS
-CPP'
+CPP
+PKG_CONFIG'
 
 
 # Initialize some variables set by options.
@@ -1157,7 +1184,7 @@ Try \`$0 --help' for more information"
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1378,6 +1405,7 @@ Optional Features:
   --disable-alsatest      Do not try to compile and run a test Alsa program
   --disable-alsamixer     Disable alsamixer compilation
   --disable-alsaconf      Disable alsaconf packaging
+  --disable-alsaloop      Disable alsaloop packaging
   --disable-xmlto         Disable man page creation via xmlto
   --disable-largefile     omit support for large files
 
@@ -1392,8 +1420,14 @@ Optional Packages:
   --with-alsa-prefix=PFX  Prefix where Alsa library is installed(optional)
   --with-alsa-inc-prefix=PFX  Prefix where include libraries are (optional)
   --with-librt            Use librt for monotonic clock (default = yes)
+  --with-udev-rules-dir   Directory where to install udev rules to (defaults
+                          to /lib/udev/rules.d)
   --with-curses libname   Specify the curses library to use (default=auto)
   --with-testsound=file        give the path of test sound file for alsaconf
+  --with-systemdsystemunitdir=DIR
+                          Directory for systemd service files
+  --with-asound-state-dir=DIR
+                          Directory to place asound.state file in
 
 Some influential environment variables:
   CC          C compiler command
@@ -1404,6 +1438,7 @@ Some influential environment variables:
   CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
   CPP         C preprocessor
+  PKG_CONFIG  path to pkg-config utility
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1472,7 +1507,7 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.67
+generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
@@ -1518,7 +1553,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
        ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_compile
@@ -1564,7 +1599,7 @@ fi
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_link
@@ -1578,7 +1613,7 @@ ac_fn_c_check_header_compile ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1596,7 +1631,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
 
@@ -1632,7 +1667,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_cpp
@@ -1674,7 +1709,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
        ac_retval=$ac_status
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_run
@@ -1687,10 +1722,10 @@ fi
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
+  if eval \${$3+:} false; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -1753,7 +1788,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -1762,7 +1797,7 @@ eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_mongrel
 cat >config.log <<_ACEOF
@@ -1770,7 +1805,7 @@ This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
 
@@ -2028,7 +2063,7 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
       || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
   fi
 done
 
@@ -2118,7 +2153,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-am__api_version="1.9"
+am__api_version='1.11'
+
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
   if test -f "$ac_dir/install-sh"; then
@@ -2165,7 +2201,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2246,16 +2282,29 @@ $as_echo_n "checking whether build environment is sane... " >&6; }
 # Just in case
 sleep 1
 echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[\\\"\#\$\&\'\`$am_lf]*)
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+  *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
+    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
    if test "$*" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftest.file`
+      set X `ls -t "$srcdir/configure" conftest.file`
    fi
    rm -f conftest.file
    if test "$*" != "X $srcdir/configure conftest.file" \
@@ -2293,7 +2342,14 @@ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 # expand $ac_aux_dir to an absolute path
 am_aux_dir=`cd $ac_aux_dir && pwd`
 
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\    *)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
 # Use eval to expand $SHELL
 if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
@@ -2303,46 +2359,170 @@ else
 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
 fi
 
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-  # We used to keeping the `.' as first argument, in order to
-  # allow $(mkdir_p) to be used without argument.  As in
-  #   $(mkdir_p) $(somedir)
-  # where $(somedir) is conditionally defined.  However this is wrong
-  # for two reasons:
-  #  1. if the package is installed by a user who cannot write `.'
-  #     make install will fail,
-  #  2. the above comment should most certainly read
-  #     $(mkdir_p) $(DESTDIR)$(somedir)
-  #     so it does not work when $(somedir) is undefined and
-  #     $(DESTDIR) is not.
-  #  To support the latter case, we have to write
-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
-  #  so the `.' trick is pointless.
-  mkdir_p='mkdir -p --'
-else
-  # On NextStep and OpenStep, the `mkdir' command does not
-  # recognize any option.  It will interpret all options as
-  # directories to create, and then abort because `.' already
-  # exists.
-  for d in ./-p ./--version;
-  do
-    test -d $d && rmdir $d
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\    *)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
   done
-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
-  if test -f "$ac_aux_dir/mkinstalldirs"; then
-    mkdir_p='$(mkinstalldirs)'
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
   else
-    mkdir_p='$(install_sh) -d'
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
   fi
+else
+  STRIP="$ac_cv_prog_STRIP"
 fi
 
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+  if ${ac_cv_path_mkdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in mkdir gmkdir; do
+        for ac_exec_ext in '' $ac_executable_extensions; do
+          { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+          case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+            'mkdir (GNU coreutils) '* | \
+            'mkdir (coreutils) '* | \
+            'mkdir (fileutils) '4.1*)
+              ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+              break 3;;
+          esac
+        done
+       done
+  done
+IFS=$as_save_IFS
+
+fi
+
+  test -d ./--version && rmdir ./--version
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+  [\\/$]* | ?:[\\/]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -2382,7 +2562,7 @@ done
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -2418,10 +2598,14 @@ else
 fi
 rmdir .tst 2>/dev/null
 
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
-   test -f $srcdir/config.status; then
-  as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  am__isrc=' -I$(srcdir)'
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+  fi
 fi
 
 # test whether we have cygpath
@@ -2436,7 +2620,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=alsa-utils
- VERSION=1.0.21
+ VERSION=1.0.24.2
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2464,108 +2648,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 # Always define AMTAR for backward compatibility.
@@ -2629,7 +2711,7 @@ rm -f conf$$.file
 set dummy msgfmt; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then :
+if ${ac_cv_path_MSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGFMT" in
@@ -2670,7 +2752,7 @@ fi
 set dummy gmsgfmt; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then :
+if ${ac_cv_path_GMSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GMSGFMT in
@@ -2752,7 +2834,7 @@ rm -f conf$$.file
 set dummy xgettext; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then :
+if ${ac_cv_path_XGETTEXT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$XGETTEXT" in
@@ -2830,7 +2912,7 @@ rm -f conf$$.file
 set dummy msgmerge; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then :
+if ${ac_cv_path_MSGMERGE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGMERGE" in
@@ -2897,7 +2979,7 @@ ac_config_commands="$ac_config_commands depfiles"
 am_make=${MAKE-make}
 cat > confinc << 'END'
 am__doit:
-       @echo done
+       @echo this is the am__doit target
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
@@ -2908,24 +2990,24 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
-   am__include=include
-   am__quote=
-   _am_result=GNU
-fi
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
 # Now try BSD make style include.
 if test "$am__include" = "#"; then
    echo '.include "confinc"' > confmf
-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
-      am__include=.include
-      am__quote="\""
-      _am_result=BSD
-   fi
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
 fi
 
 
@@ -2942,9 +3024,7 @@ if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
 fi
-
-
-if test "x$enable_dependency_tracking" != xno; then
+ if test "x$enable_dependency_tracking" != xno; then
   AMDEP_TRUE=
   AMDEP_FALSE='#'
 else
@@ -2953,7 +3033,6 @@ else
 fi
 
 
-
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2964,7 +3043,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3004,7 +3083,7 @@ if test -z "$ac_cv_prog_CC"; then
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3057,7 +3136,7 @@ if test -z "$CC"; then
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3097,7 +3176,7 @@ if test -z "$CC"; then
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3156,7 +3235,7 @@ if test -z "$CC"; then
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3200,7 +3279,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3255,7 +3334,7 @@ fi
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3370,7 +3449,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3413,7 +3492,7 @@ else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3472,7 +3551,7 @@ $as_echo "$ac_try_echo"; } >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
@@ -3483,7 +3562,7 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 ac_clean_files=$ac_clean_files_save
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3524,7 +3603,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -3534,7 +3613,7 @@ OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3571,7 +3650,7 @@ ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -3649,7 +3728,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -3748,7 +3827,7 @@ depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -3774,6 +3853,11 @@ else
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -3791,7 +3875,17 @@ else
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -3801,18 +3895,23 @@ else
        break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -3840,9 +3939,7 @@ fi
 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
-
-
-if
+ if
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
   am__fastdepCC_TRUE=
@@ -3859,7 +3956,7 @@ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
@@ -3875,7 +3972,7 @@ fi
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -3893,7 +3990,7 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
@@ -3908,7 +4005,7 @@ fi
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -3984,7 +4081,7 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${acl_cv_path_LD+set}" = set; then :
+if ${acl_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -4021,7 +4118,7 @@ fi
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+if ${acl_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU ld's only accept -v.
@@ -4041,7 +4138,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
 
                                                 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
 $as_echo_n "checking for shared library run path origin... " >&6; }
-if test "${acl_cv_rpath+set}" = set; then :
+if ${acl_cv_rpath+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -4491,7 +4588,7 @@ fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
-if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then :
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -4525,7 +4622,7 @@ $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
   fi
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
-if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then :
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -4581,7 +4678,7 @@ $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
 
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
 $as_echo_n "checking for GNU gettext in libc... " >&6; }
-if test "${gt_cv_func_gnugettext1_libc+set}" = set; then :
+if ${gt_cv_func_gnugettext1_libc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4642,7 +4739,7 @@ $as_echo "$gt_cv_func_gnugettext1_libc" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
 $as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then :
+if ${am_cv_func_iconv+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5096,7 +5193,7 @@ fi
 
           { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
 $as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then :
+if ${gt_cv_func_gnugettext1_libintl+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_CPPFLAGS="$CPPFLAGS"
@@ -5296,7 +5393,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -5336,7 +5433,7 @@ if test -z "$ac_cv_prog_CC"; then
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -5389,7 +5486,7 @@ if test -z "$CC"; then
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -5429,7 +5526,7 @@ if test -z "$CC"; then
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -5488,7 +5585,7 @@ if test -z "$CC"; then
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -5532,7 +5629,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -5587,7 +5684,7 @@ fi
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -5616,7 +5713,7 @@ done
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5653,7 +5750,7 @@ ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -5731,7 +5828,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -5830,7 +5927,7 @@ depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -5856,6 +5953,11 @@ else
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -5873,7 +5975,17 @@ else
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -5883,18 +5995,23 @@ else
        break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -5922,9 +6039,7 @@ fi
 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
-
-
-if
+ if
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
   am__fastdepCC_TRUE=
@@ -5936,6 +6051,7 @@ fi
 
 
 
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
 $as_echo_n "checking whether ln -s works... " >&6; }
 LN_S=$as_ln_s
@@ -6083,7 +6199,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test "x$enable_alsatest" = "xyes"; then
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_ctl_open in -lasound" >&5
 $as_echo_n "checking for snd_ctl_open in -lasound... " >&6; }
-if test "${ac_cv_lib_asound_snd_ctl_open+set}" = set; then :
+if ${ac_cv_lib_asound_snd_ctl_open+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -6117,7 +6233,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_ctl_open" >&5
 $as_echo "$ac_cv_lib_asound_snd_ctl_open" >&6; }
-if test "x$ac_cv_lib_asound_snd_ctl_open" = x""yes; then :
+if test "x$ac_cv_lib_asound_snd_ctl_open" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBASOUND 1
 _ACEOF
@@ -6155,7 +6271,7 @@ for ac_header in alsa/pcm.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "alsa/pcm.h" "ac_cv_header_alsa_pcm_h" "#include <alsa/asoundlib.h>
 "
-if test "x$ac_cv_header_alsa_pcm_h" = x""yes; then :
+if test "x$ac_cv_header_alsa_pcm_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_ALSA_PCM_H 1
 _ACEOF
@@ -6170,7 +6286,7 @@ for ac_header in alsa/mixer.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "alsa/mixer.h" "ac_cv_header_alsa_mixer_h" "#include <alsa/asoundlib.h>
 "
-if test "x$ac_cv_header_alsa_mixer_h" = x""yes; then :
+if test "x$ac_cv_header_alsa_mixer_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_ALSA_MIXER_H 1
 _ACEOF
@@ -6185,7 +6301,7 @@ for ac_header in alsa/rawmidi.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "alsa/rawmidi.h" "ac_cv_header_alsa_rawmidi_h" "#include <alsa/asoundlib.h>
 "
-if test "x$ac_cv_header_alsa_rawmidi_h" = x""yes; then :
+if test "x$ac_cv_header_alsa_rawmidi_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_ALSA_RAWMIDI_H 1
 _ACEOF
@@ -6200,7 +6316,7 @@ for ac_header in alsa/seq.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "alsa/seq.h" "ac_cv_header_alsa_seq_h" "#include <alsa/asoundlib.h>
 "
-if test "x$ac_cv_header_alsa_seq_h" = x""yes; then :
+if test "x$ac_cv_header_alsa_seq_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_ALSA_SEQ_H 1
 _ACEOF
@@ -6211,10 +6327,23 @@ fi
 
 done
 
+for ac_header in samplerate.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "samplerate.h" "ac_cv_header_samplerate_h" "#include <samplerate.h>
+"
+if test "x$ac_cv_header_samplerate_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SAMPLERATE_H 1
+_ACEOF
+ have_samplerate="yes"
+else
+  have_samplerate="no"
+fi
 
+done
 
 
-if test "$have_pcm" = "yes"; then
+ if test "$have_pcm" = "yes"; then
   HAVE_PCM_TRUE=
   HAVE_PCM_FALSE='#'
 else
@@ -6222,9 +6351,7 @@ else
   HAVE_PCM_FALSE=
 fi
 
-
-
-if test "$have_mixer" = "yes"; then
+ if test "$have_mixer" = "yes"; then
   HAVE_MIXER_TRUE=
   HAVE_MIXER_FALSE='#'
 else
@@ -6232,9 +6359,7 @@ else
   HAVE_MIXER_FALSE=
 fi
 
-
-
-if test "$have_rawmidi" = "yes"; then
+ if test "$have_rawmidi" = "yes"; then
   HAVE_RAWMIDI_TRUE=
   HAVE_RAWMIDI_FALSE='#'
 else
@@ -6242,9 +6367,7 @@ else
   HAVE_RAWMIDI_FALSE=
 fi
 
-
-
-if test "$have_seq" = "yes"; then
+ if test "$have_seq" = "yes"; then
   HAVE_SEQ_TRUE=
   HAVE_SEQ_FALSE='#'
 else
@@ -6252,6 +6375,14 @@ else
   HAVE_SEQ_FALSE=
 fi
 
+ if test "$have_samplerate" = "yes"; then
+  HAVE_SAMPLERATE_TRUE=
+  HAVE_SAMPLERATE_FALSE='#'
+else
+  HAVE_SAMPLERATE_TRUE='#'
+  HAVE_SAMPLERATE_FALSE=
+fi
+
 
 LIBRT=""
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for librt" >&5
@@ -6267,7 +6398,7 @@ fi
 if test "$have_librt" = "yes"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5
 $as_echo_n "checking for clock_gettime in -lrt... " >&6; }
-if test "${ac_cv_lib_rt_clock_gettime+set}" = set; then :
+if ${ac_cv_lib_rt_clock_gettime+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -6301,7 +6432,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5
 $as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }
-if test "x$ac_cv_lib_rt_clock_gettime" = x""yes; then :
+if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then :
   HAVE_LIBRT="yes"
 fi
 
@@ -6329,16 +6460,14 @@ if test "${enable_alsamixer+set}" = set; then :
   enableval=$enable_alsamixer; case "${enableval}" in
        yes) alsamixer=true ;;
        no)  alsamixer=false ;;
-       *) as_fn_error $? "bad value ${enableval} for --enable-alsamixer" "$LINENO" 5  ;;
+       *) as_fn_error $? "bad value ${enableval} for --enable-alsamixer" "$LINENO" 5 ;;
      esac
 else
   alsamixer=true
 fi
 
 fi
-
-
-if test x$alsamixer = xtrue; then
+ if test x$alsamixer = xtrue; then
   ALSAMIXER_TRUE=
   ALSAMIXER_FALSE='#'
 else
@@ -6352,15 +6481,13 @@ if test "${enable_alsaconf+set}" = set; then :
   enableval=$enable_alsaconf; case "${enableval}" in
        yes) alsaconf=true ;;
        no)  alsaconf=false ;;
-       *) as_fn_error $? "bad value ${enableval} for --enable-alsaconf" "$LINENO" 5  ;;
+       *) as_fn_error $? "bad value ${enableval} for --enable-alsaconf" "$LINENO" 5 ;;
      esac
 else
   alsaconf=true
 fi
 
-
-
-if test x$alsaconf = xtrue; then
+ if test x$alsaconf = xtrue; then
   ALSACONF_TRUE=
   ALSACONF_FALSE='#'
 else
@@ -6369,21 +6496,40 @@ else
 fi
 
 
+# Check whether --enable-alsaloop was given.
+if test "${enable_alsaloop+set}" = set; then :
+  enableval=$enable_alsaloop; case "${enableval}" in
+       yes) alsaloop=true ;;
+       no)  alsaloop=false ;;
+       *) as_fn_error $? "bad value ${enableval} for --enable-alsaloop" "$LINENO" 5 ;;
+     esac
+else
+  alsaloop=true
+fi
+
+ if test x$alsaloop = xtrue; then
+  ALSALOOP_TRUE=
+  ALSALOOP_FALSE='#'
+else
+  ALSALOOP_TRUE='#'
+  ALSALOOP_FALSE=
+fi
+
+
 xmlto=""
-if test x"$alsaconf" = xtrue; then
-   # Check whether --enable-xmlto was given.
+# Check whether --enable-xmlto was given.
 if test "${enable_xmlto+set}" = set; then :
   enableval=$enable_xmlto; xmlto="$enableval"
 else
   xmlto="yes"
 fi
 
-   if test "$xmlto" = "yes"; then
-      # Extract the first word of "xmlto", so it can be a program name with args.
+if test "$xmlto" = "yes"; then
+  # Extract the first word of "xmlto", so it can be a program name with args.
 set dummy xmlto; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_xmlto+set}" = set; then :
+if ${ac_cv_prog_xmlto+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$xmlto"; then
@@ -6416,11 +6562,8 @@ $as_echo "no" >&6; }
 fi
 
 
-   fi
 fi
-
-
-if test x"$xmlto" = xyes; then
+ if test x"$xmlto" = xyes; then
   USE_XMLTO_TRUE=
   USE_XMLTO_FALSE='#'
 else
@@ -6429,6 +6572,16 @@ else
 fi
 
 
+
+# Check whether --with-udev-rules-dir was given.
+if test "${with_udev_rules_dir+set}" = set; then :
+  withval=$with_udev_rules_dir; udevrulesdir=$withval
+else
+  udevrulesdir="/lib/udev/rules.d"
+fi
+
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -6441,7 +6594,7 @@ if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then :
+  if ${ac_cv_prog_CPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -6557,7 +6710,7 @@ else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -6569,7 +6722,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -6632,7 +6785,7 @@ $as_echo "$ac_cv_path_GREP" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -6699,7 +6852,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6826,7 +6979,7 @@ fi
 set dummy ncursesw5-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ncursesw5_config+set}" = set; then :
+if ${ac_cv_prog_ncursesw5_config+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ncursesw5_config"; then
@@ -6868,7 +7021,7 @@ fi
     else
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncursesw" >&5
 $as_echo_n "checking for initscr in -lncursesw... " >&6; }
-if test "${ac_cv_lib_ncursesw_initscr+set}" = set; then :
+if ${ac_cv_lib_ncursesw_initscr+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -6902,7 +7055,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_initscr" >&5
 $as_echo "$ac_cv_lib_ncursesw_initscr" >&6; }
-if test "x$ac_cv_lib_ncursesw_initscr" = x""yes; then :
+if test "x$ac_cv_lib_ncursesw_initscr" = xyes; then :
    CURSESINC='<ncurses.h>'; CURSESLIB='-lncursesw'; curseslib="ncursesw"
 fi
 
@@ -6917,7 +7070,7 @@ fi
 set dummy ncurses5-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ncurses5_config+set}" = set; then :
+if ${ac_cv_prog_ncurses5_config+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ncurses5_config"; then
@@ -6959,7 +7112,7 @@ fi
     else
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncurses" >&5
 $as_echo_n "checking for initscr in -lncurses... " >&6; }
-if test "${ac_cv_lib_ncurses_initscr+set}" = set; then :
+if ${ac_cv_lib_ncurses_initscr+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -6993,7 +7146,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_initscr" >&5
 $as_echo "$ac_cv_lib_ncurses_initscr" >&6; }
-if test "x$ac_cv_lib_ncurses_initscr" = x""yes; then :
+if test "x$ac_cv_lib_ncurses_initscr" = xyes; then :
    CURSESINC='<ncurses.h>'; CURSESLIB='-lncurses'; curseslib="ncurses"
 fi
 
@@ -7002,7 +7155,7 @@ fi
   if test "$curseslib" = "curses" -o "$curseslib" = "auto"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lcurses" >&5
 $as_echo_n "checking for initscr in -lcurses... " >&6; }
-if test "${ac_cv_lib_curses_initscr+set}" = set; then :
+if ${ac_cv_lib_curses_initscr+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -7036,7 +7189,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_initscr" >&5
 $as_echo "$ac_cv_lib_curses_initscr" >&6; }
-if test "x$ac_cv_lib_curses_initscr" = x""yes; then :
+if test "x$ac_cv_lib_curses_initscr" = xyes; then :
    CURSESINC='<curses.h>'; CURSESLIB='-lcurses'; curseslib="curses"
 fi
 
@@ -7167,7 +7320,7 @@ done
   as_ac_Lib=`$as_echo "ac_cv_lib_panel$NCURSESLIBSUFFIX''_new_panel" | $as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for new_panel in -lpanel$NCURSESLIBSUFFIX" >&5
 $as_echo_n "checking for new_panel in -lpanel$NCURSESLIBSUFFIX... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
+if eval \${$as_ac_Lib+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -7211,7 +7364,7 @@ fi
   as_ac_Lib=`$as_echo "ac_cv_lib_menu$NCURSESLIBSUFFIX''_new_menu" | $as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for new_menu in -lmenu$NCURSESLIBSUFFIX" >&5
 $as_echo_n "checking for new_menu in -lmenu$NCURSESLIBSUFFIX... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
+if eval \${$as_ac_Lib+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -7255,7 +7408,7 @@ fi
   as_ac_Lib=`$as_echo "ac_cv_lib_form$NCURSESLIBSUFFIX''_new_form" | $as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for new_form in -lform$NCURSESLIBSUFFIX" >&5
 $as_echo_n "checking for new_form in -lform$NCURSESLIBSUFFIX... " >&6; }
-if eval "test \"\${$as_ac_Lib+set}\"" = set; then :
+if eval \${$as_ac_Lib+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -7352,7 +7505,7 @@ ac_config_headers="$ac_config_headers include/aconfig.h"
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
 $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if test "${ac_cv_c_const+set}" = set; then :
+if ${ac_cv_c_const+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7432,7 +7585,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
 $as_echo_n "checking for inline... " >&6; }
-if test "${ac_cv_c_inline+set}" = set; then :
+if ${ac_cv_c_inline+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_inline=no
@@ -7474,7 +7627,7 @@ esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if test "${ac_cv_header_time+set}" = set; then :
+if ${ac_cv_header_time+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7511,7 +7664,7 @@ fi
 if test $ac_cv_c_compiler_gnu = yes; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5
 $as_echo_n "checking whether $CC needs -traditional... " >&6; }
-if test "${ac_cv_prog_gcc_traditional+set}" = set; then :
+if ${ac_cv_prog_gcc_traditional+:} false; then :
   $as_echo_n "(cached) " >&6
 else
     ac_pattern="Autoconf.*'x'"
@@ -7560,7 +7713,7 @@ if test "$enable_largefile" != no; then
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
 $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_CC+set}" = set; then :
+if ${ac_cv_sys_largefile_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_sys_largefile_CC=no
@@ -7611,7 +7764,7 @@ $as_echo "$ac_cv_sys_largefile_CC" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
+if ${ac_cv_sys_file_offset_bits+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -7680,7 +7833,7 @@ rm -rf conftest*
   if test $ac_cv_sys_file_offset_bits = unknown; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test "${ac_cv_sys_large_files+set}" = set; then :
+if ${ac_cv_sys_large_files+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -7769,7 +7922,154 @@ SND_UTIL_SUBMINOR=`echo $VERSION | cut -d . -f 3 | sed -e 's/pre[0-9]*//g'`
 
 
 
-ac_config_files="$ac_config_files Makefile alsactl/Makefile alsactl/init/Makefile alsamixer/Makefile amidi/Makefile amixer/Makefile m4/Makefile po/Makefile.in alsaconf/alsaconf alsaconf/Makefile alsaconf/po/Makefile aplay/Makefile include/Makefile iecset/Makefile utils/Makefile utils/alsa-utils.spec seq/Makefile seq/aconnect/Makefile seq/aplaymidi/Makefile seq/aseqdump/Makefile seq/aseqnet/Makefile speaker-test/Makefile speaker-test/samples/Makefile"
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=0.9.0
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       else
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+               PKG_CONFIG=""
+       fi
+
+fi
+
+# Check whether --with-systemdsystemunitdir was given.
+if test "${with_systemdsystemunitdir+set}" = set; then :
+  withval=$with_systemdsystemunitdir;
+else
+  with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
+fi
+
+if test "x$with_systemdsystemunitdir" != xno; then
+        systemdsystemunitdir=$with_systemdsystemunitdir
+
+fi
+ if test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ; then
+  HAVE_SYSTEMD_TRUE=
+  HAVE_SYSTEMD_FALSE='#'
+else
+  HAVE_SYSTEMD_TRUE='#'
+  HAVE_SYSTEMD_FALSE=
+fi
+
+
+
+# Check whether --with-asound-state-dir was given.
+if test "${with_asound_state_dir+set}" = set; then :
+  withval=$with_asound_state_dir; ASOUND_STATE_DIR="$withval"
+else
+  ASOUND_STATE_DIR="/var/lib/alsa"
+fi
+
+
+
+ac_config_files="$ac_config_files Makefile alsactl/Makefile alsactl/init/Makefile alsamixer/Makefile amidi/Makefile amixer/Makefile m4/Makefile po/Makefile.in alsaconf/alsaconf alsaconf/Makefile alsaconf/po/Makefile alsaucm/Makefile aplay/Makefile include/Makefile iecset/Makefile utils/Makefile utils/alsa-utils.spec seq/Makefile seq/aconnect/Makefile seq/aplaymidi/Makefile seq/aseqdump/Makefile seq/aseqnet/Makefile speaker-test/Makefile speaker-test/samples/Makefile alsaloop/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -7835,10 +8135,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
+    if test "x$cache_file" != "x/dev/null"; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+       cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+         mv -f confcache "$cache_file"$$ &&
+         mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+         mv -f confcache "$cache_file" ;;
+       esac
+      fi
+    fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -7869,6 +8180,14 @@ LIBOBJS=$ac_libobjs
 LTLIBOBJS=$ac_ltlibobjs
 
 
+ if test -n "$EXEEXT"; then
+  am__EXEEXT_TRUE=
+  am__EXEEXT_FALSE='#'
+else
+  am__EXEEXT_TRUE='#'
+  am__EXEEXT_FALSE=
+fi
+
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
   as_fn_error $? "conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -7897,6 +8216,10 @@ if test -z "${HAVE_SEQ_TRUE}" && test -z "${HAVE_SEQ_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_SEQ\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HAVE_SAMPLERATE_TRUE}" && test -z "${HAVE_SAMPLERATE_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_SAMPLERATE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${ALSAMIXER_TRUE}" && test -z "${ALSAMIXER_FALSE}"; then
   as_fn_error $? "conditional \"ALSAMIXER\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -7905,12 +8228,20 @@ if test -z "${ALSACONF_TRUE}" && test -z "${ALSACONF_FALSE}"; then
   as_fn_error $? "conditional \"ALSACONF\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${ALSALOOP_TRUE}" && test -z "${ALSALOOP_FALSE}"; then
+  as_fn_error $? "conditional \"ALSALOOP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_XMLTO_TRUE}" && test -z "${USE_XMLTO_FALSE}"; then
   as_fn_error $? "conditional \"USE_XMLTO\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HAVE_SYSTEMD_TRUE}" && test -z "${HAVE_SYSTEMD_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_SYSTEMD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -8011,6 +8342,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -8318,7 +8650,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -8384,7 +8716,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.67,
+configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -8394,6 +8726,7 @@ gives unlimited permission to copy, distribute and modify it."
 ac_pwd='$ac_pwd'
 srcdir='$srcdir'
 INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
 AWK='$AWK'
 test -n "\$AWK" || AWK=awk
 _ACEOF
@@ -8532,6 +8865,7 @@ do
     "alsaconf/alsaconf") CONFIG_FILES="$CONFIG_FILES alsaconf/alsaconf" ;;
     "alsaconf/Makefile") CONFIG_FILES="$CONFIG_FILES alsaconf/Makefile" ;;
     "alsaconf/po/Makefile") CONFIG_FILES="$CONFIG_FILES alsaconf/po/Makefile" ;;
+    "alsaucm/Makefile") CONFIG_FILES="$CONFIG_FILES alsaucm/Makefile" ;;
     "aplay/Makefile") CONFIG_FILES="$CONFIG_FILES aplay/Makefile" ;;
     "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
     "iecset/Makefile") CONFIG_FILES="$CONFIG_FILES iecset/Makefile" ;;
@@ -8544,8 +8878,9 @@ do
     "seq/aseqnet/Makefile") CONFIG_FILES="$CONFIG_FILES seq/aseqnet/Makefile" ;;
     "speaker-test/Makefile") CONFIG_FILES="$CONFIG_FILES speaker-test/Makefile" ;;
     "speaker-test/samples/Makefile") CONFIG_FILES="$CONFIG_FILES speaker-test/samples/Makefile" ;;
+    "alsaloop/Makefile") CONFIG_FILES="$CONFIG_FILES alsaloop/Makefile" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -8568,9 +8903,10 @@ fi
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp=
+  tmp= ac_tmp=
   trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
 ' 0
   trap 'as_fn_exit 1' 1 2 13 15
 }
@@ -8578,12 +8914,13 @@ $debug ||
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
+  test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -8605,7 +8942,7 @@ else
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -8633,7 +8970,7 @@ done
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -8681,7 +9018,7 @@ t delim
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = "\a"
 
@@ -8713,7 +9050,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
   || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
@@ -8747,7 +9084,7 @@ fi # test -n "$CONFIG_FILES"
 # No need to generate them if there are no CONFIG_HEADERS.
 # This happens for instance with `./config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
@@ -8759,8 +9096,8 @@ _ACEOF
 # handling of long lines.
 ac_delim='%!_!# '
 for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
     break
   elif $ac_last_try; then
     as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
@@ -8861,7 +9198,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -8880,7 +9217,7 @@ do
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$tmp/stdin";;
+      -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
         # (if the path is not absolute).  The absolute path cannot be DOS-style,
         # because $ac_f cannot contain `:'.
@@ -8889,7 +9226,7 @@ do
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
+          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -8915,8 +9252,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -8990,6 +9327,11 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
   *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
   esac
+  ac_MKDIR_P=$MKDIR_P
+  case $MKDIR_P in
+  [\\/$]* | ?:[\\/]* ) ;;
+  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+  esac
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
@@ -9044,23 +9386,25 @@ s&@builddir@&$ac_builddir&;t t
 s&@abs_builddir@&$ac_abs_builddir&;t t
 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$tmp/stdin"
+  rm -f "$ac_tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
   esac \
   || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
@@ -9071,38 +9415,39 @@ which seems to be undefined.  Please make sure it is defined" >&2;}
   if test x"$ac_file" != x-; then
     {
       $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
+      mv "$ac_tmp/config.h" "$ac_file" \
        || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
       || as_fn_error $? "could not create -" "$LINENO" 5
   fi
 # Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
 _am_stamp_count=1
 for _am_header in $config_headers :; do
   case $_am_header in
-    "$ac_file" | "$ac_file":* )
+    $_am_arg | $_am_arg:* )
       break ;;
     * )
       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
   esac
 done
-echo "timestamp for "$ac_file"" >`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$ac_file" : 'X\(//\)[^/]' \| \
-        X"$ac_file" : 'X\(//\)$' \| \
-        X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$_am_arg" : 'X\(//\)[^/]' \| \
+        X"$_am_arg" : 'X\(//\)$' \| \
+        X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
            s//\1/
            q
@@ -9242,17 +9587,28 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
         ;;
       esac
     done ;;
-    "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
-  # Strip MF so we end up with the name of the file.
-  mf=`echo "$mf" | sed -e 's/:.*$//'`
-  # Check whether this is an Automake generated Makefile or not.
-  # We used to match only the files named `Makefile.in', but
-  # some people rename them; so instead we look at the file content.
-  # Grep'ing the first line is not enough: some people post-process
-  # each Makefile.in and add a new line on top of each file to say so.
-  # So let's grep whole file.
-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
-    dirpart=`$as_dirname -- "$mf" ||
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named `Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`$as_dirname -- "$mf" ||
 $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$mf" : 'X\(//\)[^/]' \| \
         X"$mf" : 'X\(//\)$' \| \
@@ -9275,28 +9631,28 @@ $as_echo X"$mf" |
            q
          }
          s/.*/./; q'`
-  else
-    continue
-  fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-  # from the Makefile without running `make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-  test -z "$DEPDIR" && continue
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-  test -z "am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-  # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n 's/^U = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
-  # simplest approach to changing $(DEPDIR) to its actual value in the
-  # expansion.
-  for file in `sed -n "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-    # Make sure the directory exists.
-    test -f "$dirpart/$file" && continue
-    fdir=`$as_dirname -- "$file" ||
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running `make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`$as_dirname -- "$file" ||
 $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$file" : 'X\(//\)[^/]' \| \
         X"$file" : 'X\(//\)$' \| \
@@ -9319,11 +9675,12 @@ $as_echo X"$file" |
            q
          }
          s/.*/./; q'`
-    as_dir=$dirpart/$fdir; as_fn_mkdir_p
-    # echo "creating $dirpart/$file"
-    echo '# dummy' > "$dirpart/$file"
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
   done
-done
+}
  ;;
 
   esac
index 931d034..9ec1fac 100644 (file)
@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.59)
 AC_INIT(aplay/aplay.c)
 AC_PREFIX_DEFAULT(/usr)
-AM_INIT_AUTOMAKE(alsa-utils, 1.0.21)
+AM_INIT_AUTOMAKE(alsa-utils, 1.0.24.2)
 
 AM_GNU_GETTEXT([external])
 AM_GNU_GETTEXT_VERSION([0.15])
@@ -26,6 +26,7 @@ fi
 AC_PROG_CC
 dnl AC_PROG_CXX
 AC_PROG_INSTALL
+AC_PROG_MKDIR_P
 AC_PROG_LN_S
 AM_PATH_ALSA(1.0.16)
 
@@ -38,11 +39,14 @@ AC_CHECK_HEADERS([alsa/rawmidi.h], [have_rawmidi="yes"], [have_rawmidi="no"],
   [#include <alsa/asoundlib.h>])
 AC_CHECK_HEADERS([alsa/seq.h], [have_seq="yes"], [have_seq="no"],
   [#include <alsa/asoundlib.h>])
+AC_CHECK_HEADERS([samplerate.h], [have_samplerate="yes"], [have_samplerate="no"],
+  [#include <samplerate.h>])
 
 AM_CONDITIONAL(HAVE_PCM, test "$have_pcm" = "yes")
 AM_CONDITIONAL(HAVE_MIXER, test "$have_mixer" = "yes")
 AM_CONDITIONAL(HAVE_RAWMIDI, test "$have_rawmidi" = "yes")
 AM_CONDITIONAL(HAVE_SEQ, test "$have_seq" = "yes")
+AM_CONDITIONAL(HAVE_SAMPLERATE, test "$have_samplerate" = "yes")
 
 dnl Check for librt
 LIBRT=""
@@ -87,17 +91,31 @@ AC_ARG_ENABLE(alsaconf,
      esac],[alsaconf=true])
 AM_CONDITIONAL(ALSACONF, test x$alsaconf = xtrue)
 
+dnl Disable alsaloop
+AC_ARG_ENABLE(alsaloop,
+     [  --disable-alsaloop      Disable alsaloop packaging],
+     [case "${enableval}" in
+       yes) alsaloop=true ;;
+       no)  alsaloop=false ;;
+       *) AC_MSG_ERROR(bad value ${enableval} for --enable-alsaloop) ;;
+     esac],[alsaloop=true])
+AM_CONDITIONAL(ALSALOOP, test x$alsaloop = xtrue)
+
 xmlto=""
-if test x"$alsaconf" = xtrue; then
-   AC_ARG_ENABLE(xmlto,
-     AS_HELP_STRING([--disable-xmlto], [Disable man page creation via xmlto]),
-     xmlto="$enableval", xmlto="yes")
-   if test "$xmlto" = "yes"; then
-      AC_CHECK_PROG([xmlto], [xmlto], [yes])
-   fi
+AC_ARG_ENABLE(xmlto,
+ AS_HELP_STRING([--disable-xmlto], [Disable man page creation via xmlto]),
+ xmlto="$enableval", xmlto="yes")
+if test "$xmlto" = "yes"; then
+  AC_CHECK_PROG([xmlto], [xmlto], [yes])
 fi
 AM_CONDITIONAL(USE_XMLTO, test x"$xmlto" = xyes)
 
+AC_ARG_WITH(
+        [udev-rules-dir],
+        AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
+        [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
+AC_SUBST(udevrulesdir)
+
 dnl Checks for header files.
 AC_HEADER_STDC
 if test x$alsamixer = xtrue; then
@@ -117,7 +135,7 @@ if test x$alsamixer = xtrue; then
       CURSES_CFLAGS=`ncursesw5-config --cflags`
       curseslib="ncursesw"
     else
-      AC_CHECK_LIB(ncursesw, initscr, 
+      AC_CHECK_LIB(ncursesw, initscr,
                  [ CURSESINC='<ncurses.h>'; CURSESLIB='-lncursesw'; curseslib="ncursesw"])
     fi
     if test -n "$CURSESINC"; then
@@ -134,12 +152,12 @@ if test x$alsamixer = xtrue; then
       CURSES_CFLAGS=`ncurses5-config --cflags`
       curseslib="ncurses"
     else
-      AC_CHECK_LIB(ncurses, initscr, 
+      AC_CHECK_LIB(ncurses, initscr,
                  [ CURSESINC='<ncurses.h>'; CURSESLIB='-lncurses'; curseslib="ncurses"])
     fi
   fi
   if test "$curseslib" = "curses" -o "$curseslib" = "auto"; then
-    AC_CHECK_LIB(curses, initscr, 
+    AC_CHECK_LIB(curses, initscr,
                  [ CURSESINC='<curses.h>'; CURSESLIB='-lcurses'; curseslib="curses"])
   fi
   if test -z "$CURSESINC"; then
@@ -265,12 +283,30 @@ SAVE_UTIL_VERSION
 
 AC_SUBST(LIBRT)
 
+dnl Check for systemd
+PKG_PROG_PKG_CONFIG
+AC_ARG_WITH([systemdsystemunitdir],
+        AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
+        [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
+if test "x$with_systemdsystemunitdir" != xno; then
+        AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
+fi
+AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
+
+AC_ARG_WITH([asound-state-dir],
+        AS_HELP_STRING([--with-asound-state-dir=DIR], [Directory to place asound.state file in]),
+        [ASOUND_STATE_DIR="$withval"],
+        [ASOUND_STATE_DIR="/var/lib/alsa"])
+AC_SUBST(ASOUND_STATE_DIR)
+
 AC_OUTPUT(Makefile alsactl/Makefile alsactl/init/Makefile \
          alsamixer/Makefile amidi/Makefile amixer/Makefile \
          m4/Makefile po/Makefile.in \
          alsaconf/alsaconf alsaconf/Makefile \
          alsaconf/po/Makefile \
+         alsaucm/Makefile \
          aplay/Makefile include/Makefile iecset/Makefile utils/Makefile \
          utils/alsa-utils.spec seq/Makefile seq/aconnect/Makefile \
          seq/aplaymidi/Makefile seq/aseqdump/Makefile seq/aseqnet/Makefile \
-         speaker-test/Makefile speaker-test/samples/Makefile)
+         speaker-test/Makefile speaker-test/samples/Makefile \
+         alsaloop/Makefile)
index b8cd2e3..6f2a242 100755 (executable)
@@ -1,7 +1,73 @@
-alsa-utils (1.0.21-1slp2) unstable; urgency=low
+alsa-utils (1.0.24.2-0) unstable; urgency=low
 
-  * Initial release
+  * Version upgrade from 1.0.21 to 1.0.24.2
   * Git: pkgs/a/alsa-utils
+  * Tag: alsa-utils_1.0.24.2-0 
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Tue, 03 Jan 2012 14:07:28 +0900
+
+alsa-utils (1.0.21-1slp2) unstable; urgency=low
+
+  * remove man page in binary package
+  * Git: 165.213.180.234:/git/slp/pkgs/alsa-utils
   * Tag: alsa-utils_1.0.21-1slp2
 
- -- Seungbae Shin <seungbae.shin@samsung.com>  Wed, 07 Dec 2011 11:59:33 +0900
+ -- KwangHui Cho <kwanghui.cho@samsung.com>  Fri, 12 Nov 2010 15:12:28 +0900
+alsa-utils (1.0.21-0slp4) unstable; urgency=low
+
+  * Update for git repository changes
+  * Git: 165.213.180.234:/git/slp/pkgs/alsa-utils
+  * Tag: alsa-utils_1.0.21-0slp4
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Fri, 12 Nov 2010 11:54:04 +0900
+
+alsa-utils (1.0.21-0slp3) unstable; urgency=low
+
+  * Change maintainer
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/alsa-utils-1.0.16
+  * Tag: alsa-utils_1.0.21-0slp3
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Thu, 08 Jul 2010 14:49:19 +0900
+
+alsa-utils (1.0.21-0slp2) unstable; urgency=low
+
+  * import alsa utils 1.0.21 to slp2
+
+ -- KwangHui Cho <kwanghui.cho@samsung.com>  Tue, 06 Apr 2010 13:40:32 +0900
+
+alsa-utils (1.0.16-4slp2) unstable; urgency=low
+
+  * Change package naming rule
+
+ -- Seungbae Shin <seungbae.shin@samsung.com>  Thu, 25 Mar 2010 14:54:29 +0900
+
+alsa-utils (1.0.16-4) unstable; urgency=low
+
+  * Modified configure option in rules file.
+
+ -- Yunchan Cho <yunchan.cho@samsung.com>  Thu, 04 Mar 2010 12:20:43 +0900
+
+alsa-utils (1.0.16-3) unstable; urgency=low
+
+  * remove .git directory
+
+ -- Yunchan Cho <yunchan.cho@samsung.com>  Fri, 20 Nov 2009 16:17:19 +0900
+
+alsa-utils (1.0.16-2) unstable; urgency=low
+
+  * update debianize
+
+ -- Yunchan Cho <yunchan.cho@samsung.com>  Thu, 19 Nov 2009 17:15:35 +0900
+
+alsa-utils (1.0.16-1) unstable; urgency=low
+
+  * uncommnet dh_makeshlibs
+
+ -- Yunchan Cho <yunchan.cho@samsung.com>  Mon, 16 Nov 2009 22:25:32 +0900
+
+alsa-utils (1.0.16-0) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Yunchan Cho <yunchan.cho@samsung.com>  Thu, 12 Nov 2009 20:12:25 +0900
diff --git a/depcomp b/depcomp
index 04701da..df8eea7 100755 (executable)
--- a/depcomp
+++ b/depcomp
@@ -1,9 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2005-07-09.11
+scriptversion=2009-04-28.21; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
+# Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -16,9 +17,7 @@ scriptversion=2005-07-09.11
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -86,12 +85,34 @@ if test "$depmode" = dashXmstdout; then
    depmode=dashmstdout
 fi
 
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+   # This is just like msvisualcpp but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u="sed s,\\\\\\\\,/,g"
+   depmode=msvisualcpp
+fi
+
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
 ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
 ## it if -MD -MP comes after the -MF stuff.  Hmm.
-  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
   stat=$?
   if test $stat -eq 0; then :
   else
@@ -178,14 +199,14 @@ sgi)
 ' < "$tmpdepfile" \
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
     tr '
-' ' ' >> $depfile
-    echo >> $depfile
+' ' ' >> "$depfile"
+    echo >> "$depfile"
 
     # The second pass generates a dummy entry for each header file.
     tr ' ' '
 ' < "$tmpdepfile" \
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> $depfile
+   >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -201,34 +222,39 @@ aix)
   # current directory.  Also, the AIX compiler puts `$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
-  tmpdepfile="$stripped.u"
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
   if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
     "$@" -Wc,-M
   else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
     "$@" -M
   fi
   stat=$?
 
-  if test -f "$tmpdepfile"; then :
-  else
-    stripped=`echo "$stripped" | sed 's,^.*/,,'`
-    tmpdepfile="$stripped.u"
-  fi
-
   if test $stat -eq 0; then :
   else
-    rm -f "$tmpdepfile"
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
 
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
   if test -f "$tmpdepfile"; then
-    outname="$stripped.o"
     # Each line is of the form `foo.o: dependent.h'.
     # Do two passes, one to just change these to
     # `$object: dependent.h' and one to simply `dependent.h:'.
-    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
-    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[     ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -276,6 +302,51 @@ icc)
   rm -f "$tmpdepfile"
   ;;
 
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add `dependent.h:' lines.
+    sed -ne '2,${
+              s/^ *//
+              s/ \\*$//
+              s/$/:/
+              p
+            }' "$tmpdepfile" >> "$depfile"
+  else
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
@@ -288,13 +359,13 @@ tru64)
 
    if test "$libtool" = yes; then
       # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mecanism is used in libtool 1.4 series to
+      # static library.  This mechanism is used in libtool 1.4 series to
       # handle both shared and static libraries in a single compilation.
       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
       #
       # With libtool 1.5 this exception was removed, and libtool now
       # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in in $dir.libs/$base.o.d and
+      # compilations output dependencies in $dir.libs/$base.o.d and
       # in $dir$base.o.d.  We have to check for both files, because
       # one of the two compilations can be disabled.  We should prefer
       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
@@ -345,7 +416,7 @@ dashmstdout)
 
   # Remove the call to Libtool.
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
@@ -396,32 +467,39 @@ makedepend)
   "$@" || exit $?
   # Remove any Libtool call
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
   fi
   # X makedepend
   shift
-  cleared=no
-  for arg in "$@"; do
+  cleared=no eat=no
+  for arg
+  do
     case $cleared in
     no)
       set ""; shift
       cleared=yes ;;
     esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
     case "$arg" in
     -D*|-I*)
       set fnord "$@" "$arg"; shift ;;
     # Strip any option that makedepend may not understand.  Remove
     # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
     -*|$object)
       ;;
     *)
       set fnord "$@" "$arg"; shift ;;
     esac
   done
-  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
   touch "$tmpdepfile"
   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"
@@ -441,7 +519,7 @@ cpp)
 
   # Remove the call to Libtool.
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
@@ -479,13 +557,27 @@ cpp)
 
 msvisualcpp)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout, regardless of -o,
-  # because we must use -o when running libtool.
+  # always write the preprocessed file to stdout.
   "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
   IFS=" "
   for arg
   do
     case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
        set fnord "$@"
        shift
@@ -498,16 +590,23 @@ msvisualcpp)
        ;;
     esac
   done
-  "$@" -E |
-  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::   \1 \\:p' >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::     \1 \\:p' >> "$depfile"
   echo "       " >> "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 none)
   exec "$@"
   ;;
@@ -526,5 +625,6 @@ exit 0
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
index 6085fac..35eb173 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,22 +49,44 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am_iecset_OBJECTS = iecset.$(OBJEXT) iecbits.$(OBJEXT)
 iecset_OBJECTS = $(am_iecset_OBJECTS)
 iecset_LDADD = $(LDADD)
 iecset_DEPENDENCIES =
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(iecset_SOURCES)
 DIST_SOURCES = $(iecset_SOURCES)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -74,15 +94,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -106,14 +121,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -131,6 +139,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -143,6 +152,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -153,14 +163,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -172,6 +182,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -201,8 +212,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
 LDADD = -lm
@@ -217,14 +234,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  iecset/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  iecset/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign iecset/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign iecset/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -242,32 +259,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 iecset$(EXEEXT): $(iecset_OBJECTS) $(iecset_DEPENDENCIES) 
        @rm -f iecset$(EXEEXT)
-       $(LINK) $(iecset_LDFLAGS) $(iecset_OBJECTS) $(iecset_LDADD) $(LIBS)
+       $(LINK) $(iecset_OBJECTS) $(iecset_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -279,137 +311,149 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iecset.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -418,7 +462,7 @@ check: check-am
 all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -440,6 +484,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -460,18 +505,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -491,21 +556,26 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
+.MAKE: install-am install-strip
+
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
        clean-generic ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-exec install-exec-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
        install-info install-info-am install-man install-man1 \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
        tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-info-am uninstall-man uninstall-man1
+       uninstall-man uninstall-man1
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index f435ab7..150b9d6 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 HEADERS = $(noinst_HEADERS)
@@ -58,15 +57,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -90,14 +84,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -115,6 +102,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -127,6 +115,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -137,14 +126,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -156,6 +145,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -185,8 +175,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 noinst_HEADERS = version.h gettext.h gettext_curses.h
 INCLUDES = -I$(top_srcdir)/include
@@ -198,14 +194,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  include/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  include/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign include/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -223,97 +219,104 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 aconfig.h: stamp-h1
        @if test ! -f $@; then \
          rm -f stamp-h1; \
-         $(MAKE) stamp-h1; \
+         $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
        else :; fi
 
 stamp-h1: $(srcdir)/aconfig.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
        cd $(top_builddir) && $(SHELL) ./config.status include/aconfig.h
 $(srcdir)/aconfig.h.in:  $(am__configure_deps) 
-       cd $(top_srcdir) && $(AUTOHEADER)
+       ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
        rm -f stamp-h1
        touch $@
 
 distclean-hdr:
        -rm -f aconfig.h stamp-h1
-uninstall-info-am:
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES) aconfig.h.in $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS) aconfig.h.in $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES) aconfig.h.in $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS) aconfig.h.in $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -341,6 +344,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -359,18 +363,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am:
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am:
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -389,17 +413,21 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-info-am
+uninstall-am:
+
+.MAKE: all install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
        ctags distclean distclean-generic distclean-hdr distclean-tags \
        distdir dvi dvi-am html html-am info info-am install \
-       install-am install-data install-data-am install-exec \
-       install-exec-am install-info install-info-am install-man \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-       uninstall-am uninstall-info-am
+       uninstall-am
 
 
 version.h: stamp-vh
@@ -423,6 +451,7 @@ stamp-vh: $(top_builddir)/configure.in
               cp ver.tmp version.h; \
               echo timestamp > stamp-vh)
        -@rm -f ver.tmp
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index 81eafc0..ca9e5e2 100644 (file)
@@ -67,6 +67,9 @@
 /* Define to 1 if you have the <panel.h> header file. */
 #undef HAVE_PANEL_H
 
+/* Define to 1 if you have the <samplerate.h> header file. */
+#undef HAVE_SAMPLERATE_H
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
index 73295e0..0b2448c 100644 (file)
@@ -4,9 +4,9 @@
 
 #define SND_UTIL_MAJOR         1
 #define SND_UTIL_MINOR         0
-#define SND_UTIL_SUBMINOR      21
+#define SND_UTIL_SUBMINOR      24
 #define SND_UTIL_VERSION               ((SND_UTIL_MAJOR<<16)|\
                                 (SND_UTIL_MINOR<<8)|\
                                  SND_UTIL_SUBMINOR)
-#define SND_UTIL_VERSION_STR   "1.0.21"
+#define SND_UTIL_VERSION_STR   "1.0.24.2"
 
index 4d4a951..6781b98 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2005-05-14.22
+scriptversion=2009-04-28.21; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,38 +39,68 @@ scriptversion=2005-05-14.22
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
+# from scratch.
+
+nl='
+'
+IFS=" ""       $nl"
 
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
 
-# put in absolute paths if you don't have them in your path; or use env. vars.
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
 
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
 
-chmodcmd="$chmodprog 0755"
-chowncmd=
 chgrpcmd=
-stripcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
 rmcmd="$rmprog -f"
-mvcmd="$mvprog"
+stripcmd=
+
 src=
 dst=
 dir_arg=
-dstarg=
+dst_arg=
+
+copy_on_change=false
 no_target_directory=
 
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    or: $0 [OPTION]... SRCFILES... DIRECTORY
    or: $0 [OPTION]... -t DIRECTORY SRCFILES...
    or: $0 [OPTION]... -d DIRECTORIES...
@@ -80,81 +110,86 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
 In the 4th, create DIRECTORIES.
 
 Options:
--c         (ignored)
--d         create directories instead of installing files.
--g GROUP   $chgrpprog installed files to GROUP.
--m MODE    $chmodprog installed files to MODE.
--o USER    $chownprog installed files to USER.
--s         $stripprog installed files.
--t DIRECTORY  install into DIRECTORY.
--T         report an error if DSTFILE is a directory.
---help     display this help and exit.
---version  display version info and exit.
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
 
 Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
 "
 
-while test -n "$1"; do
+while test $# -ne 0; do
   case $1 in
-    -c) shift
-        continue;;
+    -c) ;;
+
+    -C) copy_on_change=true;;
 
-    -d) dir_arg=true
-        shift
-        continue;;
+    -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-        shift
-        shift
-        continue;;
+       shift;;
 
     --help) echo "$usage"; exit $?;;
 
-    -m) chmodcmd="$chmodprog $2"
-        shift
-        shift
-        continue;;
+    -m) mode=$2
+       case $mode in
+         *' '* | *'    '* | *'
+'*       | *'*'* | *'?'* | *'['*)
+           echo "$0: invalid mode: $mode" >&2
+           exit 1;;
+       esac
+       shift;;
 
     -o) chowncmd="$chownprog $2"
-        shift
-        shift
-        continue;;
+       shift;;
 
-    -s) stripcmd=$stripprog
-        shift
-        continue;;
+    -s) stripcmd=$stripprog;;
 
-    -t) dstarg=$2
-       shift
-       shift
-       continue;;
+    -t) dst_arg=$2
+       shift;;
 
-    -T) no_target_directory=true
-       shift
-       continue;;
+    -T) no_target_directory=true;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    *)  # When -d is used, all remaining arguments are directories to create.
-       # When -t is used, the destination is already specified.
-       test -n "$dir_arg$dstarg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-       for arg
-       do
-          if test -n "$dstarg"; then
-           # $@ is not empty: it contains at least $arg.
-           set fnord "$@" "$dstarg"
-           shift # fnord
-         fi
-         shift # arg
-         dstarg=$arg
-       done
+    --)        shift
        break;;
+
+    -*)        echo "$0: invalid option: $1" >&2
+       exit 1;;
+
+    *)  break;;
   esac
+  shift
 done
 
-if test -z "$1"; then
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+  done
+fi
+
+if test $# -eq 0; then
   if test -z "$dir_arg"; then
     echo "$0: no input file specified." >&2
     exit 1
@@ -164,24 +199,47 @@ if test -z "$1"; then
   exit 0
 fi
 
+if test -z "$dir_arg"; then
+  trap '(exit $?); exit' 1 2 13 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
 for src
 do
   # Protect names starting with `-'.
   case $src in
-    -*) src=./$src ;;
+    -*) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
     dst=$src
-    src=
-
-    if test -d "$dst"; then
-      mkdircmd=:
-      chmodcmd=
-    else
-      mkdircmd=$mkdirprog
-    fi
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
   else
+
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
     # might cause directories to be created, which would be especially bad
     # if $src (and thus $dsttmp) contains '*'.
@@ -190,71 +248,199 @@ do
       exit 1
     fi
 
-    if test -z "$dstarg"; then
+    if test -z "$dst_arg"; then
       echo "$0: no destination specified." >&2
       exit 1
     fi
 
-    dst=$dstarg
+    dst=$dst_arg
     # Protect names starting with `-'.
     case $dst in
-      -*) dst=./$dst ;;
+      -*) dst=./$dst;;
     esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
       if test -n "$no_target_directory"; then
-       echo "$0: $dstarg: Is a directory" >&2
+       echo "$0: $dst_arg: Is a directory" >&2
        exit 1
       fi
-      dst=$dst/`basename "$src"`
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+       (dirname "$dst") 2>/dev/null ||
+       expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+            X"$dst" : 'X\(//\)[^/]' \| \
+            X"$dst" : 'X\(//\)$' \| \
+            X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+       echo X"$dst" |
+           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)[^/].*/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\).*/{
+                  s//\1/
+                  q
+                }
+                s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
     fi
   fi
 
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+       # Create intermediate dirs using mode 755 as modified by the umask.
+       # This is like FreeBSD 'install' as of 1997-10-28.
+       umask=`umask`
+       case $stripcmd.$umask in
+         # Optimize common cases.
+         *[2367][2367]) mkdir_umask=$umask;;
+         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+         *[0-7])
+           mkdir_umask=`expr $umask + 22 \
+             - $umask % 100 % 40 + $umask % 20 \
+             - $umask % 10 % 4 + $umask % 2
+           `;;
+         *) mkdir_umask=$umask,go-w;;
+       esac
+
+       # With -d, create the new directory with the user-specified mode.
+       # Otherwise, rely on $mkdir_umask.
+       if test -n "$dir_arg"; then
+         mkdir_mode=-m$mode
+       else
+         mkdir_mode=
+       fi
+
+       posix_mkdir=false
+       case $umask in
+         *[123567][0-7][0-7])
+           # POSIX mkdir -p sets u+wx bits regardless of umask, which
+           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+           ;;
+         *)
+           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+           trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+           if (umask $mkdir_umask &&
+               exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+           then
+             if test -z "$dir_arg" || {
+                  # Check for POSIX incompatibilities with -m.
+                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                  # other-writeable bit of parent directory when it shouldn't.
+                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                  ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                  case $ls_ld_tmpdir in
+                    d????-?r-*) different_mode=700;;
+                    d????-?--*) different_mode=755;;
+                    *) false;;
+                  esac &&
+                  $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                    ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                  }
+                }
+             then posix_mkdir=:
+             fi
+             rmdir "$tmpdir/d" "$tmpdir"
+           else
+             # Remove any dirs left behind by ancient mkdir implementations.
+             rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+           fi
+           trap '' 0;;
+       esac;;
+    esac
 
-  # Make sure that the destination directory exists.
+    if
+      $posix_mkdir && (
+       umask $mkdir_umask &&
+       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
 
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-        '
-    IFS="${IFS-$defaultIFS}"
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
 
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    shift
-    IFS=$oIFS
+      case $dstdir in
+       /*) prefix='/';;
+       -*) prefix='./';;
+       *)  prefix='';;
+      esac
 
-    pathcomp=
+      eval "$initialize_posix_glob"
 
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
       shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
-       # mkdir can fail with a `File exist' error in case several
-       # install-sh are creating the directory concurrently.  This
-       # is OK.
-       test -d "$pathcomp" || exit
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+       test -z "$d" && continue
+
+       prefix=$prefix$d
+       if test -d "$prefix"; then
+         prefixes=
+       else
+         if $posix_mkdir; then
+           (umask=$mkdir_umask &&
+            $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+           # Don't fail if two instances are running concurrently.
+           test -d "$prefix" || exit 1
+         else
+           case $prefix in
+             *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+             *) qprefix=$prefix;;
+           esac
+           prefixes="$prefixes '$qprefix'"
+         fi
+       fi
+       prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+       # Don't fail if two instances are running concurrently.
+       (umask $mkdir_umask &&
+        eval "\$doit_exec \$mkdirprog $prefixes") ||
+         test -d "$dstdir" || exit 1
+       obsolete_mkdir_used=true
       fi
-      pathcomp=$pathcomp/
-    done
+    fi
   fi
 
   if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
   else
-    dstfile=`basename "$dst"`
 
     # Make a couple of temp file names in the proper directory.
     dsttmp=$dstdir/_inst.$$_
@@ -262,10 +448,9 @@ do
 
     # Trap to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-    trap '(exit $?); exit' 1 2 13 15
 
     # Copy the file name to the temp name.
-    $doit $cpprog "$src" "$dsttmp" &&
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -273,51 +458,63 @@ do
     # ignore errors from any of these, just make sure not to ignore
     # errors from the above "$doit $cpprog $src $dsttmp" command.
     #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
-    # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
-      || {
-          # The rename failed, perhaps because mv can't rename something else
-          # to itself, or perhaps because mv is so ancient that it does not
-          # support -f.
-
-          # Now remove or move aside any old file at destination location.
-          # We try this two ways since rm can't unlink itself on some
-          # systems and the destination file might be busy for other
-          # reasons.  In this case, the final cleanup might fail but the new
-          # file should still install successfully.
-          {
-            if test -f "$dstdir/$dstfile"; then
-              $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-              || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
-              || {
-                echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-                (exit 1); exit 1
-              }
-            else
-              :
-            fi
-          } &&
-
-          # Now rename the file to the real destination.
-          $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-        }
-    }
-  fi || { (exit 1); exit 1; }
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"    2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+       # Now remove or move aside any old file at destination location.
+       # We try this two ways since rm can't unlink itself on some
+       # systems and the destination file might be busy for other
+       # reasons.  In this case, the final cleanup might fail but the new
+       # file should still install successfully.
+       {
+         test ! -f "$dst" ||
+         $doit $rmcmd -f "$dst" 2>/dev/null ||
+         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+           { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+         } ||
+         { echo "$0: cannot unlink or rename $dst" >&2
+           (exit 1); exit 1
+         }
+       } &&
+
+       # Now rename the file to the real destination.
+       $doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
 done
 
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit 0
-}
-
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
index 5f9116c..89c35b0 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -49,19 +47,15 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -85,14 +79,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -110,6 +97,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -122,6 +110,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -132,14 +121,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -151,6 +140,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -180,8 +170,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 EXTRA_DIST = codeset.m4 gettext.m4 glibc2.m4 glibc21.m4 iconv.m4 intdiv0.m4 intmax.m4 inttypes_h.m4 inttypes-h.m4 inttypes-pri.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 lock.m4 longdouble.m4 longlong.m4 nls.m4 po.m4 printf-posix.m4 progtest.m4 signed.m4 size_max.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 visibility.m4 wchar_t.m4 wint_t.m4 xsize.m4 gettext.m4
 all: all-am
@@ -191,14 +187,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  m4/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  m4/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign m4/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign m4/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -216,7 +212,7 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
+$(am__aclocal_m4_deps):
 tags: TAGS
 TAGS:
 
@@ -225,29 +221,32 @@ CTAGS:
 
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -275,6 +274,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -293,18 +293,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am:
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am:
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -323,16 +343,20 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-info-am
+uninstall-am:
+
+.MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic distclean \
        distclean-generic distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-exec \
-       install-exec-am install-info install-info-am install-man \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
-       uninstall-info-am
+       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/missing b/missing
index 894e786..28055d2 100755 (executable)
--- a/missing
+++ b/missing
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2005-06-08.21
+scriptversion=2009-04-28.21; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
-#   Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -18,9 +18,7 @@ scriptversion=2005-06-08.21
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -33,6 +31,8 @@ if test $# -eq 0; then
 fi
 
 run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
 
 # In the cases where this matters, `missing' is being run in the
 # srcdir already.
@@ -44,7 +44,7 @@ fi
 
 msg="missing on your system"
 
-case "$1" in
+case $1 in
 --run)
   # Try to run requested program, and just exit if it succeeds.
   run=
@@ -77,6 +77,7 @@ Supported PROGRAM values:
   aclocal      touch file \`aclocal.m4'
   autoconf     touch file \`configure'
   autoheader   touch file \`config.h.in'
+  autom4te     touch the output file, or create a stub one
   automake     touch all \`Makefile.in' files
   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
   flex         create \`lex.yy.c', if possible, from existing .c
@@ -86,6 +87,9 @@ Supported PROGRAM values:
   tar          try tar, gnutar, gtar, then tar without non-portable flags
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
 Send bug reports to <bug-automake@gnu.org>."
     exit $?
     ;;
@@ -103,15 +107,22 @@ Send bug reports to <bug-automake@gnu.org>."
 
 esac
 
+# normalize program name to check for.
+program=`echo "$1" | sed '
+  s/^gnu-//; t
+  s/^gnu//; t
+  s/^g//; t'`
+
 # Now exit if we have it, but it failed.  Also exit now if we
 # don't have it and --version was passed (most likely to detect
-# the program).
-case "$1" in
-  lex|yacc)
+# the program).  This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+  lex*|yacc*)
     # Not GNU programs, they don't have --version.
     ;;
 
-  tar)
+  tar*)
     if test -n "$run"; then
        echo 1>&2 "ERROR: \`tar' requires --run"
        exit 1
@@ -135,7 +146,7 @@ esac
 
 # If it does not exist, or fails to run (possibly an outdated version),
 # try to emulate it.
-case "$1" in
+case $program in
   aclocal*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
@@ -145,7 +156,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch aclocal.m4
     ;;
 
-  autoconf)
+  autoconf*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`${configure_ac}'.  You might want to install the
@@ -154,7 +165,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch configure
     ;;
 
-  autoheader)
+  autoheader*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
@@ -164,7 +175,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     test -z "$files" && files="config.h"
     touch_files=
     for f in $files; do
-      case "$f" in
+      case $f in
       *:*) touch_files="$touch_files "`echo "$f" |
                                       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
       *) touch_files="$touch_files $f.in";;
@@ -184,7 +195,7 @@ WARNING: \`$1' is $msg.  You should only need it if
           while read f; do touch "$f"; done
     ;;
 
-  autom4te)
+  autom4te*)
     echo 1>&2 "\
 WARNING: \`$1' is needed, but is $msg.
          You might have modified some files without having the
@@ -192,8 +203,8 @@ WARNING: \`$1' is needed, but is $msg.
          You can get \`$1' as part of \`Autoconf' from any GNU
          archive site."
 
-    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
-    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -f "$file"; then
        touch $file
     else
@@ -207,80 +218,78 @@ WARNING: \`$1' is needed, but is $msg.
     fi
     ;;
 
-  bison|yacc)
+  bison*|yacc*)
     echo 1>&2 "\
 WARNING: \`$1' $msg.  You should only need it if
          you modified a \`.y' file.  You may need the \`Bison' package
          in order for those modifications to take effect.  You can get
          \`Bison' from any GNU archive site."
     rm -f y.tab.c y.tab.h
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-       case "$LASTARG" in
+       case $LASTARG in
        *.y)
            SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-           if [ -f "$SRCFILE" ]; then
+           if test -f "$SRCFILE"; then
                 cp "$SRCFILE" y.tab.c
            fi
            SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-           if [ -f "$SRCFILE" ]; then
+           if test -f "$SRCFILE"; then
                 cp "$SRCFILE" y.tab.h
            fi
          ;;
        esac
     fi
-    if [ ! -f y.tab.h ]; then
+    if test ! -f y.tab.h; then
        echo >y.tab.h
     fi
-    if [ ! -f y.tab.c ]; then
+    if test ! -f y.tab.c; then
        echo 'main() { return 0; }' >y.tab.c
     fi
     ;;
 
-  lex|flex)
+  lex*|flex*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified a \`.l' file.  You may need the \`Flex' package
          in order for those modifications to take effect.  You can get
          \`Flex' from any GNU archive site."
     rm -f lex.yy.c
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-       case "$LASTARG" in
+       case $LASTARG in
        *.l)
            SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-           if [ -f "$SRCFILE" ]; then
+           if test -f "$SRCFILE"; then
                 cp "$SRCFILE" lex.yy.c
            fi
          ;;
        esac
     fi
-    if [ ! -f lex.yy.c ]; then
+    if test ! -f lex.yy.c; then
        echo 'main() { return 0; }' >lex.yy.c
     fi
     ;;
 
-  help2man)
+  help2man*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
         you modified a dependency of a manual page.  You may need the
         \`Help2man' package in order for those modifications to take
         effect.  You can get \`Help2man' from any GNU archive site."
 
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-       file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
-    fi
-    if [ -f "$file" ]; then
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
        touch $file
     else
        test -z "$file" || exec >$file
        echo ".ab help2man is required to generate this page"
-       exit 1
+       exit $?
     fi
     ;;
 
-  makeinfo)
+  makeinfo*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -289,11 +298,17 @@ WARNING: \`$1' is $msg.  You should only need it if
          DU, IRIX).  You might want to install the \`Texinfo' package or
          the \`GNU make' package.  Grab either from any GNU archive site."
     # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -z "$file"; then
       # ... or it is the one specified with @setfilename ...
       infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+      file=`sed -n '
+       /^@setfilename/{
+         s/.* \([^ ]*\) *$/\1/
+         p
+         q
+       }' $infile`
       # ... or it is derived from the source name (dir/f.texi becomes f.info)
       test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
     fi
@@ -303,7 +318,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch $file
     ;;
 
-  tar)
+  tar*)
     shift
 
     # We have already tried tar in the generic part.
@@ -317,13 +332,13 @@ WARNING: \`$1' is $msg.  You should only need it if
     fi
     firstarg="$1"
     if shift; then
-       case "$firstarg" in
+       case $firstarg in
        *o*)
            firstarg=`echo "$firstarg" | sed s/o//`
            tar "$firstarg" "$@" && exit 0
            ;;
        esac
-       case "$firstarg" in
+       case $firstarg in
        *h*)
            firstarg=`echo "$firstarg" | sed s/h//`
            tar "$firstarg" "$@" && exit 0
@@ -356,5 +371,6 @@ exit 0
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
index 04c1850..52440b2 100644 (file)
@@ -2,7 +2,7 @@
 
 Name:       alsa-utils
 Summary:    Advanced Linux Sound Architecture (ALSA) utilities
-Version: 1.0.21
+Version:    1.0.24.2
 Release:    1
 Group:      Applications/Multimedia
 License:    GPLv2+
@@ -54,4 +54,4 @@ rm -rf %{buildroot}
 %{_sbindir}/*
 %{_datadir}/alsa/*
 %{_datadir}/sounds/*
-
+/lib/udev/rules.d/90-alsa-restore.rules
index 081e105..2027386 100644 (file)
@@ -1 +1 @@
-ja de
+de fr ja
index 1eeaffd..4f101b2 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-31 17:14+0200\n"
+"POT-Creation-Date: 2011-01-31 15:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -80,266 +80,266 @@ msgstr ""
 msgid "%s: %s\n"
 msgstr ""
 
-#: alsamixer/mixer_display.c:95
+#: alsamixer/mixer_display.c:98
 msgid "Card:"
 msgstr ""
 
-#: alsamixer/mixer_display.c:96
+#: alsamixer/mixer_display.c:99
 msgid "Chip:"
 msgstr ""
 
-#: alsamixer/mixer_display.c:97
+#: alsamixer/mixer_display.c:100
 msgid "View:"
 msgstr ""
 
-#: alsamixer/mixer_display.c:98
+#: alsamixer/mixer_display.c:101
 msgid "Item:"
 msgstr ""
 
-#: alsamixer/mixer_display.c:101
+#: alsamixer/mixer_display.c:104
 msgid "F1:  Help"
 msgstr ""
 
-#: alsamixer/mixer_display.c:102
+#: alsamixer/mixer_display.c:105
 msgid "F2:  System information"
 msgstr ""
 
-#: alsamixer/mixer_display.c:103
+#: alsamixer/mixer_display.c:106
 msgid "F6:  Select sound card"
 msgstr ""
 
-#: alsamixer/mixer_display.c:104
+#: alsamixer/mixer_display.c:107
 msgid "Esc: Exit"
 msgstr ""
 
-#: alsamixer/mixer_display.c:171
+#: alsamixer/mixer_display.c:174
 msgid "(unplugged)"
 msgstr ""
 
-#: alsamixer/mixer_display.c:189
+#: alsamixer/mixer_display.c:192
 msgid "Playback"
 msgstr ""
 
-#: alsamixer/mixer_display.c:190
+#: alsamixer/mixer_display.c:193
 msgid "Capture"
 msgstr ""
 
-#: alsamixer/mixer_display.c:191
+#: alsamixer/mixer_display.c:194
 msgid "All"
 msgstr ""
 
-#: alsamixer/mixer_display.c:231
+#: alsamixer/mixer_display.c:234
 msgid "mute"
 msgstr ""
 
-#: alsamixer/mixer_display.c:272 alsamixer/mixer_display.c:282
+#: alsamixer/mixer_display.c:275 alsamixer/mixer_display.c:285
 msgid "dB gain:"
 msgstr ""
 
-#: alsamixer/mixer_display.c:282
+#: alsamixer/mixer_display.c:285
 #, c-format
 msgid " [%s %s, %s]"
 msgstr ""
 
-#: alsamixer/mixer_display.c:291 alsamixer/mixer_display.c:297
-#: alsamixer/mixer_display.c:303 alsamixer/mixer_display.c:309
+#: alsamixer/mixer_display.c:294 alsamixer/mixer_display.c:300
+#: alsamixer/mixer_display.c:306 alsamixer/mixer_display.c:312
 msgid "Off"
 msgstr ""
 
-#: alsamixer/mixer_display.c:297 alsamixer/mixer_display.c:309
+#: alsamixer/mixer_display.c:300 alsamixer/mixer_display.c:312
 msgid "On"
 msgstr ""
 
-#: alsamixer/mixer_display.c:360
+#: alsamixer/mixer_display.c:363
 msgid "The sound device was unplugged."
 msgstr ""
 
-#: alsamixer/mixer_display.c:361
+#: alsamixer/mixer_display.c:364
 msgid "Press F6 to select another sound card."
 msgstr ""
 
-#: alsamixer/mixer_display.c:376
+#: alsamixer/mixer_display.c:379
 msgid "This sound device does not have any playback controls."
 msgstr ""
 
-#: alsamixer/mixer_display.c:378
+#: alsamixer/mixer_display.c:381
 msgid "This sound device does not have any capture controls."
 msgstr ""
 
-#: alsamixer/mixer_display.c:380
+#: alsamixer/mixer_display.c:383
 msgid "This sound device does not have any controls."
 msgstr ""
 
 #. TRANSLATORS: playback on; one character
-#: alsamixer/mixer_display.c:524 alsamixer/mixer_display.c:529
+#: alsamixer/mixer_display.c:516 alsamixer/mixer_display.c:521
 msgid "O"
 msgstr ""
 
 #. TRANSLATORS: playback muted; one character
-#: alsamixer/mixer_display.c:526 alsamixer/mixer_display.c:530
+#: alsamixer/mixer_display.c:518 alsamixer/mixer_display.c:522
 msgid "M"
 msgstr ""
 
 #. TRANSLATORS: "left"; no more than two characters
-#: alsamixer/mixer_display.c:544
+#: alsamixer/mixer_display.c:536
 msgid "L"
 msgstr ""
 
 #. TRANSLATORS: "right"; no more than two characters
-#: alsamixer/mixer_display.c:548
+#: alsamixer/mixer_display.c:540
 msgid "R"
 msgstr ""
 
 #. TRANSLATORS: no more than eight characters
-#: alsamixer/mixer_display.c:550
+#: alsamixer/mixer_display.c:542
 msgid "CAPTURE"
 msgstr ""
 
-#: alsamixer/mixer_display.c:600
+#: alsamixer/mixer_display.c:592
 msgid "Front"
 msgstr ""
 
-#: alsamixer/mixer_display.c:603
+#: alsamixer/mixer_display.c:595
 msgid "Rear"
 msgstr ""
 
-#: alsamixer/mixer_display.c:606 speaker-test/speaker-test.c:106
+#: alsamixer/mixer_display.c:598 speaker-test/speaker-test.c:108
 msgid "Center"
 msgstr ""
 
-#: alsamixer/mixer_display.c:609
+#: alsamixer/mixer_display.c:601
 msgid "Woofer"
 msgstr ""
 
-#: alsamixer/mixer_display.c:612
+#: alsamixer/mixer_display.c:604
 msgid "Side"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:83 alsamixer/mixer_widget.c:88
+#: alsamixer/mixer_widget.c:84 alsamixer/mixer_widget.c:89
 msgid "cannot open mixer"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:94 alsamixer/mixer_widget.c:171
+#: alsamixer/mixer_widget.c:95 alsamixer/mixer_widget.c:172
 msgid "cannot load mixer controls"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:161
+#: alsamixer/mixer_widget.c:162
 #, c-format
 msgid "Cannot open mixer device '%s'."
 msgstr ""
 
-#: alsamixer/mixer_widget.c:182
+#: alsamixer/mixer_widget.c:183
 msgid "Esc     Exit"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:183
+#: alsamixer/mixer_widget.c:184
 msgid "F1 ? H  Help"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:184
+#: alsamixer/mixer_widget.c:185
 msgid "F2 /    System information"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:185
+#: alsamixer/mixer_widget.c:186
 msgid "F3      Show playback controls"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:186
+#: alsamixer/mixer_widget.c:187
 msgid "F4      Show capture controls"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:187
+#: alsamixer/mixer_widget.c:188
 msgid "F5      Show all controls"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:188
+#: alsamixer/mixer_widget.c:189
 msgid "Tab     Toggle view mode (F3/F4/F5)"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:189
+#: alsamixer/mixer_widget.c:190
 msgid "F6 S    Select sound card"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:190
+#: alsamixer/mixer_widget.c:191
 msgid "L       Redraw screen"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:192
+#: alsamixer/mixer_widget.c:193
 msgid "Left    Move to the previous control"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:193
+#: alsamixer/mixer_widget.c:194
 msgid "Right   Move to the next control"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:195
+#: alsamixer/mixer_widget.c:196
 msgid "Up/Down    Change volume"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:196
+#: alsamixer/mixer_widget.c:197
 msgid "+ -        Change volume"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:197
+#: alsamixer/mixer_widget.c:198
 msgid "Page Up/Dn Change volume in big steps"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:198
+#: alsamixer/mixer_widget.c:199
 msgid "End        Set volume to 0%"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:199
+#: alsamixer/mixer_widget.c:200
 msgid "0-9        Set volume to 0%-90%"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:200
+#: alsamixer/mixer_widget.c:201
 msgid "Q W E      Increase left/both/right volumes"
 msgstr ""
 
 #. TRANSLATORS: or Y instead of Z
-#: alsamixer/mixer_widget.c:202
+#: alsamixer/mixer_widget.c:203
 msgid "Z X C      Decrease left/both/right volumes"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:203
+#: alsamixer/mixer_widget.c:204
 msgid "B          Balance left and right volumes"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:205
+#: alsamixer/mixer_widget.c:206
 msgid "M          Toggle mute"
 msgstr ""
 
 #. TRANSLATORS: or , .
-#: alsamixer/mixer_widget.c:207
+#: alsamixer/mixer_widget.c:208
 msgid "< >        Toggle left/right mute"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:209
+#: alsamixer/mixer_widget.c:210
 msgid "Space      Toggle capture"
 msgstr ""
 
 #. TRANSLATORS: or Insert Delete
-#: alsamixer/mixer_widget.c:211
+#: alsamixer/mixer_widget.c:212
 msgid "; '        Toggle left/right capture"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:213
+#: alsamixer/mixer_widget.c:214
 msgid "Authors:"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:214
-msgid "  Tim Janik <timj@gtk.org>"
+#: alsamixer/mixer_widget.c:215
+msgid "  Tim Janik"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:215
+#: alsamixer/mixer_widget.c:216
 msgid "  Jaroslav Kysela <perex@perex.cz>"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:216
+#: alsamixer/mixer_widget.c:217
 msgid "  Clemens Ladisch <clemens@ladisch.de>"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:218
+#: alsamixer/mixer_widget.c:219
 msgid "Help"
 msgstr ""
 
@@ -356,23 +356,23 @@ msgstr ""
 msgid "Cannot open file \"%s\"."
 msgstr ""
 
-#: aplay/aplay.c:139
+#: aplay/aplay.c:152
 msgid "raw data"
 msgstr ""
 
-#: aplay/aplay.c:140
+#: aplay/aplay.c:153
 msgid "VOC"
 msgstr ""
 
-#: aplay/aplay.c:142
+#: aplay/aplay.c:155
 msgid "WAVE"
 msgstr ""
 
-#: aplay/aplay.c:143
+#: aplay/aplay.c:156
 msgid "Sparc Audio"
 msgstr ""
 
-#: aplay/aplay.c:164
+#: aplay/aplay.c:177
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -411,428 +411,469 @@ msgid ""
 "                        expression for validation is: coef * (buffer_size / "
 "2)\n"
 "    --test-nowait       do not wait for ring buffer - eats whole CPU\n"
+"    --max-file-time=#   start another output file when the old file has "
+"recorded\n"
+"                        for this many seconds\n"
+"    --process-id-file   write the process ID here\n"
+"    --use-strftime      apply the strftime facility to the output file name\n"
 msgstr ""
 
-#: aplay/aplay.c:199 speaker-test/speaker-test.c:740
+#: aplay/aplay.c:216 speaker-test/speaker-test.c:819
 #, c-format
 msgid "Recognized sample formats are:"
 msgstr ""
 
-#: aplay/aplay.c:205
+#: aplay/aplay.c:222
 #, c-format
 msgid ""
 "\n"
 "Some of these may not be available on selected hardware\n"
 msgstr ""
 
-#: aplay/aplay.c:206
+#: aplay/aplay.c:223
 #, c-format
 msgid "The availabled format shortcuts are:\n"
 msgstr ""
 
-#: aplay/aplay.c:207
+#: aplay/aplay.c:224
 #, c-format
 msgid "-f cd (16 bit little endian, 44100, stereo)\n"
 msgstr ""
 
-#: aplay/aplay.c:208
+#: aplay/aplay.c:225
 #, c-format
 msgid "-f cdr (16 bit big endian, 44100, stereo)\n"
 msgstr ""
 
-#: aplay/aplay.c:209
+#: aplay/aplay.c:226
 #, c-format
 msgid "-f dat (16 bit little endian, 48000, stereo)\n"
 msgstr ""
 
-#: aplay/aplay.c:223
+#: aplay/aplay.c:240
 msgid "no soundcards found..."
 msgstr ""
 
-#: aplay/aplay.c:226
+#: aplay/aplay.c:243
 #, c-format
 msgid "**** List of %s Hardware Devices ****\n"
 msgstr ""
 
-#: aplay/aplay.c:255
+#: aplay/aplay.c:272
 #, c-format
 msgid "card %i: %s [%s], device %i: %s [%s]\n"
 msgstr ""
 
-#: aplay/aplay.c:261
+#: aplay/aplay.c:278
 #, c-format
 msgid "  Subdevices: %i/%i\n"
 msgstr ""
 
-#: aplay/aplay.c:268
+#: aplay/aplay.c:285
 #, c-format
 msgid "  Subdevice #%i: %s\n"
 msgstr ""
 
-#: aplay/aplay.c:332
+#: aplay/aplay.c:362
 #, c-format
 msgid "Aborted by signal %s...\n"
 msgstr ""
 
-#: aplay/aplay.c:430
+#: aplay/aplay.c:473
 msgid "command should be named either arecord or aplay"
 msgstr ""
 
-#: aplay/aplay.c:469
+#: aplay/aplay.c:512
 #, c-format
 msgid "unrecognized file format %s"
 msgstr ""
 
-#: aplay/aplay.c:476
+#: aplay/aplay.c:519
 #, c-format
 msgid "value %i for channels is invalid"
 msgstr ""
 
-#: aplay/aplay.c:495
+#: aplay/aplay.c:538
 #, c-format
 msgid "wrong extended format '%s'"
 msgstr ""
 
-#: aplay/aplay.c:506
+#: aplay/aplay.c:549
 #, c-format
 msgid "bad speed value %i"
 msgstr ""
 
-#: aplay/aplay.c:592
+#: aplay/aplay.c:644
 #, c-format
 msgid "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: aplay/aplay.c:608
+#: aplay/aplay.c:660
 #, c-format
 msgid "audio open error: %s"
 msgstr ""
 
-#: aplay/aplay.c:613
+#: aplay/aplay.c:665
 #, c-format
 msgid "info error: %s"
 msgstr ""
 
-#: aplay/aplay.c:620
+#: aplay/aplay.c:672
 #, c-format
 msgid "nonblock setting error: %s"
 msgstr ""
 
-#: aplay/aplay.c:630 aplay/aplay.c:737 aplay/aplay.c:1092
+#: aplay/aplay.c:682 aplay/aplay.c:806 aplay/aplay.c:1174
 msgid "not enough memory"
 msgstr ""
 
-#: aplay/aplay.c:727
+#: aplay/aplay.c:706
+#, c-format
+msgid "Cannot create process ID file %s: %s"
+msgstr ""
+
+#: aplay/aplay.c:796
 #, c-format
 msgid "read error (called from line %i)"
 msgstr ""
 
-#: aplay/aplay.c:785
+#: aplay/aplay.c:854
 #, c-format
 msgid "unknown length of 'fmt ' chunk (read %u, should be %u at least)"
 msgstr ""
 
-#: aplay/aplay.c:795
+#: aplay/aplay.c:864
 #, c-format
 msgid ""
 "unknown length of extensible 'fmt ' chunk (read %u, should be %u at least)"
 msgstr ""
 
-#: aplay/aplay.c:800
+#: aplay/aplay.c:869
 msgid "wrong format tag in extensible 'fmt ' chunk"
 msgstr ""
 
-#: aplay/aplay.c:807
+#: aplay/aplay.c:876
 #, c-format
 msgid "can't play WAVE-file format 0x%04x which is not PCM or FLOAT encoded"
 msgstr ""
 
-#: aplay/aplay.c:811
+#: aplay/aplay.c:880
 #, c-format
 msgid "can't play WAVE-files with %d tracks"
 msgstr ""
 
-#: aplay/aplay.c:819 aplay/aplay.c:919
+#: aplay/aplay.c:888 aplay/aplay.c:988
 #, c-format
 msgid "Warning: format is changed to U8\n"
 msgstr ""
 
-#: aplay/aplay.c:825
+#: aplay/aplay.c:894
 #, c-format
 msgid "Warning: format is changed to S16_LE\n"
 msgstr ""
 
-#: aplay/aplay.c:833
+#: aplay/aplay.c:902
 #, c-format
 msgid "Warning: format is changed to S24_3LE\n"
 msgstr ""
 
-#: aplay/aplay.c:839
+#: aplay/aplay.c:908
 #, c-format
 msgid "Warning: format is changed to S24_LE\n"
 msgstr ""
 
-#: aplay/aplay.c:843
+#: aplay/aplay.c:912
 #, c-format
 msgid ""
 " can't play WAVE-files with sample %d bits in %d bytes wide (%d channels)"
 msgstr ""
 
-#: aplay/aplay.c:855
+#: aplay/aplay.c:924
 #, c-format
 msgid " can't play WAVE-files with sample %d bits wide"
 msgstr ""
 
-#: aplay/aplay.c:913
+#: aplay/aplay.c:982
 #, c-format
 msgid "Warning: format is changed to MU_LAW\n"
 msgstr ""
 
-#: aplay/aplay.c:925
+#: aplay/aplay.c:994
 #, c-format
 msgid "Warning: format is changed to S16_BE\n"
 msgstr ""
 
-#: aplay/aplay.c:938 aplay/aplay.c:1768 aplay/aplay.c:1775 aplay/aplay.c:2297
-#: aplay/aplay.c:2309
+#: aplay/aplay.c:1007 aplay/aplay.c:1925 aplay/aplay.c:1932 aplay/aplay.c:2455
+#: aplay/aplay.c:2467
 msgid "read error"
 msgstr ""
 
-#: aplay/aplay.c:957
+#: aplay/aplay.c:1037
 msgid "Broken configuration for this PCM: no configurations available"
 msgstr ""
 
-#: aplay/aplay.c:974
+#: aplay/aplay.c:1054
 msgid "Access type not available"
 msgstr ""
 
-#: aplay/aplay.c:979
+#: aplay/aplay.c:1059
 msgid "Sample format non available"
 msgstr ""
 
-#: aplay/aplay.c:984
+#: aplay/aplay.c:1065
 msgid "Channels count non available"
 msgstr ""
 
-#: aplay/aplay.c:999
+#: aplay/aplay.c:1080
 #, c-format
 msgid "Warning: rate is not accurate (requested = %iHz, got = %iHz)\n"
 msgstr ""
 
-#: aplay/aplay.c:1005
+#: aplay/aplay.c:1086
 #, c-format
 msgid "         please, try the plug plugin %s\n"
 msgstr ""
 
-#: aplay/aplay.c:1041
+#: aplay/aplay.c:1123
 msgid "Unable to install hw params:"
 msgstr ""
 
-#: aplay/aplay.c:1048
+#: aplay/aplay.c:1130
 #, c-format
 msgid "Can't use period equal to buffer size (%lu == %lu)"
 msgstr ""
 
-#: aplay/aplay.c:1079
+#: aplay/aplay.c:1161
 msgid "unable to install sw params:"
 msgstr ""
 
-#: aplay/aplay.c:1154
+#: aplay/aplay.c:1192
+#, c-format
+msgid "snd_pcm_mmap_begin problem: %s"
+msgstr ""
+
+#: aplay/aplay.c:1215
+#, c-format
+msgid "stdin O_NONBLOCK flag setup failed\n"
+msgstr ""
+
+#: aplay/aplay.c:1237
+#, c-format
+msgid "\rPAUSE command ignored (no hw support)\n"
+msgstr ""
+
+#: aplay/aplay.c:1242
+#, c-format
+msgid "pause push error: %s"
+msgstr ""
+
+#: aplay/aplay.c:1251
+#, c-format
+msgid "pause release error: %s"
+msgstr ""
+
+#: aplay/aplay.c:1265
+#, c-format
+msgid ""
+"\r=== PAUSE ===                                                            "
+msgstr ""
+
+#: aplay/aplay.c:1307
 #, c-format
 msgid "status error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1164 aplay/aplay.c:1175
+#: aplay/aplay.c:1317 aplay/aplay.c:1328
 #, c-format
 msgid "%s!!! (at least %.3f ms long)\n"
 msgstr ""
 
-#: aplay/aplay.c:1165 aplay/aplay.c:1168 aplay/aplay.c:1176
+#: aplay/aplay.c:1318 aplay/aplay.c:1321 aplay/aplay.c:1329
 msgid "underrun"
 msgstr ""
 
-#: aplay/aplay.c:1165 aplay/aplay.c:1176
+#: aplay/aplay.c:1318 aplay/aplay.c:1329
 msgid "overrun"
 msgstr ""
 
-#: aplay/aplay.c:1180
+#: aplay/aplay.c:1333
 #, c-format
 msgid "Status:\n"
 msgstr ""
 
-#: aplay/aplay.c:1184
+#: aplay/aplay.c:1337
 #, c-format
 msgid "xrun: prepare error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1190
+#: aplay/aplay.c:1343
 #, c-format
 msgid "Status(DRAINING):\n"
 msgstr ""
 
-#: aplay/aplay.c:1194
+#: aplay/aplay.c:1347
 #, c-format
 msgid "capture stream format change? attempting recover...\n"
 msgstr ""
 
-#: aplay/aplay.c:1196
+#: aplay/aplay.c:1349
 #, c-format
 msgid "xrun(DRAINING): prepare error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1203
+#: aplay/aplay.c:1356
 #, c-format
 msgid "Status(R/W):\n"
 msgstr ""
 
-#: aplay/aplay.c:1206
+#: aplay/aplay.c:1359
 #, c-format
 msgid "read/write error, state = %s"
 msgstr ""
 
-#: aplay/aplay.c:1216
+#: aplay/aplay.c:1369
 #, c-format
 msgid "Suspended. Trying resume. "
 msgstr ""
 
-#: aplay/aplay.c:1221
+#: aplay/aplay.c:1374
 #, c-format
 msgid "Failed. Restarting stream. "
 msgstr ""
 
-#: aplay/aplay.c:1223
+#: aplay/aplay.c:1376
 #, c-format
 msgid "suspend: prepare error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1228
+#: aplay/aplay.c:1381
 #, c-format
 msgid "Done.\n"
 msgstr ""
 
-#: aplay/aplay.c:1250
+#: aplay/aplay.c:1403
 #, c-format
 msgid " !clip  "
 msgstr ""
 
-#: aplay/aplay.c:1397
+#: aplay/aplay.c:1550
 #, c-format
 msgid "Unsupported bit size %d.\n"
 msgstr ""
 
-#: aplay/aplay.c:1431
+#: aplay/aplay.c:1584
 #, c-format
 msgid "Max peak (%li samples): 0x%08x "
 msgstr ""
 
-#: aplay/aplay.c:1465
+#: aplay/aplay.c:1618
 #, c-format
 msgid ""
 "Suspicious buffer position (%li total): avail = %li, delay = %li, buffer = %"
 "li\n"
 msgstr ""
 
-#: aplay/aplay.c:1528
+#: aplay/aplay.c:1682
 #, c-format
 msgid "write error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1574
+#: aplay/aplay.c:1729
 #, c-format
 msgid "writev error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1617
+#: aplay/aplay.c:1773
 #, c-format
 msgid "read error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1660
+#: aplay/aplay.c:1817
 #, c-format
 msgid "readv error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1708
+#: aplay/aplay.c:1865
 msgid "can't allocate buffer for silence"
 msgstr ""
 
-#: aplay/aplay.c:1717 aplay/aplay.c:1943 aplay/aplay.c:1948 aplay/aplay.c:1995
-#: aplay/aplay.c:2004 aplay/aplay.c:2011 aplay/aplay.c:2021 aplay/aplay.c:2027
-#: aplay/aplay.c:2099 aplay/aplay.c:2129 aplay/aplay.c:2143
+#: aplay/aplay.c:1874 aplay/aplay.c:2100 aplay/aplay.c:2105 aplay/aplay.c:2152
+#: aplay/aplay.c:2161 aplay/aplay.c:2168 aplay/aplay.c:2178 aplay/aplay.c:2184
+#: aplay/aplay.c:2256 aplay/aplay.c:2286 aplay/aplay.c:2300
 msgid "write error"
 msgstr ""
 
-#: aplay/aplay.c:1730
+#: aplay/aplay.c:1887
 #, c-format
 msgid "voc_pcm_flush - silence error"
 msgstr ""
 
-#: aplay/aplay.c:1733
+#: aplay/aplay.c:1890
 msgid "voc_pcm_flush error"
 msgstr ""
 
-#: aplay/aplay.c:1759
+#: aplay/aplay.c:1916
 msgid "malloc error"
 msgstr ""
 
-#: aplay/aplay.c:1763
+#: aplay/aplay.c:1920
 #, c-format
 msgid "Playing Creative Labs Channel file '%s'...\n"
 msgstr ""
 
-#: aplay/aplay.c:1831 aplay/aplay.c:1923
+#: aplay/aplay.c:1988 aplay/aplay.c:2080
 msgid "can't play packed .voc files"
 msgstr ""
 
-#: aplay/aplay.c:1883
+#: aplay/aplay.c:2040
 #, c-format
 msgid "can't play loops; %s isn't seekable\n"
 msgstr ""
 
-#: aplay/aplay.c:1932
+#: aplay/aplay.c:2089
 #, c-format
 msgid "unknown blocktype %d. terminate."
 msgstr ""
 
-#: aplay/aplay.c:2063
+#: aplay/aplay.c:2220
 #, c-format
 msgid "Wave doesn't support %s format..."
 msgstr ""
 
-#: aplay/aplay.c:2123
+#: aplay/aplay.c:2280
 #, c-format
 msgid "Sparc Audio doesn't support %s format..."
 msgstr ""
 
-#: aplay/aplay.c:2204
+#: aplay/aplay.c:2361
 msgid "Playing"
 msgstr ""
 
-#: aplay/aplay.c:2204
+#: aplay/aplay.c:2361
 msgid "Recording"
 msgstr ""
 
-#: aplay/aplay.c:2208
+#: aplay/aplay.c:2365
 #, c-format
 msgid "Rate %d Hz, "
 msgstr ""
 
-#: aplay/aplay.c:2210
+#: aplay/aplay.c:2367
 #, c-format
 msgid "Mono"
 msgstr ""
 
-#: aplay/aplay.c:2212
+#: aplay/aplay.c:2369
 #, c-format
 msgid "Stereo"
 msgstr ""
 
-#: aplay/aplay.c:2214
+#: aplay/aplay.c:2371
 #, c-format
 msgid "Channels %i"
 msgstr ""
 
-#: aplay/aplay.c:2573 aplay/aplay.c:2626
+#: aplay/aplay.c:2882 aplay/aplay.c:2935
 #, c-format
 msgid "You need to specify %d files"
 msgstr ""
@@ -943,47 +984,47 @@ msgstr ""
 msgid "kernel"
 msgstr ""
 
-#: seq/aconnect/aconnect.c:326
+#: seq/aconnect/aconnect.c:307
 #, c-format
 msgid "can't open sequencer\n"
 msgstr ""
 
-#: seq/aconnect/aconnect.c:354
+#: seq/aconnect/aconnect.c:335
 #, c-format
 msgid "can't get client id\n"
 msgstr ""
 
-#: seq/aconnect/aconnect.c:361
+#: seq/aconnect/aconnect.c:342
 #, c-format
 msgid "can't set client info\n"
 msgstr ""
 
-#: seq/aconnect/aconnect.c:368
+#: seq/aconnect/aconnect.c:349
 #, c-format
 msgid "invalid sender address %s\n"
 msgstr ""
 
-#: seq/aconnect/aconnect.c:373 seq/aseqnet/aseqnet.c:290
+#: seq/aconnect/aconnect.c:354 seq/aseqnet/aseqnet.c:290
 #, c-format
 msgid "invalid destination address %s\n"
 msgstr ""
 
-#: seq/aconnect/aconnect.c:387
+#: seq/aconnect/aconnect.c:368
 #, c-format
 msgid "No subscription is found\n"
 msgstr ""
 
-#: seq/aconnect/aconnect.c:392
+#: seq/aconnect/aconnect.c:373
 #, c-format
 msgid "Disconnection failed (%s)\n"
 msgstr ""
 
-#: seq/aconnect/aconnect.c:398
+#: seq/aconnect/aconnect.c:379
 #, c-format
 msgid "Connection is already subscribed\n"
 msgstr ""
 
-#: seq/aconnect/aconnect.c:403
+#: seq/aconnect/aconnect.c:384
 #, c-format
 msgid "Connection failed (%s)\n"
 msgstr ""
@@ -1113,257 +1154,257 @@ msgstr ""
 msgid "disconnected\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:102
+#: speaker-test/speaker-test.c:104
 msgid "Front Left"
 msgstr ""
 
-#: speaker-test/speaker-test.c:103
+#: speaker-test/speaker-test.c:105
 msgid "Front Right"
 msgstr ""
 
-#: speaker-test/speaker-test.c:104
+#: speaker-test/speaker-test.c:106
 msgid "Rear Left"
 msgstr ""
 
-#: speaker-test/speaker-test.c:105
+#: speaker-test/speaker-test.c:107
 msgid "Rear Right"
 msgstr ""
 
-#: speaker-test/speaker-test.c:107
+#: speaker-test/speaker-test.c:109
 msgid "LFE"
 msgstr ""
 
-#: speaker-test/speaker-test.c:108
+#: speaker-test/speaker-test.c:110
 msgid "Side Left"
 msgstr ""
 
-#: speaker-test/speaker-test.c:109
+#: speaker-test/speaker-test.c:111
 msgid "Side Right"
 msgstr ""
 
-#: speaker-test/speaker-test.c:110
+#: speaker-test/speaker-test.c:112
 msgid "Channel 9"
 msgstr ""
 
-#: speaker-test/speaker-test.c:111
+#: speaker-test/speaker-test.c:113
 msgid "Channel 10"
 msgstr ""
 
-#: speaker-test/speaker-test.c:112
+#: speaker-test/speaker-test.c:114
 msgid "Channel 11"
 msgstr ""
 
-#: speaker-test/speaker-test.c:113
+#: speaker-test/speaker-test.c:115
 msgid "Channel 12"
 msgstr ""
 
-#: speaker-test/speaker-test.c:114
+#: speaker-test/speaker-test.c:116
 msgid "Channel 13"
 msgstr ""
 
-#: speaker-test/speaker-test.c:115
+#: speaker-test/speaker-test.c:117
 msgid "Channel 14"
 msgstr ""
 
-#: speaker-test/speaker-test.c:116
+#: speaker-test/speaker-test.c:118
 msgid "Channel 15"
 msgstr ""
 
-#: speaker-test/speaker-test.c:117
+#: speaker-test/speaker-test.c:119
 msgid "Channel 16"
 msgstr ""
 
-#: speaker-test/speaker-test.c:307
+#: speaker-test/speaker-test.c:383
 #, c-format
 msgid "Broken configuration for playback: no configurations available: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:314
+#: speaker-test/speaker-test.c:390
 #, c-format
 msgid "Access type not available for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:321
+#: speaker-test/speaker-test.c:397
 #, c-format
 msgid "Sample format not available for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:328
+#: speaker-test/speaker-test.c:404
 #, c-format
 msgid "Channels count (%i) not available for playbacks: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:336
+#: speaker-test/speaker-test.c:412
 #, c-format
 msgid "Rate %iHz not available for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:341
+#: speaker-test/speaker-test.c:417
 #, c-format
 msgid "Rate doesn't match (requested %iHz, get %iHz, err %d)\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:345
+#: speaker-test/speaker-test.c:421
 #, c-format
 msgid "Rate set to %iHz (requested %iHz)\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:351
+#: speaker-test/speaker-test.c:427
 #, c-format
 msgid "Buffer size range from %lu to %lu\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:352
+#: speaker-test/speaker-test.c:428
 #, c-format
 msgid "Period size range from %lu to %lu\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:354
+#: speaker-test/speaker-test.c:430
 #, c-format
 msgid "Requested period time %u us\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:357
+#: speaker-test/speaker-test.c:433
 #, c-format
 msgid "Unable to set period time %u us for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:363
+#: speaker-test/speaker-test.c:439
 #, c-format
 msgid "Requested buffer time %u us\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:366
+#: speaker-test/speaker-test.c:442
 #, c-format
 msgid "Unable to set buffer time %u us for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:375
+#: speaker-test/speaker-test.c:451
 #, c-format
 msgid "Using max buffer size %lu\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:378
+#: speaker-test/speaker-test.c:454
 #, c-format
 msgid "Unable to set buffer size %lu for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:384
+#: speaker-test/speaker-test.c:460
 #, c-format
 msgid "Periods = %u\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:387
+#: speaker-test/speaker-test.c:463
 #, c-format
 msgid "Unable to set nperiods %u for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:396
+#: speaker-test/speaker-test.c:472
 #, c-format
 msgid "Unable to set hw params for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:402
+#: speaker-test/speaker-test.c:478
 #, c-format
 msgid "was set period_size = %lu\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:403
+#: speaker-test/speaker-test.c:479
 #, c-format
 msgid "was set buffer_size = %lu\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:405
+#: speaker-test/speaker-test.c:481
 #, c-format
 msgid "buffer to small, could not use\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:418
+#: speaker-test/speaker-test.c:494
 #, c-format
 msgid "Unable to determine current swparams for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:425
+#: speaker-test/speaker-test.c:501
 #, c-format
 msgid "Unable to set start threshold mode for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:432
+#: speaker-test/speaker-test.c:508
 #, c-format
 msgid "Unable to set avail min for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:439
+#: speaker-test/speaker-test.c:515
 #, c-format
 msgid "Unable to set sw params for playback: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:454
+#: speaker-test/speaker-test.c:530
 #, c-format
 msgid "Can't recovery from underrun, prepare failed: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:465
+#: speaker-test/speaker-test.c:541
 #, c-format
 msgid "Can't recovery from suspend, prepare failed: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:529 speaker-test/speaker-test.c:926
+#: speaker-test/speaker-test.c:605 speaker-test/speaker-test.c:1025
 #, c-format
 msgid "No enough memory\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:534
+#: speaker-test/speaker-test.c:610
 #, c-format
 msgid "Cannot open WAV file %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:538 speaker-test/speaker-test.c:567
+#: speaker-test/speaker-test.c:614 speaker-test/speaker-test.c:643
 #, c-format
 msgid "Invalid WAV file %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:543
+#: speaker-test/speaker-test.c:619
 #, c-format
 msgid "Not a WAV file: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:547
+#: speaker-test/speaker-test.c:623
 #, c-format
 msgid "Unsupported WAV format %d for %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:552
+#: speaker-test/speaker-test.c:628
 #, c-format
 msgid "%s is not a mono stream (%d channels)\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:557
+#: speaker-test/speaker-test.c:633
 #, c-format
 msgid "Sample rate doesn't match (%d) for %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:562
+#: speaker-test/speaker-test.c:638
 #, c-format
 msgid "Unsupported sample format bits %d for %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:612
+#: speaker-test/speaker-test.c:688
 #, c-format
 msgid "Undefined channel %d\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:663
+#: speaker-test/speaker-test.c:739
 #, c-format
 msgid "Write error: %d,%s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:665
+#: speaker-test/speaker-test.c:741
 #, c-format
 msgid "xrun_recovery failed: %d,%s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:723
+#: speaker-test/speaker-test.c:803
 #, c-format
 msgid ""
 "Usage: speaker-test [OPTION]... \n"
@@ -1384,72 +1425,72 @@ msgid ""
 "\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:835
+#: speaker-test/speaker-test.c:921
 #, c-format
 msgid "Invalid number of periods %d\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:849 speaker-test/speaker-test.c:853
+#: speaker-test/speaker-test.c:937 speaker-test/speaker-test.c:941
 #, c-format
 msgid "Invalid test type %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:865
+#: speaker-test/speaker-test.c:953
 #, c-format
 msgid "Invalid parameter for -s option.\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:876
+#: speaker-test/speaker-test.c:967
 #, c-format
 msgid "Unknown option '%c'\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:890
+#: speaker-test/speaker-test.c:981
 #, c-format
 msgid "Playback device is %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:891
+#: speaker-test/speaker-test.c:982
 #, c-format
 msgid "Stream parameters are %iHz, %s, %i channels\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:894
+#: speaker-test/speaker-test.c:985
 #, c-format
 msgid "Using 16 octaves of pink noise\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:897
+#: speaker-test/speaker-test.c:988
 #, c-format
 msgid "Sine wave rate is %.4fHz\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:900
+#: speaker-test/speaker-test.c:991
 #, c-format
 msgid "WAV file(s)\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:906
+#: speaker-test/speaker-test.c:997
 #, c-format
 msgid "Playback open error: %d,%s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:911
+#: speaker-test/speaker-test.c:1002
 #, c-format
 msgid "Setting of hwparams failed: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:916
+#: speaker-test/speaker-test.c:1007
 #, c-format
 msgid "Setting of swparams failed: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:957 speaker-test/speaker-test.c:979
+#: speaker-test/speaker-test.c:1056 speaker-test/speaker-test.c:1078
 #, c-format
 msgid "Transfer failed: %s\n"
 msgstr ""
 
-#: speaker-test/speaker-test.c:967
+#: speaker-test/speaker-test.c:1066
 #, c-format
 msgid "Time per period = %lf\n"
 msgstr ""
index ebed5b5..6dfd60c 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index a7864b3..0dd0795 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -5,10 +5,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: alsa-utils 1.0.20\n"
+"Project-Id-Version: alsa-utils 1.0.23\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-31 17:14+0200\n"
-"PO-Revision-Date: 2009-05-24 12:34+0200\n"
+"POT-Creation-Date: 2011-01-31 15:27+0100\n"
+"PO-Revision-Date: 2010-11-09 21:12+0100\n"
 "Last-Translator: Clemens Ladisch <clemens@ladisch.de>\n"
 "Language-Team: German\n"
 "MIME-Version: 1.0\n"
@@ -88,266 +88,266 @@ msgstr "Gerätename:"
 msgid "%s: %s\n"
 msgstr "%s: %s\n"
 
-#: alsamixer/mixer_display.c:95
+#: alsamixer/mixer_display.c:98
 msgid "Card:"
 msgstr "Gerät:"
 
-#: alsamixer/mixer_display.c:96
+#: alsamixer/mixer_display.c:99
 msgid "Chip:"
 msgstr "Chip:"
 
-#: alsamixer/mixer_display.c:97
+#: alsamixer/mixer_display.c:100
 msgid "View:"
 msgstr "Ansicht:"
 
-#: alsamixer/mixer_display.c:98
+#: alsamixer/mixer_display.c:101
 msgid "Item:"
 msgstr "Element:"
 
-#: alsamixer/mixer_display.c:101
+#: alsamixer/mixer_display.c:104
 msgid "F1:  Help"
 msgstr "F1:  Hilfe"
 
-#: alsamixer/mixer_display.c:102
+#: alsamixer/mixer_display.c:105
 msgid "F2:  System information"
 msgstr "F2:  System-Informationen"
 
-#: alsamixer/mixer_display.c:103
+#: alsamixer/mixer_display.c:106
 msgid "F6:  Select sound card"
 msgstr "F6:  Soundkarte auswählen"
 
-#: alsamixer/mixer_display.c:104
+#: alsamixer/mixer_display.c:107
 msgid "Esc: Exit"
 msgstr "Esc: Beenden"
 
-#: alsamixer/mixer_display.c:171
+#: alsamixer/mixer_display.c:174
 msgid "(unplugged)"
 msgstr "(entfernt)"
 
-#: alsamixer/mixer_display.c:189
+#: alsamixer/mixer_display.c:192
 msgid "Playback"
 msgstr "Wiedergabe"
 
-#: alsamixer/mixer_display.c:190
+#: alsamixer/mixer_display.c:193
 msgid "Capture"
 msgstr "Aufnahme"
 
-#: alsamixer/mixer_display.c:191
+#: alsamixer/mixer_display.c:194
 msgid "All"
 msgstr "Alle"
 
-#: alsamixer/mixer_display.c:231
+#: alsamixer/mixer_display.c:234
 msgid "mute"
 msgstr "stumm"
 
-#: alsamixer/mixer_display.c:272 alsamixer/mixer_display.c:282
+#: alsamixer/mixer_display.c:275 alsamixer/mixer_display.c:285
 msgid "dB gain:"
 msgstr "dB-Änderung:"
 
-#: alsamixer/mixer_display.c:282
+#: alsamixer/mixer_display.c:285
 #, c-format
 msgid " [%s %s, %s]"
 msgstr " [%s %s; %s]"
 
-#: alsamixer/mixer_display.c:291 alsamixer/mixer_display.c:297
-#: alsamixer/mixer_display.c:303 alsamixer/mixer_display.c:309
+#: alsamixer/mixer_display.c:294 alsamixer/mixer_display.c:300
+#: alsamixer/mixer_display.c:306 alsamixer/mixer_display.c:312
 msgid "Off"
 msgstr "Aus"
 
-#: alsamixer/mixer_display.c:297 alsamixer/mixer_display.c:309
+#: alsamixer/mixer_display.c:300 alsamixer/mixer_display.c:312
 msgid "On"
 msgstr "An"
 
-#: alsamixer/mixer_display.c:360
+#: alsamixer/mixer_display.c:363
 msgid "The sound device was unplugged."
 msgstr "Das Gerät wurde entfernt."
 
-#: alsamixer/mixer_display.c:361
+#: alsamixer/mixer_display.c:364
 msgid "Press F6 to select another sound card."
 msgstr "Drücken Sie F6, um eine andere Soundkarte auszuwählen."
 
-#: alsamixer/mixer_display.c:376
+#: alsamixer/mixer_display.c:379
 msgid "This sound device does not have any playback controls."
 msgstr "Dieses Gerät hat keine Wiedergabe-Regler."
 
-#: alsamixer/mixer_display.c:378
+#: alsamixer/mixer_display.c:381
 msgid "This sound device does not have any capture controls."
 msgstr "Dieses Gerät hat keine Aufnahme-Regler."
 
-#: alsamixer/mixer_display.c:380
+#: alsamixer/mixer_display.c:383
 msgid "This sound device does not have any controls."
 msgstr "Dieses Gerät hat keine Regler."
 
 #. TRANSLATORS: playback on; one character
-#: alsamixer/mixer_display.c:524 alsamixer/mixer_display.c:529
+#: alsamixer/mixer_display.c:516 alsamixer/mixer_display.c:521
 msgid "O"
 msgstr "O"
 
 #. TRANSLATORS: playback muted; one character
-#: alsamixer/mixer_display.c:526 alsamixer/mixer_display.c:530
+#: alsamixer/mixer_display.c:518 alsamixer/mixer_display.c:522
 msgid "M"
 msgstr "M"
 
 #. TRANSLATORS: "left"; no more than two characters
-#: alsamixer/mixer_display.c:544
+#: alsamixer/mixer_display.c:536
 msgid "L"
 msgstr "L"
 
 #. TRANSLATORS: "right"; no more than two characters
-#: alsamixer/mixer_display.c:548
+#: alsamixer/mixer_display.c:540
 msgid "R"
 msgstr "R"
 
 #. TRANSLATORS: no more than eight characters
-#: alsamixer/mixer_display.c:550
+#: alsamixer/mixer_display.c:542
 msgid "CAPTURE"
 msgstr "AUFNAHME"
 
-#: alsamixer/mixer_display.c:600
+#: alsamixer/mixer_display.c:592
 msgid "Front"
 msgstr "Vorne"
 
-#: alsamixer/mixer_display.c:603
+#: alsamixer/mixer_display.c:595
 msgid "Rear"
 msgstr "Hinten"
 
-#: alsamixer/mixer_display.c:606 speaker-test/speaker-test.c:106
+#: alsamixer/mixer_display.c:598 speaker-test/speaker-test.c:108
 msgid "Center"
 msgstr "Mitte"
 
-#: alsamixer/mixer_display.c:609
+#: alsamixer/mixer_display.c:601
 msgid "Woofer"
 msgstr "Bass"
 
-#: alsamixer/mixer_display.c:612
+#: alsamixer/mixer_display.c:604
 msgid "Side"
 msgstr "Seiten"
 
-#: alsamixer/mixer_widget.c:83 alsamixer/mixer_widget.c:88
+#: alsamixer/mixer_widget.c:84 alsamixer/mixer_widget.c:89
 msgid "cannot open mixer"
 msgstr "Fehler beim Öffen des Mixer-Gerätes"
 
-#: alsamixer/mixer_widget.c:94 alsamixer/mixer_widget.c:171
+#: alsamixer/mixer_widget.c:95 alsamixer/mixer_widget.c:172
 msgid "cannot load mixer controls"
 msgstr "Fehler beim Laden der Mixer-Regler"
 
-#: alsamixer/mixer_widget.c:161
+#: alsamixer/mixer_widget.c:162
 #, c-format
 msgid "Cannot open mixer device '%s'."
 msgstr "Fehler beim Öffnen des Mixer-Gerätes '%s'."
 
-#: alsamixer/mixer_widget.c:182
+#: alsamixer/mixer_widget.c:183
 msgid "Esc     Exit"
 msgstr "Esc     Beenden"
 
-#: alsamixer/mixer_widget.c:183
+#: alsamixer/mixer_widget.c:184
 msgid "F1 ? H  Help"
 msgstr "F1 ? H  Hilfe"
 
-#: alsamixer/mixer_widget.c:184
+#: alsamixer/mixer_widget.c:185
 msgid "F2 /    System information"
 msgstr "F2 /    System-Informationen"
 
-#: alsamixer/mixer_widget.c:185
+#: alsamixer/mixer_widget.c:186
 msgid "F3      Show playback controls"
 msgstr "F3      Ansicht Wiedergabe-Regler"
 
-#: alsamixer/mixer_widget.c:186
+#: alsamixer/mixer_widget.c:187
 msgid "F4      Show capture controls"
 msgstr "F4      Ansicht Aufnahme-Regler"
 
-#: alsamixer/mixer_widget.c:187
+#: alsamixer/mixer_widget.c:188
 msgid "F5      Show all controls"
 msgstr "F5      Ansicht alle Regler"
 
-#: alsamixer/mixer_widget.c:188
+#: alsamixer/mixer_widget.c:189
 msgid "Tab     Toggle view mode (F3/F4/F5)"
 msgstr "Tab     Ansichts-Modus umschalten (F3/F4/F5)"
 
-#: alsamixer/mixer_widget.c:189
+#: alsamixer/mixer_widget.c:190
 msgid "F6 S    Select sound card"
 msgstr "F6 S    Soundkarte auswählen"
 
-#: alsamixer/mixer_widget.c:190
+#: alsamixer/mixer_widget.c:191
 msgid "L       Redraw screen"
 msgstr "L       Bildschirm neu darstellen"
 
-#: alsamixer/mixer_widget.c:192
+#: alsamixer/mixer_widget.c:193
 msgid "Left    Move to the previous control"
 msgstr "Links   gehe zum vorherigen Regler"
 
-#: alsamixer/mixer_widget.c:193
+#: alsamixer/mixer_widget.c:194
 msgid "Right   Move to the next control"
 msgstr "Rechts  gehe zum nächsten Regler"
 
-#: alsamixer/mixer_widget.c:195
+#: alsamixer/mixer_widget.c:196
 msgid "Up/Down    Change volume"
 msgstr "Oben/Unten  Lautstärke ändern"
 
-#: alsamixer/mixer_widget.c:196
+#: alsamixer/mixer_widget.c:197
 msgid "+ -        Change volume"
 msgstr "+ -         Lautstärke ändern"
 
-#: alsamixer/mixer_widget.c:197
+#: alsamixer/mixer_widget.c:198
 msgid "Page Up/Dn Change volume in big steps"
 msgstr "Bild ^/v    Lautstärke in großen Schritten ändern"
 
-#: alsamixer/mixer_widget.c:198
+#: alsamixer/mixer_widget.c:199
 msgid "End        Set volume to 0%"
 msgstr "Ende        Lautstärke auf 0% setzen"
 
-#: alsamixer/mixer_widget.c:199
+#: alsamixer/mixer_widget.c:200
 msgid "0-9        Set volume to 0%-90%"
 msgstr "0-9         Lautstärke auf 0%-90% setzen"
 
-#: alsamixer/mixer_widget.c:200
+#: alsamixer/mixer_widget.c:201
 msgid "Q W E      Increase left/both/right volumes"
 msgstr "Q W E       linke/beide/rechte Lautstärke erhöhen"
 
 #. TRANSLATORS: or Y instead of Z
-#: alsamixer/mixer_widget.c:202
+#: alsamixer/mixer_widget.c:203
 msgid "Z X C      Decrease left/both/right volumes"
 msgstr "Y X C       linke/beide/rechte Lautstärke verringern"
 
-#: alsamixer/mixer_widget.c:203
+#: alsamixer/mixer_widget.c:204
 msgid "B          Balance left and right volumes"
 msgstr "B           linke und rechte Lautstärke angleichen"
 
-#: alsamixer/mixer_widget.c:205
+#: alsamixer/mixer_widget.c:206
 msgid "M          Toggle mute"
 msgstr "M           stumm umschalten"
 
 #. TRANSLATORS: or , .
-#: alsamixer/mixer_widget.c:207
+#: alsamixer/mixer_widget.c:208
 msgid "< >        Toggle left/right mute"
 msgstr ", .         stumm links/rechts umschalten"
 
-#: alsamixer/mixer_widget.c:209
+#: alsamixer/mixer_widget.c:210
 msgid "Space      Toggle capture"
 msgstr "Leertaste   Aufnahme umschalten"
 
 #. TRANSLATORS: or Insert Delete
-#: alsamixer/mixer_widget.c:211
+#: alsamixer/mixer_widget.c:212
 msgid "; '        Toggle left/right capture"
 msgstr "Einfg Entf  Aufnahme links/rechts umschalten"
 
-#: alsamixer/mixer_widget.c:213
+#: alsamixer/mixer_widget.c:214
 msgid "Authors:"
 msgstr "Autoren:"
 
-#: alsamixer/mixer_widget.c:214
-msgid "  Tim Janik <timj@gtk.org>"
-msgstr "  Tim Janik <tim@gtk.org>"
-
 #: alsamixer/mixer_widget.c:215
+msgid "  Tim Janik"
+msgstr "  Tim Janik"
+
+#: alsamixer/mixer_widget.c:216
 msgid "  Jaroslav Kysela <perex@perex.cz>"
 msgstr "  Jaroslav Kysela <perex@perex.cz>"
 
-#: alsamixer/mixer_widget.c:216
+#: alsamixer/mixer_widget.c:217
 msgid "  Clemens Ladisch <clemens@ladisch.de>"
 msgstr "  Clemens Ladisch <clemens@ladisch.de>"
 
-#: alsamixer/mixer_widget.c:218
+#: alsamixer/mixer_widget.c:219
 msgid "Help"
 msgstr "Hilfe"
 
@@ -364,23 +364,23 @@ msgstr "Fehler"
 msgid "Cannot open file \"%s\"."
 msgstr "Fehler beim Öffnen der Datei \"%s\"."
 
-#: aplay/aplay.c:139
+#: aplay/aplay.c:152
 msgid "raw data"
 msgstr "Rohdaten"
 
-#: aplay/aplay.c:140
+#: aplay/aplay.c:153
 msgid "VOC"
 msgstr "VOC"
 
-#: aplay/aplay.c:142
+#: aplay/aplay.c:155
 msgid "WAVE"
 msgstr "WAVE"
 
-#: aplay/aplay.c:143
+#: aplay/aplay.c:156
 msgid "Sparc Audio"
 msgstr "Sparc-Audio"
 
-#: aplay/aplay.c:164
+#: aplay/aplay.c:177
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -419,6 +419,11 @@ msgid ""
 "                        expression for validation is: coef * (buffer_size / "
 "2)\n"
 "    --test-nowait       do not wait for ring buffer - eats whole CPU\n"
+"    --max-file-time=#   start another output file when the old file has "
+"recorded\n"
+"                        for this many seconds\n"
+"    --process-id-file   write the process ID here\n"
+"    --use-strftime      apply the strftime facility to the output file name\n"
 msgstr ""
 "Verwendung: %s [Option]... [Datei]...\n"
 "\n"
@@ -456,13 +461,16 @@ msgstr ""
 "2)\n"
 "    --test-nowait       kein Warten auf Ringpuffer; beansprucht volle CPU-"
 "Leistung\n"
+"    --max-file-time=#   erzeuge mehrere Dateien; Wechsel nach # Sekunden\n"
+"    --process-id-file=# schreibe Prozess-ID in diese Datei\n"
+"    --use-strftime      formatiere Dateiname mit strftime; %%v=Dateinummer\n"
 
-#: aplay/aplay.c:199 speaker-test/speaker-test.c:740
+#: aplay/aplay.c:216 speaker-test/speaker-test.c:819
 #, c-format
 msgid "Recognized sample formats are:"
 msgstr "Unterstützte Sample-Formate:"
 
-#: aplay/aplay.c:205
+#: aplay/aplay.c:222
 #, c-format
 msgid ""
 "\n"
@@ -471,115 +479,120 @@ msgstr ""
 "\n"
 "Nicht alle davon sind auf jeder Hardware verfügbar.\n"
 
-#: aplay/aplay.c:206
+#: aplay/aplay.c:223
 #, c-format
 msgid "The availabled format shortcuts are:\n"
 msgstr "Unterstütze Format-Abkürzungen:\n"
 
-#: aplay/aplay.c:207
+#: aplay/aplay.c:224
 #, c-format
 msgid "-f cd (16 bit little endian, 44100, stereo)\n"
 msgstr "-f cd (16 Bits, Little Endian, 44100 Hz, stereo)\n"
 
-#: aplay/aplay.c:208
+#: aplay/aplay.c:225
 #, c-format
 msgid "-f cdr (16 bit big endian, 44100, stereo)\n"
 msgstr "-f cdr (16 Bits, Big Endian, 44100 Hz, stereo)\n"
 
-#: aplay/aplay.c:209
+#: aplay/aplay.c:226
 #, c-format
 msgid "-f dat (16 bit little endian, 48000, stereo)\n"
 msgstr "-f dat (16 Bits, Little Endian, 48000 Hz, stereo)\n"
 
-#: aplay/aplay.c:223
+#: aplay/aplay.c:240
 msgid "no soundcards found..."
 msgstr "keine Soundkarten gefunden ..."
 
-#: aplay/aplay.c:226
+#: aplay/aplay.c:243
 #, c-format
 msgid "**** List of %s Hardware Devices ****\n"
 msgstr "**** Liste der Hardware-Geräte (%s) ****\n"
 
-#: aplay/aplay.c:255
+#: aplay/aplay.c:272
 #, c-format
 msgid "card %i: %s [%s], device %i: %s [%s]\n"
 msgstr "Karte %i: %s [%s], Gerät %i: %s [%s]\n"
 
-#: aplay/aplay.c:261
+#: aplay/aplay.c:278
 #, c-format
 msgid "  Subdevices: %i/%i\n"
 msgstr "  Sub-Geräte: %i/%i\n"
 
-#: aplay/aplay.c:268
+#: aplay/aplay.c:285
 #, c-format
 msgid "  Subdevice #%i: %s\n"
 msgstr "  Sub-Gerät #%i: %s\n"
 
-#: aplay/aplay.c:332
+#: aplay/aplay.c:362
 #, c-format
 msgid "Aborted by signal %s...\n"
 msgstr "Abbruch durch Signal %s ...\n"
 
-#: aplay/aplay.c:430
+#: aplay/aplay.c:473
 msgid "command should be named either arecord or aplay"
 msgstr "Befehl sollte arecord oder aplay sein"
 
-#: aplay/aplay.c:469
+#: aplay/aplay.c:512
 #, c-format
 msgid "unrecognized file format %s"
 msgstr "unbekanntes Dateiformat %s"
 
-#: aplay/aplay.c:476
+#: aplay/aplay.c:519
 #, c-format
 msgid "value %i for channels is invalid"
 msgstr "Kanalanzahl %i ist ungültig"
 
-#: aplay/aplay.c:495
+#: aplay/aplay.c:538
 #, c-format
 msgid "wrong extended format '%s'"
 msgstr "erweitertes Format '%s' ist ungültig"
 
-#: aplay/aplay.c:506
+#: aplay/aplay.c:549
 #, c-format
 msgid "bad speed value %i"
 msgstr "ungültige Rate %i"
 
-#: aplay/aplay.c:592
+#: aplay/aplay.c:644
 #, c-format
 msgid "Try `%s --help' for more information.\n"
 msgstr "Siehe `%s --help' für mehr Informationen.\n"
 
-#: aplay/aplay.c:608
+#: aplay/aplay.c:660
 #, c-format
 msgid "audio open error: %s"
 msgstr "Fehler beim Öffnen des Gerätes: %s"
 
-#: aplay/aplay.c:613
+#: aplay/aplay.c:665
 #, c-format
 msgid "info error: %s"
 msgstr "Fehler beim Lesen der Geräteinformationen: %s"
 
-#: aplay/aplay.c:620
+#: aplay/aplay.c:672
 #, c-format
 msgid "nonblock setting error: %s"
 msgstr "Fehler beim Setzen des nonblock-Modus: %s"
 
-#: aplay/aplay.c:630 aplay/aplay.c:737 aplay/aplay.c:1092
+#: aplay/aplay.c:682 aplay/aplay.c:806 aplay/aplay.c:1174
 msgid "not enough memory"
 msgstr "nicht genug Speicher"
 
-#: aplay/aplay.c:727
+#: aplay/aplay.c:706
+#, c-format
+msgid "Cannot create process ID file %s: %s"
+msgstr "Fehler beim Schreiben der Prozess-ID-Datei %s: %s"
+
+#: aplay/aplay.c:796
 #, c-format
 msgid "read error (called from line %i)"
 msgstr "Lesefehler (aufgerufen von Zeile %i)"
 
-#: aplay/aplay.c:785
+#: aplay/aplay.c:854
 #, c-format
 msgid "unknown length of 'fmt ' chunk (read %u, should be %u at least)"
 msgstr ""
 "unbekannte Länge des 'fmt '-Blocks (gelesen: %u, sollte mindestens %u sein)"
 
-#: aplay/aplay.c:795
+#: aplay/aplay.c:864
 #, c-format
 msgid ""
 "unknown length of extensible 'fmt ' chunk (read %u, should be %u at least)"
@@ -587,198 +600,230 @@ msgstr ""
 "unbekannte Länge des erweiterten 'fmt '-Blocks (gelesen: %u, sollte "
 "mindestens %u sein)"
 
-#: aplay/aplay.c:800
+#: aplay/aplay.c:869
 msgid "wrong format tag in extensible 'fmt ' chunk"
 msgstr "ungültiger Format-Wert im erweiterten 'fmt '-Block"
 
-#: aplay/aplay.c:807
+#: aplay/aplay.c:876
 #, c-format
 msgid "can't play WAVE-file format 0x%04x which is not PCM or FLOAT encoded"
 msgstr ""
 "kann WAVE-Datei-Format 0x%04x nicht abspielen; ist weder PCM noch FLOAT"
 
-#: aplay/aplay.c:811
+#: aplay/aplay.c:880
 #, c-format
 msgid "can't play WAVE-files with %d tracks"
 msgstr "kann WAVE-Datei mit %d Kanälen nicht abspielen"
 
-#: aplay/aplay.c:819 aplay/aplay.c:919
+#: aplay/aplay.c:888 aplay/aplay.c:988
 #, c-format
 msgid "Warning: format is changed to U8\n"
 msgstr "Warnung: benutztes Format ist U8\n"
 
-#: aplay/aplay.c:825
+#: aplay/aplay.c:894
 #, c-format
 msgid "Warning: format is changed to S16_LE\n"
 msgstr "Warnung: benutztes Format ist S16_LE\n"
 
-#: aplay/aplay.c:833
+#: aplay/aplay.c:902
 #, c-format
 msgid "Warning: format is changed to S24_3LE\n"
 msgstr "Warnung: benutztes Format ist S24_3LE\n"
 
-#: aplay/aplay.c:839
+#: aplay/aplay.c:908
 #, c-format
 msgid "Warning: format is changed to S24_LE\n"
 msgstr "Warnung: benutztes Format ist S24_LE\n"
 
-#: aplay/aplay.c:843
+#: aplay/aplay.c:912
 #, c-format
 msgid ""
 " can't play WAVE-files with sample %d bits in %d bytes wide (%d channels)"
 msgstr ""
 "kann WAVE-Datei mit %d-Bit-Samples in %d Bytes (%d Kanäle) nicht abspielen"
 
-#: aplay/aplay.c:855
+#: aplay/aplay.c:924
 #, c-format
 msgid " can't play WAVE-files with sample %d bits wide"
 msgstr "kann WAVE-Datei mit %d-Bit-Samples nicht abspielen"
 
-#: aplay/aplay.c:913
+#: aplay/aplay.c:982
 #, c-format
 msgid "Warning: format is changed to MU_LAW\n"
 msgstr "Warnung: benutztes Format ist MU_LAW\n"
 
-#: aplay/aplay.c:925
+#: aplay/aplay.c:994
 #, c-format
 msgid "Warning: format is changed to S16_BE\n"
 msgstr "Warnung: benutztes Format ist S16_BE\n"
 
-#: aplay/aplay.c:938 aplay/aplay.c:1768 aplay/aplay.c:1775 aplay/aplay.c:2297
-#: aplay/aplay.c:2309
+#: aplay/aplay.c:1007 aplay/aplay.c:1925 aplay/aplay.c:1932 aplay/aplay.c:2455
+#: aplay/aplay.c:2467
 msgid "read error"
 msgstr "Lesefehler"
 
-#: aplay/aplay.c:957
+#: aplay/aplay.c:1037
 msgid "Broken configuration for this PCM: no configurations available"
 msgstr ""
 "ungültige Konfiguration für dieses Gerät: keine unterstützte Konfiguration"
 
-#: aplay/aplay.c:974
+#: aplay/aplay.c:1054
 msgid "Access type not available"
 msgstr "Zugriffs-Modus nicht unterstützt"
 
-#: aplay/aplay.c:979
+#: aplay/aplay.c:1059
 msgid "Sample format non available"
 msgstr "Sample-Format nicht unterstützt"
 
-#: aplay/aplay.c:984
+#: aplay/aplay.c:1065
 msgid "Channels count non available"
 msgstr "Kanalanzahl nicht unterstützt"
 
-#: aplay/aplay.c:999
+#: aplay/aplay.c:1080
 #, c-format
 msgid "Warning: rate is not accurate (requested = %iHz, got = %iHz)\n"
 msgstr ""
 "Warnung: Rate ist nicht exakt (angefordert: %i Hz, unterstützt: %i Hz)\n"
 
-#: aplay/aplay.c:1005
+#: aplay/aplay.c:1086
 #, c-format
 msgid "         please, try the plug plugin %s\n"
 msgstr "         probieren Sie bitte das plug-Plugin: %s\n"
 
-#: aplay/aplay.c:1041
+#: aplay/aplay.c:1123
 msgid "Unable to install hw params:"
 msgstr "Fehler beim Setzen der Hardware-Parameter:"
 
-#: aplay/aplay.c:1048
+#: aplay/aplay.c:1130
 #, c-format
 msgid "Can't use period equal to buffer size (%lu == %lu)"
 msgstr "Periode gleich der Puffer-Größe wird nicht unterstützt (%lu == %lu)"
 
-#: aplay/aplay.c:1079
+#: aplay/aplay.c:1161
 msgid "unable to install sw params:"
 msgstr "Fehler beim Setzen der Software-Parameter:"
 
-#: aplay/aplay.c:1154
+#: aplay/aplay.c:1192
+#, c-format
+msgid "snd_pcm_mmap_begin problem: %s"
+msgstr "Fehler bei snd_pcm_mmap_begin: %s"
+
+#: aplay/aplay.c:1215
+#, c-format
+msgid "stdin O_NONBLOCK flag setup failed\n"
+msgstr "Fehler beim Setzen von O_NONBLOCK in stdin\n"
+
+#: aplay/aplay.c:1237
+#, c-format
+msgid "\rPAUSE command ignored (no hw support)\n"
+msgstr "\rPause-Kommando ignoriert (keine HW-Unterstützung)\n"
+
+#: aplay/aplay.c:1242
+#, c-format
+msgid "pause push error: %s"
+msgstr "Fehler beim Pausieren: %s"
+
+#: aplay/aplay.c:1251
+#, c-format
+msgid "pause release error: %s"
+msgstr "Fehler beim Beenden der Pause: %s"
+
+#: aplay/aplay.c:1265
+#, c-format
+msgid ""
+"\r=== PAUSE ===                                                            "
+msgstr ""
+"\r=== PAUSE ===                                                            "
+
+#: aplay/aplay.c:1307
 #, c-format
 msgid "status error: %s"
 msgstr "Status-Fehler: %s"
 
-#: aplay/aplay.c:1164 aplay/aplay.c:1175
+#: aplay/aplay.c:1317 aplay/aplay.c:1328
 #, c-format
 msgid "%s!!! (at least %.3f ms long)\n"
 msgstr "%s!!! (mindestens %.3f ms)\n"
 
-#: aplay/aplay.c:1165 aplay/aplay.c:1168 aplay/aplay.c:1176
+#: aplay/aplay.c:1318 aplay/aplay.c:1321 aplay/aplay.c:1329
 msgid "underrun"
 msgstr "Unterlauf"
 
-#: aplay/aplay.c:1165 aplay/aplay.c:1176
+#: aplay/aplay.c:1318 aplay/aplay.c:1329
 msgid "overrun"
 msgstr "Überlauf"
 
-#: aplay/aplay.c:1180
+#: aplay/aplay.c:1333
 #, c-format
 msgid "Status:\n"
 msgstr "Status:\n"
 
-#: aplay/aplay.c:1184
+#: aplay/aplay.c:1337
 #, c-format
 msgid "xrun: prepare error: %s"
 msgstr "Unter-/Überlauf: Fehler beim Re-Initialisieren des Gerätes: %s"
 
-#: aplay/aplay.c:1190
+#: aplay/aplay.c:1343
 #, c-format
 msgid "Status(DRAINING):\n"
 msgstr "Status (DRAINING):\n"
 
-#: aplay/aplay.c:1194
+#: aplay/aplay.c:1347
 #, c-format
 msgid "capture stream format change? attempting recover...\n"
 msgstr "Format-Wechsel der Aufnahme-Daten? Versuche Wiederherstellung ...\n"
 
-#: aplay/aplay.c:1196
+#: aplay/aplay.c:1349
 #, c-format
 msgid "xrun(DRAINING): prepare error: %s"
 msgstr "XRUN (DRAINING): Fehler beim Re-Initialisieren des Gerätes: %s"
 
-#: aplay/aplay.c:1203
+#: aplay/aplay.c:1356
 #, c-format
 msgid "Status(R/W):\n"
 msgstr "Status (R/W):\n"
 
-#: aplay/aplay.c:1206
+#: aplay/aplay.c:1359
 #, c-format
 msgid "read/write error, state = %s"
 msgstr "Lese-/Schreibfehler, Status = %s"
 
-#: aplay/aplay.c:1216
+#: aplay/aplay.c:1369
 #, c-format
 msgid "Suspended. Trying resume. "
 msgstr "Ruhezustand. Versuche, aufzuwecken. "
 
-#: aplay/aplay.c:1221
+#: aplay/aplay.c:1374
 #, c-format
 msgid "Failed. Restarting stream. "
 msgstr "Fehlgeschlagen. Re-Initialisierung. "
 
-#: aplay/aplay.c:1223
+#: aplay/aplay.c:1376
 #, c-format
 msgid "suspend: prepare error: %s"
 msgstr "Ruhezustand: Fehler beim Re-Initialisieren: %s"
 
-#: aplay/aplay.c:1228
+#: aplay/aplay.c:1381
 #, c-format
 msgid "Done.\n"
 msgstr "Fertig.\n"
 
-#: aplay/aplay.c:1250
+#: aplay/aplay.c:1403
 #, c-format
 msgid " !clip  "
 msgstr " !clip  "
 
-#: aplay/aplay.c:1397
+#: aplay/aplay.c:1550
 #, c-format
 msgid "Unsupported bit size %d.\n"
 msgstr "%d-Bit-Samples werden nicht unterstützt.\n"
 
-#: aplay/aplay.c:1431
+#: aplay/aplay.c:1584
 #, c-format
 msgid "Max peak (%li samples): 0x%08x "
 msgstr "Höchstwert (%li Samples): 0x%08x "
 
-#: aplay/aplay.c:1465
+#: aplay/aplay.c:1618
 #, c-format
 msgid ""
 "Suspicious buffer position (%li total): avail = %li, delay = %li, buffer = %"
@@ -787,108 +832,108 @@ msgstr ""
 "verdächtige Puffer-Position (total %li): avail = %li, delay = %li, buffer = %"
 "li\n"
 
-#: aplay/aplay.c:1528
+#: aplay/aplay.c:1682
 #, c-format
 msgid "write error: %s"
 msgstr "Schreibfehler: %s"
 
-#: aplay/aplay.c:1574
+#: aplay/aplay.c:1729
 #, c-format
 msgid "writev error: %s"
 msgstr "Vektor-Schreib-Fehler: %s"
 
-#: aplay/aplay.c:1617
+#: aplay/aplay.c:1773
 #, c-format
 msgid "read error: %s"
 msgstr "Lesefehler: %s"
 
-#: aplay/aplay.c:1660
+#: aplay/aplay.c:1817
 #, c-format
 msgid "readv error: %s"
 msgstr "Vektor-Lese-Fehler: %s"
 
-#: aplay/aplay.c:1708
+#: aplay/aplay.c:1865
 msgid "can't allocate buffer for silence"
 msgstr "nicht genug Speicher für Stille-Block"
 
-#: aplay/aplay.c:1717 aplay/aplay.c:1943 aplay/aplay.c:1948 aplay/aplay.c:1995
-#: aplay/aplay.c:2004 aplay/aplay.c:2011 aplay/aplay.c:2021 aplay/aplay.c:2027
-#: aplay/aplay.c:2099 aplay/aplay.c:2129 aplay/aplay.c:2143
+#: aplay/aplay.c:1874 aplay/aplay.c:2100 aplay/aplay.c:2105 aplay/aplay.c:2152
+#: aplay/aplay.c:2161 aplay/aplay.c:2168 aplay/aplay.c:2178 aplay/aplay.c:2184
+#: aplay/aplay.c:2256 aplay/aplay.c:2286 aplay/aplay.c:2300
 msgid "write error"
 msgstr "Schreibfehler"
 
-#: aplay/aplay.c:1730
+#: aplay/aplay.c:1887
 #, c-format
 msgid "voc_pcm_flush - silence error"
 msgstr "voc_pcm_flush - Fehler in set_silence"
 
-#: aplay/aplay.c:1733
+#: aplay/aplay.c:1890
 msgid "voc_pcm_flush error"
 msgstr "Schreibfehler"
 
-#: aplay/aplay.c:1759
+#: aplay/aplay.c:1916
 msgid "malloc error"
 msgstr "nicht genug Speicher"
 
-#: aplay/aplay.c:1763
+#: aplay/aplay.c:1920
 #, c-format
 msgid "Playing Creative Labs Channel file '%s'...\n"
 msgstr "Spiele Creative Labs Channel-Datei '%s'...\n"
 
-#: aplay/aplay.c:1831 aplay/aplay.c:1923
+#: aplay/aplay.c:1988 aplay/aplay.c:2080
 msgid "can't play packed .voc files"
 msgstr "kann komprimierte .voc-Dateien nicht abspielen"
 
-#: aplay/aplay.c:1883
+#: aplay/aplay.c:2040
 #, c-format
 msgid "can't play loops; %s isn't seekable\n"
 msgstr ""
 "kann Schleife nicht abspielen; Dateiposition in %s ist nicht änderbar\n"
 
-#: aplay/aplay.c:1932
+#: aplay/aplay.c:2089
 #, c-format
 msgid "unknown blocktype %d. terminate."
 msgstr "Unbekannter Block-Typ %d. Abbruch."
 
-#: aplay/aplay.c:2063
+#: aplay/aplay.c:2220
 #, c-format
 msgid "Wave doesn't support %s format..."
 msgstr "Format %s wird in WAVE nicht unterstützt ..."
 
-#: aplay/aplay.c:2123
+#: aplay/aplay.c:2280
 #, c-format
 msgid "Sparc Audio doesn't support %s format..."
 msgstr "Format %s wird in Sparc-Audio nicht unterstützt ..."
 
-#: aplay/aplay.c:2204
+#: aplay/aplay.c:2361
 msgid "Playing"
 msgstr "Wiedergabe:"
 
-#: aplay/aplay.c:2204
+#: aplay/aplay.c:2361
 msgid "Recording"
 msgstr "Aufnahme:"
 
-#: aplay/aplay.c:2208
+#: aplay/aplay.c:2365
 #, c-format
 msgid "Rate %d Hz, "
 msgstr "Rate: %d Hz, "
 
-#: aplay/aplay.c:2210
+#: aplay/aplay.c:2367
 #, c-format
 msgid "Mono"
 msgstr "mono"
 
-#: aplay/aplay.c:2212
+#: aplay/aplay.c:2369
 #, c-format
 msgid "Stereo"
 msgstr "stereo"
 
-#: aplay/aplay.c:2214
+#: aplay/aplay.c:2371
 #, c-format
 msgid "Channels %i"
 msgstr "%i Kanäle"
 
-#: aplay/aplay.c:2573 aplay/aplay.c:2626
+#: aplay/aplay.c:2882 aplay/aplay.c:2935
 #, c-format
 msgid "You need to specify %d files"
 msgstr "Es werden %d Dateien benötigt."
@@ -999,47 +1044,47 @@ msgstr "User"
 msgid "kernel"
 msgstr "Kernel"
 
-#: seq/aconnect/aconnect.c:326
+#: seq/aconnect/aconnect.c:307
 #, c-format
 msgid "can't open sequencer\n"
 msgstr "Fehler beim Öffnen des Sequenzers\n"
 
-#: seq/aconnect/aconnect.c:354
+#: seq/aconnect/aconnect.c:335
 #, c-format
 msgid "can't get client id\n"
 msgstr "Fehler beim Lesen der Client-ID\n"
 
-#: seq/aconnect/aconnect.c:361
+#: seq/aconnect/aconnect.c:342
 #, c-format
 msgid "can't set client info\n"
 msgstr "Fehler beim Setzen des Client-Namens\n"
 
-#: seq/aconnect/aconnect.c:368
+#: seq/aconnect/aconnect.c:349
 #, c-format
 msgid "invalid sender address %s\n"
 msgstr "ungültige Sender-Adresse %s\n"
 
-#: seq/aconnect/aconnect.c:373 seq/aseqnet/aseqnet.c:290
+#: seq/aconnect/aconnect.c:354 seq/aseqnet/aseqnet.c:290
 #, c-format
 msgid "invalid destination address %s\n"
 msgstr "ungültige Ziel-Adresse %s\n"
 
-#: seq/aconnect/aconnect.c:387
+#: seq/aconnect/aconnect.c:368
 #, c-format
 msgid "No subscription is found\n"
 msgstr "keine Verbindung gefunden\n"
 
-#: seq/aconnect/aconnect.c:392
+#: seq/aconnect/aconnect.c:373
 #, c-format
 msgid "Disconnection failed (%s)\n"
 msgstr "Verbindungs-Trennung fehlgeschlagen (%s)\n"
 
-#: seq/aconnect/aconnect.c:398
+#: seq/aconnect/aconnect.c:379
 #, c-format
 msgid "Connection is already subscribed\n"
 msgstr "Verbindung ist bereits vorhanden\n"
 
-#: seq/aconnect/aconnect.c:403
+#: seq/aconnect/aconnect.c:384
 #, c-format
 msgid "Connection failed (%s)\n"
 msgstr "Verbindung fehlgeschlagen (%s)\n"
@@ -1169,262 +1214,262 @@ msgstr "Channel %2d: Note Off event: %5d\n"
 msgid "disconnected\n"
 msgstr "Verbindung getrennt\n"
 
-#: speaker-test/speaker-test.c:102
+#: speaker-test/speaker-test.c:104
 msgid "Front Left"
 msgstr "Vorne links"
 
-#: speaker-test/speaker-test.c:103
+#: speaker-test/speaker-test.c:105
 msgid "Front Right"
 msgstr "Vorne rechts"
 
-#: speaker-test/speaker-test.c:104
+#: speaker-test/speaker-test.c:106
 msgid "Rear Left"
 msgstr "Hinten links"
 
-#: speaker-test/speaker-test.c:105
+#: speaker-test/speaker-test.c:107
 msgid "Rear Right"
 msgstr "Hinten rechts"
 
-#: speaker-test/speaker-test.c:107
+#: speaker-test/speaker-test.c:109
 msgid "LFE"
 msgstr "Bass"
 
-#: speaker-test/speaker-test.c:108
+#: speaker-test/speaker-test.c:110
 msgid "Side Left"
 msgstr "Seitlich links"
 
-#: speaker-test/speaker-test.c:109
+#: speaker-test/speaker-test.c:111
 msgid "Side Right"
 msgstr "Seitlich rechts"
 
-#: speaker-test/speaker-test.c:110
+#: speaker-test/speaker-test.c:112
 msgid "Channel 9"
 msgstr "Kanal 9"
 
-#: speaker-test/speaker-test.c:111
+#: speaker-test/speaker-test.c:113
 msgid "Channel 10"
 msgstr "Kanal 10"
 
-#: speaker-test/speaker-test.c:112
+#: speaker-test/speaker-test.c:114
 msgid "Channel 11"
 msgstr "Kanal 11"
 
-#: speaker-test/speaker-test.c:113
+#: speaker-test/speaker-test.c:115
 msgid "Channel 12"
 msgstr "Kanal 12"
 
-#: speaker-test/speaker-test.c:114
+#: speaker-test/speaker-test.c:116
 msgid "Channel 13"
 msgstr "Kanal 13"
 
-#: speaker-test/speaker-test.c:115
+#: speaker-test/speaker-test.c:117
 msgid "Channel 14"
 msgstr "Kanal 14"
 
-#: speaker-test/speaker-test.c:116
+#: speaker-test/speaker-test.c:118
 msgid "Channel 15"
 msgstr "Kanal 15"
 
-#: speaker-test/speaker-test.c:117
+#: speaker-test/speaker-test.c:119
 msgid "Channel 16"
 msgstr "Kanal 16"
 
-#: speaker-test/speaker-test.c:307
+#: speaker-test/speaker-test.c:383
 #, c-format
 msgid "Broken configuration for playback: no configurations available: %s\n"
 msgstr "Ungültige Konfiguration: keine unterstützte Konfiguration: %s\n"
 
-#: speaker-test/speaker-test.c:314
+#: speaker-test/speaker-test.c:390
 #, c-format
 msgid "Access type not available for playback: %s\n"
 msgstr "Zugriffsmodus nicht unterstützt: %s\n"
 
-#: speaker-test/speaker-test.c:321
+#: speaker-test/speaker-test.c:397
 #, c-format
 msgid "Sample format not available for playback: %s\n"
 msgstr "Sample-Format nicht unterstützt: %s\n"
 
-#: speaker-test/speaker-test.c:328
+#: speaker-test/speaker-test.c:404
 #, c-format
 msgid "Channels count (%i) not available for playbacks: %s\n"
 msgstr "Kanal-Anzahl %i nicht unterstützt: %s\n"
 
-#: speaker-test/speaker-test.c:336
+#: speaker-test/speaker-test.c:412
 #, c-format
 msgid "Rate %iHz not available for playback: %s\n"
 msgstr "Rate %i Hz nicht unterstützt: %s\n"
 
-#: speaker-test/speaker-test.c:341
+#: speaker-test/speaker-test.c:417
 #, c-format
 msgid "Rate doesn't match (requested %iHz, get %iHz, err %d)\n"
 msgstr ""
 "Rate ist nicht exakt (angefordert: %i Hz, unterstützt: %i Hz, Fehlercode %"
 "d)\n"
 
-#: speaker-test/speaker-test.c:345
+#: speaker-test/speaker-test.c:421
 #, c-format
 msgid "Rate set to %iHz (requested %iHz)\n"
 msgstr "Rate ist %i Hz (angefordert: %i Hz)\n"
 
-#: speaker-test/speaker-test.c:351
+#: speaker-test/speaker-test.c:427
 #, c-format
 msgid "Buffer size range from %lu to %lu\n"
 msgstr "Puffergröße von %lu bis %lu\n"
 
-#: speaker-test/speaker-test.c:352
+#: speaker-test/speaker-test.c:428
 #, c-format
 msgid "Period size range from %lu to %lu\n"
 msgstr "Periodengröße von %lu bis %lu\n"
 
-#: speaker-test/speaker-test.c:354
+#: speaker-test/speaker-test.c:430
 #, c-format
 msgid "Requested period time %u us\n"
 msgstr "Angeforderte Periodenzeit %u µs\n"
 
-#: speaker-test/speaker-test.c:357
+#: speaker-test/speaker-test.c:433
 #, c-format
 msgid "Unable to set period time %u us for playback: %s\n"
 msgstr "Fehler beim Setzen der Periodenzeit %u µs: %s\n"
 
-#: speaker-test/speaker-test.c:363
+#: speaker-test/speaker-test.c:439
 #, c-format
 msgid "Requested buffer time %u us\n"
 msgstr "Angeforderte Pufferlänge %u µs\n"
 
-#: speaker-test/speaker-test.c:366
+#: speaker-test/speaker-test.c:442
 #, c-format
 msgid "Unable to set buffer time %u us for playback: %s\n"
 msgstr "Fehler beim Setzen der Pufferlänge %u µs: %s\n"
 
-#: speaker-test/speaker-test.c:375
+#: speaker-test/speaker-test.c:451
 #, c-format
 msgid "Using max buffer size %lu\n"
 msgstr "Verwende maximale Puffergröße %lu\n"
 
-#: speaker-test/speaker-test.c:378
+#: speaker-test/speaker-test.c:454
 #, c-format
 msgid "Unable to set buffer size %lu for playback: %s\n"
 msgstr "Fehler beim Setzen der Puffergröße %lu: %s\n"
 
-#: speaker-test/speaker-test.c:384
+#: speaker-test/speaker-test.c:460
 #, c-format
 msgid "Periods = %u\n"
 msgstr "Perioden = %u\n"
 
-#: speaker-test/speaker-test.c:387
+#: speaker-test/speaker-test.c:463
 #, c-format
 msgid "Unable to set nperiods %u for playback: %s\n"
 msgstr "Fehler beim Setzen der Periodenanzahl %u: %s\n"
 
-#: speaker-test/speaker-test.c:396
+#: speaker-test/speaker-test.c:472
 #, c-format
 msgid "Unable to set hw params for playback: %s\n"
 msgstr "Fehler beim Setzen der Hardware-Parameter: %s\n"
 
-#: speaker-test/speaker-test.c:402
+#: speaker-test/speaker-test.c:478
 #, c-format
 msgid "was set period_size = %lu\n"
 msgstr "gesetzt: period_size = %lu\n"
 
-#: speaker-test/speaker-test.c:403
+#: speaker-test/speaker-test.c:479
 #, c-format
 msgid "was set buffer_size = %lu\n"
 msgstr "gesetzt: buffer_size = %lu\n"
 
-#: speaker-test/speaker-test.c:405
+#: speaker-test/speaker-test.c:481
 #, c-format
 msgid "buffer to small, could not use\n"
 msgstr "Puffer zu klein, kann nicht benutzt werden\n"
 
-#: speaker-test/speaker-test.c:418
+#: speaker-test/speaker-test.c:494
 #, c-format
 msgid "Unable to determine current swparams for playback: %s\n"
 msgstr "Fehler beim Lesen der Software-Parameter: %s\n"
 
-#: speaker-test/speaker-test.c:425
+#: speaker-test/speaker-test.c:501
 #, c-format
 msgid "Unable to set start threshold mode for playback: %s\n"
 msgstr "Fehler beim Setzen des Start-Schwellenwertes: %s\n"
 
-#: speaker-test/speaker-test.c:432
+#: speaker-test/speaker-test.c:508
 #, c-format
 msgid "Unable to set avail min for playback: %s\n"
 msgstr "Fehler beim Setzen des Mindest-verfügbar-Wertes: %s\n"
 
-#: speaker-test/speaker-test.c:439
+#: speaker-test/speaker-test.c:515
 #, c-format
 msgid "Unable to set sw params for playback: %s\n"
 msgstr "Fehler beim Setzen der Software-Parameter: %s\n"
 
-#: speaker-test/speaker-test.c:454
+#: speaker-test/speaker-test.c:530
 #, c-format
 msgid "Can't recovery from underrun, prepare failed: %s\n"
 msgstr ""
 "Fehler bei Unterlauf-Behandlung, Re-Initialisierung fehlgeschlagen: %s\n"
 
-#: speaker-test/speaker-test.c:465
+#: speaker-test/speaker-test.c:541
 #, c-format
 msgid "Can't recovery from suspend, prepare failed: %s\n"
 msgstr ""
 "Fehler beim Aufwachen aus dem Ruhezustand, Re-Initialisierung "
 "fehlgeschlagen: %s\n"
 
-#: speaker-test/speaker-test.c:529 speaker-test/speaker-test.c:926
+#: speaker-test/speaker-test.c:605 speaker-test/speaker-test.c:1025
 #, c-format
 msgid "No enough memory\n"
 msgstr "Nicht genug Speicher\n"
 
-#: speaker-test/speaker-test.c:534
+#: speaker-test/speaker-test.c:610
 #, c-format
 msgid "Cannot open WAV file %s\n"
 msgstr "Kann WAV-Datei %s nicht öffnen\n"
 
-#: speaker-test/speaker-test.c:538 speaker-test/speaker-test.c:567
+#: speaker-test/speaker-test.c:614 speaker-test/speaker-test.c:643
 #, c-format
 msgid "Invalid WAV file %s\n"
 msgstr "Ungültige WAV-Datei %s\n"
 
-#: speaker-test/speaker-test.c:543
+#: speaker-test/speaker-test.c:619
 #, c-format
 msgid "Not a WAV file: %s\n"
 msgstr "Keine WAV-Datei: %s\n"
 
-#: speaker-test/speaker-test.c:547
+#: speaker-test/speaker-test.c:623
 #, c-format
 msgid "Unsupported WAV format %d for %s\n"
 msgstr "Nicht unterstütztes WAV-Format %d in %s\n"
 
-#: speaker-test/speaker-test.c:552
+#: speaker-test/speaker-test.c:628
 #, c-format
 msgid "%s is not a mono stream (%d channels)\n"
 msgstr "%s ist keine Mono-Datei (%d Kanäle)\n"
 
-#: speaker-test/speaker-test.c:557
+#: speaker-test/speaker-test.c:633
 #, c-format
 msgid "Sample rate doesn't match (%d) for %s\n"
 msgstr "Sample-Rate (%d) stimmt nicht überein in %s\n"
 
-#: speaker-test/speaker-test.c:562
+#: speaker-test/speaker-test.c:638
 #, c-format
 msgid "Unsupported sample format bits %d for %s\n"
 msgstr "Nicht unterstütztes Sample-Format mit %d Bits in %s\n"
 
-#: speaker-test/speaker-test.c:612
+#: speaker-test/speaker-test.c:688
 #, c-format
 msgid "Undefined channel %d\n"
 msgstr "Kanal %d nicht definiert\n"
 
-#: speaker-test/speaker-test.c:663
+#: speaker-test/speaker-test.c:739
 #, c-format
 msgid "Write error: %d,%s\n"
 msgstr "Schreibfehler: %d, %s\n"
 
-#: speaker-test/speaker-test.c:665
+#: speaker-test/speaker-test.c:741
 #, c-format
 msgid "xrun_recovery failed: %d,%s\n"
 msgstr "xrun_recovery fehlgeschlagen: %d, %s\n"
 
-#: speaker-test/speaker-test.c:723
+#: speaker-test/speaker-test.c:803
 #, c-format
 msgid ""
 "Usage: speaker-test [OPTION]... \n"
@@ -1461,72 +1506,72 @@ msgstr ""
 "-W,--wavdir     benutze Verzeichnis mit darin enthaltenen WAV-Dateien\n"
 "\n"
 
-#: speaker-test/speaker-test.c:835
+#: speaker-test/speaker-test.c:921
 #, c-format
 msgid "Invalid number of periods %d\n"
 msgstr "Ungültige Periodenanzahl %d\n"
 
-#: speaker-test/speaker-test.c:849 speaker-test/speaker-test.c:853
+#: speaker-test/speaker-test.c:937 speaker-test/speaker-test.c:941
 #, c-format
 msgid "Invalid test type %s\n"
 msgstr "Ungültiger Test-Typ %s\n"
 
-#: speaker-test/speaker-test.c:865
+#: speaker-test/speaker-test.c:953
 #, c-format
 msgid "Invalid parameter for -s option.\n"
 msgstr "Ungültiger Wert für Option -s\n"
 
-#: speaker-test/speaker-test.c:876
+#: speaker-test/speaker-test.c:967
 #, c-format
 msgid "Unknown option '%c'\n"
 msgstr "Unbekannte Options '%c'\n"
 
-#: speaker-test/speaker-test.c:890
+#: speaker-test/speaker-test.c:981
 #, c-format
 msgid "Playback device is %s\n"
 msgstr "Wiedergabe-Gerät ist %s\n"
 
-#: speaker-test/speaker-test.c:891
+#: speaker-test/speaker-test.c:982
 #, c-format
 msgid "Stream parameters are %iHz, %s, %i channels\n"
 msgstr "Stream-Parameter sind %i Hz, %s, %i Kanäle\n"
 
-#: speaker-test/speaker-test.c:894
+#: speaker-test/speaker-test.c:985
 #, c-format
 msgid "Using 16 octaves of pink noise\n"
 msgstr "Verwende 16 Oktaven rosa Rauschen\n"
 
-#: speaker-test/speaker-test.c:897
+#: speaker-test/speaker-test.c:988
 #, c-format
 msgid "Sine wave rate is %.4fHz\n"
 msgstr "Sinuswelle mit Frequenz %.4f Hz\n"
 
-#: speaker-test/speaker-test.c:900
+#: speaker-test/speaker-test.c:991
 #, c-format
 msgid "WAV file(s)\n"
 msgstr "WAV-Datei(en)\n"
 
-#: speaker-test/speaker-test.c:906
+#: speaker-test/speaker-test.c:997
 #, c-format
 msgid "Playback open error: %d,%s\n"
 msgstr "Fehler beim Öffnen des Gerätes: %d, %s\n"
 
-#: speaker-test/speaker-test.c:911
+#: speaker-test/speaker-test.c:1002
 #, c-format
 msgid "Setting of hwparams failed: %s\n"
 msgstr "Fehler beim Setzen der Hardware-Parameter: %s\n"
 
-#: speaker-test/speaker-test.c:916
+#: speaker-test/speaker-test.c:1007
 #, c-format
 msgid "Setting of swparams failed: %s\n"
 msgstr "Fehler beim Setzen der Software-Parameter: %s\n"
 
-#: speaker-test/speaker-test.c:957 speaker-test/speaker-test.c:979
+#: speaker-test/speaker-test.c:1056 speaker-test/speaker-test.c:1078
 #, c-format
 msgid "Transfer failed: %s\n"
 msgstr "Schreibfehler: %s\n"
 
-#: speaker-test/speaker-test.c:967
+#: speaker-test/speaker-test.c:1066
 #, c-format
 msgid "Time per period = %lf\n"
 msgstr "Zeit pro Periode = %lf\n"
diff --git a/po/fr.gmo b/po/fr.gmo
new file mode 100644 (file)
index 0000000..f170f63
Binary files /dev/null and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
new file mode 100644 (file)
index 0000000..24f06ba
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,1589 @@
+# French translation for alsa-utils
+# Copyright (C) 2011 The ALSA Team
+# This file is distributed under the same license as the alsa-utils package.
+# Christoph J. Thompson <cjsthompson@gmail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: alsa-utils 1.0.23\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-01-31 15:27+0100\n"
+"PO-Revision-Date: 2011-01-07 06:23+0100\n"
+"Last-Translator: Christoph J. Thompson <cjsthompson@gmail.com>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: alsamixer/card_select.c:126 alsamixer/device_name.c:126
+msgid "Sound Card"
+msgstr "Carte Son"
+
+#: alsamixer/card_select.c:181
+msgid "(default)"
+msgstr "(par défaut)"
+
+#: alsamixer/card_select.c:191
+msgid "cannot enumerate sound cards"
+msgstr "les cartes son n'ont pas pu être énumérées"
+
+#: alsamixer/card_select.c:215
+msgid "enter device name..."
+msgstr "entrez le nom du périphérique..."
+
+#: alsamixer/cli.c:40
+msgid "Usage: alsamixer [options]"
+msgstr "Utilisation: alsamixer [options]"
+
+#: alsamixer/cli.c:41
+msgid ""
+"Useful options:\n"
+"  -h, --help              this help\n"
+"  -c, --card=NUMBER       sound card number or id\n"
+"  -D, --device=NAME       mixer device name\n"
+"  -V, --view=MODE         starting view mode: playback/capture/all"
+msgstr ""
+"Options utiles:\n"
+"  -h, --help           cette aide\n"
+"  -c, --card=NUMÉRO    numéro ou identifiant de la carte son\n"
+"  -D, --device=NOM     nom du périphérique de mixage\n"
+"  -V, --view=MODE      mode de visualisation par défaut: lecture/capture/tous"
+
+#: alsamixer/cli.c:46
+msgid ""
+"Debugging options:\n"
+"  -g, --no-color          toggle using of colors\n"
+"  -a, --abstraction=NAME  mixer abstraction level: none/basic"
+msgstr ""
+"Options de débogage:\n"
+"  -g, --no-color          supprimer la couleur\n"
+"  -a, --abstraction=NOM   niveau d'abstraction du mixeur: aucun/basique"
+
+#: alsamixer/cli.c:77
+#, c-format
+msgid "invalid card index: %s\n"
+msgstr "index de carte invalide: %s\n"
+
+#: alsamixer/cli.c:103
+#, c-format
+msgid "unknown abstraction level: %s\n"
+msgstr "niveau d'abstraction inconnu: %s\n"
+
+#: alsamixer/cli.c:108
+#, c-format
+msgid "unknown option: %c\n"
+msgstr "option inconnue: %c\n"
+
+#: alsamixer/cli.c:110
+msgid "try `alsamixer --help' for more information\n"
+msgstr "essayez `alsamixer --help' pour plus d'information\n"
+
+#: alsamixer/device_name.c:177
+msgid "Device name:"
+msgstr "Nom du périphérique:"
+
+#: alsamixer/die.c:37
+#, c-format
+msgid "%s: %s\n"
+msgstr "%s: %s\n"
+
+#: alsamixer/mixer_display.c:98
+msgid "Card:"
+msgstr "Carte:"
+
+#: alsamixer/mixer_display.c:99
+msgid "Chip:"
+msgstr "Puce:"
+
+#: alsamixer/mixer_display.c:100
+msgid "View:"
+msgstr "Vue:"
+
+#: alsamixer/mixer_display.c:101
+msgid "Item:"
+msgstr "Contrôle:"
+
+#: alsamixer/mixer_display.c:104
+msgid "F1:  Help"
+msgstr "F1:  Aide"
+
+#: alsamixer/mixer_display.c:105
+msgid "F2:  System information"
+msgstr "F2:  Informations Système"
+
+#: alsamixer/mixer_display.c:106
+msgid "F6:  Select sound card"
+msgstr "F6:  Choisir la carte son"
+
+#: alsamixer/mixer_display.c:107
+msgid "Esc: Exit"
+msgstr "Esc: Quitter"
+
+#: alsamixer/mixer_display.c:174
+msgid "(unplugged)"
+msgstr "(non branché)"
+
+#: alsamixer/mixer_display.c:192
+msgid "Playback"
+msgstr "Lecture"
+
+#: alsamixer/mixer_display.c:193
+msgid "Capture"
+msgstr "Capture"
+
+#: alsamixer/mixer_display.c:194
+msgid "All"
+msgstr "Tout"
+
+#: alsamixer/mixer_display.c:234
+msgid "mute"
+msgstr "muet"
+
+#: alsamixer/mixer_display.c:275 alsamixer/mixer_display.c:285
+msgid "dB gain:"
+msgstr "gain dB:"
+
+#: alsamixer/mixer_display.c:285
+#, c-format
+msgid " [%s %s, %s]"
+msgstr " [%s %s, %s]"
+
+#: alsamixer/mixer_display.c:294 alsamixer/mixer_display.c:300
+#: alsamixer/mixer_display.c:306 alsamixer/mixer_display.c:312
+msgid "Off"
+msgstr "Fermé"
+
+#: alsamixer/mixer_display.c:300 alsamixer/mixer_display.c:312
+msgid "On"
+msgstr "Ouvert"
+
+#: alsamixer/mixer_display.c:363
+msgid "The sound device was unplugged."
+msgstr "Le périphérique a été débranché"
+
+#: alsamixer/mixer_display.c:364
+msgid "Press F6 to select another sound card."
+msgstr "Appuyez sur F6 pour choisir une autre carte son."
+
+#: alsamixer/mixer_display.c:379
+msgid "This sound device does not have any playback controls."
+msgstr "Ce périphérique n'a pas de commandes de lecture."
+
+#: alsamixer/mixer_display.c:381
+msgid "This sound device does not have any capture controls."
+msgstr "Ce périphérique n'a pas de commandes de capture."
+
+#: alsamixer/mixer_display.c:383
+msgid "This sound device does not have any controls."
+msgstr "Ce périphérique n'a pas de commandes."
+
+#. TRANSLATORS: playback on; one character
+#: alsamixer/mixer_display.c:516 alsamixer/mixer_display.c:521
+msgid "O"
+msgstr "O"
+
+#. TRANSLATORS: playback muted; one character
+#: alsamixer/mixer_display.c:518 alsamixer/mixer_display.c:522
+msgid "M"
+msgstr "M"
+
+#. TRANSLATORS: "left"; no more than two characters
+#: alsamixer/mixer_display.c:536
+msgid "L"
+msgstr "G"
+
+#. TRANSLATORS: "right"; no more than two characters
+#: alsamixer/mixer_display.c:540
+msgid "R"
+msgstr "D"
+
+#. TRANSLATORS: no more than eight characters
+#: alsamixer/mixer_display.c:542
+msgid "CAPTURE"
+msgstr "CAPTURE"
+
+#: alsamixer/mixer_display.c:592
+msgid "Front"
+msgstr "Avant"
+
+#: alsamixer/mixer_display.c:595
+msgid "Rear"
+msgstr "Arrière"
+
+#: alsamixer/mixer_display.c:598 speaker-test/speaker-test.c:108
+msgid "Center"
+msgstr "Centre"
+
+#: alsamixer/mixer_display.c:601
+msgid "Woofer"
+msgstr "Basses"
+
+#: alsamixer/mixer_display.c:604
+msgid "Side"
+msgstr "Côté"
+
+#: alsamixer/mixer_widget.c:84 alsamixer/mixer_widget.c:89
+msgid "cannot open mixer"
+msgstr "le mixeur ne peut pas être ouvert"
+
+#: alsamixer/mixer_widget.c:95 alsamixer/mixer_widget.c:172
+msgid "cannot load mixer controls"
+msgstr "les commandes de mixage ne peuvent pas être chargés"
+
+#: alsamixer/mixer_widget.c:162
+#, c-format
+msgid "Cannot open mixer device '%s'."
+msgstr "Le périphérique de mixage '%s' ne peut pas être ouvert."
+
+#: alsamixer/mixer_widget.c:183
+msgid "Esc     Exit"
+msgstr "Esc     Quitter"
+
+#: alsamixer/mixer_widget.c:184
+msgid "F1 ? H  Help"
+msgstr "F1 ? H  Aide"
+
+#: alsamixer/mixer_widget.c:185
+msgid "F2 /    System information"
+msgstr "F2 /    Informations système"
+
+#: alsamixer/mixer_widget.c:186
+msgid "F3      Show playback controls"
+msgstr "F3      Afficher les commandes de lecture"
+
+#: alsamixer/mixer_widget.c:187
+msgid "F4      Show capture controls"
+msgstr "F4      Afficher les commandes de capture"
+
+#: alsamixer/mixer_widget.c:188
+msgid "F5      Show all controls"
+msgstr "F5      Afficher toutes les commandes"
+
+#: alsamixer/mixer_widget.c:189
+msgid "Tab     Toggle view mode (F3/F4/F5)"
+msgstr "Tab     Choisir le mode de visualisation (F3/F4/F5)"
+
+#: alsamixer/mixer_widget.c:190
+msgid "F6 S    Select sound card"
+msgstr "F6 S    Choisir la carte son"
+
+#: alsamixer/mixer_widget.c:191
+msgid "L       Redraw screen"
+msgstr "L       Actualiser l'écran"
+
+#: alsamixer/mixer_widget.c:193
+msgid "Left    Move to the previous control"
+msgstr "Gauche  Aller à la commande précédente"
+
+#: alsamixer/mixer_widget.c:194
+msgid "Right   Move to the next control"
+msgstr "Droite  Aller à la commande suivante"
+
+#: alsamixer/mixer_widget.c:196
+msgid "Up/Down    Change volume"
+msgstr "Haut/Bas   Ajuster le volume"
+
+#: alsamixer/mixer_widget.c:197
+msgid "+ -        Change volume"
+msgstr "+ -        Ajuster le volume"
+
+#: alsamixer/mixer_widget.c:198
+msgid "Page Up/Dn Change volume in big steps"
+msgstr "Page Préc./Suiv. Ajuster le volume en grandes intervalles"
+
+#: alsamixer/mixer_widget.c:199
+msgid "End        Set volume to 0%"
+msgstr "Fin        Couper le volume"
+
+#: alsamixer/mixer_widget.c:200
+msgid "0-9        Set volume to 0%-90%"
+msgstr "0-9        Ajuster le volume entre 0 et 90%"
+
+#: alsamixer/mixer_widget.c:201
+msgid "Q W E      Increase left/both/right volumes"
+msgstr "Q W E      Augmenter les volumes de gauche/centre/droite"
+
+#. TRANSLATORS: or Y instead of Z
+#: alsamixer/mixer_widget.c:203
+msgid "Z X C      Decrease left/both/right volumes"
+msgstr "Z X C      Baisser les volumes de gauche/centre/droite"
+
+#: alsamixer/mixer_widget.c:204
+msgid "B          Balance left and right volumes"
+msgstr "B          Égaliser les volumes de gauche et droite"
+
+#: alsamixer/mixer_widget.c:206
+msgid "M          Toggle mute"
+msgstr "M          (Dés)activer le mode muet"
+
+#. TRANSLATORS: or , .
+#: alsamixer/mixer_widget.c:208
+msgid "< >        Toggle left/right mute"
+msgstr "< >        (Dés)activer le mode muet à gauche et à droite"
+
+#: alsamixer/mixer_widget.c:210
+msgid "Space      Toggle capture"
+msgstr "Espace     (Dés)activer la capture"
+
+#. TRANSLATORS: or Insert Delete
+#: alsamixer/mixer_widget.c:212
+msgid "; '        Toggle left/right capture"
+msgstr ";          (Dés)activer la capture à gauche et à droite"
+
+#: alsamixer/mixer_widget.c:214
+msgid "Authors:"
+msgstr "Auteurs:"
+
+#: alsamixer/mixer_widget.c:215
+msgid "  Tim Janik"
+msgstr ""
+
+#: alsamixer/mixer_widget.c:216
+msgid "  Jaroslav Kysela <perex@perex.cz>"
+msgstr ""
+
+#: alsamixer/mixer_widget.c:217
+msgid "  Clemens Ladisch <clemens@ladisch.de>"
+msgstr ""
+
+#: alsamixer/mixer_widget.c:219
+msgid "Help"
+msgstr "Aide"
+
+#: alsamixer/proc_files.c:103
+msgid "Select File"
+msgstr "Choisir un Fichier"
+
+#: alsamixer/textbox.c:52 alsamixer/textbox.c:66
+msgid "Error"
+msgstr "Erreur"
+
+#: alsamixer/textbox.c:80
+#, c-format
+msgid "Cannot open file \"%s\"."
+msgstr "Le fichier \"%s\" n'a pas pu être ouvert."
+
+#: aplay/aplay.c:152
+msgid "raw data"
+msgstr "données brutes"
+
+#: aplay/aplay.c:153
+msgid "VOC"
+msgstr ""
+
+#: aplay/aplay.c:155
+msgid "WAVE"
+msgstr ""
+
+#: aplay/aplay.c:156
+msgid "Sparc Audio"
+msgstr ""
+
+#: aplay/aplay.c:177
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"-h, --help              help\n"
+"    --version           print current version\n"
+"-l, --list-devices      list all soundcards and digital audio devices\n"
+"-L, --list-pcms         list device names\n"
+"-D, --device=NAME       select PCM by name\n"
+"-q, --quiet             quiet mode\n"
+"-t, --file-type TYPE    file type (voc, wav, raw or au)\n"
+"-c, --channels=#        channels\n"
+"-f, --format=FORMAT     sample format (case insensitive)\n"
+"-r, --rate=#            sample rate\n"
+"-d, --duration=#        interrupt after # seconds\n"
+"-M, --mmap              mmap stream\n"
+"-N, --nonblock          nonblocking mode\n"
+"-F, --period-time=#     distance between interrupts is # microseconds\n"
+"-B, --buffer-time=#     buffer duration is # microseconds\n"
+"    --period-size=#     distance between interrupts is # frames\n"
+"    --buffer-size=#     buffer duration is # frames\n"
+"-A, --avail-min=#       min available space for wakeup is # microseconds\n"
+"-R, --start-delay=#     delay for automatic PCM start is # microseconds \n"
+"                        (relative to buffer size if <= 0)\n"
+"-T, --stop-delay=#      delay for automatic PCM stop is # microseconds from "
+"xrun\n"
+"-v, --verbose           show PCM structure and setup (accumulative)\n"
+"-V, --vumeter=TYPE      enable VU meter (TYPE: mono or stereo)\n"
+"-I, --separate-channels one file for each channel\n"
+"    --disable-resample  disable automatic rate resample\n"
+"    --disable-channels  disable automatic channel conversions\n"
+"    --disable-format    disable automatic format conversions\n"
+"    --disable-softvol   disable software volume control (softvol)\n"
+"    --test-position     test ring buffer position\n"
+"    --test-coef=#\t test coeficient for ring buffer position (default 8)\n"
+"                        expression for validation is: coef * (buffer_size / "
+"2)\n"
+"    --test-nowait       do not wait for ring buffer - eats whole CPU\n"
+"    --max-file-time=#   start another output file when the old file has "
+"recorded\n"
+"                        for this many seconds\n"
+"    --process-id-file   write the process ID here\n"
+"    --use-strftime      apply the strftime facility to the output file name\n"
+msgstr ""
+"Utilisation: %s [OPTION]... [FICHIER]...\n"
+"\n"
+"-h, --help              aide\n"
+"    --version           afficher la version du programme\n"
+"-l, --list-devices      afficher la listes des périphériques\n"
+"-L, --list-pcms         afficher la liste des noms de périphériques\n"
+"-D, --device=NOM        choisir le périphérique PCM par son nom\n"
+"-Q, --quiet             mode silencieux\n"
+"-t, --file-type TYPE    type de fichier (voc, wav, raw ou au)\n"
+"-c, --channels=#        canaux\n"
+"-f, --format=FORMAT     format d'échantillonage (insensible à la casse)\n"
+"-r, --rate=#            fréquence d'échantillonage\n"
+"-d, --duration=#        interrompre après # secondes\n"
+"-M, --mmap              charger le flux en mémoire avec mmap\n"
+"-N, --nonblock          mode non-bloquant\n"
+"-F, --period-time=#     # microsecondes entre chaque interruption\n"
+"-B, --buffer-time=#     la durée du tampon est de # microsecondes\n"
+"    --period-size=#     # trames entre chaque interruption\n"
+"    --buffer-size=#     la durée du tampon est de # trames\n"
+"-A, --avail-min=#       # microsecondes min. disponibles entre chaque "
+"réveil\n"
+"-R, --start-delay=#     # microsecondes de délai avant le démarrage\n"
+"                        automatique du périphérique PCM (relatif à la "
+"taille\n"
+"                        du tampon si <= 0)\n"
+"-T, --stop-delay=#      # microsecondes de délai depuis xrun avant l'arrêt\n"
+"                        automatique du périphérique PCM \n"
+"-v, --verbose           afficher la structure et la configuration du\n"
+"                        périphérique PCM (accumulatif)\n"
+"-V, --vumeter=TYPE      activer le VU-mètre (TYPE: mono ou stereo)\n"
+"-I, --separate-channels un fichier par canal\n"
+"    --disable-resample  désactiver le rééchantillonage de fréquence\n"
+"                        automatique\n"
+"    --disable-channels  désactiver les conversions automatiques de canal\n"
+"    --disable-format    désactiver les conversions automatiques de format\n"
+"    --disable-softvol   désactiver la commande du volume logicielle\n"
+"    --test-position     tester la position du tampon circulaire\n"
+"    --test-coef=#       test coefficient pour la position du tampon\n"
+"                        circulaire (par défaut 8). L'expression pour la\n"
+"                        validation est : coef * (taille_tampon / 2)\n"
+"    --test-nowait       ne pas attendre le tampon circulaire - prend toutes\n"
+"                        les resources du processeur\n"
+"    --max-file-time=#   commencer un autre fichier de capture quand "
+"l'ancien\n"
+"                        fichier a enregistré pendant # secondes\n"
+"    --process-id-file   écrire l'identifiant du processus ici\n"
+"    --use-strftime      utiliser strftime pour le nom du fichier de capture\n"
+
+#: aplay/aplay.c:216 speaker-test/speaker-test.c:819
+#, c-format
+msgid "Recognized sample formats are:"
+msgstr "Les formats d'échantillonage connus sont:"
+
+#: aplay/aplay.c:222
+#, c-format
+msgid ""
+"\n"
+"Some of these may not be available on selected hardware\n"
+msgstr ""
+"\n"
+"Certains de ceux-ci ne sont peut être pas disponibles avec ce matériel\n"
+
+#: aplay/aplay.c:223
+#, c-format
+msgid "The availabled format shortcuts are:\n"
+msgstr "Les raccourcis format disponibles sont:\n"
+
+#: aplay/aplay.c:224
+#, c-format
+msgid "-f cd (16 bit little endian, 44100, stereo)\n"
+msgstr "-f cd (16 bit petit boutiste, 44100, stéréo)\n"
+
+#: aplay/aplay.c:225
+#, c-format
+msgid "-f cdr (16 bit big endian, 44100, stereo)\n"
+msgstr "-f cdr (16 bit gros boutiste, 44100, stéréo)\n"
+
+#: aplay/aplay.c:226
+#, c-format
+msgid "-f dat (16 bit little endian, 48000, stereo)\n"
+msgstr "-f dat (16 bit petit boutiste, 48000, stéréo)\n"
+
+#: aplay/aplay.c:240
+msgid "no soundcards found..."
+msgstr "aucune carte son n'a été trouvée..."
+
+#: aplay/aplay.c:243
+#, c-format
+msgid "**** List of %s Hardware Devices ****\n"
+msgstr "**** Liste des Périphériques Matériels %s ****\n"
+
+#: aplay/aplay.c:272
+#, c-format
+msgid "card %i: %s [%s], device %i: %s [%s]\n"
+msgstr "carte %i: %s [%s], périphérique %i: %s [%s]\n"
+
+#: aplay/aplay.c:278
+#, c-format
+msgid "  Subdevices: %i/%i\n"
+msgstr "  Sous-périphériques: %i/%i\n"
+
+#: aplay/aplay.c:285
+#, c-format
+msgid "  Subdevice #%i: %s\n"
+msgstr "  Sous-périphérique #%i: %s\n"
+
+#: aplay/aplay.c:362
+#, c-format
+msgid "Aborted by signal %s...\n"
+msgstr "Interrompu par le signal %s...\n"
+
+#: aplay/aplay.c:473
+msgid "command should be named either arecord or aplay"
+msgstr "la commande doit être nommée arecord ou aplay"
+
+#: aplay/aplay.c:512
+#, c-format
+msgid "unrecognized file format %s"
+msgstr "format de fichier inconnu %s"
+
+#: aplay/aplay.c:519
+#, c-format
+msgid "value %i for channels is invalid"
+msgstr "la valeur %i pour les canaux est incorrecte"
+
+#: aplay/aplay.c:538
+#, c-format
+msgid "wrong extended format '%s'"
+msgstr "format étendu '%s' erronné"
+
+#: aplay/aplay.c:549
+#, c-format
+msgid "bad speed value %i"
+msgstr "mauvaise valeur de vitesse %i"
+
+#: aplay/aplay.c:644
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Essayez `%s --help' pour plus d'informations.\n"
+
+#: aplay/aplay.c:660
+#, c-format
+msgid "audio open error: %s"
+msgstr "erreur à l'ouverture audio: %s"
+
+#: aplay/aplay.c:665
+#, c-format
+msgid "info error: %s"
+msgstr "erreur info: %s"
+
+#: aplay/aplay.c:672
+#, c-format
+msgid "nonblock setting error: %s"
+msgstr "paramètre de non-blocage erronné: %s"
+
+#: aplay/aplay.c:682 aplay/aplay.c:806 aplay/aplay.c:1174
+msgid "not enough memory"
+msgstr "pas assez de mémoire"
+
+#: aplay/aplay.c:706
+#, c-format
+msgid "Cannot create process ID file %s: %s"
+msgstr "Le fichier de numéro de processus %s n'a pas pu être créé: %s"
+
+#: aplay/aplay.c:796
+#, c-format
+msgid "read error (called from line %i)"
+msgstr "erreur de lecture (appelé à la ligne %i)"
+
+#: aplay/aplay.c:854
+#, c-format
+msgid "unknown length of 'fmt ' chunk (read %u, should be %u at least)"
+msgstr "longueur du morceau 'fmt ' inconnue (lu %u, devrait être au moins %u)"
+
+#: aplay/aplay.c:864
+#, c-format
+msgid ""
+"unknown length of extensible 'fmt ' chunk (read %u, should be %u at least)"
+msgstr ""
+"longueur du morceau 'fmt ' extensible inconnue (lu %u, devrait être au moins "
+"%u)"
+
+#: aplay/aplay.c:869
+msgid "wrong format tag in extensible 'fmt ' chunk"
+msgstr "libellé de format erronné dans le morceau extensible 'fmt '"
+
+#: aplay/aplay.c:876
+#, c-format
+msgid "can't play WAVE-file format 0x%04x which is not PCM or FLOAT encoded"
+msgstr ""
+"Les formats de ficher WAVE 0x%04x qui ne sont pas encodés en PCM ouFLOAT ne "
+"sont pas supportés"
+
+#: aplay/aplay.c:880
+#, c-format
+msgid "can't play WAVE-files with %d tracks"
+msgstr "Les fichiers WAVE avec %d pistes ne sont pas supportés"
+
+#: aplay/aplay.c:888 aplay/aplay.c:988
+#, c-format
+msgid "Warning: format is changed to U8\n"
+msgstr "Avertissement: le format est changé en U8\n"
+
+#: aplay/aplay.c:894
+#, c-format
+msgid "Warning: format is changed to S16_LE\n"
+msgstr "Avertissement: le format est changé en S16_LE\n"
+
+#: aplay/aplay.c:902
+#, c-format
+msgid "Warning: format is changed to S24_3LE\n"
+msgstr "Avertissement: le format est changé en S24_3LE\n"
+
+#: aplay/aplay.c:908
+#, c-format
+msgid "Warning: format is changed to S24_LE\n"
+msgstr "Avertissement: le format est changé en S24_LE\n"
+
+#: aplay/aplay.c:912
+#, c-format
+msgid ""
+" can't play WAVE-files with sample %d bits in %d bytes wide (%d channels)"
+msgstr ""
+" les fichiers WAVE échantillonés %d bits par %d octets en largeur (%d canaux)"
+"ne sont pas supportés"
+
+#: aplay/aplay.c:924
+#, c-format
+msgid " can't play WAVE-files with sample %d bits wide"
+msgstr ""
+" les fichiers WAVES échantillonés %d bits en largeur ne sont passupportés"
+
+#: aplay/aplay.c:982
+#, c-format
+msgid "Warning: format is changed to MU_LAW\n"
+msgstr "Avertissement: le format est changé en MU_LAW\n"
+
+#: aplay/aplay.c:994
+#, c-format
+msgid "Warning: format is changed to S16_BE\n"
+msgstr "Avertissement: le format est changé en S16_BE\n"
+
+#: aplay/aplay.c:1007 aplay/aplay.c:1925 aplay/aplay.c:1932 aplay/aplay.c:2455
+#: aplay/aplay.c:2467
+msgid "read error"
+msgstr "erreur de lecture"
+
+#: aplay/aplay.c:1037
+msgid "Broken configuration for this PCM: no configurations available"
+msgstr "Configuration erronée pour ce périphérique PCM: pas de configuration"
+
+#: aplay/aplay.c:1054
+msgid "Access type not available"
+msgstr "Ce type d'accès n'est pas disponible"
+
+#: aplay/aplay.c:1059
+msgid "Sample format non available"
+msgstr "Ce format d'échantillonage n'est pas disponible"
+
+#: aplay/aplay.c:1065
+msgid "Channels count non available"
+msgstr "Nombre de canaux non disponible"
+
+#: aplay/aplay.c:1080
+#, c-format
+msgid "Warning: rate is not accurate (requested = %iHz, got = %iHz)\n"
+msgstr ""
+"Avertissement: la fréquence n'est pas précise (demandé = %iHz,\n"
+"obtenu = %iHz)\n"
+
+#: aplay/aplay.c:1086
+#, c-format
+msgid "         please, try the plug plugin %s\n"
+msgstr "         veuillez essayez le greffon de branchement %s\n"
+
+#: aplay/aplay.c:1123
+msgid "Unable to install hw params:"
+msgstr "Les paramètres matériel n'ont pas pu être installés:"
+
+#: aplay/aplay.c:1130
+#, c-format
+msgid "Can't use period equal to buffer size (%lu == %lu)"
+msgstr ""
+"Une période égale à la taille du tampon (%lu == %lu) ne peut êtreutilisée"
+
+#: aplay/aplay.c:1161
+msgid "unable to install sw params:"
+msgstr "Les paramètres logiciel n'ont pas pu être installés:"
+
+#: aplay/aplay.c:1192
+#, c-format
+msgid "snd_pcm_mmap_begin problem: %s"
+msgstr ""
+
+#: aplay/aplay.c:1215
+#, c-format
+msgid "stdin O_NONBLOCK flag setup failed\n"
+msgstr ""
+
+#: aplay/aplay.c:1237
+#, c-format
+msgid "\rPAUSE command ignored (no hw support)\n"
+msgstr ""
+
+#: aplay/aplay.c:1242
+#, fuzzy, c-format
+msgid "pause push error: %s"
+msgstr "erreur d'état: %s"
+
+#: aplay/aplay.c:1251
+#, fuzzy, c-format
+msgid "pause release error: %s"
+msgstr "suspension: prepare error: %s"
+
+#: aplay/aplay.c:1265
+#, c-format
+msgid ""
+"\r=== PAUSE ===                                                            "
+msgstr ""
+
+#: aplay/aplay.c:1307
+#, c-format
+msgid "status error: %s"
+msgstr "erreur d'état: %s"
+
+#: aplay/aplay.c:1317 aplay/aplay.c:1328
+#, c-format
+msgid "%s!!! (at least %.3f ms long)\n"
+msgstr "%s!!! (au moins longue de %.3f ms)\n"
+
+#: aplay/aplay.c:1318 aplay/aplay.c:1321 aplay/aplay.c:1329
+msgid "underrun"
+msgstr "perte"
+
+#: aplay/aplay.c:1318 aplay/aplay.c:1329
+msgid "overrun"
+msgstr "dépassement"
+
+#: aplay/aplay.c:1333
+#, c-format
+msgid "Status:\n"
+msgstr "État:\n"
+
+#: aplay/aplay.c:1337
+#, c-format
+msgid "xrun: prepare error: %s"
+msgstr ""
+
+#: aplay/aplay.c:1343
+#, c-format
+msgid "Status(DRAINING):\n"
+msgstr ""
+
+#: aplay/aplay.c:1347
+#, c-format
+msgid "capture stream format change? attempting recover...\n"
+msgstr ""
+"changement de format de flux de capture? tentative de récupération...\n"
+
+#: aplay/aplay.c:1349
+#, c-format
+msgid "xrun(DRAINING): prepare error: %s"
+msgstr ""
+
+#: aplay/aplay.c:1356
+#, c-format
+msgid "Status(R/W):\n"
+msgstr ""
+
+#: aplay/aplay.c:1359
+#, c-format
+msgid "read/write error, state = %s"
+msgstr "erreur de lecture/écriture, état = %s"
+
+#: aplay/aplay.c:1369
+#, c-format
+msgid "Suspended. Trying resume. "
+msgstr "Suspendu. Tentative de reprise. "
+
+#: aplay/aplay.c:1374
+#, c-format
+msgid "Failed. Restarting stream. "
+msgstr "Échec. Redémarrage du flux."
+
+#: aplay/aplay.c:1376
+#, c-format
+msgid "suspend: prepare error: %s"
+msgstr "suspension: prepare error: %s"
+
+#: aplay/aplay.c:1381
+#, c-format
+msgid "Done.\n"
+msgstr "Terminé.\n"
+
+#: aplay/aplay.c:1403
+#, c-format
+msgid " !clip  "
+msgstr ""
+
+#: aplay/aplay.c:1550
+#, c-format
+msgid "Unsupported bit size %d.\n"
+msgstr "%d bit(s) non supporté(s).\n"
+
+#: aplay/aplay.c:1584
+#, c-format
+msgid "Max peak (%li samples): 0x%08x "
+msgstr "Pic max. (%li échantillons): 0x%08x "
+
+#: aplay/aplay.c:1618
+#, c-format
+msgid ""
+"Suspicious buffer position (%li total): avail = %li, delay = %li, buffer = %"
+"li\n"
+msgstr ""
+"Position de tampon suspicieuse (total %li): dispo = %li, délai = %li, tampon "
+"= %li\n"
+
+#: aplay/aplay.c:1682
+#, c-format
+msgid "write error: %s"
+msgstr "erreur en écriture: %s"
+
+#: aplay/aplay.c:1729
+#, c-format
+msgid "writev error: %s"
+msgstr "erreur de writev: %s"
+
+#: aplay/aplay.c:1773
+#, c-format
+msgid "read error: %s"
+msgstr "erreur en lecture: %s"
+
+#: aplay/aplay.c:1817
+#, c-format
+msgid "readv error: %s"
+msgstr "erreur de readv: %s"
+
+#: aplay/aplay.c:1865
+msgid "can't allocate buffer for silence"
+msgstr "Un tampon pour silence n'a pas pu être alloué"
+
+#: aplay/aplay.c:1874 aplay/aplay.c:2100 aplay/aplay.c:2105 aplay/aplay.c:2152
+#: aplay/aplay.c:2161 aplay/aplay.c:2168 aplay/aplay.c:2178 aplay/aplay.c:2184
+#: aplay/aplay.c:2256 aplay/aplay.c:2286 aplay/aplay.c:2300
+msgid "write error"
+msgstr "erreur en écriture"
+
+#: aplay/aplay.c:1887
+#, c-format
+msgid "voc_pcm_flush - silence error"
+msgstr "voc_pcm_flush - erreur de silence"
+
+#: aplay/aplay.c:1890
+msgid "voc_pcm_flush error"
+msgstr "erreur voc_pcm_flush"
+
+#: aplay/aplay.c:1916
+msgid "malloc error"
+msgstr "erreur malloc"
+
+#: aplay/aplay.c:1920
+#, c-format
+msgid "Playing Creative Labs Channel file '%s'...\n"
+msgstr "Lecture du ficher de canaux Creative Labs '%s'...\n"
+
+#: aplay/aplay.c:1988 aplay/aplay.c:2080
+msgid "can't play packed .voc files"
+msgstr "les fichiers .voc de type 'packed' ne sont pas supportés"
+
+#: aplay/aplay.c:2040
+#, c-format
+msgid "can't play loops; %s isn't seekable\n"
+msgstr "%s n'est pas navigable; les motifs n'ont pas pu être lus\n"
+
+#: aplay/aplay.c:2089
+#, c-format
+msgid "unknown blocktype %d. terminate."
+msgstr "type de bloc %d inconnu. fin."
+
+#: aplay/aplay.c:2220
+#, c-format
+msgid "Wave doesn't support %s format..."
+msgstr "Le format wave %s n'est pas supporté..."
+
+#: aplay/aplay.c:2280
+#, c-format
+msgid "Sparc Audio doesn't support %s format..."
+msgstr "Le format %s Sparc Audio n'est pas supporté..."
+
+#: aplay/aplay.c:2361
+msgid "Playing"
+msgstr "Lecture"
+
+#: aplay/aplay.c:2361
+msgid "Recording"
+msgstr "Capture"
+
+#: aplay/aplay.c:2365
+#, c-format
+msgid "Rate %d Hz, "
+msgstr "Fréquence %d Hz, "
+
+#: aplay/aplay.c:2367
+#, c-format
+msgid "Mono"
+msgstr ""
+
+#: aplay/aplay.c:2369
+#, c-format
+msgid "Stereo"
+msgstr "Stéréo"
+
+#: aplay/aplay.c:2371
+#, c-format
+msgid "Channels %i"
+msgstr "%i Canaux"
+
+#: aplay/aplay.c:2882 aplay/aplay.c:2935
+#, c-format
+msgid "You need to specify %d files"
+msgstr "Vous devez spécifier %d fichiers"
+
+#: seq/aconnect/aconnect.c:49
+#, c-format
+msgid "aconnect - ALSA sequencer connection manager\n"
+msgstr "aconnect - gestionnaire de connection séquenceur ALSA\n"
+
+#: seq/aconnect/aconnect.c:50
+#, c-format
+msgid "Copyright (C) 1999-2000 Takashi Iwai\n"
+msgstr ""
+
+#: seq/aconnect/aconnect.c:51
+#, c-format
+msgid "Usage:\n"
+msgstr "Utilisation:\n"
+
+#: seq/aconnect/aconnect.c:52
+#, c-format
+msgid " * Connection/disconnection between two ports\n"
+msgstr " * Connexion/déconnexion entre deux ports\n"
+
+#: seq/aconnect/aconnect.c:53
+#, c-format
+msgid "   aconnect [-options] sender receiver\n"
+msgstr "   aconnect [-options] envoyeur destinataire\n"
+
+#: seq/aconnect/aconnect.c:54
+#, c-format
+msgid "     sender, receiver = client:port pair\n"
+msgstr "     envoyeur, destinataire = couple client:port\n"
+
+#: seq/aconnect/aconnect.c:55
+#, c-format
+msgid "     -d,--disconnect     disconnect\n"
+msgstr "     -d,--disconnect     déconnecter\n"
+
+#: seq/aconnect/aconnect.c:56
+#, c-format
+msgid "     -e,--exclusive      exclusive connection\n"
+msgstr "     -e,--exclusive      connexion exclusive\n"
+
+#: seq/aconnect/aconnect.c:57
+#, c-format
+msgid "     -r,--real #         convert real-time-stamp on queue\n"
+msgstr ""
+
+#: seq/aconnect/aconnect.c:58
+#, c-format
+msgid "     -t,--tick #         convert tick-time-stamp on queue\n"
+msgstr ""
+
+#: seq/aconnect/aconnect.c:59
+#, c-format
+msgid " * List connected ports (no subscription action)\n"
+msgstr " * Afficher la liste des ports connectés (pas de souscription)\n"
+
+#: seq/aconnect/aconnect.c:60
+#, c-format
+msgid "   aconnect -i|-o [-options]\n"
+msgstr "   aconnect -i|-o [-options]\n"
+
+#: seq/aconnect/aconnect.c:61
+#, c-format
+msgid "     -i,--input          list input (readable) ports\n"
+msgstr "     -i,--input          afficher la liste des ports d'entrée\n"
+
+#: seq/aconnect/aconnect.c:62
+#, c-format
+msgid "     -o,--output         list output (writable) ports\n"
+msgstr "     -o,--output         afficher la liste des ports de sortie\n"
+
+#: seq/aconnect/aconnect.c:63
+#, c-format
+msgid "     -l,--list           list current connections of each port\n"
+msgstr ""
+"     -l,--list           afficher la liste des connexions en cours\n"
+"                         sur chaque port\n"
+
+#: seq/aconnect/aconnect.c:64
+#, c-format
+msgid " * Remove all exported connections\n"
+msgstr " * Retirer toutes les connexions exportées\n"
+
+#: seq/aconnect/aconnect.c:65
+#, c-format
+msgid "     -x, --removeall\n"
+msgstr "     -x, --removeall\n"
+
+#: seq/aconnect/aconnect.c:132
+msgid "Connecting To"
+msgstr "Connexion À"
+
+#: seq/aconnect/aconnect.c:133
+msgid "Connected From"
+msgstr "Connecté Depuis"
+
+#: seq/aconnect/aconnect.c:169
+#, c-format
+msgid "client %d: '%s' [type=%s]\n"
+msgstr "client %d: '%s' [type=%s]\n"
+
+#: seq/aconnect/aconnect.c:173
+msgid "user"
+msgstr "utilisateur"
+
+#: seq/aconnect/aconnect.c:173
+msgid "kernel"
+msgstr "noyau"
+
+#: seq/aconnect/aconnect.c:307
+#, c-format
+msgid "can't open sequencer\n"
+msgstr "le séquenceur n'a pas pu être ouvert\n"
+
+#: seq/aconnect/aconnect.c:335
+#, c-format
+msgid "can't get client id\n"
+msgstr "l'identifiant du client n'as pas pu être obtenu\n"
+
+#: seq/aconnect/aconnect.c:342
+#, c-format
+msgid "can't set client info\n"
+msgstr "les infos du client n'ont pas pu être définies\n"
+
+#: seq/aconnect/aconnect.c:349
+#, c-format
+msgid "invalid sender address %s\n"
+msgstr "l'addresse envoyeur %s est incorrecte\n"
+
+#: seq/aconnect/aconnect.c:354 seq/aseqnet/aseqnet.c:290
+#, c-format
+msgid "invalid destination address %s\n"
+msgstr "l'addresse destinataire %s est incorrecte\n"
+
+#: seq/aconnect/aconnect.c:368
+#, c-format
+msgid "No subscription is found\n"
+msgstr "Aucune souscription trouvée\n"
+
+#: seq/aconnect/aconnect.c:373
+#, c-format
+msgid "Disconnection failed (%s)\n"
+msgstr "La déconnexion a échoué (%s)\n"
+
+#: seq/aconnect/aconnect.c:379
+#, c-format
+msgid "Connection is already subscribed\n"
+msgstr "La connexion a déjà été souscrite\n"
+
+#: seq/aconnect/aconnect.c:384
+#, c-format
+msgid "Connection failed (%s)\n"
+msgstr "Échec de connexion (%s)\n"
+
+#: seq/aseqnet/aseqnet.c:164
+#, c-format
+msgid "aseqnet - network client/server on ALSA sequencer\n"
+msgstr "aseqnet - client/serveur réseau sur le séquenceur ALSA\n"
+
+#: seq/aseqnet/aseqnet.c:165
+#, c-format
+msgid "  Copyright (C) 1999 Takashi Iwai\n"
+msgstr ""
+
+#: seq/aseqnet/aseqnet.c:166
+#, c-format
+msgid "usage:\n"
+msgstr "utilisation:\n"
+
+#: seq/aseqnet/aseqnet.c:167
+#, c-format
+msgid "  server mode: aseqnet [-options]\n"
+msgstr "  mode serveur: aseqnet [-options]\n"
+
+#: seq/aseqnet/aseqnet.c:168
+#, c-format
+msgid "  client mode: aseqnet [-options] server_host\n"
+msgstr "  mode client: aseqnet [-options] hôte_serveur\n"
+
+#: seq/aseqnet/aseqnet.c:169
+#, c-format
+msgid "options:\n"
+msgstr "options:\n"
+
+#: seq/aseqnet/aseqnet.c:170
+#, c-format
+msgid "  -p,--port # : sepcify TCP port (digit or service name)\n"
+msgstr "  -p,--port # : spécifier le port TCP (numéro ou nom de service)\n"
+
+#: seq/aseqnet/aseqnet.c:171
+#, c-format
+msgid "  -s,--source addr : read from given addr (client:port)\n"
+msgstr "  -s,--source addr : lire à partir de l'addr. donnée (client:port)\n"
+
+#: seq/aseqnet/aseqnet.c:172
+#, c-format
+msgid "  -d,--dest addr : write to given addr (client:port)\n"
+msgstr "  -d,--dest addr : écrire à l'addr. donnée (client:port)\n"
+
+#: seq/aseqnet/aseqnet.c:173
+#, c-format
+msgid "  -v, --verbose : print verbose messages\n"
+msgstr "  -v, --verbose : affichage locace de messages\n"
+
+#: seq/aseqnet/aseqnet.c:174
+#, c-format
+msgid "  -i, --info : print certain received events\n"
+msgstr "  -i, --info : afficher certains évènements reçus\n"
+
+#: seq/aseqnet/aseqnet.c:188
+#, c-format
+msgid "can't malloc\n"
+msgstr "échec allocation mémoire (malloc)\n"
+
+#: seq/aseqnet/aseqnet.c:213
+#, c-format
+msgid "closing files..\n"
+msgstr "fermeture des fichiers...\n"
+
+#: seq/aseqnet/aseqnet.c:272
+#, c-format
+msgid "sequencer opened: %d:%d\n"
+msgstr "séquenceur ouvert: %d:%d\n"
+
+#: seq/aseqnet/aseqnet.c:279
+#, c-format
+msgid "invalid source address %s\n"
+msgstr "addresse source %s incorrecte\n"
+
+#: seq/aseqnet/aseqnet.c:309
+#, c-format
+msgid "service '%s' is not found in /etc/services\n"
+msgstr "le service '%s' n'as pas été trouvé dans /etc/services\n"
+
+#: seq/aseqnet/aseqnet.c:377
+#, c-format
+msgid "too many connections!\n"
+msgstr "trop de connexions!\n"
+
+#: seq/aseqnet/aseqnet.c:388
+#, c-format
+msgid "accepted[%d]\n"
+msgstr "accepté[%d]\n"
+
+#: seq/aseqnet/aseqnet.c:411
+#, c-format
+msgid "can't get address %s\n"
+msgstr "l'addresse %s na pas pu être obtenue\n"
+
+#: seq/aseqnet/aseqnet.c:422
+#, c-format
+msgid "ok.. connected\n"
+msgstr "ok.. connecté\n"
+
+#: seq/aseqnet/aseqnet.c:518
+#, c-format
+msgid "Channel %2d: Control event : %5d\n"
+msgstr "Canal %2d: Évènement de contrôle: %5d\n"
+
+#: seq/aseqnet/aseqnet.c:522
+#, c-format
+msgid "Channel %2d: Pitchbender   : %5d\n"
+msgstr "Canal %2d: Pitchbender          : %5d\n"
+
+#: seq/aseqnet/aseqnet.c:526
+#, c-format
+msgid "Channel %2d: Note On event : %5d\n"
+msgstr "Canal %2d: évènement Note On    : %5d\n"
+
+#: seq/aseqnet/aseqnet.c:530
+#, c-format
+msgid "Channel %2d: Note Off event: %5d\n"
+msgstr "Canal %2d: évènement Note Off   : %5d\n"
+
+#: seq/aseqnet/aseqnet.c:585
+#, c-format
+msgid "disconnected\n"
+msgstr "déconnecté\n"
+
+#: speaker-test/speaker-test.c:104
+msgid "Front Left"
+msgstr "Avant Gauche"
+
+#: speaker-test/speaker-test.c:105
+msgid "Front Right"
+msgstr "Avant Droit"
+
+#: speaker-test/speaker-test.c:106
+msgid "Rear Left"
+msgstr "Arrière Gauche"
+
+#: speaker-test/speaker-test.c:107
+msgid "Rear Right"
+msgstr "Arrière Droit"
+
+#: speaker-test/speaker-test.c:109
+msgid "LFE"
+msgstr ""
+
+#: speaker-test/speaker-test.c:110
+msgid "Side Left"
+msgstr "Côté Gauche"
+
+#: speaker-test/speaker-test.c:111
+msgid "Side Right"
+msgstr "Côté Droit"
+
+#: speaker-test/speaker-test.c:112
+msgid "Channel 9"
+msgstr "Canal 9"
+
+#: speaker-test/speaker-test.c:113
+msgid "Channel 10"
+msgstr "Canal 10"
+
+#: speaker-test/speaker-test.c:114
+msgid "Channel 11"
+msgstr "Canal 11"
+
+#: speaker-test/speaker-test.c:115
+msgid "Channel 12"
+msgstr "Canal 12"
+
+#: speaker-test/speaker-test.c:116
+msgid "Channel 13"
+msgstr "Canal 13"
+
+#: speaker-test/speaker-test.c:117
+msgid "Channel 14"
+msgstr "Canal 14"
+
+#: speaker-test/speaker-test.c:118
+msgid "Channel 15"
+msgstr "Canal 15"
+
+#: speaker-test/speaker-test.c:119
+msgid "Channel 16"
+msgstr "Canal 16"
+
+#: speaker-test/speaker-test.c:383
+#, c-format
+msgid "Broken configuration for playback: no configurations available: %s\n"
+msgstr "Configuration erronée pour la lecture: pas de configuration: %s\n"
+
+#: speaker-test/speaker-test.c:390
+#, c-format
+msgid "Access type not available for playback: %s\n"
+msgstr "Le type d'accès est indisponible à la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:397
+#, c-format
+msgid "Sample format not available for playback: %s\n"
+msgstr "Le format d'échantillonage est indisponible à la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:404
+#, c-format
+msgid "Channels count (%i) not available for playbacks: %s\n"
+msgstr "Le nombre (%i) de canaux est indisponible à la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:412
+#, c-format
+msgid "Rate %iHz not available for playback: %s\n"
+msgstr "La fréquence %iHz est indisponible à la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:417
+#, c-format
+msgid "Rate doesn't match (requested %iHz, get %iHz, err %d)\n"
+msgstr ""
+"La fréquence ne correspond pas (demandée: %iHz, obtenue %iHz, err %d)\n"
+
+#: speaker-test/speaker-test.c:421
+#, c-format
+msgid "Rate set to %iHz (requested %iHz)\n"
+msgstr "La fréquence est %iHz (demandée %iHz)\n"
+
+#: speaker-test/speaker-test.c:427
+#, c-format
+msgid "Buffer size range from %lu to %lu\n"
+msgstr "L'intervalle de la taille du tampon est de %lu à %lu\n"
+
+#: speaker-test/speaker-test.c:428
+#, c-format
+msgid "Period size range from %lu to %lu\n"
+msgstr "L'intervalle de la taille de la période est de %lu à %lu\n"
+
+#: speaker-test/speaker-test.c:430
+#, c-format
+msgid "Requested period time %u us\n"
+msgstr "Temps de période demandé %u µs\n"
+
+#: speaker-test/speaker-test.c:433
+#, c-format
+msgid "Unable to set period time %u us for playback: %s\n"
+msgstr "Le temps de période %u µs n'a pas pu être défini pour la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:439
+#, c-format
+msgid "Requested buffer time %u us\n"
+msgstr "Temps tampon demandé %u µs\n"
+
+#: speaker-test/speaker-test.c:442
+#, c-format
+msgid "Unable to set buffer time %u us for playback: %s\n"
+msgstr "Le temps tampon de %u µs n'a pas pu être définie pour la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:451
+#, c-format
+msgid "Using max buffer size %lu\n"
+msgstr "Taille max. de tampon %lu utilisée\n"
+
+#: speaker-test/speaker-test.c:454
+#, c-format
+msgid "Unable to set buffer size %lu for playback: %s\n"
+msgstr "La taile de tampon %lu n'a pas pu être définie pour la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:460
+#, c-format
+msgid "Periods = %u\n"
+msgstr "Périodes = %u\n"
+
+#: speaker-test/speaker-test.c:463
+#, c-format
+msgid "Unable to set nperiods %u for playback: %s\n"
+msgstr "nperiods %u n'a pas pu être défini pour la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:472
+#, c-format
+msgid "Unable to set hw params for playback: %s\n"
+msgstr ""
+"Les paramètres matériel n'ont pas pu être définis pour la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:478
+#, c-format
+msgid "was set period_size = %lu\n"
+msgstr ""
+
+#: speaker-test/speaker-test.c:479
+#, c-format
+msgid "was set buffer_size = %lu\n"
+msgstr ""
+
+#: speaker-test/speaker-test.c:481
+#, c-format
+msgid "buffer to small, could not use\n"
+msgstr "tampon trop petit, il n'a pas pu être utilisé\n"
+
+#: speaker-test/speaker-test.c:494
+#, c-format
+msgid "Unable to determine current swparams for playback: %s\n"
+msgstr ""
+"Les paramètres logiciels actuels n'ont pas pu être déterminés pour la "
+"lecture: %s\n"
+
+#: speaker-test/speaker-test.c:501
+#, c-format
+msgid "Unable to set start threshold mode for playback: %s\n"
+msgstr ""
+
+#: speaker-test/speaker-test.c:508
+#, c-format
+msgid "Unable to set avail min for playback: %s\n"
+msgstr ""
+
+#: speaker-test/speaker-test.c:515
+#, c-format
+msgid "Unable to set sw params for playback: %s\n"
+msgstr ""
+"Les paramètres logiciel n'ont pas pu être définis pour la lecture: %s\n"
+
+#: speaker-test/speaker-test.c:530
+#, c-format
+msgid "Can't recovery from underrun, prepare failed: %s\n"
+msgstr ""
+
+#: speaker-test/speaker-test.c:541
+#, c-format
+msgid "Can't recovery from suspend, prepare failed: %s\n"
+msgstr ""
+
+#: speaker-test/speaker-test.c:605 speaker-test/speaker-test.c:1025
+#, c-format
+msgid "No enough memory\n"
+msgstr "Pas assez de mémoire\n"
+
+#: speaker-test/speaker-test.c:610
+#, c-format
+msgid "Cannot open WAV file %s\n"
+msgstr "Le fichier WAV %s n'a pas pu être ouvert\n"
+
+#: speaker-test/speaker-test.c:614 speaker-test/speaker-test.c:643
+#, c-format
+msgid "Invalid WAV file %s\n"
+msgstr "Fichier WAV incorrect %s\n"
+
+#: speaker-test/speaker-test.c:619
+#, c-format
+msgid "Not a WAV file: %s\n"
+msgstr "Le fichier %s n'est pas au format WAV\n"
+
+#: speaker-test/speaker-test.c:623
+#, c-format
+msgid "Unsupported WAV format %d for %s\n"
+msgstr "Format WAV %d non supporté pour %s\n"
+
+#: speaker-test/speaker-test.c:628
+#, c-format
+msgid "%s is not a mono stream (%d channels)\n"
+msgstr "%s n'est pas un flux en mono (%d canaux)\n"
+
+#: speaker-test/speaker-test.c:633
+#, c-format
+msgid "Sample rate doesn't match (%d) for %s\n"
+msgstr "La fréquence d'échantillonage (%d) ne correspond pas à %s\n"
+
+#: speaker-test/speaker-test.c:638
+#, c-format
+msgid "Unsupported sample format bits %d for %s\n"
+msgstr "Le format d'échantillonage %d bits n'est pas supporté pour %s\n"
+
+#: speaker-test/speaker-test.c:688
+#, c-format
+msgid "Undefined channel %d\n"
+msgstr "Canal non-défini %d\n"
+
+#: speaker-test/speaker-test.c:739
+#, c-format
+msgid "Write error: %d,%s\n"
+msgstr "Erreur en écriture: %d,%s\n"
+
+#: speaker-test/speaker-test.c:741
+#, c-format
+msgid "xrun_recovery failed: %d,%s\n"
+msgstr ""
+
+#: speaker-test/speaker-test.c:803
+#, c-format
+msgid ""
+"Usage: speaker-test [OPTION]... \n"
+"-h,--help\thelp\n"
+"-D,--device\tplayback device\n"
+"-r,--rate\tstream rate in Hz\n"
+"-c,--channels\tcount of channels in stream\n"
+"-f,--frequency\tsine wave frequency in Hz\n"
+"-F,--format\tsample format\n"
+"-b,--buffer\tring buffer size in us\n"
+"-p,--period\tperiod size in us\n"
+"-P,--nperiods\tnumber of periods\n"
+"-t,--test\tpink=use pink noise, sine=use sine wave, wav=WAV file\n"
+"-l,--nloops\tspecify number of loops to test, 0 = infinite\n"
+"-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n"
+"-w,--wavfile\tUse the given WAV file as a test sound\n"
+"-W,--wavdir\tSpecify the directory containing WAV files\n"
+"\n"
+msgstr ""
+"Utilisation: speaker-test [OPTION]...\n"
+"-h,--help\taide\n"
+"-D,--device\tpériphérique de lecture\n"
+"-r,--rate\tfréquence du flux en Hz\n"
+"-c,--channels\tnombre de canaux du flux\n"
+"-f,--frequency\tfréquence courbe sinus en Hz\n"
+"-F,--format\tformat d'échantillonage\n"
+"-b,--buffer\ttaille en µs du tampon circulaire\n"
+"-p,--period\ttaille de la période en µs\n"
+"-P,--nperiods\tnombre de périodes\n"
+"-t,--test\tpink=pink noise, sine=courbe sinus, wav=fichier WAV\n"
+"-l,--nloops\tspécifier le nombre de motifs à tester, 0 = infini\n"
+"-s,--speaker\ttest sur une seule enceinte.\n"
+"\t\tValeurs 1=Gauche, 2=Droite, et c.\n"
+"-w,--wavfile\tUtiliser le fichier WAV spécifié pour le test\n"
+"-w,--wavdir\tSpécifier le répertoire contenant les fichiers WAV\n"
+"\n"
+
+#: speaker-test/speaker-test.c:921
+#, c-format
+msgid "Invalid number of periods %d\n"
+msgstr "Nombre de périodes %d incorrect\n"
+
+#: speaker-test/speaker-test.c:937 speaker-test/speaker-test.c:941
+#, c-format
+msgid "Invalid test type %s\n"
+msgstr "Type de test %s incorrect\n"
+
+#: speaker-test/speaker-test.c:953
+#, c-format
+msgid "Invalid parameter for -s option.\n"
+msgstr "Paramètre incorrect pour l'option -s.\n"
+
+#: speaker-test/speaker-test.c:967
+#, c-format
+msgid "Unknown option '%c'\n"
+msgstr "Option '%c' inconnue\n"
+
+#: speaker-test/speaker-test.c:981
+#, c-format
+msgid "Playback device is %s\n"
+msgstr "Le périphérique de lecture est %s\n"
+
+#: speaker-test/speaker-test.c:982
+#, c-format
+msgid "Stream parameters are %iHz, %s, %i channels\n"
+msgstr "Les paramètres du flux sont %iHz, %s, %i canaux\n"
+
+#: speaker-test/speaker-test.c:985
+#, c-format
+msgid "Using 16 octaves of pink noise\n"
+msgstr "Utilisation de 16 octaves de 'pink noise'\n"
+
+#: speaker-test/speaker-test.c:988
+#, c-format
+msgid "Sine wave rate is %.4fHz\n"
+msgstr "La fréquence de la courbe sinus est %.4fHz\n"
+
+#: speaker-test/speaker-test.c:991
+#, c-format
+msgid "WAV file(s)\n"
+msgstr "fichier(s) WAV\n"
+
+#: speaker-test/speaker-test.c:997
+#, c-format
+msgid "Playback open error: %d,%s\n"
+msgstr "Erreur d'ouverture à la lecture: %d,%s\n"
+
+#: speaker-test/speaker-test.c:1002
+#, c-format
+msgid "Setting of hwparams failed: %s\n"
+msgstr "Échec de la configuration des paramètres matériel: %s\n"
+
+#: speaker-test/speaker-test.c:1007
+#, c-format
+msgid "Setting of swparams failed: %s\n"
+msgstr "Échec de la configuration des paramètres logiciel: %s\n"
+
+#: speaker-test/speaker-test.c:1056 speaker-test/speaker-test.c:1078
+#, c-format
+msgid "Transfer failed: %s\n"
+msgstr "Échec du transfer: %s\n"
+
+#: speaker-test/speaker-test.c:1066
+#, c-format
+msgid "Time per period = %lf\n"
+msgstr "Temps par période = %lf\n"
index 8037e37..b9de2f9 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index 84957c0..88440de 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: alsa-utils 1.0.9a\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-31 17:14+0200\n"
+"POT-Creation-Date: 2011-01-31 15:27+0100\n"
 "PO-Revision-Date: 2009-05-27 15:08+0200\n"
 "Last-Translator: Takashi Iwai <tiwai@suse.de>\n"
 "Language-Team: Japanese\n"
@@ -89,267 +89,267 @@ msgstr "デバイス名:"
 msgid "%s: %s\n"
 msgstr ""
 
-#: alsamixer/mixer_display.c:95
+#: alsamixer/mixer_display.c:98
 msgid "Card:"
 msgstr "カード:"
 
-#: alsamixer/mixer_display.c:96
+#: alsamixer/mixer_display.c:99
 msgid "Chip:"
 msgstr "チップ:"
 
-#: alsamixer/mixer_display.c:97
+#: alsamixer/mixer_display.c:100
 msgid "View:"
 msgstr "表示:"
 
-#: alsamixer/mixer_display.c:98
+#: alsamixer/mixer_display.c:101
 msgid "Item:"
 msgstr "項目:"
 
-#: alsamixer/mixer_display.c:101
+#: alsamixer/mixer_display.c:104
 msgid "F1:  Help"
 msgstr "F1:  ヘルプ"
 
-#: alsamixer/mixer_display.c:102
+#: alsamixer/mixer_display.c:105
 msgid "F2:  System information"
 msgstr "F2:  システム情報"
 
-#: alsamixer/mixer_display.c:103
+#: alsamixer/mixer_display.c:106
 msgid "F6:  Select sound card"
 msgstr "F6:  サウンドカード選択"
 
-#: alsamixer/mixer_display.c:104
+#: alsamixer/mixer_display.c:107
 msgid "Esc: Exit"
 msgstr "Esc: 終了"
 
-#: alsamixer/mixer_display.c:171
+#: alsamixer/mixer_display.c:174
 msgid "(unplugged)"
 msgstr ""
 
-#: alsamixer/mixer_display.c:189
+#: alsamixer/mixer_display.c:192
 msgid "Playback"
 msgstr "再生"
 
-#: alsamixer/mixer_display.c:190
+#: alsamixer/mixer_display.c:193
 msgid "Capture"
 msgstr "録音"
 
-#: alsamixer/mixer_display.c:191
+#: alsamixer/mixer_display.c:194
 msgid "All"
 msgstr "全て"
 
-#: alsamixer/mixer_display.c:231
+#: alsamixer/mixer_display.c:234
 msgid "mute"
 msgstr "ミュート"
 
-#: alsamixer/mixer_display.c:272 alsamixer/mixer_display.c:282
+#: alsamixer/mixer_display.c:275 alsamixer/mixer_display.c:285
 msgid "dB gain:"
 msgstr "dBゲイン:"
 
-#: alsamixer/mixer_display.c:282
+#: alsamixer/mixer_display.c:285
 #, c-format
 msgid " [%s %s, %s]"
 msgstr ""
 
-#: alsamixer/mixer_display.c:291 alsamixer/mixer_display.c:297
-#: alsamixer/mixer_display.c:303 alsamixer/mixer_display.c:309
+#: alsamixer/mixer_display.c:294 alsamixer/mixer_display.c:300
+#: alsamixer/mixer_display.c:306 alsamixer/mixer_display.c:312
 msgid "Off"
 msgstr "オフ"
 
-#: alsamixer/mixer_display.c:297 alsamixer/mixer_display.c:309
+#: alsamixer/mixer_display.c:300 alsamixer/mixer_display.c:312
 msgid "On"
 msgstr "オン"
 
-#: alsamixer/mixer_display.c:360
+#: alsamixer/mixer_display.c:363
 msgid "The sound device was unplugged."
 msgstr "デバイスが接続されていません"
 
-#: alsamixer/mixer_display.c:361
+#: alsamixer/mixer_display.c:364
 msgid "Press F6 to select another sound card."
 msgstr "他のカードを選択するにはF6を押して下さい"
 
-#: alsamixer/mixer_display.c:376
+#: alsamixer/mixer_display.c:379
 msgid "This sound device does not have any playback controls."
 msgstr "このカードには再生ミキサーがありません"
 
-#: alsamixer/mixer_display.c:378
+#: alsamixer/mixer_display.c:381
 msgid "This sound device does not have any capture controls."
 msgstr "このカードには録音ミキサーがありません"
 
-#: alsamixer/mixer_display.c:380
+#: alsamixer/mixer_display.c:383
 msgid "This sound device does not have any controls."
 msgstr "このカードには制御可能なミキサーがありません"
 
 #. TRANSLATORS: playback on; one character
-#: alsamixer/mixer_display.c:524 alsamixer/mixer_display.c:529
+#: alsamixer/mixer_display.c:516 alsamixer/mixer_display.c:521
 msgid "O"
 msgstr ""
 
 #. TRANSLATORS: playback muted; one character
-#: alsamixer/mixer_display.c:526 alsamixer/mixer_display.c:530
+#: alsamixer/mixer_display.c:518 alsamixer/mixer_display.c:522
 msgid "M"
 msgstr ""
 
 #. TRANSLATORS: "left"; no more than two characters
-#: alsamixer/mixer_display.c:544
+#: alsamixer/mixer_display.c:536
 msgid "L"
 msgstr ""
 
 #. TRANSLATORS: "right"; no more than two characters
-#: alsamixer/mixer_display.c:548
+#: alsamixer/mixer_display.c:540
 msgid "R"
 msgstr ""
 
 #. TRANSLATORS: no more than eight characters
-#: alsamixer/mixer_display.c:550
+#: alsamixer/mixer_display.c:542
 msgid "CAPTURE"
 msgstr "録音"
 
-#: alsamixer/mixer_display.c:600
+#: alsamixer/mixer_display.c:592
 msgid "Front"
 msgstr "フロント"
 
-#: alsamixer/mixer_display.c:603
+#: alsamixer/mixer_display.c:595
 msgid "Rear"
 msgstr "リア"
 
-#: alsamixer/mixer_display.c:606 speaker-test/speaker-test.c:106
+#: alsamixer/mixer_display.c:598 speaker-test/speaker-test.c:108
 msgid "Center"
 msgstr "センター"
 
-#: alsamixer/mixer_display.c:609
+#: alsamixer/mixer_display.c:601
 msgid "Woofer"
 msgstr "低音"
 
-#: alsamixer/mixer_display.c:612
+#: alsamixer/mixer_display.c:604
 msgid "Side"
 msgstr "サイド"
 
-#: alsamixer/mixer_widget.c:83 alsamixer/mixer_widget.c:88
+#: alsamixer/mixer_widget.c:84 alsamixer/mixer_widget.c:89
 msgid "cannot open mixer"
 msgstr "ミキサーを開けません"
 
-#: alsamixer/mixer_widget.c:94 alsamixer/mixer_widget.c:171
+#: alsamixer/mixer_widget.c:95 alsamixer/mixer_widget.c:172
 msgid "cannot load mixer controls"
 msgstr "ミキサーをロードできません"
 
-#: alsamixer/mixer_widget.c:161
+#: alsamixer/mixer_widget.c:162
 #, c-format
 msgid "Cannot open mixer device '%s'."
 msgstr "ミキサーデバイス'%s'を開けません"
 
-#: alsamixer/mixer_widget.c:182
+#: alsamixer/mixer_widget.c:183
 msgid "Esc     Exit"
 msgstr "Esc    終了"
 
-#: alsamixer/mixer_widget.c:183
+#: alsamixer/mixer_widget.c:184
 msgid "F1 ? H  Help"
 msgstr "F1 ?   H ヘルプ"
 
-#: alsamixer/mixer_widget.c:184
+#: alsamixer/mixer_widget.c:185
 msgid "F2 /    System information"
 msgstr "F2 /   システム情報"
 
-#: alsamixer/mixer_widget.c:185
+#: alsamixer/mixer_widget.c:186
 msgid "F3      Show playback controls"
 msgstr "F3     再生ミキサー表示"
 
-#: alsamixer/mixer_widget.c:186
+#: alsamixer/mixer_widget.c:187
 msgid "F4      Show capture controls"
 msgstr "F4     録音ミキサー表示"
 
-#: alsamixer/mixer_widget.c:187
+#: alsamixer/mixer_widget.c:188
 msgid "F5      Show all controls"
 msgstr "F5     全て表示"
 
-#: alsamixer/mixer_widget.c:188
+#: alsamixer/mixer_widget.c:189
 msgid "Tab     Toggle view mode (F3/F4/F5)"
 msgstr "Tab    表示モード変更 (F3/F4/F5)"
 
-#: alsamixer/mixer_widget.c:189
+#: alsamixer/mixer_widget.c:190
 msgid "F6 S    Select sound card"
 msgstr "F5 S   サウンドカード選択"
 
-#: alsamixer/mixer_widget.c:190
+#: alsamixer/mixer_widget.c:191
 msgid "L       Redraw screen"
 msgstr "L      画面再描画"
 
-#: alsamixer/mixer_widget.c:192
+#: alsamixer/mixer_widget.c:193
 msgid "Left    Move to the previous control"
 msgstr "←     前の項目に移る"
 
-#: alsamixer/mixer_widget.c:193
+#: alsamixer/mixer_widget.c:194
 msgid "Right   Move to the next control"
 msgstr "→     次の項目に移る"
 
 # ↑
-#: alsamixer/mixer_widget.c:195
+#: alsamixer/mixer_widget.c:196
 msgid "Up/Down    Change volume"
 msgstr "↑/↓     音量変更"
 
-#: alsamixer/mixer_widget.c:196
+#: alsamixer/mixer_widget.c:197
 msgid "+ -        Change volume"
 msgstr "+ -       音量変更"
 
-#: alsamixer/mixer_widget.c:197
+#: alsamixer/mixer_widget.c:198
 msgid "Page Up/Dn Change volume in big steps"
 msgstr "Page Up/dn 音量変更"
 
-#: alsamixer/mixer_widget.c:198
+#: alsamixer/mixer_widget.c:199
 msgid "End        Set volume to 0%"
 msgstr "End       音量 0%"
 
-#: alsamixer/mixer_widget.c:199
+#: alsamixer/mixer_widget.c:200
 msgid "0-9        Set volume to 0%-90%"
 msgstr "0-9       音量 0%-90%"
 
-#: alsamixer/mixer_widget.c:200
+#: alsamixer/mixer_widget.c:201
 msgid "Q W E      Increase left/both/right volumes"
 msgstr "Q W E     左/両/右音量アップ"
 
 #. TRANSLATORS: or Y instead of Z
-#: alsamixer/mixer_widget.c:202
+#: alsamixer/mixer_widget.c:203
 msgid "Z X C      Decrease left/both/right volumes"
 msgstr "Z X C     左/両/右音量ダウン"
 
-#: alsamixer/mixer_widget.c:203
+#: alsamixer/mixer_widget.c:204
 msgid "B          Balance left and right volumes"
 msgstr "B         左右音量を平均化する"
 
-#: alsamixer/mixer_widget.c:205
+#: alsamixer/mixer_widget.c:206
 msgid "M          Toggle mute"
 msgstr "M         ミュートをトグル"
 
 #. TRANSLATORS: or , .
-#: alsamixer/mixer_widget.c:207
+#: alsamixer/mixer_widget.c:208
 msgid "< >        Toggle left/right mute"
 msgstr "< >       左/右ミュートをトグル"
 
-#: alsamixer/mixer_widget.c:209
+#: alsamixer/mixer_widget.c:210
 msgid "Space      Toggle capture"
 msgstr "スペース  録音をトグル"
 
 #. TRANSLATORS: or Insert Delete
-#: alsamixer/mixer_widget.c:211
+#: alsamixer/mixer_widget.c:212
 msgid "; '        Toggle left/right capture"
 msgstr "; '       左/右録音をトグル"
 
-#: alsamixer/mixer_widget.c:213
+#: alsamixer/mixer_widget.c:214
 msgid "Authors:"
 msgstr "作者:"
 
-#: alsamixer/mixer_widget.c:214
-msgid "  Tim Janik <timj@gtk.org>"
+#: alsamixer/mixer_widget.c:215
+msgid "  Tim Janik"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:215
+#: alsamixer/mixer_widget.c:216
 msgid "  Jaroslav Kysela <perex@perex.cz>"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:216
+#: alsamixer/mixer_widget.c:217
 msgid "  Clemens Ladisch <clemens@ladisch.de>"
 msgstr ""
 
-#: alsamixer/mixer_widget.c:218
+#: alsamixer/mixer_widget.c:219
 msgid "Help"
 msgstr "ヘルプ"
 
@@ -366,24 +366,24 @@ msgstr "エラー"
 msgid "Cannot open file \"%s\"."
 msgstr "\"%s\"をオープンできません"
 
-#: aplay/aplay.c:139
+#: aplay/aplay.c:152
 msgid "raw data"
 msgstr "raw データ"
 
-#: aplay/aplay.c:140
+#: aplay/aplay.c:153
 msgid "VOC"
 msgstr "VOC"
 
-#: aplay/aplay.c:142
+#: aplay/aplay.c:155
 msgid "WAVE"
 msgstr "WAVE"
 
-#: aplay/aplay.c:143
+#: aplay/aplay.c:156
 msgid "Sparc Audio"
 msgstr "Sparc オーディオ"
 
-#: aplay/aplay.c:164
-#, c-format
+#: aplay/aplay.c:177
+#, fuzzy, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
 "\n"
@@ -421,6 +421,11 @@ msgid ""
 "                        expression for validation is: coef * (buffer_size / "
 "2)\n"
 "    --test-nowait       do not wait for ring buffer - eats whole CPU\n"
+"    --max-file-time=#   start another output file when the old file has "
+"recorded\n"
+"                        for this many seconds\n"
+"    --process-id-file   write the process ID here\n"
+"    --use-strftime      apply the strftime facility to the output file name\n"
 msgstr ""
 "使用法: %s [オプション]... [ファイル]...\n"
 "\n"
@@ -457,12 +462,12 @@ msgstr ""
 "                        テスト範囲: coef * (buffer_size / 2)\n"
 "    --test-nowait       リングバッファのウエイトを禁止 - 注意:高CPU負荷\n"
 
-#: aplay/aplay.c:199 speaker-test/speaker-test.c:740
+#: aplay/aplay.c:216 speaker-test/speaker-test.c:819
 #, c-format
 msgid "Recognized sample formats are:"
 msgstr "認識されるサンプルフォーマット:"
 
-#: aplay/aplay.c:205
+#: aplay/aplay.c:222
 #, c-format
 msgid ""
 "\n"
@@ -471,154 +476,159 @@ msgstr ""
 "\n"
 "これらのいくつかは指定のハードウェアで使用不可能な場合があります\n"
 
-#: aplay/aplay.c:206
+#: aplay/aplay.c:223
 #, c-format
 msgid "The availabled format shortcuts are:\n"
 msgstr "可能なフォーマットの省略形:\n"
 
-#: aplay/aplay.c:207
+#: aplay/aplay.c:224
 #, c-format
 msgid "-f cd (16 bit little endian, 44100, stereo)\n"
 msgstr "-f cd (16 ビット、リトルエンディアン、44100、ステレオ)\n"
 
-#: aplay/aplay.c:208
+#: aplay/aplay.c:225
 #, c-format
 msgid "-f cdr (16 bit big endian, 44100, stereo)\n"
 msgstr "-f cdr (16 ビット、ビッグエンディアン、44100、ステレオ)\n"
 
-#: aplay/aplay.c:209
+#: aplay/aplay.c:226
 #, c-format
 msgid "-f dat (16 bit little endian, 48000, stereo)\n"
 msgstr "-f dat (16 ビット、リトルエンディアン、48000、ステレオ)\n"
 
-#: aplay/aplay.c:223
+#: aplay/aplay.c:240
 msgid "no soundcards found..."
 msgstr "サウンドカードが見つかりません..."
 
-#: aplay/aplay.c:226
+#: aplay/aplay.c:243
 #, c-format
 msgid "**** List of %s Hardware Devices ****\n"
 msgstr "**** ハードウェアデバイス %s のリスト ****\n"
 
-#: aplay/aplay.c:255
+#: aplay/aplay.c:272
 #, c-format
 msgid "card %i: %s [%s], device %i: %s [%s]\n"
 msgstr "カード %i: %s [%s], デバイス %i: %s [%s]\n"
 
-#: aplay/aplay.c:261
+#: aplay/aplay.c:278
 #, c-format
 msgid "  Subdevices: %i/%i\n"
 msgstr "  サブデバイス: %i/%i\n"
 
-#: aplay/aplay.c:268
+#: aplay/aplay.c:285
 #, c-format
 msgid "  Subdevice #%i: %s\n"
 msgstr "  サブデバイス #%i: %s\n"
 
-#: aplay/aplay.c:332
+#: aplay/aplay.c:362
 #, c-format
 msgid "Aborted by signal %s...\n"
 msgstr "シグナル %s で中断...\n"
 
-#: aplay/aplay.c:430
+#: aplay/aplay.c:473
 msgid "command should be named either arecord or aplay"
 msgstr "arecord または aplay コマンドのみ可能"
 
-#: aplay/aplay.c:469
+#: aplay/aplay.c:512
 #, c-format
 msgid "unrecognized file format %s"
 msgstr "不正なファイルフォーマット %s"
 
-#: aplay/aplay.c:476
+#: aplay/aplay.c:519
 #, c-format
 msgid "value %i for channels is invalid"
 msgstr "不正なチャネル数 %i"
 
-#: aplay/aplay.c:495
+#: aplay/aplay.c:538
 #, c-format
 msgid "wrong extended format '%s'"
 msgstr "不正な拡張フォーマット '%s'"
 
-#: aplay/aplay.c:506
+#: aplay/aplay.c:549
 #, c-format
 msgid "bad speed value %i"
 msgstr "不正なレート値 %i"
 
-#: aplay/aplay.c:592
+#: aplay/aplay.c:644
 #, c-format
 msgid "Try `%s --help' for more information.\n"
 msgstr "より詳しい情報は「%s --help」を実行してください\n"
 
-#: aplay/aplay.c:608
+#: aplay/aplay.c:660
 #, c-format
 msgid "audio open error: %s"
 msgstr ""
 
-#: aplay/aplay.c:613
+#: aplay/aplay.c:665
 #, c-format
 msgid "info error: %s"
 msgstr ""
 
-#: aplay/aplay.c:620
+#: aplay/aplay.c:672
 #, c-format
 msgid "nonblock setting error: %s"
 msgstr ""
 
-#: aplay/aplay.c:630 aplay/aplay.c:737 aplay/aplay.c:1092
+#: aplay/aplay.c:682 aplay/aplay.c:806 aplay/aplay.c:1174
 msgid "not enough memory"
 msgstr "メモリが足りません"
 
-#: aplay/aplay.c:727
+#: aplay/aplay.c:706
+#, fuzzy, c-format
+msgid "Cannot create process ID file %s: %s"
+msgstr "WAVファイルがオープンできません: %s\n"
+
+#: aplay/aplay.c:796
 #, c-format
 msgid "read error (called from line %i)"
 msgstr "リードエラー (%i 行)"
 
-#: aplay/aplay.c:785
+#: aplay/aplay.c:854
 #, c-format
 msgid "unknown length of 'fmt ' chunk (read %u, should be %u at least)"
 msgstr ""
 
-#: aplay/aplay.c:795
+#: aplay/aplay.c:864
 #, c-format
 msgid ""
 "unknown length of extensible 'fmt ' chunk (read %u, should be %u at least)"
 msgstr ""
 
-#: aplay/aplay.c:800
+#: aplay/aplay.c:869
 msgid "wrong format tag in extensible 'fmt ' chunk"
 msgstr ""
 
-#: aplay/aplay.c:807
+#: aplay/aplay.c:876
 #, c-format
 msgid "can't play WAVE-file format 0x%04x which is not PCM or FLOAT encoded"
 msgstr ""
 
-#: aplay/aplay.c:811
+#: aplay/aplay.c:880
 #, c-format
 msgid "can't play WAVE-files with %d tracks"
 msgstr "%d トラックを含む WAVE ファイルは再生できません"
 
-#: aplay/aplay.c:819 aplay/aplay.c:919
+#: aplay/aplay.c:888 aplay/aplay.c:988
 #, c-format
 msgid "Warning: format is changed to U8\n"
 msgstr "警告: フォーマットは U8 に変更されます\n"
 
-#: aplay/aplay.c:825
+#: aplay/aplay.c:894
 #, c-format
 msgid "Warning: format is changed to S16_LE\n"
 msgstr "警告: フォーマットは S16_LE に変更されます\n"
 
-#: aplay/aplay.c:833
+#: aplay/aplay.c:902
 #, c-format
 msgid "Warning: format is changed to S24_3LE\n"
 msgstr "警告: フォーマットは S24_3LE に変更されます\n"
 
-#: aplay/aplay.c:839
+#: aplay/aplay.c:908
 #, c-format
 msgid "Warning: format is changed to S24_LE\n"
 msgstr "警告: フォーマットは S24_LE に変更されます\n"
 
-#: aplay/aplay.c:843
+#: aplay/aplay.c:912
 #, c-format
 msgid ""
 " can't play WAVE-files with sample %d bits in %d bytes wide (%d channels)"
@@ -626,261 +636,292 @@ msgstr ""
 "%2$d バイト長 %1$d サンプルビット (%3$d チャネル) の WAVE ファイルは再生でき"
 "ません"
 
-#: aplay/aplay.c:855
+#: aplay/aplay.c:924
 #, c-format
 msgid " can't play WAVE-files with sample %d bits wide"
 msgstr "%d ビット長のサンプルの WAVE ファイルは再生できません"
 
-#: aplay/aplay.c:913
+#: aplay/aplay.c:982
 #, c-format
 msgid "Warning: format is changed to MU_LAW\n"
 msgstr "警告: フォーマットは MU_LAW に変更されます\n"
 
-#: aplay/aplay.c:925
+#: aplay/aplay.c:994
 #, c-format
 msgid "Warning: format is changed to S16_BE\n"
 msgstr "警告: フォーマットは S16_BE に変更されます\n"
 
-#: aplay/aplay.c:938 aplay/aplay.c:1768 aplay/aplay.c:1775 aplay/aplay.c:2297
-#: aplay/aplay.c:2309
+#: aplay/aplay.c:1007 aplay/aplay.c:1925 aplay/aplay.c:1932 aplay/aplay.c:2455
+#: aplay/aplay.c:2467
 msgid "read error"
 msgstr "リードエラー"
 
-#: aplay/aplay.c:957
+#: aplay/aplay.c:1037
 msgid "Broken configuration for this PCM: no configurations available"
 msgstr "指定の PCM を使用できません: 設定がありません"
 
-#: aplay/aplay.c:974
+#: aplay/aplay.c:1054
 msgid "Access type not available"
 msgstr "アクセスタイプが使用不可能"
 
-#: aplay/aplay.c:979
+#: aplay/aplay.c:1059
 msgid "Sample format non available"
 msgstr "サンプルフォーマットが使用不可能"
 
-#: aplay/aplay.c:984
+#: aplay/aplay.c:1065
 msgid "Channels count non available"
 msgstr "チャネル数が使用不可能"
 
-#: aplay/aplay.c:999
+#: aplay/aplay.c:1080
 #, c-format
 msgid "Warning: rate is not accurate (requested = %iHz, got = %iHz)\n"
 msgstr "警告: レートが不正確です (要求値 = %iHz, 使用値 = %iHz)\n"
 
-#: aplay/aplay.c:1005
+#: aplay/aplay.c:1086
 #, c-format
 msgid "         please, try the plug plugin %s\n"
 msgstr "        plug プラグイン%s を使用してください\n"
 
-#: aplay/aplay.c:1041
+#: aplay/aplay.c:1123
 msgid "Unable to install hw params:"
 msgstr "hw params のインストールに失敗しました:"
 
-#: aplay/aplay.c:1048
+#: aplay/aplay.c:1130
 #, c-format
 msgid "Can't use period equal to buffer size (%lu == %lu)"
 msgstr "period と buffer サイズには同じ値を使用できません (%lu == %lu)"
 
-#: aplay/aplay.c:1079
+#: aplay/aplay.c:1161
 msgid "unable to install sw params:"
 msgstr "sw params のインストールに失敗しました:"
 
-#: aplay/aplay.c:1154
+#: aplay/aplay.c:1192
+#, c-format
+msgid "snd_pcm_mmap_begin problem: %s"
+msgstr ""
+
+#: aplay/aplay.c:1215
+#, c-format
+msgid "stdin O_NONBLOCK flag setup failed\n"
+msgstr ""
+
+#: aplay/aplay.c:1237
+#, c-format
+msgid "\rPAUSE command ignored (no hw support)\n"
+msgstr ""
+
+#: aplay/aplay.c:1242
+#, fuzzy, c-format
+msgid "pause push error: %s"
+msgstr "ステータスエラー: %s"
+
+#: aplay/aplay.c:1251
+#, fuzzy, c-format
+msgid "pause release error: %s"
+msgstr "サスペンド: prepare エラー: %s"
+
+#: aplay/aplay.c:1265
+#, c-format
+msgid ""
+"\r=== PAUSE ===                                                            "
+msgstr ""
+
+#: aplay/aplay.c:1307
 #, c-format
 msgid "status error: %s"
 msgstr "ステータスエラー: %s"
 
-#: aplay/aplay.c:1164 aplay/aplay.c:1175
+#: aplay/aplay.c:1317 aplay/aplay.c:1328
 #, c-format
 msgid "%s!!! (at least %.3f ms long)\n"
 msgstr "%s!!! (少なくとも %.3f ms)\n"
 
-#: aplay/aplay.c:1165 aplay/aplay.c:1168 aplay/aplay.c:1176
+#: aplay/aplay.c:1318 aplay/aplay.c:1321 aplay/aplay.c:1329
 msgid "underrun"
 msgstr "アンダーラン"
 
-#: aplay/aplay.c:1165 aplay/aplay.c:1176
+#: aplay/aplay.c:1318 aplay/aplay.c:1329
 msgid "overrun"
 msgstr "オーバーラン"
 
-#: aplay/aplay.c:1180
+#: aplay/aplay.c:1333
 #, c-format
 msgid "Status:\n"
 msgstr "ステータス:\n"
 
-#: aplay/aplay.c:1184
+#: aplay/aplay.c:1337
 #, c-format
 msgid "xrun: prepare error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1190
+#: aplay/aplay.c:1343
 #, c-format
 msgid "Status(DRAINING):\n"
 msgstr "ステータス(DRAINING):\n"
 
-#: aplay/aplay.c:1194
+#: aplay/aplay.c:1347
 #, c-format
 msgid "capture stream format change? attempting recover...\n"
 msgstr "録音ストリームのフォーマットが変更? 修復を試みます...\n"
 
-#: aplay/aplay.c:1196
+#: aplay/aplay.c:1349
 #, c-format
 msgid "xrun(DRAINING): prepare error: %s"
 msgstr ""
 
-#: aplay/aplay.c:1203
+#: aplay/aplay.c:1356
 #, c-format
 msgid "Status(R/W):\n"
 msgstr "ステータス(R/W):\n"
 
-#: aplay/aplay.c:1206
+#: aplay/aplay.c:1359
 #, c-format
 msgid "read/write error, state = %s"
 msgstr "読み書きエラー, ステータス = %s"
 
-#: aplay/aplay.c:1216
+#: aplay/aplay.c:1369
 #, c-format
 msgid "Suspended. Trying resume. "
 msgstr "サスペンド中です。レジュームします。"
 
-#: aplay/aplay.c:1221
+#: aplay/aplay.c:1374
 #, c-format
 msgid "Failed. Restarting stream. "
 msgstr "失敗しました。ストリームを再スタートします。"
 
-#: aplay/aplay.c:1223
+#: aplay/aplay.c:1376
 #, c-format
 msgid "suspend: prepare error: %s"
 msgstr "サスペンド: prepare エラー: %s"
 
-#: aplay/aplay.c:1228
+#: aplay/aplay.c:1381
 #, c-format
 msgid "Done.\n"
 msgstr "終了\n"
 
-#: aplay/aplay.c:1250
+#: aplay/aplay.c:1403
 #, c-format
 msgid " !clip  "
 msgstr ""
 
-#: aplay/aplay.c:1397
+#: aplay/aplay.c:1550
 #, c-format
 msgid "Unsupported bit size %d.\n"
 msgstr ""
 
-#: aplay/aplay.c:1431
+#: aplay/aplay.c:1584
 #, c-format
 msgid "Max peak (%li samples): 0x%08x "
 msgstr "最大ピーク (%li サンプル): 0x%08x "
 
-#: aplay/aplay.c:1465
+#: aplay/aplay.c:1618
 #, c-format
 msgid ""
 "Suspicious buffer position (%li total): avail = %li, delay = %li, buffer = %"
 "li\n"
 msgstr ""
 
-#: aplay/aplay.c:1528
+#: aplay/aplay.c:1682
 #, c-format
 msgid "write error: %s"
 msgstr "書込エラー: %s"
 
-#: aplay/aplay.c:1574
+#: aplay/aplay.c:1729
 #, c-format
 msgid "writev error: %s"
 msgstr "書込(writev)エラー: %s"
 
-#: aplay/aplay.c:1617
+#: aplay/aplay.c:1773
 #, c-format
 msgid "read error: %s"
 msgstr "読込エラー: %s"
 
-#: aplay/aplay.c:1660
+#: aplay/aplay.c:1817
 #, c-format
 msgid "readv error: %s"
 msgstr "読込(readv)エラー: %s"
 
-#: aplay/aplay.c:1708
+#: aplay/aplay.c:1865
 msgid "can't allocate buffer for silence"
 msgstr "サイレンス用のバッファの取得に失敗しました"
 
-#: aplay/aplay.c:1717 aplay/aplay.c:1943 aplay/aplay.c:1948 aplay/aplay.c:1995
-#: aplay/aplay.c:2004 aplay/aplay.c:2011 aplay/aplay.c:2021 aplay/aplay.c:2027
-#: aplay/aplay.c:2099 aplay/aplay.c:2129 aplay/aplay.c:2143
+#: aplay/aplay.c:1874 aplay/aplay.c:2100 aplay/aplay.c:2105 aplay/aplay.c:2152
+#: aplay/aplay.c:2161 aplay/aplay.c:2168 aplay/aplay.c:2178 aplay/aplay.c:2184
+#: aplay/aplay.c:2256 aplay/aplay.c:2286 aplay/aplay.c:2300
 msgid "write error"
 msgstr "書込エラー"
 
-#: aplay/aplay.c:1730
+#: aplay/aplay.c:1887
 #, c-format
 msgid "voc_pcm_flush - silence error"
 msgstr ""
 
-#: aplay/aplay.c:1733
+#: aplay/aplay.c:1890
 msgid "voc_pcm_flush error"
 msgstr ""
 
-#: aplay/aplay.c:1759
+#: aplay/aplay.c:1916
 msgid "malloc error"
 msgstr "malloc エラー"
 
-#: aplay/aplay.c:1763
+#: aplay/aplay.c:1920
 #, c-format
 msgid "Playing Creative Labs Channel file '%s'...\n"
 msgstr "Creative Labs Channel ファイル '%s' を演奏中...\n"
 
-#: aplay/aplay.c:1831 aplay/aplay.c:1923
+#: aplay/aplay.c:1988 aplay/aplay.c:2080
 msgid "can't play packed .voc files"
 msgstr "packed .voc ファイルは演奏できません"
 
-#: aplay/aplay.c:1883
+#: aplay/aplay.c:2040
 #, c-format
 msgid "can't play loops; %s isn't seekable\n"
 msgstr "ループ演奏できません。%s はシーク不可能です\n"
 
-#: aplay/aplay.c:1932
+#: aplay/aplay.c:2089
 #, c-format
 msgid "unknown blocktype %d. terminate."
 msgstr "未知のブロックタイプ %d: 終了します。"
 
-#: aplay/aplay.c:2063
+#: aplay/aplay.c:2220
 #, c-format
 msgid "Wave doesn't support %s format..."
 msgstr "WAVE は %s フォーマットをサポートしません..."
 
-#: aplay/aplay.c:2123
+#: aplay/aplay.c:2280
 #, c-format
 msgid "Sparc Audio doesn't support %s format..."
 msgstr "Sparc オーディオは %s フォーマットをサポートしません..."
 
-#: aplay/aplay.c:2204
+#: aplay/aplay.c:2361
 msgid "Playing"
 msgstr "再生中"
 
-#: aplay/aplay.c:2204
+#: aplay/aplay.c:2361
 msgid "Recording"
 msgstr "録音中"
 
-#: aplay/aplay.c:2208
+#: aplay/aplay.c:2365
 #, c-format
 msgid "Rate %d Hz, "
 msgstr "レート %d Hz, "
 
-#: aplay/aplay.c:2210
+#: aplay/aplay.c:2367
 #, c-format
 msgid "Mono"
 msgstr "モノラル"
 
-#: aplay/aplay.c:2212
+#: aplay/aplay.c:2369
 #, c-format
 msgid "Stereo"
 msgstr "ステレオ"
 
-#: aplay/aplay.c:2214
+#: aplay/aplay.c:2371
 #, c-format
 msgid "Channels %i"
 msgstr "チャネル数 %i"
 
-#: aplay/aplay.c:2573 aplay/aplay.c:2626
+#: aplay/aplay.c:2882 aplay/aplay.c:2935
 #, c-format
 msgid "You need to specify %d files"
 msgstr "%d 個のファイルを指定してください"
@@ -991,47 +1032,47 @@ msgstr "ユーザ"
 msgid "kernel"
 msgstr "カーネル"
 
-#: seq/aconnect/aconnect.c:326
+#: seq/aconnect/aconnect.c:307
 #, c-format
 msgid "can't open sequencer\n"
 msgstr "sequencer をオープンできません\n"
 
-#: seq/aconnect/aconnect.c:354
+#: seq/aconnect/aconnect.c:335
 #, c-format
 msgid "can't get client id\n"
 msgstr "クライアント ID を取得できません\n"
 
-#: seq/aconnect/aconnect.c:361
+#: seq/aconnect/aconnect.c:342
 #, c-format
 msgid "can't set client info\n"
 msgstr "クライアント情報を取得できません\n"
 
-#: seq/aconnect/aconnect.c:368
+#: seq/aconnect/aconnect.c:349
 #, c-format
 msgid "invalid sender address %s\n"
 msgstr "送信アドレスが不正です: %s\n"
 
-#: seq/aconnect/aconnect.c:373 seq/aseqnet/aseqnet.c:290
+#: seq/aconnect/aconnect.c:354 seq/aseqnet/aseqnet.c:290
 #, c-format
 msgid "invalid destination address %s\n"
 msgstr "受信アドレスが不正です: %s\n"
 
-#: seq/aconnect/aconnect.c:387
+#: seq/aconnect/aconnect.c:368
 #, c-format
 msgid "No subscription is found\n"
 msgstr "接続が見つかりません\n"
 
-#: seq/aconnect/aconnect.c:392
+#: seq/aconnect/aconnect.c:373
 #, c-format
 msgid "Disconnection failed (%s)\n"
 msgstr "切り離しに失敗 (%s)\n"
 
-#: seq/aconnect/aconnect.c:398
+#: seq/aconnect/aconnect.c:379
 #, c-format
 msgid "Connection is already subscribed\n"
 msgstr "既に接続されています\n"
 
-#: seq/aconnect/aconnect.c:403
+#: seq/aconnect/aconnect.c:384
 #, c-format
 msgid "Connection failed (%s)\n"
 msgstr "接続に失敗 (%s)\n"
@@ -1161,257 +1202,257 @@ msgstr "チャネル %2d: ノートオフ   : %5d\n"
 msgid "disconnected\n"
 msgstr "切り離し\n"
 
-#: speaker-test/speaker-test.c:102
+#: speaker-test/speaker-test.c:104
 msgid "Front Left"
 msgstr ""
 
-#: speaker-test/speaker-test.c:103
+#: speaker-test/speaker-test.c:105
 msgid "Front Right"
 msgstr ""
 
-#: speaker-test/speaker-test.c:104
+#: speaker-test/speaker-test.c:106
 msgid "Rear Left"
 msgstr ""
 
-#: speaker-test/speaker-test.c:105
+#: speaker-test/speaker-test.c:107
 msgid "Rear Right"
 msgstr ""
 
-#: speaker-test/speaker-test.c:107
+#: speaker-test/speaker-test.c:109
 msgid "LFE"
 msgstr ""
 
-#: speaker-test/speaker-test.c:108
+#: speaker-test/speaker-test.c:110
 msgid "Side Left"
 msgstr ""
 
-#: speaker-test/speaker-test.c:109
+#: speaker-test/speaker-test.c:111
 msgid "Side Right"
 msgstr ""
 
-#: speaker-test/speaker-test.c:110
+#: speaker-test/speaker-test.c:112
 msgid "Channel 9"
 msgstr ""
 
-#: speaker-test/speaker-test.c:111
+#: speaker-test/speaker-test.c:113
 msgid "Channel 10"
 msgstr ""
 
-#: speaker-test/speaker-test.c:112
+#: speaker-test/speaker-test.c:114
 msgid "Channel 11"
 msgstr ""
 
-#: speaker-test/speaker-test.c:113
+#: speaker-test/speaker-test.c:115
 msgid "Channel 12"
 msgstr ""
 
-#: speaker-test/speaker-test.c:114
+#: speaker-test/speaker-test.c:116
 msgid "Channel 13"
 msgstr ""
 
-#: speaker-test/speaker-test.c:115
+#: speaker-test/speaker-test.c:117
 msgid "Channel 14"
 msgstr ""
 
-#: speaker-test/speaker-test.c:116
+#: speaker-test/speaker-test.c:118
 msgid "Channel 15"
 msgstr ""
 
-#: speaker-test/speaker-test.c:117
+#: speaker-test/speaker-test.c:119
 msgid "Channel 16"
 msgstr ""
 
-#: speaker-test/speaker-test.c:307
+#: speaker-test/speaker-test.c:383
 #, c-format
 msgid "Broken configuration for playback: no configurations available: %s\n"
 msgstr "再生用に設定できません: 設定がみつかりません: %s\n"
 
-#: speaker-test/speaker-test.c:314
+#: speaker-test/speaker-test.c:390
 #, c-format
 msgid "Access type not available for playback: %s\n"
 msgstr "アクセスタイプが不正です: %s\n"
 
-#: speaker-test/speaker-test.c:321
+#: speaker-test/speaker-test.c:397
 #, c-format
 msgid "Sample format not available for playback: %s\n"
 msgstr "指定のサンプルフォーマットを使用できません: %s\n"
 
-#: speaker-test/speaker-test.c:328
+#: speaker-test/speaker-test.c:404
 #, c-format
 msgid "Channels count (%i) not available for playbacks: %s\n"
 msgstr "チャネル数 (%i) を使用できません: %s\n"
 
-#: speaker-test/speaker-test.c:336
+#: speaker-test/speaker-test.c:412
 #, c-format
 msgid "Rate %iHz not available for playback: %s\n"
 msgstr "レート %iHz を使用できません: %s\n"
 
-#: speaker-test/speaker-test.c:341
+#: speaker-test/speaker-test.c:417
 #, c-format
 msgid "Rate doesn't match (requested %iHz, get %iHz, err %d)\n"
 msgstr "設定レートが一致しません< (要求値 %iHz, 取得値 %iHz, エラー %d)\n"
 
-#: speaker-test/speaker-test.c:345
+#: speaker-test/speaker-test.c:421
 #, c-format
 msgid "Rate set to %iHz (requested %iHz)\n"
 msgstr "レート %iHz (要求値 %iHz)\n"
 
-#: speaker-test/speaker-test.c:351
+#: speaker-test/speaker-test.c:427
 #, c-format
 msgid "Buffer size range from %lu to %lu\n"
 msgstr "バッファサイズ範囲 %lu 〜 %lu\n"
 
-#: speaker-test/speaker-test.c:352
+#: speaker-test/speaker-test.c:428
 #, c-format
 msgid "Period size range from %lu to %lu\n"
 msgstr "ピリオドサイズ範囲 %lu 〜 %lu\n"
 
-#: speaker-test/speaker-test.c:354
+#: speaker-test/speaker-test.c:430
 #, c-format
 msgid "Requested period time %u us\n"
 msgstr "要求されたピリオド長 %u us\n"
 
-#: speaker-test/speaker-test.c:357
+#: speaker-test/speaker-test.c:433
 #, c-format
 msgid "Unable to set period time %u us for playback: %s\n"
 msgstr "ピリオド長 %u us を設定できません: %s\n"
 
-#: speaker-test/speaker-test.c:363
+#: speaker-test/speaker-test.c:439
 #, c-format
 msgid "Requested buffer time %u us\n"
 msgstr "要求されたバッファ長 %u us\n"
 
-#: speaker-test/speaker-test.c:366
+#: speaker-test/speaker-test.c:442
 #, c-format
 msgid "Unable to set buffer time %u us for playback: %s\n"
 msgstr "バッファ長 %u us を設定できません: %s\n"
 
-#: speaker-test/speaker-test.c:375
+#: speaker-test/speaker-test.c:451
 #, c-format
 msgid "Using max buffer size %lu\n"
 msgstr "最大バッファサイズ %lu を使用\n"
 
-#: speaker-test/speaker-test.c:378
+#: speaker-test/speaker-test.c:454
 #, c-format
 msgid "Unable to set buffer size %lu for playback: %s\n"
 msgstr "バッファサイズ %lu を設定できません: %s\n"
 
-#: speaker-test/speaker-test.c:384
+#: speaker-test/speaker-test.c:460
 #, c-format
 msgid "Periods = %u\n"
 msgstr "ピリオド数 = %u\n"
 
-#: speaker-test/speaker-test.c:387
+#: speaker-test/speaker-test.c:463
 #, c-format
 msgid "Unable to set nperiods %u for playback: %s\n"
 msgstr "ピリオド数 %u を設定できません: %s\n"
 
-#: speaker-test/speaker-test.c:396
+#: speaker-test/speaker-test.c:472
 #, c-format
 msgid "Unable to set hw params for playback: %s\n"
 msgstr "hw params を設定できません: %s\n"
 
-#: speaker-test/speaker-test.c:402
+#: speaker-test/speaker-test.c:478
 #, c-format
 msgid "was set period_size = %lu\n"
 msgstr "period_size = %lu で設定\n"
 
-#: speaker-test/speaker-test.c:403
+#: speaker-test/speaker-test.c:479
 #, c-format
 msgid "was set buffer_size = %lu\n"
 msgstr "buffer_size = %lu で設定\n"
 
-#: speaker-test/speaker-test.c:405
+#: speaker-test/speaker-test.c:481
 #, c-format
 msgid "buffer to small, could not use\n"
 msgstr "バッファが小さすぎます\n"
 
-#: speaker-test/speaker-test.c:418
+#: speaker-test/speaker-test.c:494
 #, c-format
 msgid "Unable to determine current swparams for playback: %s\n"
 msgstr "現在の swparams を取得できません: %s\n"
 
-#: speaker-test/speaker-test.c:425
+#: speaker-test/speaker-test.c:501
 #, c-format
 msgid "Unable to set start threshold mode for playback: %s\n"
 msgstr "start_threshold モードを設定できません: %s\n"
 
-#: speaker-test/speaker-test.c:432
+#: speaker-test/speaker-test.c:508
 #, c-format
 msgid "Unable to set avail min for playback: %s\n"
 msgstr "avail_min を設定できません: %s\n"
 
-#: speaker-test/speaker-test.c:439
+#: speaker-test/speaker-test.c:515
 #, c-format
 msgid "Unable to set sw params for playback: %s\n"
 msgstr "再生用の sw params を設定できません: %s\n"
 
-#: speaker-test/speaker-test.c:454
+#: speaker-test/speaker-test.c:530
 #, c-format
 msgid "Can't recovery from underrun, prepare failed: %s\n"
 msgstr "アンダーランから復帰失敗: %s\n"
 
-#: speaker-test/speaker-test.c:465
+#: speaker-test/speaker-test.c:541
 #, c-format
 msgid "Can't recovery from suspend, prepare failed: %s\n"
 msgstr "サスペンドから復帰失敗: %s\n"
 
-#: speaker-test/speaker-test.c:529 speaker-test/speaker-test.c:926
+#: speaker-test/speaker-test.c:605 speaker-test/speaker-test.c:1025
 #, c-format
 msgid "No enough memory\n"
 msgstr "メモリが足りません\n"
 
-#: speaker-test/speaker-test.c:534
+#: speaker-test/speaker-test.c:610
 #, c-format
 msgid "Cannot open WAV file %s\n"
 msgstr "WAVファイルがオープンできません: %s\n"
 
-#: speaker-test/speaker-test.c:538 speaker-test/speaker-test.c:567
+#: speaker-test/speaker-test.c:614 speaker-test/speaker-test.c:643
 #, c-format
 msgid "Invalid WAV file %s\n"
 msgstr "不正なWAVファイルです: %s\n"
 
-#: speaker-test/speaker-test.c:543
+#: speaker-test/speaker-test.c:619
 #, c-format
 msgid "Not a WAV file: %s\n"
 msgstr "WAVファイルではありません: %s\n"
 
-#: speaker-test/speaker-test.c:547
+#: speaker-test/speaker-test.c:623
 #, c-format
 msgid "Unsupported WAV format %d for %s\n"
 msgstr "未サポートのWAVフォーマット %d: %s\n"
 
-#: speaker-test/speaker-test.c:552
+#: speaker-test/speaker-test.c:628
 #, c-format
 msgid "%s is not a mono stream (%d channels)\n"
 msgstr "%s はモノストリームではありません (%d チャネル)\n"
 
-#: speaker-test/speaker-test.c:557
+#: speaker-test/speaker-test.c:633
 #, c-format
 msgid "Sample rate doesn't match (%d) for %s\n"
 msgstr "サンプルレートが不一致です(%d): %s\n"
 
-#: speaker-test/speaker-test.c:562
+#: speaker-test/speaker-test.c:638
 #, c-format
 msgid "Unsupported sample format bits %d for %s\n"
 msgstr "未サポートのサンプルフォーマットビット %d: %s\n"
 
-#: speaker-test/speaker-test.c:612
+#: speaker-test/speaker-test.c:688
 #, c-format
 msgid "Undefined channel %d\n"
 msgstr "未定義のチャネル %d\n"
 
-#: speaker-test/speaker-test.c:663
+#: speaker-test/speaker-test.c:739
 #, c-format
 msgid "Write error: %d,%s\n"
 msgstr "書込エラー: %d,%s\n"
 
-#: speaker-test/speaker-test.c:665
+#: speaker-test/speaker-test.c:741
 #, c-format
 msgid "xrun_recovery failed: %d,%s\n"
 msgstr "xrun_recovery 失敗: %d,%s\n"
 
-#: speaker-test/speaker-test.c:723
+#: speaker-test/speaker-test.c:803
 #, c-format
 msgid ""
 "Usage: speaker-test [OPTION]... \n"
@@ -1449,72 +1490,72 @@ msgstr ""
 "-W,--wavdir          WAVファイルのあるディレクトリを指定\n"
 "\n"
 
-#: speaker-test/speaker-test.c:835
+#: speaker-test/speaker-test.c:921
 #, c-format
 msgid "Invalid number of periods %d\n"
 msgstr "不正なピリオド数 %d\n"
 
-#: speaker-test/speaker-test.c:849 speaker-test/speaker-test.c:853
+#: speaker-test/speaker-test.c:937 speaker-test/speaker-test.c:941
 #, c-format
 msgid "Invalid test type %s\n"
 msgstr "不正なテストタイプ %s\n"
 
-#: speaker-test/speaker-test.c:865
+#: speaker-test/speaker-test.c:953
 #, c-format
 msgid "Invalid parameter for -s option.\n"
 msgstr "-s オプションの値が不正です\n"
 
-#: speaker-test/speaker-test.c:876
+#: speaker-test/speaker-test.c:967
 #, c-format
 msgid "Unknown option '%c'\n"
 msgstr "未知のオプション '%c'\n"
 
-#: speaker-test/speaker-test.c:890
+#: speaker-test/speaker-test.c:981
 #, c-format
 msgid "Playback device is %s\n"
 msgstr "再生デバイス: %s\n"
 
-#: speaker-test/speaker-test.c:891
+#: speaker-test/speaker-test.c:982
 #, c-format
 msgid "Stream parameters are %iHz, %s, %i channels\n"
 msgstr "ストリームパラメータ: %iHz, %s, %i チャネル\n"
 
-#: speaker-test/speaker-test.c:894
+#: speaker-test/speaker-test.c:985
 #, c-format
 msgid "Using 16 octaves of pink noise\n"
 msgstr "16 オクターブのピンクノイズを使用\n"
 
-#: speaker-test/speaker-test.c:897
+#: speaker-test/speaker-test.c:988
 #, c-format
 msgid "Sine wave rate is %.4fHz\n"
 msgstr "正弦波レート: %.4fHz\n"
 
-#: speaker-test/speaker-test.c:900
+#: speaker-test/speaker-test.c:991
 #, c-format
 msgid "WAV file(s)\n"
 msgstr "WAV ファイル\n"
 
-#: speaker-test/speaker-test.c:906
+#: speaker-test/speaker-test.c:997
 #, c-format
 msgid "Playback open error: %d,%s\n"
 msgstr "再生オープンエラー: %d,%s\n"
 
-#: speaker-test/speaker-test.c:911
+#: speaker-test/speaker-test.c:1002
 #, c-format
 msgid "Setting of hwparams failed: %s\n"
 msgstr "hwparams の設定に失敗: %s\n"
 
-#: speaker-test/speaker-test.c:916
+#: speaker-test/speaker-test.c:1007
 #, c-format
 msgid "Setting of swparams failed: %s\n"
 msgstr "swparams の設定に失敗: %s\n"
 
-#: speaker-test/speaker-test.c:957 speaker-test/speaker-test.c:979
+#: speaker-test/speaker-test.c:1056 speaker-test/speaker-test.c:1078
 #, c-format
 msgid "Transfer failed: %s\n"
 msgstr "転送に失敗しました: %s\n"
 
-#: speaker-test/speaker-test.c:967
+#: speaker-test/speaker-test.c:1066
 #, c-format
 msgid "Time per period = %lf\n"
 msgstr "ピリオド時間 = %lf\n"
index 6cb45fe..3e395dd 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -49,28 +47,55 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
-       install-exec-recursive install-info-recursive \
-       install-recursive installcheck-recursive installdirs-recursive \
-       pdf-recursive ps-recursive uninstall-info-recursive \
-       uninstall-recursive
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -94,14 +119,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -119,6 +137,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -131,6 +150,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -141,14 +161,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -160,6 +180,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -189,8 +210,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 SUBDIRS = aconnect aplaymidi aseqdump aseqnet
 all: all-recursive
@@ -200,14 +227,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  seq/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  seq/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign seq/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign seq/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -225,7 +252,7 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
+$(am__aclocal_m4_deps):
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -234,7 +261,7 @@ uninstall-info-am:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-       @failcom='exit 1'; \
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -251,16 +278,15 @@ $(RECURSIVE_TARGETS):
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done; \
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
-       @failcom='exit 1'; \
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -286,16 +312,16 @@ maintainer-clean-recursive:
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
        done
 ctags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
        done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -303,14 +329,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
          include_option=--etags-include; \
@@ -322,81 +348,101 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
        list='$(SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test ! -f $$subdir/TAGS || \
-             tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
-       list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test -d "$(distdir)/$$subdir" \
-           || $(mkdir_p) "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
            || exit 1; \
-           distdir=`$(am__cd) $(distdir) && pwd`; \
-           top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-           (cd $$subdir && \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
              $(MAKE) $(AM_MAKEFLAGS) \
-               top_distdir="$$top_distdir" \
-               distdir="$$distdir/$$subdir" \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
                distdir) \
              || exit 1; \
          fi; \
@@ -426,6 +472,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -444,18 +491,38 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
 
 install-data-am:
 
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
 install-exec-am:
 
+install-html: install-html-recursive
+
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -474,21 +541,24 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-info-am
+uninstall-am:
 
-uninstall-info: uninstall-info-recursive
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
 
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
-       clean clean-generic clean-recursive ctags ctags-recursive \
-       distclean distclean-generic distclean-recursive distclean-tags \
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic ctags \
+       ctags-recursive distclean distclean-generic distclean-tags \
        distdir dvi dvi-am html html-am info info-am install \
-       install-am install-data install-data-am install-exec \
-       install-exec-am install-info install-info-am install-man \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        installdirs-am maintainer-clean maintainer-clean-generic \
-       maintainer-clean-recursive mostlyclean mostlyclean-generic \
-       mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
-       uninstall uninstall-am uninstall-info-am
+       mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+       tags-recursive uninstall uninstall-am
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index e113d66..f55d690 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ../..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,23 +49,45 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am_aconnect_OBJECTS = aconnect.$(OBJEXT)
 aconnect_OBJECTS = $(am_aconnect_OBJECTS)
 aconnect_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
 aconnect_DEPENDENCIES = $(am__DEPENDENCIES_1)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(aconnect_SOURCES)
 DIST_SOURCES = $(aconnect_SOURCES)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -75,15 +95,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -107,14 +122,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -132,6 +140,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -144,6 +153,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -154,14 +164,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -173,6 +183,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -202,8 +213,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
 EXTRA_DIST = README.aconnect aconnect.1
@@ -218,14 +235,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  seq/aconnect/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  seq/aconnect/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign seq/aconnect/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign seq/aconnect/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -243,32 +260,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 aconnect$(EXEEXT): $(aconnect_OBJECTS) $(aconnect_DEPENDENCIES) 
        @rm -f aconnect$(EXEEXT)
-       $(LINK) $(aconnect_LDFLAGS) $(aconnect_OBJECTS) $(aconnect_LDADD) $(LIBS)
+       $(LINK) $(aconnect_OBJECTS) $(aconnect_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -279,137 +311,149 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aconnect.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -418,7 +462,7 @@ check: check-am
 all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -440,6 +484,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -460,18 +505,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -491,21 +556,26 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
+.MAKE: install-am install-strip
+
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
        clean-generic ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-exec install-exec-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
        install-info install-info-am install-man install-man1 \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
        tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-info-am uninstall-man uninstall-man1
+       uninstall-man uninstall-man1
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 1a50666..8c66cfd 100644 (file)
@@ -192,52 +192,33 @@ static void remove_connection(snd_seq_t *seq, snd_seq_client_info_t *cinfo,
                              snd_seq_port_info_t *pinfo, int count)
 {
        snd_seq_query_subscribe_t *query;
+       snd_seq_port_info_t *port;
+       snd_seq_port_subscribe_t *subs;
 
        snd_seq_query_subscribe_alloca(&query);
        snd_seq_query_subscribe_set_root(query, snd_seq_port_info_get_addr(pinfo));
-
        snd_seq_query_subscribe_set_type(query, SND_SEQ_QUERY_SUBS_READ);
        snd_seq_query_subscribe_set_index(query, 0);
-       for (; snd_seq_query_port_subscribers(seq, query) >= 0;
-            snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1)) {
-               snd_seq_port_info_t *port;
-               snd_seq_port_subscribe_t *subs;
+
+       snd_seq_port_info_alloca(&port);
+       snd_seq_port_subscribe_alloca(&subs);
+
+       while (snd_seq_query_port_subscribers(seq, query) >= 0) {
                const snd_seq_addr_t *sender = snd_seq_query_subscribe_get_root(query);
                const snd_seq_addr_t *dest = snd_seq_query_subscribe_get_addr(query);
-               snd_seq_port_info_alloca(&port);
-               if (snd_seq_get_any_port_info(seq, dest->client, dest->port, port) < 0)
-                       continue;
-               if (!(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_SUBS_WRITE))
-                       continue;
-               if (snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_NO_EXPORT)
-                       continue;
-               snd_seq_port_subscribe_alloca(&subs);
-               snd_seq_port_subscribe_set_queue(subs, snd_seq_query_subscribe_get_queue(query));
-               snd_seq_port_subscribe_set_sender(subs, sender);
-               snd_seq_port_subscribe_set_dest(subs, dest);
-               snd_seq_unsubscribe_port(seq, subs);
-       }
 
-       snd_seq_query_subscribe_set_type(query, SND_SEQ_QUERY_SUBS_WRITE);
-       snd_seq_query_subscribe_set_index(query, 0);
-       for (; snd_seq_query_port_subscribers(seq, query) >= 0;
-            snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1)) {
-               snd_seq_port_info_t *port;
-               snd_seq_port_subscribe_t *subs;
-               const snd_seq_addr_t *dest = snd_seq_query_subscribe_get_root(query);
-               const snd_seq_addr_t *sender = snd_seq_query_subscribe_get_addr(query);
-               snd_seq_port_info_alloca(&port);
-               if (snd_seq_get_any_port_info(seq, sender->client, sender->port, port) < 0)
-                       continue;
-               if (!(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_SUBS_READ))
+               if (snd_seq_get_any_port_info(seq, dest->client, dest->port, port) < 0 ||
+                   !(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_SUBS_WRITE) ||
+                   (snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_NO_EXPORT)) {
+                       snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1);
                        continue;
-               if (snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_NO_EXPORT)
-                       continue;
-               snd_seq_port_subscribe_alloca(&subs);
+               }
                snd_seq_port_subscribe_set_queue(subs, snd_seq_query_subscribe_get_queue(query));
                snd_seq_port_subscribe_set_sender(subs, sender);
                snd_seq_port_subscribe_set_dest(subs, dest);
-               snd_seq_unsubscribe_port(seq, subs);
+               if (snd_seq_unsubscribe_port(seq, subs) < 0) {
+                       snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1);
+               }
        }
 }
 
index 35c8aa9..4d0e88e 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ../..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,8 +49,8 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 aplaymidi_SOURCES = aplaymidi.c
 aplaymidi_OBJECTS = aplaymidi.$(OBJEXT)
@@ -60,15 +58,37 @@ aplaymidi_LDADD = $(LDADD)
 arecordmidi_SOURCES = arecordmidi.c
 arecordmidi_OBJECTS = arecordmidi.$(OBJEXT)
 arecordmidi_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = aplaymidi.c arecordmidi.c
 DIST_SOURCES = aplaymidi.c arecordmidi.c
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -76,15 +96,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -108,14 +123,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -133,6 +141,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -145,6 +154,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -155,14 +165,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -174,6 +184,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -203,8 +214,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
 EXTRA_DIST = aplaymidi.1 arecordmidi.1
@@ -217,14 +234,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  seq/aplaymidi/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  seq/aplaymidi/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign seq/aplaymidi/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign seq/aplaymidi/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -242,35 +259,50 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 aplaymidi$(EXEEXT): $(aplaymidi_OBJECTS) $(aplaymidi_DEPENDENCIES) 
        @rm -f aplaymidi$(EXEEXT)
-       $(LINK) $(aplaymidi_LDFLAGS) $(aplaymidi_OBJECTS) $(aplaymidi_LDADD) $(LIBS)
+       $(LINK) $(aplaymidi_OBJECTS) $(aplaymidi_LDADD) $(LIBS)
 arecordmidi$(EXEEXT): $(arecordmidi_OBJECTS) $(arecordmidi_DEPENDENCIES) 
        @rm -f arecordmidi$(EXEEXT)
-       $(LINK) $(arecordmidi_LDFLAGS) $(arecordmidi_OBJECTS) $(arecordmidi_LDADD) $(LIBS)
+       $(LINK) $(arecordmidi_OBJECTS) $(arecordmidi_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -282,137 +314,149 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arecordmidi.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -421,7 +465,7 @@ check: check-am
 all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -443,6 +487,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -463,18 +508,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -494,21 +559,26 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
+.MAKE: install-am install-strip
+
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
        clean-generic ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-exec install-exec-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
        install-info install-info-am install-man install-man1 \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
        tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-info-am uninstall-man uninstall-man1
+       uninstall-man uninstall-man1
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index c45ec06..722ed52 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ../..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,21 +49,43 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 aseqdump_SOURCES = aseqdump.c
 aseqdump_OBJECTS = aseqdump.$(OBJEXT)
 aseqdump_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = aseqdump.c
 DIST_SOURCES = aseqdump.c
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -73,15 +93,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -105,14 +120,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -130,6 +138,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -142,6 +151,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -152,14 +162,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -171,6 +181,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -200,8 +211,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
 EXTRA_DIST = aseqdump.1
@@ -214,14 +231,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  seq/aseqdump/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  seq/aseqdump/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign seq/aseqdump/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign seq/aseqdump/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -239,32 +256,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 aseqdump$(EXEEXT): $(aseqdump_OBJECTS) $(aseqdump_DEPENDENCIES) 
        @rm -f aseqdump$(EXEEXT)
-       $(LINK) $(aseqdump_LDFLAGS) $(aseqdump_OBJECTS) $(aseqdump_LDADD) $(LIBS)
+       $(LINK) $(aseqdump_OBJECTS) $(aseqdump_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -275,137 +307,149 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aseqdump.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -414,7 +458,7 @@ check: check-am
 all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -436,6 +480,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -456,18 +501,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -487,21 +552,26 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
+.MAKE: install-am install-strip
+
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
        clean-generic ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-exec install-exec-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
        install-info install-info-am install-man install-man1 \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
        tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-info-am uninstall-man uninstall-man1
+       uninstall-man uninstall-man1
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 67d5d91..71a5245 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ../..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,22 +49,44 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am_aseqnet_OBJECTS = aseqnet.$(OBJEXT)
 aseqnet_OBJECTS = $(am_aseqnet_OBJECTS)
 am__DEPENDENCIES_1 =
 aseqnet_DEPENDENCIES = $(am__DEPENDENCIES_1)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(aseqnet_SOURCES)
 DIST_SOURCES = $(aseqnet_SOURCES)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -74,15 +94,10 @@ ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -106,14 +121,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -131,6 +139,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -143,6 +152,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -153,14 +163,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -172,6 +182,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -201,8 +212,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
 EXTRA_DIST = README.aseqnet aseqnet.1
@@ -217,14 +234,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  seq/aseqnet/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  seq/aseqnet/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign seq/aseqnet/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign seq/aseqnet/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -242,32 +259,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 aseqnet$(EXEEXT): $(aseqnet_OBJECTS) $(aseqnet_DEPENDENCIES) 
        @rm -f aseqnet$(EXEEXT)
-       $(LINK) $(aseqnet_LDFLAGS) $(aseqnet_OBJECTS) $(aseqnet_LDADD) $(LIBS)
+       $(LINK) $(aseqnet_OBJECTS) $(aseqnet_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -278,137 +310,149 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aseqnet.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -417,7 +461,7 @@ check: check-am
 all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -439,6 +483,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -459,18 +504,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -490,21 +555,26 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
+.MAKE: install-am install-strip
+
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
        clean-generic ctags distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-exec install-exec-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
        install-info install-info-am install-man install-man1 \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
        tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-info-am uninstall-man uninstall-man1
+       uninstall-man uninstall-man1
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 83af6eb..89c3a54 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -51,17 +49,18 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am_speaker_test_OBJECTS = speaker-test.$(OBJEXT) pink.$(OBJEXT)
 speaker_test_OBJECTS = $(am_speaker_test_OBJECTS)
 speaker_test_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
 speaker_test_DEPENDENCIES = $(am__DEPENDENCIES_1)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -70,27 +69,74 @@ SOURCES = $(speaker_test_SOURCES)
 DIST_SOURCES = $(speaker_test_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
-       install-exec-recursive install-info-recursive \
-       install-recursive installcheck-recursive installdirs-recursive \
-       pdf-recursive ps-recursive uninstall-info-recursive \
-       uninstall-recursive
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -114,14 +160,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -139,6 +178,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -151,6 +191,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -161,14 +202,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -180,6 +221,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -209,8 +251,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 INCLUDES = -I$(top_srcdir)/include
 SUBDIRS = samples
@@ -226,14 +274,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  speaker-test/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  speaker-test/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign speaker-test/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign speaker-test/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -251,32 +299,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-         if test -f $$p \
-         ; then \
-           f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-          echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-          $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-         else :; fi; \
-       done
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+             echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+             $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
 
 uninstall-binPROGRAMS:
        @$(NORMAL_UNINSTALL)
-       @list='$(bin_PROGRAMS)'; for p in $$list; do \
-         f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-         echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-         rm -f "$(DESTDIR)$(bindir)/$$f"; \
-       done
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 speaker-test$(EXEEXT): $(speaker_test_OBJECTS) $(speaker_test_DEPENDENCIES) 
        @rm -f speaker-test$(EXEEXT)
-       $(LINK) $(speaker_test_LDFLAGS) $(speaker_test_OBJECTS) $(speaker_test_LDADD) $(LIBS)
+       $(LINK) $(speaker_test_OBJECTS) $(speaker_test_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -288,64 +351,56 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/speaker-test.Po@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
-@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
-uninstall-info-am:
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
+       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       { for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | while read p; do \
+         if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; echo "$$p"; \
+       done | \
+       sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+       sed 'N;N;s,\n, ,g' | { \
+       list=; while read file base inst; do \
+         if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+           echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+           $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+         fi; \
        done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-         $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+       while read files; do \
+         test -z "$$files" || { \
+           echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+           $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+       done; }
+
 uninstall-man1:
        @$(NORMAL_UNINSTALL)
-       @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-       l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-       for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         case "$$ext" in \
-           1*) ;; \
-           *) ext='1' ;; \
-         esac; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed -e 's/^.*\///'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-         rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-       done
+       @list=''; test -n "$(man1dir)" || exit 0; \
+       files=`{ for i in $$list; do echo "$$i"; done; \
+       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+         sed -n '/\.1[a-z]*$$/p'; \
+       } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+             -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -354,7 +409,7 @@ uninstall-man1:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-       @failcom='exit 1'; \
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -371,16 +426,15 @@ $(RECURSIVE_TARGETS):
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done; \
        if test "$$dot_seen" = "no"; then \
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
-       @failcom='exit 1'; \
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
        for f in x $$MAKEFLAGS; do \
          case $$f in \
            *=* | --[!k]*);; \
@@ -406,16 +460,16 @@ maintainer-clean-recursive:
          else \
            local_target="$$target"; \
          fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
          || eval $$failcom; \
        done && test -z "$$fail"
 tags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
        done
 ctags-recursive:
        list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
        done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -423,14 +477,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
        mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
+       set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
          include_option=--etags-include; \
@@ -442,81 +496,114 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
        list='$(SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test ! -f $$subdir/TAGS || \
-             tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
        fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
-       tags=; \
-       here=`pwd`; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
          done | \
-         $(AWK) '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$tags $$unique
+            $$unique
 
 GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
-         && cd $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) $$here
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @list='$(MANS)'; if test -n "$$list"; then \
+         list=`for p in $$list; do \
+           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+         if test -n "$$list" && \
+           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+           echo "       typically \`make maintainer-clean' will remove them" >&2; \
+           exit 1; \
+         else :; fi; \
+       else :; fi
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
-       list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
            test -d "$(distdir)/$$subdir" \
-           || $(mkdir_p) "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
            || exit 1; \
-           distdir=`$(am__cd) $(distdir) && pwd`; \
-           top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-           (cd $$subdir && \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
              $(MAKE) $(AM_MAKEFLAGS) \
-               top_distdir="$$top_distdir" \
-               distdir="$$distdir/$$subdir" \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
                distdir) \
              || exit 1; \
          fi; \
@@ -527,7 +614,7 @@ all-am: Makefile $(PROGRAMS) $(MANS)
 installdirs: installdirs-recursive
 installdirs-am:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-recursive
 install-exec: install-exec-recursive
@@ -549,6 +636,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -569,18 +657,38 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
 
 install-data-am: install-man
 
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
+install-html: install-html-recursive
+
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man: install-man1
 
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -600,27 +708,30 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man
-
-uninstall-info: uninstall-info-recursive
+uninstall-am: uninstall-binPROGRAMS uninstall-man
 
 uninstall-man: uninstall-man1
 
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
-       clean clean-binPROGRAMS clean-generic clean-recursive ctags \
-       ctags-recursive distclean distclean-compile distclean-generic \
-       distclean-recursive distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-binPROGRAMS \
-       install-data install-data-am install-exec install-exec-am \
-       install-info install-info-am install-man install-man1 \
-       install-strip installcheck installcheck-am installdirs \
-       installdirs-am maintainer-clean maintainer-clean-generic \
-       maintainer-clean-recursive mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \
-       tags tags-recursive uninstall uninstall-am \
-       uninstall-binPROGRAMS uninstall-info-am uninstall-man \
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic ctags ctags-recursive distclean \
+       distclean-compile distclean-generic distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-binPROGRAMS install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-man1 install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am uninstall-binPROGRAMS uninstall-man \
        uninstall-man1
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index e751c71..99709f0 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ../..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -50,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -57,22 +56,30 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(alsadir)" "$(DESTDIR)$(sounddir)"
-alsaDATA_INSTALL = $(INSTALL_DATA)
-soundDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(alsa_DATA) $(sound_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -96,14 +103,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -121,6 +121,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -133,6 +134,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -143,14 +145,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -162,6 +164,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -191,8 +194,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 sounddir = $(datadir)/sounds/alsa
 wav_files = Front_Left.wav \
@@ -220,14 +229,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  speaker-test/samples/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  speaker-test/samples/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign speaker-test/samples/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign speaker-test/samples/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -245,41 +254,47 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-uninstall-info-am:
+$(am__aclocal_m4_deps):
 install-alsaDATA: $(alsa_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(alsadir)" || $(mkdir_p) "$(DESTDIR)$(alsadir)"
-       @list='$(alsa_DATA)'; for p in $$list; do \
+       test -z "$(alsadir)" || $(MKDIR_P) "$(DESTDIR)$(alsadir)"
+       @list='$(alsa_DATA)'; test -n "$(alsadir)" || list=; \
+       for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         f=$(am__strip_dir) \
-         echo " $(alsaDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(alsadir)/$$f'"; \
-         $(alsaDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(alsadir)/$$f"; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(alsadir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(alsadir)" || exit $$?; \
        done
 
 uninstall-alsaDATA:
        @$(NORMAL_UNINSTALL)
-       @list='$(alsa_DATA)'; for p in $$list; do \
-         f=$(am__strip_dir) \
-         echo " rm -f '$(DESTDIR)$(alsadir)/$$f'"; \
-         rm -f "$(DESTDIR)$(alsadir)/$$f"; \
-       done
+       @list='$(alsa_DATA)'; test -n "$(alsadir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(alsadir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(alsadir)" && rm -f $$files
 install-soundDATA: $(sound_DATA)
        @$(NORMAL_INSTALL)
-       test -z "$(sounddir)" || $(mkdir_p) "$(DESTDIR)$(sounddir)"
-       @list='$(sound_DATA)'; for p in $$list; do \
+       test -z "$(sounddir)" || $(MKDIR_P) "$(DESTDIR)$(sounddir)"
+       @list='$(sound_DATA)'; test -n "$(sounddir)" || list=; \
+       for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         f=$(am__strip_dir) \
-         echo " $(soundDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sounddir)/$$f'"; \
-         $(soundDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sounddir)/$$f"; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sounddir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(sounddir)" || exit $$?; \
        done
 
 uninstall-soundDATA:
        @$(NORMAL_UNINSTALL)
-       @list='$(sound_DATA)'; for p in $$list; do \
-         f=$(am__strip_dir) \
-         echo " rm -f '$(DESTDIR)$(sounddir)/$$f'"; \
-         rm -f "$(DESTDIR)$(sounddir)/$$f"; \
-       done
+       @list='$(sound_DATA)'; test -n "$(sounddir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(sounddir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(sounddir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -288,29 +303,32 @@ CTAGS:
 
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -319,7 +337,7 @@ check: check-am
 all-am: Makefile $(DATA)
 installdirs:
        for dir in "$(DESTDIR)$(alsadir)" "$(DESTDIR)$(sounddir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
 install-exec: install-exec-am
@@ -341,6 +359,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -359,18 +378,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am: install-alsaDATA install-soundDATA
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am:
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -389,17 +428,22 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-alsaDATA uninstall-info-am uninstall-soundDATA
+uninstall-am: uninstall-alsaDATA uninstall-soundDATA
+
+.MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic distclean \
        distclean-generic distdir dvi dvi-am html html-am info info-am \
        install install-alsaDATA install-am install-data \
-       install-data-am install-exec install-exec-am install-info \
-       install-info-am install-man install-soundDATA install-strip \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-soundDATA install-strip \
        installcheck installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
        pdf-am ps ps-am uninstall uninstall-alsaDATA uninstall-am \
-       uninstall-info-am uninstall-soundDATA
+       uninstall-soundDATA
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index e22c937..3029110 100644 (file)
@@ -63,7 +63,8 @@
 enum {
   TEST_PINK_NOISE = 1,
   TEST_SINE,
-  TEST_WAV
+  TEST_WAV,
+  TEST_PATTERN,
 };
 
 #define MAX_CHANNELS   16
@@ -97,6 +98,7 @@ static snd_pcm_uframes_t  buffer_size;
 static snd_pcm_uframes_t  period_size;
 static const char *given_test_wav_file = NULL;
 static char *wav_file_dir = SOUNDSDIR;
+static int debug = 0;
 
 static const char *const channel_name[MAX_CHANNELS] = {
   /*  0 */ N_("Front Left"),
@@ -141,6 +143,15 @@ static const int   channels8[] = {
   6, /* Side Left   */
   5, /* LFE         */
 };
+static const int       supported_formats[] = {
+  SND_PCM_FORMAT_S8,
+  SND_PCM_FORMAT_S16_LE,
+  SND_PCM_FORMAT_S16_BE,
+  SND_PCM_FORMAT_FLOAT_LE,
+  SND_PCM_FORMAT_S32_LE,
+  SND_PCM_FORMAT_S32_BE,
+  -1
+};
 
 static void generate_sine(uint8_t *frames, int channel, int count, double *_phase) {
   double phase = *_phase;
@@ -293,6 +304,71 @@ static void generate_pink_noise( uint8_t *frames, int channel, int count) {
   }
 }
 
+/*
+ * useful for tests
+ */
+static void generate_pattern(uint8_t *frames, int channel, int count, int *_pattern) {
+  int pattern = *_pattern;
+  int    chn;
+  int8_t *samp8 = (int8_t*) frames;
+  int16_t *samp16 = (int16_t*) frames;
+  int32_t *samp32 = (int32_t*) frames;
+  float   *samp_f = (float*) frames;
+
+  while (count-- > 0) {
+    for(chn=0;chn<channels;chn++,pattern++) {
+      switch (format) {
+      case SND_PCM_FORMAT_S8:
+        if (chn==channel) {
+          *samp8++ = pattern & 0xff;
+        } else {
+          *samp8++ = 0;
+        }
+        break;
+      case SND_PCM_FORMAT_S16_LE:
+        if (chn==channel) {
+          *samp16++ = LE_SHORT(pattern & 0xfffff);
+        } else {
+          *samp16++ = 0;
+        }
+        break;
+      case SND_PCM_FORMAT_S16_BE:
+        if (chn==channel) {
+          *samp16++ = BE_SHORT(pattern & 0xffff);
+        } else {
+          *samp16++ = 0;
+        }
+        break;
+      case SND_PCM_FORMAT_FLOAT_LE:
+        if (chn==channel) {
+         *samp_f++ = LE_INT(((double)pattern) / INT32_MAX);
+        } else {
+         *samp_f++ = 0.0;
+        }
+        break;
+      case SND_PCM_FORMAT_S32_LE:
+        if (chn==channel) {
+          *samp32++ = LE_INT(pattern);
+        } else {
+          *samp32++ = 0;
+        }
+        break;
+      case SND_PCM_FORMAT_S32_BE:
+        if (chn==channel) {
+          *samp32++ = BE_INT(pattern);
+        } else {
+          *samp32++ = 0;
+        }
+        break;
+      default:
+        ;
+      }
+    }
+  }
+
+  *_pattern = pattern;
+}
+
 static int set_hwparams(snd_pcm_t *handle, snd_pcm_hw_params_t *params, snd_pcm_access_t access) {
   unsigned int rrate;
   int          err;
@@ -677,8 +753,10 @@ static int write_buffer(snd_pcm_t *handle, uint8_t *ptr, int cptr)
 static int write_loop(snd_pcm_t *handle, int channel, int periods, uint8_t *frames)
 {
   double phase = 0;
+  int   pattern = 0;
   int    err, n;
 
+  fflush(stdout);
   if (test_type == TEST_WAV) {
     int bufsize = snd_pcm_frames_to_bytes(handle, period_size);
     n = 0;
@@ -702,6 +780,8 @@ static int write_loop(snd_pcm_t *handle, int channel, int periods, uint8_t *fram
   for(n = 0; n < periods; n++) {
     if (test_type == TEST_PINK_NOISE)
       generate_pink_noise(frames, channel, period_size);
+    else if (test_type == TEST_PATTERN)
+      generate_pattern(frames, channel, period_size, &pattern);
     else
       generate_sine(frames, channel, period_size, &phase);
 
@@ -717,7 +797,7 @@ static int write_loop(snd_pcm_t *handle, int channel, int periods, uint8_t *fram
 
 static void help(void)
 {
-  int k;
+  const int *fmt;
 
   printf(
         _("Usage: speaker-test [OPTION]... \n"
@@ -736,17 +816,14 @@ static void help(void)
           "-w,--wavfile        Use the given WAV file as a test sound\n"
           "-W,--wavdir Specify the directory containing WAV files\n"
           "\n"));
-#if 1
   printf(_("Recognized sample formats are:"));
-  for (k = 0; k < SND_PCM_FORMAT_LAST; ++k) {
-    const char *s = snd_pcm_format_name(k);
+  for (fmt = supported_formats; *fmt >= 0; fmt++) {
+    const char *s = snd_pcm_format_name(*fmt);
     if (s)
       printf(" %s", s);
   }
 
   printf("\n\n");
-#endif
-
 }
 
 int main(int argc, char *argv[]) {
@@ -756,6 +833,7 @@ int main(int argc, char *argv[]) {
   snd_pcm_sw_params_t  *swparams;
   uint8_t              *frames;
   int                   chn;
+  const int           *fmt;
   double               time1,time2,time3;
   unsigned int         n, nloops;
   struct   timeval     tv1,tv2;
@@ -775,6 +853,7 @@ int main(int argc, char *argv[]) {
     {"speaker",   1, NULL, 's'},
     {"wavfile",   1, NULL, 'w'},
     {"wavdir",    1, NULL, 'W'},
+    {"debug",    0, NULL, 'd'},
     {NULL,        0, NULL, 0  },
   };
 
@@ -793,7 +872,7 @@ int main(int argc, char *argv[]) {
   while (1) {
     int c;
     
-    if ((c = getopt_long(argc, argv, "hD:r:c:f:F:b:p:P:t:l:s:w:W:", long_option, NULL)) < 0)
+    if ((c = getopt_long(argc, argv, "hD:r:c:f:F:b:p:P:t:l:s:w:W:d", long_option, NULL)) < 0)
       break;
     
     switch (c) {
@@ -805,6 +884,13 @@ int main(int argc, char *argv[]) {
       break;
     case 'F':
       format = snd_pcm_format_value(optarg);
+      for (fmt = supported_formats; *fmt >= 0; fmt++)
+        if (*fmt == format)
+          break;
+      if (*fmt < 0) {
+        fprintf(stderr, "Format %s is not supported...\n", snd_pcm_format_name(format));
+        exit(EXIT_FAILURE);
+      }
       break;
     case 'r':
       rate = atoi(optarg);
@@ -843,9 +929,11 @@ int main(int argc, char *argv[]) {
        test_type = TEST_SINE;
       else if (*optarg == 'w')
        test_type = TEST_WAV;
+      else if (*optarg == 't')
+       test_type = TEST_PATTERN;
       else if (isdigit(*optarg)) {
        test_type = atoi(optarg);
-       if (test_type < TEST_PINK_NOISE || test_type > TEST_WAV) {
+       if (test_type < TEST_PINK_NOISE || test_type > TEST_PATTERN) {
          fprintf(stderr, _("Invalid test type %s\n"), optarg);
          exit(1);
        }
@@ -872,6 +960,9 @@ int main(int argc, char *argv[]) {
     case 'W':
       wav_file_dir = optarg;
       break;
+    case 'd':
+      debug = 1;
+      break;
     default:
       fprintf(stderr, _("Unknown option '%c'\n"), c);
       exit(EXIT_FAILURE);
@@ -902,9 +993,9 @@ int main(int argc, char *argv[]) {
 
   }
 
-  while ((err = snd_pcm_open(&handle, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) {
+  if ((err = snd_pcm_open(&handle, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) {
     printf(_("Playback open error: %d,%s\n"), err,snd_strerror(err));
-    sleep(1);
+    exit(EXIT_FAILURE);
   }
 
   if ((err = set_hwparams(handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0) {
@@ -917,6 +1008,14 @@ int main(int argc, char *argv[]) {
     snd_pcm_close(handle);
     exit(EXIT_FAILURE);
   }
+  if (debug) {
+    snd_output_t *log;
+    err = snd_output_stdio_attach(&log, stderr, 0);
+    if (err >= 0) {
+      snd_pcm_dump(handle, log);
+      snd_output_close(log);
+    }
+  }
 
   frames = malloc(snd_pcm_frames_to_bytes(handle, period_size));
   if (test_type == TEST_PINK_NOISE)
index d73ac5e..11bd769 100644 (file)
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -50,19 +48,15 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/include/aconfig.h
 CONFIG_CLEAN_FILES = alsa-utils.spec
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
-ALSACONF_FALSE = @ALSACONF_FALSE@
-ALSACONF_TRUE = @ALSACONF_TRUE@
-ALSAMIXER_FALSE = @ALSAMIXER_FALSE@
-ALSAMIXER_TRUE = @ALSAMIXER_TRUE@
 ALSA_CFLAGS = @ALSA_CFLAGS@
 ALSA_LIBS = @ALSA_LIBS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ASOUND_STATE_DIR = @ASOUND_STATE_DIR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -86,14 +80,7 @@ EXEEXT = @EXEEXT@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
-HAVE_MIXER_FALSE = @HAVE_MIXER_FALSE@
-HAVE_MIXER_TRUE = @HAVE_MIXER_TRUE@
-HAVE_PCM_FALSE = @HAVE_PCM_FALSE@
-HAVE_PCM_TRUE = @HAVE_PCM_TRUE@
-HAVE_RAWMIDI_FALSE = @HAVE_RAWMIDI_FALSE@
-HAVE_RAWMIDI_TRUE = @HAVE_RAWMIDI_TRUE@
-HAVE_SEQ_FALSE = @HAVE_SEQ_FALSE@
-HAVE_SEQ_TRUE = @HAVE_SEQ_TRUE@
+INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -111,6 +98,7 @@ LTLIBICONV = @LTLIBICONV@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
@@ -123,6 +111,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
 POSUB = @POSUB@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -133,14 +122,14 @@ SND_UTIL_VERSION = @SND_UTIL_VERSION@
 STRIP = @STRIP@
 TESTSOUND = @TESTSOUND@
 USE_NLS = @USE_NLS@
-USE_XMLTO_FALSE = @USE_XMLTO_FALSE@
-USE_XMLTO_TRUE = @USE_XMLTO_TRUE@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 XGETTEXT_015 = @XGETTEXT_015@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -152,6 +141,7 @@ build_alias = @build_alias@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
+builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -181,8 +171,14 @@ program_transform_name = @program_transform_name@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
 sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+udevrulesdir = @udevrulesdir@
 xmlto = @xmlto@
 EXTRA_DIST = buildrpm
 all: all-am
@@ -192,14 +188,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  utils/Makefile'; \
-       cd $(top_srcdir) && \
-         $(AUTOMAKE) --foreign  utils/Makefile
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign utils/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --foreign utils/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -217,9 +213,9 @@ $(top_srcdir)/configure:  $(am__configure_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 alsa-utils.spec: $(top_builddir)/config.status $(srcdir)/alsa-utils.spec.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-uninstall-info-am:
 tags: TAGS
 TAGS:
 
@@ -228,29 +224,32 @@ CTAGS:
 
 
 distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
-       list='$(DISTFILES)'; for file in $$list; do \
-         case $$file in \
-           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
-           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
-         esac; \
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
-         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
-           dir="/$$dir"; \
-           $(mkdir_p) "$(distdir)$$dir"; \
-         else \
-           dir=''; \
-         fi; \
          if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
            fi; \
-           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
          else \
-           test -f $(distdir)/$$file \
-           || cp -p $$d/$$file $(distdir)/$$file \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
          fi; \
        done
@@ -278,6 +277,7 @@ clean-generic:
 
 distclean-generic:
        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -296,18 +296,38 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
 
 install-data-am:
 
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
 install-exec-am:
 
+install-html: install-html-am
+
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -326,20 +346,24 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-info-am
+uninstall-am:
+
+.MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic distclean \
        distclean-generic distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-exec \
-       install-exec-am install-info install-info-am install-man \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
        install-strip installcheck installcheck-am installdirs \
        maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
-       uninstall-info-am
+       mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
 
 
 rpm: buildrpm alsa-lib.spec
        VERSION=$(VERSION) $(srcdir)/buildrpm
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/version b/version
deleted file mode 100644 (file)
index b112f91..0000000
--- a/version
+++ /dev/null
@@ -1 +0,0 @@
-1.0.21