Imported Upstream version 1.0.29 27/252527/1 upstream upstream/1.0.29
authorSeungbae Shin <seungbae.shin@samsung.com>
Wed, 27 Jan 2021 05:30:21 +0000 (14:30 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Fri, 29 Jan 2021 06:17:54 +0000 (15:17 +0900)
Change-Id: I89e73d2e609004ba5ce8849a83470957d3a5bd95

26 files changed:
Makefile.am
Makefile.in
alsa-info/Makefile.am [new file with mode: 0644]
alsa-info/Makefile.in [new file with mode: 0644]
alsa-info/alsa-info.sh [new file with mode: 0755]
alsactl/alsactl.h
alsactl/init/default
alsactl/lock.c
alsactl/monitor.c
alsactl/state.c
alsactl/utils.c
alsamixer/mainloop.c
amixer/amixer.c
aplay/aplay.c
configure
configure.ac
include/aconfig.h.in
include/version.h
po/alsa-utils.pot
po/de.gmo
po/de.po
po/fr.gmo
po/fr.po
po/ja.gmo
po/ja.po
speaker-test/speaker-test.c

index 794ed27..b9f0004 100644 (file)
@@ -1,6 +1,6 @@
 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
@@ -22,6 +22,9 @@ endif
 if HAVE_SEQ
 SUBDIRS += seq
 endif
+if HAVE_UCM
+SUBDIRS += alsaucm
+endif
 
 EXTRA_DIST= config.rpath  TODO gitcompile
 AUTOMAKE_OPTIONS=foreign
index eadeb26..a3d303b 100644 (file)
@@ -56,6 +56,7 @@ host_triplet = @host@
 @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 \
@@ -98,8 +99,8 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
 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)
@@ -285,9 +286,10 @@ top_srcdir = @top_srcdir@
 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
diff --git a/alsa-info/Makefile.am b/alsa-info/Makefile.am
new file mode 100644 (file)
index 0000000..356f1a9
--- /dev/null
@@ -0,0 +1,2 @@
+EXTRA_DIST = alsa-info.sh
+sbin_SCRIPTS = alsa-info.sh
diff --git a/alsa-info/Makefile.in b/alsa-info/Makefile.in
new file mode 100644 (file)
index 0000000..68bc1dc
--- /dev/null
@@ -0,0 +1,475 @@
+# 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:
diff --git a/alsa-info/alsa-info.sh b/alsa-info/alsa-info.sh
new file mode 100755 (executable)
index 0000000..acd8495
--- /dev/null
@@ -0,0 +1,943 @@
+#!/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
index 76e8c36..4f969ec 100644 (file)
@@ -25,11 +25,13 @@ void dbg_(const char *fcn, long line, const char *fmt, ...);
 #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);
index 5fb0113..1c84f3e 100644 (file)
@@ -3,7 +3,7 @@
 #
 # 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
 #
 
 # **************************************************************************
@@ -43,6 +43,16 @@ CTL{name}="Master Digital Playback Switch",CTL{do_search}=="1", \
   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=""
index 6f85f20..9d7efcc 100644 (file)
@@ -30,7 +30,7 @@
 #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;
@@ -50,9 +50,14 @@ static int state_lock_(const char *file, int lock, int timeout)
                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) {
@@ -74,12 +79,12 @@ static int state_lock_(const char *file, int lock, int timeout)
                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;
                }
@@ -96,21 +101,37 @@ static int state_lock_(const char *file, int lock, int timeout)
                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;
 }
index 536176d..29379ad 100644 (file)
@@ -91,7 +91,7 @@ int monitor(const char *name)
        snd_ctl_t *ctls[MAX_CARDS];
        int ncards = 0;
        int show_cards;
-       int i, err;
+       int i, err = 0;
 
        if (!name) {
                int card = -1;
@@ -117,7 +117,7 @@ int monitor(const char *name)
                show_cards = 0;
        }
 
