summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Lantinga <slouken@libsdl.org>2017-01-06 20:43:53 -0800
committerSam Lantinga <slouken@libsdl.org>2017-01-06 20:43:53 -0800
commita8e71c7beb0fc21bffaba092c4ef5198ea97b25f (patch)
tree39b68533937079f7b950fb15366cd7503d7b16d4
parent006ec701d94f15a3e2d36e600faa7b128fa909c4 (diff)
downloadsdl-a8e71c7beb0fc21bffaba092c4ef5198ea97b25f.tar.gz
Added configure and cmake support for libsamplerate
-rw-r--r--CMakeLists.txt7
-rw-r--r--cmake/sdlchecks.cmake23
-rwxr-xr-xconfigure287
-rw-r--r--configure.in135
-rw-r--r--include/SDL_config.h.cmake3
-rw-r--r--include/SDL_config.h.in4
-rw-r--r--src/audio/SDL_audiocvt.c14
7 files changed, 294 insertions, 179 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2945e4906..00e1e46e5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -267,8 +267,6 @@ set_option(DISKAUDIO "Support the disk writer audio driver" ON)
set_option(DUMMYAUDIO "Support the dummy audio driver" ON)
set_option(VIDEO_DIRECTFB "Use DirectFB video driver" OFF)
dep_option(DIRECTFB_SHARED "Dynamically load directfb support" ON "VIDEO_DIRECTFB" OFF)
-set_option(FUSIONSOUND "Use FusionSound audio driver" OFF)
-dep_option(FUSIONSOUND_SHARED "Dynamically load fusionsound audio support" ON "FUSIONSOUND" OFF)
set_option(VIDEO_DUMMY "Use dummy video driver" ON)
set_option(VIDEO_OPENGL "Include OpenGL support" ON)
set_option(VIDEO_OPENGLES "Include OpenGL ES support" ON)
@@ -287,6 +285,10 @@ dep_option(ARTS_SHARED "Dynamically load aRts audio support" ON "ARTS" O
set_option(NAS "Support the NAS audio API" ${UNIX_SYS})
set_option(NAS_SHARED "Dynamically load NAS audio API" ${UNIX_SYS})
set_option(SNDIO "Support the sndio audio API" ${UNIX_SYS})
+set_option(FUSIONSOUND "Use FusionSound audio driver" OFF)
+dep_option(FUSIONSOUND_SHARED "Dynamically load fusionsound audio support" ON "FUSIONSOUND" OFF)
+set_option(LIBSAMPLERATE "Use libsamplerate for audio rate conversion" ${UNIX_SYS})
+dep_option(LIBSAMPLERATE_SHARED "Dynamically load libsamplerate" ON "LIBSAMPLERATE" OFF)
set_option(RPATH "Use an rpath when linking SDL" ${UNIX_SYS})
set_option(CLOCK_GETTIME "Use clock_gettime() instead of gettimeofday()" OFF)
set_option(INPUT_TSLIB "Use the Touchscreen library for input" ${UNIX_SYS})
@@ -847,6 +849,7 @@ elseif(UNIX AND NOT APPLE)
CheckNAS()
CheckSNDIO()
CheckFusionSound()
+ CheckLibSampleRate()
endif()
if(SDL_VIDEO)
diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake
index b10078192..e45ab1de7 100644
--- a/cmake/sdlchecks.cmake
+++ b/cmake/sdlchecks.cmake
@@ -316,6 +316,29 @@ macro(CheckFusionSound)
endmacro()
# Requires:
+# - LIBSAMPLERATE
+# Optional:
+# - LIBSAMPLERATE_SHARED opt
+# - HAVE_DLOPEN opt
+macro(CheckLibSampleRate)
+ if(LIBSAMPLERATE)
+ check_include_file(samplerate.h HAVE_LIBSAMPLERATE_H)
+ if(HAVE_LIBSAMPLERATE_H)
+ if(LIBSAMPLERATE_SHARED)
+ if(NOT HAVE_DLOPEN)
+ message_warn("You must have SDL_LoadObject() support for dynamic libsamplerate loading")
+ else()
+ FindLibraryAndSONAME("samplerate")
+ set(SDL_LIBSAMPLERATE_DYNAMIC "\"${SAMPLERATE_LIB_SONAME}\"")
+ endif()
+ else()
+ list(APPEND EXTRA_LDFLAGS -lsamplerate)
+ endif()
+ endif()
+ endif()
+endmacro()
+
+# Requires:
# - n/a
# Optional:
# - X11_SHARED opt
diff --git a/configure b/configure
index 173b9e79a..1babfd182 100755
--- a/configure
+++ b/configure
@@ -818,8 +818,12 @@ enable_nas
enable_nas_shared
enable_sndio
enable_sndio_shared
+enable_fusionsound
+enable_fusionsound_shared
enable_diskaudio
enable_dummyaudio
+enable_libsamplerate
+enable_libsamplerate_shared
enable_video_wayland
enable_video_wayland_qt_touch
enable_wayland_shared
@@ -840,8 +844,6 @@ enable_video_vivante
enable_video_cocoa
enable_video_directfb
enable_directfb_shared
-enable_fusionsound
-enable_fusionsound_shared
enable_video_dummy
enable_video_opengl
enable_video_opengles
@@ -1544,8 +1546,16 @@ Optional Features:
--enable-nas-shared dynamically load NAS audio support [[default=yes]]
--enable-sndio support the sndio audio API [[default=yes]]
--enable-sndio-shared dynamically load sndio audio support [[default=yes]]
+ --enable-fusionsound use FusionSound audio driver [[default=no]]
+ --enable-fusionsound-shared
+ dynamically load fusionsound audio support
+ [[default=yes]]
--enable-diskaudio support the disk writer audio driver [[default=yes]]
--enable-dummyaudio support the dummy audio driver [[default=yes]]
+ --enable-libsamplerate use libsamplerate for audio rate conversion
+ [[default=yes]]
+ --enable-libsamplerate-shared
+ dynamically load libsamplerate [[default=yes]]
--enable-video-wayland use Wayland video driver [[default=yes]]
--enable-video-wayland-qt-touch
QtWayland server support for Wayland video driver
@@ -1576,10 +1586,6 @@ Optional Features:
--enable-video-directfb use DirectFB video driver [[default=no]]
--enable-directfb-shared
dynamically load directfb support [[default=yes]]
- --enable-fusionsound use FusionSound audio driver [[default=no]]
- --enable-fusionsound-shared
- dynamically load fusionsound audio support
- [[default=yes]]
--enable-video-dummy use dummy video driver [[default=yes]]
--enable-video-opengl include OpenGL support [[default=yes]]
--enable-video-opengles include OpenGL ES support [[default=yes]]
@@ -18547,6 +18553,116 @@ $as_echo "#define SDL_AUDIO_DRIVER_SNDIO 1" >>confdefs.h
fi
}
+CheckFusionSound()
+{
+ # Check whether --enable-fusionsound was given.
+if test "${enable_fusionsound+set}" = set; then :
+ enableval=$enable_fusionsound;
+else
+ enable_fusionsound=no
+fi
+
+ if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
+ fusionsound=no
+
+ FUSIONSOUND_REQUIRED_VERSION=1.1.1
+
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FusionSound $FUSIONSOUND_REQUIRED_VERSION support" >&5
+$as_echo_n "checking for FusionSound $FUSIONSOUND_REQUIRED_VERSION support... " >&6; }
+ if test x$PKG_CONFIG != xno; then
+ if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
+ FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
+ FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
+ fusionsound=yes
+ fi
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fusionsound" >&5
+$as_echo "$fusionsound" >&6; }
+
+ if test x$fusionsound = xyes; then
+
+$as_echo "#define SDL_AUDIO_DRIVER_FUSIONSOUND 1" >>confdefs.h
+
+ SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
+
+ # Check whether --enable-fusionsound-shared was given.
+if test "${enable_fusionsound_shared+set}" = set; then :
+ enableval=$enable_fusionsound_shared;
+else
+ enable_fusionsound_shared=yes
+fi
+
+ fusionsound_shared=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FusionSound dynamic loading support" >&5
+$as_echo_n "checking for FusionSound dynamic loading support... " >&6; }
+ if test x$have_loadso != xyes && \
+ test x$enable_fusionsound_shared = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic fusionsound loading" >&5
+$as_echo "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic fusionsound loading" >&2;}
+ fi
+ if test x$have_loadso = xyes && \
+ test x$enable_fusionsound_shared = xyes; then
+
+cat >>confdefs.h <<_ACEOF
+#define SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "libfusionsound.so"
+_ACEOF
+
+ fusionsound_shared=yes
+ SUMMARY_audio="${SUMMARY_audio} fusionsound(dynamic)"
+ else
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
+ SUMMARY_audio="${SUMMARY_audio} fusionsound"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fusionsound_shared" >&5
+$as_echo "$fusionsound_shared" >&6; }
+
+ have_audio=yes
+ fi
+ fi
+}
+
CheckDiskAudio()
{
# Check whether --enable-diskaudio was given.
@@ -18583,6 +18699,52 @@ $as_echo "#define SDL_AUDIO_DRIVER_DUMMY 1" >>confdefs.h
fi
}
+CheckLibSampleRate()
+{
+ # Check whether --enable-libsamplerate was given.
+if test "${enable_libsamplerate+set}" = set; then :
+ enableval=$enable_libsamplerate;
+else
+ enable_libsamplerate=yes
+fi
+
+ if test x$enable_libsamplerate = xyes; then
+ ac_fn_c_check_header_mongrel "$LINENO" "samplerate.h" "ac_cv_header_samplerate_h" "$ac_includes_default"
+if test "x$ac_cv_header_samplerate_h" = xyes; then :
+ have_samplerate_h_hdr=yes
+else
+ have_samplerate_h_hdr=no
+fi
+
+
+ if test x$have_samplerate_h_hdr = xyes; then
+
+$as_echo "#define HAVE_LIBSAMPLERATE_H 1" >>confdefs.h
+
+
+ # Check whether --enable-libsamplerate-shared was given.
+if test "${enable_libsamplerate_shared+set}" = set; then :
+ enableval=$enable_libsamplerate_shared;
+else
+ enable_libsamplerate_shared=yes
+fi
+
+
+ if test x$enable_libsamplerate_shared = xyes; then
+ samplerate_lib=`find_lib "libsamplerate.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`
+ if test x$samplerate_lib != x; then
+ echo "-- dynamic samplerate -> $samplerate_lib"
+
+cat >>confdefs.h <<_ACEOF
+#define SDL_LIBSAMPLERATE_DYNAMIC "$samplerate_lib"
+_ACEOF
+
+ fi
+ fi
+ fi
+ fi
+}
+
CheckVisibilityHidden()
{
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC -fvisibility=hidden option" >&5
@@ -20959,116 +21121,6 @@ $as_echo "$directfb_shared" >&6; }
fi
}
-CheckFusionSound()
-{
- # Check whether --enable-fusionsound was given.
-if test "${enable_fusionsound+set}" = set; then :
- enableval=$enable_fusionsound;
-else
- enable_fusionsound=no
-fi
-
- if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
- fusionsound=no
-
- FUSIONSOUND_REQUIRED_VERSION=1.1.1
-
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
- ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FusionSound $FUSIONSOUND_REQUIRED_VERSION support" >&5
-$as_echo_n "checking for FusionSound $FUSIONSOUND_REQUIRED_VERSION support... " >&6; }
- if test x$PKG_CONFIG != xno; then
- if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
- FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
- FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
- fusionsound=yes
- fi
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fusionsound" >&5
-$as_echo "$fusionsound" >&6; }
-
- if test x$fusionsound = xyes; then
-
-$as_echo "#define SDL_AUDIO_DRIVER_FUSIONSOUND 1" >>confdefs.h
-
- SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
- EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
-
- # Check whether --enable-fusionsound-shared was given.
-if test "${enable_fusionsound_shared+set}" = set; then :
- enableval=$enable_fusionsound_shared;
-else
- enable_fusionsound_shared=yes
-fi
-
- fusionsound_shared=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FusionSound dynamic loading support" >&5
-$as_echo_n "checking for FusionSound dynamic loading support... " >&6; }
- if test x$have_loadso != xyes && \
- test x$enable_fusionsound_shared = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic fusionsound loading" >&5
-$as_echo "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic fusionsound loading" >&2;}
- fi
- if test x$have_loadso = xyes && \
- test x$enable_fusionsound_shared = xyes; then
-
-cat >>confdefs.h <<_ACEOF
-#define SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "libfusionsound.so"
-_ACEOF
-
- fusionsound_shared=yes
- SUMMARY_audio="${SUMMARY_audio} fusionsound(dynamic)"
- else
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
- SUMMARY_audio="${SUMMARY_audio} fusionsound"
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fusionsound_shared" >&5
-$as_echo "$fusionsound_shared" >&6; }
-
- have_audio=yes
- fi
- fi
-}
-
CheckDummyVideo()
{
# Check whether --enable-video-dummy was given.
@@ -23144,9 +23196,10 @@ case "$host" in
CheckESD
CheckNAS
CheckSNDIO
+ CheckFusionSound
+ CheckLibSampleRate
CheckX11
CheckDirectFB
- CheckFusionSound
CheckOpenGLX11
CheckOpenGLESX11
CheckMir
diff --git a/configure.in b/configure.in
index bf67b0abf..47007c075 100644
--- a/configure.in
+++ b/configure.in
@@ -1049,6 +1049,58 @@ AC_HELP_STRING([--enable-sndio-shared], [dynamically load sndio audio support [[
fi
}
+dnl Find FusionSound
+CheckFusionSound()
+{
+ AC_ARG_ENABLE(fusionsound,
+AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
+ , enable_fusionsound=no)
+ if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
+ fusionsound=no
+
+ FUSIONSOUND_REQUIRED_VERSION=1.1.1
+
+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+ AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support)
+ if test x$PKG_CONFIG != xno; then
+ if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
+ FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
+ FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
+ fusionsound=yes
+ fi
+ fi
+ AC_MSG_RESULT($fusionsound)
+
+ if test x$fusionsound = xyes; then
+ AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
+ SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
+
+ AC_ARG_ENABLE(fusionsound-shared,
+AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
+ , enable_fusionsound_shared=yes)
+ fusionsound_shared=no
+ AC_MSG_CHECKING(for FusionSound dynamic loading support)
+ if test x$have_loadso != xyes && \
+ test x$enable_fusionsound_shared = xyes; then
+ AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
+ fi
+ if test x$have_loadso = xyes && \
+ test x$enable_fusionsound_shared = xyes; then
+ AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ])
+ fusionsound_shared=yes
+ SUMMARY_audio="${SUMMARY_audio} fusionsound(dynamic)"
+ else
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
+ SUMMARY_audio="${SUMMARY_audio} fusionsound"
+ fi
+ AC_MSG_RESULT($fusionsound_shared)
+
+ have_audio=yes
+ fi
+ fi
+}
+
dnl rcg07142001 See if the user wants the disk writer audio driver...
CheckDiskAudio()
{
@@ -1075,6 +1127,34 @@ AC_HELP_STRING([--enable-dummyaudio], [support the dummy audio driver [[default=
fi
}
+dnl See if libsamplerate is available
+CheckLibSampleRate()
+{
+ AC_ARG_ENABLE(libsamplerate,
+AC_HELP_STRING([--enable-libsamplerate], [use libsamplerate for audio rate conversion [[default=yes]]]),
+ , enable_libsamplerate=yes)
+ if test x$enable_libsamplerate = xyes; then
+ AC_CHECK_HEADER(samplerate.h,
+ have_samplerate_h_hdr=yes,
+ have_samplerate_h_hdr=no)
+ if test x$have_samplerate_h_hdr = xyes; then
+ AC_DEFINE(HAVE_LIBSAMPLERATE_H, 1, [ ])
+
+ AC_ARG_ENABLE(libsamplerate-shared,
+AC_HELP_STRING([--enable-libsamplerate-shared], [dynamically load libsamplerate [[default=yes]]]),
+ , enable_libsamplerate_shared=yes)
+
+ if test x$enable_libsamplerate_shared = xyes; then
+ samplerate_lib=[`find_lib "libsamplerate.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`]
+ if test x$samplerate_lib != x; then
+ echo "-- dynamic samplerate -> $samplerate_lib"
+ AC_DEFINE_UNQUOTED(SDL_LIBSAMPLERATE_DYNAMIC, "$samplerate_lib", [ ])
+ fi
+ fi
+ fi
+ fi
+}
+
dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
dnl Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
CheckVisibilityHidden()
@@ -1904,58 +1984,6 @@ AC_MSG_WARN("directfb $directfb_lib")
fi
}
-dnl Find FusionSound
-CheckFusionSound()
-{
- AC_ARG_ENABLE(fusionsound,
-AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
- , enable_fusionsound=no)
- if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
- fusionsound=no
-
- FUSIONSOUND_REQUIRED_VERSION=1.1.1
-
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
- AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support)
- if test x$PKG_CONFIG != xno; then
- if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
- FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
- FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
- fusionsound=yes
- fi
- fi
- AC_MSG_RESULT($fusionsound)
-
- if test x$fusionsound = xyes; then
- AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
- SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
- EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
-
- AC_ARG_ENABLE(fusionsound-shared,
-AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
- , enable_fusionsound_shared=yes)
- fusionsound_shared=no
- AC_MSG_CHECKING(for FusionSound dynamic loading support)
- if test x$have_loadso != xyes && \
- test x$enable_fusionsound_shared = xyes; then
- AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
- fi
- if test x$have_loadso = xyes && \
- test x$enable_fusionsound_shared = xyes; then
- AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ])
- fusionsound_shared=yes
- SUMMARY_audio="${SUMMARY_audio} fusionsound(dynamic)"
- else
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
- SUMMARY_audio="${SUMMARY_audio} fusionsound"
- fi
- AC_MSG_RESULT($fusionsound_shared)
-
- have_audio=yes
- fi
- fi
-}
-
dnl rcg04172001 Set up the Null video driver.
CheckDummyVideo()
{
@@ -2968,9 +2996,10 @@ case "$host" in
CheckESD
CheckNAS
CheckSNDIO
+ CheckFusionSound
+ CheckLibSampleRate
CheckX11
CheckDirectFB
- CheckFusionSound
CheckOpenGLX11
CheckOpenGLESX11
CheckMir
diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
index cfe550520..2c1450409 100644
--- a/include/SDL_config.h.cmake
+++ b/include/SDL_config.h.cmake
@@ -83,6 +83,7 @@
#cmakedefine HAVE_DBUS_DBUS_H 1
#cmakedefine HAVE_IBUS_IBUS_H 1
#cmakedefine HAVE_FCITX_FRONTEND_H 1
+#cmakedefine HAVE_LIBSAMPLERATE_H 1
/* C library functions */
#cmakedefine HAVE_MALLOC 1
@@ -358,6 +359,8 @@
#cmakedefine SDL_ASSEMBLY_ROUTINES @SDL_ASSEMBLY_ROUTINES@
#cmakedefine SDL_ALTIVEC_BLITTERS @SDL_ALTIVEC_BLITTERS@
+/* Enable dynamic libsamplerate support */
+#cmakedefine SDL_LIBSAMPLERATE_DYNAMIC @SDL_LIBSAMPLERATE_DYNAMIC@
/* Platform specific definitions */
#if !defined(__WIN32__)
diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in
index 5025d8d55..8fbde7d0b 100644
--- a/include/SDL_config.h.in
+++ b/include/SDL_config.h.in
@@ -83,6 +83,7 @@
#undef HAVE_DBUS_DBUS_H
#undef HAVE_IBUS_IBUS_H
#undef HAVE_FCITX_FRONTEND_H
+#undef HAVE_LIBSAMPLERATE_H
/* C library functions */
#undef HAVE_MALLOC
@@ -363,4 +364,7 @@
/* Enable dynamic udev support */
#undef SDL_UDEV_DYNAMIC
+/* Enable dynamic libsamplerate support */
+#undef SDL_LIBSAMPLERATE_DYNAMIC
+
#endif /* SDL_config_h_ */
diff --git a/src/audio/SDL_audiocvt.c b/src/audio/SDL_audiocvt.c
index 7bc3ffea1..2ad070613 100644
--- a/src/audio/SDL_audiocvt.c
+++ b/src/audio/SDL_audiocvt.c
@@ -29,7 +29,7 @@
#include "SDL_assert.h"
#include "../SDL_dataqueue.h"
-#ifdef HAVE_LIBSAMPLERATE
+#if HAVE_LIBSAMPLERATE_H
#include "samplerate.h"
#endif
@@ -633,7 +633,7 @@ struct SDL_AudioStream
SDL_CleanupAudioStreamResamplerFunc cleanup_resampler_func;
};
-#ifdef HAVE_LIBSAMPLERATE
+#ifdef HAVE_LIBSAMPLERATE_H
typedef struct
{
@@ -651,8 +651,8 @@ typedef struct
static SDL_bool
LoadLibSampleRate(SDL_AudioStreamResamplerState_SRC *state)
{
-#ifdef LIBSAMPLERATE_DYNAMIC
- state->SRC_lib = SDL_LoadObject(LIBSAMPLERATE_DYNAMIC);
+#ifdef SDL_LIBSAMPLERATE_DYNAMIC
+ state->SRC_lib = SDL_LoadObject(SDL_LIBSAMPLERATE_DYNAMIC);
if (!state->SRC_lib) {
return SDL_FALSE;
}
@@ -676,7 +676,7 @@ SDL_ResampleAudioStream_SRC(SDL_AudioStream *stream, const float *inbuf, const i
SRC_DATA data;
int result;
- data.data_in = inbuf;
+ data.data_in = (float *)inbuf; /* Older versions of libsamplerate had a non-const pointer, but didn't write to it */
data.input_frames = inbuflen / ( sizeof(float) * stream->pre_resample_channels );
data.input_frames_used = 0;
@@ -752,7 +752,7 @@ SetupLibSampleRateResampling(SDL_AudioStream *stream)
return SDL_TRUE;
}
-#endif /* HAVE_LIBSAMPLERATE */
+#endif /* HAVE_LIBSAMPLERATE_H */
typedef struct
{
@@ -873,7 +873,7 @@ SDL_AudioStream *SDL_NewAudioStream(const SDL_AudioFormat src_format,
return NULL; /* SDL_BuildAudioCVT should have called SDL_SetError. */
}
-#ifdef HAVE_LIBSAMPLERATE
+#ifdef HAVE_LIBSAMPLERATE_H
SetupLibSampleRateResampling(retval);
#endif