diff -u alsa-lib-1.0.15/debian/changelog alsa-lib-1.0.15/debian/changelog --- alsa-lib-1.0.15/debian/changelog +++ alsa-lib-1.0.15/debian/changelog @@ -1,3 +1,12 @@ +alsa-lib (1.0.15-3ubuntu4.1) hardy-proposed; urgency=low + + * debian/patches/ioplug_setstate.diff: Backport from alsa-lib 1.0.16 to + change the PCM status of the ioplug to the given value. Needed by + a backported fix for the pcm pulse plugin in alsa-plugins. + * Bumped shlibs, as new symbol added to the ioplug plugin. + + -- Luke Yelavich Thu, 29 May 2008 14:32:23 +1000 + alsa-lib (1.0.15-3ubuntu4) hardy; urgency=low * Backport fixes from hg tip (no API/ABI changes): diff -u alsa-lib-1.0.15/debian/patches/series alsa-lib-1.0.15/debian/patches/series --- alsa-lib-1.0.15/debian/patches/series +++ alsa-lib-1.0.15/debian/patches/series @@ -20,0 +21 @@ +ioplug_setstate.diff diff -u alsa-lib-1.0.15/debian/rules alsa-lib-1.0.15/debian/rules --- alsa-lib-1.0.15/debian/rules +++ alsa-lib-1.0.15/debian/rules @@ -154,9 +154,9 @@ dh_fixperms -i binary-arch: build-arch-stamp install-arch - dh_makeshlibs -plibasound2 -V'libasound2 (>> 1.0.14)' + dh_makeshlibs -plibasound2 -V'libasound2 (>= 1.0.15-3ubuntu4.1)' ifneq (,$(build_biarch_stamp)) - dh_makeshlibs -plib$(bi)asound2 -V'lib$(bi)asound2 (>> 1.0.14)' + dh_makeshlibs -plib$(bi)asound2 -V'lib$(bi)asound2 (>= 1.0.15-3ubuntu4.1)' endif dh_installdeb -s only in patch2: unchanged: --- alsa-lib-1.0.15.orig/debian/patches/ioplug_setstate.diff +++ alsa-lib-1.0.15/debian/patches/ioplug_setstate.diff @@ -0,0 +1,45 @@ +diff -r f7be4703e22e -r 0b2df0817fb6 include/pcm_ioplug.h +--- a/include/pcm_ioplug.h Fri Dec 14 09:11:01 2007 +0100 ++++ b/include/pcm_ioplug.h Fri Dec 14 15:19:03 2007 +0100 +@@ -208,6 +208,9 @@ int snd_pcm_ioplug_set_param_minmax(snd_ + int snd_pcm_ioplug_set_param_minmax(snd_pcm_ioplug_t *io, int type, unsigned int min, unsigned int max); + int snd_pcm_ioplug_set_param_list(snd_pcm_ioplug_t *io, int type, unsigned int num_list, const unsigned int *list); + ++/* change PCM status */ ++int snd_pcm_ioplug_set_state(snd_pcm_ioplug_t *ioplug, snd_pcm_state_t state); ++ + /** \} */ + + #endif /* __ALSA_PCM_IOPLUG_H */ +diff -r f7be4703e22e -r 0b2df0817fb6 src/pcm/pcm_ioplug.c +--- a/src/pcm/pcm_ioplug.c Fri Dec 14 09:11:01 2007 +0100 ++++ b/src/pcm/pcm_ioplug.c Fri Dec 14 15:19:03 2007 +0100 +@@ -614,6 +614,8 @@ static snd_pcm_sframes_t snd_pcm_ioplug_ + snd_pcm_uframes_t avail; + + snd_pcm_ioplug_hw_ptr_update(pcm); ++ if (io->data->state == SNDRV_PCM_STATE_XRUN) ++ return -EPIPE; + if (pcm->stream == SND_PCM_STREAM_CAPTURE && + pcm->access != SND_PCM_ACCESS_RW_INTERLEAVED && + pcm->access != SND_PCM_ACCESS_RW_NONINTERLEAVED) { +@@ -1037,3 +1039,19 @@ const snd_pcm_channel_area_t *snd_pcm_io + return snd_pcm_mmap_areas(ioplug->pcm); + return NULL; + } ++ ++/** ++ * \brief Change the ioplug PCM status ++ * \param ioplug the ioplug handle ++ * \param state the PCM status ++ * \return zero if successful or a negative error code ++ * ++ * Changes the PCM status of the ioplug to the given value. ++ * This function can be used for external plugins to notify the status ++ * change, e.g. XRUN. ++ */ ++int snd_pcm_ioplug_set_state(snd_pcm_ioplug_t *ioplug, snd_pcm_state_t state) ++{ ++ ioplug->state = state; ++ return 0; ++}