diff -Nru alsa-lib-1.0.17a/configure alsa-lib-1.0.18/configure --- alsa-lib-1.0.17a/configure 2008-08-15 12:36:15.000000000 +0100 +++ alsa-lib-1.0.18/configure 2008-10-29 12:46:35.000000000 +0000 @@ -2486,7 +2486,7 @@ # Define the identity of the package. PACKAGE=alsa-lib - VERSION=1.0.17a + VERSION=1.0.18 cat >>confdefs.h <<_ACEOF diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/configure.in /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/configure.in --- alsa-lib-1.0.17a/configure.in 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/configure.in 2008-10-29 12:42:10.000000000 +0000 @@ -9,7 +9,7 @@ dnl remove API = c+1:0:0 dnl ************************************************* AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE(alsa-lib, 1.0.17a) +AM_INIT_AUTOMAKE(alsa-lib, 1.0.18) eval LIBTOOL_VERSION_INFO="2:0:0" dnl ************************************************* AM_CONDITIONAL(INSTALL_M4, test -n "${ACLOCAL}") diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/alsabi.conf /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/alsabi.conf --- alsa-lib-1.0.17a/debian/alsabi.conf 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/alsabi.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1,608 +0,0 @@ -# -# ALSA library configuration file -# - -# pre-load the configuration files - -@hooks [ - { - func load - files [ - "/usr/share/alsa/pulsebi.conf" - "/etc/asound.conf" - "~/.asoundrc" - ] - errors false - } -] - -# load card-specific configuration files (on request) - -cards.@hooks [ - { - func load - files [ - { - @func concat - strings [ - { @func datadir } - "/cards/aliases.conf" - ] - } - ] - } - { - func load_for_all_cards - files [ - { - @func concat - strings [ - { @func datadir } - "/cards/" - { @func private_string } - ".conf" - ] - } - ] - errors false - } -] - -# -# defaults -# - -# show all name hints also for definitions without hint {} section -defaults.namehint.showall off -# show just basic name hints -defaults.namehint.basic on -# show extended name hints -defaults.namehint.extended off -# -defaults.ctl.card 0 -defaults.pcm.card 0 -defaults.pcm.device 0 -defaults.pcm.subdevice -1 -defaults.pcm.nonblock 1 -defaults.pcm.ipc_key 5678293 -defaults.pcm.ipc_gid audio -defaults.pcm.ipc_perm 0660 -defaults.pcm.dmix.max_periods 0 -defaults.pcm.dmix.rate 48000 -defaults.pcm.dmix.format "unchanged" -defaults.pcm.dmix.card defaults.pcm.card -defaults.pcm.dmix.device defaults.pcm.device -defaults.pcm.dsnoop.card defaults.pcm.card -defaults.pcm.dsnoop.device defaults.pcm.device -defaults.pcm.front.card defaults.pcm.card -defaults.pcm.front.device defaults.pcm.device -defaults.pcm.rear.card defaults.pcm.card -defaults.pcm.rear.device defaults.pcm.device -defaults.pcm.center_lfe.card defaults.pcm.card -defaults.pcm.center_lfe.device defaults.pcm.device -defaults.pcm.side.card defaults.pcm.card -defaults.pcm.side.device defaults.pcm.device -defaults.pcm.surround40.card defaults.pcm.card -defaults.pcm.surround40.device defaults.pcm.device -defaults.pcm.surround41.card defaults.pcm.card -defaults.pcm.surround41.device defaults.pcm.device -defaults.pcm.surround50.card defaults.pcm.card -defaults.pcm.surround50.device defaults.pcm.device -defaults.pcm.surround51.card defaults.pcm.card -defaults.pcm.surround51.device defaults.pcm.device -defaults.pcm.surround71.card defaults.pcm.card -defaults.pcm.surround71.device defaults.pcm.device -defaults.pcm.iec958.card defaults.pcm.card -defaults.pcm.iec958.device defaults.pcm.device -defaults.pcm.modem.card defaults.pcm.card -defaults.pcm.modem.device defaults.pcm.device -# truncate files via file or tee PCM -defaults.pcm.file_format "raw" -defaults.pcm.file_truncate true -defaults.rawmidi.card 0 -defaults.rawmidi.device 0 -defaults.rawmidi.subdevice -1 -defaults.hwdep.card 0 -defaults.hwdep.device 0 -defaults.timer.class 2 -defaults.timer.sclass 0 -defaults.timer.card 0 -defaults.timer.device 0 -defaults.timer.subdevice 0 - -# -# PCM interface -# - -# redirect to load-on-demand extended pcm definitions -pcm.cards cards.pcm - -pcm.default cards.pcm.default -pcm.front cards.pcm.front -pcm.rear cards.pcm.rear -pcm.center_lfe cards.pcm.center_lfe -pcm.side cards.pcm.side -pcm.surround40 cards.pcm.surround40 -pcm.surround41 cards.pcm.surround41 -pcm.surround50 cards.pcm.surround50 -pcm.surround51 cards.pcm.surround51 -pcm.surround71 cards.pcm.surround71 -pcm.iec958 cards.pcm.iec958 -pcm.spdif iec958 -pcm.hdmi cards.pcm.hdmi -pcm.dmix cards.pcm.dmix -pcm.dsnoop cards.pcm.dsnoop -pcm.modem cards.pcm.modem -pcm.phoneline cards.pcm.phoneline - -pcm.hw { - @args [ CARD DEV SUBDEV ] - @args.CARD { - type string - default { - @func getenv - vars [ - ALSA_PCM_CARD - ALSA_CARD - ] - default { - @func refer - name defaults.pcm.card - } - } - } - @args.DEV { - type integer - default { - @func igetenv - vars [ - ALSA_PCM_DEVICE - ] - default { - @func refer - name defaults.pcm.device - } - } - } - @args.SUBDEV { - type integer - default { - @func refer - name defaults.pcm.subdevice - } - } - type hw - card $CARD - device $DEV - subdevice $SUBDEV - hint { - show { - @func refer - name defaults.namehint.extended - } - description "Direct hardware device without any conversions" - } -} - -pcm.plughw { - @args [ CARD DEV SUBDEV ] - @args.CARD { - type string - default { - @func getenv - vars [ - ALSA_PCM_CARD - ALSA_CARD - ] - default { - @func refer - name defaults.pcm.card - } - } - } - @args.DEV { - type integer - default { - @func igetenv - vars [ - ALSA_PCM_DEVICE - ] - default { - @func refer - name defaults.pcm.device - } - } - } - @args.SUBDEV { - type integer - default { - @func refer - name defaults.pcm.subdevice - } - } - type plug - slave.pcm { - type hw - card $CARD - device $DEV - subdevice $SUBDEV - } - hint { - show { - @func refer - name defaults.namehint.extended - } - description "Hardware device with all software conversions" - } -} - -pcm.plug { - @args [ SLAVE ] - @args.SLAVE { - type string - } - type plug - slave.pcm $SLAVE -} - -pcm.shm { - @args [ SOCKET PCM ] - @args.SOCKET { - type string - } - @args.PCM { - type string - } - type shm - server $SOCKET - pcm $PCM -} - -pcm.tee { - @args [ SLAVE FILE FORMAT ] - @args.SLAVE { - type string - } - @args.FILE { - type string - } - @args.FORMAT { - type string - default { - @func refer - name defaults.pcm.file_format - } - } - type file - slave.pcm $SLAVE - file $FILE - format $FORMAT - truncate { - @func refer - name defaults.pcm.file_truncate - } -} - -pcm.file { - @args [ FILE FORMAT ] - @args.FILE { - type string - } - @args.FORMAT { - type string - default { - @func refer - name defaults.pcm.file_format - } - } - type file - slave.pcm null - file $FILE - format $FORMAT - truncate { - @func refer - name defaults.pcm.file_truncate - } -} - -pcm.null { - type null - hint { - show { - @func refer - name defaults.namehint.basic - } - description "Discard all samples (playback) or generate zero samples (capture)" - } -} - -# -# Control interface -# - -ctl.default { - type hw - card { - @func getenv - vars [ - ALSA_CTL_CARD - ALSA_CARD - ] - default { - @func refer - name defaults.ctl.card - } - } -} - -ctl.hw { - @args [ CARD ] - @args.CARD { - type string - default { - @func getenv - vars [ - ALSA_CTL_CARD - ALSA_CARD - ] - default { - @func refer - name defaults.ctl.card - } - } - } - type hw - card $CARD -} - -ctl.shm { - @args [ SOCKET CTL ] - @args.SOCKET { - type string - } - @args.CTL { - type string - } - type shm - server $SOCKET - ctl $CTL -} - -# -# RawMidi interface -# - -rawmidi.default { - type hw - card { - @func getenv - vars [ - ALSA_RAWMIDI_CARD - ALSA_CARD - ] - default { - @func refer - name defaults.rawmidi.card - } - } - device { - @func igetenv - vars [ - ALSA_RAWMIDI_DEVICE - ] - default { - @func refer - name defaults.rawmidi.device - } - } -} - -rawmidi.hw { - @args [ CARD DEV SUBDEV ] - @args.CARD { - type string - default { - @func getenv - vars [ - ALSA_RAWMIDI_CARD - ALSA_CARD - ] - default { - @func refer - name defaults.rawmidi.card - } - } - } - @args.DEV { - type integer - default { - @func igetenv - vars [ - ALSA_RAWMIDI_DEVICE - ] - default { - @func refer - name defaults.rawmidi.device - } - } - } - @args.SUBDEV { - type integer - default -1 - } - type hw - card $CARD - device $DEV - subdevice $SUBDEV - hint { - description "Direct rawmidi driver device" - device $DEV - } -} - -rawmidi.virtual { - @args [ MERGE ] - @args.MERGE { - type string - default 1 - } - type virtual - merge $MERGE -} - -# -# Sequencer interface -# - -seq.default { - type hw -} - -seq.hw { - type hw -} - -# -# HwDep interface -# - -hwdep.default { - type hw - card { - @func getenv - vars [ - ALSA_HWDEP_CARD - ALSA_CARD - ] - default { - @func refer - name defaults.hwdep.card - } - } - device { - @func igetenv - vars [ - ALSA_HWDEP_DEVICE - ] - default { - @func refer - name defaults.hwdep.device - } - } -} - -hwdep.hw { - @args [ CARD DEV ] - @args.CARD { - type string - default { - @func getenv - vars [ - ALSA_HWDEP_CARD - ALSA_CARD - ] - default { - @func refer - name defaults.hwdep.card - } - } - } - @args.DEV { - type integer - default { - @func igetenv - vars [ - ALSA_HWDEP_DEVICE - ] - default { - @func refer - name defaults.hwdep.device - } - } - } - type hw - card $CARD - device $DEV -} - -# -# Timer interface -# - -timer_query.default { - type hw -} - -timer_query.hw { - type hw -} - -timer.default { - type hw - class { - @func refer - name defaults.timer.class - } - sclass { - @func refer - name defaults.timer.sclass - } - card { - @func refer - name defaults.timer.card - } - device { - @func refer - name defaults.timer.device - } - subdevice { - @func refer - name defaults.timer.subdevice - } - hint.description "Default direct hardware timer device" -} - -timer.hw { - @args [ CLASS SCLASS CARD DEV SUBDEV ] - @args.CLASS { - type integer - default { - @func refer - name defaults.timer.class - } - } - @args.SCLASS { - type integer - default { - @func refer - name defaults.timer.sclass - } - } - @args.CARD { - type string - default { - @func refer - name defaults.timer.card - } - } - @args.DEV { - type integer - default { - @func refer - name defaults.timer.device - } - } - @args.SUBDEV { - type integer - default { - @func refer - name defaults.timer.subdevice - } - } - type hw - class $CLASS - sclass $SCLASS - card $CARD - device $DEV - subdevice $SUBDEV -} diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/changelog /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/changelog --- alsa-lib-1.0.17a/debian/changelog 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/changelog 2009-02-01 14:12:10.000000000 +0000 @@ -1,3 +1,54 @@ +alsa-lib (1.0.18-1ubuntu3~intrepid1) intrepid; urgency=low + + * Backporting to intrepid + + -- Mieszko ƚlusarczyk (spitfire) Sun, 01 Feb 2009 13:23:16 +0100 + +alsa-lib (1.0.18-1ubuntu3) jaunty; urgency=low + + * Backport fixes from 1.0.19: + - fix_vol_switch_updates.patch, + - use_linear_plug_for_ice1724.patch, + - fix_uninitialised_type-conf.patch, + - fix_softvol_outside_plug.patch, + - fix_softvol_access.patch, + - fix_alsa-config-patch_check.patch, + - add_softvol_for_cmi8788.patch + + -- Daniel T Chen Mon, 19 Jan 2009 23:38:43 -0500 + +alsa-lib (1.0.18-1ubuntu2) jaunty; urgency=low + + * debian/libasound2.install: Ship smixer plugins located in + /usr/lib/alsa-lib/smixer. + + -- Luke Yelavich Mon, 19 Jan 2009 15:16:23 +1100 + +alsa-lib (1.0.18-1ubuntu1) jaunty; urgency=low + + * Merge from Debian unstable. + * Packaging + + debian/libasound2.p{ostinst,rerm}: Install,remove update-notifier + file, respectively; + + debian/user-must-execute-asoundconf-set-default-card.update-notifier: + Tighten Display test; + + debian/control: Add Vcs-Bzr URI. + * Add configuration files for bluetooth/bluez-alsa and pulseaudio. + + -- Luke Yelavich Thu, 06 Nov 2008 02:55:25 +1100 + +alsa-lib (1.0.18-1) unstable; urgency=low + + * New upstream release + + [ Elimar Riesebieter ] + * Adjusted short descriptions in debisn/control. (closes: #493512) + * Pulseaudio 0.9.11 should be supported now. (closes: 499597) + * Bump shlibs to 1.0.18, as new symbols have been added. + - Adjusted suggested libasound2-plugins versions to 1.0.18. + + -- Elimar Riesebieter Sun, 02 Nov 2008 13:55:55 +0100 + alsa-lib (1.0.17a-0ubuntu4) intrepid; urgency=low [ Mario Limonciello ] diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/changelog.ALSA /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/changelog.ALSA --- alsa-lib-1.0.17a/debian/changelog.ALSA 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/changelog.ALSA 2009-02-01 14:12:10.000000000 +0000 @@ -15,75 +15,42 @@ - Fix interleave check in pcm_direct.c - Fix non-tread mode with PCM direct plugins -Changelog between 1.0.16 and 1.0.17 releases -(http://www.alsa-project.org/main/index.php/Changes_v1.0.16_v1.0.17) +Changelog between 1.0.17 and 1.0.18 releases +(http://www.alsa-project.org/main/index.php/Changes_v1.0.17_v1.0.18) (Reformated as ASCII text) ******************************************** * alsa-lib + Core - - Add atomic operation for super-H(sh3,4) architectures - - Create doxgen.cfg dynamically - - IEC958 definitions for consumer status channel, byte 4 - - removed .hg files and renamed hgcompile to gitcompile - - Release v1.0.17rc1 - - PCM: allow mmap-access conversion in plug - - Release v1.0.17rc2 - - Release v1.0.17 + -IEC958 definition for consumer status channel update + -Release v1.0.17a + -Release v1.0.18rc3 + -Release v1.0.18 + Control API - - Fix device number assignment in hints - - Don't show non-existing devices in snd_device_name_hint() - - Fix cast warning + -Replace some assert() with runtime checks + -Fix return value of snd_ctl_hw_subscribe_events() + -Fix sort-out of non-existing devices in namehint + Mixer API - - implemented integer volume <-> dB volume conversion functions for simple mixer - + Mixer Abstraction API - - implemented integer volume <-> dB volume conversion functions for simple mixer + -alsa-lib: Don't call the simple mixer interface "legacy" + PCM API - - Fix conflict of obsoleted snd_pcm_hw_* definitions - - Fix the state in snd_pcm_ioplug_pause() - - Fix the build with old glibc - - dmix skipping first set of samples - - Add truncate option to PCM file plugin - - Use slave PCM as a timing-source for file ifile - - Add the support of WAV format in PCM file plugin - - Use defaults.pcm.file_format for the default file format of file plugin - - fix compilation in pcm/pcm_hw.c - monotonic clock - - PCM API - explain more trigger timestamp - - added snd_pcm_hw_params_is_monotonic/can_forward/can_rewind functions - - implemented snd_pcm_rewindable() and snd_pcm_forwardable(), removed can_rewind and can_forward - - Implemented snd_pcm_sw_params_(set|get)_period_event for interrupt wakeup like behaviour - - Fix compile warnings in pcm_hw.c - - pcm_mmap_emul: Fix invalid check - - pcm_mmap_emul: clean up - - Export __snd_pcm_mmap_emul_open() - - PCM: allow mmap-access conversion in plug - - Fix segfault with dmix of 3-bytes formats - - pcm: fix comment for snd_pcm_avail_update() - + Sequencer API - - Fix snd_seq_change_bit() - - add snd_seq_unset_bit() - - add snd_seq_client_info_event_filter_*() functions - - use snd_seq_client_info_event_filter_*() functions - - mark snd_seq_client_info_{get,set}_event_filter deprecated - + /Makefile.am - - hgcompile -> gitcompile + -Add boolean (mute) functionality to softvol plugin + -clamp snd_pcm_rewind()/snd_pcm_forward() into the right direction + -fix type of internally used sframes variable, to avoid unnecessary casts + -fix return value of snd_pcm_rewind()/snd_pcm_forward() to return how much actually has been rewound, instead of what actually could have + -rewound + -Fix interleave check in pcm_direct.c + -Fix non-tread mode with PCM direct plugins + -alsa-lib: Make sure SND_PCM_NO_xxx flags don't get lost when nonblocking mode is enabled + -alsa-lib: Reword doxygen doc for snd_pcm_delay() + -Add snd_pcm_avail() and snd_pcm_avail_delay() functions. Make snd_pcm_hwsync() deprecated. + -pcm_softvol plugin: remove access type change for refine + -Fix comment typos for snd_pcm_read[in]() + -Add snd_pcm_avail() and snd_pcm_avail_delay() prototypes + Configuration - - Add surround71 definition to NFORCE.conf - - Add PCM "hdmi" - - Fix for alsa-lib cross-compilation problems with ALSA_CONFIG_DIR and ALSA_PLUGIN_DIR - - Add truncate option to PCM file plugin - - Use defaults.pcm.file_format for the default file format of file plugin - - pcsp: remove downsampling - + Documentation - - Create doxgen.cfg dynamically + -Add iec958 PCM definition for PS3 + Kernel Headers - - Add surround71 definition to NFORCE.conf - - Implemented snd_pcm_sw_params_(set|get)_period_event for interrupt wakeup like behaviour - + Simple Abstraction Mixer Modules - - Fix for alsa-lib cross-compilation problems with ALSA_CONFIG_DIR and ALSA_PLUGIN_DIR - - implemented integer volume <-> dB volume conversion functions for simple mixer + -Increase the components array size + Test/Example code - - add a test code for snd_seq_client_info_event_filter_*() - - Implemented snd_pcm_sw_params_(set|get)_period_event for interrupt wakeup like behaviour - - Fix type-punning in test/pcm.c - - test/pcm.c: Fix SND_PCM_FORMAT_S24 support + -test/pcm: Fix error messages in async callback and add snd_pcm_start() condition + +vim:syntax=changelog diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/control /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/control --- alsa-lib-1.0.17a/debian/control 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/control 2009-02-01 14:12:10.000000000 +0000 @@ -15,9 +15,9 @@ Architecture: i386 ia64 alpha amd64 arm armeb armel hppa lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc Section: libs Depends: ${shlibs:Depends} -Suggests: libasound2-plugins (>= 1.0.9) -Conflicts: libasound2-plugins (<< 1.0.9) -Description: ALSA library +Suggests: libasound2-plugins (>= 1.0.18) +Conflicts: libasound2-plugins (<< 1.0.18) +Description: shared library for ALSA applications This package contains the ALSA library and its standard plugins. . @@ -31,7 +31,7 @@ Suggests: libasound2-doc Conflicts: libasound-dev, alsa-headers Replaces: libasound2 (<< 0.9.0rc7-2), alsa-headers -Description: ALSA library development files +Description: shared library for ALSA applications. Development files This package contains files required for developing software that makes use of libasound2, the ALSA library. . @@ -41,9 +41,9 @@ Architecture: sparc s390 i386 powerpc Section: libs Depends: libasound2 (= ${binary:Version}), ${shlibs:Depends}, ${bilib:depends} -Suggests: libasound2-plugins (>= 1.0.9) -Conflicts: libasound2-plugins (<< 1.0.9) -Description: ALSA library (64bit) +Suggests: libasound2-plugins (>= 1.0.18) +Conflicts: libasound2-plugins (<< 1.0.18) +Description: shared library for ALSA applications. (64 bit) This package contains the ALSA library (64 bit) and its standard plugins. . @@ -54,7 +54,7 @@ Section: libdevel Depends: lib64asound2 (= ${binary:Version}), libasound2-dev (= ${binary:Version}), ${bidev:depends} Suggests: libasound2-doc -Description: ALSA library development files (64 bit) +Description: shared library for ALSA applications. Development files. (64 bit) This package contains files required for developing software that makes use of lib64asound2, the ALSA library. . @@ -64,9 +64,10 @@ Architecture: amd64 ppc64 Section: libs Depends: libasound2 (= ${binary:Version}), ${shlibs:Depends}, ${bilib:depends} -Suggests: libasound2-plugins (>= 1.0.9) -Conflicts: libasound2-plugins (<< 1.0.9) -Description: ALSA library (32bit) +Suggests: libasound2-plugins (>= 1.0.18) +Conflicts: libasound2-plugins (<< 1.0.18), ia32-libs (<< 1.9) +Replaces: ia32-libs (<< 1.9) +Description: shared library for ALSA applications (32 bit) This package contains the ALSA library (32 bit) and its standard plugins. . @@ -77,7 +78,7 @@ Section: libdevel Depends: lib32asound2 (= ${binary:Version}), libasound2-dev (= ${binary:Version}), ${bidev:depends} Suggests: libasound2-doc -Description: ALSA library development files (32 bit) +Description: shared library for ALSA applications. Development files (32 bit) This package contains files required for developing software that makes use of lib32asound2, the ALSA library. . diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/libasound2.install /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/libasound2.install --- alsa-lib-1.0.17a/debian/libasound2.install 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/libasound2.install 2009-02-01 14:12:10.000000000 +0000 @@ -1,4 +1,5 @@ debian/tmp/usr/lib/libasound.so.2.0.0 debian/tmp/usr/lib/libasound.so.2 +debian/tmp/usr/lib/alsa-lib/smixer/*.so debian/tmp/usr/share/alsa debian/user-must-execute-asoundconf-set-default-card.update-notifier usr/share/alsa diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/add-maintainer-mode.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/add-maintainer-mode.patch --- alsa-lib-1.0.17a/debian/patches/add-maintainer-mode.patch 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/patches/add-maintainer-mode.patch 2009-02-01 14:12:10.000000000 +0000 @@ -1,8 +1,8 @@ #add-maintainer-mode.patch by Loic Minier -Index: alsa-lib-1.0.17/configure.in +Index: alsa-lib-1.0.18/configure.in =================================================================== ---- alsa-lib-1.0.17.orig/configure.in 2008-07-14 10:57:56.000000000 +0200 -+++ alsa-lib-1.0.17/configure.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/configure.in 2008-10-29 13:42:10.000000000 +0100 ++++ alsa-lib-1.0.18/configure.in 2008-11-02 14:58:42.000000000 +0100 @@ -16,6 +16,8 @@ AC_PREFIX_DEFAULT(/usr) diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/add_softvol_for_cmi8788.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/add_softvol_for_cmi8788.patch --- alsa-lib-1.0.17a/debian/patches/add_softvol_for_cmi8788.patch 1970-01-01 01:00:00.000000000 +0100 +++ alsa-lib-1.0.18/debian/patches/add_softvol_for_cmi8788.patch 2009-02-01 14:12:10.000000000 +0000 @@ -0,0 +1,31 @@ +Index: alsa-lib-1.0.18/src/conf/cards/CMI8788.conf +=================================================================== +--- alsa-lib-1.0.18.orig/src/conf/cards/CMI8788.conf 2009-01-19 23:41:42.000000000 -0500 ++++ alsa-lib-1.0.18/src/conf/cards/CMI8788.conf 2009-01-19 23:42:16.000000000 -0500 +@@ -13,7 +13,7 @@ + card $CARD + } + +-# default with dmix & dsnoop ++# default with dmix+softvol & dsnoop + CMI8788.pcm.default { + @args [ CARD ] + @args.CARD { +@@ -23,8 +23,15 @@ + playback.pcm { + type plug + slave.pcm { +- @func concat +- strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] ++ type softvol ++ slave.pcm { ++ @func concat ++ strings [ "dmix:" $CARD ",FORMAT=S32_LE" ] ++ } ++ control { ++ name "PCM Playback Volume" ++ card $CARD ++ } + } + } + capture.pcm { diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/configure_cross_compile.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/configure_cross_compile.patch --- alsa-lib-1.0.17a/debian/patches/configure_cross_compile.patch 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/patches/configure_cross_compile.patch 2009-02-01 14:12:10.000000000 +0000 @@ -1,9 +1,9 @@ # configure_cross_compile.patch by Loic Minier # Remove check that the compiler produces executables we can run. -Index: alsa-lib-1.0.17/configure +Index: alsa-lib-1.0.18/configure =================================================================== ---- alsa-lib-1.0.17.orig/configure 2008-07-20 20:52:33.000000000 +0200 -+++ alsa-lib-1.0.17/configure 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/configure 2008-11-02 14:58:42.000000000 +0100 ++++ alsa-lib-1.0.18/configure 2008-11-02 14:58:42.000000000 +0100 @@ -3157,7 +3157,7 @@ echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/fix_alsa-config-patch_check.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/fix_alsa-config-patch_check.patch --- alsa-lib-1.0.17a/debian/patches/fix_alsa-config-patch_check.patch 1970-01-01 01:00:00.000000000 +0100 +++ alsa-lib-1.0.18/debian/patches/fix_alsa-config-patch_check.patch 2009-02-01 14:12:10.000000000 +0000 @@ -0,0 +1,13 @@ +Index: alsa-lib-1.0.18/src/conf.c +=================================================================== +--- alsa-lib-1.0.18.orig/src/conf.c 2009-01-14 18:42:04.000000000 -0500 ++++ alsa-lib-1.0.18/src/conf.c 2009-01-14 18:42:14.000000000 -0500 +@@ -2962,7 +2962,7 @@ + configs = cfgs; + if (!configs) { + configs = getenv(ALSA_CONFIG_PATH_VAR); +- if (!configs) ++ if (!configs || !*configs) + configs = ALSA_CONFIG_PATH_DEFAULT; + } + for (k = 0, c = configs; (l = strcspn(c, ": ")) > 0; ) { diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/fix_softvol_access.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/fix_softvol_access.patch --- alsa-lib-1.0.17a/debian/patches/fix_softvol_access.patch 1970-01-01 01:00:00.000000000 +0100 +++ alsa-lib-1.0.18/debian/patches/fix_softvol_access.patch 2009-02-01 14:12:10.000000000 +0000 @@ -0,0 +1,116 @@ +Index: alsa-lib-1.0.18/src/pcm/pcm_softvol.c +=================================================================== +--- alsa-lib-1.0.18.orig/src/pcm/pcm_softvol.c 2009-01-14 18:40:47.000000000 -0500 ++++ alsa-lib-1.0.18/src/pcm/pcm_softvol.c 2009-01-14 18:41:11.000000000 -0500 +@@ -399,6 +399,7 @@ + { + int err; + snd_pcm_softvol_t *svol = pcm->private_data; ++ snd_pcm_access_mask_t access_mask = { SND_PCM_ACCBIT_SHM }; + snd_pcm_format_mask_t format_mask = { + { + (1ULL << SND_PCM_FORMAT_S16_LE) | +@@ -412,6 +413,10 @@ + snd_pcm_format_mask_none(&format_mask); + snd_pcm_format_mask_set(&format_mask, svol->sformat); + } ++ err = _snd_pcm_hw_param_set_mask(params, SND_PCM_HW_PARAM_ACCESS, ++ &access_mask); ++ if (err < 0) ++ return err; + err = _snd_pcm_hw_param_set_mask(params, SND_PCM_HW_PARAM_FORMAT, + &format_mask); + if (err < 0) +@@ -429,7 +434,10 @@ + static int snd_pcm_softvol_hw_refine_sprepare(snd_pcm_t *pcm, snd_pcm_hw_params_t *sparams) + { + snd_pcm_softvol_t *svol = pcm->private_data; ++ snd_pcm_access_mask_t saccess_mask = { SND_PCM_ACCBIT_MMAP }; + _snd_pcm_hw_params_any(sparams); ++ _snd_pcm_hw_param_set_mask(sparams, SND_PCM_HW_PARAM_ACCESS, ++ &saccess_mask); + if (svol->sformat != SND_PCM_FORMAT_UNKNOWN) { + _snd_pcm_hw_params_set_format(sparams, svol->sformat); + _snd_pcm_hw_params_set_subformat(sparams, SND_PCM_SUBFORMAT_STD); +@@ -437,14 +445,45 @@ + return 0; + } + ++/* ++ * refine the access mask ++ */ ++static int check_access_mask(snd_pcm_hw_params_t *src, ++ snd_pcm_hw_params_t *dst) ++{ ++ const snd_pcm_access_mask_t *mask; ++ snd_pcm_access_mask_t smask; ++ ++ mask = snd_pcm_hw_param_get_mask(src, SND_PCM_HW_PARAM_ACCESS); ++ snd_mask_none(&smask); ++ if (snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_RW_INTERLEAVED) || ++ snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_MMAP_INTERLEAVED)) { ++ snd_pcm_access_mask_set(&smask, ++ SND_PCM_ACCESS_RW_INTERLEAVED); ++ snd_pcm_access_mask_set(&smask, ++ SND_PCM_ACCESS_MMAP_INTERLEAVED); ++ } ++ if (snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_RW_NONINTERLEAVED) || ++ snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_MMAP_NONINTERLEAVED)) { ++ snd_pcm_access_mask_set(&smask, ++ SND_PCM_ACCESS_RW_NONINTERLEAVED); ++ snd_pcm_access_mask_set(&smask, ++ SND_PCM_ACCESS_MMAP_NONINTERLEAVED); ++ } ++ if (snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_MMAP_COMPLEX)) ++ snd_pcm_access_mask_set(&smask, ++ SND_PCM_ACCESS_MMAP_COMPLEX); ++ ++ return _snd_pcm_hw_param_set_mask(dst, SND_PCM_HW_PARAM_ACCESS, &smask); ++} ++ + static int snd_pcm_softvol_hw_refine_schange(snd_pcm_t *pcm, + snd_pcm_hw_params_t *params, + snd_pcm_hw_params_t *sparams) + { + snd_pcm_softvol_t *svol = pcm->private_data; + int err; +- unsigned int links = (SND_PCM_HW_PARBIT_ACCESS | +- SND_PCM_HW_PARBIT_CHANNELS | ++ unsigned int links = (SND_PCM_HW_PARBIT_CHANNELS | + SND_PCM_HW_PARBIT_RATE | + SND_PCM_HW_PARBIT_PERIODS | + SND_PCM_HW_PARBIT_PERIOD_SIZE | +@@ -459,6 +498,11 @@ + err = _snd_pcm_hw_params_refine(sparams, links, params); + if (err < 0) + return err; ++ ++ err = check_access_mask(params, sparams); ++ if (err < 0) ++ return err; ++ + return 0; + } + +@@ -468,8 +512,7 @@ + { + snd_pcm_softvol_t *svol = pcm->private_data; + int err; +- unsigned int links = (SND_PCM_HW_PARBIT_ACCESS | +- SND_PCM_HW_PARBIT_CHANNELS | ++ unsigned int links = (SND_PCM_HW_PARBIT_CHANNELS | + SND_PCM_HW_PARBIT_RATE | + SND_PCM_HW_PARBIT_PERIODS | + SND_PCM_HW_PARBIT_PERIOD_SIZE | +@@ -484,6 +527,11 @@ + err = _snd_pcm_hw_params_refine(params, links, sparams); + if (err < 0) + return err; ++ ++ err = check_access_mask(sparams, params); ++ if (err < 0) ++ return err; ++ + return 0; + } + diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/fix_softvol_outside_plug.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/fix_softvol_outside_plug.patch --- alsa-lib-1.0.17a/debian/patches/fix_softvol_outside_plug.patch 1970-01-01 01:00:00.000000000 +0100 +++ alsa-lib-1.0.18/debian/patches/fix_softvol_outside_plug.patch 2009-02-01 14:12:10.000000000 +0000 @@ -0,0 +1,28 @@ +Index: alsa-lib-1.0.18/src/conf/cards/PC-Speaker.conf +=================================================================== +--- alsa-lib-1.0.18.orig/src/conf/cards/PC-Speaker.conf 2009-01-14 18:39:25.000000000 -0500 ++++ alsa-lib-1.0.18/src/conf/cards/PC-Speaker.conf 2009-01-14 18:40:02.000000000 -0500 +@@ -30,15 +30,15 @@ + } + type asym + playback.pcm { +- type softvol +- control { +- name "Master Playback Volume" +- card $CARD +- } +- min_dB -10.0 +- max_dB 20.0 ++ type plug + slave.pcm { +- type plug ++ type softvol ++ control { ++ name "Master Playback Volume" ++ card $CARD ++ } ++ min_dB -10.0 ++ max_dB 20.0 + slave.pcm { + @func concat + strings [ "dmix:" $CARD ] diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/fix_uninitialised_type-conf.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/fix_uninitialised_type-conf.patch --- alsa-lib-1.0.17a/debian/patches/fix_uninitialised_type-conf.patch 1970-01-01 01:00:00.000000000 +0100 +++ alsa-lib-1.0.18/debian/patches/fix_uninitialised_type-conf.patch 2009-02-01 14:12:10.000000000 +0000 @@ -0,0 +1,13 @@ +Index: alsa-lib-1.0.18/src/pcm/pcm_meter.c +=================================================================== +--- alsa-lib-1.0.18.orig/src/pcm/pcm_meter.c 2009-01-14 18:37:52.000000000 -0500 ++++ alsa-lib-1.0.18/src/pcm/pcm_meter.c 2009-01-14 18:38:11.000000000 -0500 +@@ -603,7 +603,7 @@ + snd_config_iterator_t i, next; + const char *id; + const char *lib = NULL, *open_name = NULL, *str = NULL; +- snd_config_t *c, *type_conf; ++ snd_config_t *c, *type_conf = NULL; + int (*open_func)(snd_pcm_t *, const char *, + snd_config_t *, snd_config_t *) = NULL; + snd_pcm_meter_t *meter = pcm->private_data; diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/fix_vol_switch_updates.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/fix_vol_switch_updates.patch --- alsa-lib-1.0.17a/debian/patches/fix_vol_switch_updates.patch 1970-01-01 01:00:00.000000000 +0100 +++ alsa-lib-1.0.18/debian/patches/fix_vol_switch_updates.patch 2009-02-01 14:12:10.000000000 +0000 @@ -0,0 +1,94 @@ +Index: alsa-lib-1.0.18/src/mixer/simple_none.c +=================================================================== +--- alsa-lib-1.0.18.orig/src/mixer/simple_none.c 2009-01-14 18:33:54.000000000 -0500 ++++ alsa-lib-1.0.18/src/mixer/simple_none.c 2009-01-14 18:34:39.000000000 -0500 +@@ -809,14 +809,14 @@ + if (caps & (SM_CAP_GSWITCH|SM_CAP_CSWITCH)) + caps |= SM_CAP_CSWITCH_JOIN; + if (caps & (SM_CAP_GVOLUME|SM_CAP_CVOLUME)) +- caps |= SM_CAP_PVOLUME_JOIN; ++ caps |= SM_CAP_CVOLUME_JOIN; + if (pchannels > 1 || cchannels > 1) { + if (simple->ctls[CTL_SINGLE].elem && + simple->ctls[CTL_SINGLE].values > 1) { + if (caps & SM_CAP_GSWITCH) +- caps &= ~SM_CAP_PSWITCH_JOIN; ++ caps &= ~(SM_CAP_PSWITCH_JOIN|SM_CAP_CSWITCH_JOIN); + else +- caps &= ~SM_CAP_PVOLUME_JOIN; ++ caps &= ~(SM_CAP_PVOLUME_JOIN|SM_CAP_CVOLUME_JOIN); + } + if (simple->ctls[CTL_GLOBAL_ROUTE].elem || + (simple->ctls[CTL_GLOBAL_SWITCH].elem && +@@ -946,6 +946,8 @@ + static int _snd_mixer_selem_set_volume(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); ++ if (s->selem.caps & SM_CAP_GVOLUME) ++ dir = SM_PLAY; + if ((unsigned int) channel >= s->str[dir].channels) + return 0; + if (value < s->str[dir].min || value > s->str[dir].max) +@@ -1064,6 +1066,8 @@ + snd_mixer_selem_channel_id_t channel, long *value) + { + selem_none_t *s = snd_mixer_elem_get_private(elem); ++ if (s->selem.caps & SM_CAP_GVOLUME) ++ dir = SM_PLAY; + if ((unsigned int) channel >= s->str[dir].channels) + return -EINVAL; + *value = s->str[dir].vol[channel]; +@@ -1158,6 +1162,8 @@ + selem_none_t *s = snd_mixer_elem_get_private(elem); + selem_ctl_t *c; + ++ if (s->selem.caps & SM_CAP_GVOLUME) ++ dir = SM_PLAY; + c = get_selem_ctl(s, dir); + if (! c) + return -EINVAL; +@@ -1199,6 +1205,8 @@ + int err; + long volume, db_gain; + ++ if (s->selem.caps & SM_CAP_GVOLUME) ++ dir = SM_PLAY; + c = get_selem_ctl(s, dir); + if (! c) + return -EINVAL; +@@ -1216,6 +1224,8 @@ + snd_mixer_selem_channel_id_t channel, int *value) + { + selem_none_t *s = snd_mixer_elem_get_private(elem); ++ if (s->selem.caps & SM_CAP_GSWITCH) ++ dir = SM_PLAY; + if ((unsigned int) channel >= s->str[dir].channels) + return -EINVAL; + *value = !!(s->str[dir].sw & (1 << channel)); +@@ -1240,6 +1250,8 @@ + selem_none_t *s = snd_mixer_elem_get_private(elem); + selem_ctl_t *c; + ++ if (s->selem.caps & SM_CAP_GVOLUME) ++ dir = SM_PLAY; + c = get_selem_ctl(s, dir); + if (! c) + return -EINVAL; +@@ -1255,6 +1267,8 @@ + long value; + int err; + ++ if (s->selem.caps & SM_CAP_GVOLUME) ++ dir = SM_PLAY; + c = get_selem_ctl(s, dir); + if (! c) + return -EINVAL; +@@ -1269,6 +1283,8 @@ + { + int changed; + selem_none_t *s = snd_mixer_elem_get_private(elem); ++ if (s->selem.caps & SM_CAP_GSWITCH) ++ dir = SM_PLAY; + if (dir == SM_PLAY) { + if (! (s->selem.caps & (SM_CAP_GSWITCH|SM_CAP_PSWITCH))) + return -EINVAL; diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/from_git_dont_call_simple_mixer_interface_legacy.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/from_git_dont_call_simple_mixer_interface_legacy.patch --- alsa-lib-1.0.17a/debian/patches/from_git_dont_call_simple_mixer_interface_legacy.patch 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/patches/from_git_dont_call_simple_mixer_interface_legacy.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -commit 8d6838450a3c91e4a1fa8a7bf98fb1d9c39b131e -Author: Lennart Poettering -Date: Sun Aug 31 03:42:56 2008 +0200 - - alsa-lib: Don't call the simple mixer interface "legacy" - - The simpler mixer interface is not legacy, so the header file shouldn't claim - otherwise. - - Fixes bug#3569 - - From: Lennart Poettering - Signed-off-by: Jaroslav Kysela - -diff --git a/include/mixer.h b/include/mixer.h -index 59deb9f..df92164 100644 ---- a/include/mixer.h -+++ b/include/mixer.h -@@ -88,7 +88,7 @@ typedef int (*snd_mixer_event_t)(snd_mixer_class_t *class_, unsigned int mask, - - /** Mixer element type */ - typedef enum _snd_mixer_elem_type { -- /* Simple (legacy) mixer elements */ -+ /* Simple mixer elements */ - SND_MIXER_ELEM_SIMPLE, - SND_MIXER_ELEM_LAST = SND_MIXER_ELEM_SIMPLE - } snd_mixer_elem_type_t; -@@ -166,7 +166,7 @@ int snd_mixer_class_set_compare(snd_mixer_class_t *class_, snd_mixer_compare_t c - * \{ - */ - --/* Simple (legacy) mixer elements API */ -+/* Simple mixer elements API */ - - /** Mixer simple element channel identifier */ - typedef enum _snd_mixer_selem_channel_id { diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/from_git_fix_async_callback_error_messages.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/from_git_fix_async_callback_error_messages.patch --- alsa-lib-1.0.17a/debian/patches/from_git_fix_async_callback_error_messages.patch 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/patches/from_git_fix_async_callback_error_messages.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,43 +0,0 @@ -commit 16cc295a3c076ceb58fd9dd598c71e4aaa0800ac -Author: Jaroslav Kysela -Date: Mon Sep 15 15:14:58 2008 +0200 - - test/pcm: Fix error messages in async callback and add snd_pcm_start() condition - - Signed-off-by: Jaroslav Kysela - -diff --git a/test/pcm.c b/test/pcm.c -index ecd0afa..ee27422 100644 ---- a/test/pcm.c -+++ b/test/pcm.c -@@ -385,11 +385,11 @@ static void async_callback(snd_async_handler_t *ahandler) - generate_sine(areas, 0, period_size, &data->phase); - err = snd_pcm_writei(handle, samples, period_size); - if (err < 0) { -- printf("Initial write error: %s\n", snd_strerror(err)); -+ printf("Write error: %s\n", snd_strerror(err)); - exit(EXIT_FAILURE); - } - if (err != period_size) { -- printf("Initial write error: written %i expected %li\n", err, period_size); -+ printf("Write error: written %i expected %li\n", err, period_size); - exit(EXIT_FAILURE); - } - avail = snd_pcm_avail_update(handle); -@@ -424,10 +424,12 @@ static int async_loop(snd_pcm_t *handle, - exit(EXIT_FAILURE); - } - } -- err = snd_pcm_start(handle); -- if (err < 0) { -- printf("Start error: %s\n", snd_strerror(err)); -- exit(EXIT_FAILURE); -+ if (snd_pcm_state(handle) == SND_PCM_STATE_PREPARED) { -+ err = snd_pcm_start(handle); -+ if (err < 0) { -+ printf("Start error: %s\n", snd_strerror(err)); -+ exit(EXIT_FAILURE); -+ } - } - - /* because all other work is done in the signal handler, diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/from_git_fix_snd_pcm_read_comment.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/from_git_fix_snd_pcm_read_comment.patch --- alsa-lib-1.0.17a/debian/patches/from_git_fix_snd_pcm_read_comment.patch 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/patches/from_git_fix_snd_pcm_read_comment.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,31 +0,0 @@ -commit 1dd1ba94a3deced59f3a699583242b641b4d3771 -Author: Jaroslav Kysela -Date: Tue Sep 9 19:56:17 2008 +0200 - - Fix comment typos for snd_pcm_read[in]() - - From: William Estrada - Signed-off-by: Jaroslav Kysela - -diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c -index a0cc2e0..59e433f 100644 ---- a/src/pcm/pcm.c -+++ b/src/pcm/pcm.c -@@ -1279,7 +1279,7 @@ snd_pcm_sframes_t snd_pcm_writen(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t - * \brief Read interleaved frames from a PCM - * \param pcm PCM handle - * \param buffer frames containing buffer -- * \param size frames to be written -+ * \param size frames to be read - * \return a positive number of frames actually read otherwise a - * negative error code - * \retval -EBADFD PCM is not in the right state (#SND_PCM_STATE_PREPARED or #SND_PCM_STATE_RUNNING) -@@ -1311,7 +1311,7 @@ snd_pcm_sframes_t snd_pcm_readi(snd_pcm_t *pcm, void *buffer, snd_pcm_uframes_t - * \brief Read non interleaved frames to a PCM - * \param pcm PCM handle - * \param bufs frames containing buffers (one for each channel) -- * \param size frames to be written -+ * \param size frames to be read - * \return a positive number of frames actually read otherwise a - * negative error code - * \retval -EBADFD PCM is not in the right state (#SND_PCM_STATE_PREPARED or #SND_PCM_STATE_RUNNING) diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/from_git_Reword_snd_pcm_delay_doxygen_doc.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/from_git_Reword_snd_pcm_delay_doxygen_doc.patch --- alsa-lib-1.0.17a/debian/patches/from_git_Reword_snd_pcm_delay_doxygen_doc.patch 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/patches/from_git_Reword_snd_pcm_delay_doxygen_doc.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,52 +0,0 @@ -commit bd7b73a621a74de863f6d6f79af4131144e4f9fe -Author: Lennart Poettering -Date: Sun Aug 31 03:42:20 2008 +0200 - - alsa-lib: Reword doxygen doc for snd_pcm_delay() - - snd_pcm_delay() is for synchronization purposes, it returns the overall latency - of the stream, not just the latency induced by the hardware playback buffer. - The documentation is a bit misleading about this fact, and some people already - misunderstood it. So let's reword this to make the explanation clearer and - explicit. - - This is a result of the discussions of the thread this mail belongs to: - - http://mailman.alsa-project.org/pipermail/alsa-devel/2008-June/008456.html - - From: Lennart Poettering - Signed-off-by: Jaroslav Kysela - -diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c -index ee2300e..ae89795 100644 ---- a/src/pcm/pcm.c -+++ b/src/pcm/pcm.c -@@ -939,11 +939,23 @@ int snd_pcm_hwsync(snd_pcm_t *pcm) - * \param delayp Returned delay in frames - * \return 0 on success otherwise a negative error code - * -- * Delay is distance between current application frame position and -- * sound frame position. -- * It's positive and less than buffer size in normal situation, -- * negative on playback underrun and greater than buffer size on -- * capture overrun. -+ * For playback the delay is defined as the time that a frame that is written -+ * to the PCM stream shortly after this call will take to be actually -+ * audible. It is as such the overall latency from the write call to the final -+ * DAC. -+ * -+ * For capture the delay is defined as the time that a frame that was -+ * digitized by the audio device takes until it can be read from the PCM -+ * stream shortly after this call returns. It is as such the overall latency -+ * from the initial ADC to the read call. -+ * -+ * Please note that hence in case of a playback underrun this value will not -+ * necessarily got down to 0. -+ * -+ * If the application is interested in the fill level of the playback buffer -+ * of the device, it should use snd_pcm_avail_update(). The -+ * value returned by that call is not directly related to the delay, since the -+ * latter might include some additional, fixed latencies the former does not. - * - * Note this function does not update the actual r/w pointer - * for applications. The function #snd_pcm_avail_update() diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/no_hardcode_alsa_conf_file.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/no_hardcode_alsa_conf_file.patch --- alsa-lib-1.0.17a/debian/patches/no_hardcode_alsa_conf_file.patch 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/patches/no_hardcode_alsa_conf_file.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -diff -urN alsa-lib-1.0.17a/src/conf.c alsa-lib-1.0.17a.new/src/conf.c ---- alsa-lib-1.0.17a/src/conf.c 2008-08-15 21:28:55.000000000 +1000 -+++ alsa-lib-1.0.17a.new/src/conf.c 2008-09-30 13:19:56.000000000 +1000 -@@ -2607,7 +2607,9 @@ - #define ALSA_CONFIG_PATH_VAR "ALSA_CONFIG_PATH" - - /** The name of the default files used by #snd_config_update. */ --#define ALSA_CONFIG_PATH_DEFAULT ALSA_CONFIG_DIR "/alsa.conf" -+#ifndef ALSA_CONFIG_PATH_DEFAULT -+ #define ALSA_CONFIG_PATH_DEFAULT ALSA_CONFIG_DIR "/alsa.conf" -+#endif - - /** - * \ingroup Config diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/relibtoolise.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/relibtoolise.patch --- alsa-lib-1.0.17a/debian/patches/relibtoolise.patch 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/patches/relibtoolise.patch 2009-02-01 14:12:10.000000000 +0000 @@ -11,10 +11,10 @@ # and diffed against orig source. # Elimar Riesebieter Sun, 20 Jul 2008 20:59:08 +0200 -Index: alsa-lib-1.0.17/Makefile.in +Index: alsa-lib-1.0.18/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/Makefile.in 2008-07-14 11:14:23.000000000 +0200 -+++ alsa-lib-1.0.17/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -478,10 +478,10 @@ rpm: dist -Index: alsa-lib-1.0.17/aclocal.m4 +Index: alsa-lib-1.0.18/aclocal.m4 =================================================================== ---- alsa-lib-1.0.17.orig/aclocal.m4 2008-07-14 11:14:16.000000000 +0200 -+++ alsa-lib-1.0.17/aclocal.m4 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/aclocal.m4 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/aclocal.m4 2008-11-02 14:58:42.000000000 +0100 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.9.6 -*- Autoconf -*- +# generated automatically by aclocal 1.10.1 -*- Autoconf -*- @@ -2534,10 +2534,10 @@ # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. -Index: alsa-lib-1.0.17/alsalisp/Makefile.in +Index: alsa-lib-1.0.18/alsalisp/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/alsalisp/Makefile.in 2008-07-14 11:14:20.000000000 +0200 -+++ alsa-lib-1.0.17/alsalisp/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/alsalisp/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/alsalisp/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -2954,10 +2954,10 @@ all: alsalisp -Index: alsa-lib-1.0.17/aserver/Makefile.in +Index: alsa-lib-1.0.18/aserver/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/aserver/Makefile.in 2008-07-14 11:14:20.000000000 +0200 -+++ alsa-lib-1.0.17/aserver/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/aserver/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/aserver/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -3402,10 +3402,10 @@ all: aserver -Index: alsa-lib-1.0.17/configure +Index: alsa-lib-1.0.18/configure =================================================================== ---- alsa-lib-1.0.17.orig/configure 2008-07-14 11:14:24.000000000 +0200 -+++ alsa-lib-1.0.17/configure 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/configure 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/configure 2008-11-02 14:58:42.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. @@ -10381,10 +10381,10 @@ dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ -Index: alsa-lib-1.0.17/doc/Makefile.in +Index: alsa-lib-1.0.18/doc/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/doc/Makefile.in 2008-07-14 11:14:20.000000000 +0200 -+++ alsa-lib-1.0.17/doc/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/doc/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/doc/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -10796,10 +10796,10 @@ doc: -Index: alsa-lib-1.0.17/doc/pictures/Makefile.in +Index: alsa-lib-1.0.18/doc/pictures/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/doc/pictures/Makefile.in 2008-07-14 11:14:20.000000000 +0200 -+++ alsa-lib-1.0.17/doc/pictures/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/doc/pictures/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/doc/pictures/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -11115,10 +11115,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/include/Makefile.in +Index: alsa-lib-1.0.18/include/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/include/Makefile.in 2008-07-14 11:14:21.000000000 +0200 -+++ alsa-lib-1.0.17/include/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/include/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/include/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -11562,10 +11562,10 @@ alsa: -Index: alsa-lib-1.0.17/include/sound/Makefile.in +Index: alsa-lib-1.0.18/include/sound/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/include/sound/Makefile.in 2008-07-14 11:14:21.000000000 +0200 -+++ alsa-lib-1.0.17/include/sound/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/include/sound/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/include/sound/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -11935,10 +11935,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/ltmain.sh +Index: alsa-lib-1.0.18/ltmain.sh =================================================================== ---- alsa-lib-1.0.17.orig/ltmain.sh 2006-11-25 12:04:27.000000000 +0100 -+++ alsa-lib-1.0.17/ltmain.sh 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/ltmain.sh 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/ltmain.sh 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. @@ -12596,10 +12596,10 @@ All other options (arguments beginning with \`-') are ignored. -Index: alsa-lib-1.0.17/modules/Makefile.in +Index: alsa-lib-1.0.18/modules/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/modules/Makefile.in 2008-07-14 11:14:21.000000000 +0200 -+++ alsa-lib-1.0.17/modules/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/modules/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/modules/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -13011,10 +13011,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/modules/mixer/Makefile.in +Index: alsa-lib-1.0.18/modules/mixer/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/modules/mixer/Makefile.in 2008-07-14 11:14:21.000000000 +0200 -+++ alsa-lib-1.0.17/modules/mixer/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/modules/mixer/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/modules/mixer/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -13426,10 +13426,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/modules/mixer/simple/Makefile.in +Index: alsa-lib-1.0.18/modules/mixer/simple/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/modules/mixer/simple/Makefile.in 2008-07-14 11:14:21.000000000 +0200 -+++ alsa-lib-1.0.17/modules/mixer/simple/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/modules/mixer/simple/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/modules/mixer/simple/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -13931,10 +13931,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/src/Makefile.in +Index: alsa-lib-1.0.18/src/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/Makefile.in 2008-07-14 11:14:21.000000000 +0200 -+++ alsa-lib-1.0.17/src/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -14467,10 +14467,10 @@ control/libcontrol.la: -Index: alsa-lib-1.0.17/src/alisp/Makefile.in +Index: alsa-lib-1.0.18/src/alisp/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/alisp/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/alisp/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/alisp/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/alisp/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -14886,10 +14886,10 @@ all: libalisp.la -Index: alsa-lib-1.0.17/src/compat/Makefile.in +Index: alsa-lib-1.0.18/src/compat/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/compat/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/compat/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/compat/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/compat/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -15306,10 +15306,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/src/conf/Makefile.in +Index: alsa-lib-1.0.18/src/conf/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/conf/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/conf/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/conf/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/conf/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -15742,10 +15742,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/src/conf/cards/Makefile.in +Index: alsa-lib-1.0.18/src/conf/cards/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/conf/cards/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/conf/cards/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/conf/cards/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/conf/cards/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -16086,10 +16086,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/src/conf/pcm/Makefile.in +Index: alsa-lib-1.0.18/src/conf/pcm/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/conf/pcm/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/conf/pcm/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/conf/pcm/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/conf/pcm/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -16418,10 +16418,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/src/control/Makefile.in +Index: alsa-lib-1.0.18/src/control/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/control/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/control/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/control/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/control/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -16837,10 +16837,10 @@ all: libcontrol.la -Index: alsa-lib-1.0.17/src/hwdep/Makefile.in +Index: alsa-lib-1.0.18/src/hwdep/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/hwdep/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/hwdep/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/hwdep/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/hwdep/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -17256,10 +17256,10 @@ all: libhwdep.la # Tell versions [3.59,3.63) of GNU make to not export all variables. -Index: alsa-lib-1.0.17/src/mixer/Makefile.in +Index: alsa-lib-1.0.18/src/mixer/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/mixer/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/mixer/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/mixer/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/mixer/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -17675,10 +17675,10 @@ all: libmixer.la -Index: alsa-lib-1.0.17/src/pcm/Makefile.in +Index: alsa-lib-1.0.18/src/pcm/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/pcm/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/pcm/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/pcm/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/pcm/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -18151,10 +18151,10 @@ all: libpcm.la -Index: alsa-lib-1.0.17/src/pcm/scopes/Makefile.in +Index: alsa-lib-1.0.18/src/pcm/scopes/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/pcm/scopes/Makefile.in 2008-07-14 11:14:22.000000000 +0200 -+++ alsa-lib-1.0.17/src/pcm/scopes/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/pcm/scopes/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/pcm/scopes/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -18612,10 +18612,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/src/rawmidi/Makefile.in +Index: alsa-lib-1.0.18/src/rawmidi/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/rawmidi/Makefile.in 2008-07-14 11:14:23.000000000 +0200 -+++ alsa-lib-1.0.17/src/rawmidi/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/rawmidi/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/rawmidi/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -19031,10 +19031,10 @@ all: librawmidi.la -Index: alsa-lib-1.0.17/src/seq/Makefile.in +Index: alsa-lib-1.0.18/src/seq/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/seq/Makefile.in 2008-07-14 11:14:23.000000000 +0200 -+++ alsa-lib-1.0.17/src/seq/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/seq/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/seq/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -19450,10 +19450,10 @@ all: libseq.la -Index: alsa-lib-1.0.17/src/timer/Makefile.in +Index: alsa-lib-1.0.18/src/timer/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/src/timer/Makefile.in 2008-07-14 11:14:23.000000000 +0200 -+++ alsa-lib-1.0.17/src/timer/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/src/timer/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/src/timer/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -19869,10 +19869,10 @@ all: libtimer.la # Tell versions [3.59,3.63) of GNU make to not export all variables. -Index: alsa-lib-1.0.17/test/Makefile.in +Index: alsa-lib-1.0.18/test/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/test/Makefile.in 2008-07-14 11:14:23.000000000 +0200 -+++ alsa-lib-1.0.17/test/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/test/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/test/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. @@ -20337,10 +20337,10 @@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. -Index: alsa-lib-1.0.17/utils/Makefile.in +Index: alsa-lib-1.0.18/utils/Makefile.in =================================================================== ---- alsa-lib-1.0.17.orig/utils/Makefile.in 2008-07-14 11:14:23.000000000 +0200 -+++ alsa-lib-1.0.17/utils/Makefile.in 2008-07-20 20:52:33.000000000 +0200 +--- alsa-lib-1.0.18.orig/utils/Makefile.in 2008-11-02 14:58:32.000000000 +0100 ++++ alsa-lib-1.0.18/utils/Makefile.in 2008-11-02 14:58:42.000000000 +0100 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/series /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/series --- alsa-lib-1.0.17a/debian/patches/series 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/patches/series 2009-02-01 14:12:10.000000000 +0000 @@ -1,9 +1,12 @@ relibtoolise.patch add-maintainer-mode.patch configure_cross_compile.patch -from_git_Reword_snd_pcm_delay_doxygen_doc.patch -from_git_dont_call_simple_mixer_interface_legacy.patch -from_git_fix_snd_pcm_read_comment.patch -from_git_fix_async_callback_error_messages.patch pulseaudio_configuration.patch bluetooth_configuration.patch +fix_vol_switch_updates.patch +use_linear_plug_for_ice1724.patch +fix_uninitialised_type-conf.patch +fix_softvol_outside_plug.patch +fix_softvol_access.patch +fix_alsa-config-patch_check.patch +add_softvol_for_cmi8788.patch diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/patches/use_linear_plug_for_ice1724.patch /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/patches/use_linear_plug_for_ice1724.patch --- alsa-lib-1.0.17a/debian/patches/use_linear_plug_for_ice1724.patch 1970-01-01 01:00:00.000000000 +0100 +++ alsa-lib-1.0.18/debian/patches/use_linear_plug_for_ice1724.patch 2009-02-01 14:12:10.000000000 +0000 @@ -0,0 +1,102 @@ +Index: alsa-lib-1.0.18/src/conf/cards/Aureon51.conf +=================================================================== +--- alsa-lib-1.0.18.orig/src/conf/cards/Aureon51.conf 2009-01-14 18:36:49.000000000 -0500 ++++ alsa-lib-1.0.18/src/conf/cards/Aureon51.conf 2009-01-14 18:37:05.000000000 -0500 +@@ -121,6 +121,8 @@ + } + type asym + playback.pcm { ++ type linear ++ slave.pcm { + type hooks + slave.pcm { + type hw +@@ -147,8 +149,12 @@ + } + ] + } ++ } ++ slave.format S32_LE + } + capture.pcm { ++ type linear ++ slave.pcm { + type hooks + slave.pcm { + type hw +@@ -167,5 +173,7 @@ + } + ] + } ++ } ++ slave.format S32_LE + } + } +Index: alsa-lib-1.0.18/src/conf/cards/Aureon71.conf +=================================================================== +--- alsa-lib-1.0.18.orig/src/conf/cards/Aureon71.conf 2009-01-14 18:36:49.000000000 -0500 ++++ alsa-lib-1.0.18/src/conf/cards/Aureon71.conf 2009-01-14 18:37:05.000000000 -0500 +@@ -132,6 +132,8 @@ + } + type asym + playback.pcm { ++ type linear ++ slave.pcm { + type hooks + slave.pcm { + type hw +@@ -158,8 +160,12 @@ + } + ] + } ++ } ++ slave.format S32_LE + } + capture.pcm { ++ type linear ++ slave.pcm { + type hooks + slave.pcm { + type hw +@@ -178,5 +184,7 @@ + } + ] + } ++ } ++ slave.format S32_LE + } + } +Index: alsa-lib-1.0.18/src/conf/cards/ICE1724.conf +=================================================================== +--- alsa-lib-1.0.18.orig/src/conf/cards/ICE1724.conf 2009-01-14 18:36:49.000000000 -0500 ++++ alsa-lib-1.0.18/src/conf/cards/ICE1724.conf 2009-01-14 18:37:05.000000000 -0500 +@@ -166,6 +166,8 @@ + } + type asym + playback.pcm { ++ type linear ++ slave.pcm { + type hooks + slave.pcm { + type hw +@@ -192,8 +194,12 @@ + } + ] + } ++ } ++ slave.format S32_LE + } + capture.pcm { ++ type linear ++ slave.pcm { + type hooks + slave.pcm { + type hw +@@ -212,5 +218,7 @@ + } + ] + } ++ } ++ slave.format S32_LE + } + } diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/debian/rules /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/debian/rules --- alsa-lib-1.0.17a/debian/rules 2009-02-01 14:12:09.000000000 +0000 +++ alsa-lib-1.0.18/debian/rules 2009-02-01 14:12:10.000000000 +0000 @@ -111,10 +111,13 @@ ifneq (,$(build_biarch_stamp)) rm -rf debian/bitmp $(MAKE) -C bibuild/src install DESTDIR=$(CURDIR)/debian/bitmp - mkdir -p debian/lib$(bi)asound2/$(bilibdir) + $(MAKE) -C bibuild/modules install DESTDIR=$(CURDIR)/debian/bitmp + mkdir -p debian/lib$(bi)asound2/$(bilibdir)/alsa-lib/smixer/ cp -a debian/bitmp/usr/lib/libasound.so.* \ debian/lib$(bi)asound2/$(bilibdir)/ - mkdir -p debian/lib$(bi)asound2-dev/$(bilibdir) + cp -a debian/bitmp/$(bilibdir)/alsa-lib/smixer/*.so \ + debian/lib$(bi)asound2/$(bilibdir)/alsa-lib/smixer/ + mkdir -p debian/lib$(bi)asound2-dev/$(bilibdir)/alsa-lib/smixer # mkdir -p debian/lib$(bi)asound2-dev/$(bilibdir)/pkgconfig cp -a \ debian/bitmp/usr/lib/libasound.so \ @@ -158,9 +161,9 @@ dh_fixperms -i binary-arch: build-arch-stamp install-arch - dh_makeshlibs -plibasound2 -V'libasound2 (>> 1.0.17)' + dh_makeshlibs -plibasound2 -V'libasound2 (>> 1.0.18)' --exclude=usr/lib/alsa-lib/smixer ifneq (,$(build_biarch_stamp)) - dh_makeshlibs -plib$(bi)asound2 -V'lib$(bi)asound2 (>> 1.0.17)' + dh_makeshlibs -plib$(bi)asound2 -V'lib$(bi)asound2 (>> 1.0.18)' --exclude=usr/lib$(bi)/alsa-lib/smixer endif dh_installdeb -s diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/include/mixer.h /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/include/mixer.h --- alsa-lib-1.0.17a/include/mixer.h 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/include/mixer.h 2008-10-29 12:42:10.000000000 +0000 @@ -88,7 +88,7 @@ /** Mixer element type */ typedef enum _snd_mixer_elem_type { - /* Simple (legacy) mixer elements */ + /* Simple mixer elements */ SND_MIXER_ELEM_SIMPLE, SND_MIXER_ELEM_LAST = SND_MIXER_ELEM_SIMPLE } snd_mixer_elem_type_t; @@ -166,7 +166,7 @@ * \{ */ -/* Simple (legacy) mixer elements API */ +/* Simple mixer elements API */ /** Mixer simple element channel identifier */ typedef enum _snd_mixer_selem_channel_id { diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/include/pcm.h /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/include/pcm.h --- alsa-lib-1.0.17a/include/pcm.h 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/include/pcm.h 2008-10-29 12:42:10.000000000 +0000 @@ -440,7 +440,9 @@ int snd_pcm_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *delayp); int snd_pcm_resume(snd_pcm_t *pcm); int snd_pcm_htimestamp(snd_pcm_t *pcm, snd_pcm_uframes_t *avail, snd_htimestamp_t *tstamp); +snd_pcm_sframes_t snd_pcm_avail(snd_pcm_t *pcm); snd_pcm_sframes_t snd_pcm_avail_update(snd_pcm_t *pcm); +int snd_pcm_avail_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *availp, snd_pcm_sframes_t *delayp); snd_pcm_sframes_t snd_pcm_rewindable(snd_pcm_t *pcm); snd_pcm_sframes_t snd_pcm_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t frames); snd_pcm_sframes_t snd_pcm_forwardable(snd_pcm_t *pcm); @@ -454,6 +456,8 @@ int snd_pcm_link(snd_pcm_t *pcm1, snd_pcm_t *pcm2); int snd_pcm_unlink(snd_pcm_t *pcm); +//int snd_pcm_mixer_element(snd_pcm_t *pcm, snd_mixer_t *mixer, snd_mixer_elem_t **elem); + /* * application helpers - these functions are implemented on top * of the basic API diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/include/sound/asound.h /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/include/sound/asound.h --- alsa-lib-1.0.17a/include/sound/asound.h 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/include/sound/asound.h 2008-10-29 12:42:10.000000000 +0000 @@ -725,7 +725,7 @@ * * ****************************************************************************/ -#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 5) +#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 6) struct sndrv_ctl_card_info { int card; /* card number */ @@ -736,8 +736,7 @@ unsigned char longname[80]; /* name + info text about soundcard */ unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */ unsigned char mixername[80]; /* visual mixer identification */ - unsigned char components[80]; /* card components / fine identification, delimited with one space (AC97 etc..) */ - unsigned char reserved[48]; /* reserved for future */ + unsigned char components[128]; /* card components / fine identification, delimited with one space (AC97 etc..) */ }; enum sndrv_ctl_elem_type { diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/include/version.h /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/include/version.h --- alsa-lib-1.0.17a/include/version.h 2008-08-15 12:36:27.000000000 +0100 +++ alsa-lib-1.0.18/include/version.h 2008-10-29 12:46:46.000000000 +0000 @@ -4,12 +4,12 @@ #define SND_LIB_MAJOR 1 /**< major number of library version */ #define SND_LIB_MINOR 0 /**< minor number of library version */ -#define SND_LIB_SUBMINOR 17 /**< subminor number of library version */ +#define SND_LIB_SUBMINOR 18 /**< subminor number of library version */ #define SND_LIB_EXTRAVER 1000000 /**< 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.17a" +#define SND_LIB_VERSION_STR "1.0.18" diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/libtool /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/libtool --- alsa-lib-1.0.17a/libtool 2008-08-15 12:36:23.000000000 +0100 +++ alsa-lib-1.0.18/libtool 2008-10-29 12:46:43.000000000 +0000 @@ -1,7 +1,7 @@ #! /bin/sh # libtoolT - Provide generalized library-building support services. -# Generated automatically by (GNU alsa-lib 1.0.17a) +# Generated automatically by (GNU alsa-lib 1.0.18) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/src/conf/cards/PS3.conf /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/src/conf/cards/PS3.conf --- alsa-lib-1.0.17a/src/conf/cards/PS3.conf 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/src/conf/cards/PS3.conf 2008-10-29 12:42:10.000000000 +0000 @@ -44,3 +44,42 @@ } } } + + + +PS3.pcm.iec958.0 { + @args [ CARD AES0 AES1 AES2 AES3 ] + @args.CARD { + type string + } + @args.AES0 { + type integer + } + @args.AES1 { + type integer + } + @args.AES2 { + type integer + } + @args.AES3 { + type integer + } + type hooks + slave.pcm { + type hw + card $CARD + } + hooks.0 { + type ctl_elems + hook_args [ + { + interface PCM + name "IEC958 Playback Default" + lock true + preserve true + optional true + value [ $AES0 $AES1 $AES2 $AES3 ] + } + ] + } +} diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/src/control/control_hw.c /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/src/control/control_hw.c --- alsa-lib-1.0.17a/src/control/control_hw.c 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/src/control/control_hw.c 2008-10-29 12:42:10.000000000 +0000 @@ -116,7 +116,7 @@ SYSERR("SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS failed"); return -errno; } - return subscribe; + return 0; } static int snd_ctl_hw_card_info(snd_ctl_t *handle, snd_ctl_card_info_t *info) @@ -324,7 +324,11 @@ ssize_t res = read(hw->fd, event, sizeof(*event)); if (res <= 0) return -errno; - assert(res == sizeof(*event)); + if (CHECK_SANITY(res != sizeof(*event))) { + SNDMSG("snd_ctl_hw_read: read size error (req:%d, got:%d)\n", + sizeof(*event), res); + return -EINVAL; + } return 1; } @@ -368,7 +372,10 @@ *handle = NULL; - assert(card >= 0 && card < 32); + if (CHECK_SANITY(card < 0 || card >= 32)) { + SNDMSG("Invalid card index %d", card); + return -EINVAL; + } sprintf(filename, SNDRV_FILE_CONTROL, card); if (mode & SND_CTL_READONLY) fmode = O_RDONLY; diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/src/control/namehint.c /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/src/control/namehint.c --- alsa-lib-1.0.17a/src/control/namehint.c 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/src/control/namehint.c 2008-10-29 12:42:10.000000000 +0000 @@ -84,10 +84,11 @@ { } -static int get_dev_name1(struct hint_list *list, char **res) +static int get_dev_name1(struct hint_list *list, char **res, int device, + int stream) { *res = NULL; - if (list->device < 0) + if (device < 0) return 0; switch (list->iface) { #ifdef BUILD_HWDEP @@ -95,7 +96,7 @@ { snd_hwdep_info_t *info; snd_hwdep_info_alloca(&info); - snd_hwdep_info_set_device(info, list->device); + snd_hwdep_info_set_device(info, device); if (snd_ctl_hwdep_info(list->ctl, info) < 0) return 0; *res = strdup(snd_hwdep_info_get_name(info)); @@ -107,8 +108,8 @@ { snd_pcm_info_t *info; snd_pcm_info_alloca(&info); - snd_pcm_info_set_device(info, list->device); - snd_pcm_info_set_stream(info, list->stream ? SND_PCM_STREAM_CAPTURE : SND_PCM_STREAM_PLAYBACK); + snd_pcm_info_set_device(info, device); + snd_pcm_info_set_stream(info, stream ? SND_PCM_STREAM_CAPTURE : SND_PCM_STREAM_PLAYBACK); if (snd_ctl_pcm_info(list->ctl, info) < 0) return 0; switch (snd_pcm_info_get_class(info)) { @@ -127,8 +128,8 @@ { snd_rawmidi_info_t *info; snd_rawmidi_info_alloca(&info); - snd_rawmidi_info_set_device(info, list->device); - snd_rawmidi_info_set_stream(info, list->stream ? SND_RAWMIDI_STREAM_INPUT : SND_RAWMIDI_STREAM_OUTPUT); + snd_rawmidi_info_set_device(info, device); + snd_rawmidi_info_set_stream(info, stream ? SND_RAWMIDI_STREAM_INPUT : SND_RAWMIDI_STREAM_OUTPUT); if (snd_ctl_rawmidi_info(list->ctl, info) < 0) return 0; *res = strdup(snd_rawmidi_info_get_name(info)); @@ -143,14 +144,13 @@ static char *get_dev_name(struct hint_list *list) { char *str1, *str2, *res; + int device; - list->device = list->device_input >= 0 ? list->device_input : list->device; - list->stream = 1; - if (get_dev_name1(list, &str1) < 0) + device = list->device_input >= 0 ? list->device_input : list->device; + if (get_dev_name1(list, &str1, device, 1) < 0) return NULL; - list->device = list->device_output >= 0 ? list->device_input : list->device; - list->stream = 0; - if (get_dev_name1(list, &str2) < 0) { + device = list->device_output >= 0 ? list->device_output : list->device; + if (get_dev_name1(list, &str2, device, 0) < 0) { if (str1) free(str1); return NULL; @@ -199,7 +199,7 @@ } } /* if the specified device doesn't exist, skip this entry */ - if (list->device_input >= 0 || list->device_output >= 0) + if (list->device >= 0 || list->device_input >= 0 || list->device_output >= 0) return NULL; return strdup(list->cardname); } diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/src/pcm/pcm.c /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/src/pcm/pcm.c --- alsa-lib-1.0.17a/src/pcm/pcm.c 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/src/pcm/pcm.c 2008-10-29 12:42:10.000000000 +0000 @@ -394,6 +394,7 @@ \subsection pcm_status_fast Obtaining stream state fast and update r/w pointer +

