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 <asm/types.h> -#include <asm/byteorder.h> -#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 <asm/types.h> -#include <asm/byteorder.h> -#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 <asm/types.h> -#include <asm/byteorder.h> -#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 <asm/types.h> -#include <asm/byteorder.h> -#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 <stdint.h> +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 <endian.h> +#include <byteswap.h> +#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 <sys/stat.h> #include <stdio.h> #include "local.h" -/* linux 2.6.9 workaround */ -#include <linux/version.h> -#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,9) -#include <asm/types.h> -#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 <asm/byteorder.h> #include <sound/ainstr_fm.h> /** 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 <sys/stat.h> #include <stdio.h> #include "local.h" -/* linux 2.6.9 workaround */ -#include <linux/version.h> -#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,9) -#include <asm/types.h> -#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 <sound/ainstr_iw.h> /* 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 <sys/stat.h> #include <stdio.h> #include "local.h" -/* linux 2.6.9 workaround */ -#include <linux/version.h> -#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,9) -#include <asm/types.h> -#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 <asm/byteorder.h> #include <sound/ainstr_simple.h> /** 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 <stdio.h> #include <string.h> 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 <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\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 <tiwai@suse.de>\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...