summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2002-04-24 14:41:55 +0000
committerJaroslav Kysela <perex@perex.cz>2002-04-24 14:41:55 +0000
commitf23813b7e98bc6e0db7413ecb330db7e5f1b2aa9 (patch)
treedadf7e8ae3d5835dcf9f70a9292bf51d006c1263
parentc39d1a665d265b80770f62fed565854ed1578426 (diff)
downloadalsa-lib-f23813b7e98bc6e0db7413ecb330db7e5f1b2aa9.tar.gz
Added HAVE_SOFT_FLOAT (--with-softfloat)
-rw-r--r--INSTALL8
-rw-r--r--acconfig.h3
-rw-r--r--configure.in5
-rw-r--r--include/pcm_plugin.h8
4 files changed, 24 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
index 2a9991d0..4939cb29 100644
--- a/INSTALL
+++ b/INSTALL
@@ -111,3 +111,11 @@ For platform names in the form cpu-vendor-os (or aliases for this)
you should look in 'config.guess' script. Target and all paths
used here are only examples and should not be directly applicable to
your system.
+
+Configuration for machines without FPU
+--------------------------------------
+
+If your machine does not have FP unit, you should use '--with-softfloat'
+option. This option disables usage of float numbers in PCM route plugin.
+ALSA could then leave much more CPU cycles for your applications, but you
+could still need some floating point emulator.
diff --git a/acconfig.h b/acconfig.h
index 535d16ff..8200eb50 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -12,3 +12,6 @@
/* NDEBUG */
#undef NDEBUG
+
+/* Do we have FPU on this machine? */
+#undef HAVE_SOFT_FLOAT
diff --git a/configure.in b/configure.in
index 8e82a804..40badb5e 100644
--- a/configure.in
+++ b/configure.in
@@ -85,6 +85,7 @@ AC_HEADER_STDC
AM_CONFIG_HEADER(include/config.h)
AC_CHECK_HEADERS(sound/asound.h)
+
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
@@ -120,6 +121,10 @@ else
AC_MSG_RESULT(no)
fi
+AC_ARG_WITH(softfloat,
+ [ --with-softfloat do you have floating point unit on this machine? (optional)],
+ [ AC_DEFINE(HAVE_SOFT_FLOAT, "1")],)
+
dnl Check for architecture
AC_MSG_CHECKING(for architecture)
case "$target" in
diff --git a/include/pcm_plugin.h b/include/pcm_plugin.h
index 6cd8acd8..e675f15f 100644
--- a/include/pcm_plugin.h
+++ b/include/pcm_plugin.h
@@ -31,6 +31,8 @@
#ifndef __ALSA_PCM_PLUGIN_H
+#include "config.h"
+
/**
* \defgroup PCM_Plugins PCM Plugins
* \ingroup PCM
@@ -41,7 +43,13 @@
#define SND_PCM_PLUGIN_RATE_MIN 4000 /**< minimal rate for the rate plugin */
#define SND_PCM_PLUGIN_RATE_MAX 192000 /**< maximal rate for the rate plugin */
+/* ROUTE_FLOAT should be set to 0 for machines without FP unit - like iPAQ */
+#ifdef HAVE_SOFT_FLOAT
+#define SND_PCM_PLUGIN_ROUTE_FLOAT 0 /**< use integers for route plugin */
+#else
#define SND_PCM_PLUGIN_ROUTE_FLOAT 1 /**< use floats for route plugin */
+#endif
+
#define SND_PCM_PLUGIN_ROUTE_RESOLUTION 16 /**< integer resolution for route plugin */
#if SND_PCM_PLUGIN_ROUTE_FLOAT