OBS User unknown 2007-12-14 15:23:08 +00:00 committed by Git OBS Bridge
parent 651b928df5
commit 83899d57fb
3 changed files with 354 additions and 61 deletions

View File

@ -1,6 +1,6 @@
diff -r 9e2f117f24b9 NOTES
--- a/NOTES Mon Oct 15 10:36:46 2007 +0200
+++ b/NOTES Thu Dec 13 17:40:26 2007 +0100
+++ b/NOTES Fri Dec 14 15:27:52 2007 +0100
@@ -27,11 +27,14 @@ When LIBASOUND_DEBUG=1 is set, the error
When LIBASOUND_DEBUG=1 is set, the errors in hw_params configuration
will be dumped to stderr. Note that this will show even the non-fatal
@ -20,7 +20,7 @@ diff -r 9e2f117f24b9 NOTES
Blocking Open Mode
diff -r 9e2f117f24b9 configure.in
--- a/configure.in Mon Oct 15 10:36:46 2007 +0200
+++ b/configure.in Thu Dec 13 17:40:26 2007 +0100
+++ b/configure.in Fri Dec 14 15:27:52 2007 +0100
@@ -167,6 +167,20 @@ else
else
AC_DEFINE(NDEBUG,,[No assert debug])
@ -98,7 +98,7 @@ diff -r 9e2f117f24b9 configure.in
src/conf/pcm/Makefile \
diff -r 9e2f117f24b9 doc/doxygen.cfg
--- a/doc/doxygen.cfg Mon Oct 15 10:36:46 2007 +0200
+++ b/doc/doxygen.cfg Thu Dec 13 17:40:26 2007 +0100
+++ b/doc/doxygen.cfg Fri Dec 14 15:27:52 2007 +0100
@@ -28,8 +28,6 @@ INPUT = index.doxygen \
../include/pcm_ioplug.h \
../include/control_external.h \
@ -110,7 +110,7 @@ diff -r 9e2f117f24b9 doc/doxygen.cfg
../src/async.c \
diff -r 9e2f117f24b9 include/Makefile.am
--- a/include/Makefile.am Mon Oct 15 10:36:46 2007 +0200
+++ b/include/Makefile.am Thu Dec 13 17:40:26 2007 +0100
+++ b/include/Makefile.am Fri Dec 14 15:27:52 2007 +0100
@@ -44,10 +44,6 @@ endif
if BUILD_SEQ
@ -124,7 +124,7 @@ diff -r 9e2f117f24b9 include/Makefile.am
if BUILD_ALISP
diff -r 9e2f117f24b9 include/control.h
--- a/include/control.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/control.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/control.h Fri Dec 14 15:27:52 2007 +0100
@@ -279,7 +279,7 @@ size_t snd_ctl_elem_id_sizeof(void);
* \brief allocate an invalid #snd_ctl_elem_id_t using standard alloca
* \param ptr returned pointer
@ -264,7 +264,7 @@ diff -r 9e2f117f24b9 include/conv.h
-
diff -r 9e2f117f24b9 include/global.h
--- a/include/global.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/global.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/global.h Fri Dec 14 15:27:52 2007 +0100
@@ -102,6 +102,9 @@ int snd_dlclose(void *handle);
int snd_dlclose(void *handle);
@ -277,7 +277,7 @@ diff -r 9e2f117f24b9 include/global.h
*
diff -r 9e2f117f24b9 include/hwdep.h
--- a/include/hwdep.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/hwdep.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/hwdep.h Fri Dec 14 15:27:52 2007 +0100
@@ -108,7 +108,7 @@ ssize_t snd_hwdep_read(snd_hwdep_t *hwde
size_t snd_hwdep_info_sizeof(void);
@ -488,7 +488,7 @@ diff -r 9e2f117f24b9 include/instr.h
-
diff -r 9e2f117f24b9 include/local.h
--- a/include/local.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/local.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/local.h Fri Dec 14 15:27:52 2007 +0100
@@ -76,24 +76,19 @@
#define _snd_seq_query_subscribe sndrv_seq_query_subs
#define _snd_seq_client_pool sndrv_seq_client_pool
@ -546,7 +546,7 @@ diff -r 9e2f117f24b9 include/local.h
int snd_dlobj_cache_add(const char *name, void *dlobj, void *open_func);
diff -r 9e2f117f24b9 include/mixer.h
--- a/include/mixer.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/mixer.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/mixer.h Fri Dec 14 15:27:52 2007 +0100
@@ -146,7 +146,7 @@ size_t snd_mixer_class_sizeof(void);
* \brief allocate an invalid #snd_mixer_class_t using standard alloca
* \param ptr returned pointer
@ -567,7 +567,7 @@ diff -r 9e2f117f24b9 include/mixer.h
void snd_mixer_selem_id_copy(snd_mixer_selem_id_t *dst, const snd_mixer_selem_id_t *src);
diff -r 9e2f117f24b9 include/pcm.h
--- a/include/pcm.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/pcm.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/pcm.h Fri Dec 14 15:27:52 2007 +0100
@@ -470,7 +470,7 @@ size_t snd_pcm_info_sizeof(void);
* \brief allocate an invalid #snd_pcm_info_t using standard alloca
* \param ptr returned pointer
@ -631,9 +631,22 @@ diff -r 9e2f117f24b9 include/pcm.h
int snd_pcm_status_malloc(snd_pcm_status_t **ptr);
void snd_pcm_status_free(snd_pcm_status_t *obj);
void snd_pcm_status_copy(snd_pcm_status_t *dst, const snd_pcm_status_t *src);
diff -r 9e2f117f24b9 include/pcm_ioplug.h
--- a/include/pcm_ioplug.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/pcm_ioplug.h Fri Dec 14 15:27:52 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 9e2f117f24b9 include/rawmidi.h
--- a/include/rawmidi.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/rawmidi.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/rawmidi.h Fri Dec 14 15:27:52 2007 +0100
@@ -93,7 +93,7 @@ size_t snd_rawmidi_info_sizeof(void);
* \brief allocate an invalid #snd_rawmidi_info_t using standard alloca
* \param ptr returned pointer
@ -663,7 +676,7 @@ diff -r 9e2f117f24b9 include/rawmidi.h
void snd_rawmidi_status_copy(snd_rawmidi_status_t *dst, const snd_rawmidi_status_t *src);
diff -r 9e2f117f24b9 include/seq.h
--- a/include/seq.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/seq.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/seq.h Fri Dec 14 15:27:52 2007 +0100
@@ -45,15 +45,6 @@ extern "C" {
/** Sequencer handle */
@ -781,7 +794,7 @@ diff -r 9e2f117f24b9 include/seq.h
void snd_seq_remove_events_copy(snd_seq_remove_events_t *dst, const snd_seq_remove_events_t *src);
diff -r 9e2f117f24b9 include/seq_event.h
--- a/include/seq_event.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/seq_event.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/seq_event.h Fri Dec 14 15:27:52 2007 +0100
@@ -133,25 +133,6 @@ enum snd_seq_event_type {
/** Ports disconnected; event data type = #snd_seq_connect_t */
SND_SEQ_EVENT_PORT_UNSUBSCRIBED,
@ -945,7 +958,7 @@ diff -r 9e2f117f24b9 include/seq_event.h
diff -r 9e2f117f24b9 include/sound/Makefile.am
--- a/include/sound/Makefile.am Mon Oct 15 10:36:46 2007 +0200
+++ b/include/sound/Makefile.am Thu Dec 13 17:40:26 2007 +0100
+++ b/include/sound/Makefile.am Fri Dec 14 15:27:52 2007 +0100
@@ -1,7 +1,6 @@ alsasoundincludedir = ${includedir}/alsa
alsasoundincludedir = ${includedir}/alsa/sound
@ -1853,7 +1866,7 @@ diff -r 9e2f117f24b9 include/sound/ainstr_simple.h
-#endif /* __SOUND_AINSTR_SIMPLE_H */
diff -r 9e2f117f24b9 include/sound/asequencer.h
--- a/include/sound/asequencer.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/sound/asequencer.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/sound/asequencer.h Fri Dec 14 15:27:52 2007 +0100
@@ -22,7 +22,7 @@
#ifndef __SOUND_ASEQUENCER_H
#define __SOUND_ASEQUENCER_H
@ -2149,7 +2162,7 @@ diff -r 9e2f117f24b9 include/sound/asequencer.h
diff -r 9e2f117f24b9 include/sound/asound_fm.h
--- a/include/sound/asound_fm.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/sound/asound_fm.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/sound/asound_fm.h Fri Dec 14 15:27:52 2007 +0100
@@ -29,16 +29,16 @@
#define SNDRV_DM_FM_MODE_OPL2 0x00
#define SNDRV_DM_FM_MODE_OPL3 0x01
@ -2252,7 +2265,7 @@ diff -r 9e2f117f24b9 include/sound/asound_fm.h
#endif /* __SOUND_ASOUND_FM_H */
diff -r 9e2f117f24b9 include/timer.h
--- a/include/timer.h Mon Oct 15 10:36:46 2007 +0200
+++ b/include/timer.h Thu Dec 13 17:40:26 2007 +0100
+++ b/include/timer.h Fri Dec 14 15:27:52 2007 +0100
@@ -164,7 +164,7 @@ ssize_t snd_timer_read(snd_timer_t *hand
size_t snd_timer_id_sizeof(void);
@ -2300,7 +2313,7 @@ diff -r 9e2f117f24b9 include/timer.h
void snd_timer_status_copy(snd_timer_status_t *dst, const snd_timer_status_t *src);
diff -r 9e2f117f24b9 src/Makefile.am
--- a/src/Makefile.am Mon Oct 15 10:36:46 2007 +0200
+++ b/src/Makefile.am Thu Dec 13 17:40:26 2007 +0100
+++ b/src/Makefile.am Fri Dec 14 15:27:52 2007 +0100
@@ -37,10 +37,6 @@ if BUILD_SEQ
if BUILD_SEQ
SUBDIRS += seq
@ -2314,7 +2327,7 @@ diff -r 9e2f117f24b9 src/Makefile.am
SUBDIRS += alisp
diff -r 9e2f117f24b9 src/Versions.in
--- a/src/Versions.in Mon Oct 15 10:36:46 2007 +0200
+++ b/src/Versions.in Thu Dec 13 17:40:26 2007 +0100
+++ b/src/Versions.in Fri Dec 14 15:27:52 2007 +0100
@@ -1,8 +1,16 @@ ALSA_0.9 {
ALSA_0.9 {
global:
@ -2522,7 +2535,7 @@ diff -r 9e2f117f24b9 src/Versions.in
-} ALSA_1.0.12;
diff -r 9e2f117f24b9 src/conf.c
--- a/src/conf.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/conf.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/conf.c Fri Dec 14 15:27:52 2007 +0100
@@ -2897,7 +2897,7 @@ int snd_config_hook_load_for_all_cards(s
return err;
if (snd_config_search(root, fdriver, &n) >= 0) {
@ -2543,7 +2556,7 @@ diff -r 9e2f117f24b9 src/conf.c
}
diff -r 9e2f117f24b9 src/conf/alsa.conf
--- a/src/conf/alsa.conf Mon Oct 15 10:36:46 2007 +0200
+++ b/src/conf/alsa.conf Thu Dec 13 17:40:26 2007 +0100
+++ b/src/conf/alsa.conf Fri Dec 14 15:27:52 2007 +0100
@@ -317,7 +317,7 @@ ctl.default {
}
@ -2555,7 +2568,7 @@ diff -r 9e2f117f24b9 src/conf/alsa.conf
default {
diff -r 9e2f117f24b9 src/conf/cards/CMI8788.conf
--- a/src/conf/cards/CMI8788.conf Mon Oct 15 10:36:46 2007 +0200
+++ b/src/conf/cards/CMI8788.conf Thu Dec 13 17:40:26 2007 +0100
+++ b/src/conf/cards/CMI8788.conf Fri Dec 14 15:27:52 2007 +0100
@@ -1,10 +1,6 @@
#
# Configuration for the CMI8788 chip
@ -2706,7 +2719,7 @@ diff -r 9e2f117f24b9 src/conf/cards/CMI8788.conf
type hw
diff -r 9e2f117f24b9 src/conf/cards/aliases.conf
--- a/src/conf/cards/aliases.conf Mon Oct 15 10:36:46 2007 +0200
+++ b/src/conf/cards/aliases.conf Thu Dec 13 17:40:26 2007 +0100
+++ b/src/conf/cards/aliases.conf Fri Dec 14 15:27:52 2007 +0100
@@ -49,6 +49,7 @@ Canyon3D-2 cards.Maestro3
Canyon3D-2 cards.Maestro3
Azalia cards.HDA-Intel
@ -2717,7 +2730,7 @@ diff -r 9e2f117f24b9 src/conf/cards/aliases.conf
<confdir:pcm/dmix.conf>
diff -r 9e2f117f24b9 src/control/Makefile.am
--- a/src/control/Makefile.am Mon Oct 15 10:36:46 2007 +0200
+++ b/src/control/Makefile.am Thu Dec 13 17:40:26 2007 +0100
+++ b/src/control/Makefile.am Fri Dec 14 15:27:52 2007 +0100
@@ -1,6 +1,6 @@ EXTRA_LTLIBRARIES = libcontrol.la
EXTRA_LTLIBRARIES = libcontrol.la
@ -2728,7 +2741,7 @@ diff -r 9e2f117f24b9 src/control/Makefile.am
libcontrol_la_SOURCES += control_shm.c
diff -r 9e2f117f24b9 src/control/cards.c
--- a/src/control/cards.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/control/cards.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/control/cards.c Fri Dec 14 15:27:52 2007 +0100
@@ -39,12 +39,7 @@
#define SND_FILE_LOAD ALOAD_DEVICE_DIRECTORY "aloadC%i"
#endif
@ -2796,7 +2809,7 @@ diff -r 9e2f117f24b9 src/control/cards.c
if (snd_ctl_card_info(handle, &info) < 0) {
diff -r 9e2f117f24b9 src/control/control_local.h
--- a/src/control/control_local.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/control/control_local.h Thu Dec 13 17:40:26 2007 +0100
+++ b/src/control/control_local.h Fri Dec 14 15:27:52 2007 +0100
@@ -89,6 +89,9 @@ struct _snd_hctl {
};
@ -2809,7 +2822,7 @@ diff -r 9e2f117f24b9 src/control/control_local.h
#define _snd_ctl_async_descriptor _snd_ctl_poll_descriptor
diff -r 9e2f117f24b9 src/control/tlv.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/control/tlv.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/control/tlv.c Fri Dec 14 15:27:52 2007 +0100
@@ -0,0 +1,429 @@
+/**
+ * \file control/tlv.c
@ -3242,7 +3255,7 @@ diff -r 9e2f117f24b9 src/control/tlv.c
+}
diff -r 9e2f117f24b9 src/error.c
--- a/src/error.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/error.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/error.c Fri Dec 14 15:27:52 2007 +0100
@@ -135,8 +135,11 @@ static void snd_err_msg_default(const ch
fprintf(stderr, ": %s", snd_strerror(err));
putc('\n', stderr);
@ -3258,7 +3271,7 @@ diff -r 9e2f117f24b9 src/error.c
/**
diff -r 9e2f117f24b9 src/mixer/mixer_simple.h
--- a/src/mixer/mixer_simple.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/mixer/mixer_simple.h Thu Dec 13 17:40:26 2007 +0100
+++ b/src/mixer/mixer_simple.h Fri Dec 14 15:27:52 2007 +0100
@@ -21,5 +21,11 @@
#include "mixer_abst.h"
@ -3273,7 +3286,7 @@ diff -r 9e2f117f24b9 src/mixer/mixer_simple.h
int snd_mixer_simple_basic_register(snd_mixer_t *mixer, struct snd_mixer_selem_regopt *options, snd_mixer_class_t **classp);
diff -r 9e2f117f24b9 src/mixer/simple_none.c
--- a/src/mixer/simple_none.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/mixer/simple_none.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/mixer/simple_none.c Fri Dec 14 15:27:52 2007 +0100
@@ -35,7 +35,9 @@
#include <string.h>
#include <fcntl.h>
@ -3648,7 +3661,7 @@ diff -r 9e2f117f24b9 src/mixer/simple_none.c
static int get_dB_ops(snd_mixer_elem_t *elem,
diff -r 9e2f117f24b9 src/pcm/interval.h
--- a/src/pcm/interval.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/interval.h Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/interval.h Fri Dec 14 15:27:52 2007 +0100
@@ -42,6 +42,22 @@ int snd_interval_never_eq(const snd_inte
int snd_interval_never_eq(const snd_interval_t *i1, const snd_interval_t *i2);
#endif
@ -3674,7 +3687,7 @@ diff -r 9e2f117f24b9 src/pcm/interval.h
void snd_interval_mul(const snd_interval_t *a, const snd_interval_t *b, snd_interval_t *c);
diff -r 9e2f117f24b9 src/pcm/pcm.c
--- a/src/pcm/pcm.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm.c Fri Dec 14 15:27:52 2007 +0100
@@ -2226,9 +2226,10 @@ int snd_pcm_free(snd_pcm_t *pcm)
return 0;
}
@ -3713,7 +3726,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm.c
}
diff -r 9e2f117f24b9 src/pcm/pcm_asym.c
--- a/src/pcm/pcm_asym.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_asym.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_asym.c Fri Dec 14 15:27:53 2007 +0100
@@ -109,7 +109,8 @@ int _snd_pcm_asym_open(snd_pcm_t **pcmp,
err = snd_pcm_slave_conf(root, slave, &sconf, 0);
if (err < 0)
@ -3726,7 +3739,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_asym.c
}
diff -r 9e2f117f24b9 src/pcm/pcm_direct.c
--- a/src/pcm/pcm_direct.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_direct.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_direct.c Fri Dec 14 15:27:53 2007 +0100
@@ -109,13 +109,15 @@ retryget:
}
dmix->shmptr = shmat(dmix->shmid, 0, 0);
@ -3782,7 +3795,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_direct.c
diff -r 9e2f117f24b9 src/pcm/pcm_direct.h
--- a/src/pcm/pcm_direct.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_direct.h Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_direct.h Fri Dec 14 15:27:53 2007 +0100
@@ -24,20 +24,30 @@
#define DIRECT_IPC_SEMS 1
#define DIRECT_IPC_SEM_CLIENT 0
@ -3909,7 +3922,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_direct.h
diff -r 9e2f117f24b9 src/pcm/pcm_dmix.c
--- a/src/pcm/pcm_dmix.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_dmix.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_dmix.c Fri Dec 14 15:27:53 2007 +0100
@@ -156,95 +156,60 @@ static void mix_areas(snd_pcm_direct_t *
snd_pcm_uframes_t dst_ofs,
snd_pcm_uframes_t size)
@ -4117,7 +4130,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_dmix.c
pcm->private_data = NULL;
diff -r 9e2f117f24b9 src/pcm/pcm_dmix_generic.c
--- a/src/pcm/pcm_dmix_generic.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_dmix_generic.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_dmix_generic.c Fri Dec 14 15:27:53 2007 +0100
@@ -48,10 +48,10 @@ static inline unsigned long __cmpxchg(vo
#endif
@ -4310,7 +4323,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_dmix_generic.c
#endif
diff -r 9e2f117f24b9 src/pcm/pcm_dmix_i386.c
--- a/src/pcm/pcm_dmix_i386.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_dmix_i386.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_dmix_i386.c Fri Dec 14 15:27:53 2007 +0100
@@ -2,32 +2,32 @@
* optimized mixing code for i386
*/
@ -4386,7 +4399,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_dmix_i386.c
}
diff -r 9e2f117f24b9 src/pcm/pcm_dmix_i386.h
--- a/src/pcm/pcm_dmix_i386.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_dmix_i386.h Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_dmix_i386.h Fri Dec 14 15:27:53 2007 +0100
@@ -29,10 +29,10 @@
/*
* for plain i386
@ -4464,7 +4477,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_dmix_i386.h
diff -r 9e2f117f24b9 src/pcm/pcm_dmix_x86_64.c
--- a/src/pcm/pcm_dmix_x86_64.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_dmix_x86_64.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_dmix_x86_64.c Fri Dec 14 15:27:53 2007 +0100
@@ -2,24 +2,24 @@
* optimized mixing code for x86-64
*/
@ -4515,7 +4528,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_dmix_x86_64.c
}
diff -r 9e2f117f24b9 src/pcm/pcm_dmix_x86_64.h
--- a/src/pcm/pcm_dmix_x86_64.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_dmix_x86_64.h Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_dmix_x86_64.h Fri Dec 14 15:27:53 2007 +0100
@@ -30,10 +30,10 @@
/*
* MMX optimized
@ -4563,7 +4576,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_dmix_x86_64.h
diff -r 9e2f117f24b9 src/pcm/pcm_dshare.c
--- a/src/pcm/pcm_dshare.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_dshare.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_dshare.c Fri Dec 14 15:27:53 2007 +0100
@@ -194,11 +194,8 @@ static int snd_pcm_dshare_sync_ptr(snd_p
if (avail > dshare->avail_max)
dshare->avail_max = avail;
@ -4610,7 +4623,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_dshare.c
diff -r 9e2f117f24b9 src/pcm/pcm_dsnoop.c
--- a/src/pcm/pcm_dsnoop.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_dsnoop.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_dsnoop.c Fri Dec 14 15:27:53 2007 +0100
@@ -141,10 +141,7 @@ static int snd_pcm_dsnoop_sync_ptr(snd_p
if (pcm->stop_threshold >= pcm->boundary) /* don't care */
return 0;
@ -4656,7 +4669,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_dsnoop.c
diff -r 9e2f117f24b9 src/pcm/pcm_empty.c
--- a/src/pcm/pcm_empty.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_empty.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_empty.c Fri Dec 14 15:27:53 2007 +0100
@@ -100,7 +100,8 @@ int _snd_pcm_empty_open(snd_pcm_t **pcmp
err = snd_pcm_slave_conf(root, slave, &sconf, 0);
if (err < 0)
@ -4669,7 +4682,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_empty.c
}
diff -r 9e2f117f24b9 src/pcm/pcm_ext_parm.h
--- a/src/pcm/pcm_ext_parm.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_ext_parm.h Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_ext_parm.h Fri Dec 14 15:27:53 2007 +0100
@@ -19,6 +19,20 @@ static inline snd_interval_t *hw_param_i
return &params->intervals[var - SND_PCM_HW_PARAM_FIRST_INTERVAL];
}
@ -4693,7 +4706,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_ext_parm.h
void snd_ext_parm_clear(struct snd_ext_parm *parm);
diff -r 9e2f117f24b9 src/pcm/pcm_generic.h
--- a/src/pcm/pcm_generic.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_generic.h Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_generic.h Fri Dec 14 15:27:53 2007 +0100
@@ -23,6 +23,82 @@ typedef struct {
snd_pcm_t *slave;
int close_slave;
@ -4779,7 +4792,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_generic.h
int snd_pcm_generic_nonblock(snd_pcm_t *pcm, int nonblock);
diff -r 9e2f117f24b9 src/pcm/pcm_ioplug.c
--- a/src/pcm/pcm_ioplug.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_ioplug.c Thu Dec 13 17:40:26 2007 +0100
+++ b/src/pcm/pcm_ioplug.c Fri Dec 14 15:27:53 2007 +0100
@@ -313,7 +313,7 @@ static int snd_pcm_ioplug_hw_refine(snd_
if (err < 0)
return err;
@ -4853,9 +4866,38 @@ diff -r 9e2f117f24b9 src/pcm/pcm_ioplug.c
io->data->state = SND_PCM_STATE_SETUP;
return 0;
@@ -600,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) {
@@ -1023,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;
+}
diff -r 9e2f117f24b9 src/pcm/pcm_local.h
--- a/src/pcm/pcm_local.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_local.h Thu Dec 13 17:40:27 2007 +0100
+++ b/src/pcm/pcm_local.h Fri Dec 14 15:27:53 2007 +0100
@@ -226,6 +226,116 @@ struct _snd_pcm {
void *private_data;
struct list_head async_handlers;
@ -5011,7 +5053,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_local.h
+}
diff -r 9e2f117f24b9 src/pcm/pcm_multi.c
--- a/src/pcm/pcm_multi.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_multi.c Thu Dec 13 17:40:27 2007 +0100
+++ b/src/pcm/pcm_multi.c Fri Dec 14 15:27:53 2007 +0100
@@ -690,13 +690,44 @@ static snd_pcm_sframes_t snd_pcm_multi_m
return size;
}
@ -5069,7 +5111,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_multi.c
pcm->private_data = multi;
diff -r 9e2f117f24b9 src/pcm/pcm_null.c
--- a/src/pcm/pcm_null.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_null.c Thu Dec 13 17:40:27 2007 +0100
+++ b/src/pcm/pcm_null.c Fri Dec 14 15:27:53 2007 +0100
@@ -82,13 +82,10 @@ static int snd_pcm_null_status(snd_pcm_t
static int snd_pcm_null_status(snd_pcm_t *pcm, snd_pcm_status_t * status)
{
@ -5087,7 +5129,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_null.c
return 0;
diff -r 9e2f117f24b9 src/pcm/pcm_params.c
--- a/src/pcm/pcm_params.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_params.c Thu Dec 13 17:40:27 2007 +0100
+++ b/src/pcm/pcm_params.c Fri Dec 14 15:27:53 2007 +0100
@@ -78,31 +78,14 @@ static inline int hw_is_interval(snd_pcm
var <= SND_PCM_HW_PARAM_LAST_INTERVAL;
}
@ -5128,7 +5170,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_params.c
{
diff -r 9e2f117f24b9 src/pcm/pcm_plugin.h
--- a/src/pcm/pcm_plugin.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_plugin.h Thu Dec 13 17:40:27 2007 +0100
+++ b/src/pcm/pcm_plugin.h Fri Dec 14 15:27:53 2007 +0100
@@ -51,6 +51,16 @@ typedef struct {
snd_atomic_write_t watom;
} snd_pcm_plugin_t;
@ -5170,7 +5212,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_plugin.h
int snd_pcm_linear_put_index(snd_pcm_format_t src_format, snd_pcm_format_t dst_format);
diff -r 9e2f117f24b9 src/pcm/pcm_rate.c
--- a/src/pcm/pcm_rate.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_rate.c Thu Dec 13 17:40:27 2007 +0100
+++ b/src/pcm/pcm_rate.c Fri Dec 14 15:27:53 2007 +0100
@@ -715,38 +715,6 @@ static snd_pcm_sframes_t snd_pcm_rate_fo
return n;
}
@ -5240,7 +5282,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_rate.c
diff -r 9e2f117f24b9 src/pcm/pcm_share.c
--- a/src/pcm/pcm_share.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_share.c Thu Dec 13 17:40:27 2007 +0100
+++ b/src/pcm/pcm_share.c Fri Dec 14 15:27:53 2007 +0100
@@ -914,7 +914,6 @@ static int snd_pcm_share_start(snd_pcm_t
snd_pcm_share_t *share = pcm->private_data;
snd_pcm_share_slave_t *slave = share->slave;
@ -5280,7 +5322,7 @@ diff -r 9e2f117f24b9 src/pcm/pcm_share.c
pcm->running_areas, 0,
diff -r 9e2f117f24b9 src/pcm/pcm_softvol.c
--- a/src/pcm/pcm_softvol.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/pcm_softvol.c Thu Dec 13 17:40:27 2007 +0100
+++ b/src/pcm/pcm_softvol.c Fri Dec 14 15:27:53 2007 +0100
@@ -782,6 +782,8 @@ int snd_pcm_softvol_open(snd_pcm_t **pcm
if (err > 0) { /* hardware control - no need for softvol! */
softvol_free(svol);
@ -5290,9 +5332,247 @@ diff -r 9e2f117f24b9 src/pcm/pcm_softvol.c
return 0;
}
diff -r 9e2f117f24b9 src/pcm/plugin_ops.h
--- a/src/pcm/plugin_ops.h Mon Oct 15 10:36:46 2007 +0200
+++ b/src/pcm/plugin_ops.h Fri Dec 14 15:27:53 2007 +0100
@@ -85,8 +85,6 @@ static inline u_int32_t sx24s(u_int32_t
#define _put_triple(ptr,val) _put_triple_be(ptr,val)
#define _put_triple_s(ptr,val) _put_triple_le(ptr,val)
#endif
-
-#define shift_down(val, bits) (((val) + (1 << ((bits) - 1))) >> (bits))
#ifdef COPY_LABELS
static void *copy_labels[5] = {
@@ -258,14 +256,14 @@ conv_xxx1_009x: as_u32(dst) = sx24s((u_i
conv_xxx1_009x: as_u32(dst) = sx24s((u_int32_t)(as_u8c(src) ^ 0x80) << 8); goto CONV_END;
conv_xxx1_9000: as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80) << 24; goto CONV_END;
conv_xxx1_0009: as_u32(dst) = (u_int32_t)(as_u8c(src) ^ 0x80); goto CONV_END;
-conv_xx12_xxx1: as_u8(dst) = shift_down(as_u16c(src), 8); goto CONV_END;
+conv_xx12_xxx1: as_u8(dst) = as_u16c(src) >> 8; goto CONV_END;
conv_xx12_xx12: as_u16(dst) = as_u16c(src); goto CONV_END;
conv_xx12_xx21: as_u16(dst) = bswap_16(as_u16c(src)); goto CONV_END;
conv_xx12_x120: as_u32(dst) = sx24((u_int32_t)as_u16c(src) << 8); goto CONV_END;
conv_xx12_021x: as_u32(dst) = sx24s((u_int32_t)bswap_16(as_u16c(src)) << 8); goto CONV_END;
conv_xx12_1200: as_u32(dst) = (u_int32_t)as_u16c(src) << 16; goto CONV_END;
conv_xx12_0021: as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src)); goto CONV_END;
-conv_xx12_xxx9: as_u8(dst) = shift_down(as_u16c(src), 8) ^ 0x80; goto CONV_END;
+conv_xx12_xxx9: as_u8(dst) = (as_u16c(src) >> 8) ^ 0x80; goto CONV_END;
conv_xx12_xx92: as_u16(dst) = as_u16c(src) ^ 0x8000; goto CONV_END;
conv_xx12_xx29: as_u16(dst) = bswap_16(as_u16c(src)) ^ 0x80; goto CONV_END;
conv_xx12_x920: as_u32(dst) = sx24((u_int32_t)(as_u16c(src) ^ 0x8000) << 8); goto CONV_END;
@@ -284,57 +282,57 @@ conv_xx12_01Ax: as_u32(dst) = sx24s((u_i
conv_xx12_01Ax: as_u32(dst) = sx24s((u_int32_t)(as_u16c(src) ^ 0x80) << 8); goto CONV_END;
conv_xx12_A100: as_u32(dst) = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto CONV_END;
conv_xx12_001A: as_u32(dst) = (u_int32_t)(as_u16c(src) ^ 0x80); goto CONV_END;
-conv_x123_xxx1: as_u8(dst) = shift_down(as_u32c(src), 16); goto CONV_END;
-conv_x123_xx12: as_u16(dst) = shift_down(as_u32c(src), 8); goto CONV_END;
-conv_x123_xx21: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8)); goto CONV_END;
+conv_x123_xxx1: as_u8(dst) = as_u32c(src) >> 16; goto CONV_END;
+conv_x123_xx12: as_u16(dst) = as_u32c(src) >> 8; goto CONV_END;
+conv_x123_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 8); goto CONV_END;
conv_x123_x123: as_u32(dst) = sx24(as_u32c(src)); goto CONV_END;
conv_x123_321x: as_u32(dst) = sx24s(bswap_32(as_u32c(src))); goto CONV_END;
conv_x123_1230: as_u32(dst) = as_u32c(src) << 8; goto CONV_END;
-conv_x123_0321: as_u32(dst) = shift_down(bswap_32(as_u32c(src)), 8); goto CONV_END;
- conv_x123_xxx9: as_u8(dst) = shift_down(as_u32c(src), 16) ^ 0x80; goto CONV_END;
-conv_x123_xx92: as_u16(dst) = shift_down(as_u32c(src), 8) ^ 0x8000; goto CONV_END;
-conv_x123_xx29: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8)) ^ 0x80; goto CONV_END;
+conv_x123_0321: as_u32(dst) = bswap_32(as_u32c(src)) >> 8; goto CONV_END;
+conv_x123_xxx9: as_u8(dst) = (as_u32c(src) >> 16) ^ 0x80; goto CONV_END;
+conv_x123_xx92: as_u16(dst) = (as_u32c(src) >> 8) ^ 0x8000; goto CONV_END;
+conv_x123_xx29: as_u16(dst) = bswap_16(as_u32c(src) >> 8) ^ 0x80; goto CONV_END;
conv_x123_x923: as_u32(dst) = sx24(as_u32c(src) ^ 0x800000); goto CONV_END;
conv_x123_329x: as_u32(dst) = sx24s(bswap_32(as_u32c(src)) ^ 0x8000); goto CONV_END;
conv_x123_9230: as_u32(dst) = (as_u32c(src) ^ 0x800000) << 8; goto CONV_END;
-conv_x123_0329: as_u32(dst) = shift_down(bswap_32(as_u32c(src)), 8) ^ 0x80; goto CONV_END;
-conv_123x_xxx3: as_u8(dst) = shift_down(as_u32c(src), 8) & 0xff; goto CONV_END;
-conv_123x_xx32: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8)); goto CONV_END;
-conv_123x_xx23: as_u16(dst) = shift_down(as_u32c(src), 8) & 0xffff; goto CONV_END;
+conv_x123_0329: as_u32(dst) = (bswap_32(as_u32c(src)) >> 8) ^ 0x80; goto CONV_END;
+conv_123x_xxx3: as_u8(dst) = (as_u32c(src) >> 8) & 0xff; goto CONV_END;
+conv_123x_xx32: as_u16(dst) = bswap_16(as_u32c(src) >> 8); goto CONV_END;
+conv_123x_xx23: as_u16(dst) = (as_u32c(src) >> 8) & 0xffff; goto CONV_END;
conv_123x_x321: as_u32(dst) = sx24(bswap_32(as_u32c(src))); goto CONV_END;
conv_123x_123x: as_u32(dst) = sx24s(as_u32c(src)); goto CONV_END;
conv_123x_3210: as_u32(dst) = bswap_32(as_u32c(src)) << 8; goto CONV_END;
-conv_123x_0123: as_u32(dst) = shift_down(as_u32c(src), 8); goto CONV_END;
-conv_123x_xxxB: as_u8(dst) = (shift_down(as_u32c(src), 8) & 0xff) ^ 0x80; goto CONV_END;
-conv_123x_xxB2: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 8) ^ 0x80); goto CONV_END;
-conv_123x_xx2B: as_u16(dst) = (shift_down(as_u32c(src), 8) & 0xffff) ^ 0x80; goto CONV_END;
+conv_123x_0123: as_u32(dst) = as_u32c(src) >> 8; goto CONV_END;
+conv_123x_xxxB: as_u8(dst) = ((as_u32c(src) >> 8) & 0xff) ^ 0x80; goto CONV_END;
+conv_123x_xxB2: as_u16(dst) = bswap_16((as_u32c(src) >> 8) ^ 0x80); goto CONV_END;
+conv_123x_xx2B: as_u16(dst) = ((as_u32c(src) >> 8) & 0xffff) ^ 0x80; goto CONV_END;
conv_123x_xB21: as_u32(dst) = sx24(bswap_32(as_u32c(src)) ^ 0x800000); goto CONV_END;
conv_123x_12Bx: as_u32(dst) = sx24s(as_u32c(src) ^ 0x8000); goto CONV_END;
conv_123x_B210: as_u32(dst) = bswap_32(as_u32c(src) ^ 0x8000) << 8; goto CONV_END;
-conv_123x_012B: as_u32(dst) = shift_down(as_u32c(src), 8) ^ 0x80; goto CONV_END;
-conv_1234_xxx1: as_u8(dst) = shift_down(as_u32c(src), 24); goto CONV_END;
-conv_1234_xx12: as_u16(dst) = shift_down(as_u32c(src), 16); goto CONV_END;
-conv_1234_xx21: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 16)); goto CONV_END;
-conv_1234_x123: as_u32(dst) = sx24(shift_down(as_u32c(src), 8)); goto CONV_END;
+conv_123x_012B: as_u32(dst) = (as_u32c(src) >> 8) ^ 0x80; goto CONV_END;
+conv_1234_xxx1: as_u8(dst) = as_u32c(src) >> 24; goto CONV_END;
+conv_1234_xx12: as_u16(dst) = as_u32c(src) >> 16; goto CONV_END;
+conv_1234_xx21: as_u16(dst) = bswap_16(as_u32c(src) >> 16); goto CONV_END;
+conv_1234_x123: as_u32(dst) = sx24(as_u32c(src) >> 8); goto CONV_END;
conv_1234_321x: as_u32(dst) = sx24s(bswap_32(as_u32c(src)) << 8); goto CONV_END;
conv_1234_1234: as_u32(dst) = as_u32c(src); goto CONV_END;
conv_1234_4321: as_u32(dst) = bswap_32(as_u32c(src)); goto CONV_END;
-conv_1234_xxx9: as_u8(dst) = shift_down(as_u32c(src), 24) ^ 0x80; goto CONV_END;
-conv_1234_xx92: as_u16(dst) = shift_down(as_u32c(src), 16) ^ 0x8000; goto CONV_END;
-conv_1234_xx29: as_u16(dst) = bswap_16(shift_down(as_u32c(src), 16)) ^ 0x80; goto CONV_END;
-conv_1234_x923: as_u32(dst) = sx24(shift_down(as_u32c(src), 8) ^ 0x800000); goto CONV_END;
+conv_1234_xxx9: as_u8(dst) = (as_u32c(src) >> 24) ^ 0x80; goto CONV_END;
+conv_1234_xx92: as_u16(dst) = (as_u32c(src) >> 16) ^ 0x8000; goto CONV_END;
+conv_1234_xx29: as_u16(dst) = bswap_16(as_u32c(src) >> 16) ^ 0x80; goto CONV_END;
+conv_1234_x923: as_u32(dst) = sx24((as_u32c(src) >> 8) ^ 0x800000); goto CONV_END;
conv_1234_329x: as_u32(dst) = sx24s((bswap_32(as_u32c(src)) ^ 0x80) << 8); goto CONV_END;
conv_1234_9234: as_u32(dst) = as_u32c(src) ^ 0x80000000; goto CONV_END;
conv_1234_4329: as_u32(dst) = bswap_32(as_u32c(src)) ^ 0x80; goto CONV_END;
conv_1234_xxx4: as_u8(dst) = as_u32c(src) & 0xff; goto CONV_END;
conv_1234_xx43: as_u16(dst) = bswap_16(as_u32c(src)); goto CONV_END;
conv_1234_xx34: as_u16(dst) = as_u32c(src) & 0xffff; goto CONV_END;
-conv_1234_x432: as_u32(dst) = sx24(shift_down(bswap_32(as_u32c(src)), 8)); goto CONV_END;
+conv_1234_x432: as_u32(dst) = sx24(bswap_32(as_u32c(src)) >> 8); goto CONV_END;
conv_1234_234x: as_u32(dst) = sx24s(as_u32c(src) << 8); goto CONV_END;
conv_1234_xxxC: as_u8(dst) = (as_u32c(src) & 0xff) ^ 0x80; goto CONV_END;
conv_1234_xxC3: as_u16(dst) = bswap_16(as_u32c(src) ^ 0x80); goto CONV_END;
conv_1234_xx3C: as_u16(dst) = (as_u32c(src) & 0xffff) ^ 0x80; goto CONV_END;
-conv_1234_xC32: as_u32(dst) = sx24(shift_down(bswap_32(as_u32c(src)), 8) ^ 0x800000); goto CONV_END;
+conv_1234_xC32: as_u32(dst) = sx24((bswap_32(as_u32c(src)) >> 8) ^ 0x800000); goto CONV_END;
conv_1234_23Cx: as_u32(dst) = sx24s((as_u32c(src) ^ 0x80) << 8); goto CONV_END;
conv_1234_C321: as_u32(dst) = bswap_32(as_u32c(src) ^ 0x80); goto CONV_END;
conv_1234_123C: as_u32(dst) = as_u32c(src) ^ 0x80; goto CONV_END;
@@ -384,26 +382,26 @@ get16_12_92: sample = as_u16c(src) ^ 0x8
get16_12_92: sample = as_u16c(src) ^ 0x8000; goto GET16_END;
get16_12_21: sample = bswap_16(as_u16c(src)); goto GET16_END;
get16_12_A1: sample = bswap_16(as_u16c(src) ^ 0x80); goto GET16_END;
-get16_0123_12: sample = shift_down(as_u32c(src), 8); goto GET16_END;
-get16_0123_92: sample = shift_down(as_u32c(src), 8) ^ 0x8000; goto GET16_END;
-get16_1230_32: sample = bswap_16(shift_down(as_u32c(src), 8)); goto GET16_END;
-get16_1230_B2: sample = bswap_16(shift_down(as_u32c(src), 8) ^ 0x80); goto GET16_END;
-get16_1234_12: sample = shift_down(as_u32c(src), 16); goto GET16_END;
-get16_1234_92: sample = shift_down(as_u32c(src), 16) ^ 0x8000; goto GET16_END;
+get16_0123_12: sample = as_u32c(src) >> 8; goto GET16_END;
+get16_0123_92: sample = (as_u32c(src) >> 8) ^ 0x8000; goto GET16_END;
+get16_1230_32: sample = bswap_16(as_u32c(src) >> 8); goto GET16_END;
+get16_1230_B2: sample = bswap_16((as_u32c(src) >> 8) ^ 0x80); goto GET16_END;
+get16_1234_12: sample = as_u32c(src) >> 16; goto GET16_END;
+get16_1234_92: sample = (as_u32c(src) >> 16) ^ 0x8000; goto GET16_END;
get16_1234_43: sample = bswap_16(as_u32c(src)); goto GET16_END;
get16_1234_C3: sample = bswap_16(as_u32c(src) ^ 0x80); goto GET16_END;
-get16_123_12: sample = shift_down(_get_triple(src), 8); goto GET16_END;
-get16_123_92: sample = shift_down(_get_triple(src), 8) ^ 0x8000; goto GET16_END;
-get16_123_32: sample = shift_down(_get_triple_s(src), 8); goto GET16_END;
-get16_123_B2: sample = shift_down(_get_triple_s(src), 8) ^ 0x8000; goto GET16_END;
-get16_123_12_20: sample = shift_down(_get_triple(src), 4); goto GET16_END;
-get16_123_92_20: sample = shift_down(_get_triple(src), 4) ^ 0x8000; goto GET16_END;
-get16_123_32_20: sample = shift_down(_get_triple_s(src), 4); goto GET16_END;
-get16_123_B2_20: sample = shift_down(_get_triple_s(src), 4) ^ 0x8000; goto GET16_END;
-get16_123_12_18: sample = shift_down(_get_triple(src), 2); goto GET16_END;
-get16_123_92_18: sample = shift_down(_get_triple(src), 2) ^ 0x8000; goto GET16_END;
-get16_123_32_18: sample = shift_down(_get_triple_s(src), 2); goto GET16_END;
-get16_123_B2_18: sample = shift_down(_get_triple_s(src), 2) ^ 0x8000; goto GET16_END;
+get16_123_12: sample = _get_triple(src) >> 8; goto GET16_END;
+get16_123_92: sample = (_get_triple(src) >> 8) ^ 0x8000; goto GET16_END;
+get16_123_32: sample = _get_triple_s(src) >> 8; goto GET16_END;
+get16_123_B2: sample = (_get_triple_s(src) >> 8) ^ 0x8000; goto GET16_END;
+get16_123_12_20: sample = _get_triple(src) >> 4; goto GET16_END;
+get16_123_92_20: sample = (_get_triple(src) >> 4) ^ 0x8000; goto GET16_END;
+get16_123_32_20: sample = _get_triple_s(src) >> 4; goto GET16_END;
+get16_123_B2_20: sample = (_get_triple_s(src) >> 4) ^ 0x8000; goto GET16_END;
+get16_123_12_18: sample = _get_triple(src) >> 2; goto GET16_END;
+get16_123_92_18: sample = (_get_triple(src) >> 2) ^ 0x8000; goto GET16_END;
+get16_123_32_18: sample = _get_triple_s(src) >> 2; goto GET16_END;
+get16_123_B2_18: sample = (_get_triple_s(src) >> 2) ^ 0x8000; goto GET16_END;
}
#endif
@@ -431,8 +429,8 @@ static void *put16_labels[4 * 2 * 2] = {
#ifdef PUT16_END
while (0) {
-put16_12_1: as_u8(dst) = shift_down(sample, 8); goto PUT16_END;
-put16_12_9: as_u8(dst) = shift_down(sample, 8) ^ 0x80; goto PUT16_END;
+put16_12_1: as_u8(dst) = sample >> 8; goto PUT16_END;
+put16_12_9: as_u8(dst) = (sample >> 8) ^ 0x80; goto PUT16_END;
put16_12_12: as_u16(dst) = sample; goto PUT16_END;
put16_12_92: as_u16(dst) = sample ^ 0x8000; goto PUT16_END;
put16_12_21: as_u16(dst) = bswap_16(sample); goto PUT16_END;
@@ -502,8 +500,8 @@ get32_12_A100: sample = (u_int32_t)bswap
get32_12_A100: sample = (u_int32_t)bswap_16(as_u16c(src) ^ 0x80) << 16; goto GET32_END;
get32_0123_1230: sample = as_u32c(src) << 8; goto GET32_END;
get32_0123_9230: sample = (as_u32c(src) << 8) ^ 0x80000000; goto GET32_END;
-get32_1230_3210: sample = bswap_32(shift_down(as_u32c(src), 8)); goto GET32_END;
-get32_1230_B210: sample = bswap_32(shift_down(as_u32c(src), 8) ^ 0x80); goto GET32_END;
+get32_1230_3210: sample = bswap_32(as_u32c(src) >> 8); goto GET32_END;
+get32_1230_B210: sample = bswap_32((as_u32c(src) >> 8) ^ 0x80); goto GET32_END;
get32_1234_1234: sample = as_u32c(src); goto GET32_END;
get32_1234_9234: sample = as_u32c(src) ^ 0x80000000; goto GET32_END;
get32_1234_4321: sample = bswap_32(as_u32c(src)); goto GET32_END;
@@ -570,32 +568,32 @@ static void *put32_labels[4 * 2 * 2 + 4
#ifdef PUT32_END
while (0) {
-put32_1234_1: as_u8(dst) = shift_down(sample, 24); goto PUT32_END;
-put32_1234_9: as_u8(dst) = shift_down(sample, 24) ^ 0x80; goto PUT32_END;
-put32_1234_12: as_u16(dst) = shift_down(sample, 16); goto PUT32_END;
-put32_1234_92: as_u16(dst) = shift_down(sample, 16) ^ 0x8000; goto PUT32_END;
-put32_1234_21: as_u16(dst) = bswap_16(shift_down(sample, 16)); goto PUT32_END;
-put32_1234_29: as_u16(dst) = bswap_16(shift_down(sample, 16)) ^ 0x80; goto PUT32_END;
-put32_1234_0123: as_u32(dst) = sx24(shift_down(sample, 8)); goto PUT32_END;
-put32_1234_0923: as_u32(dst) = sx24(shift_down(sample, 8) ^ 0x800000); goto PUT32_END;
+put32_1234_1: as_u8(dst) = sample >> 24; goto PUT32_END;
+put32_1234_9: as_u8(dst) = (sample >> 24) ^ 0x80; goto PUT32_END;
+put32_1234_12: as_u16(dst) = sample >> 16; goto PUT32_END;
+put32_1234_92: as_u16(dst) = (sample >> 16) ^ 0x8000; goto PUT32_END;
+put32_1234_21: as_u16(dst) = bswap_16(sample >> 16); goto PUT32_END;
+put32_1234_29: as_u16(dst) = bswap_16(sample >> 16) ^ 0x80; goto PUT32_END;
+put32_1234_0123: as_u32(dst) = sx24(sample >> 8); goto PUT32_END;
+put32_1234_0923: as_u32(dst) = sx24((sample >> 8) ^ 0x800000); goto PUT32_END;
put32_1234_3210: as_u32(dst) = sx24s(bswap_32(sample) << 8); goto PUT32_END;
put32_1234_3290: as_u32(dst) = sx24s((bswap_32(sample) ^ 0x80) << 8); goto PUT32_END;
put32_1234_1234: as_u32(dst) = sample; goto PUT32_END;
put32_1234_9234: as_u32(dst) = sample ^ 0x80000000; goto PUT32_END;
put32_1234_4321: as_u32(dst) = bswap_32(sample); goto PUT32_END;
put32_1234_4329: as_u32(dst) = bswap_32(sample) ^ 0x80; goto PUT32_END;
-put32_1234_123: _put_triple(dst, shift_down(sample, 8)); goto PUT32_END;
-put32_1234_923: _put_triple(dst, shift_down(sample ^ 0x80000000, 8)); goto PUT32_END;
-put32_1234_321: _put_triple_s(dst, shift_down(sample, 8)); goto PUT32_END;
-put32_1234_329: _put_triple_s(dst, shift_down(sample ^ 0x80000000, 8)); goto PUT32_END;
-put32_1234_123_20: _put_triple(dst, shift_down(sample, 12)); goto PUT32_END;
-put32_1234_923_20: _put_triple(dst, shift_down(sample ^ 0x80000000, 12)); goto PUT32_END;
-put32_1234_321_20: _put_triple_s(dst, shift_down(sample, 12)); goto PUT32_END;
-put32_1234_329_20: _put_triple_s(dst, shift_down(sample ^ 0x80000000, 12)); goto PUT32_END;
-put32_1234_123_18: _put_triple(dst, shift_down(sample, 14)); goto PUT32_END;
-put32_1234_923_18: _put_triple(dst, shift_down(sample ^ 0x80000000, 14)); goto PUT32_END;
-put32_1234_321_18: _put_triple_s(dst, shift_down(sample, 14)); goto PUT32_END;
-put32_1234_329_18: _put_triple_s(dst, shift_down(sample ^ 0x80000000, 14)); goto PUT32_END;
+put32_1234_123: _put_triple(dst, sample >> 8); goto PUT32_END;
+put32_1234_923: _put_triple(dst, (sample ^ 0x80000000) >> 8); goto PUT32_END;
+put32_1234_321: _put_triple_s(dst, sample >> 8); goto PUT32_END;
+put32_1234_329: _put_triple_s(dst, (sample ^ 0x80000000) >> 8); goto PUT32_END;
+put32_1234_123_20: _put_triple(dst, sample >> 12); goto PUT32_END;
+put32_1234_923_20: _put_triple(dst, (sample ^ 0x80000000) >> 12); goto PUT32_END;
+put32_1234_321_20: _put_triple_s(dst, sample >> 12); goto PUT32_END;
+put32_1234_329_20: _put_triple_s(dst, (sample ^ 0x80000000) >> 12); goto PUT32_END;
+put32_1234_123_18: _put_triple(dst, sample >> 14); goto PUT32_END;
+put32_1234_923_18: _put_triple(dst, (sample ^ 0x80000000) >> 14); goto PUT32_END;
+put32_1234_321_18: _put_triple_s(dst, sample >> 14); goto PUT32_END;
+put32_1234_329_18: _put_triple_s(dst, (sample ^ 0x80000000) >> 14); goto PUT32_END;
}
#endif
@@ -1081,4 +1079,3 @@ norms_32_s32s: _norms(src, dst, 32, 1,
#undef _put_triple_le
#undef _put_triple_be
-#undef shift_down
diff -r 9e2f117f24b9 src/seq/Makefile.am
--- a/src/seq/Makefile.am Mon Oct 15 10:36:46 2007 +0200
+++ b/src/seq/Makefile.am Thu Dec 13 17:40:27 2007 +0100
+++ b/src/seq/Makefile.am Fri Dec 14 15:27:53 2007 +0100
@@ -2,6 +2,9 @@ EXTRA_LTLIBRARIES=libseq.la
libseq_la_SOURCES = seq_hw.c seq.c seq_event.c seqmid.c seq_midi_event.c \
@ -5305,7 +5585,7 @@ diff -r 9e2f117f24b9 src/seq/Makefile.am
all: libseq.la
diff -r 9e2f117f24b9 src/seq/seq.c
--- a/src/seq/seq.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/seq/seq.c Thu Dec 13 17:40:27 2007 +0100
+++ b/src/seq/seq.c Fri Dec 14 15:27:53 2007 +0100
@@ -2178,9 +2178,6 @@ void snd_seq_port_info_set_timestamp_que
* - #SND_SEQ_PORT_TYPE_MIDI_GS GS compatible device
* - #SND_SEQ_PORT_TYPE_MIDI_XG XG compatible device
@ -5584,7 +5864,7 @@ diff -r 9e2f117f24b9 src/seq/seq.c
-}
diff -r 9e2f117f24b9 src/seq/seq_event.c
--- a/src/seq/seq_event.c Mon Oct 15 10:36:46 2007 +0200
+++ b/src/seq/seq_event.c Thu Dec 13 17:40:27 2007 +0100
+++ b/src/seq/seq_event.c Fri Dec 14 15:27:53 2007 +0100
@@ -37,12 +37,8 @@ const unsigned int snd_seq_event_types[2
= FIXED_EV(SND_SEQ_EVFLG_MESSAGE),
[SND_SEQ_EVENT_PORT_SUBSCRIBED ... SND_SEQ_EVENT_PORT_UNSUBSCRIBED]
@ -5600,7 +5880,7 @@ diff -r 9e2f117f24b9 src/seq/seq_event.c
[SND_SEQ_EVENT_USR_VAR0 ... SND_SEQ_EVENT_USR_VAR4]
diff -r 9e2f117f24b9 src/seq/seq_old.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/seq/seq_old.c Thu Dec 13 17:40:27 2007 +0100
+++ b/src/seq/seq_old.c Fri Dec 14 15:27:53 2007 +0100
@@ -0,0 +1,222 @@
+/*
+ * place-holders to keep libasound linkable to old binaries
@ -5826,7 +6106,7 @@ diff -r 9e2f117f24b9 src/seq/seq_old.c
+#endif /* !DOXYGEN */
diff -r 9e2f117f24b9 test/midiloop.c
--- a/test/midiloop.c Mon Oct 15 10:36:46 2007 +0200
+++ b/test/midiloop.c Thu Dec 13 17:40:27 2007 +0100
+++ b/test/midiloop.c Fri Dec 14 15:27:53 2007 +0100
@@ -133,6 +133,8 @@ int main(int argc, char** argv)
exit(EXIT_FAILURE);
}

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Fri Dec 14 15:30:57 CET 2007 - tiwai@suse.de
- updated to 2007.12.14 HG version:
* revert aliasing in format conversions, which is rather
problematic
* add a new API for ioplug PCM (for pulse plugin)
-------------------------------------------------------------------
Thu Dec 13 17:35:57 CET 2007 - tiwai@suse.de

View File

@ -21,7 +21,7 @@ PreReq: %insserv_prereq %fillup_prereq
AutoReqProv: on
Summary: Advanced Linux Sound Architecture
Version: 1.0.15
Release: 19
Release: 20
Source: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2
Source8: 40-alsa.rules
Source11: alsasound
@ -249,6 +249,11 @@ exit 0
%{_datadir}/alsa
%changelog
* Fri Dec 14 2007 - tiwai@suse.de
- updated to 2007.12.14 HG version:
* revert aliasing in format conversions, which is rather
problematic
* add a new API for ioplug PCM (for pulse plugin)
* Thu Dec 13 2007 - tiwai@suse.de
- updated to 2007.12.13 HG version:
* Fix segfault with softvol plugin