AM_CPPFLAGS=-I$(top_srcdir)/include
-SUBDIRS = include alsactl alsaucm utils m4 po
+SUBDIRS = include alsactl utils m4 po alsa-info
if ALSAMIXER
SUBDIRS += alsamixer
endif
if HAVE_SEQ
SUBDIRS += seq
endif
+if HAVE_UCM
+SUBDIRS += alsaucm
+endif
EXTRA_DIST= config.rpath TODO gitcompile
AUTOMAKE_OPTIONS=foreign
@HAVE_PCM_TRUE@am__append_5 = aplay iecset speaker-test
@ALSALOOP_TRUE@@HAVE_PCM_TRUE@am__append_6 = alsaloop
@HAVE_SEQ_TRUE@am__append_7 = seq
+@HAVE_UCM_TRUE@am__append_8 = alsaucm
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/alsaconf/po/Makefile.in \
ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
-DIST_SUBDIRS = include alsactl alsaucm utils m4 po alsamixer amixer \
- amidi alsaconf aplay iecset speaker-test alsaloop seq
+DIST_SUBDIRS = include alsactl utils m4 po alsa-info alsamixer amixer \
+ amidi alsaconf aplay iecset speaker-test alsaloop seq alsaucm
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
udevrulesdir = @udevrulesdir@
xmlto = @xmlto@
AM_CPPFLAGS = -I$(top_srcdir)/include
-SUBDIRS = include alsactl alsaucm utils m4 po $(am__append_1) \
+SUBDIRS = include alsactl utils m4 po alsa-info $(am__append_1) \
$(am__append_2) $(am__append_3) $(am__append_4) \
- $(am__append_5) $(am__append_6) $(am__append_7)
+ $(am__append_5) $(am__append_6) $(am__append_7) \
+ $(am__append_8)
EXTRA_DIST = config.rpath TODO gitcompile
AUTOMAKE_OPTIONS = foreign
ACLOCAL_AMFLAGS = -I m4
--- /dev/null
+EXTRA_DIST = alsa-info.sh
+sbin_SCRIPTS = alsa-info.sh
--- /dev/null
+# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2012 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@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+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@
+subdir = alsa-info
+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.ac
+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__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__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(sbindir)"
+SCRIPTS = $(sbin_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSACTL_DAEMONSWITCH = @ALSACTL_DAEMONSWITCH@
+ALSACTL_PIDFILE_DIR = @ALSACTL_PIDFILE_DIR@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+ASOUND_LOCK_DIR = @ASOUND_LOCK_DIR@
+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@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+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@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NCURSESW_CFLAGS = @NCURSESW_CFLAGS@
+NCURSESW_LIBS = @NCURSESW_LIBS@
+NCURSES_CFLAGS = @NCURSES_CFLAGS@
+NCURSES_LIBS = @NCURSES_LIBS@
+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@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POSUB = @POSUB@
+SED = @SED@
+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@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+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@
+mydatadir = @mydatadir@
+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@
+EXTRA_DIST = alsa-info.sh
+sbin_SCRIPTS = alsa-info.sh
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 alsa-info/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign alsa-info/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-sbinSCRIPTS: $(sbin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 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)'; test -n "$(sbindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+cscope cscopelist:
+
+
+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 $(SCRIPTS)
+installdirs:
+ for dir in "$(DESTDIR)$(sbindir)"; 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:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+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-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+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-sbinSCRIPTS
+
+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 -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-sbinSCRIPTS
+
+.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-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-sbinSCRIPTS install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+ uninstall-am uninstall-sbinSCRIPTS
+
+
+# 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:
--- /dev/null
+#!/bin/bash
+
+SCRIPT_VERSION=0.4.64
+CHANGELOG="http://www.alsa-project.org/alsa-info.sh.changelog"
+
+#################################################################################
+#Copyright (C) 2007 Free Software Foundation.
+
+#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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+##################################################################################
+
+#The script was written for 2 main reasons:
+# 1. Remove the need for the devs/helpers to ask several questions before we can easily help the user.
+# 2. Allow newer/inexperienced ALSA users to give us all the info we need to help them.
+
+#Set the locale (this may or may not be a good idea.. let me know)
+export LC_ALL=C
+
+#Change the PATH variable, so we can run lspci (needed for some distros)
+PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin
+BGTITLE="ALSA-Info v $SCRIPT_VERSION"
+PASTEBINKEY="C9cRIO8m/9y8Cs0nVs0FraRx7U0pHsuc"
+#Define some simple functions
+
+pbcheck(){
+ [[ $UPLOAD = "no" ]] && return
+
+ if [[ -z $PASTEBIN ]]; then
+ [[ $(ping -c1 www.alsa-project.org) ]] || KEEP_FILES="yes" UPLOAD="no" PBERROR="yes"
+ else
+ [[ $(ping -c1 www.pastebin.ca) ]] || KEEP_FILES="yes" UPLOAD="no" PBERROR="yes"
+ fi
+}
+
+update() {
+ SHFILE=`mktemp -t alsa-info.XXXXXXXXXX` || exit 1
+ wget -O $SHFILE "http://www.alsa-project.org/alsa-info.sh" >/dev/null 2>&1
+ REMOTE_VERSION=`grep SCRIPT_VERSION $SHFILE |head -n1 |sed 's/.*=//'`
+ if [ "$REMOTE_VERSION" != "$SCRIPT_VERSION" ]; then
+ if [[ -n $DIALOG ]]
+ then
+ OVERWRITE=
+ if [ -w $0 ]; then
+ dialog --yesno "Newer version of ALSA-Info has been found\n\nDo you wish to install it?\nNOTICE: The original file $0 will be overwritten!" 0 0
+ DIALOG_EXIT_CODE=$?
+ if [[ $DIALOG_EXIT_CODE = 0 ]]; then
+ OVERWRITE=yes
+ fi
+ fi
+ if [ -z "$OVERWRITE" ]; then
+ dialog --yesno "Newer version of ALSA-Info has been found\n\nDo you wish to download it?" 0 0
+ DIALOG_EXIT_CODE=$?
+ fi
+ if [[ $DIALOG_EXIT_CODE = 0 ]]
+ then
+ echo "Newer version detected: $REMOTE_VERSION"
+ echo "To view the ChangeLog, please visit $CHANGELOG"
+ if [ "$OVERWRITE" = "yes" ]; then
+ cp $SHFILE $0
+ echo "ALSA-Info script has been updated to v $REMOTE_VERSION"
+ echo "Please re-run the script"
+ rm $SHFILE 2>/dev/null
+ else
+ echo "ALSA-Info script has been downloaded as $SHFILE."
+ echo "Please re-run the script from new location."
+ fi
+ exit
+ else
+ rm $SHFILE 2>/dev/null
+ fi
+ else
+ echo "Newer version detected: $REMOTE_VERSION"
+ echo "To view the ChangeLog, please visit $CHANGELOG"
+ if [ -w $0 ]; then
+ echo "The original file $0 will be overwritten!"
+ echo -n "If you do not like to proceed, press Ctrl-C now.." ; read inp
+ cp $SHFILE $0
+ echo "ALSA-Info script has been updated. Please re-run it."
+ rm $SHFILE 2>/dev/null
+ else
+ echo "ALSA-Info script has been downloaded $SHFILE."
+ echo "Please, re-run it from new location."
+ fi
+ exit
+ fi
+ else
+ rm $SHFILE 2>/dev/null
+ fi
+}
+
+cleanup() {
+ if [ -n "$TEMPDIR" -a "$KEEP_FILES" != "yes" ]; then
+ rm -rf "$TEMPDIR" 2>/dev/null
+ fi
+ test -n "$KEEP_OUTPUT" || rm -f "$NFILE"
+}
+
+
+withaplay() {
+ echo "!!Aplay/Arecord output" >> $FILE
+ echo "!!--------------------" >> $FILE
+ echo "" >> $FILE
+ echo "APLAY" >> $FILE
+ echo "" >> $FILE
+ aplay -l >> $FILE 2>&1
+ echo "" >> $FILE
+ echo "ARECORD" >> $FILE
+ echo "" >> $FILE
+ arecord -l >> $FILE 2>&1
+ echo "" >> $FILE
+}
+
+withlsmod() {
+ echo "!!All Loaded Modules" >> $FILE
+ echo "!!------------------" >> $FILE
+ echo "" >> $FILE
+ lsmod |awk {'print $1'} >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+}
+
+withamixer() {
+ echo "!!Amixer output" >> $FILE
+ echo "!!-------------" >> $FILE
+ echo "" >> $FILE
+ for i in `grep "]: " /proc/asound/cards | awk -F ' ' '{ print $1} '` ; do
+ CARD_NAME=`grep "^ *$i " $TEMPDIR/alsacards.tmp|awk {'print $2'}`
+ echo "!!-------Mixer controls for card $i $CARD_NAME]" >> $FILE
+ echo "" >>$FILE
+ amixer -c$i info>> $FILE 2>&1
+ amixer -c$i>> $FILE 2>&1
+ echo "" >> $FILE
+ done
+ echo "" >> $FILE
+}
+
+withalsactl() {
+ echo "!!Alsactl output" >> $FILE
+ echo "!!--------------" >> $FILE
+ echo "" >> $FILE
+ exe=""
+ if [ -x /usr/sbin/alsactl ]; then
+ exe="/usr/sbin/alsactl"
+ fi
+ if [ -x /usr/local/sbin/alsactl ]; then
+ exe="/usr/local/sbin/alsactl"
+ fi
+ if [ -z "$exe" ]; then
+ exe=`whereis alsactl | cut -d ' ' -f 2`
+ fi
+ $exe -f $TEMPDIR/alsactl.tmp store
+ echo "--startcollapse--" >> $FILE
+ cat $TEMPDIR/alsactl.tmp >> $FILE
+ echo "--endcollapse--" >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+}
+
+withdevices() {
+ echo "!!ALSA Device nodes" >> $FILE
+ echo "!!-----------------" >> $FILE
+ echo "" >> $FILE
+ ls -la /dev/snd/* >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+}
+
+withconfigs() {
+if [[ -e $HOME/.asoundrc ]] || [[ -e /etc/asound.conf ]] || [[ -e $HOME/.asoundrc.asoundconf ]]
+then
+ echo "!!ALSA configuration files" >> $FILE
+ echo "!!------------------------" >> $FILE
+ echo "" >> $FILE
+
+ #Check for ~/.asoundrc
+ if [[ -e $HOME/.asoundrc ]]
+ then
+ echo "!!User specific config file (~/.asoundrc)" >> $FILE
+ echo "" >> $FILE
+ cat $HOME/.asoundrc >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+ fi
+ #Check for .asoundrc.asoundconf (seems to be Ubuntu specific)
+ if [[ -e $HOME/.asoundrc.asoundconf ]]
+ then
+ echo "!!asoundconf-generated config file" >> $FILE
+ echo "" >> $FILE
+ cat $HOME/.asoundrc.asoundconf >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+ fi
+ #Check for /etc/asound.conf
+ if [[ -e /etc/asound.conf ]]
+ then
+ echo "!!System wide config file (/etc/asound.conf)" >> $FILE
+ echo "" >> $FILE
+ cat /etc/asound.conf >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+ fi
+fi
+}
+
+withsysfs() {
+ local i f
+ local printed=""
+ for i in /sys/class/sound/*; do
+ case "$i" in
+ */hwC?D?)
+ if [ -f $i/init_pin_configs ]; then
+ if [ -z "$printed" ]; then
+ echo "!!Sysfs Files" >> $FILE
+ echo "!!-----------" >> $FILE
+ echo "" >> $FILE
+ fi
+ for f in init_pin_configs driver_pin_configs user_pin_configs init_verbs hints; do
+ echo "$i/$f:" >> $FILE
+ cat $i/$f >> $FILE
+ echo >> $FILE
+ done
+ printed=yes
+ fi
+ ;;
+ esac
+ done
+ if [ -n "$printed" ]; then
+ echo "" >> $FILE
+ fi
+}
+
+withdmesg() {
+ echo "!!ALSA/HDA dmesg" >> $FILE
+ echo "!!--------------" >> $FILE
+ echo "" >> $FILE
+ dmesg | grep -C1 -E 'ALSA|HDA|HDMI|snd[_-]|sound|hda.codec|hda.intel' >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+}
+
+withall() {
+ withdevices
+ withconfigs
+ withaplay
+ withamixer
+ withalsactl
+ withlsmod
+ withsysfs
+ withdmesg
+ WITHALL="no"
+}
+
+get_alsa_library_version() {
+ ALSA_LIB_VERSION=`grep VERSION_STR /usr/include/alsa/version.h 2>/dev/null|awk {'print $3'}|sed 's/"//g'`
+
+ if [ -z "$ALSA_LIB_VERSION" ]; then
+ if [ -f /etc/lsb-release ]; then
+ . /etc/lsb-release
+ case "$DISTRIB_ID" in
+ Ubuntu)
+ if which dpkg > /dev/null ; then
+ ALSA_LIB_VERSION=`dpkg -l libasound2 | tail -1 | awk '{print $3}' | cut -f 1 -d -`
+ fi
+
+ if [ "$ALSA_LIB_VERSION" = "<none>" ]; then
+ ALSA_LIB_VERSION=""
+ fi
+ return
+ ;;
+ *)
+ return
+ ;;
+ esac
+ elif [ -f /etc/debian_version ]; then
+ if which dpkg > /dev/null ; then
+ ALSA_LIB_VERSION=`dpkg -l libasound2 | tail -1 | awk '{print $3}' | cut -f 1 -d -`
+ fi
+
+ if [ "$ALSA_LIB_VERSION" = "<none>" ]; then
+ ALSA_LIB_VERSION=""
+ fi
+ return
+ fi
+ fi
+}
+
+
+#Run checks to make sure the programs we need are installed.
+LSPCI=$(which lspci 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null);
+TPUT=$(which tput 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null);
+DIALOG=$(which dialog 2>/dev/null | sed 's|^[^/]*||' 2>/dev/null);
+
+#Check to see if sysfs is enabled in the kernel. We'll need this later on
+SYSFS=$(mount |grep sysfs|awk {'print $3'});
+
+#Check modprobe config files for sound related options
+SNDOPTIONS=$(modprobe -c|sed -n 's/^options \(snd[-_][^ ]*\)/\1:/p')
+
+KEEP_OUTPUT=
+NFILE=""
+
+PASTEBIN=""
+WWWSERVICE="www.alsa-project.org"
+WELCOME="yes"
+PROCEED="yes"
+UPLOAD="ask"
+REPEAT=""
+while [ -z "$REPEAT" ]; do
+REPEAT="no"
+case "$1" in
+ --update|--help|--about)
+ WELCOME="no"
+ PROCEED="no"
+ ;;
+ --upload)
+ UPLOAD="yes"
+ WELCOME="no"
+ ;;
+ --no-upload)
+ UPLOAD="no"
+ WELCOME="no"
+ ;;
+ --pastebin)
+ PASTEBIN="yes"
+ WWWSERVICE="pastebin"
+ ;;
+ --no-dialog)
+ DIALOG=""
+ REPEAT=""
+ shift
+ ;;
+ --stdout)
+ DIALOG=""
+ UPLOAD="no"
+ WELCOME="no"
+ TOSTDOUT="yes"
+ ;;
+esac
+done
+
+
+#Script header output.
+if [ "$WELCOME" = "yes" ]; then
+greeting_message="\
+
+This script visits the following commands/files to collect diagnostic
+information about your ALSA installation and sound related hardware.
+
+ dmesg
+ lspci
+ lsmod
+ aplay
+ amixer
+ alsactl
+ /proc/asound/
+ /sys/class/sound/
+ ~/.asoundrc (etc.)
+
+See '$0 --help' for command line options.
+"
+if [ -n "$DIALOG" ]; then
+ dialog --backtitle "$BGTITLE" \
+ --title "ALSA-Info script v $SCRIPT_VERSION" \
+ --msgbox "$greeting_message" 20 80
+else
+ echo "ALSA Information Script v $SCRIPT_VERSION"
+ echo "--------------------------------"
+ echo "$greeting_message"
+fi # dialog
+fi # WELCOME
+
+#Set the output file
+TEMPDIR=`mktemp -t -d alsa-info.XXXXXXXXXX` || exit 1
+FILE="$TEMPDIR/alsa-info.txt"
+if [ -z "$NFILE" ]; then
+ NFILE=`mktemp -t alsa-info.txt.XXXXXXXXXX` || exit 1
+fi
+
+trap cleanup 0
+
+if [ "$PROCEED" = "yes" ]; then
+
+if [ -z "$LSPCI" ]; then
+ if [ -d /sys/bus/pci ]; then
+ echo "This script requires lspci. Please install it, and re-run this script."
+ exit 0
+ fi
+fi
+
+#Fetch the info and store in temp files/variables
+DISTRO=`grep -ihs "buntu\|SUSE\|Fedora\|PCLinuxOS\|MEPIS\|Mandriva\|Debian\|Damn\|Sabayon\|Slackware\|KNOPPIX\|Gentoo\|Zenwalk\|Mint\|Kubuntu\|FreeBSD\|Puppy\|Freespire\|Vector\|Dreamlinux\|CentOS\|Arch\|Xandros\|Elive\|SLAX\|Red\|BSD\|KANOTIX\|Nexenta\|Foresight\|GeeXboX\|Frugalware\|64\|SystemRescue\|Novell\|Solaris\|BackTrack\|KateOS\|Pardus" /etc/{issue,*release,*version}`
+KERNEL_VERSION=`uname -r`
+KERNEL_PROCESSOR=`uname -p`
+KERNEL_MACHINE=`uname -m`
+KERNEL_OS=`uname -o`
+[[ `uname -v | grep SMP` ]] && KERNEL_SMP="Yes" || KERNEL_SMP="No"
+ALSA_DRIVER_VERSION=`cat /proc/asound/version |head -n1|awk {'print $7'} |sed 's/\.$//'`
+get_alsa_library_version
+ALSA_UTILS_VERSION=`amixer -v |awk {'print $3'}`
+LAST_CARD=$((`grep "]: " /proc/asound/cards | wc -l` - 1 ))
+
+ESDINST=$(which esd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
+PAINST=$(which pulseaudio 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
+ARTSINST=$(which artsd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
+JACKINST=$(which jackd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
+ROARINST=$(which roard 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
+DMIDECODE=$(which dmidecode 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
+
+#Check for DMI data
+if [ -d /sys/class/dmi/id ]; then
+ # No root privileges are required when using sysfs method
+ DMI_SYSTEM_MANUFACTURER=$(cat /sys/class/dmi/id/sys_vendor 2>/dev/null)
+ DMI_SYSTEM_PRODUCT_NAME=$(cat /sys/class/dmi/id/product_name 2>/dev/null)
+ DMI_SYSTEM_PRODUCT_VERSION=$(cat /sys/class/dmi/id/product_version 2>/dev/null)
+ DMI_SYSTEM_FIRMWARE_VERSION=$(cat /sys/class/dmi/id/bios_version 2>/dev/null)
+elif [ -x $DMIDECODE ]; then
+ DMI_SYSTEM_MANUFACTURER=$($DMIDECODE -s system-manufacturer 2>/dev/null)
+ DMI_SYSTEM_PRODUCT_NAME=$($DMIDECODE -s system-product-name 2>/dev/null)
+ DMI_SYSTEM_PRODUCT_VERSION=$($DMIDECODE -s system-version 2>/dev/null)
+ DMI_SYSTEM_FIRMWARE_VERSION=$($DMIDECODE -s bios-version 2>/dev/null)
+fi
+
+cat /proc/asound/modules 2>/dev/null|awk {'print $2'}>$TEMPDIR/alsamodules.tmp
+cat /proc/asound/cards >$TEMPDIR/alsacards.tmp
+if [[ ! -z "$LSPCI" ]]; then
+lspci |grep -i "multi\|audio">$TEMPDIR/lspci.tmp
+fi
+
+#Check for HDA-Intel cards codec#*
+cat /proc/asound/card*/codec\#* > $TEMPDIR/alsa-hda-intel.tmp 2> /dev/null
+
+#Check for AC97 cards codec
+cat /proc/asound/card*/codec97\#0/ac97\#0-0 > $TEMPDIR/alsa-ac97.tmp 2> /dev/null
+cat /proc/asound/card*/codec97\#0/ac97\#0-0+regs > $TEMPDIR/alsa-ac97-regs.tmp 2> /dev/null
+
+#Check for USB mixer setup
+cat /proc/asound/card*/usbmixer > $TEMPDIR/alsa-usbmixer.tmp 2> /dev/null
+
+#Fetch the info, and put it in $FILE in a nice readable format.
+if [[ -z $PASTEBIN ]]; then
+echo "upload=true&script=true&cardinfo=" > $FILE
+else
+echo "name=$USER&type=33&description=/tmp/alsa-info.txt&expiry=&s=Submit+Post&content=" > $FILE
+fi
+echo "!!################################" >> $FILE
+echo "!!ALSA Information Script v $SCRIPT_VERSION" >> $FILE
+echo "!!################################" >> $FILE
+echo "" >> $FILE
+echo "!!Script ran on: `LANG=C TZ=UTC date`" >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+echo "!!Linux Distribution" >> $FILE
+echo "!!------------------" >> $FILE
+echo "" >> $FILE
+echo $DISTRO >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+echo "!!DMI Information" >> $FILE
+echo "!!---------------" >> $FILE
+echo "" >> $FILE
+echo "Manufacturer: $DMI_SYSTEM_MANUFACTURER" >> $FILE
+echo "Product Name: $DMI_SYSTEM_PRODUCT_NAME" >> $FILE
+echo "Product Version: $DMI_SYSTEM_PRODUCT_VERSION" >> $FILE
+echo "Firmware Version: $DMI_SYSTEM_FIRMWARE_VERSION" >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+echo "!!Kernel Information" >> $FILE
+echo "!!------------------" >> $FILE
+echo "" >> $FILE
+echo "Kernel release: $KERNEL_VERSION" >> $FILE
+echo "Operating System: $KERNEL_OS" >> $FILE
+echo "Architecture: $KERNEL_MACHINE" >> $FILE
+echo "Processor: $KERNEL_PROCESSOR" >> $FILE
+echo "SMP Enabled: $KERNEL_SMP" >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+echo "!!ALSA Version" >> $FILE
+echo "!!------------" >> $FILE
+echo "" >> $FILE
+echo "Driver version: $ALSA_DRIVER_VERSION" >> $FILE
+echo "Library version: $ALSA_LIB_VERSION" >> $FILE
+echo "Utilities version: $ALSA_UTILS_VERSION" >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+echo "!!Loaded ALSA modules" >> $FILE
+echo "!!-------------------" >> $FILE
+echo "" >> $FILE
+cat $TEMPDIR/alsamodules.tmp >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+echo "!!Sound Servers on this system" >> $FILE
+echo "!!----------------------------" >> $FILE
+echo "" >> $FILE
+if [[ -n $PAINST ]];then
+[[ `pgrep '^(.*/)?pulseaudio$'` ]] && PARUNNING="Yes" || PARUNNING="No"
+echo "Pulseaudio:" >> $FILE
+echo " Installed - Yes ($PAINST)" >> $FILE
+echo " Running - $PARUNNING" >> $FILE
+echo "" >> $FILE
+fi
+if [[ -n $ESDINST ]];then
+[[ `pgrep '^(.*/)?esd$'` ]] && ESDRUNNING="Yes" || ESDRUNNING="No"
+echo "ESound Daemon:" >> $FILE
+echo " Installed - Yes ($ESDINST)" >> $FILE
+echo " Running - $ESDRUNNING" >> $FILE
+echo "" >> $FILE
+fi
+if [[ -n $ARTSINST ]];then
+[[ `pgrep '^(.*/)?artsd$'` ]] && ARTSRUNNING="Yes" || ARTSRUNNING="No"
+echo "aRts:" >> $FILE
+echo " Installed - Yes ($ARTSINST)" >> $FILE
+echo " Running - $ARTSRUNNING" >> $FILE
+echo "" >> $FILE
+fi
+if [[ -n $JACKINST ]];then
+[[ `pgrep '^(.*/)?jackd$'` ]] && JACKRUNNING="Yes" || JACKRUNNING="No"
+echo "Jack:" >> $FILE
+echo " Installed - Yes ($JACKINST)" >> $FILE
+echo " Running - $JACKRUNNING" >> $FILE
+echo "" >> $FILE
+fi
+if [[ -n $ROARINST ]];then
+[[ `pgrep '^(.*/)?roard$'` ]] && ROARRUNNING="Yes" || ROARRUNNING="No"
+echo "RoarAudio:" >> $FILE
+echo " Installed - Yes ($ROARINST)" >> $FILE
+echo " Running - $ROARRUNNING" >> $FILE
+echo "" >> $FILE
+fi
+if [[ -z "$PAINST" && -z "$ESDINST" && -z "$ARTSINST" && -z "$JACKINST" && -z "$ROARINST" ]];then
+echo "No sound servers found." >> $FILE
+echo "" >> $FILE
+fi
+echo "" >> $FILE
+echo "!!Soundcards recognised by ALSA" >> $FILE
+echo "!!-----------------------------" >> $FILE
+echo "" >> $FILE
+cat $TEMPDIR/alsacards.tmp >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+
+if [[ ! -z "$LSPCI" ]]; then
+echo "!!PCI Soundcards installed in the system" >> $FILE
+echo "!!--------------------------------------" >> $FILE
+echo "" >> $FILE
+cat $TEMPDIR/lspci.tmp >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+echo "!!Advanced information - PCI Vendor/Device/Subsystem ID's" >> $FILE
+echo "!!-------------------------------------------------------" >> $FILE
+echo "" >> $FILE
+lspci -vvn |grep -A1 040[1-3] >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+fi
+
+if [ "$SNDOPTIONS" ]
+then
+echo "!!Modprobe options (Sound related)" >> $FILE
+echo "!!--------------------------------" >> $FILE
+echo "" >> $FILE
+modprobe -c|sed -n 's/^options \(snd[-_][^ ]*\)/\1:/p' >> $FILE
+echo "" >> $FILE
+echo "" >> $FILE
+fi
+
+if [ -d "$SYSFS" ]
+then
+echo "!!Loaded sound module options" >> $FILE
+echo "!!---------------------------" >> $FILE
+echo "" >> $FILE
+for mod in `cat /proc/asound/modules|awk {'print $2'}`;do
+echo "!!Module: $mod" >> $FILE
+for params in `echo $SYSFS/module/$mod/parameters/*`; do
+ echo -ne "\t";
+ echo "$params : `cat $params`" | sed 's:.*/::';
+done >> $FILE
+echo "" >> $FILE
+done
+echo "" >> $FILE
+fi
+
+if [ -s "$TEMPDIR/alsa-hda-intel.tmp" ]; then
+ echo "!!HDA-Intel Codec information" >> $FILE
+ echo "!!---------------------------" >> $FILE
+ echo "--startcollapse--" >> $FILE
+ echo "" >> $FILE
+ cat $TEMPDIR/alsa-hda-intel.tmp >> $FILE
+ echo "--endcollapse--" >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+fi
+
+if [ -s "$TEMPDIR/alsa-ac97.tmp" ]; then
+ echo "!!AC97 Codec information" >> $FILE
+ echo "!!----------------------" >> $FILE
+ echo "--startcollapse--" >> $FILE
+ echo "" >> $FILE
+ cat $TEMPDIR/alsa-ac97.tmp >> $FILE
+ echo "" >> $FILE
+ cat $TEMPDIR/alsa-ac97-regs.tmp >> $FILE
+ echo "--endcollapse--" >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+fi
+
+if [ -s "$TEMPDIR/alsa-usbmixer.tmp" ]; then
+ echo "!!USB Mixer information" >> $FILE
+ echo "!!---------------------" >> $FILE
+ echo "--startcollapse--" >> $FILE
+ echo "" >> $FILE
+ cat $TEMPDIR/alsa-usbmixer.tmp >> $FILE
+ echo "--endcollapse--" >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+fi
+
+#If no command line options are specified, then run as though --with-all was specified
+if [ -z "$1" ]; then
+ update
+ pbcheck
+fi
+
+fi # proceed
+
+#loop through command line arguments, until none are left.
+if [ -n "$1" ]; then
+ until [ -z "$1" ]
+ do
+ case "$1" in
+ --pastebin)
+ update
+ pbcheck
+ ;;
+ --update)
+ update
+ exit
+ ;;
+ --upload)
+ UPLOAD="yes"
+ ;;
+ --no-upload)
+ UPLOAD="no"
+ ;;
+ --output)
+ shift
+ NFILE="$1"
+ KEEP_OUTPUT="yes"
+ ;;
+ --debug)
+ echo "Debugging enabled. $FILE and $TEMPDIR will not be deleted"
+ KEEP_FILES="yes"
+ echo ""
+ ;;
+ --with-all)
+ withall
+ ;;
+ --with-aplay)
+ withaplay
+ WITHALL="no"
+ ;;
+ --with-amixer)
+ withamixer
+ WITHALL="no"
+ ;;
+ --with-alsactl)
+ withalsactl
+ WITHALL="no"
+ ;;
+ --with-devices)
+ withdevices
+ WITHALL="no"
+ ;;
+ --with-dmesg)
+ withdmesg
+ WITHALL="no"
+ ;;
+ --with-configs)
+ WITHALL="no"
+ if [[ -e $HOME/.asoundrc ]] || [[ -e /etc/asound.conf ]]
+ then
+ echo "!!ALSA configuration files" >> $FILE
+ echo "!!------------------------" >> $FILE
+ echo "" >> $FILE
+
+ #Check for ~/.asoundrc
+ if [[ -e $HOME/.asoundrc ]]
+ then
+ echo "!!User specific config file ($HOME/.asoundrc)" >> $FILE
+ echo "" >> $FILE
+ cat $HOME/.asoundrc >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+ fi
+
+ #Check for /etc/asound.conf
+ if [[ -e /etc/asound.conf ]]
+ then
+ echo "!!System wide config file (/etc/asound.conf)" >> $FILE
+ echo "" >> $FILE
+ cat /etc/asound.conf >> $FILE
+ echo "" >> $FILE
+ echo "" >> $FILE
+ fi
+ fi
+ ;;
+ --stdout)
+ UPLOAD="no"
+ if [ -z "$WITHALL" ]; then
+ withall
+ fi
+ cat $FILE
+ rm $FILE
+ ;;
+ --about)
+ echo "Written/Tested by the following users of #alsa on irc.freenode.net:"
+ echo ""
+ echo " wishie - Script author and developer / Testing"
+ echo " crimsun - Various script ideas / Testing"
+ echo " gnubien - Various script ideas / Testing"
+ echo " GrueMaster - HDA Intel specific items / Testing"
+ echo " olegfink - Script update function"
+ echo " TheMuso - display to stdout functionality"
+ exit 0
+ ;;
+ *)
+ echo "alsa-info.sh version $SCRIPT_VERSION"
+ echo ""
+ echo "Available options:"
+ echo " --with-aplay (includes the output of aplay -l)"
+ echo " --with-amixer (includes the output of amixer)"
+ echo " --with-alsactl (includes the output of alsactl)"
+ echo " --with-configs (includes the output of ~/.asoundrc and"
+ echo " /etc/asound.conf if they exist)"
+ echo " --with-devices (shows the device nodes in /dev/snd/)"
+ echo " --with-dmesg (shows the ALSA/HDA kernel messages)"
+ echo ""
+ echo " --output FILE (specify the file to output for no-upload mode)"
+ echo " --update (check server for script updates)"
+ echo " --upload (upload contents to remote server)"
+ echo " --no-upload (do not upload contents to remote server)"
+ echo " --pastebin (use http://pastebin.ca) as remote server"
+ echo " instead www.alsa-project.org"
+ echo " --stdout (print alsa information to standard output"
+ echo " instead of a file)"
+ echo " --about (show some information about the script)"
+ echo " --debug (will run the script as normal, but will not"
+ echo " delete $FILE)"
+ exit 0
+ ;;
+ esac
+ shift 1
+ done
+fi
+
+if [ "$PROCEED" = "no" ]; then
+ exit 1
+fi
+
+if [ -z "$WITHALL" ]; then
+ withall
+fi
+
+if [ "$UPLOAD" = "ask" ]; then
+ if [ -n "$DIALOG" ]; then
+ dialog --backtitle "$BGTITLE" --title "Information collected" --yes-label " UPLOAD / SHARE " --no-label " SAVE LOCALLY " --defaultno --yesno "\n\nAutomatically upload ALSA information to $WWWSERVICE?" 10 80
+ DIALOG_EXIT_CODE=$?
+ if [ $DIALOG_EXIT_CODE != 0 ]; then
+ UPLOAD="no"
+ else
+ UPLOAD="yes"
+ fi
+ else
+ echo -n "Automatically upload ALSA information to $WWWSERVICE? [y/N] : "
+ read -e CONFIRM
+ if [ "$CONFIRM" != "y" ]; then
+ UPLOAD="no"
+ else
+ UPLOAD="yes"
+ fi
+ fi
+
+fi
+
+if [ "$UPLOAD" = "no" ]; then
+
+ if [ -z "$TOSTDOUT" ]; then
+ mv -f $FILE $NFILE || exit 1
+ KEEP_OUTPUT="yes"
+ fi
+
+ if [[ -n $DIALOG ]]
+ then
+ if [[ -n $PBERROR ]]; then
+ dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "An error occurred while contacting the $WWWSERVICE.\n Your information was NOT automatically uploaded.\n\nYour ALSA information is in $NFILE" 10 100
+ else
+ dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "\n\nYour ALSA information is in $NFILE" 10 60
+ fi
+ else
+ echo
+
+ if [[ -n $PBERROR ]]; then
+ echo "An error occurred while contacting the $WWWSERVICE."
+ echo "Your information was NOT automatically uploaded."
+ echo ""
+ echo "Your ALSA information is in $NFILE"
+ echo ""
+ else
+ if [ -z "$TOSTDOUT" ]; then
+ echo ""
+ echo "Your ALSA information is in $NFILE"
+ echo ""
+ fi
+ fi
+ fi
+
+ exit
+
+fi # UPLOAD
+
+#Test that wget is installed, and supports --post-file. Upload $FILE if it does, and prompt user to upload file if it doesnt.
+if
+WGET=$(which wget 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null); [[ -n "${WGET}" ]] && [[ -x "${WGET}" ]] && [[ `wget --help |grep post-file` ]]
+then
+
+if [[ -n $DIALOG ]]
+then
+
+if [[ -z $PASTEBIN ]]; then
+ wget -O - --tries=5 --timeout=60 --post-file=$FILE "http://www.alsa-project.org/cardinfo-db/" &>$TEMPDIR/wget.tmp || echo "Upload failed; exit"
+ { for i in 10 20 30 40 50 60 70 80 90; do
+ echo $i
+ sleep 0.2
+ done
+ echo; } |dialog --backtitle "$BGTITLE" --guage "Uploading information to www.alsa-project.org ..." 6 70 0
+else
+ wget -O - --tries=5 --timeout=60 --post-file=$FILE "http://pastebin.ca/quiet-paste.php?api=$PASTEBINKEY&encrypt=t&encryptpw=blahblah" &>$TEMPDIR/wget.tmp || echo "Upload failed; exit"
+ { for i in 10 20 30 40 50 60 70 80 90; do
+ echo $i
+ sleep 0.2
+ done
+ echo; } |dialog --backtitle "$BGTITLE" --guage "Uploading information to www.pastebin.ca ..." 6 70 0
+fi
+
+dialog --backtitle "$BGTITLE" --title "Information uploaded" --yesno "Would you like to see the uploaded information?" 5 100
+DIALOG_EXIT_CODE=$?
+if [ $DIALOG_EXIT_CODE = 0 ]; then
+ grep -v "alsa-info.txt" $FILE >$TEMPDIR/uploaded.txt
+ dialog --backtitle "$BGTITLE" --textbox $TEMPDIR/uploaded.txt 0 0
+fi
+
+clear
+
+# no dialog
+else
+
+if [[ -z $PASTEBIN ]]; then
+ echo -n "Uploading information to www.alsa-project.org ... "
+ wget -O - --tries=5 --timeout=60 --post-file=$FILE http://www.alsa-project.org/cardinfo-db/ &>$TEMPDIR/wget.tmp &
+else
+ echo -n "Uploading information to www.pastebin.ca ... "
+ wget -O - --tries=5 --timeout=60 --post-file=$FILE http://pastebin.ca/quiet-paste.php?api=$PASTEBINKEY &>$TEMPDIR/wget.tmp &
+fi
+
+#Progess spinner for wget transfer.
+i=1
+sp="/-\|"
+echo -n ' '
+while pgrep wget &>/dev/null
+do
+ echo -en "\b${sp:i++%${#sp}:1}"
+done
+
+echo -e "\b Done!"
+echo ""
+
+fi #dialog
+
+#See if tput is available, and use it if it is.
+if [ -n "$TPUT" ]; then
+ if [[ -z $PASTEBIN ]]; then
+ FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2 ; tput sgr0`
+ else
+ FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp | sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p';tput sgr0`
+ fi
+else
+ if [[ -z $PASTEBIN ]]; then
+ FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2`
+ else
+ FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp | sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p'`
+ fi
+fi
+
+# Output the URL of the uploaded file.
+echo "Your ALSA information is located at $FINAL_URL"
+echo "Please inform the person helping you."
+echo ""
+
+# We couldnt find a suitable wget, so tell the user to upload manually.
+else
+ mv -f $FILE $NFILE || exit 1
+ KEEP_OUTPUT="yes"
+ if [[ -z $DIALOG ]]
+ then
+ if [[ -z $PASTEBIN ]]; then
+ echo ""
+ echo "Could not automatically upload output to http://www.alsa-project.org"
+ echo "Possible reasons are:"
+ echo " 1. Couldnt find 'wget' in your PATH"
+ echo " 2. Your version of wget is less than 1.8.2"
+ echo ""
+ echo "Please manually upload $NFILE to http://www.alsa-project.org/cardinfo-db/ and submit your post."
+ echo ""
+ else
+ echo ""
+ echo "Could not automatically upload output to http://www.pastebin.ca"
+ echo "Possible reasons are:"
+ echo " 1. Couldnt find 'wget' in your PATH"
+ echo " 2. Your version of wget is less than 1.8.2"
+ echo ""
+ echo "Please manually upload $NFILE to http://www.pastebin.ca/upload.php and submit your post."
+ echo ""
+ fi
+ else
+ if [[ -z $PASTEBIN ]]; then
+ dialog --backtitle "$BGTITLE" --msgbox "Could not automatically upload output to http://www.alsa-project.org.\nPossible reasons are:\n\n 1. Couldn't find 'wget' in your PATH\n 2. Your version of wget is less than 1.8.2\n\nPlease manually upload $NFILE to http://www.alsa-project,org/cardinfo-db/ and submit your post." 25 100
+ else
+ dialog --backtitle "$BGTITLE" --msgbox "Could not automatically upload output to http://www.pastebin.ca.\nPossible reasons are:\n\n 1. Couldn't find 'wget' in your PATH\n 2. Your version of wget is less than 1.8.2\n\nPlease manually upload $NFILE to http://www.pastebin.ca/upload.php and submit your post." 25 100
+ fi
+ fi
+fi
#endif
int init(const char *file, const char *cardname);
-int state_lock(const char *file, int lock, int timeout);
+int state_lock(const char *file, int timeout);
+int state_unlock(int fd, const char *file);
int save_state(const char *file, const char *cardname);
int load_state(const char *file, const char *initfile, const char *cardname,
int do_init);
int power(const char *argv[], int argc);
+int monitor(const char *name);
int state_daemon(const char *file, const char *cardname, int period,
const char *pidfile);
int state_daemon_kill(const char *pidfile, const char *cmd);
#
# Basic rules are:
# - keep volumes at minimal level, but sound should be hearable
-# - enable just main speakers for playback and main microphone for recording
+# - enable standard outputs for playback and main microphone for recording
#
# **************************************************************************
CTL{values}="on"
CTL{reset}="mixer"
+CTL{name}="Line Out Playback Volume",PROGRAM!="__ctl_search",GOTO=""
+# if master volume control is present, turn line out 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}="Line Out 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{write}=="0dB",GOTO=""
#include <sys/stat.h>
#include "alsactl.h"
-static int state_lock_(const char *file, int lock, int timeout)
+static int state_lock_(const char *file, int lock, int timeout, int _fd)
{
int fd = -1, err = 0;
struct flock lck;
snprintf(lcktxt, sizeof(lcktxt), "%10li\n", (long)getpid());
} else {
snprintf(lcktxt, sizeof(lcktxt), "%10s\n", "");
+ fd = _fd;
}
while (fd < 0 && timeout-- > 0) {
fd = open(nfile, O_RDWR);
+ if (!lock && fd < 0) {
+ err = -EIO;
+ goto out;
+ }
if (fd < 0) {
fd = open(nfile, O_RDWR|O_CREAT|O_EXCL, 0644);
if (fd < 0) {
err = -errno;
goto out;
}
- if (st.st_size != 11) {
+ if (st.st_size != 11 || !lock) {
if (write(fd, lcktxt, 11) != 11) {
err = -EIO;
goto out;
}
- if (lseek(fd, 0, SEEK_SET)) {
+ if (lock && lseek(fd, 0, SEEK_SET)) {
err = -errno;
goto out;
}
err = -EBUSY;
goto out;
}
- if (write(fd, lcktxt, 11) != 11) {
- err = -EIO;
- goto out;
+ if (lock) {
+ if (write(fd, lcktxt, 11) != 11) {
+ err = -EIO;
+ goto out;
+ }
+ return fd;
}
+ err = 0;
+
out:
+ if (fd >= 0)
+ close(fd);
+ return err;
+}
+
+int state_lock(const char *file, int timeout)
+{
+ int err;
+
+ err = state_lock_(file, 1, timeout, -1);
+ if (err < 0)
+ error("file %s lock error: %s", file, strerror(-err));
return err;
}
-int state_lock(const char *file, int lock, int timeout)
+int state_unlock(int _fd, const char *file)
{
int err;
- err = state_lock_(file, lock, timeout);
+ err = state_lock_(file, 0, 10, _fd);
if (err < 0)
- error("file %s %slock error: %s", file,
- lock ? "" : "un", strerror(-err));
+ error("file %s unlock error: %s", file, strerror(-err));
return err;
}
snd_ctl_t *ctls[MAX_CARDS];
int ncards = 0;
int show_cards;
- int i, err;
+ int i, err = 0;
if (!name) {
int card = -1;
show_cards = 0;
}
- for (;;) {
+ for (;ncards > 0;) {
struct pollfd fds[ncards];
for (i = 0; i < ncards; i++)
snd_output_t *out;
int stdio;
char *nfile = NULL;
+ int lock_fd = -EINVAL;
err = snd_config_top(&config);
if (err < 0) {
nfile = malloc(strlen(file) + 5);
if (nfile == NULL) {
error("No enough memory...");
+ err = -ENOMEM;
goto out;
}
strcpy(nfile, file);
strcat(nfile, ".new");
- if (state_lock(file, 1, 10) != 0)
+ lock_fd = state_lock(file, 10);
+ if (lock_fd < 0) {
+ err = lock_fd;
goto out;
+ }
}
if (!stdio && (err = snd_input_stdio_open(&in, file, "r")) >= 0) {
err = snd_config_load(config, in);
snd_output_close(out);
if (err < 0) {
error("snd_config_save: %s", snd_strerror(err));
- } else {
+ } else if (nfile) {
err = rename(nfile, file);
if (err < 0)
error("rename failed: %s (%s)", strerror(-err), file);
}
out:
- if (!stdio)
- state_lock(file, 0, 10);
+ if (!stdio && lock_fd >= 0)
+ state_unlock(lock_fd, file);
free(nfile);
snd_config_delete(config);
snd_config_update_free_global();
int err, finalerr = 0;
snd_config_t *config;
snd_input_t *in;
- int stdio, locked = 0;
+ int stdio, lock_fd = -EINVAL;
err = snd_config_top(&config);
if (err < 0) {
if (stdio) {
err = snd_input_stdio_attach(&in, stdin, 0);
} else {
- err = state_lock(file, 1, 10);
- locked = err >= 0;
- err = err >= 0 ? snd_input_stdio_open(&in, file, "r") : err;
+ lock_fd = state_lock(file, 10);
+ err = lock_fd >= 0 ? snd_input_stdio_open(&in, file, "r") : lock_fd;
}
if (err >= 0) {
err = snd_config_load(config, in);
snd_input_close(in);
- if (locked)
- state_lock(file, 0, 10);
+ if (lock_fd >= 0)
+ state_unlock(lock_fd, file);
if (err < 0) {
error("snd_config_load error: %s", snd_strerror(err));
goto out;
int card, first = 1;
char cardname1[16];
+ if (lock_fd >= 0)
+ state_unlock(lock_fd, file);
error("Cannot open %s for reading: %s", file, snd_strerror(err));
finalerr = err;
if (cardname) {
fprintf(stderr, "%s: %s:%ld: ", command, fcn, line);
vfprintf(stderr, fmt, ap);
putc('\n', stderr);
- va_end(ap);
}
+ va_end(ap);
}
void dbg_(const char *fcn, long line, const char *fmt, ...)
fprintf(stderr, "%s: %s:%ld: ", command, fcn, line);
vfprintf(stderr, fmt, ap);
putc('\n', stderr);
- va_end(ap);
}
+ va_end(ap);
}
#include "widget.h"
#include "mixer_widget.h"
#include "mixer_display.h"
+#include "mixer_controls.h"
#include "mainloop.h"
static WINDOW *curses_initialized;
long val, orig, pmin, pmax;
char *p = *ptr, *s;
int invalid = 0, percent = 0, err = 0;
- int vol_type = std_vol_type;
+ int vol_type;
double scale = 1.0;
int correct = 0;
strtol(p, &p, 10);
}
if (*p == '%') {
+ vol_type = std_vol_type;
percent = 1;
p++;
- } else if (p[0] == 'd' && p[1] == 'B') {
+ } else if (toupper(p[0]) == 'D' && toupper(p[1]) == 'B') {
vol_type = VOL_DB;
p += 2;
scale = 100;
- } else
+ } else {
vol_type = VOL_RAW;
+ }
+
+ if (*p && !strchr(",:+-", *p))
+ invalid = 1;
val = (long)(strtod(s, NULL) * scale);
if (vol_ops[dir].v[vol_type].get_range(elem, &pmin, &pmax) < 0)
}
p++;
}
+
+ if (*p && !strchr(",:", *p))
+ invalid = 1;
+
if (! invalid) {
val = check_range(val, pmin, pmax);
err = vol_ops[dir].v[vol_type].set(elem, chn, val, correct);
data += r * bits_per_frame / 8;
}
}
- return result;
+ return rcount;
}
static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount)
count -= r;
}
}
- return result;
+ return rcount;
}
/*
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for alsa-utils 1.0.28.
+# Generated by GNU Autoconf 2.69 for alsa-utils 1.0.29.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
# Identity of this package.
PACKAGE_NAME='alsa-utils'
PACKAGE_TARNAME='alsa-utils'
-PACKAGE_VERSION='1.0.28'
-PACKAGE_STRING='alsa-utils 1.0.28'
+PACKAGE_VERSION='1.0.29'
+PACKAGE_STRING='alsa-utils 1.0.29'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
ALSAMIXER_TRUE
HAVE_SAMPLERATE_FALSE
HAVE_SAMPLERATE_TRUE
+HAVE_UCM_FALSE
+HAVE_UCM_TRUE
HAVE_SEQ_FALSE
HAVE_SEQ_TRUE
HAVE_RAWMIDI_FALSE
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures alsa-utils 1.0.28 to adapt to many kinds of systems.
+\`configure' configures alsa-utils 1.0.29 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of alsa-utils 1.0.28:";;
+ short | recursive ) echo "Configuration of alsa-utils 1.0.29:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-alsa-utils configure 1.0.28
+alsa-utils configure 1.0.29
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by alsa-utils $as_me 1.0.28, which was
+It was created by alsa-utils $as_me 1.0.29, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='alsa-utils'
- VERSION='1.0.28'
+ VERSION='1.0.29'
cat >>confdefs.h <<_ACEOF
done
+for ac_header in alsa/use-case.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "alsa/use-case.h" "ac_cv_header_alsa_use_case_h" "#include <alsa/asoundlib.h>
+"
+if test "x$ac_cv_header_alsa_use_case_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ALSA_USE_CASE_H 1
+_ACEOF
+ have_ucm="yes"
+else
+ have_ucm="no"
+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>
HAVE_SEQ_FALSE=
fi
+ if test "$have_ucm" = "yes"; then
+ HAVE_UCM_TRUE=
+ HAVE_UCM_FALSE='#'
+else
+ HAVE_UCM_TRUE='#'
+ HAVE_UCM_FALSE=
+fi
+
if test "$have_samplerate" = "yes"; then
HAVE_SAMPLERATE_TRUE=
HAVE_SAMPLERATE_FALSE='#'
-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"
+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 alsa-info/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
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_UCM_TRUE}" && test -z "${HAVE_UCM_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_UCM\" 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
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by alsa-utils $as_me 1.0.28, which was
+This file was extended by alsa-utils $as_me 1.0.29, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-alsa-utils config.status 1.0.28
+alsa-utils config.status 1.0.29
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
"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" ;;
+ "alsa-info/Makefile") CONFIG_FILES="$CONFIG_FILES alsa-info/Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
-AC_INIT(alsa-utils, 1.0.28)
+AC_INIT(alsa-utils, 1.0.29)
AC_CONFIG_SRCDIR([aplay/aplay.c])
AC_PREFIX_DEFAULT(/usr)
AM_INIT_AUTOMAKE
[#include <alsa/asoundlib.h>])
AC_CHECK_HEADERS([alsa/seq.h], [have_seq="yes"], [have_seq="no"],
[#include <alsa/asoundlib.h>])
+AC_CHECK_HEADERS([alsa/use-case.h], [have_ucm="yes"], [have_ucm="no"],
+ [#include <alsa/asoundlib.h>])
AC_CHECK_HEADERS([samplerate.h], [have_samplerate="yes"], [have_samplerate="no"],
[#include <samplerate.h>])
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_UCM, test "$have_ucm" = "yes")
AM_CONDITIONAL(HAVE_SAMPLERATE, test "$have_samplerate" = "yes")
dnl Check for librt
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)
+ alsaloop/Makefile alsa-info/Makefile)
/* Define to 1 if you have the <alsa/seq.h> header file. */
#undef HAVE_ALSA_SEQ_H
+/* Define to 1 if you have the <alsa/use-case.h> header file. */
+#undef HAVE_ALSA_USE_CASE_H
+
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
CoreFoundation framework. */
#undef HAVE_CFLOCALECOPYCURRENT
#define SND_UTIL_MAJOR 1
#define SND_UTIL_MINOR 0
-#define SND_UTIL_SUBMINOR 28
+#define SND_UTIL_SUBMINOR 29
#define SND_UTIL_VERSION ((SND_UTIL_MAJOR<<16)|\
(SND_UTIL_MINOR<<8)|\
SND_UTIL_SUBMINOR)
-#define SND_UTIL_VERSION_STR "1.0.28"
+#define SND_UTIL_VERSION_STR "1.0.29"
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: alsa-utils 1.0.28\n"
+"Project-Id-Version: alsa-utils 1.0.29\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-13 19:24+0200\n"
+"POT-Creation-Date: 2015-02-26 15:50+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"
msgstr ""
"Project-Id-Version: alsa-utils 1.0.23\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-13 19:24+0200\n"
+"POT-Creation-Date: 2015-02-26 15:50+0100\n"
"PO-Revision-Date: 2010-11-09 21:12+0100\n"
"Last-Translator: Clemens Ladisch <clemens@ladisch.de>\n"
"Language-Team: German\n"
msgstr ""
"Project-Id-Version: alsa-utils 1.0.23\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-13 19:24+0200\n"
+"POT-Creation-Date: 2015-02-26 15:50+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"
msgstr ""
"Project-Id-Version: alsa-utils 1.0.9a\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-13 19:24+0200\n"
+"POT-Creation-Date: 2015-02-26 15:50+0100\n"
"PO-Revision-Date: 2009-05-27 15:08+0200\n"
"Last-Translator: Takashi Iwai <tiwai@suse.de>\n"
"Language-Team: Japanese\n"
#ifdef CONFIG_SUPPORT_CHMAP
static snd_pcm_chmap_t *channel_map;
static int channel_map_set;
-static unsigned int *ordered_channels;
+static int *ordered_channels;
#endif
static const char *const channel_name[MAX_CHANNELS] = {
}
}
+ snd_pcm_drain(handle);
free(frames);
#ifdef CONFIG_SUPPORT_CHMAP