-       for (;;) {
+       for (;ncards > 0;) {
                struct pollfd fds[ncards];
 
                for (i = 0; i < ncards; i++)
index c33f501..3908ec4 100644 (file)
@@ -1544,6 +1544,7 @@ int save_state(const char *file, const char *cardname)
        snd_output_t *out;
        int stdio;
        char *nfile = NULL;
+       int lock_fd = -EINVAL;
 
        err = snd_config_top(&config);
        if (err < 0) {
@@ -1555,12 +1556,16 @@ int save_state(const char *file, const char *cardname)
                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);
@@ -1626,14 +1631,14 @@ int save_state(const char *file, const char *cardname)
        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();
@@ -1646,7 +1651,7 @@ int load_state(const char *file, const char *initfile, const char *cardname,
        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) {
@@ -1657,15 +1662,14 @@ int load_state(const char *file, const char *initfile, const char *cardname,
        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;
@@ -1674,6 +1678,8 @@ int load_state(const char *file, const char *initfile, const char *cardname,
                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) {
index b5d183c..304df7c 100644 (file)
@@ -157,8 +157,8 @@ void cerror_(const char *fcn, long line, int cond, const char *fmt, ...)
                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, ...)
@@ -174,6 +174,6 @@ 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);
 }
index 351f57f..79d81a9 100644 (file)
@@ -29,6 +29,7 @@
 #include "widget.h"
 #include "mixer_widget.h"
 #include "mixer_display.h"
+#include "mixer_controls.h"
 #include "mainloop.h"
 
 static WINDOW *curses_initialized;
index cf82892..ed60e7c 100644 (file)
@@ -325,7 +325,7 @@ static int set_volume_simple(snd_mixer_elem_t *elem,
        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;
 
@@ -344,14 +344,19 @@ static int set_volume_simple(snd_mixer_elem_t *elem,
                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)
@@ -372,6 +377,10 @@ static int set_volume_simple(snd_mixer_elem_t *elem,
                }
                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);
index 30d3f31..e58e1bc 100644 (file)
@@ -2039,7 +2039,7 @@ static ssize_t pcm_read(u_char *data, size_t rcount)
                        data += r * bits_per_frame / 8;
                }
        }
-       return result;
+       return rcount;
 }
 
 static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount)
@@ -2084,7 +2084,7 @@ static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount)
                        count -= r;
                }
        }
-       return result;
+       return rcount;
 }
 
 /*
index 160c06b..baa78df 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.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.
@@ -577,8 +577,8 @@ MAKEFLAGS=
 # 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=''
 
@@ -660,6 +660,8 @@ ALSAMIXER_FALSE
 ALSAMIXER_TRUE
 HAVE_SAMPLERATE_FALSE
 HAVE_SAMPLERATE_TRUE
+HAVE_UCM_FALSE
+HAVE_UCM_TRUE
 HAVE_SEQ_FALSE
 HAVE_SEQ_TRUE
 HAVE_RAWMIDI_FALSE
@@ -1368,7 +1370,7 @@ if test "$ac_init_help" = "long"; then
   # 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]...
 
@@ -1438,7 +1440,7 @@ fi
 
 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
 
@@ -1578,7 +1580,7 @@ fi
 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.
@@ -1943,7 +1945,7 @@ cat >config.log <<_ACEOF
 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 $@
@@ -2770,7 +2772,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='alsa-utils'
- VERSION='1.0.28'
+ VERSION='1.0.29'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -7348,6 +7350,21 @@ fi
 
 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>
@@ -7396,6 +7413,14 @@ else
   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='#'
@@ -9069,7 +9094,7 @@ 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"
+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
@@ -9228,6 +9253,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_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
@@ -9649,7 +9678,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # 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
@@ -9715,7 +9744,7 @@ _ACEOF
 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\\"
 
@@ -9879,6 +9908,7 @@ do
     "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
index a4d2db3..f09aa54 100644 (file)
@@ -1,6 +1,6 @@
 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
@@ -48,6 +48,8 @@ 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([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>])
 
@@ -55,6 +57,7 @@ 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_UCM, test "$have_ucm" = "yes")
 AM_CONDITIONAL(HAVE_SAMPLERATE, test "$have_samplerate" = "yes")
 
 dnl Check for librt
@@ -360,4 +363,4 @@ AC_OUTPUT(Makefile alsactl/Makefile alsactl/init/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)
+         alsaloop/Makefile alsa-info/Makefile)
index 0f6b081..3fe05b7 100644 (file)
@@ -22,6 +22,9 @@
 /* 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
index 76f95f8..a68e20f 100644 (file)
@@ -4,9 +4,9 @@
 
 #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"
 
index 2606419..76e6dfb 100644 (file)
@@ -6,9 +6,9 @@
 #, 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"
index ef69ef2..90e894b 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index f124d04..08cc4d5 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
 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"
index d979a16..3983f2f 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 052d94f..a2108d9 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
 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"
index 1c2cb81..3716988 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index 64122de..69bbbe3 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: 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"
index 61396f2..ccf2671 100644 (file)
@@ -113,7 +113,7 @@ static snd_pcm_t *pcm_handle = NULL;
 #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] = {
@@ -1307,6 +1307,7 @@ int main(int argc, char *argv[]) {
     }
   }
 
+  snd_pcm_drain(handle);
 
   free(frames);
 #ifdef CONFIG_SUPPORT_CHMAP