Hello community,
here is the log from the commit of package alsa
checked in at Sun Aug 6 21:24:26 CEST 2006.
--------
--- alsa/alsa.changes 2006-07-10 15:33:03.000000000 +0200
+++ alsa/alsa.changes 2006-08-04 16:16:40.000000000 +0200
@@ -1,0 +2,9 @@
+Fri Aug 4 16:14:27 CEST 2006 - tiwai@suse.de
+
+- updated to version 1.0.12rc2:
+ * merged previous patches
+ * add support of dB range
+ * completely removal of dependency to kernel headers
+ * config files for new drivers
+
+-------------------------------------------------------------------
Old:
----
alsa-lib-1.0.12rc1.tar.bz2
alsa-lib-hg-fixes.diff
alsa-utils-1.0.12rc1.tar.bz2
alsa-utils-hg-fixes.diff
New:
----
alsa-lib-1.0.12rc2.tar.bz2
alsa-utils-1.0.12rc2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ alsa.spec ++++++
--- /var/tmp/diff_new_pack.7UiPIj/_old 2006-08-06 21:23:55.000000000 +0200
+++ /var/tmp/diff_new_pack.7UiPIj/_new 2006-08-06 21:23:55.000000000 +0200
@@ -12,7 +12,7 @@
Name: alsa
BuildRequires: doxygen resmgr
-%define package_version 1.0.12rc1
+%define package_version 1.0.12rc2
License: GPL
Group: System/Libraries
Provides: alsa-lib alsa-utils alsa-conf
@@ -21,7 +21,7 @@
Autoreqprov: on
Summary: Advanced Linux Sound Architecture
Version: 1.0.12
-Release: 3
+Release: 4
Source1: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2
Source2: ftp://ftp.alsa-project.org/pub/util/alsa-utils-%{package_version}.tar.bz2
# Source5: ftp://ftp.alsa-project.org/pub/oss/alsa-oss-%{package_version}.tar.bz2
@@ -41,8 +41,8 @@
Source30: all_notes_off
Source31: all_notes_off.bin
Source32: all_notes_off.mid
-Patch1: alsa-lib-hg-fixes.diff
-Patch2: alsa-utils-hg-fixes.diff
+# Patch1: alsa-lib-hg-fixes.diff
+# Patch2: alsa-utils-hg-fixes.diff
# Patch3: alsa-oss-hg-fixes.diff
URL: http://www.alsa-project.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -96,12 +96,12 @@
%prep
%setup -c -n alsa -T -a 1 -a 2 -a 5
-cd alsa-lib*/.
-%patch1 -p1
-cd ..
-cd alsa-utils*/.
-%patch2 -p1
-cd ..
+# cd alsa-lib*/.
+# %patch1 -p1
+# cd ..
+# cd alsa-utils*/.
+# %patch2 -p1
+# cd ..
# cd alsa-oss*/.
# %patch3 -p1
# cd ..
@@ -382,6 +382,12 @@
%doc alsa-lib*/doc/doxygen/html/*
%changelog -n alsa
+* Fri Aug 04 2006 - tiwai@suse.de
+- updated to version 1.0.12rc2:
+ * merged previous patches
+ * add support of dB range
+ * completely removal of dependency to kernel headers
+ * config files for new drivers
* Mon Jul 10 2006 - tiwai@suse.de
- Added missing invocation of usx2yloader for Tascam USB
devices in udev rules (#190172).
++++++ alsa-lib-1.0.12rc1.tar.bz2 -> alsa-lib-1.0.12rc2.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/configure new/alsa-lib-1.0.12rc2/configure
--- old/alsa-lib-1.0.12rc1/configure 2006-06-21 17:33:23.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/configure 2006-08-04 14:45:10.000000000 +0200
@@ -1900,7 +1900,7 @@
# Define the identity of the package.
PACKAGE=alsa-lib
- VERSION=1.0.12rc1
+ VERSION=1.0.12rc2
cat >>confdefs.h <<_ACEOF
@@ -19585,7 +19585,7 @@
eval dir="$datadir"
case "$dir" in
/*) ;;
-*) dir="$PWD/$dir"
+*) dir="$prefix/$dir"
esac
cat >>confdefs.h <<_ACEOF
@@ -19598,7 +19598,7 @@
eval dir="$libdir"
case "$dir" in
/*) ;;
-*) dir="$PWD/$dir"
+*) dir="$prefix/$dir"
esac
cat >>confdefs.h <<_ACEOF
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/configure.in new/alsa-lib-1.0.12rc2/configure.in
--- old/alsa-lib-1.0.12rc1/configure.in 2006-06-21 17:31:57.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/configure.in 2006-08-04 14:43:43.000000000 +0200
@@ -9,7 +9,7 @@
dnl remove API = c+1:0:0
dnl *************************************************
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(alsa-lib, 1.0.12rc1)
+AM_INIT_AUTOMAKE(alsa-lib, 1.0.12rc2)
eval LIBTOOL_VERSION_INFO="2:0:0"
dnl *************************************************
AM_CONDITIONAL(INSTALL_M4, test -n "${ACLOCAL}")
@@ -63,7 +63,7 @@
eval dir="$datadir"
case "$dir" in
/*) ;;
-*) dir="$PWD/$dir"
+*) dir="$prefix/$dir"
esac
AC_DEFINE_UNQUOTED(DATADIR, "$dir", [directory containing ALSA configuration database])
@@ -72,7 +72,7 @@
eval dir="$libdir"
case "$dir" in
/*) ;;
-*) dir="$PWD/$dir"
+*) dir="$prefix/$dir"
esac
AC_DEFINE_UNQUOTED(PKGLIBDIR, "$dir/$PACKAGE", [directory containing ALSA add-on modules])
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/doc/doxygen.cfg new/alsa-lib-1.0.12rc2/doc/doxygen.cfg
--- old/alsa-lib-1.0.12rc1/doc/doxygen.cfg 2006-06-21 17:31:57.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/doc/doxygen.cfg 2006-08-04 14:43:43.000000000 +0200
@@ -94,8 +94,7 @@
../src/seq/seq_local.h
RECURSIVE = YES
FILE_PATTERNS = *.c *.h
-EXAMPLE_PATH = ../test/pcm.c ../test/latency.c ../test/rawmidi.c \
- ../test/timer.c
+EXAMPLE_PATH = ../test
IMAGE_PATH = pictures
QUIET = YES
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/control.h new/alsa-lib-1.0.12rc2/include/control.h
--- old/alsa-lib-1.0.12rc1/include/control.h 2006-06-21 17:31:57.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/include/control.h 2006-08-04 14:43:43.000000000 +0200
@@ -122,6 +122,8 @@
#define SND_CTL_EVENT_MASK_INFO (1<<1)
/** Element has been added \hideinitializer */
#define SND_CTL_EVENT_MASK_ADD (1<<2)
+/** Element's TLV value has been changed \hideinitializer */
+#define SND_CTL_EVENT_MASK_TLV (1<<3)
/** CTL name helper */
#define SND_CTL_NAME_NONE ""
@@ -164,6 +166,11 @@
/** ACPI/PCI Power State D3cold */
#define SND_CTL_POWER_D3cold (SND_CTL_POWER_D3|0x0001)
+/** TLV type - Container */
+#define SND_CTL_TLVT_CONTAINER 0x0000
+/** TLV type - basic dB scale */
+#define SND_CTL_TLVT_DB_SCALE 0x0001
+
/** CTL type */
typedef enum _snd_ctl_type {
/** Kernel level CTL */
@@ -212,12 +219,18 @@
int snd_ctl_poll_descriptors_revents(snd_ctl_t *ctl, struct pollfd *pfds, unsigned int nfds, unsigned short *revents);
int snd_ctl_subscribe_events(snd_ctl_t *ctl, int subscribe);
int snd_ctl_card_info(snd_ctl_t *ctl, snd_ctl_card_info_t *info);
-int snd_ctl_elem_list(snd_ctl_t *ctl, snd_ctl_elem_list_t * list);
+int snd_ctl_elem_list(snd_ctl_t *ctl, snd_ctl_elem_list_t *list);
int snd_ctl_elem_info(snd_ctl_t *ctl, snd_ctl_elem_info_t *info);
int snd_ctl_elem_read(snd_ctl_t *ctl, snd_ctl_elem_value_t *value);
int snd_ctl_elem_write(snd_ctl_t *ctl, snd_ctl_elem_value_t *value);
int snd_ctl_elem_lock(snd_ctl_t *ctl, snd_ctl_elem_id_t *id);
int snd_ctl_elem_unlock(snd_ctl_t *ctl, snd_ctl_elem_id_t *id);
+int snd_ctl_elem_tlv_read(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id,
+ unsigned int *tlv, unsigned int tlv_size);
+int snd_ctl_elem_tlv_write(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id,
+ const unsigned int *tlv);
+int snd_ctl_elem_tlv_command(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id,
+ const unsigned int *tlv);
int snd_ctl_hwdep_next_device(snd_ctl_t *ctl, int * device);
int snd_ctl_hwdep_info(snd_ctl_t *ctl, snd_hwdep_info_t * info);
int snd_ctl_pcm_next_device(snd_ctl_t *ctl, int *device);
@@ -340,6 +353,9 @@
int snd_ctl_elem_info_is_volatile(const snd_ctl_elem_info_t *obj);
int snd_ctl_elem_info_is_inactive(const snd_ctl_elem_info_t *obj);
int snd_ctl_elem_info_is_locked(const snd_ctl_elem_info_t *obj);
+int snd_ctl_elem_info_is_tlv_readable(const snd_ctl_elem_info_t *obj);
+int snd_ctl_elem_info_is_tlv_writable(const snd_ctl_elem_info_t *obj);
+int snd_ctl_elem_info_is_tlv_commandable(const snd_ctl_elem_info_t *obj);
int snd_ctl_elem_info_is_owner(const snd_ctl_elem_info_t *obj);
int snd_ctl_elem_info_is_user(const snd_ctl_elem_info_t *obj);
pid_t snd_ctl_elem_info_get_owner(const snd_ctl_elem_info_t *obj);
@@ -485,6 +501,9 @@
int snd_hctl_elem_info(snd_hctl_elem_t *elem, snd_ctl_elem_info_t * info);
int snd_hctl_elem_read(snd_hctl_elem_t *elem, snd_ctl_elem_value_t * value);
int snd_hctl_elem_write(snd_hctl_elem_t *elem, snd_ctl_elem_value_t * value);
+int snd_hctl_elem_tlv_read(snd_hctl_elem_t *elem, unsigned int *tlv, unsigned int tlv_size);
+int snd_hctl_elem_tlv_write(snd_hctl_elem_t *elem, const unsigned int *tlv);
+int snd_hctl_elem_tlv_command(snd_hctl_elem_t *elem, const unsigned int *tlv);
snd_hctl_t *snd_hctl_elem_get_hctl(snd_hctl_elem_t *elem);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/sound/Makefile.am new/alsa-lib-1.0.12rc2/include/sound/Makefile.am
--- old/alsa-lib-1.0.12rc1/include/sound/Makefile.am 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/include/sound/Makefile.am 2006-08-04 14:43:43.000000000 +0200
@@ -1,6 +1,7 @@
alsasoundincludedir = ${includedir}/alsa/sound
alsasoundinclude_HEADERS = ainstr_fm.h ainstr_gf1.h ainstr_simple.h ainstr_iw.h \
- asound_fm.h hdsp.h sb16_csp.h sscape_ioctl.h emu10k1.h
+ asound_fm.h hdsp.h sb16_csp.h sscape_ioctl.h emu10k1.h \
+ type_compat.h
noinst_HEADERS = asound.h asoundef.h asequencer.h
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/sound/Makefile.in new/alsa-lib-1.0.12rc2/include/sound/Makefile.in
--- old/alsa-lib-1.0.12rc1/include/sound/Makefile.in 2006-06-21 17:33:02.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/include/sound/Makefile.in 2006-08-04 14:44:45.000000000 +0200
@@ -240,7 +240,8 @@
target_vendor = @target_vendor@
alsasoundincludedir = ${includedir}/alsa/sound
alsasoundinclude_HEADERS = ainstr_fm.h ainstr_gf1.h ainstr_simple.h ainstr_iw.h \
- asound_fm.h hdsp.h sb16_csp.h sscape_ioctl.h emu10k1.h
+ asound_fm.h hdsp.h sb16_csp.h sscape_ioctl.h emu10k1.h \
+ type_compat.h
noinst_HEADERS = asound.h asoundef.h asequencer.h
all: all-am
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/sound/ainstr_fm.h new/alsa-lib-1.0.12rc2/include/sound/ainstr_fm.h
--- old/alsa-lib-1.0.12rc1/include/sound/ainstr_fm.h 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/include/sound/ainstr_fm.h 2006-08-04 14:43:43.000000000 +0200
@@ -24,12 +24,7 @@
#ifndef __SOUND_AINSTR_FM_H
#define __SOUND_AINSTR_FM_H
-#ifndef __KERNEL__
-#define __KERNEL__
-#include
-#include
-#undef __KERNEL__
-#endif
+#include "type_compat.h"
/*
* share types (share ID 1)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/sound/ainstr_gf1.h new/alsa-lib-1.0.12rc2/include/sound/ainstr_gf1.h
--- old/alsa-lib-1.0.12rc1/include/sound/ainstr_gf1.h 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/include/sound/ainstr_gf1.h 2006-08-04 14:43:43.000000000 +0200
@@ -24,10 +24,7 @@
#ifndef __SOUND_AINSTR_GF1_H
#define __SOUND_AINSTR_GF1_H
-#ifndef __KERNEL__
-#include
-#include
-#endif
+#include "type_compat.h"
/*
* share types (share ID 1)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/sound/ainstr_iw.h new/alsa-lib-1.0.12rc2/include/sound/ainstr_iw.h
--- old/alsa-lib-1.0.12rc1/include/sound/ainstr_iw.h 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/include/sound/ainstr_iw.h 2006-08-04 14:43:43.000000000 +0200
@@ -24,12 +24,7 @@
#ifndef __SOUND_AINSTR_IW_H
#define __SOUND_AINSTR_IW_H
-#ifndef __KERNEL__
-#define __KERNEL__
-#include
-#include
-#undef __KERNEL__
-#endif
+#include "type_compat.h"
/*
* share types (share ID 1)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/sound/ainstr_simple.h new/alsa-lib-1.0.12rc2/include/sound/ainstr_simple.h
--- old/alsa-lib-1.0.12rc1/include/sound/ainstr_simple.h 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/include/sound/ainstr_simple.h 2006-08-04 14:43:43.000000000 +0200
@@ -24,12 +24,7 @@
#ifndef __SOUND_AINSTR_SIMPLE_H
#define __SOUND_AINSTR_SIMPLE_H
-#ifndef __KERNEL__
-#define __KERNEL__
-#include
-#include
-#undef __KERNEL__
-#endif
+#include "type_compat.h"
/*
* share types (share ID 1)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/sound/asound.h new/alsa-lib-1.0.12rc2/include/sound/asound.h
--- old/alsa-lib-1.0.12rc1/include/sound/asound.h 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/include/sound/asound.h 2006-08-04 14:43:43.000000000 +0200
@@ -756,10 +756,15 @@
#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1)
#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)
#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */
-#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<2) /* when was control changed */
+#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<3) /* when was control changed */
+#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is supported */
+#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is supported */
+#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)
+#define SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND (1<<6) /* TLV command is possible */
#define SNDRV_CTL_ELEM_ACCESS_INACTIVE (1<<8) /* control does actually nothing, but may be updated */
#define SNDRV_CTL_ELEM_ACCESS_LOCK (1<<9) /* write lock */
#define SNDRV_CTL_ELEM_ACCESS_OWNER (1<<10) /* write lock owner */
+#define SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK (1<<28) /* flag only for kernel */
#define SNDRV_CTL_ELEM_ACCESS_USER (1<<29) /* user space element */
#define SNDRV_CTL_ELEM_ACCESS_DINDIRECT (1<<30) /* indirect access for matrix dimensions in the info structure */
#define SNDRV_CTL_ELEM_ACCESS_INDIRECT (1<<31) /* indirect access for element value in the value structure */
@@ -847,6 +852,12 @@
unsigned char reserved[128-sizeof(struct timespec)];
};
+struct sndrv_ctl_tlv {
+ unsigned int numid; /* control element numeric identification */
+ unsigned int length; /* in bytes aligned to 4 */
+ unsigned int tlv[0]; /* first TLV */
+};
+
enum {
SNDRV_CTL_IOCTL_PVERSION = _IOR('U', 0x00, int),
SNDRV_CTL_IOCTL_CARD_INFO = _IOR('U', 0x01, struct sndrv_ctl_card_info),
@@ -860,6 +871,9 @@
SNDRV_CTL_IOCTL_ELEM_ADD = _IOWR('U', 0x17, struct sndrv_ctl_elem_info),
SNDRV_CTL_IOCTL_ELEM_REPLACE = _IOWR('U', 0x18, struct sndrv_ctl_elem_info),
SNDRV_CTL_IOCTL_ELEM_REMOVE = _IOWR('U', 0x19, struct sndrv_ctl_elem_id),
+ SNDRV_CTL_IOCTL_TLV_READ = _IOWR('U', 0x1a, struct sndrv_ctl_tlv),
+ SNDRV_CTL_IOCTL_TLV_WRITE = _IOWR('U', 0x1b, struct sndrv_ctl_tlv),
+ SNDRV_CTL_IOCTL_TLV_COMMAND = _IOWR('U', 0x1c, struct sndrv_ctl_tlv),
SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE = _IOWR('U', 0x20, int),
SNDRV_CTL_IOCTL_HWDEP_INFO = _IOR('U', 0x21, struct sndrv_hwdep_info),
SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE = _IOR('U', 0x30, int),
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/sound/type_compat.h new/alsa-lib-1.0.12rc2/include/sound/type_compat.h
--- old/alsa-lib-1.0.12rc1/include/sound/type_compat.h 1970-01-01 01:00:00.000000000 +0100
+++ new/alsa-lib-1.0.12rc2/include/sound/type_compat.h 2006-08-04 14:43:43.000000000 +0200
@@ -0,0 +1,40 @@
+#ifndef __TYPE_COMPAT_H
+#define __TYPE_COMPAT_H
+
+#ifndef DOC_HIDDEN
+#include
+typedef uint8_t __u8;
+typedef uint16_t __u16;
+typedef uint32_t __u32;
+typedef int8_t __s8;
+typedef int16_t __s16;
+typedef int32_t __s32;
+
+#include
+#include
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define __cpu_to_le32(x) (x)
+#define __cpu_to_be32(x) bswap_32(x)
+#define __cpu_to_le16(x) (x)
+#define __cpu_to_be16(x) bswap_16(x)
+#else
+#define __cpu_to_le32(x) bswap_32(x)
+#define __cpu_to_be32(x) (x)
+#define __cpu_to_le16(x) bswap_16(x)
+#define __cpu_to_be16(x) (x)
+#endif
+
+#define __le32_to_cpu __cpu_to_le32
+#define __be32_to_cpu __cpu_to_be32
+#define __le16_to_cpu __cpu_to_le16
+#define __be16_to_cpu __cpu_to_be16
+
+#define __le64 __u64
+#define __le32 __u32
+#define __le16 __u16
+#define __be64 __u64
+#define __be32 __u32
+#define __be16 __u16
+#endif /* DOC_HIDDEN */
+
+#endif /* __TYPE_COMPAT_H */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/include/version.h new/alsa-lib-1.0.12rc2/include/version.h
--- old/alsa-lib-1.0.12rc1/include/version.h 2006-06-21 17:34:32.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/include/version.h 2006-08-04 14:46:22.000000000 +0200
@@ -5,11 +5,11 @@
#define SND_LIB_MAJOR 1 /**< major number of library version */
#define SND_LIB_MINOR 0 /**< minor number of library version */
#define SND_LIB_SUBMINOR 12 /**< subminor number of library version */
-#define SND_LIB_EXTRAVER 100001 /**< extra version number, used mainly for betas */
+#define SND_LIB_EXTRAVER 100002 /**< extra version number, used mainly for betas */
/** library version */
#define SND_LIB_VERSION ((SND_LIB_MAJOR<<16)|\
(SND_LIB_MINOR<<8)|\
SND_LIB_SUBMINOR)
/** library version (string) */
-#define SND_LIB_VERSION_STR "1.0.12rc1"
+#define SND_LIB_VERSION_STR "1.0.12rc2"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/libtool new/alsa-lib-1.0.12rc2/libtool
--- old/alsa-lib-1.0.12rc1/libtool 2006-06-21 17:33:48.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/libtool 2006-08-04 14:45:37.000000000 +0200
@@ -1,7 +1,7 @@
#! /bin/sh
# libtoolT - Provide generalized library-building support services.
-# Generated automatically by (GNU alsa-lib 1.0.12rc1)
+# Generated automatically by (GNU alsa-lib 1.0.12rc2)
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/Versions new/alsa-lib-1.0.12rc2/src/Versions
--- old/alsa-lib-1.0.12rc1/src/Versions 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/Versions 2006-08-04 14:43:43.000000000 +0200
@@ -274,3 +274,17 @@
snd_pcm_set_params;
snd_pcm_get_params;
} ALSA_1.0.10;
+
+ALSA_1.0.12 {
+ global:
+
+ snd_ctl_elem_tlv_read;
+ snd_ctl_elem_tlv_write;
+ snd_ctl_elem_tlv_command;
+ snd_ctl_elem_info_is_tlv_readable;
+ snd_ctl_elem_info_is_tlv_writable;
+ snd_ctl_elem_info_is_tlv_commandable;
+ snd_hctl_elem_tlv_read;
+ snd_hctl_elem_tlv_write;
+ snd_hctl_elem_tlv_command;
+} ALSA_1.0.11;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/conf/cards/Aureon51.conf new/alsa-lib-1.0.12rc2/src/conf/cards/Aureon51.conf
--- old/alsa-lib-1.0.12rc1/src/conf/cards/Aureon51.conf 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/conf/cards/Aureon51.conf 2006-08-04 14:43:44.000000000 +0200
@@ -150,8 +150,23 @@
}
}
capture.pcm {
- type hw
- card $CARD
- device 1
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "IEC958 Capture Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/conf/cards/Aureon71.conf new/alsa-lib-1.0.12rc2/src/conf/cards/Aureon71.conf
--- old/alsa-lib-1.0.12rc1/src/conf/cards/Aureon71.conf 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/conf/cards/Aureon71.conf 2006-08-04 14:43:44.000000000 +0200
@@ -161,8 +161,23 @@
}
}
capture.pcm {
- type hw
- card $CARD
- device 1
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "IEC958 Capture Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/conf/cards/ICE1724.conf new/alsa-lib-1.0.12rc2/src/conf/cards/ICE1724.conf
--- old/alsa-lib-1.0.12rc1/src/conf/cards/ICE1724.conf 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/conf/cards/ICE1724.conf 2006-08-04 14:43:44.000000000 +0200
@@ -195,8 +195,23 @@
}
}
capture.pcm {
- type hw
- card $CARD
- device 1
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 1
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ interface MIXER
+ name "IEC958 Capture Switch"
+ lock true
+ preserve true
+ value true
+ }
+ ]
+ }
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/conf/cards/aliases.conf new/alsa-lib-1.0.12rc2/src/conf/cards/aliases.conf
--- old/alsa-lib-1.0.12rc1/src/conf/cards/aliases.conf 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/conf/cards/aliases.conf 2006-08-04 14:43:44.000000000 +0200
@@ -23,7 +23,7 @@
au8830 cards.AU8830
Prodigy71 cards.Aureon71
Prodigy71LT cards.Aureon71
-Aureon71Universe cards.Aureon71
+Aureon71Univ cards.Aureon71
VIA82XX-MODEM cards.ICH-MODEM
'MPU-401 UART' cards.MPU-401
'VX222/Old' cards.VX222
@@ -39,6 +39,7 @@
'PMac Screamer' cards.PMac
'PMac AWACS' cards.PMac
'PMac Toonie' cards.PMacToonie
+AppleOnbdAudio cards.PMacToonie
'USB US-X2Y' cards.US-X2Y
'Serial MIDI' cards.SerialMIDI
'Prodif Plus' cards.ProdifPlus
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/control/control.c new/alsa-lib-1.0.12rc2/src/control/control.c
--- old/alsa-lib-1.0.12rc1/src/control/control.c 2006-06-21 17:31:58.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/control/control.c 2006-08-04 14:43:44.000000000 +0200
@@ -404,7 +404,9 @@
* \brief Set CTL element value
* \param ctl CTL handle
* \param control CTL element id/value pointer
- * \return 0 on success otherwise a negative error code
+ * \retval 0 on success
+ * \retval >0 on success when value was changed
+ * \retval <0 a negative error code
*/
int snd_ctl_elem_write(snd_ctl_t *ctl, snd_ctl_elem_value_t *control)
{
@@ -412,6 +414,83 @@
return ctl->ops->element_write(ctl, control);
}
+static int snd_ctl_tlv_do(snd_ctl_t *ctl, int op_flag,
+ const snd_ctl_elem_id_t *id,
+ unsigned int *tlv, unsigned int tlv_size)
+{
+ snd_ctl_elem_info_t *info = NULL;
+ int err;
+
+ if (id->numid == 0) {
+ info = calloc(1, sizeof(*info));
+ if (info == NULL)
+ return -ENOMEM;
+ info->id = *id;
+ id = &info->id;
+ err = snd_ctl_elem_info(ctl, info);
+ if (err < 0)
+ goto __err;
+ if (id->numid == 0) {
+ err = -ENOENT;
+ goto __err;
+ }
+ }
+ err = ctl->ops->element_tlv(ctl, op_flag, id->numid, tlv, tlv_size);
+ __err:
+ if (info)
+ free(info);
+ return err;
+}
+
+
+
+/**
+ * \brief Get CTL element TLV value
+ * \param ctl CTL handle
+ * \param id CTL element id pointer
+ * \param tlv TLV array pointer to store
+ * \param tlv_size TLV array size in bytes
+ * \return 0 on success otherwise a negative error code
+ */
+int snd_ctl_elem_tlv_read(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id,
+ unsigned int *tlv, unsigned int tlv_size)
+{
+ assert(ctl && id && (id->name[0] || id->numid) && tlv);
+ return snd_ctl_tlv_do(ctl, 0, id, tlv, tlv_size);
+}
+
+/**
+ * \brief Set CTL element TLV value
+ * \param ctl CTL handle
+ * \param id CTL element id pointer
+ * \param tlv TLV array pointer to store
+ * \retval 0 on success
+ * \retval >0 on success when value was changed
+ * \retval <0 a negative error code
+ */
+int snd_ctl_elem_tlv_write(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id,
+ const unsigned int *tlv)
+{
+ assert(ctl && id && (id->name[0] || id->numid) && tlv);
+ return snd_ctl_tlv_do(ctl, 1, id, (unsigned int *)tlv, tlv[1] + 2 * sizeof(unsigned int));
+}
+
+/**
+ * \brief Process CTL element TLV command
+ * \param ctl CTL handle
+ * \param id CTL element id pointer
+ * \param tlv TLV array pointer to process
+ * \retval 0 on success
+ * \retval >0 on success when value was changed
+ * \retval <0 a negative error code
+ */
+int snd_ctl_elem_tlv_command(snd_ctl_t *ctl, const snd_ctl_elem_id_t *id,
+ const unsigned int *tlv)
+{
+ assert(ctl && id && (id->name[0] || id->numid) && tlv);
+ return snd_ctl_tlv_do(ctl, -1, id, (unsigned int *)tlv, tlv[1] + 2 * sizeof(unsigned int));
+}
+
/**
* \brief Lock CTL element
* \param ctl CTL handle
@@ -1742,6 +1821,39 @@
}
/**
+ * \brief Get info about TLV readability from a CTL element id/info
+ * \param obj CTL element id/info
+ * \return 0 if element's TLV is not readable, 1 if element's TLV is readable
+ */
+int snd_ctl_elem_info_is_tlv_readable(const snd_ctl_elem_info_t *obj)
+{
+ assert(obj);
+ return !!(obj->access & SNDRV_CTL_ELEM_ACCESS_TLV_READ);
+}
+
+/**
+ * \brief Get info about TLV writeability from a CTL element id/info
+ * \param obj CTL element id/info
+ * \return 0 if element's TLV is not writable, 1 if element's TLV is writable
+ */
+int snd_ctl_elem_info_is_tlv_writable(const snd_ctl_elem_info_t *obj)
+{
+ assert(obj);
+ return !!(obj->access & SNDRV_CTL_ELEM_ACCESS_TLV_WRITE);
+}
+
+/**
+ * \brief Get info about TLV command possibility from a CTL element id/info
+ * \param obj CTL element id/info
+ * \return 0 if element's TLV command is not possible, 1 if element's TLV command is supported
+ */
+int snd_ctl_elem_info_is_tlv_commandable(const snd_ctl_elem_info_t *obj)
+{
+ assert(obj);
+ return !!(obj->access & SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND);
+}
+
+/**
* \brief (DEPRECATED) Get info about values passing policy from a CTL element value
* \param obj CTL element id/info
* \return 0 if element value need to be passed by contents, 1 if need to be passed with a pointer
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/control/control_hw.c new/alsa-lib-1.0.12rc2/src/control/control_hw.c
--- old/alsa-lib-1.0.12rc1/src/control/control_hw.c 2006-06-21 17:31:59.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/control/control_hw.c 2006-08-04 14:43:44.000000000 +0200
@@ -200,6 +200,39 @@
return 0;
}
+static int snd_ctl_hw_elem_tlv(snd_ctl_t *handle, int op_flag,
+ unsigned int numid,
+ unsigned int *tlv, unsigned int tlv_size)
+{
+ int inum;
+ snd_ctl_hw_t *hw = handle->private_data;
+ struct sndrv_ctl_tlv *xtlv;
+
+ switch (op_flag) {
+ case -1: inum = SNDRV_CTL_IOCTL_TLV_COMMAND; break;
+ case 0: inum = SNDRV_CTL_IOCTL_TLV_READ; break;
+ case 1: inum = SNDRV_CTL_IOCTL_TLV_WRITE; break;
+ default: return -EINVAL;
+ }
+ xtlv = malloc(sizeof(struct sndrv_ctl_tlv) + tlv_size);
+ if (xtlv == NULL)
+ return -ENOMEM;
+ xtlv->numid = numid;
+ xtlv->length = tlv_size;
+ memcpy(xtlv->tlv, tlv, tlv_size);
+ if (ioctl(hw->fd, inum, xtlv) < 0) {
+ free(xtlv);
+ return -errno;
+ }
+ if (op_flag == 0) {
+ if (xtlv->tlv[1] + 2 * sizeof(unsigned int) > tlv_size)
+ return -EFAULT;
+ memcpy(tlv, xtlv->tlv, xtlv->tlv[1] + 2 * sizeof(unsigned int));
+ }
+ free(xtlv);
+ return 0;
+}
+
static int snd_ctl_hw_hwdep_next_device(snd_ctl_t *handle, int * device)
{
snd_ctl_hw_t *hw = handle->private_data;
@@ -305,6 +338,7 @@
.element_write = snd_ctl_hw_elem_write,
.element_lock = snd_ctl_hw_elem_lock,
.element_unlock = snd_ctl_hw_elem_unlock,
+ .element_tlv = snd_ctl_hw_elem_tlv,
.hwdep_next_device = snd_ctl_hw_hwdep_next_device,
.hwdep_info = snd_ctl_hw_hwdep_info,
.pcm_next_device = snd_ctl_hw_pcm_next_device,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/control/control_local.h new/alsa-lib-1.0.12rc2/src/control/control_local.h
--- old/alsa-lib-1.0.12rc1/src/control/control_local.h 2006-06-21 17:31:59.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/control/control_local.h 2006-08-04 14:43:44.000000000 +0200
@@ -36,6 +36,8 @@
int (*element_write)(snd_ctl_t *handle, snd_ctl_elem_value_t *control);
int (*element_lock)(snd_ctl_t *handle, snd_ctl_elem_id_t *lock);
int (*element_unlock)(snd_ctl_t *handle, snd_ctl_elem_id_t *unlock);
+ int (*element_tlv)(snd_ctl_t *handle, int op_flag, unsigned int numid,
+ unsigned int *tlv, unsigned int tlv_size);
int (*hwdep_next_device)(snd_ctl_t *handle, int *device);
int (*hwdep_info)(snd_ctl_t *handle, snd_hwdep_info_t * info);
int (*pcm_next_device)(snd_ctl_t *handle, int *device);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/control/hcontrol.c new/alsa-lib-1.0.12rc2/src/control/hcontrol.c
--- old/alsa-lib-1.0.12rc1/src/control/hcontrol.c 2006-06-21 17:31:59.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/control/hcontrol.c 2006-08-04 14:43:44.000000000 +0200
@@ -239,6 +239,7 @@
"Tone Control",
"3D Control",
"PCM",
+ "Front",
"Surround",
"Center",
"LFE",
@@ -821,7 +822,9 @@
* \brief Set value for an HCTL element
* \param elem HCTL element
* \param value HCTL element value
- * \return 0 otherwise a negative error code on failure
+ * \retval 0 on success
+ * \retval >1 on success when value was changed
+ * \retval <0 a negative error code on failure
*/
int snd_hctl_elem_write(snd_hctl_elem_t *elem, snd_ctl_elem_value_t * value)
{
@@ -833,6 +836,53 @@
}
/**
+ * \brief Get TLV value for an HCTL element
+ * \param elem HCTL element
+ * \param tlv TLV array for value
+ * \param tlv_size size of TLV array in bytes
+ * \return 0 otherwise a negative error code on failure
+ */
+int snd_hctl_elem_tlv_read(snd_hctl_elem_t *elem, unsigned int *tlv, unsigned int tlv_size)
+{
+ assert(elem);
+ assert(tlv);
+ assert(tlv_size >= 12);
+ return snd_ctl_elem_tlv_read(elem->hctl->ctl, &elem->id, tlv, tlv_size);
+}
+
+/**
+ * \brief Set TLV value for an HCTL element
+ * \param elem HCTL element
+ * \param tlv TLV array for value
+ * \retval 0 on success
+ * \retval >1 on success when value was changed
+ * \retval <0 a negative error code on failure
+ */
+int snd_hctl_elem_tlv_write(snd_hctl_elem_t *elem, const unsigned int *tlv)
+{
+ assert(elem);
+ assert(tlv);
+ assert(tlv[1] >= 4);
+ return snd_ctl_elem_tlv_write(elem->hctl->ctl, &elem->id, tlv);
+}
+
+/**
+ * \brief Set TLV value for an HCTL element
+ * \param elem HCTL element
+ * \param tlv TLV array for value
+ * \retval 0 on success
+ * \retval >1 on success when value was changed
+ * \retval <0 a negative error code on failure
+ */
+int snd_hctl_elem_tlv_command(snd_hctl_elem_t *elem, const unsigned int *tlv)
+{
+ assert(elem);
+ assert(tlv);
+ assert(tlv[1] >= 4);
+ return snd_ctl_elem_tlv_command(elem->hctl->ctl, &elem->id, tlv);
+}
+
+/**
* \brief Get HCTL handle for an HCTL element
* \param elem HCTL element
* \return HCTL handle
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/instr/fm.c new/alsa-lib-1.0.12rc2/src/instr/fm.c
--- old/alsa-lib-1.0.12rc1/src/instr/fm.c 2006-06-21 17:31:59.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/instr/fm.c 2006-08-04 14:43:44.000000000 +0200
@@ -30,20 +30,6 @@
#include
#include
#include "local.h"
-/* linux 2.6.9 workaround */
-#include
-#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,9)
-#include
-#ifndef DOC_HIDDEN
-#define __le64 __u64
-#define __le32 __u32
-#define __le16 __u16
-#define __be64 __u64
-#define __be32 __u32
-#define __be16 __u16
-#endif
-#endif /* linux 2.6.9 workaround */
-#include
#include
/**
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/instr/iwffff.c new/alsa-lib-1.0.12rc2/src/instr/iwffff.c
--- old/alsa-lib-1.0.12rc1/src/instr/iwffff.c 2006-06-21 17:31:59.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/instr/iwffff.c 2006-08-04 14:43:44.000000000 +0200
@@ -31,19 +31,6 @@
#include
#include
#include "local.h"
-/* linux 2.6.9 workaround */
-#include
-#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,9)
-#include
-#ifndef DOC_HIDDEN
-#define __le64 __u64
-#define __le32 __u32
-#define __le16 __u16
-#define __be64 __u64
-#define __be32 __u32
-#define __be16 __u16
-#endif
-#endif /* linux 2.6.9 workaround */
#include
/*
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/instr/simple.c new/alsa-lib-1.0.12rc2/src/instr/simple.c
--- old/alsa-lib-1.0.12rc1/src/instr/simple.c 2006-06-21 17:31:59.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/instr/simple.c 2006-08-04 14:43:44.000000000 +0200
@@ -31,20 +31,6 @@
#include
#include
#include "local.h"
-/* linux 2.6.9 workaround */
-#include
-#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,9)
-#include
-#ifndef DOC_HIDDEN
-#define __le64 __u64
-#define __le32 __u32
-#define __le16 __u16
-#define __be64 __u64
-#define __be32 __u32
-#define __be16 __u16
-#endif
-#endif /* linux 2.6.9 workaround */
-#include
#include
/**
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/mixer/simple_none.c new/alsa-lib-1.0.12rc2/src/mixer/simple_none.c
--- old/alsa-lib-1.0.12rc1/src/mixer/simple_none.c 2006-06-21 17:31:59.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/mixer/simple_none.c 2006-08-04 14:43:44.000000000 +0200
@@ -73,12 +73,15 @@
sm_selem_t selem;
selem_ctl_t ctls[CTL_LAST + 1];
unsigned int capture_item;
- struct {
+ struct selem_str {
unsigned int range: 1; /* Forced range */
+ unsigned int db_initialized: 1;
+ unsigned int db_init_error: 1;
long min, max;
unsigned int channels;
long vol[32];
unsigned int sw;
+ unsigned int *db_info;
} str[2];
} selem_none_t;
@@ -601,6 +604,9 @@
assert(snd_mixer_elem_get_type(elem) == SND_MIXER_ELEM_SIMPLE);
if (simple->selem.id)
snd_mixer_selem_id_free(simple->selem.id);
+ /* free db range information */
+ free(simple->str[0].db_info);
+ free(simple->str[1].db_info);
free(simple);
}
@@ -971,12 +977,142 @@
return 0;
}
-static int get_dB_ops(snd_mixer_elem_t *elem ATTRIBUTE_UNUSED,
- int dir ATTRIBUTE_UNUSED,
- snd_mixer_selem_channel_id_t channel ATTRIBUTE_UNUSED,
- long *value ATTRIBUTE_UNUSED)
+/* convert to index of integer array */
+#define int_index(size) (((size) + sizeof(int) - 1) / sizeof(int))
+
+/* parse TLV stream and retrieve dB information
+ * return 0 if successly found and stored to rec,
+ * return 1 if no information is found,
+ * or return a negative error code
+ */
+static int parse_db_range(struct selem_str *rec, unsigned int *tlv,
+ unsigned int tlv_size)
{
- return -ENXIO;
+ unsigned int type;
+ unsigned int size;
+ int err;
+
+ type = tlv[0];
+ size = tlv[1];
+ tlv_size -= 2 * sizeof(int);
+ if (size > tlv_size) {
+ SNDERR("TLV size error");
+ return -EINVAL;
+ }
+ switch (type) {
+ case SND_CTL_TLVT_CONTAINER:
+ size = int_index(size) * sizeof(int);
+ tlv += 2;
+ while (size > 0) {
+ unsigned int len;
+ err = parse_db_range(rec, tlv, size);
+ if (err <= 0)
+ return err; /* error or found dB */
+ len = int_index(tlv[1]) + 2;
+ size -= len * sizeof(int);
+ tlv += len;
+ }
+ break;
+ case SND_CTL_TLVT_DB_SCALE:
+ rec->db_info = malloc(size + sizeof(int) * 2);
+ if (! rec->db_info)
+ return -ENOMEM;
+ memcpy(rec->db_info, tlv, size + sizeof(int) * 2);
+ return 0;
+ default:
+ break;
+ }
+ return 1; /* not found */
+}
+
+/* convert the given raw volume value to a dB gain
+ */
+static int convert_db_range(struct selem_str *rec, long volume, long *db_gain)
+{
+ int min, step, mute;
+
+ switch (rec->db_info[0]) {
+ case SND_CTL_TLVT_DB_SCALE:
+ min = rec->db_info[2];
+ step = (rec->db_info[3] & 0xffff);
+ mute = (rec->db_info[3] >> 16) & 1;
+ if (mute && volume == rec->min)
+ *db_gain = -9999999;
+ else
+ *db_gain = (volume - rec->min) * step + min;
+ return 0;
+ }
+ return -EINVAL;
+}
+
+/* initialize dB range information, reading TLV via hcontrol
+ */
+static int init_db_range(snd_hctl_elem_t *ctl, struct selem_str *rec)
+{
+ snd_ctl_elem_info_t *info;
+ unsigned int *tlv = NULL;
+ const unsigned int tlv_size = 4096;
+
+ snd_ctl_elem_info_alloca(&info);
+ if (snd_hctl_elem_info(ctl, info) < 0)
+ goto error;
+ if (! snd_ctl_elem_info_is_tlv_readable(info))
+ goto error;
+ tlv = malloc(tlv_size);
+ if (! tlv)
+ return -ENOMEM;
+ if (snd_hctl_elem_tlv_read(ctl, tlv, tlv_size) < 0)
+ goto error;
+ if (parse_db_range(rec, tlv, tlv_size) < 0)
+ goto error;
+ free(tlv);
+ rec->db_initialized = 1;
+ return 0;
+
+ error:
+ free(tlv);
+ rec->db_init_error = 1;
+ return -EINVAL;
+}
+
+static int get_dB_gain(snd_hctl_elem_t *ctl, struct selem_str *rec,
+ long volume, long *db_gain)
+{
+ if (rec->db_init_error)
+ return -EINVAL;
+ if (! rec->db_initialized) {
+ if (init_db_range(ctl, rec) < 0)
+ return -EINVAL;
+ }
+ return convert_db_range(rec, volume, db_gain);
+}
+
+static int get_dB_ops(snd_mixer_elem_t *elem,
+ int dir,
+ snd_mixer_selem_channel_id_t channel,
+ long *value)
+{
+ selem_none_t *s = snd_mixer_elem_get_private(elem);
+ selem_ctl_t *c;
+ int err = -EINVAL;
+ long volume, db_gain;
+
+ if (dir == SM_PLAY)
+ c = &s->ctls[CTL_PLAYBACK_VOLUME];
+ else if (dir == SM_CAPT)
+ c = &s->ctls[CTL_CAPTURE_VOLUME];
+ else
+ goto _err;
+ if (c->type != 2)
+ goto _err;
+ if ((err = get_volume_ops(elem, dir, channel, &volume)) < 0)
+ goto _err;
+ if ((err = get_dB_gain(c->elem, &s->str[dir], volume, &db_gain)) < 0)
+ goto _err;
+ err = 0;
+ *value = db_gain;
+ _err:
+ return err;
}
static int get_switch_ops(snd_mixer_elem_t *elem, int dir,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/pcm/pcm.c new/alsa-lib-1.0.12rc2/src/pcm/pcm.c
--- old/alsa-lib-1.0.12rc1/src/pcm/pcm.c 2006-06-21 17:31:59.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/pcm/pcm.c 2006-08-04 14:43:45.000000000 +0200
@@ -600,39 +600,34 @@
\section pcm_examples Examples
-The full featured examples with cross-links:
+The full featured examples with cross-links can be found in Examples section
+(see top of page):
+\anchor example_test_pcm
\par Sine-wave generator
-\ref example_test_pcm "example code"
\par
-This example shows various transfer methods for the playback direction.
+alsa-lib/test/pcm.c example shows various transfer methods for the playback direction.
\par Minimalistic PCM playback code
-\ref example_test_pcm_min "example code"
\par
-This example shows the minimal code to produce a sound.
+alsa-lib/test/pcm_min.c example shows the minimal code to produce a sound.
\par Latency measuring tool
-\ref example_test_latency "example code"
\par
-This example shows the measuring of minimal latency between capture and
+alsa-lib/test/latency.c example shows the measuring of minimal latency between capture and
playback devices.
*/
/**
- * \example ../test/pcm.c
- * \anchor example_test_pcm
- */
+\example ../../test/pcm.c
+*/
/**
- * \example ../test/pcm_min.c
- * \anchor example_test_pcm_min
- */
+\example ../../test/pcm_min.c
+*/
/**
- * \example ../test/latency.c
- * \anchor example_test_latency
- */
-
+\example ../../test/latency.c
+*/
#include
#include
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/pcm/pcm_direct.c new/alsa-lib-1.0.12rc2/src/pcm/pcm_direct.c
--- old/alsa-lib-1.0.12rc1/src/pcm/pcm_direct.c 2006-06-21 17:31:59.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/pcm/pcm_direct.c 2006-08-04 14:43:45.000000000 +0200
@@ -805,6 +805,8 @@
/* copy the slave setting */
static void save_slave_setting(snd_pcm_direct_t *dmix, snd_pcm_t *spcm)
{
+ spcm->info &= ~SND_PCM_INFO_PAUSE;
+
COPY_SLAVE(access);
COPY_SLAVE(format);
COPY_SLAVE(subformat);
@@ -1392,7 +1394,8 @@
}
bindings[cchannel] = schannel;
}
- if (dmix->type == SND_PCM_TYPE_DSNOOP)
+ if (dmix->type == SND_PCM_TYPE_DSNOOP ||
+ ! dmix->bindings)
goto __skip_same_dst;
for (chn = 0; chn < count; chn++) {
for (chn1 = 0; chn1 < count; chn1++) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/src/pcm/pcm_rate.c new/alsa-lib-1.0.12rc2/src/pcm/pcm_rate.c
--- old/alsa-lib-1.0.12rc1/src/pcm/pcm_rate.c 2006-06-21 17:32:01.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/src/pcm/pcm_rate.c 2006-08-04 14:43:46.000000000 +0200
@@ -419,9 +419,11 @@
snd_pcm_uframes_t offset, unsigned int frames,
unsigned int channels)
{
+#ifndef DOC_HIDDEN
#define GET16_LABELS
#include "plugin_ops.h"
#undef GET16_LABELS
+#endif /* DOC_HIDDEN */
void *get = get16_labels[rate->get_idx];
const char *src;
int16_t sample;
@@ -438,9 +440,11 @@
for (c = 0; c < channels; c++) {
src = srcs[c];
goto *get;
+#ifndef DOC_HIDDEN
#define GET16_END after_get
#include "plugin_ops.h"
#undef GET16_END
+#endif /* DOC_HIDDEN */
after_get:
*buf++ = sample;
srcs[c] += src_step[c];
@@ -453,9 +457,11 @@
snd_pcm_uframes_t offset, unsigned int frames,
unsigned int channels)
{
+#ifndef DOC_HIDDEN
#define PUT16_LABELS
#include "plugin_ops.h"
#undef PUT16_LABELS
+#endif /* DOC_HIDDEN */
void *put = put16_labels[rate->put_idx];
char *dst;
int16_t sample;
@@ -473,9 +479,11 @@
dst = dsts[c];
sample = *buf++;
goto *put;
+#ifndef DOC_HIDDEN
#define PUT16_END after_put
#include "plugin_ops.h"
#undef PUT16_END
+#endif /* DOC_HIDDEN */
after_put:
dsts[c] += dst_step[c];
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-lib-1.0.12rc1/version new/alsa-lib-1.0.12rc2/version
--- old/alsa-lib-1.0.12rc1/version 2006-06-21 17:33:49.000000000 +0200
+++ new/alsa-lib-1.0.12rc2/version 2006-08-04 14:45:38.000000000 +0200
@@ -1 +1 @@
-1.0.12rc1
+1.0.12rc2
++++++ alsa-utils-1.0.12rc1.tar.bz2 -> alsa-utils-1.0.12rc2.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-utils-1.0.12rc1/amidi/amidi.1 new/alsa-utils-1.0.12rc2/amidi/amidi.1
--- old/alsa-utils-1.0.12rc1/amidi/amidi.1 2006-06-21 17:42:56.000000000 +0200
+++ new/alsa-utils-1.0.12rc2/amidi/amidi.1 2006-08-04 14:55:11.000000000 +0200
@@ -1,4 +1,4 @@
-.TH AMIDI 1 "15 Feb 2005"
+.TH AMIDI 1 "26 Jun 2006"
.SH NAME
amidi \- read from and write to ALSA RawMIDI ports
@@ -146,11 +146,6 @@
.I ~/.asoundrc
user specific rawmidi definitions
-.SH BUGS
-The
-.I \-\-list\-devices
-option pretends that output and input ports are the same.
-
.SH SEE ALSO
aplaymidi(1)
.br
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-utils-1.0.12rc1/amidi/amidi.c new/alsa-utils-1.0.12rc2/amidi/amidi.c
--- old/alsa-utils-1.0.12rc1/amidi/amidi.c 2006-06-21 17:42:56.000000000 +0200
+++ new/alsa-utils-1.0.12rc2/amidi/amidi.c 2006-08-04 14:55:11.000000000 +0200
@@ -95,56 +95,120 @@
return p;
}
+static int is_input(snd_ctl_t *ctl, int card, int device, int sub)
+{
+ snd_rawmidi_info_t *info;
+ int err;
+
+ snd_rawmidi_info_alloca(&info);
+ snd_rawmidi_info_set_device(info, device);
+ snd_rawmidi_info_set_subdevice(info, sub);
+ snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_INPUT);
+
+ if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0 && err != -ENXIO)
+ return err;
+ else if (err == 0)
+ return 1;
+
+ return 0;
+}
+
+static int is_output(snd_ctl_t *ctl, int card, int device, int sub)
+{
+ snd_rawmidi_info_t *info;
+ int err;
+
+ snd_rawmidi_info_alloca(&info);
+ snd_rawmidi_info_set_device(info, device);
+ snd_rawmidi_info_set_subdevice(info, sub);
+ snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_OUTPUT);
+
+ if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0 && err != -ENXIO)
+ return err;
+ else if (err == 0)
+ return 1;
+
+ return 0;
+}
+
static void list_device(snd_ctl_t *ctl, int card, int device)
{
snd_rawmidi_info_t *info;
const char *name;
const char *sub_name;
- int subs;
+ int subs, subs_in, subs_out;
+ int sub, in, out;
int err;
snd_rawmidi_info_alloca(&info);
snd_rawmidi_info_set_device(info, device);
- snd_rawmidi_info_set_subdevice(info, 0);
+
+ snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_INPUT);
+ snd_ctl_rawmidi_info(ctl, info);
+ subs_in = snd_rawmidi_info_get_subdevices_count(info);
snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_OUTPUT);
- if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0 &&
- err != -ENOENT) {
+ snd_ctl_rawmidi_info(ctl, info);
+ subs_out = snd_rawmidi_info_get_subdevices_count(info);
+ subs = subs_in > subs_out ? subs_in : subs_out;
+
+ sub = 0;
+ in = out = 0;
+ if ((err = is_output(ctl, card, device, sub)) < 0) {
error("cannot get rawmidi information %d:%d: %s",
card, device, snd_strerror(err));
return;
- }
- if (err == -ENOENT) {
- snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_INPUT);
- if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0 &&
- err != -ENOENT) {
+ } else if (err)
+ out = 1;
+
+ if (err == 0) {
+ if ((err = is_input(ctl, card, device, sub)) < 0) {
error("cannot get rawmidi information %d:%d: %s",
card, device, snd_strerror(err));
return;
}
- }
- if (err == -ENOENT)
+ } else if (err)
+ in = 1;
+
+ if (err == 0)
return;
+
name = snd_rawmidi_info_get_name(info);
sub_name = snd_rawmidi_info_get_subdevice_name(info);
- subs = snd_rawmidi_info_get_subdevices_count(info);
if (sub_name[0] == '\0') {
- if (subs == 1)
- printf("hw:%d,%d %s\n", card, device, name);
- else
- printf("hw:%d,%d %s (%d subdevices)\n",
+ if (subs == 1) {
+ printf("%c%c hw:%d,%d %s\n",
+ in ? 'I' : ' ', out ? 'O' : ' ',
+ card, device, name);
+ } else
+ printf("%c%c hw:%d,%d %s (%d subdevices)\n",
+ in ? 'I' : ' ', out ? 'O' : ' ',
card, device, name, subs);
} else {
- int sub = 0;
+ sub = 0;
for (;;) {
- printf("hw:%d,%d,%d %s\n",
+ printf("%c%c hw:%d,%d,%d %s\n",
+ in ? 'I' : ' ', out ? 'O' : ' ',
card, device, sub, sub_name);
if (++sub >= subs)
break;
+
+ in = is_input(ctl, card, device, sub);
+ out = is_output(ctl, card, device, sub);
snd_rawmidi_info_set_subdevice(info, sub);
- if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0) {
- error("cannot get rawmidi information %d:%d:%d: %s",
- card, device, sub, snd_strerror(err));
- break;
+ if (out) {
+ snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_OUTPUT);
+ if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0) {
+ error("cannot get rawmidi information %d:%d:%d: %s",
+ card, device, sub, snd_strerror(err));
+ break;
+ }
+ } else {
+ snd_rawmidi_info_set_stream(info, SND_RAWMIDI_STREAM_INPUT);
+ if ((err = snd_ctl_rawmidi_info(ctl, info)) < 0) {
+ error("cannot get rawmidi information %d:%d:%d: %s",
+ card, device, sub, snd_strerror(err));
+ break;
+ }
}
sub_name = snd_rawmidi_info_get_subdevice_name(info);
}
@@ -189,7 +253,7 @@
error("no sound card found");
return;
}
- puts("Device Name");
+ puts("Dir Device Name");
do {
list_card_devices(card);
if ((err = snd_card_next(&card)) < 0) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-utils-1.0.12rc1/amixer/amixer.c new/alsa-utils-1.0.12rc2/amixer/amixer.c
--- old/alsa-utils-1.0.12rc1/amixer/amixer.c 2006-06-21 17:42:56.000000000 +0200
+++ new/alsa-utils-1.0.12rc2/amixer/amixer.c 2006-08-04 14:55:11.000000000 +0200
@@ -154,6 +154,9 @@
*res++ = snd_ctl_elem_info_is_inactive(info) ? 'i' : '-';
*res++ = snd_ctl_elem_info_is_volatile(info) ? 'v' : '-';
*res++ = snd_ctl_elem_info_is_locked(info) ? 'l' : '-';
+ *res++ = snd_ctl_elem_info_is_tlv_readable(info) ? 'R' : '-';
+ *res++ = snd_ctl_elem_info_is_tlv_writable(info) ? 'W' : '-';
+ *res++ = snd_ctl_elem_info_is_tlv_commandable(info) ? 'C' : '-';
*res++ = '\0';
return result;
}
@@ -378,12 +381,80 @@
printf(",subdevice=%i", subdevice);
}
+static void print_spaces(unsigned int spaces)
+{
+ while (spaces-- > 0)
+ putc(' ', stdout);
+}
+
+static void print_dB(long dB)
+{
+ printf("%li.%02lidB", dB / 100, (dB < 0 ? -dB : dB) % 100);
+}
+
+static void decode_tlv(unsigned int spaces, unsigned int *tlv, unsigned int tlv_size)
+{
+ unsigned int type = tlv[0];
+ unsigned int size;
+ unsigned int idx = 0;
+
+ if (tlv_size < 2 * sizeof(unsigned int)) {
+ printf("TLV size error!\n");
+ return;
+ }
+ print_spaces(spaces);
+ printf("| ");
+ type = tlv[idx++];
+ size = tlv[idx++];
+ tlv_size -= 2 * sizeof(unsigned int);
+ if (size > tlv_size) {
+ printf("TLV size error (%i, %i, %i)!\n", type, size, tlv_size);
+ return;
+ }
+ switch (type) {
+ case SND_CTL_TLVT_CONTAINER:
+ size += sizeof(unsigned int) -1;
+ size /= sizeof(unsigned int);
+ while (idx < size) {
+ if (tlv[idx+1] > (size - idx) * sizeof(unsigned int)) {
+ printf("TLV size error in compound!\n");
+ return;
+ }
+ decode_tlv(spaces + 2, tlv + idx, tlv[idx+1]);
+ idx += 2 + (tlv[1] + sizeof(unsigned int) - 1) / sizeof(unsigned int);
+ }
+ break;
+ case SND_CTL_TLVT_DB_SCALE:
+ printf("dBscale-");
+ if (size != 2 * sizeof(unsigned int)) {
+ while (size > 0) {
+ printf("0x%x", tlv[idx++]);
+ size -= sizeof(unsigned int);
+ }
+ } else {
+ printf("min=");
+ print_dB(tlv[2]);
+ printf(",step=");
+ print_dB(tlv[3] & 0xffff);
+ printf(",mute=%i", (tlv[3] >> 16) & 1);
+ }
+ break;
+ default:
+ printf("unk-%i-", type);
+ while (size > 0) {
+ printf("0x%x", tlv[idx++]);
+ size -= sizeof(unsigned int);
+ }
+ break;
+ }
+ putc('\n', stdout);
+}
+
static int show_control(const char *space, snd_hctl_elem_t *elem,
int level)
{
int err;
- unsigned int item, idx;
- unsigned int count;
+ unsigned int item, idx, count, *tlv;
snd_ctl_elem_type_t type;
snd_ctl_elem_id_t *id;
snd_ctl_elem_info_t *info;
@@ -465,7 +536,18 @@
}
}
printf("\n");
+ if (!snd_ctl_elem_info_is_tlv_readable(info))
+ goto __skip_tlv;
+ tlv = malloc(4096);
+ if ((err = snd_hctl_elem_tlv_read(elem, tlv, 4096)) < 0) {
+ error("Control %s element TLV read error: %s\n", card, snd_strerror(err));
+ free(tlv);
+ return err;
+ }
+ decode_tlv(strlen(space), tlv, 4096);
+ free(tlv);
}
+ __skip_tlv:
return 0;
}
@@ -512,6 +594,7 @@
long pvol, cvol;
int psw, csw;
int pmono, cmono, mono_ok = 0;
+ long db;
snd_mixer_elem_t *elem;
elem = snd_mixer_find_selem(handle, id);
@@ -658,6 +741,11 @@
if (snd_mixer_selem_has_common_volume(elem)) {
snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, &pvol);
printf(" %s", get_percent(pvol, pmin, pmax));
+ if (!snd_mixer_selem_get_playback_dB(elem, SND_MIXER_SCHN_MONO, &db)) {
+ printf(" [");
+ print_dB(db);
+ printf("]");
+ }
}
if (snd_mixer_selem_has_common_switch(elem)) {
snd_mixer_selem_get_playback_switch(elem, SND_MIXER_SCHN_MONO, &psw);
@@ -676,6 +764,11 @@
title = 1;
snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, &pvol);
printf(" %s", get_percent(pvol, pmin, pmax));
+ if (!snd_mixer_selem_get_playback_dB(elem, SND_MIXER_SCHN_MONO, &db)) {
+ printf(" [");
+ print_dB(db);
+ printf("]");
+ }
}
}
if (!snd_mixer_selem_has_common_switch(elem)) {
@@ -699,6 +792,11 @@
title = 1;
snd_mixer_selem_get_capture_volume(elem, SND_MIXER_SCHN_MONO, &cvol);
printf(" %s", get_percent(cvol, cmin, cmax));
+ if (!snd_mixer_selem_get_capture_dB(elem, SND_MIXER_SCHN_MONO, &db)) {
+ printf(" [");
+ print_dB(db);
+ printf("]");
+ }
}
}
if (!snd_mixer_selem_has_common_switch(elem)) {
@@ -721,6 +819,11 @@
if (!pmono && !cmono && snd_mixer_selem_has_common_volume(elem)) {
snd_mixer_selem_get_playback_volume(elem, chn, &pvol);
printf(" %s", get_percent(pvol, pmin, pmax));
+ if (!snd_mixer_selem_get_playback_dB(elem, chn, &db)) {
+ printf(" [");
+ print_dB(db);
+ printf("]");
+ }
}
if (!pmono && !cmono && snd_mixer_selem_has_common_switch(elem)) {
snd_mixer_selem_get_playback_switch(elem, chn, &psw);
@@ -734,6 +837,11 @@
title = 1;
snd_mixer_selem_get_playback_volume(elem, chn, &pvol);
printf(" %s", get_percent(pvol, pmin, pmax));
+ if (!snd_mixer_selem_get_playback_dB(elem, chn, &db)) {
+ printf(" [");
+ print_dB(db);
+ printf("]");
+ }
}
}
if (!snd_mixer_selem_has_common_switch(elem)) {
@@ -753,6 +861,11 @@
title = 1;
snd_mixer_selem_get_capture_volume(elem, chn, &cvol);
printf(" %s", get_percent(cvol, cmin, cmax));
+ if (!snd_mixer_selem_get_capture_dB(elem, chn, &db)) {
+ printf(" [");
+ print_dB(db);
+ printf("]");
+ }
}
}
if (!snd_mixer_selem_has_common_switch(elem)) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-utils-1.0.12rc1/aplay/aplay.c new/alsa-utils-1.0.12rc2/aplay/aplay.c
--- old/alsa-utils-1.0.12rc1/aplay/aplay.c 2006-06-21 17:42:56.000000000 +0200
+++ new/alsa-utils-1.0.12rc2/aplay/aplay.c 2006-08-04 14:55:11.000000000 +0200
@@ -309,8 +309,10 @@
if (!quiet_mode)
fprintf(stderr, _("Aborted by signal %s...\n"), strsignal(sig));
if (stream == SND_PCM_STREAM_CAPTURE) {
- if (fmt_rec_table[file_type].end)
+ if (fmt_rec_table[file_type].end) {
fmt_rec_table[file_type].end(fd);
+ fd = -1;
+ }
stream = -1;
}
if (fd > 1) {
@@ -918,8 +920,9 @@
if ((float)rate * 1.05 < hwparams.rate || (float)rate * 0.95 > hwparams.rate) {
if (!quiet_mode) {
char plugex[64];
+ const char *pcmname = snd_pcm_name(handle);
fprintf(stderr, _("Warning: rate is not accurate (requested = %iHz, got = %iHz)\n"), rate, hwparams.rate);
- if (strchr(snd_pcm_name(handle), ':'))
+ if (! pcmname || strchr(snd_pcm_name(handle), ':'))
*plugex = 0;
else
snprintf(plugex, sizeof(plugex), "(-Dplug:%s)",
@@ -1921,10 +1924,12 @@
static void header(int rtype, char *name)
{
if (!quiet_mode) {
+ if (! name)
+ name = (stream == SND_PCM_STREAM_PLAYBACK) ? "stdout" : "stdin";
fprintf(stderr, "%s %s '%s' : ",
(stream == SND_PCM_STREAM_PLAYBACK) ? _("Playing") : _("Recording"),
gettext(fmt_rec_table[rtype].what),
- name ? name : "stdin");
+ name);
fprintf(stderr, "%s, ", snd_pcm_format_description(hwparams.format));
fprintf(stderr, _("Rate %d Hz, "), hwparams.rate);
if (hwparams.channels == 1)
@@ -2166,8 +2171,10 @@
}
/* finish sample container */
- if (fmt_rec_table[file_type].end && !tostdout)
+ if (fmt_rec_table[file_type].end && !tostdout) {
fmt_rec_table[file_type].end(fd);
+ fd = -1;
+ }
/* repeat the loop when format is raw without timelimit or
* requested counts of data are recorded
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-utils-1.0.12rc1/configure new/alsa-utils-1.0.12rc2/configure
--- old/alsa-utils-1.0.12rc1/configure 2006-06-21 17:44:32.000000000 +0200
+++ new/alsa-utils-1.0.12rc2/configure 2006-08-04 14:56:47.000000000 +0200
@@ -1589,7 +1589,7 @@
# Define the identity of the package.
PACKAGE=alsa-utils
- VERSION=1.0.12rc1
+ VERSION=1.0.12rc2
cat >>confdefs.h <<_ACEOF
@@ -5601,7 +5601,7 @@
echo "$as_me:$LINENO: result: $ALSA_LIBS" >&5
echo "${ECHO_T}$ALSA_LIBS" >&6
-min_alsa_version=1.0.9
+min_alsa_version=1.0.12
echo "$as_me:$LINENO: checking for libasound headers version >= $min_alsa_version" >&5
echo $ECHO_N "checking for libasound headers version >= $min_alsa_version... $ECHO_C" >&6
no_alsa=""
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-utils-1.0.12rc1/configure.in new/alsa-utils-1.0.12rc2/configure.in
--- old/alsa-utils-1.0.12rc1/configure.in 2006-06-21 17:43:09.000000000 +0200
+++ new/alsa-utils-1.0.12rc2/configure.in 2006-08-04 14:55:23.000000000 +0200
@@ -2,7 +2,7 @@
AC_PREREQ(2.59)
AC_INIT(alsamixer/alsamixer.c)
AC_PREFIX_DEFAULT(/usr)
-AM_INIT_AUTOMAKE(alsa-utils, 1.0.12rc1)
+AM_INIT_AUTOMAKE(alsa-utils, 1.0.12rc2)
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.14])
@@ -27,7 +27,7 @@
dnl AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_LN_S
-AM_PATH_ALSA(1.0.9)
+AM_PATH_ALSA(1.0.12)
AC_ARG_ENABLE(alsamixer,
[ --disable-alsamixer Disable alsamixer compilation],
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-utils-1.0.12rc1/include/version.h new/alsa-utils-1.0.12rc2/include/version.h
--- old/alsa-utils-1.0.12rc1/include/version.h 2006-06-21 17:44:54.000000000 +0200
+++ new/alsa-utils-1.0.12rc2/include/version.h 2006-08-04 14:57:10.000000000 +0200
@@ -4,9 +4,9 @@
#define SND_UTIL_MAJOR 1
#define SND_UTIL_MINOR 0
-#define SND_UTIL_SUBMINOR 12rc1
+#define SND_UTIL_SUBMINOR 12rc2
#define SND_UTIL_VERSION ((SND_UTIL_MAJOR<<16)|\
(SND_UTIL_MINOR<<8)|\
SND_UTIL_SUBMINOR)
-#define SND_UTIL_VERSION_STR "1.0.12rc1"
+#define SND_UTIL_VERSION_STR "1.0.12rc2"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-utils-1.0.12rc1/po/alsa-utils.pot new/alsa-utils-1.0.12rc2/po/alsa-utils.pot
--- old/alsa-utils-1.0.12rc1/po/alsa-utils.pot 2006-06-21 17:45:52.000000000 +0200
+++ new/alsa-utils-1.0.12rc2/po/alsa-utils.pot 2006-08-04 14:57:59.000000000 +0200
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-06-21 17:45+0200\n"
+"POT-Creation-Date: 2006-08-04 14:57+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -128,334 +128,334 @@
msgid "Aborted by signal %s...\n"
msgstr ""
-#: aplay/aplay.c:392
+#: aplay/aplay.c:394
msgid "command should be named either arecord or aplay"
msgstr ""
-#: aplay/aplay.c:434
+#: aplay/aplay.c:436
#, c-format
msgid "unrecognized file format %s"
msgstr ""
-#: aplay/aplay.c:441
+#: aplay/aplay.c:443
#, c-format
msgid "value %i for channels is invalid"
msgstr ""
-#: aplay/aplay.c:460
+#: aplay/aplay.c:462
#, c-format
msgid "wrong extended format '%s'"
msgstr ""
-#: aplay/aplay.c:471
+#: aplay/aplay.c:473
#, c-format
msgid "bad speed value %i"
msgstr ""
-#: aplay/aplay.c:527
+#: aplay/aplay.c:529
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
-#: aplay/aplay.c:548
+#: aplay/aplay.c:550
#, c-format
msgid "audio open error: %s"
msgstr ""
-#: aplay/aplay.c:553
+#: aplay/aplay.c:555
#, c-format
msgid "info error: %s"
msgstr ""
-#: aplay/aplay.c:560
+#: aplay/aplay.c:562
#, c-format
msgid "nonblock setting error: %s"
msgstr ""
-#: aplay/aplay.c:570 aplay/aplay.c:676 aplay/aplay.c:1026
+#: aplay/aplay.c:572 aplay/aplay.c:678 aplay/aplay.c:1029
msgid "not enough memory"
msgstr ""
-#: aplay/aplay.c:666
+#: aplay/aplay.c:668
#, c-format
msgid "read error (called from line %i)"
msgstr ""
-#: aplay/aplay.c:724
+#: aplay/aplay.c:726
#, c-format
msgid "unknown length of 'fmt ' chunk (read %u, should be %u at least)"
msgstr ""
-#: aplay/aplay.c:732
+#: aplay/aplay.c:734
msgid "can't play not PCM-coded WAVE-files"
msgstr ""
-#: aplay/aplay.c:736
+#: aplay/aplay.c:738
#, c-format
msgid "can't play WAVE-files with %d tracks"
msgstr ""
-#: aplay/aplay.c:744 aplay/aplay.c:841
+#: aplay/aplay.c:746 aplay/aplay.c:843
msgid "Warning: format is changed to U8\n"
msgstr ""
-#: aplay/aplay.c:750
+#: aplay/aplay.c:752
msgid "Warning: format is changed to S16_LE\n"
msgstr ""
-#: aplay/aplay.c:758
+#: aplay/aplay.c:760
msgid "Warning: format is changed to S24_3LE\n"
msgstr ""
-#: aplay/aplay.c:764
+#: aplay/aplay.c:766
msgid "Warning: format is changed to S24_LE\n"
msgstr ""
-#: aplay/aplay.c:768
+#: aplay/aplay.c:770
#, c-format
msgid ""
" can't play WAVE-files with sample %d bits in %d bytes wide (%d channels)"
msgstr ""
-#: aplay/aplay.c:777
+#: aplay/aplay.c:779
#, c-format
msgid " can't play WAVE-files with sample %d bits wide"
msgstr ""
-#: aplay/aplay.c:835
+#: aplay/aplay.c:837
msgid "Warning: format is changed to MU_LAW\n"
msgstr ""
-#: aplay/aplay.c:847
+#: aplay/aplay.c:849
msgid "Warning: format is changed to S16_BE\n"
msgstr ""
-#: aplay/aplay.c:860 aplay/aplay.c:1495 aplay/aplay.c:1502 aplay/aplay.c:2016
-#: aplay/aplay.c:2028
+#: aplay/aplay.c:862 aplay/aplay.c:1498 aplay/aplay.c:1505 aplay/aplay.c:2021
+#: aplay/aplay.c:2033
msgid "read error"
msgstr ""
-#: aplay/aplay.c:880
+#: aplay/aplay.c:882
msgid "Broken configuration for this PCM: no configurations available"
msgstr ""
-#: aplay/aplay.c:897
+#: aplay/aplay.c:899
msgid "Access type not available"
msgstr ""
-#: aplay/aplay.c:902
+#: aplay/aplay.c:904
msgid "Sample format non available"
msgstr ""
-#: aplay/aplay.c:907
+#: aplay/aplay.c:909
msgid "Channels count non available"
msgstr ""
-#: aplay/aplay.c:921
+#: aplay/aplay.c:924
#, c-format
msgid "Warning: rate is not accurate (requested = %iHz, got = %iHz)\n"
msgstr ""
-#: aplay/aplay.c:927
+#: aplay/aplay.c:930
#, c-format
msgid " please, try the plug plugin %s\n"
msgstr ""
-#: aplay/aplay.c:962
+#: aplay/aplay.c:965
msgid "Unable to install hw params:"
msgstr ""
-#: aplay/aplay.c:969
+#: aplay/aplay.c:972
#, c-format
msgid "Can't use period equal to buffer size (%lu == %lu)"
msgstr ""
-#: aplay/aplay.c:976
+#: aplay/aplay.c:979
msgid "Unable to obtain xfer align\n"
msgstr ""
-#: aplay/aplay.c:1013
+#: aplay/aplay.c:1016
msgid "unable to install sw params:"
msgstr ""
-#: aplay/aplay.c:1052
+#: aplay/aplay.c:1055
#, c-format
msgid "status error: %s"
msgstr ""
-#: aplay/aplay.c:1060
+#: aplay/aplay.c:1063
#, c-format
msgid "%s!!! (at least %.3f ms long)\n"
msgstr ""
-#: aplay/aplay.c:1061
+#: aplay/aplay.c:1064
msgid "underrun"
msgstr ""
-#: aplay/aplay.c:1061
+#: aplay/aplay.c:1064
msgid "overrun"
msgstr ""
-#: aplay/aplay.c:1064
+#: aplay/aplay.c:1067
msgid "Status:\n"
msgstr ""
-#: aplay/aplay.c:1068
+#: aplay/aplay.c:1071
#, c-format
msgid "xrun: prepare error: %s"
msgstr ""
-#: aplay/aplay.c:1074
+#: aplay/aplay.c:1077
msgid "Status(DRAINING):\n"
msgstr ""
-#: aplay/aplay.c:1078
+#: aplay/aplay.c:1081
msgid "capture stream format change? attempting recover...\n"
msgstr ""
-#: aplay/aplay.c:1080
+#: aplay/aplay.c:1083
#, c-format
msgid "xrun(DRAINING): prepare error: %s"
msgstr ""
-#: aplay/aplay.c:1087
+#: aplay/aplay.c:1090
msgid "Status(R/W):\n"
msgstr ""
-#: aplay/aplay.c:1090
+#: aplay/aplay.c:1093
#, c-format
msgid "read/write error, state = %s"
msgstr ""
-#: aplay/aplay.c:1100
+#: aplay/aplay.c:1103
msgid "Suspended. Trying resume. "
msgstr ""
-#: aplay/aplay.c:1105
+#: aplay/aplay.c:1108
msgid "Failed. Restarting stream. "
msgstr ""
-#: aplay/aplay.c:1107
+#: aplay/aplay.c:1110
#, c-format
msgid "suspend: prepare error: %s"
msgstr ""
-#: aplay/aplay.c:1112
+#: aplay/aplay.c:1115
msgid "Done.\n"
msgstr ""
-#: aplay/aplay.c:1191
+#: aplay/aplay.c:1194
#, c-format
msgid "Unsupported bit size %d.\n"
msgstr ""
-#: aplay/aplay.c:1227
+#: aplay/aplay.c:1230
msgid " !clip "
msgstr ""
-#: aplay/aplay.c:1232
+#: aplay/aplay.c:1235
#, c-format
msgid "Max peak (%li samples): 0x%08x "
msgstr ""
-#: aplay/aplay.c:1265
+#: aplay/aplay.c:1268
#, c-format
msgid "write error: %s"
msgstr ""
-#: aplay/aplay.c:1307
+#: aplay/aplay.c:1310
#, c-format
msgid "writev error: %s"
msgstr ""
-#: aplay/aplay.c:1346
+#: aplay/aplay.c:1349
#, c-format
msgid "read error: %s"
msgstr ""
-#: aplay/aplay.c:1385
+#: aplay/aplay.c:1388
#, c-format
msgid "readv error: %s"
msgstr ""
-#: aplay/aplay.c:1433
+#: aplay/aplay.c:1436
msgid "can't allocate buffer for silence"
msgstr ""
-#: aplay/aplay.c:1442 aplay/aplay.c:1670 aplay/aplay.c:1675 aplay/aplay.c:1722
-#: aplay/aplay.c:1731 aplay/aplay.c:1738 aplay/aplay.c:1748 aplay/aplay.c:1754
-#: aplay/aplay.c:1822 aplay/aplay.c:1852 aplay/aplay.c:1866
+#: aplay/aplay.c:1445 aplay/aplay.c:1673 aplay/aplay.c:1678 aplay/aplay.c:1725
+#: aplay/aplay.c:1734 aplay/aplay.c:1741 aplay/aplay.c:1751 aplay/aplay.c:1757
+#: aplay/aplay.c:1825 aplay/aplay.c:1855 aplay/aplay.c:1869
msgid "write error"
msgstr ""
-#: aplay/aplay.c:1456
+#: aplay/aplay.c:1459
msgid "voc_pcm_flush - silence error"
msgstr ""
-#: aplay/aplay.c:1462
+#: aplay/aplay.c:1465
msgid "voc_pcm_flush error"
msgstr ""
-#: aplay/aplay.c:1486
+#: aplay/aplay.c:1489
msgid "malloc error"
msgstr ""
-#: aplay/aplay.c:1490
+#: aplay/aplay.c:1493
#, c-format
msgid "Playing Creative Labs Channel file '%s'...\n"
msgstr ""
-#: aplay/aplay.c:1558 aplay/aplay.c:1650
+#: aplay/aplay.c:1561 aplay/aplay.c:1653
msgid "can't play packed .voc files"
msgstr ""
-#: aplay/aplay.c:1610
+#: aplay/aplay.c:1613
#, c-format
msgid "can't play loops; %s isn't seekable\n"
msgstr ""
-#: aplay/aplay.c:1659
+#: aplay/aplay.c:1662
#, c-format
msgid "unknown blocktype %d. terminate."
msgstr ""
-#: aplay/aplay.c:1789
+#: aplay/aplay.c:1792
#, c-format
msgid "Wave doesn't support %s format..."
msgstr ""
-#: aplay/aplay.c:1846
+#: aplay/aplay.c:1849
#, c-format
msgid "Sparc Audio doesn't support %s format..."
msgstr ""
-#: aplay/aplay.c:1925
+#: aplay/aplay.c:1930
msgid "Playing"
msgstr ""
-#: aplay/aplay.c:1925
+#: aplay/aplay.c:1930
msgid "Recording"
msgstr ""
-#: aplay/aplay.c:1929
+#: aplay/aplay.c:1934
#, c-format
msgid "Rate %d Hz, "
msgstr ""
-#: aplay/aplay.c:1931
+#: aplay/aplay.c:1936
msgid "Mono"
msgstr ""
-#: aplay/aplay.c:1933
+#: aplay/aplay.c:1938
msgid "Stereo"
msgstr ""
-#: aplay/aplay.c:1935
+#: aplay/aplay.c:1940
#, c-format
msgid "Channels %i"
msgstr ""
-#: aplay/aplay.c:2288 aplay/aplay.c:2341
+#: aplay/aplay.c:2295 aplay/aplay.c:2348
#, c-format
msgid "You need to specify %d files"
msgstr ""
Binary files old/alsa-utils-1.0.12rc1/po/ja.gmo and new/alsa-utils-1.0.12rc2/po/ja.gmo differ
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/alsa-utils-1.0.12rc1/po/ja.po new/alsa-utils-1.0.12rc2/po/ja.po
--- old/alsa-utils-1.0.12rc1/po/ja.po 2006-06-21 17:45:52.000000000 +0200
+++ new/alsa-utils-1.0.12rc2/po/ja.po 2006-08-04 14:57:59.000000000 +0200
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: alsa-utils 1.0.9a\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-06-21 17:45+0200\n"
+"POT-Creation-Date: 2006-08-04 14:57+0200\n"
"PO-Revision-Date: 2006-04-18 15:51+0200\n"
"Last-Translator: Takashi Iwai \n"
"Language-Team: Japanese\n"
@@ -157,90 +157,90 @@
msgid "Aborted by signal %s...\n"
msgstr "シグナル %s で中断...\n"
-#: aplay/aplay.c:392
+#: aplay/aplay.c:394
msgid "command should be named either arecord or aplay"
msgstr "arecord または aplay コマンドのみ可能"
-#: aplay/aplay.c:434
+#: aplay/aplay.c:436
#, c-format
msgid "unrecognized file format %s"
msgstr "不正なファイルフォーマット %s"
-#: aplay/aplay.c:441
+#: aplay/aplay.c:443
#, c-format
msgid "value %i for channels is invalid"
msgstr "不正なチャネル数 %i"
-#: aplay/aplay.c:460
+#: aplay/aplay.c:462
#, c-format
msgid "wrong extended format '%s'"
msgstr "不正な拡張フォーマット '%s'"
-#: aplay/aplay.c:471
+#: aplay/aplay.c:473
#, c-format
msgid "bad speed value %i"
msgstr "不正なレート値 %i"
-#: aplay/aplay.c:527
+#: aplay/aplay.c:529
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "より詳しい情報は「%s --help」を実行してください\n"
-#: aplay/aplay.c:548
+#: aplay/aplay.c:550
#, c-format
msgid "audio open error: %s"
msgstr ""
-#: aplay/aplay.c:553
+#: aplay/aplay.c:555
#, c-format
msgid "info error: %s"
msgstr ""
-#: aplay/aplay.c:560
+#: aplay/aplay.c:562
#, c-format
msgid "nonblock setting error: %s"
msgstr ""
-#: aplay/aplay.c:570 aplay/aplay.c:676 aplay/aplay.c:1026
+#: aplay/aplay.c:572 aplay/aplay.c:678 aplay/aplay.c:1029
msgid "not enough memory"
msgstr "メモリが足りません"
-#: aplay/aplay.c:666
+#: aplay/aplay.c:668
#, c-format
msgid "read error (called from line %i)"
msgstr "リードエラー (%i 行)"
-#: aplay/aplay.c:724
+#: aplay/aplay.c:726
#, c-format
msgid "unknown length of 'fmt ' chunk (read %u, should be %u at least)"
msgstr ""
-#: aplay/aplay.c:732
+#: aplay/aplay.c:734
msgid "can't play not PCM-coded WAVE-files"
msgstr "PCM 以外の WAVE ファイルは再生できません"
-#: aplay/aplay.c:736
+#: aplay/aplay.c:738
#, c-format
msgid "can't play WAVE-files with %d tracks"
msgstr "%d トラックを含む WAVE ファイルは再生できません"
-#: aplay/aplay.c:744 aplay/aplay.c:841
+#: aplay/aplay.c:746 aplay/aplay.c:843
msgid "Warning: format is changed to U8\n"
msgstr "警告: フォーマットは U8 に変更されます\n"
-#: aplay/aplay.c:750
+#: aplay/aplay.c:752
msgid "Warning: format is changed to S16_LE\n"
msgstr "警告: フォーマットは S16_LE に変更されます\n"
-#: aplay/aplay.c:758
+#: aplay/aplay.c:760
msgid "Warning: format is changed to S24_3LE\n"
msgstr "警告: フォーマットは S24_3LE に変更されます\n"
-#: aplay/aplay.c:764
+#: aplay/aplay.c:766
msgid "Warning: format is changed to S24_LE\n"
msgstr "警告: フォーマットは S24_LE に変更されます\n"
-#: aplay/aplay.c:768
+#: aplay/aplay.c:770
#, c-format
msgid ""
" can't play WAVE-files with sample %d bits in %d bytes wide (%d channels)"
@@ -248,245 +248,245 @@
"%2$d バイト長 %1$d サンプルビット (%3$d チャネル) の WAVE ファイルは再生でき"
"ません"
-#: aplay/aplay.c:777
+#: aplay/aplay.c:779
#, c-format
msgid " can't play WAVE-files with sample %d bits wide"
msgstr "%d ビット長のサンプルの WAVE ファイルは再生できません"
-#: aplay/aplay.c:835
+#: aplay/aplay.c:837
msgid "Warning: format is changed to MU_LAW\n"
msgstr "警告: フォーマットは MU_LAW に変更されます\n"
-#: aplay/aplay.c:847
+#: aplay/aplay.c:849
msgid "Warning: format is changed to S16_BE\n"
msgstr "警告: フォーマットは S16_BE に変更されます\n"
-#: aplay/aplay.c:860 aplay/aplay.c:1495 aplay/aplay.c:1502 aplay/aplay.c:2016
-#: aplay/aplay.c:2028
+#: aplay/aplay.c:862 aplay/aplay.c:1498 aplay/aplay.c:1505 aplay/aplay.c:2021
+#: aplay/aplay.c:2033
msgid "read error"
msgstr "リードエラー"
-#: aplay/aplay.c:880
+#: aplay/aplay.c:882
msgid "Broken configuration for this PCM: no configurations available"
msgstr "指定の PCM を使用できません: 設定がありません"
-#: aplay/aplay.c:897
+#: aplay/aplay.c:899
msgid "Access type not available"
msgstr "アクセスタイプが使用不可能"
-#: aplay/aplay.c:902
+#: aplay/aplay.c:904
msgid "Sample format non available"
msgstr "サンプルフォーマットが使用不可能"
-#: aplay/aplay.c:907
+#: aplay/aplay.c:909
msgid "Channels count non available"
msgstr "チャネル数が使用不可能"
-#: aplay/aplay.c:921
+#: aplay/aplay.c:924
#, c-format
msgid "Warning: rate is not accurate (requested = %iHz, got = %iHz)\n"
msgstr "警告: レートが不正確です (要求値 = %iHz, 使用値 = %iHz)\n"
-#: aplay/aplay.c:927
+#: aplay/aplay.c:930
#, c-format
msgid " please, try the plug plugin %s\n"
msgstr " plug プラグイン%s を使用してください\n"
-#: aplay/aplay.c:962
+#: aplay/aplay.c:965
msgid "Unable to install hw params:"
msgstr "hw params のインストールに失敗しました:"
-#: aplay/aplay.c:969
+#: aplay/aplay.c:972
#, c-format
msgid "Can't use period equal to buffer size (%lu == %lu)"
msgstr "period と buffer サイズには同じ値を使用できません (%lu == %lu)"
-#: aplay/aplay.c:976
+#: aplay/aplay.c:979
msgid "Unable to obtain xfer align\n"
msgstr "xfer align 値を得ることができません\n"
-#: aplay/aplay.c:1013
+#: aplay/aplay.c:1016
msgid "unable to install sw params:"
msgstr "sw params のインストールに失敗しました:"
-#: aplay/aplay.c:1052
+#: aplay/aplay.c:1055
#, c-format
msgid "status error: %s"
msgstr "ステータスエラー: %s"
-#: aplay/aplay.c:1060
+#: aplay/aplay.c:1063
#, c-format
msgid "%s!!! (at least %.3f ms long)\n"
msgstr "%s!!! (少なくとも %.3f ms)\n"
-#: aplay/aplay.c:1061
+#: aplay/aplay.c:1064
msgid "underrun"
msgstr "アンダーラン"
-#: aplay/aplay.c:1061
+#: aplay/aplay.c:1064
msgid "overrun"
msgstr "オーバーラン"
-#: aplay/aplay.c:1064
+#: aplay/aplay.c:1067
msgid "Status:\n"
msgstr "ステータス:\n"
-#: aplay/aplay.c:1068
+#: aplay/aplay.c:1071
#, c-format
msgid "xrun: prepare error: %s"
msgstr ""
-#: aplay/aplay.c:1074
+#: aplay/aplay.c:1077
msgid "Status(DRAINING):\n"
msgstr "ステータス(DRAINING):\n"
-#: aplay/aplay.c:1078
+#: aplay/aplay.c:1081
msgid "capture stream format change? attempting recover...\n"
msgstr "録音ストリームのフォーマットが変更? 修復を試みます...\n"
-#: aplay/aplay.c:1080
+#: aplay/aplay.c:1083
#, c-format
msgid "xrun(DRAINING): prepare error: %s"
msgstr ""
-#: aplay/aplay.c:1087
+#: aplay/aplay.c:1090
msgid "Status(R/W):\n"
msgstr "ステータス(R/W):\n"
-#: aplay/aplay.c:1090
+#: aplay/aplay.c:1093
#, c-format
msgid "read/write error, state = %s"
msgstr "読み書きエラー, ステータス = %s"
-#: aplay/aplay.c:1100
+#: aplay/aplay.c:1103
msgid "Suspended. Trying resume. "
msgstr "サスペンド中です。レジュームします。"
-#: aplay/aplay.c:1105
+#: aplay/aplay.c:1108
msgid "Failed. Restarting stream. "
msgstr "失敗しました。ストリームを再スタートします。"
-#: aplay/aplay.c:1107
+#: aplay/aplay.c:1110
#, c-format
msgid "suspend: prepare error: %s"
msgstr "サスペンド: prepare エラー: %s"
-#: aplay/aplay.c:1112
+#: aplay/aplay.c:1115
msgid "Done.\n"
msgstr "終了\n"
-#: aplay/aplay.c:1191
+#: aplay/aplay.c:1194
#, c-format
msgid "Unsupported bit size %d.\n"
msgstr ""
-#: aplay/aplay.c:1227
+#: aplay/aplay.c:1230
msgid " !clip "
msgstr ""
-#: aplay/aplay.c:1232
+#: aplay/aplay.c:1235
#, c-format
msgid "Max peak (%li samples): 0x%08x "
msgstr "最大ピーク (%li サンプル): 0x%08x "
-#: aplay/aplay.c:1265
+#: aplay/aplay.c:1268
#, c-format
msgid "write error: %s"
msgstr "書込エラー: %s"
-#: aplay/aplay.c:1307
+#: aplay/aplay.c:1310
#, c-format
msgid "writev error: %s"
msgstr "書込(writev)エラー: %s"
-#: aplay/aplay.c:1346
+#: aplay/aplay.c:1349
#, c-format
msgid "read error: %s"
msgstr "読込エラー: %s"
-#: aplay/aplay.c:1385
+#: aplay/aplay.c:1388
#, c-format
msgid "readv error: %s"
msgstr "読込(readv)エラー: %s"
-#: aplay/aplay.c:1433
+#: aplay/aplay.c:1436
msgid "can't allocate buffer for silence"
msgstr "サイレンス用のバッファの取得に失敗しました"
-#: aplay/aplay.c:1442 aplay/aplay.c:1670 aplay/aplay.c:1675 aplay/aplay.c:1722
-#: aplay/aplay.c:1731 aplay/aplay.c:1738 aplay/aplay.c:1748 aplay/aplay.c:1754
-#: aplay/aplay.c:1822 aplay/aplay.c:1852 aplay/aplay.c:1866
+#: aplay/aplay.c:1445 aplay/aplay.c:1673 aplay/aplay.c:1678 aplay/aplay.c:1725
+#: aplay/aplay.c:1734 aplay/aplay.c:1741 aplay/aplay.c:1751 aplay/aplay.c:1757
+#: aplay/aplay.c:1825 aplay/aplay.c:1855 aplay/aplay.c:1869
msgid "write error"
msgstr "書込エラー"
-#: aplay/aplay.c:1456
+#: aplay/aplay.c:1459
msgid "voc_pcm_flush - silence error"
msgstr ""
-#: aplay/aplay.c:1462
+#: aplay/aplay.c:1465
msgid "voc_pcm_flush error"
msgstr ""
-#: aplay/aplay.c:1486
+#: aplay/aplay.c:1489
msgid "malloc error"
msgstr "malloc エラー"
-#: aplay/aplay.c:1490
+#: aplay/aplay.c:1493
#, c-format
msgid "Playing Creative Labs Channel file '%s'...\n"
msgstr "Creative Labs Channel ファイル '%s' を演奏中...\n"
-#: aplay/aplay.c:1558 aplay/aplay.c:1650
+#: aplay/aplay.c:1561 aplay/aplay.c:1653
msgid "can't play packed .voc files"
msgstr "packed .voc ファイルは演奏できません"
-#: aplay/aplay.c:1610
+#: aplay/aplay.c:1613
#, c-format
msgid "can't play loops; %s isn't seekable\n"
msgstr "ループ演奏できません。%s はシーク不可能です\n"
-#: aplay/aplay.c:1659
+#: aplay/aplay.c:1662
#, c-format
msgid "unknown blocktype %d. terminate."
msgstr "未知のブロックタイプ %d: 終了します。"
-#: aplay/aplay.c:1789
+#: aplay/aplay.c:1792
#, c-format
msgid "Wave doesn't support %s format..."
msgstr "WAVE は %s フォーマットをサポートしません..."
-#: aplay/aplay.c:1846
+#: aplay/aplay.c:1849
#, c-format
msgid "Sparc Audio doesn't support %s format..."
msgstr "Sparc オーディオは %s フォーマットをサポートしません..."
-#: aplay/aplay.c:1925
+#: aplay/aplay.c:1930
msgid "Playing"
msgstr "再生中"
-#: aplay/aplay.c:1925
+#: aplay/aplay.c:1930
msgid "Recording"
msgstr "録音中"
-#: aplay/aplay.c:1929
+#: aplay/aplay.c:1934
#, c-format
msgid "Rate %d Hz, "
msgstr "レート %d Hz, "
-#: aplay/aplay.c:1931
+#: aplay/aplay.c:1936
msgid "Mono"
msgstr "モノラル"
-#: aplay/aplay.c:1933
+#: aplay/aplay.c:1938
msgid "Stereo"
msgstr "ステレオ"
-#: aplay/aplay.c:1935
+#: aplay/aplay.c:1940
#, c-format
msgid "Channels %i"
msgstr "チャネル数 %i"
-#: aplay/aplay.c:2288 aplay/aplay.c:2341
+#: aplay/aplay.c:2295 aplay/aplay.c:2348
#, c-format
msgid "You need to specify %d files"
msgstr "%d 個のファイルを指定してください"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...