The function #snd_pcm_avail_update() updates the current available count of samples for writing (playback) or filled samples for reading (capture). This call is mandatory for updating actual r/w pointer. @@ -401,15 +402,12 @@ because it does not require the user <-> kernel context switch, but the value is less accurate, because ring buffer pointers are updated in kernel drivers only when an interrupt occurs. If you want to get accurate stream state, -use functions #snd_pcm_hwsync() or #snd_pcm_delay(). -Note that both of these functions do not update the current r/w pointer -for applications, so the function #snd_pcm_avail_update() must -be called afterwards before any read/write begin+commit operations. +use functions #snd_pcm_avail(), #snd_pcm_delay() or #snd_pcm_avail_delay(). +

-The function #snd_pcm_hwsync() reads the current hardware pointer -in the ring buffer from hardware. Note that this function does not update the current -r/w pointer for applications, so the function #snd_pcm_avail_update() -must be called afterwards before any read/write/begin+commit operations. +The function #snd_pcm_avail() reads the current hardware pointer +in the ring buffer from hardware and calls #snd_pcm_avail_update() then. +

The function #snd_pcm_delay() returns the delay in samples. For playback, it means count of samples in the ring buffer before @@ -419,6 +417,11 @@ Note that this function does not update the current r/w pointer for applications, so the function #snd_pcm_avail_update() must be called afterwards before any read/write begin+commit operations. +

