This commit is contained in:
parent
c97a195225
commit
d399150833
@ -1,20 +0,0 @@
|
||||
--- src/pcm/pcm_hw.c
|
||||
+++ src/pcm/pcm_hw.c
|
||||
@@ -1015,8 +1015,6 @@ int snd_pcm_hw_open_fd(snd_pcm_t **pcmp,
|
||||
pcm->poll_fd = fd;
|
||||
pcm->poll_events = info.stream == SND_PCM_STREAM_PLAYBACK ? POLLOUT : POLLIN;
|
||||
|
||||
- *pcmp = pcm;
|
||||
-
|
||||
ret = snd_pcm_hw_mmap_status(pcm);
|
||||
if (ret < 0) {
|
||||
snd_pcm_close(pcm);
|
||||
@@ -1027,6 +1025,8 @@ int snd_pcm_hw_open_fd(snd_pcm_t **pcmp,
|
||||
snd_pcm_close(pcm);
|
||||
return ret;
|
||||
}
|
||||
+
|
||||
+ *pcmp = pcm;
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
diff -r 9005d28a1f9e configure.in
|
||||
--- a/configure.in Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/configure.in Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/configure.in Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -336,6 +336,23 @@ AC_ARG_ENABLE(alisp,
|
||||
AC_ARG_ENABLE(alisp,
|
||||
AS_HELP_STRING([--disable-alisp], [disable the alisp component]),
|
||||
@ -93,7 +93,7 @@ diff -r 9005d28a1f9e configure.in
|
||||
+
|
||||
diff -r 9005d28a1f9e doc/doxygen.cfg
|
||||
--- a/doc/doxygen.cfg Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/doc/doxygen.cfg Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/doc/doxygen.cfg Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -45,6 +45,7 @@ INPUT = index.doxygen \
|
||||
../src/pcm/pcm_mmap.c \
|
||||
../src/pcm/pcm_plugin.c \
|
||||
@ -102,9 +102,17 @@ diff -r 9005d28a1f9e doc/doxygen.cfg
|
||||
../src/pcm/pcm_shm.c \
|
||||
../src/pcm/pcm_null.c \
|
||||
../src/pcm/pcm_copy.c \
|
||||
@@ -70,6 +71,7 @@ INPUT = index.doxygen \
|
||||
../src/pcm/pcm_softvol.c \
|
||||
../src/pcm/pcm_extplug.c \
|
||||
../src/pcm/pcm_ioplug.c \
|
||||
+ ../src/pcm/pcm_empty.c \
|
||||
../src/pcm/pcm_misc.c \
|
||||
../src/pcm/pcm_simple.c \
|
||||
../src/rawmidi \
|
||||
diff -r 9005d28a1f9e include/Makefile.am
|
||||
--- a/include/Makefile.am Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/include/Makefile.am Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/include/Makefile.am Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -5,16 +5,59 @@ alsaincludedir = ${includedir}/alsa
|
||||
|
||||
alsainclude_HEADERS = asoundlib.h asoundef.h \
|
||||
@ -175,7 +183,7 @@ diff -r 9005d28a1f9e include/Makefile.am
|
||||
ln -s $(top_srcdir)/include alsa
|
||||
diff -r 9005d28a1f9e include/asoundlib-head.h
|
||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||
+++ b/include/asoundlib-head.h Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/include/asoundlib-head.h Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -0,0 +1,48 @@
|
||||
+/**
|
||||
+ * \file include/asoundlib.h
|
||||
@ -227,7 +235,7 @@ diff -r 9005d28a1f9e include/asoundlib-head.h
|
||||
+#include <alsa/conf.h>
|
||||
diff -r 9005d28a1f9e include/asoundlib-tail.h
|
||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||
+++ b/include/asoundlib-tail.h Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/include/asoundlib-tail.h Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -0,0 +1,2 @@
|
||||
+
|
||||
+#endif /* __ASOUNDLIB_H */
|
||||
@ -299,7 +307,7 @@ diff -r 9005d28a1f9e include/asoundlib.h
|
||||
-#endif /* __ASOUNDLIB_H */
|
||||
diff -r 9005d28a1f9e include/pcm.h
|
||||
--- a/include/pcm.h Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/include/pcm.h Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/include/pcm.h Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -362,7 +362,9 @@ enum _snd_pcm_type {
|
||||
SND_PCM_TYPE_IOPLUG,
|
||||
/** External filter plugin */
|
||||
@ -313,7 +321,7 @@ diff -r 9005d28a1f9e include/pcm.h
|
||||
/** PCM type */
|
||||
diff -r 9005d28a1f9e modules/mixer/simple/Makefile.am
|
||||
--- a/modules/mixer/simple/Makefile.am Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/modules/mixer/simple/Makefile.am Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/modules/mixer/simple/Makefile.am Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -1,4 +1,5 @@ pkglibdir = @ALSA_PLUGIN_DIR@/smixer
|
||||
pkglibdir = @ALSA_PLUGIN_DIR@/smixer
|
||||
+pythonlibs = @PYTHON_LIBS@
|
||||
@ -343,7 +351,7 @@ diff -r 9005d28a1f9e modules/mixer/simple/Makefile.am
|
||||
+endif
|
||||
diff -r 9005d28a1f9e modules/mixer/simple/python.c
|
||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||
+++ b/modules/mixer/simple/python.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/modules/mixer/simple/python.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -0,0 +1,1002 @@
|
||||
+/*
|
||||
+ * Mixer Interface - python binding simple abstact module
|
||||
@ -1349,7 +1357,7 @@ diff -r 9005d28a1f9e modules/mixer/simple/python.c
|
||||
+}
|
||||
diff -r 9005d28a1f9e modules/mixer/simple/python/common.py
|
||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||
+++ b/modules/mixer/simple/python/common.py Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/modules/mixer/simple/python/common.py Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -0,0 +1,228 @@
|
||||
+#!/usr/bin/python
|
||||
+# -*- coding: utf-8 -*-
|
||||
@ -1581,7 +1589,7 @@ diff -r 9005d28a1f9e modules/mixer/simple/python/common.py
|
||||
+ mixer.register()
|
||||
diff -r 9005d28a1f9e modules/mixer/simple/python/hda.py
|
||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||
+++ b/modules/mixer/simple/python/hda.py Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/modules/mixer/simple/python/hda.py Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -0,0 +1,42 @@
|
||||
+#!/usr/bin/python
|
||||
+# -*- coding: utf-8 -*-
|
||||
@ -1627,7 +1635,7 @@ diff -r 9005d28a1f9e modules/mixer/simple/python/hda.py
|
||||
+init()
|
||||
diff -r 9005d28a1f9e modules/mixer/simple/python/main.py
|
||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||
+++ b/modules/mixer/simple/python/main.py Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/modules/mixer/simple/python/main.py Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -0,0 +1,24 @@
|
||||
+#!/usr/bin/python
|
||||
+# -*- coding: utf-8 -*-
|
||||
@ -1655,7 +1663,7 @@ diff -r 9005d28a1f9e modules/mixer/simple/python/main.py
|
||||
+alsacode(module)
|
||||
diff -r 9005d28a1f9e src/conf/cards/Makefile.am
|
||||
--- a/src/conf/cards/Makefile.am Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/conf/cards/Makefile.am Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/conf/cards/Makefile.am Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -35,6 +35,7 @@ cfg_files = aliases.conf \
|
||||
PC-Speaker.conf \
|
||||
PMac.conf \
|
||||
@ -1666,7 +1674,7 @@ diff -r 9005d28a1f9e src/conf/cards/Makefile.am
|
||||
SI7018.conf \
|
||||
diff -r 9005d28a1f9e src/conf/cards/PMac.conf
|
||||
--- a/src/conf/cards/PMac.conf Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/conf/cards/PMac.conf Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/conf/cards/PMac.conf Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -24,14 +24,14 @@ PMac.pcm.default {
|
||||
type plug
|
||||
slave.pcm {
|
||||
@ -1686,7 +1694,7 @@ diff -r 9005d28a1f9e src/conf/cards/PMac.conf
|
||||
}
|
||||
diff -r 9005d28a1f9e src/conf/cards/PMacToonie.conf
|
||||
--- a/src/conf/cards/PMacToonie.conf Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/conf/cards/PMacToonie.conf Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/conf/cards/PMacToonie.conf Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -33,7 +33,7 @@ PMacToonie.pcm.default {
|
||||
type softvol
|
||||
slave.pcm {
|
||||
@ -1707,7 +1715,7 @@ diff -r 9005d28a1f9e src/conf/cards/PMacToonie.conf
|
||||
}
|
||||
diff -r 9005d28a1f9e src/conf/cards/PS3.conf
|
||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||
+++ b/src/conf/cards/PS3.conf Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/conf/cards/PS3.conf Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -0,0 +1,46 @@
|
||||
+#
|
||||
+# Configuration for PS3
|
||||
@ -1757,7 +1765,7 @@ diff -r 9005d28a1f9e src/conf/cards/PS3.conf
|
||||
+}
|
||||
diff -r 9005d28a1f9e src/conf/smixer.conf
|
||||
--- a/src/conf/smixer.conf Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/conf/smixer.conf Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/conf/smixer.conf Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -1,3 +1,4 @@ usb {
|
||||
+_full smixer-python.so
|
||||
usb {
|
||||
@ -1765,7 +1773,7 @@ diff -r 9005d28a1f9e src/conf/smixer.conf
|
||||
lib smixer-usb.so
|
||||
diff -r 9005d28a1f9e src/control/namehint.c
|
||||
--- a/src/control/namehint.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/control/namehint.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/control/namehint.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -90,6 +90,7 @@ static int get_dev_name1(struct hint_lis
|
||||
if (list->device < 0)
|
||||
return 0;
|
||||
@ -1802,7 +1810,7 @@ diff -r 9005d28a1f9e src/control/namehint.c
|
||||
}
|
||||
diff -r 9005d28a1f9e src/mixer/simple.c
|
||||
--- a/src/mixer/simple.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/mixer/simple.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/mixer/simple.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -38,7 +38,6 @@
|
||||
#include <math.h>
|
||||
#include "mixer_local.h"
|
||||
@ -1813,7 +1821,7 @@ diff -r 9005d28a1f9e src/mixer/simple.c
|
||||
* \brief Register mixer simple element class
|
||||
diff -r 9005d28a1f9e src/mixer/simple_abst.c
|
||||
--- a/src/mixer/simple_abst.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/mixer/simple_abst.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/mixer/simple_abst.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -55,6 +55,9 @@ typedef struct _class_priv {
|
||||
} class_priv_t;
|
||||
|
||||
@ -2024,7 +2032,7 @@ diff -r 9005d28a1f9e src/mixer/simple_abst.c
|
||||
if (top)
|
||||
diff -r 9005d28a1f9e src/pcm/Makefile.am
|
||||
--- a/src/pcm/Makefile.am Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/Makefile.am Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/Makefile.am Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -99,6 +99,9 @@ if BUILD_PCM_PLUGIN_IOPLUG
|
||||
if BUILD_PCM_PLUGIN_IOPLUG
|
||||
libpcm_la_SOURCES += pcm_ioplug.c
|
||||
@ -2037,7 +2045,7 @@ diff -r 9005d28a1f9e src/pcm/Makefile.am
|
||||
|
||||
diff -r 9005d28a1f9e src/pcm/pcm.c
|
||||
--- a/src/pcm/pcm.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -1983,7 +1983,8 @@ static char *build_in_pcms[] = {
|
||||
static char *build_in_pcms[] = {
|
||||
"adpcm", "alaw", "copy", "dmix", "file", "hooks", "hw", "ladspa", "lfloat",
|
||||
@ -2050,7 +2058,7 @@ diff -r 9005d28a1f9e src/pcm/pcm.c
|
||||
static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name,
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_dmix.c
|
||||
--- a/src/pcm/pcm_dmix.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm_dmix.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_dmix.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -139,12 +139,14 @@ static void dmix_server_free(snd_pcm_dir
|
||||
* FIXME: optimize it for different architectures
|
||||
*/
|
||||
@ -2069,7 +2077,7 @@ diff -r 9005d28a1f9e src/pcm/pcm_dmix.c
|
||||
static void mix_areas(snd_pcm_direct_t *dmix,
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_dmix_generic.c
|
||||
--- a/src/pcm/pcm_dmix_generic.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm_dmix_generic.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_dmix_generic.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -119,14 +119,14 @@ static void mix_select_callbacks(snd_pcm
|
||||
#else
|
||||
|
||||
@ -2155,7 +2163,7 @@ diff -r 9005d28a1f9e src/pcm/pcm_dmix_generic.c
|
||||
+#endif
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_dmix_i386.c
|
||||
--- a/src/pcm/pcm_dmix_i386.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm_dmix_i386.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_dmix_i386.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -30,33 +30,45 @@
|
||||
#undef MIX_AREAS3_CMOV
|
||||
#undef LOCK_PREFIX
|
||||
@ -2224,7 +2232,7 @@ diff -r 9005d28a1f9e src/pcm/pcm_dmix_i386.c
|
||||
} else {
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_dmix_x86_64.c
|
||||
--- a/src/pcm/pcm_dmix_x86_64.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm_dmix_x86_64.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_dmix_x86_64.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -22,26 +22,37 @@
|
||||
#undef MIX_AREAS3
|
||||
#undef LOCK_PREFIX
|
||||
@ -2280,7 +2288,7 @@ diff -r 9005d28a1f9e src/pcm/pcm_dmix_x86_64.c
|
||||
dmix->u.dmix.mix_areas1 = smp > 1 ? mix_areas1_smp : mix_areas1;
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_hw.c
|
||||
--- a/src/pcm/pcm_hw.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm_hw.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_hw.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -88,14 +88,11 @@ typedef struct {
|
||||
int version;
|
||||
int fd;
|
||||
@ -2562,6 +2570,24 @@ diff -r 9005d28a1f9e src/pcm/pcm_hw.c
|
||||
hw->sync_ptr_ioctl = sync_ptr_ioctl;
|
||||
/* no restriction */
|
||||
hw->format = SND_PCM_FORMAT_UNKNOWN;
|
||||
@@ -1159,8 +1015,6 @@ int snd_pcm_hw_open_fd(snd_pcm_t **pcmp,
|
||||
pcm->poll_fd = fd;
|
||||
pcm->poll_events = info.stream == SND_PCM_STREAM_PLAYBACK ? POLLOUT : POLLIN;
|
||||
|
||||
- *pcmp = pcm;
|
||||
-
|
||||
ret = snd_pcm_hw_mmap_status(pcm);
|
||||
if (ret < 0) {
|
||||
snd_pcm_close(pcm);
|
||||
@@ -1171,6 +1025,8 @@ int snd_pcm_hw_open_fd(snd_pcm_t **pcmp,
|
||||
snd_pcm_close(pcm);
|
||||
return ret;
|
||||
}
|
||||
+
|
||||
+ *pcmp = pcm;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1183,7 +1039,7 @@ int snd_pcm_hw_open_fd(snd_pcm_t **pcmp,
|
||||
* \param subdevice Number of subdevice
|
||||
* \param stream PCM Stream
|
||||
@ -2632,7 +2658,7 @@ diff -r 9005d28a1f9e src/pcm/pcm_hw.c
|
||||
if (nonblock && ! (mode & SND_PCM_NONBLOCK)) {
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_local.h
|
||||
--- a/src/pcm/pcm_local.h Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm_local.h Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_local.h Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -266,8 +266,10 @@ snd_pcm_sframes_t snd_pcm_write_areas(sn
|
||||
snd_pcm_sframes_t snd_pcm_write_areas(snd_pcm_t *pcm, const snd_pcm_channel_area_t *areas,
|
||||
snd_pcm_uframes_t offset, snd_pcm_uframes_t size,
|
||||
@ -2648,7 +2674,7 @@ diff -r 9005d28a1f9e src/pcm/pcm_local.h
|
||||
return pcm->ops->channel_info(pcm, info);
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_mmap.c
|
||||
--- a/src/pcm/pcm_mmap.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm_mmap.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_mmap.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -531,7 +531,8 @@ int snd_pcm_munmap(snd_pcm_t *pcm)
|
||||
return 0;
|
||||
}
|
||||
@ -2702,7 +2728,7 @@ diff -r 9005d28a1f9e src/pcm/pcm_mmap.c
|
||||
return xfer;
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_mmap_emul.c
|
||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||
+++ b/src/pcm/pcm_mmap_emul.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_mmap_emul.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -0,0 +1,485 @@
|
||||
+/**
|
||||
+ * \file pcm/pcm_mmap_emul.c
|
||||
@ -3191,7 +3217,7 @@ diff -r 9005d28a1f9e src/pcm/pcm_mmap_emul.c
|
||||
+#endif
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_softvol.c
|
||||
--- a/src/pcm/pcm_softvol.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm_softvol.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_softvol.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -101,7 +101,7 @@ typedef union {
|
||||
int i;
|
||||
short s[2];
|
||||
@ -3212,7 +3238,7 @@ diff -r 9005d28a1f9e src/pcm/pcm_softvol.c
|
||||
if (amp > (int)0x7fffffff)
|
||||
diff -r 9005d28a1f9e src/pcm/pcm_symbols.c
|
||||
--- a/src/pcm/pcm_symbols.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/pcm/pcm_symbols.c Thu Jul 19 14:55:51 2007 +0200
|
||||
+++ b/src/pcm/pcm_symbols.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -49,6 +49,7 @@ extern const char *_snd_module_pcm_softv
|
||||
extern const char *_snd_module_pcm_softvol;
|
||||
extern const char *_snd_module_pcm_extplug;
|
||||
@ -3221,3 +3247,155 @@ diff -r 9005d28a1f9e src/pcm/pcm_symbols.c
|
||||
|
||||
static const char **snd_pcm_open_objects[] = {
|
||||
&_snd_module_pcm_hw,
|
||||
diff -r 9005d28a1f9e src/seq/seq_midi_event.c
|
||||
--- a/src/seq/seq_midi_event.c Mon Jun 11 10:52:17 2007 +0200
|
||||
+++ b/src/seq/seq_midi_event.c Tue Aug 14 16:14:08 2007 +0200
|
||||
@@ -45,10 +45,9 @@ struct snd_midi_event {
|
||||
};
|
||||
|
||||
|
||||
-/* queue type */
|
||||
-/* from 0 to 7 are normal commands (note off, on, etc.) */
|
||||
-#define ST_NOTEOFF 0
|
||||
-#define ST_NOTEON 1
|
||||
+/* event type, index into status_event[] */
|
||||
+/* from 0 to 6 are normal commands (note off, on, etc.) for 0x8?-0xe? */
|
||||
+#define ST_INVALID 7
|
||||
#define ST_SPECIAL 8
|
||||
#define ST_SYSEX ST_SPECIAL
|
||||
/* from 8 to 15 are events for 0xf0-0xf7 */
|
||||
@@ -85,32 +84,33 @@ static struct status_event_list_t {
|
||||
event_encode_t encode;
|
||||
event_decode_t decode;
|
||||
} status_event[] = {
|
||||
- /* 0x80 - 0xf0 */
|
||||
- {SND_SEQ_EVENT_NOTEOFF, 2, note_event, note_decode},
|
||||
- {SND_SEQ_EVENT_NOTEON, 2, note_event, note_decode},
|
||||
- {SND_SEQ_EVENT_KEYPRESS, 2, note_event, note_decode},
|
||||
- {SND_SEQ_EVENT_CONTROLLER, 2, two_param_ctrl_event, two_param_decode},
|
||||
- {SND_SEQ_EVENT_PGMCHANGE, 1, one_param_ctrl_event, one_param_decode},
|
||||
- {SND_SEQ_EVENT_CHANPRESS, 1, one_param_ctrl_event, one_param_decode},
|
||||
- {SND_SEQ_EVENT_PITCHBEND, 2, pitchbend_ctrl_event, pitchbend_decode},
|
||||
- {SND_SEQ_EVENT_NONE, 0, NULL, NULL}, /* 0xf0 */
|
||||
+ /* 0x80 - 0xef */
|
||||
+ {SND_SEQ_EVENT_NOTEOFF, 2, note_event, note_decode},
|
||||
+ {SND_SEQ_EVENT_NOTEON, 2, note_event, note_decode},
|
||||
+ {SND_SEQ_EVENT_KEYPRESS, 2, note_event, note_decode},
|
||||
+ {SND_SEQ_EVENT_CONTROLLER, 2, two_param_ctrl_event, two_param_decode},
|
||||
+ {SND_SEQ_EVENT_PGMCHANGE, 1, one_param_ctrl_event, one_param_decode},
|
||||
+ {SND_SEQ_EVENT_CHANPRESS, 1, one_param_ctrl_event, one_param_decode},
|
||||
+ {SND_SEQ_EVENT_PITCHBEND, 2, pitchbend_ctrl_event, pitchbend_decode},
|
||||
+ /* invalid */
|
||||
+ {SND_SEQ_EVENT_NONE, -1, NULL, NULL},
|
||||
/* 0xf0 - 0xff */
|
||||
- {SND_SEQ_EVENT_SYSEX, 1, NULL, NULL}, /* sysex: 0xf0 */
|
||||
- {SND_SEQ_EVENT_QFRAME, 1, one_param_event, one_param_decode}, /* 0xf1 */
|
||||
- {SND_SEQ_EVENT_SONGPOS, 2, songpos_event, songpos_decode}, /* 0xf2 */
|
||||
- {SND_SEQ_EVENT_SONGSEL, 1, one_param_event, one_param_decode}, /* 0xf3 */
|
||||
- {SND_SEQ_EVENT_NONE, 0, NULL, NULL}, /* 0xf4 */
|
||||
- {SND_SEQ_EVENT_NONE, 0, NULL, NULL}, /* 0xf5 */
|
||||
- {SND_SEQ_EVENT_TUNE_REQUEST, 0, NULL, NULL}, /* 0xf6 */
|
||||
- {SND_SEQ_EVENT_NONE, 0, NULL, NULL}, /* 0xf7 */
|
||||
- {SND_SEQ_EVENT_CLOCK, 0, NULL, NULL}, /* 0xf8 */
|
||||
- {SND_SEQ_EVENT_NONE, 0, NULL, NULL}, /* 0xf9 */
|
||||
- {SND_SEQ_EVENT_START, 0, NULL, NULL}, /* 0xfa */
|
||||
- {SND_SEQ_EVENT_CONTINUE, 0, NULL, NULL}, /* 0xfb */
|
||||
- {SND_SEQ_EVENT_STOP, 0, NULL, NULL}, /* 0xfc */
|
||||
- {SND_SEQ_EVENT_NONE, 0, NULL, NULL}, /* 0xfd */
|
||||
- {SND_SEQ_EVENT_SENSING, 0, NULL, NULL}, /* 0xfe */
|
||||
- {SND_SEQ_EVENT_RESET, 0, NULL, NULL}, /* 0xff */
|
||||
+ {SND_SEQ_EVENT_SYSEX, 1, NULL, NULL}, /* sysex: 0xf0 */
|
||||
+ {SND_SEQ_EVENT_QFRAME, 1, one_param_event, one_param_decode}, /* 0xf1 */
|
||||
+ {SND_SEQ_EVENT_SONGPOS, 2, songpos_event, songpos_decode}, /* 0xf2 */
|
||||
+ {SND_SEQ_EVENT_SONGSEL, 1, one_param_event, one_param_decode}, /* 0xf3 */
|
||||
+ {SND_SEQ_EVENT_NONE, -1, NULL, NULL}, /* 0xf4 */
|
||||
+ {SND_SEQ_EVENT_NONE, -1, NULL, NULL}, /* 0xf5 */
|
||||
+ {SND_SEQ_EVENT_TUNE_REQUEST, 0, NULL, NULL}, /* 0xf6 */
|
||||
+ {SND_SEQ_EVENT_NONE, -1, NULL, NULL}, /* 0xf7 */
|
||||
+ {SND_SEQ_EVENT_CLOCK, 0, NULL, NULL}, /* 0xf8 */
|
||||
+ {SND_SEQ_EVENT_NONE, -1, NULL, NULL}, /* 0xf9 */
|
||||
+ {SND_SEQ_EVENT_START, 0, NULL, NULL}, /* 0xfa */
|
||||
+ {SND_SEQ_EVENT_CONTINUE, 0, NULL, NULL}, /* 0xfb */
|
||||
+ {SND_SEQ_EVENT_STOP, 0, NULL, NULL}, /* 0xfc */
|
||||
+ {SND_SEQ_EVENT_NONE, -1, NULL, NULL}, /* 0xfd */
|
||||
+ {SND_SEQ_EVENT_SENSING, 0, NULL, NULL}, /* 0xfe */
|
||||
+ {SND_SEQ_EVENT_RESET, 0, NULL, NULL}, /* 0xff */
|
||||
};
|
||||
|
||||
static int extra_decode_ctrl14(snd_midi_event_t *dev, unsigned char *buf, int len, const snd_seq_event_t *ev);
|
||||
@@ -153,6 +153,7 @@ int snd_midi_event_new(size_t bufsize, s
|
||||
}
|
||||
dev->bufsize = bufsize;
|
||||
dev->lastcmd = 0xff;
|
||||
+ dev->type = ST_INVALID;
|
||||
*rdev = dev;
|
||||
return 0;
|
||||
}
|
||||
@@ -191,7 +192,7 @@ inline static void reset_encode(snd_midi
|
||||
{
|
||||
dev->read = 0;
|
||||
dev->qlen = 0;
|
||||
- dev->type = 0;
|
||||
+ dev->type = ST_INVALID;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -307,28 +308,30 @@ int snd_midi_event_encode_byte(snd_midi_
|
||||
ev->type = status_event[ST_SPECIAL + c - 0xf0].event;
|
||||
ev->flags &= ~SND_SEQ_EVENT_LENGTH_MASK;
|
||||
ev->flags |= SND_SEQ_EVENT_LENGTH_FIXED;
|
||||
- return 1;
|
||||
- }
|
||||
-
|
||||
- if (dev->qlen > 0) {
|
||||
- /* rest of command */
|
||||
- dev->buf[dev->read++] = c;
|
||||
- if (dev->type != ST_SYSEX)
|
||||
- dev->qlen--;
|
||||
+ return ev->type != SND_SEQ_EVENT_NONE;
|
||||
+ }
|
||||
+
|
||||
+ if ((c & 0x80) &&
|
||||
+ (c != MIDI_CMD_COMMON_SYSEX_END || dev->type != ST_SYSEX)) {
|
||||
+ /* new command */
|
||||
+ dev->buf[0] = c;
|
||||
+ if ((c & 0xf0) == 0xf0) /* system message */
|
||||
+ dev->type = (c & 0x0f) + ST_SPECIAL;
|
||||
+ else
|
||||
+ dev->type = (c >> 4) & 0x07;
|
||||
+ dev->read = 1;
|
||||
+ dev->qlen = status_event[dev->type].qlen;
|
||||
} else {
|
||||
- /* new command */
|
||||
- dev->read = 1;
|
||||
- if (c & 0x80) {
|
||||
- dev->buf[0] = c;
|
||||
- if ((c & 0xf0) == 0xf0) /* special events */
|
||||
- dev->type = (c & 0x0f) + ST_SPECIAL;
|
||||
- else
|
||||
- dev->type = (c >> 4) & 0x07;
|
||||
- dev->qlen = status_event[dev->type].qlen;
|
||||
+ if (dev->qlen > 0) {
|
||||
+ /* rest of command */
|
||||
+ dev->buf[dev->read++] = c;
|
||||
+ if (dev->type != ST_SYSEX)
|
||||
+ dev->qlen--;
|
||||
} else {
|
||||
- /* process this byte as argument */
|
||||
- dev->buf[dev->read++] = c;
|
||||
+ /* running status */
|
||||
+ dev->buf[1] = c;
|
||||
dev->qlen = status_event[dev->type].qlen - 1;
|
||||
+ dev->read = 2;
|
||||
}
|
||||
}
|
||||
if (dev->qlen == 0) {
|
||||
@@ -337,6 +340,8 @@ int snd_midi_event_encode_byte(snd_midi_
|
||||
ev->flags |= SND_SEQ_EVENT_LENGTH_FIXED;
|
||||
if (status_event[dev->type].encode) /* set data values */
|
||||
status_event[dev->type].encode(dev, ev);
|
||||
+ if (dev->type >= ST_SPECIAL)
|
||||
+ dev->type = ST_INVALID;
|
||||
rc = 1;
|
||||
} else if (dev->type == ST_SYSEX) {
|
||||
if (c == MIDI_CMD_COMMON_SYSEX_END ||
|
||||
|
@ -1,3 +1,12 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 14 16:26:18 CEST 2007 - tiwai@suse.de
|
||||
|
||||
- Add missing pcm_empty.c in doxygen configuration
|
||||
- seq_midi_event: fix parsing of F9/FD bytes
|
||||
- seq_midi_event: fix parsing of missing data bytes
|
||||
- seq_midi_event: prevent running status after system messages
|
||||
- seq_midi_event: fix encoding of data bytes after end of sysex
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 6 16:13:08 CEST 2007 - schwab@suse.de
|
||||
|
||||
|
10
alsa.spec
10
alsa.spec
@ -21,7 +21,7 @@ PreReq: %insserv_prereq %fillup_prereq
|
||||
Autoreqprov: on
|
||||
Summary: Advanced Linux Sound Architecture
|
||||
Version: 1.0.14
|
||||
Release: 19
|
||||
Release: 22
|
||||
Source: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2
|
||||
Source8: 40-alsa.rules
|
||||
Source11: alsasound
|
||||
@ -36,7 +36,6 @@ Source30: all_notes_off
|
||||
Source31: all_notes_off.bin
|
||||
Source32: all_notes_off.mid
|
||||
Patch: alsa-lib-hg-fixes.diff
|
||||
Patch1: alsa-double-free.diff
|
||||
URL: http://www.alsa-project.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
@ -115,7 +114,6 @@ Authors:
|
||||
%prep
|
||||
%setup -q -n alsa-lib-%{package_version}
|
||||
%patch -p1
|
||||
%patch1
|
||||
%{?suse_update_config:%{suse_update_config -f .}}
|
||||
|
||||
%build
|
||||
@ -257,6 +255,12 @@ exit 0
|
||||
%{_datadir}/alsa
|
||||
|
||||
%changelog
|
||||
* Tue Aug 14 2007 - tiwai@suse.de
|
||||
- Add missing pcm_empty.c in doxygen configuration
|
||||
- seq_midi_event: fix parsing of F9/FD bytes
|
||||
- seq_midi_event: fix parsing of missing data bytes
|
||||
- seq_midi_event: prevent running status after system messages
|
||||
- seq_midi_event: fix encoding of data bytes after end of sysex
|
||||
* Mon Aug 06 2007 - schwab@suse.de
|
||||
- Fix double free.
|
||||
* Thu Aug 02 2007 - tiwai@suse.de
|
||||
|
Loading…
Reference in New Issue
Block a user