+

+The function #snd_pcm_avail_delay() combines #snd_pcm_avail() and +#snd_pcm_delay() and returns both values in sync. +

\section pcm_action Managing the stream state @@ -915,7 +918,7 @@ } /** - * \brief Synchronize stream position with hardware + * \brief (DEPRECATED) Synchronize stream position with hardware * \param pcm PCM handle * \return 0 on success otherwise a negative error code * @@ -932,6 +935,9 @@ } return pcm->fast_ops->hwsync(pcm->fast_op_arg); } +#ifndef DOC_HIDDEN +link_warning(snd_pcm_hwsync, "Warning: snd_pcm_hwsync() is deprecated, consider to use snd_pcm_avail()"); +#endif /** * \brief Obtain delay for a running PCM handle @@ -939,11 +945,23 @@ * \param delayp Returned delay in frames * \return 0 on success otherwise a negative error code * - * Delay is distance between current application frame position and - * sound frame position. - * It's positive and less than buffer size in normal situation, - * negative on playback underrun and greater than buffer size on - * capture overrun. + * For playback the delay is defined as the time that a frame that is written + * to the PCM stream shortly after this call will take to be actually + * audible. It is as such the overall latency from the write call to the final + * DAC. + * + * For capture the delay is defined as the time that a frame that was + * digitized by the audio device takes until it can be read from the PCM + * stream shortly after this call returns. It is as such the overall latency + * from the initial ADC to the read call. + * + * Please note that hence in case of a playback underrun this value will not + * necessarily got down to 0. + * + * If the application is interested in the fill level of the playback buffer + * of the device, it should use #snd_pcm_avail*() functions. The + * value returned by that call is not directly related to the delay, since the + * latter might include some additional, fixed latencies the former does not. * * Note this function does not update the actual r/w pointer * for applications. The function #snd_pcm_avail_update() @@ -1261,7 +1279,7 @@ * \brief Read interleaved frames from a PCM * \param pcm PCM handle * \param buffer frames containing buffer - * \param size frames to be written + * \param size frames to be read * \return a positive number of frames actually read otherwise a * negative error code * \retval -EBADFD PCM is not in the right state (#SND_PCM_STATE_PREPARED or #SND_PCM_STATE_RUNNING) @@ -1293,7 +1311,7 @@ * \brief Read non interleaved frames to a PCM * \param pcm PCM handle * \param bufs frames containing buffers (one for each channel) - * \param size frames to be written + * \param size frames to be read * \return a positive number of frames actually read otherwise a * negative error code * \retval -EBADFD PCM is not in the right state (#SND_PCM_STATE_PREPARED or #SND_PCM_STATE_RUNNING) @@ -2392,6 +2410,18 @@ * * On capture does all the actions needed to transport to application * level all the ready frames across underlying layers. + * + * The position is not synced with hardware (driver) position in the sound + * ring buffer in this function. This function is a light version of + * #snd_pcm_avail() . + * + * Using this function is ideal after poll() or select() when audio + * file descriptor made the event and when application expects just period + * timing. + * + * Also this function might be called after #snd_pcm_delay() or + * #snd_pcm_hwsync() functions to move private ring buffer pointers + * in alsa-lib (the internal plugin chain). */ snd_pcm_sframes_t snd_pcm_avail_update(snd_pcm_t *pcm) { @@ -2399,6 +2429,63 @@ } /** + * \brief Return number of frames ready to be read (capture) / written (playback) + * \param pcm PCM handle + * \return a positive number of frames ready otherwise a negative + * error code + * + * On capture does all the actions needed to transport to application + * level all the ready frames across underlying layers. + * + * The position is synced with hardware (driver) position in the sound + * ring buffer in this functions. + */ +snd_pcm_sframes_t snd_pcm_avail(snd_pcm_t *pcm) +{ + int err; + + assert(pcm); + if (CHECK_SANITY(! pcm->setup)) { + SNDMSG("PCM not set up"); + return -EIO; + } + err = pcm->fast_ops->hwsync(pcm->fast_op_arg); + if (err < 0) + return err; + return pcm->fast_ops->avail_update(pcm->fast_op_arg); +} + +/** + * \brief Combine snd_pcm_avail and snd_pcm_delay functions + * \param pcm PCM handle + * \param avail Number of available frames in the ring buffer + * \param delay Total I/O latency in frames + * \return zero on success otherwise a negative error code + * + * The avail and delay values retuned are in sync. + */ +int snd_pcm_avail_delay(snd_pcm_t *pcm, + snd_pcm_sframes_t *availp, + snd_pcm_sframes_t *delayp) +{ + snd_pcm_sframes_t sf; + + assert(pcm && availp && delayp); + if (CHECK_SANITY(! pcm->setup)) { + SNDMSG("PCM not set up"); + return -EIO; + } + sf = pcm->fast_ops->delay(pcm->fast_op_arg, delayp); + if (sf < 0) + return (int)sf; + sf = pcm->fast_ops->avail_update(pcm->fast_op_arg); + if (sf < 0) + return (int)sf; + *availp = sf; + return 0; +} + +/** * \brief Silence an area * \param dst_area area specification * \param dst_offset offset in frames inside area diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/src/pcm/pcm_hw.c /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/src/pcm/pcm_hw.c --- alsa-lib-1.0.17a/src/pcm/pcm_hw.c 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/src/pcm/pcm_hw.c 2008-10-29 12:42:10.000000000 +0000 @@ -1507,7 +1507,13 @@ /* revert to blocking mode for read/write access */ snd_pcm_hw_nonblock(*pcmp, 0); (*pcmp)->mode = mode; - } + } else + /* make sure the SND_PCM_NO_xxx flags don't get lost on the + * way */ + (*pcmp)->mode |= mode & (SND_PCM_NO_AUTO_RESAMPLE| + SND_PCM_NO_AUTO_CHANNELS| + SND_PCM_NO_AUTO_FORMAT| + SND_PCM_NO_SOFTVOL); hw = (*pcmp)->private_data; if (format != SND_PCM_FORMAT_UNKNOWN) diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/src/pcm/pcm_softvol.c /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/src/pcm/pcm_softvol.c --- alsa-lib-1.0.17a/src/pcm/pcm_softvol.c 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/src/pcm/pcm_softvol.c 2008-10-29 12:42:10.000000000 +0000 @@ -399,7 +399,6 @@ { int err; snd_pcm_softvol_t *svol = pcm->private_data; - snd_pcm_access_mask_t access_mask = { SND_PCM_ACCBIT_SHM }; snd_pcm_format_mask_t format_mask = { { (1ULL << SND_PCM_FORMAT_S16_LE) | @@ -413,10 +412,6 @@ snd_pcm_format_mask_none(&format_mask); snd_pcm_format_mask_set(&format_mask, svol->sformat); } - err = _snd_pcm_hw_param_set_mask(params, SND_PCM_HW_PARAM_ACCESS, - &access_mask); - if (err < 0) - return err; err = _snd_pcm_hw_param_set_mask(params, SND_PCM_HW_PARAM_FORMAT, &format_mask); if (err < 0) @@ -434,10 +429,7 @@ static int snd_pcm_softvol_hw_refine_sprepare(snd_pcm_t *pcm, snd_pcm_hw_params_t *sparams) { snd_pcm_softvol_t *svol = pcm->private_data; - snd_pcm_access_mask_t saccess_mask = { SND_PCM_ACCBIT_MMAP }; _snd_pcm_hw_params_any(sparams); - _snd_pcm_hw_param_set_mask(sparams, SND_PCM_HW_PARAM_ACCESS, - &saccess_mask); if (svol->sformat != SND_PCM_FORMAT_UNKNOWN) { _snd_pcm_hw_params_set_format(sparams, svol->sformat); _snd_pcm_hw_params_set_subformat(sparams, SND_PCM_SUBFORMAT_STD); @@ -451,7 +443,8 @@ { snd_pcm_softvol_t *svol = pcm->private_data; int err; - unsigned int links = (SND_PCM_HW_PARBIT_CHANNELS | + unsigned int links = (SND_PCM_HW_PARBIT_ACCESS | + SND_PCM_HW_PARBIT_CHANNELS | SND_PCM_HW_PARBIT_RATE | SND_PCM_HW_PARBIT_PERIODS | SND_PCM_HW_PARBIT_PERIOD_SIZE | @@ -475,7 +468,8 @@ { snd_pcm_softvol_t *svol = pcm->private_data; int err; - unsigned int links = (SND_PCM_HW_PARBIT_CHANNELS | + unsigned int links = (SND_PCM_HW_PARBIT_ACCESS | + SND_PCM_HW_PARBIT_CHANNELS | SND_PCM_HW_PARBIT_RATE | SND_PCM_HW_PARBIT_PERIODS | SND_PCM_HW_PARBIT_PERIOD_SIZE | diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/test/pcm.c /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/test/pcm.c --- alsa-lib-1.0.17a/test/pcm.c 2008-08-15 12:28:55.000000000 +0100 +++ alsa-lib-1.0.18/test/pcm.c 2008-10-29 12:42:10.000000000 +0000 @@ -385,11 +385,11 @@ generate_sine(areas, 0, period_size, &data->phase); err = snd_pcm_writei(handle, samples, period_size); if (err < 0) { - printf("Initial write error: %s\n", snd_strerror(err)); + printf("Write error: %s\n", snd_strerror(err)); exit(EXIT_FAILURE); } if (err != period_size) { - printf("Initial write error: written %i expected %li\n", err, period_size); + printf("Write error: written %i expected %li\n", err, period_size); exit(EXIT_FAILURE); } avail = snd_pcm_avail_update(handle); @@ -424,10 +424,12 @@ exit(EXIT_FAILURE); } } - err = snd_pcm_start(handle); - if (err < 0) { - printf("Start error: %s\n", snd_strerror(err)); - exit(EXIT_FAILURE); + if (snd_pcm_state(handle) == SND_PCM_STATE_PREPARED) { + err = snd_pcm_start(handle); + if (err < 0) { + printf("Start error: %s\n", snd_strerror(err)); + exit(EXIT_FAILURE); + } } /* because all other work is done in the signal handler, diff -Nru /tmp/H8G8fz5ZlZ/alsa-lib-1.0.17a/version /tmp/x5Bvnef6Tq/alsa-lib-1.0.18/version --- alsa-lib-1.0.17a/version 2008-08-15 12:36:23.000000000 +0100 +++ alsa-lib-1.0.18/version 2008-10-29 12:46:43.000000000 +0000 @@ -1 +1 @@ -1.0.17a +1.0.18