Bladeren bron

removed arts, esd, fusionsound, nas, paudio, sndio, sunaudio, winmm audio backends.

Ozkan Sezer 2 jaren geleden
bovenliggende
commit
cdb54ad21e

+ 1 - 1
.github/workflows/main.yml

@@ -45,7 +45,7 @@ jobs:
         sudo apt-get update
         sudo apt-get install build-essential git make autoconf automake libtool \
             pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev \
-            libaudio-dev libjack-dev libsndio-dev libsamplerate0-dev libx11-dev libxext-dev \
+            libsndio-dev libsamplerate0-dev libx11-dev libxext-dev \
             libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libwayland-dev \
             libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \
             libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev

+ 1 - 36
CMakeLists.txt

@@ -460,22 +460,10 @@ dep_option(SDL_PTHREADS_SEM        "Use pthread semaphores" ON "SDL_PTHREADS" OF
 dep_option(SDL_OSS                 "Support the OSS audio API" ON "UNIX_SYS OR RISCOS" OFF)
 set_option(SDL_ALSA                "Support the ALSA audio API" ${UNIX_SYS})
 dep_option(SDL_ALSA_SHARED         "Dynamically load ALSA audio support" ON "SDL_ALSA" OFF)
-set_option(SDL_JACK                "Support the JACK audio API" ${UNIX_SYS})
-dep_option(SDL_JACK_SHARED         "Dynamically load JACK audio support" ON "SDL_JACK" OFF)
-set_option(SDL_ESD                 "Support the Enlightened Sound Daemon" ${UNIX_SYS})
-dep_option(SDL_ESD_SHARED          "Dynamically load ESD audio support" ON "SDL_ESD" OFF)
 set_option(SDL_PIPEWIRE            "Use Pipewire audio" ${UNIX_SYS})
 dep_option(SDL_PIPEWIRE_SHARED     "Dynamically load Pipewire support" ON "SDL_PIPEWIRE" OFF)
 set_option(SDL_PULSEAUDIO          "Use PulseAudio" ${UNIX_SYS})
 dep_option(SDL_PULSEAUDIO_SHARED   "Dynamically load PulseAudio support" ON "SDL_PULSEAUDIO" OFF)
-set_option(SDL_ARTS                "Support the Analog Real Time Synthesizer" ${UNIX_SYS})
-dep_option(SDL_ARTS_SHARED         "Dynamically load aRts audio support" ON "SDL_ARTS" OFF)
-set_option(SDL_NAS                 "Support the NAS audio API" ${UNIX_SYS})
-dep_option(SDL_NAS_SHARED          "Dynamically load NAS audio support" ON "SDL_NAS" OFF)
-set_option(SDL_SNDIO               "Support the sndio audio API" ${UNIX_SYS})
-dep_option(SDL_SNDIO_SHARED        "Dynamically load the sndio audio API" ON "SDL_SNDIO" OFF)
-set_option(SDL_FUSIONSOUND         "Use FusionSound audio driver" OFF)
-dep_option(SDL_FUSIONSOUND_SHARED  "Dynamically load fusionsound audio support" ON "SDL_FUSIONSOUND" OFF)
 set_option(SDL_LIBSAMPLERATE       "Use libsamplerate for audio rate conversion" ${UNIX_SYS})
 dep_option(SDL_LIBSAMPLERATE_SHARED "Dynamically load libsamplerate" ON "SDL_LIBSAMPLERATE" OFF)
 set_option(SDL_RPATH               "Use an rpath when linking SDL" ${UNIX_SYS})
@@ -1405,32 +1393,16 @@ elseif(EMSCRIPTEN)
 
 elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
   if(SDL_AUDIO)
-    if(SYSV5 OR SOLARIS OR HPUX)
-        set(SDL_AUDIO_DRIVER_SUNAUDIO 1)
-        file(GLOB SUN_AUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/sun/*.c)
-        list(APPEND SOURCE_FILES ${SUN_AUDIO_SOURCES})
-        set(HAVE_SDL_AUDIO TRUE)
-    elseif(NETBSD)
+    if(NETBSD)
         set(SDL_AUDIO_DRIVER_NETBSD 1)
         file(GLOB NETBSD_AUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/netbsd/*.c)
         list(APPEND SOURCE_FILES ${NETBSD_AUDIO_SOURCES})
         set(HAVE_SDL_AUDIO TRUE)
-    elseif(AIX)
-        set(SDL_AUDIO_DRIVER_PAUDIO 1)
-        file(GLOB AIX_AUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/paudio/*.c)
-        list(APPEND SOURCE_FILES ${AIX_AUDIO_SOURCES})
-        set(HAVE_SDL_AUDIO TRUE)
     endif()
     CheckOSS()
     CheckALSA()
-    CheckJACK()
     CheckPipewire()
     CheckPulseAudio()
-    CheckESD()
-    CheckARTS()
-    CheckNAS()
-    CheckSNDIO()
-    CheckFusionSound()
   endif()
 
   if(SDL_VIDEO)
@@ -1790,13 +1762,6 @@ elseif(WINDOWS)
   check_include_file(shellscalingapi.h HAVE_SHELLSCALINGAPI_H)
 
   if(SDL_AUDIO)
-    if(NOT WINDOWS_STORE)
-      set(SDL_AUDIO_DRIVER_WINMM 1)
-      file(GLOB WINMM_AUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/winmm/*.c)
-      list(APPEND SOURCE_FILES ${WINMM_AUDIO_SOURCES})
-      set(HAVE_SDL_AUDIO TRUE)
-    endif()
-
     if(HAVE_DSOUND_H AND NOT WINDOWS_STORE)
       set(SDL_AUDIO_DRIVER_DSOUND 1)
       file(GLOB DSOUND_AUDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/directsound/*.c)

+ 0 - 173
acinclude/esd.m4

@@ -1,173 +0,0 @@
-# Configure paths for ESD
-# Manish Singh    98-9-30
-# stolen back from Frank Belew
-# stolen from Manish Singh
-# Shamelessly stolen from Owen Taylor
-
-dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS
-dnl
-AC_DEFUN([AM_PATH_ESD],
-[dnl
-dnl Get the cflags and libraries from the esd-config script
-dnl
-AC_ARG_WITH(esd-prefix,[  --with-esd-prefix=PFX   Prefix where ESD is installed (optional)],
-            esd_prefix="$withval", esd_prefix="")
-AC_ARG_WITH(esd-exec-prefix,[  --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)],
-            esd_exec_prefix="$withval", esd_exec_prefix="")
-AC_ARG_ENABLE(esdtest, [  --disable-esdtest       Do not try to compile and run a test ESD program],
-		    , enable_esdtest=yes)
-
-  if test x$esd_exec_prefix != x ; then
-     esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
-     if test x${ESD_CONFIG+set} != xset ; then
-        ESD_CONFIG=$esd_exec_prefix/bin/esd-config
-     fi
-  fi
-  if test x$esd_prefix != x ; then
-     esd_args="$esd_args --prefix=$esd_prefix"
-     if test x${ESD_CONFIG+set} != xset ; then
-        ESD_CONFIG=$esd_prefix/bin/esd-config
-     fi
-  fi
-
-  AC_PATH_PROG(ESD_CONFIG, esd-config, no)
-  min_esd_version=ifelse([$1], ,0.2.7,$1)
-  AC_MSG_CHECKING(for ESD - version >= $min_esd_version)
-  no_esd=""
-  if test "$ESD_CONFIG" = "no" ; then
-    no_esd=yes
-  else
-    ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
-    ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
-
-    esd_major_version=`$ESD_CONFIG $esd_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-    esd_minor_version=`$ESD_CONFIG $esd_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-    esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-    if test "x$enable_esdtest" = "xyes" ; then
-      AC_LANG_PUSH([C])
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $ESD_CFLAGS"
-      LIBS="$LIBS $ESD_LIBS"
-dnl
-dnl Now check if the installed ESD is sufficiently new. (Also sanity
-dnl checks the results of esd-config to some extent
-dnl
-      rm -f conf.esdtest
-      AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <stdio.h>
-#include <stdlib.h>
-#include <esd.h>
-
-int main (void)
-{
-  int major, minor, micro;
-  FILE *fp = fopen("conf.esdtest", "w");
-
-  if (fp) fclose(fp);
-
-  if (sscanf("$min_esd_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
-     printf("%s, bad version string\n", "$min_esd_version");
-     exit(1);
-   }
-
-   if (($esd_major_version > major) ||
-      (($esd_major_version == major) && ($esd_minor_version > minor)) ||
-      (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
-    {
-      return 0;
-    }
-  else
-    {
-      printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
-      printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
-      printf("*** best to upgrade to the required version.\n");
-      printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
-      printf("*** to point to the correct copy of esd-config, and remove the file\n");
-      printf("*** config.cache before re-running configure\n");
-      return 1;
-    }
-}
-]])], [], [no_esd=yes], [echo $ac_n "cross compiling; assumed OK... $ac_c"])
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-       AC_LANG_POP([C])
-     fi
-  fi
-  if test "x$no_esd" = x ; then
-     AC_MSG_RESULT(yes)
-     ifelse([$2], , :, [$2])
-  else
-     AC_MSG_RESULT(no)
-     if test "$ESD_CONFIG" = "no" ; then
-dnl       echo "*** The esd-config script installed by ESD could not be found"
-dnl       echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in"
-dnl       echo "*** your path, or set the ESD_CONFIG environment variable to the"
-dnl       echo "*** full path to esd-config."
-      :
-     else
-       if test -f conf.esdtest ; then
-        :
-       else
-          echo "*** Could not run ESD test program, checking why..."
-          CFLAGS="$CFLAGS $ESD_CFLAGS"
-          LIBS="$LIBS $ESD_LIBS"
-          AC_LANG_PUSH([C])
-          AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <stdio.h>
-#include <esd.h>
-]], [[ return 0; ]])],
-        [ echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding ESD or finding the wrong"
-          echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
-          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-          echo "*** is required on your system"
-	  echo "***"
-          echo "*** If you have an old version installed, it is best to remove it, although"
-          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
-        [ echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means ESD was incorrectly installed"
-          echo "*** or that you have moved ESD since it was installed. In the latter case, you"
-          echo "*** may want to edit the esd-config script: $ESD_CONFIG" ])
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-          AC_LANG_POP([C])
-       fi
-     fi
-     ESD_CFLAGS=""
-     ESD_LIBS=""
-     ifelse([$3], , :, [$3])
-  fi
-  AC_SUBST(ESD_CFLAGS)
-  AC_SUBST(ESD_LIBS)
-  rm -f conf.esdtest
-])
-
-dnl AM_ESD_SUPPORTS_MULTIPLE_RECORD([ACTION-IF-SUPPORTS [, ACTION-IF-NOT-SUPPORTS]])
-dnl Test, whether esd supports multiple recording clients (version >=0.2.21)
-dnl
-AC_DEFUN([AM_ESD_SUPPORTS_MULTIPLE_RECORD],
-[dnl
-  AC_MSG_NOTICE([whether installed esd version supports multiple recording clients])
-  ac_save_ESD_CFLAGS="$ESD_CFLAGS"
-  ac_save_ESD_LIBS="$ESD_LIBS"
-  AM_PATH_ESD(0.2.21,
-    ifelse([$1], , [
-      AM_CONDITIONAL(ESD_SUPPORTS_MULTIPLE_RECORD, true)
-      AC_DEFINE(ESD_SUPPORTS_MULTIPLE_RECORD, 1,
-	[Define if you have esound with support of multiple recording clients.])],
-    [$1]),
-    ifelse([$2], , [AM_CONDITIONAL(ESD_SUPPORTS_MULTIPLE_RECORD, false)], [$2])
-    if test "x$ac_save_ESD_CFLAGS" != x ; then
-       ESD_CFLAGS="$ac_save_ESD_CFLAGS"
-    fi
-    if test "x$ac_save_ESD_LIBS" != x ; then
-       ESD_LIBS="$ac_save_ESD_LIBS"
-    fi
-  )
-])

+ 0 - 180
cmake/sdlchecks.cmake

@@ -165,186 +165,6 @@ macro(CheckPulseAudio)
   endif()
 endmacro()
 
-# Requires:
-# - PkgCheckModules
-# Optional:
-# - SDL_JACK_SHARED opt
-# - HAVE_SDL_LOADSO opt
-macro(CheckJACK)
-  if(SDL_JACK)
-    pkg_check_modules(PKG_JACK jack)
-    if(PKG_JACK_FOUND)
-      set(HAVE_JACK TRUE)
-      file(GLOB JACK_SOURCES ${SDL3_SOURCE_DIR}/src/audio/jack/*.c)
-      list(APPEND SOURCE_FILES ${JACK_SOURCES})
-      set(SDL_AUDIO_DRIVER_JACK 1)
-      list(APPEND EXTRA_CFLAGS ${PKG_JACK_CFLAGS})
-      if(SDL_JACK_SHARED AND NOT HAVE_SDL_LOADSO)
-        message_warn("You must have SDL_LoadObject() support for dynamic JACK audio loading")
-      endif()
-      FindLibraryAndSONAME("jack" LIBDIRS ${PKG_JACK_LIBRARY_DIRS})
-      if(SDL_JACK_SHARED AND JACK_LIB AND HAVE_SDL_LOADSO)
-        set(SDL_AUDIO_DRIVER_JACK_DYNAMIC "\"${JACK_LIB_SONAME}\"")
-        set(HAVE_JACK_SHARED TRUE)
-      else()
-        list(APPEND EXTRA_LDFLAGS ${PKG_JACK_LDFLAGS})
-      endif()
-      set(HAVE_SDL_AUDIO TRUE)
-    endif()
-  endif()
-endmacro()
-
-# Requires:
-# - PkgCheckModules
-# Optional:
-# - SDL_ESD_SHARED opt
-# - HAVE_SDL_LOADSO opt
-macro(CheckESD)
-  if(SDL_ESD)
-    pkg_check_modules(PKG_ESD esound)
-    if(PKG_ESD_FOUND)
-      set(HAVE_ESD TRUE)
-      file(GLOB ESD_SOURCES ${SDL3_SOURCE_DIR}/src/audio/esd/*.c)
-      list(APPEND SOURCE_FILES ${ESD_SOURCES})
-      set(SDL_AUDIO_DRIVER_ESD 1)
-      list(APPEND EXTRA_CFLAGS ${PKG_ESD_CFLAGS})
-      if(SDL_ESD_SHARED AND NOT HAVE_SDL_LOADSO)
-          message_warn("You must have SDL_LoadObject() support for dynamic ESD loading")
-      endif()
-      FindLibraryAndSONAME(esd LIBDIRS ${PKG_ESD_LIBRARY_DIRS})
-      if(SDL_ESD_SHARED AND ESD_LIB AND HAVE_SDL_LOADSO)
-          set(SDL_AUDIO_DRIVER_ESD_DYNAMIC "\"${ESD_LIB_SONAME}\"")
-          set(HAVE_ESD_SHARED TRUE)
-      else()
-          list(APPEND EXTRA_LDFLAGS ${PKG_ESD_LDFLAGS})
-      endif()
-      set(HAVE_SDL_AUDIO TRUE)
-    endif()
-  endif()
-endmacro()
-
-# Requires:
-# - n/a
-# Optional:
-# - SDL_ARTS_SHARED opt
-# - HAVE_SDL_LOADSO opt
-macro(CheckARTS)
-  if(SDL_ARTS)
-    find_program(ARTS_CONFIG arts-config)
-    if(ARTS_CONFIG)
-      execute_process(CMD_ARTSCFLAGS ${ARTS_CONFIG} --cflags
-        OUTPUT_VARIABLE ARTS_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
-      list(APPEND EXTRA_CFLAGS ${ARTS_CFLAGS})
-      execute_process(CMD_ARTSLIBS ${ARTS_CONFIG} --libs
-        OUTPUT_VARIABLE ARTS_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
-      file(GLOB ARTS_SOURCES ${SDL3_SOURCE_DIR}/src/audio/arts/*.c)
-      list(APPEND SOURCE_FILES ${ARTS_SOURCES})
-      set(SDL_AUDIO_DRIVER_ARTS 1)
-      set(HAVE_ARTS TRUE)
-      if(SDL_ARTS_SHARED AND NOT HAVE_SDL_LOADSO)
-        message_warn("You must have SDL_LoadObject() support for dynamic ARTS loading")
-      endif()
-      FindLibraryAndSONAME(artsc)
-      if(SDL_ARTS_SHARED AND ARTSC_LIB AND HAVE_SDL_LOADSO)
-        # TODO
-        set(SDL_AUDIO_DRIVER_ARTS_DYNAMIC "\"${ARTSC_LIB_SONAME}\"")
-        set(HAVE_ARTS_SHARED TRUE)
-      else()
-        list(APPEND EXTRA_LDFLAGS ${ARTS_LIBS})
-      endif()
-      set(HAVE_SDL_AUDIO TRUE)
-    endif()
-  endif()
-endmacro()
-
-# Requires:
-# - n/a
-# Optional:
-# - SDL_NAS_SHARED opt
-# - HAVE_SDL_LOADSO opt
-macro(CheckNAS)
-  if(SDL_NAS)
-    # TODO: set include paths properly, so the NAS headers are found
-    check_include_file(audio/audiolib.h HAVE_NAS_H)
-    find_library(D_NAS_LIB audio)
-    if(HAVE_NAS_H AND D_NAS_LIB)
-      set(HAVE_NAS TRUE)
-      file(GLOB NAS_SOURCES ${SDL3_SOURCE_DIR}/src/audio/nas/*.c)
-      list(APPEND SOURCE_FILES ${NAS_SOURCES})
-      set(SDL_AUDIO_DRIVER_NAS 1)
-      if(SDL_NAS_SHARED AND NOT HAVE_SDL_LOADSO)
-        message_warn("You must have SDL_LoadObject() support for dynamic NAS loading")
-      endif()
-      FindLibraryAndSONAME("audio")
-      if(SDL_NAS_SHARED AND AUDIO_LIB AND HAVE_SDL_LOADSO)
-        set(SDL_AUDIO_DRIVER_NAS_DYNAMIC "\"${AUDIO_LIB_SONAME}\"")
-        set(HAVE_NAS_SHARED TRUE)
-      else()
-        list(APPEND EXTRA_LIBS ${D_NAS_LIB})
-      endif()
-      set(HAVE_SDL_AUDIO TRUE)
-    endif()
-  endif()
-endmacro()
-
-# Requires:
-# - PkgCheckModules
-# Optional:
-# - SDL_SNDIO_SHARED opt
-# - HAVE_SDL_LOADSO opt
-macro(CheckSNDIO)
-  if(SDL_SNDIO)
-    pkg_check_modules(PKG_SNDIO sndio)
-    if(PKG_SNDIO_FOUND)
-      set(HAVE_SNDIO TRUE)
-      file(GLOB SNDIO_SOURCES ${SDL3_SOURCE_DIR}/src/audio/sndio/*.c)
-      list(APPEND SOURCE_FILES ${SNDIO_SOURCES})
-      set(SDL_AUDIO_DRIVER_SNDIO 1)
-      list(APPEND EXTRA_CFLAGS ${PKG_SNDIO_CFLAGS})
-      if(SDL_SNDIO_SHARED AND NOT HAVE_SDL_LOADSO)
-        message_warn("You must have SDL_LoadObject() support for dynamic sndio loading")
-      endif()
-      FindLibraryAndSONAME("sndio" LIBDIRS ${PKG_SNDIO_LIBRARY_DIRS})
-      if(SDL_SNDIO_SHARED AND SNDIO_LIB AND HAVE_SDL_LOADSO)
-        set(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC "\"${SNDIO_LIB_SONAME}\"")
-        set(HAVE_SNDIO_SHARED TRUE)
-      else()
-        list(APPEND EXTRA_LIBS ${PKG_SNDIO_LDFLAGS})
-      endif()
-      set(HAVE_SDL_AUDIO TRUE)
-    endif()
-  endif()
-endmacro()
-
-# Requires:
-# - PkgCheckModules
-# Optional:
-# - FUSIONSOUND_SHARED opt
-# - HAVE_SDL_LOADSO opt
-macro(CheckFusionSound)
-  if(FUSIONSOUND)
-    pkg_check_modules(PKG_FUSIONSOUND fusionsound>=1.0.0)
-    if(PKG_FUSIONSOUND_FOUND)
-      set(HAVE_FUSIONSOUND TRUE)
-      file(GLOB FUSIONSOUND_SOURCES ${SDL3_SOURCE_DIR}/src/audio/fusionsound/*.c)
-      list(APPEND SOURCE_FILES ${FUSIONSOUND_SOURCES})
-      set(SDL_AUDIO_DRIVER_FUSIONSOUND 1)
-      list(APPEND EXTRA_CFLAGS ${PKG_FUSIONSOUND_CFLAGS})
-      if(FUSIONSOUND_SHARED AND NOT HAVE_SDL_LOADSO)
-        message_warn("You must have SDL_LoadObject() support for dynamic FusionSound loading")
-      endif()
-      FindLibraryAndSONAME("fusionsound" LIBDIRS ${PKG_FUSIONSOUND_LIBRARY_DIRS})
-      if(FUSIONSOUND_SHARED AND FUSIONSOUND_LIB AND HAVE_SDL_LOADSO)
-        set(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "\"${FUSIONSOUND_LIB_SONAME}\"")
-        set(HAVE_FUSIONSOUND_SHARED TRUE)
-      else()
-        list(APPEND EXTRA_LDFLAGS ${PKG_FUSIONSOUND_LDFLAGS})
-      endif()
-      set(HAVE_SDL_AUDIO TRUE)
-    endif()
-  endif()
-endmacro()
-
 # Requires:
 # - SDL_LIBSAMPLERATE
 # Optional:

+ 186 - 1260
configure

@@ -706,20 +706,10 @@ RPI_LIBS
 RPI_CFLAGS
 DECOR_LIBS
 DECOR_CFLAGS
-FUSIONSOUND_LIBS
-FUSIONSOUND_CFLAGS
-SNDIO_LIBS
-SNDIO_CFLAGS
-ARTSCONFIG
 PULSEAUDIO_LIBS
 PULSEAUDIO_CFLAGS
 PIPEWIRE_LIBS
 PIPEWIRE_CFLAGS
-ESD_CONFIG
-ESD_LIBS
-ESD_CFLAGS
-JACK_LIBS
-JACK_CFLAGS
 ALSA_LIBS
 ALSA_CFLAGS
 ALLOCA
@@ -878,25 +868,10 @@ with_alsa_prefix
 with_alsa_inc_prefix
 enable_alsatest
 enable_alsa_shared
-enable_jack
-enable_jack_shared
-enable_esd
-with_esd_prefix
-with_esd_exec_prefix
-enable_esdtest
-enable_esd_shared
 enable_pipewire
 enable_pipewire_shared
 enable_pulseaudio
 enable_pulseaudio_shared
-enable_arts
-enable_arts_shared
-enable_nas
-enable_nas_shared
-enable_sndio
-enable_sndio_shared
-enable_fusionsound
-enable_fusionsound_shared
 enable_diskaudio
 enable_dummyaudio
 enable_libsamplerate
@@ -974,18 +949,10 @@ PKG_CONFIG
 PKG_CONFIG_PATH
 PKG_CONFIG_LIBDIR
 CPP
-JACK_CFLAGS
-JACK_LIBS
-ESD_CFLAGS
-ESD_LIBS
 PIPEWIRE_CFLAGS
 PIPEWIRE_LIBS
 PULSEAUDIO_CFLAGS
 PULSEAUDIO_LIBS
-SNDIO_CFLAGS
-SNDIO_LIBS
-FUSIONSOUND_CFLAGS
-FUSIONSOUND_LIBS
 DECOR_CFLAGS
 DECOR_LIBS
 RPI_CFLAGS
@@ -1676,28 +1643,12 @@ Optional Features:
   --enable-alsa           support the ALSA audio API [default=yes]
   --disable-alsatest      Do not try to compile and run a test Alsa program
   --enable-alsa-shared    dynamically load ALSA audio support [default=yes]
-  --enable-jack           use JACK audio [default=yes]
-  --enable-jack-shared    dynamically load JACK audio support [default=yes]
-  --enable-esd            support the Enlightened Sound Daemon [default=yes]
-  --disable-esdtest       Do not try to compile and run a test ESD program
-  --enable-esd-shared     dynamically load ESD audio support [default=yes]
   --enable-pipewire       use Pipewire audio [default=yes]
   --enable-pipewire-shared
                           dynamically load Pipewire support [default=yes]
   --enable-pulseaudio     use PulseAudio [default=yes]
   --enable-pulseaudio-shared
                           dynamically load PulseAudio support [default=yes]
-  --enable-arts           support the Analog Real Time Synthesizer
-                          [default=yes]
-  --enable-arts-shared    dynamically load aRts audio support [default=yes]
-  --enable-nas            support the NAS audio API [default=yes]
-  --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
@@ -1799,8 +1750,6 @@ Optional Packages:
                           compiler's sysroot if not specified).
   --with-alsa-prefix=PFX  Prefix where Alsa library is installed(optional)
   --with-alsa-inc-prefix=PFX  Prefix where include libraries are (optional)
-  --with-esd-prefix=PFX   Prefix where ESD is installed (optional)
-  --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)
   --with-x                use the X Window System
 
 Some influential environment variables:
@@ -1822,10 +1771,6 @@ Some influential environment variables:
   PKG_CONFIG_LIBDIR
               path overriding pkg-config's built-in search path
   CPP         C preprocessor
-  JACK_CFLAGS C compiler flags for JACK, overriding pkg-config
-  JACK_LIBS   linker flags for JACK, overriding pkg-config
-  ESD_CFLAGS  C compiler flags for ESD, overriding pkg-config
-  ESD_LIBS    linker flags for ESD, overriding pkg-config
   PIPEWIRE_CFLAGS
               C compiler flags for PIPEWIRE, overriding pkg-config
   PIPEWIRE_LIBS
@@ -1834,13 +1779,6 @@ Some influential environment variables:
               C compiler flags for PULSEAUDIO, overriding pkg-config
   PULSEAUDIO_LIBS
               linker flags for PULSEAUDIO, overriding pkg-config
-  SNDIO_CFLAGS
-              C compiler flags for SNDIO, overriding pkg-config
-  SNDIO_LIBS  linker flags for SNDIO, overriding pkg-config
-  FUSIONSOUND_CFLAGS
-              C compiler flags for FUSIONSOUND, overriding pkg-config
-  FUSIONSOUND_LIBS
-              linker flags for FUSIONSOUND, overriding pkg-config
   DECOR_CFLAGS
               C compiler flags for DECOR, overriding pkg-config
   DECOR_LIBS  linker flags for DECOR, overriding pkg-config
@@ -21326,32 +21264,32 @@ printf "%s\n" "#define SDL_AUDIO_DRIVER_ALSA_DYNAMIC \"$alsa_lib\"" >>confdefs.h
     fi
 }
 
-CheckJACK()
+CheckPipewire()
 {
-    # Check whether --enable-jack was given.
-if test ${enable_jack+y}
+    # Check whether --enable-pipewire was given.
+if test ${enable_pipewire+y}
 then :
-  enableval=$enable_jack;
+  enableval=$enable_pipewire;
 else $as_nop
-  enable_jack=yes
+  enable_pipewire=yes
 fi
 
-    if test x$enable_audio = xyes -a x$enable_jack = xyes; then
+    if test x$enable_audio = xyes -a x$enable_pipewire = xyes; then
 
 pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for jack >= 0.125" >&5
-printf %s "checking for jack >= 0.125... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpipewire-0.3 >= 0.3.20" >&5
+printf %s "checking for libpipewire-0.3 >= 0.3.20... " >&6; }
 
-if test -n "$JACK_CFLAGS"; then
-    pkg_cv_JACK_CFLAGS="$JACK_CFLAGS"
+if test -n "$PIPEWIRE_CFLAGS"; then
+    pkg_cv_PIPEWIRE_CFLAGS="$PIPEWIRE_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.125\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "jack >= 0.125") 2>&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpipewire-0.3 >= 0.3.20\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libpipewire-0.3 >= 0.3.20") 2>&5
   ac_status=$?
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_JACK_CFLAGS=`$PKG_CONFIG --cflags "jack >= 0.125" 2>/dev/null`
+  pkg_cv_PIPEWIRE_CFLAGS=`$PKG_CONFIG --cflags "libpipewire-0.3 >= 0.3.20" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -21359,16 +21297,16 @@ fi
  else
     pkg_failed=untried
 fi
-if test -n "$JACK_LIBS"; then
-    pkg_cv_JACK_LIBS="$JACK_LIBS"
+if test -n "$PIPEWIRE_LIBS"; then
+    pkg_cv_PIPEWIRE_LIBS="$PIPEWIRE_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.125\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "jack >= 0.125") 2>&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpipewire-0.3 >= 0.3.20\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libpipewire-0.3 >= 0.3.20") 2>&5
   ac_status=$?
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_JACK_LIBS=`$PKG_CONFIG --libs "jack >= 0.125" 2>/dev/null`
+  pkg_cv_PIPEWIRE_LIBS=`$PKG_CONFIG --libs "libpipewire-0.3 >= 0.3.20" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -21389,97 +21327,89 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        JACK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "jack >= 0.125" 2>&1`
+	        PIPEWIRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpipewire-0.3 >= 0.3.20" 2>&1`
         else
-	        JACK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "jack >= 0.125" 2>&1`
+	        PIPEWIRE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpipewire-0.3 >= 0.3.20" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$JACK_PKG_ERRORS" >&5
+	echo "$PIPEWIRE_PKG_ERRORS" >&5
 
-	audio_jack=no
+	audio_pipewire=no
 elif test $pkg_failed = untried; then
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
 printf "%s\n" "no" >&6; }
-	audio_jack=no
+	audio_pipewire=no
 else
-	JACK_CFLAGS=$pkg_cv_JACK_CFLAGS
-	JACK_LIBS=$pkg_cv_JACK_LIBS
+	PIPEWIRE_CFLAGS=$pkg_cv_PIPEWIRE_CFLAGS
+	PIPEWIRE_LIBS=$pkg_cv_PIPEWIRE_LIBS
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 printf "%s\n" "yes" >&6; }
-	audio_jack=yes
+	audio_pipewire=yes
 fi
 
-        if test x$audio_jack = xyes; then
-            # Check whether --enable-jack-shared was given.
-if test ${enable_jack_shared+y}
+        if test x$audio_pipewire = xyes; then
+            # Check whether --enable-pipewire-shared was given.
+if test ${enable_pipewire_shared+y}
 then :
-  enableval=$enable_jack_shared;
+  enableval=$enable_pipewire_shared;
 else $as_nop
-  enable_jack_shared=yes
+  enable_pipewire_shared=yes
 fi
 
-            jack_lib=`find_lib "libjack.so.*" "$JACK_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`
+            pipewire_lib=`find_lib "libpipewire-0.3.so.*" "$PIPEWIRE_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`
 
 
-printf "%s\n" "#define SDL_AUDIO_DRIVER_JACK 1" >>confdefs.h
+printf "%s\n" "#define SDL_AUDIO_DRIVER_PIPEWIRE 1" >>confdefs.h
 
-            SOURCES="$SOURCES $srcdir/src/audio/jack/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $JACK_CFLAGS"
+            SOURCES="$SOURCES $srcdir/src/audio/pipewire/*.c"
+            EXTRA_CFLAGS="$EXTRA_CFLAGS $PIPEWIRE_CFLAGS"
             if test x$have_loadso != xyes && \
-               test x$enable_jack_shared = xyes; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic JACK audio loading" >&5
-printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic JACK audio loading" >&2;}
+               test x$enable_pipewire_shared = xyes; then
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic Pipewire loading" >&5
+printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic Pipewire loading" >&2;}
             fi
             if test x$have_loadso = xyes && \
-               test x$enable_jack_shared = xyes && test x$jack_lib != x; then
-                echo "-- dynamic libjack -> $jack_lib"
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_JACK_DYNAMIC \"$jack_lib\"" >>confdefs.h
+               test x$enable_pipewire_shared = xyes && test x$pipewire_lib != x; then
+                echo "-- dynamic libpipewire-0.3 -> $pipewire_lib"
 
-                SUMMARY_audio="${SUMMARY_audio} jack(dynamic)"
+printf "%s\n" "#define SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC \"$pipewire_lib\"" >>confdefs.h
 
-                case "$host" in
-                    # On Solaris, jack must be linked deferred explicitly
-                    # to prevent undefined symbol failures.
-                    *-*-solaris*)
-                        JACK_LIBS=`echo $JACK_LIBS | sed 's/\-l/-Wl,-l/g'`
-                        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $JACK_LIBS -Wl,-znodeferred"
-                esac
+                SUMMARY_audio="${SUMMARY_audio} pipewire(dynamic)"
             else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $JACK_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} jack"
+                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PIPEWIRE_LIBS"
+                SUMMARY_audio="${SUMMARY_audio} pipewire"
             fi
             have_audio=yes
         fi
     fi
 }
 
-CheckESD()
+CheckPulseAudio()
 {
-    # Check whether --enable-esd was given.
-if test ${enable_esd+y}
+    # Check whether --enable-pulseaudio was given.
+if test ${enable_pulseaudio+y}
 then :
-  enableval=$enable_esd;
+  enableval=$enable_pulseaudio;
 else $as_nop
-  enable_esd=yes
+  enable_pulseaudio=yes
 fi
 
-    if test x$enable_audio = xyes -a x$enable_esd = xyes; then
+    if test x$enable_audio = xyes -a x$enable_pulseaudio = xyes; then
 
 pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for esound >= 0.2.8" >&5
-printf %s "checking for esound >= 0.2.8... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpulse-simple >= 0.9" >&5
+printf %s "checking for libpulse-simple >= 0.9... " >&6; }
 
-if test -n "$ESD_CFLAGS"; then
-    pkg_cv_ESD_CFLAGS="$ESD_CFLAGS"
+if test -n "$PULSEAUDIO_CFLAGS"; then
+    pkg_cv_PULSEAUDIO_CFLAGS="$PULSEAUDIO_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"esound >= 0.2.8\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "esound >= 0.2.8") 2>&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse-simple >= 0.9\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libpulse-simple >= 0.9") 2>&5
   ac_status=$?
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_ESD_CFLAGS=`$PKG_CONFIG --cflags "esound >= 0.2.8" 2>/dev/null`
+  pkg_cv_PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags "libpulse-simple >= 0.9" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -21487,16 +21417,16 @@ fi
  else
     pkg_failed=untried
 fi
-if test -n "$ESD_LIBS"; then
-    pkg_cv_ESD_LIBS="$ESD_LIBS"
+if test -n "$PULSEAUDIO_LIBS"; then
+    pkg_cv_PULSEAUDIO_LIBS="$PULSEAUDIO_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"esound >= 0.2.8\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "esound >= 0.2.8") 2>&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse-simple >= 0.9\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libpulse-simple >= 0.9") 2>&5
   ac_status=$?
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_ESD_LIBS=`$PKG_CONFIG --libs "esound >= 0.2.8" 2>/dev/null`
+  pkg_cv_PULSEAUDIO_LIBS=`$PKG_CONFIG --libs "libpulse-simple >= 0.9" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -21517,1155 +21447,178 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        ESD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "esound >= 0.2.8" 2>&1`
+	        PULSEAUDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpulse-simple >= 0.9" 2>&1`
         else
-	        ESD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "esound >= 0.2.8" 2>&1`
+	        PULSEAUDIO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpulse-simple >= 0.9" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$ESD_PKG_ERRORS" >&5
+	echo "$PULSEAUDIO_PKG_ERRORS" >&5
 
-	have_esd=no
+	audio_pulseaudio=no
 elif test $pkg_failed = untried; then
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
 printf "%s\n" "no" >&6; }
-	have_esd=no
+	audio_pulseaudio=no
 else
-	ESD_CFLAGS=$pkg_cv_ESD_CFLAGS
-	ESD_LIBS=$pkg_cv_ESD_LIBS
+	PULSEAUDIO_CFLAGS=$pkg_cv_PULSEAUDIO_CFLAGS
+	PULSEAUDIO_LIBS=$pkg_cv_PULSEAUDIO_LIBS
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 printf "%s\n" "yes" >&6; }
-	have_esd=yes
+	audio_pulseaudio=yes
 fi
-        if test x$have_esd = xno; then
 
-# Check whether --with-esd-prefix was given.
-if test ${with_esd_prefix+y}
+        if test x$audio_pulseaudio = xyes; then
+            # Check whether --enable-pulseaudio-shared was given.
+if test ${enable_pulseaudio_shared+y}
 then :
-  withval=$with_esd_prefix; esd_prefix="$withval"
+  enableval=$enable_pulseaudio_shared;
 else $as_nop
-  esd_prefix=""
+  enable_pulseaudio_shared=yes
 fi
 
+            pulseaudio_lib=`find_lib "libpulse-simple.so.*" "$PULSEAUDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`
+
+
+printf "%s\n" "#define SDL_AUDIO_DRIVER_PULSEAUDIO 1" >>confdefs.h
+
+            SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c"
+            EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS"
+            if test x$have_loadso != xyes && \
+               test x$enable_pulseaudio_shared = xyes; then
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic PulseAudio loading" >&5
+printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic PulseAudio loading" >&2;}
+            fi
+            if test x$have_loadso = xyes && \
+               test x$enable_pulseaudio_shared = xyes && test x$pulseaudio_lib != x; then
+                echo "-- dynamic libpulse-simple -> $pulseaudio_lib"
+
+printf "%s\n" "#define SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC \"$pulseaudio_lib\"" >>confdefs.h
+
+                SUMMARY_audio="${SUMMARY_audio} pulse(dynamic)"
+
+                case "$host" in
+                    # On Solaris, pulseaudio must be linked deferred explicitly
+                    # to prevent undefined symbol failures.
+                    *-*-solaris*)
+                        PULSEAUDIO_LIBS=`echo $PULSEAUDIO_LIBS | sed 's/\-l/-Wl,-l/g'`
+                        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $PULSEAUDIO_LIBS -Wl,-znodeferred"
+                esac
+            else
+                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PULSEAUDIO_LIBS"
+                SUMMARY_audio="${SUMMARY_audio} pulse"
+            fi
+            have_audio=yes
+        fi
+    fi
+}
 
-# Check whether --with-esd-exec-prefix was given.
-if test ${with_esd_exec_prefix+y}
+CheckDiskAudio()
+{
+    # Check whether --enable-diskaudio was given.
+if test ${enable_diskaudio+y}
 then :
-  withval=$with_esd_exec_prefix; esd_exec_prefix="$withval"
+  enableval=$enable_diskaudio;
 else $as_nop
-  esd_exec_prefix=""
+  enable_diskaudio=yes
 fi
 
-# Check whether --enable-esdtest was given.
-if test ${enable_esdtest+y}
+    if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then
+
+printf "%s\n" "#define SDL_AUDIO_DRIVER_DISK 1" >>confdefs.h
+
+        SOURCES="$SOURCES $srcdir/src/audio/disk/*.c"
+        SUMMARY_audio="${SUMMARY_audio} disk"
+        have_audio=yes
+    fi
+}
+
+CheckDummyAudio()
+{
+    # Check whether --enable-dummyaudio was given.
+if test ${enable_dummyaudio+y}
 then :
-  enableval=$enable_esdtest;
+  enableval=$enable_dummyaudio;
 else $as_nop
-  enable_esdtest=yes
+  enable_dummyaudio=yes
 fi
 
+    if test x$enable_audio = xyes -a x$enable_dummyaudio = xyes; then
 
-  if test x$esd_exec_prefix != x ; then
-     esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
-     if test x${ESD_CONFIG+set} != xset ; then
-        ESD_CONFIG=$esd_exec_prefix/bin/esd-config
-     fi
-  fi
-  if test x$esd_prefix != x ; then
-     esd_args="$esd_args --prefix=$esd_prefix"
-     if test x${ESD_CONFIG+set} != xset ; then
-        ESD_CONFIG=$esd_prefix/bin/esd-config
-     fi
-  fi
+printf "%s\n" "#define SDL_AUDIO_DRIVER_DUMMY 1" >>confdefs.h
 
-  # Extract the first word of "esd-config", so it can be a program name with args.
-set dummy esd-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_ESD_CONFIG+y}
+        SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
+        SUMMARY_audio="${SUMMARY_audio} dummy"
+        have_audio=yes
+    fi
+}
+
+CheckLibSampleRate()
+{
+    # Check whether --enable-libsamplerate was given.
+if test ${enable_libsamplerate+y}
 then :
-  printf %s "(cached) " >&6
+  enableval=$enable_libsamplerate;
 else $as_nop
-  case $ESD_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ESD_CONFIG="$ESD_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
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    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_ESD_CONFIG="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$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_ESD_CONFIG" && ac_cv_path_ESD_CONFIG="no"
-  ;;
-esac
+  enable_libsamplerate=yes
 fi
-ESD_CONFIG=$ac_cv_path_ESD_CONFIG
-if test -n "$ESD_CONFIG"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ESD_CONFIG" >&5
-printf "%s\n" "$ESD_CONFIG" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+
+    if test x$enable_libsamplerate = xyes; then
+        ac_fn_c_check_header_compile "$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 $as_nop
+  have_samplerate_h_hdr=no
 fi
 
+        if test x$have_samplerate_h_hdr = xyes; then
 
-  min_esd_version=0.2.8
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ESD - version >= $min_esd_version" >&5
-printf %s "checking for ESD - version >= $min_esd_version... " >&6; }
-  no_esd=""
-  if test "$ESD_CONFIG" = "no" ; then
-    no_esd=yes
-  else
-    ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
-    ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
+printf "%s\n" "#define HAVE_LIBSAMPLERATE_H 1" >>confdefs.h
 
-    esd_major_version=`$ESD_CONFIG $esd_args --version | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
-    esd_minor_version=`$ESD_CONFIG $esd_args --version | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
-    esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
-           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
-    if test "x$enable_esdtest" = "xyes" ; then
-      ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $ESD_CFLAGS"
-      LIBS="$LIBS $ESD_LIBS"
-      rm -f conf.esdtest
-      if test "$cross_compiling" = yes
+            # Check whether --enable-libsamplerate-shared was given.
+if test ${enable_libsamplerate_shared+y}
 then :
-  echo $ac_n "cross compiling; assumed OK... $ac_c"
+  enableval=$enable_libsamplerate_shared;
 else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  enable_libsamplerate_shared=yes
+fi
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <esd.h>
 
-int main (void)
-{
-  int major, minor, micro;
-  FILE *fp = fopen("conf.esdtest", "w");
+            samplerate_lib=`find_lib "libsamplerate.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`
 
-  if (fp) fclose(fp);
+            if test x$have_loadso != xyes && \
+               test x$enable_libsamplerate_shared = xyes; then
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic libsamplerate loading" >&5
+printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic libsamplerate loading" >&2;}
+            fi
+            if test x$have_loadso = xyes && \
+               test x$enable_libsamplerate_shared = xyes && test x$samplerate_lib != x; then
+                echo "-- dynamic libsamplerate -> $samplerate_lib"
 
-  if (sscanf("$min_esd_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
-     printf("%s, bad version string\n", "$min_esd_version");
-     exit(1);
-   }
+printf "%s\n" "#define SDL_LIBSAMPLERATE_DYNAMIC \"$samplerate_lib\"" >>confdefs.h
 
-   if (($esd_major_version > major) ||
-      (($esd_major_version == major) && ($esd_minor_version > minor)) ||
-      (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
-    {
-      return 0;
-    }
-  else
-    {
-      printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
-      printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
-      printf("*** best to upgrade to the required version.\n");
-      printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
-      printf("*** to point to the correct copy of esd-config, and remove the file\n");
-      printf("*** config.cache before re-running configure\n");
-      return 1;
-    }
+            else
+                EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lsamplerate"
+            fi
+        fi
+    fi
 }
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"
+CheckARM()
+{
+    # Check whether --enable-arm-simd was given.
+if test ${enable_arm_simd+y}
 then :
-
+  enableval=$enable_arm_simd; enable_arm_simd=$enableval
 else $as_nop
-  no_esd=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  enable_arm_simd=no
 fi
 
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-       ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-     fi
-  fi
-  if test "x$no_esd" = x ; then
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-     have_esd=yes
-  else
-     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-     if test "$ESD_CONFIG" = "no" ; then
-      :
-     else
-       if test -f conf.esdtest ; then
-        :
-       else
-          echo "*** Could not run ESD test program, checking why..."
-          CFLAGS="$CFLAGS $ESD_CFLAGS"
-          LIBS="$LIBS $ESD_LIBS"
-          ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <esd.h>
-
-int
-main (void)
-{
- return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-   echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding ESD or finding the wrong"
-          echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
-          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-          echo "*** is required on your system"
-	  echo "***"
-          echo "*** If you have an old version installed, it is best to remove it, although"
-          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
-else $as_nop
-   echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means ESD was incorrectly installed"
-          echo "*** or that you have moved ESD since it was installed. In the latter case, you"
-          echo "*** may want to edit the esd-config script: $ESD_CONFIG"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-          ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-       fi
-     fi
-     ESD_CFLAGS=""
-     ESD_LIBS=""
-     have_esd=no
-  fi
-
-
-  rm -f conf.esdtest
-
-        fi
-        if test x$have_esd = xyes; then
-            # Check whether --enable-esd-shared was given.
-if test ${enable_esd_shared+y}
-then :
-  enableval=$enable_esd_shared;
-else $as_nop
-  enable_esd_shared=yes
-fi
-
-            esd_lib=`find_lib "libesd.so.*" "$ESD_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`
-
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_ESD 1" >>confdefs.h
-
-            SOURCES="$SOURCES $srcdir/src/audio/esd/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS"
-            if test x$have_loadso != xyes && \
-               test x$enable_esd_shared = xyes; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic ESD loading" >&5
-printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic ESD loading" >&2;}
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_esd_shared = xyes && test x$esd_lib != x; then
-                echo "-- dynamic libesd -> $esd_lib"
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_ESD_DYNAMIC \"$esd_lib\"" >>confdefs.h
-
-                SUMMARY_audio="${SUMMARY_audio} esd(dynamic)"
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ESD_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} esd"
-            fi
-            have_audio=yes
-        fi
-    fi
-}
-
-CheckPipewire()
-{
-    # Check whether --enable-pipewire was given.
-if test ${enable_pipewire+y}
-then :
-  enableval=$enable_pipewire;
-else $as_nop
-  enable_pipewire=yes
-fi
-
-    if test x$enable_audio = xyes -a x$enable_pipewire = xyes; then
-
-pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpipewire-0.3 >= 0.3.20" >&5
-printf %s "checking for libpipewire-0.3 >= 0.3.20... " >&6; }
-
-if test -n "$PIPEWIRE_CFLAGS"; then
-    pkg_cv_PIPEWIRE_CFLAGS="$PIPEWIRE_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpipewire-0.3 >= 0.3.20\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libpipewire-0.3 >= 0.3.20") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_PIPEWIRE_CFLAGS=`$PKG_CONFIG --cflags "libpipewire-0.3 >= 0.3.20" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$PIPEWIRE_LIBS"; then
-    pkg_cv_PIPEWIRE_LIBS="$PIPEWIRE_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpipewire-0.3 >= 0.3.20\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libpipewire-0.3 >= 0.3.20") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_PIPEWIRE_LIBS=`$PKG_CONFIG --libs "libpipewire-0.3 >= 0.3.20" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        PIPEWIRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpipewire-0.3 >= 0.3.20" 2>&1`
-        else
-	        PIPEWIRE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpipewire-0.3 >= 0.3.20" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$PIPEWIRE_PKG_ERRORS" >&5
-
-	audio_pipewire=no
-elif test $pkg_failed = untried; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-	audio_pipewire=no
-else
-	PIPEWIRE_CFLAGS=$pkg_cv_PIPEWIRE_CFLAGS
-	PIPEWIRE_LIBS=$pkg_cv_PIPEWIRE_LIBS
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-	audio_pipewire=yes
-fi
-
-        if test x$audio_pipewire = xyes; then
-            # Check whether --enable-pipewire-shared was given.
-if test ${enable_pipewire_shared+y}
-then :
-  enableval=$enable_pipewire_shared;
-else $as_nop
-  enable_pipewire_shared=yes
-fi
-
-            pipewire_lib=`find_lib "libpipewire-0.3.so.*" "$PIPEWIRE_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`
-
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_PIPEWIRE 1" >>confdefs.h
-
-            SOURCES="$SOURCES $srcdir/src/audio/pipewire/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $PIPEWIRE_CFLAGS"
-            if test x$have_loadso != xyes && \
-               test x$enable_pipewire_shared = xyes; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic Pipewire loading" >&5
-printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic Pipewire loading" >&2;}
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_pipewire_shared = xyes && test x$pipewire_lib != x; then
-                echo "-- dynamic libpipewire-0.3 -> $pipewire_lib"
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC \"$pipewire_lib\"" >>confdefs.h
-
-                SUMMARY_audio="${SUMMARY_audio} pipewire(dynamic)"
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PIPEWIRE_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} pipewire"
-            fi
-            have_audio=yes
-        fi
-    fi
-}
-
-CheckPulseAudio()
-{
-    # Check whether --enable-pulseaudio was given.
-if test ${enable_pulseaudio+y}
-then :
-  enableval=$enable_pulseaudio;
-else $as_nop
-  enable_pulseaudio=yes
-fi
-
-    if test x$enable_audio = xyes -a x$enable_pulseaudio = xyes; then
-
-pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpulse-simple >= 0.9" >&5
-printf %s "checking for libpulse-simple >= 0.9... " >&6; }
-
-if test -n "$PULSEAUDIO_CFLAGS"; then
-    pkg_cv_PULSEAUDIO_CFLAGS="$PULSEAUDIO_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse-simple >= 0.9\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libpulse-simple >= 0.9") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags "libpulse-simple >= 0.9" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$PULSEAUDIO_LIBS"; then
-    pkg_cv_PULSEAUDIO_LIBS="$PULSEAUDIO_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpulse-simple >= 0.9\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libpulse-simple >= 0.9") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_PULSEAUDIO_LIBS=`$PKG_CONFIG --libs "libpulse-simple >= 0.9" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        PULSEAUDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpulse-simple >= 0.9" 2>&1`
-        else
-	        PULSEAUDIO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpulse-simple >= 0.9" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$PULSEAUDIO_PKG_ERRORS" >&5
-
-	audio_pulseaudio=no
-elif test $pkg_failed = untried; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-	audio_pulseaudio=no
-else
-	PULSEAUDIO_CFLAGS=$pkg_cv_PULSEAUDIO_CFLAGS
-	PULSEAUDIO_LIBS=$pkg_cv_PULSEAUDIO_LIBS
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-	audio_pulseaudio=yes
-fi
-
-        if test x$audio_pulseaudio = xyes; then
-            # Check whether --enable-pulseaudio-shared was given.
-if test ${enable_pulseaudio_shared+y}
-then :
-  enableval=$enable_pulseaudio_shared;
-else $as_nop
-  enable_pulseaudio_shared=yes
-fi
-
-            pulseaudio_lib=`find_lib "libpulse-simple.so.*" "$PULSEAUDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`
-
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_PULSEAUDIO 1" >>confdefs.h
-
-            SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS"
-            if test x$have_loadso != xyes && \
-               test x$enable_pulseaudio_shared = xyes; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic PulseAudio loading" >&5
-printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic PulseAudio loading" >&2;}
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_pulseaudio_shared = xyes && test x$pulseaudio_lib != x; then
-                echo "-- dynamic libpulse-simple -> $pulseaudio_lib"
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC \"$pulseaudio_lib\"" >>confdefs.h
-
-                SUMMARY_audio="${SUMMARY_audio} pulse(dynamic)"
-
-                case "$host" in
-                    # On Solaris, pulseaudio must be linked deferred explicitly
-                    # to prevent undefined symbol failures.
-                    *-*-solaris*)
-                        PULSEAUDIO_LIBS=`echo $PULSEAUDIO_LIBS | sed 's/\-l/-Wl,-l/g'`
-                        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $PULSEAUDIO_LIBS -Wl,-znodeferred"
-                esac
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PULSEAUDIO_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} pulse"
-            fi
-            have_audio=yes
-        fi
-    fi
-}
-
-CheckARTSC()
-{
-    # Check whether --enable-arts was given.
-if test ${enable_arts+y}
-then :
-  enableval=$enable_arts;
-else $as_nop
-  enable_arts=yes
-fi
-
-    if test x$enable_audio = xyes -a x$enable_arts = xyes; then
-        # Extract the first word of "artsc-config", so it can be a program name with args.
-set dummy artsc-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_ARTSCONFIG+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  case $ARTSCONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ARTSCONFIG="$ARTSCONFIG" # 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
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    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_ARTSCONFIG="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-ARTSCONFIG=$ac_cv_path_ARTSCONFIG
-if test -n "$ARTSCONFIG"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ARTSCONFIG" >&5
-printf "%s\n" "$ARTSCONFIG" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-        if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then
-            : # arts isn't installed
-        else
-            ARTS_CFLAGS=`$ARTSCONFIG --cflags`
-            ARTS_LIBS=`$ARTSCONFIG --libs`
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for aRts development environment" >&5
-printf %s "checking for aRts development environment... " >&6; }
-            audio_arts=no
-            save_CFLAGS="$CFLAGS"
-            CFLAGS="$CFLAGS $ARTS_CFLAGS"
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-             #include <artsc.h>
-
-int
-main (void)
-{
-
-             arts_stream_t stream;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  audio_arts=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-            CFLAGS="$save_CFLAGS"
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $audio_arts" >&5
-printf "%s\n" "$audio_arts" >&6; }
-            if test x$audio_arts = xyes; then
-                # Check whether --enable-arts-shared was given.
-if test ${enable_arts_shared+y}
-then :
-  enableval=$enable_arts_shared;
-else $as_nop
-  enable_arts_shared=yes
-fi
-
-                arts_lib=`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`
-
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_ARTS 1" >>confdefs.h
-
-                SOURCES="$SOURCES $srcdir/src/audio/arts/*.c"
-                EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS"
-                if test x$have_loadso != xyes && \
-                   test x$enable_arts_shared = xyes; then
-                    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic ARTS loading" >&5
-printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic ARTS loading" >&2;}
-                fi
-                if test x$have_loadso = xyes && \
-                   test x$enable_arts_shared = xyes && test x$arts_lib != x; then
-                    echo "-- dynamic libartsc -> $arts_lib"
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_ARTS_DYNAMIC \"$arts_lib\"" >>confdefs.h
-
-                    SUMMARY_audio="${SUMMARY_audio} arts(dynamic)"
-                else
-                    EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARTS_LIBS"
-                    SUMMARY_audio="${SUMMARY_audio} arts"
-                fi
-                have_audio=yes
-            fi
-        fi
-    fi
-}
-
-CheckNAS()
-{
-    # Check whether --enable-nas was given.
-if test ${enable_nas+y}
-then :
-  enableval=$enable_nas;
-else $as_nop
-  enable_nas=yes
-fi
-
-    if test x$enable_audio = xyes -a x$enable_nas = xyes; then
-        ac_fn_c_check_header_compile "$LINENO" "audio/audiolib.h" "ac_cv_header_audio_audiolib_h" "$ac_includes_default"
-if test "x$ac_cv_header_audio_audiolib_h" = xyes
-then :
-  have_nas_hdr=yes
-fi
-
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for AuOpenServer in -laudio" >&5
-printf %s "checking for AuOpenServer in -laudio... " >&6; }
-if test ${ac_cv_lib_audio_AuOpenServer+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-laudio  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-char AuOpenServer ();
-int
-main (void)
-{
-return AuOpenServer ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"
-then :
-  ac_cv_lib_audio_AuOpenServer=yes
-else $as_nop
-  ac_cv_lib_audio_AuOpenServer=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_audio_AuOpenServer" >&5
-printf "%s\n" "$ac_cv_lib_audio_AuOpenServer" >&6; }
-if test "x$ac_cv_lib_audio_AuOpenServer" = xyes
-then :
-  have_nas_lib=yes
-fi
-
-
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for NAS audio support" >&5
-printf %s "checking for NAS audio support... " >&6; }
-        have_nas=no
-
-        if test x$have_nas_hdr = xyes -a x$have_nas_lib = xyes; then
-            have_nas=yes
-            NAS_LIBS="-laudio"
-
-        elif test -r /usr/X11R6/include/audio/audiolib.h; then
-            have_nas=yes
-            NAS_CFLAGS="-I/usr/X11R6/include/"
-            NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
-
-        fi
-
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_nas" >&5
-printf "%s\n" "$have_nas" >&6; }
-
-        if test x$have_nas = xyes; then
-            # Check whether --enable-nas-shared was given.
-if test ${enable_nas_shared+y}
-then :
-  enableval=$enable_nas_shared;
-else $as_nop
-  enable_nas_shared=yes
-fi
-
-            nas_lib=`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`
-
-            if test x$have_loadso != xyes && \
-               test x$enable_nas_shared = xyes; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic NAS loading" >&5
-printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic NAS loading" >&2;}
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_nas_shared = xyes && test x$nas_lib != x; then
-                echo "-- dynamic libaudio -> $nas_lib"
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_NAS_DYNAMIC \"$nas_lib\"" >>confdefs.h
-
-                SUMMARY_audio="${SUMMARY_audio} nas(dynamic)"
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $NAS_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} nas"
-            fi
-
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_NAS 1" >>confdefs.h
-
-            SOURCES="$SOURCES $srcdir/src/audio/nas/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $NAS_CFLAGS"
-            have_audio=yes
-        fi
-    fi
-}
-
-CheckSNDIO()
-{
-    # Check whether --enable-sndio was given.
-if test ${enable_sndio+y}
-then :
-  enableval=$enable_sndio;
-else $as_nop
-  enable_sndio=yes
-fi
-
-    if test x$enable_audio = xyes -a x$enable_sndio = xyes; then
-
-pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sndio" >&5
-printf %s "checking for sndio... " >&6; }
-
-if test -n "$SNDIO_CFLAGS"; then
-    pkg_cv_SNDIO_CFLAGS="$SNDIO_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndio\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "sndio") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_SNDIO_CFLAGS=`$PKG_CONFIG --cflags "sndio" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$SNDIO_LIBS"; then
-    pkg_cv_SNDIO_LIBS="$SNDIO_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndio\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "sndio") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_SNDIO_LIBS=`$PKG_CONFIG --libs "sndio" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        SNDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sndio" 2>&1`
-        else
-	        SNDIO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sndio" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$SNDIO_PKG_ERRORS" >&5
-
-	audio_sndio=no
-elif test $pkg_failed = untried; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-	audio_sndio=no
-else
-	SNDIO_CFLAGS=$pkg_cv_SNDIO_CFLAGS
-	SNDIO_LIBS=$pkg_cv_SNDIO_LIBS
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-	audio_sndio=yes
-fi
-
-        if test x$audio_sndio = xyes; then
-            # Check whether --enable-sndio-shared was given.
-if test ${enable_sndio_shared+y}
-then :
-  enableval=$enable_sndio_shared;
-else $as_nop
-  enable_sndio_shared=yes
-fi
-
-            sndio_lib=`find_lib "libsndio.so.*" "$SNDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`
-
-            if test x$have_loadso != xyes && \
-               test x$enable_sndio_shared = xyes; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic sndio loading" >&5
-printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic sndio loading" >&2;}
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_sndio_shared = xyes && test x$sndio_lib != x; then
-                echo "-- dynamic libsndio -> $sndio_lib"
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_SNDIO_DYNAMIC \"$sndio_lib\"" >>confdefs.h
-
-                SUMMARY_audio="${SUMMARY_audio} sndio(dynamic)"
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $SNDIO_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} sndio"
-            fi
-
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_SNDIO 1" >>confdefs.h
-
-            SOURCES="$SOURCES $srcdir/src/audio/sndio/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $SNDIO_CFLAGS"
-            have_audio=yes
-        fi
-    fi
-}
-
-CheckFusionSound()
-{
-    # Check whether --enable-fusionsound was given.
-if test ${enable_fusionsound+y}
-then :
-  enableval=$enable_fusionsound;
-else $as_nop
-  enable_fusionsound=no
-fi
-
-    if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
-
-pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fusionsound >= 1.1.1" >&5
-printf %s "checking for fusionsound >= 1.1.1... " >&6; }
-
-if test -n "$FUSIONSOUND_CFLAGS"; then
-    pkg_cv_FUSIONSOUND_CFLAGS="$FUSIONSOUND_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fusionsound >= 1.1.1\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "fusionsound >= 1.1.1") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags "fusionsound >= 1.1.1" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$FUSIONSOUND_LIBS"; then
-    pkg_cv_FUSIONSOUND_LIBS="$FUSIONSOUND_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fusionsound >= 1.1.1\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "fusionsound >= 1.1.1") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_FUSIONSOUND_LIBS=`$PKG_CONFIG --libs "fusionsound >= 1.1.1" 2>/dev/null`
-		      test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        FUSIONSOUND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "fusionsound >= 1.1.1" 2>&1`
-        else
-	        FUSIONSOUND_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "fusionsound >= 1.1.1" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$FUSIONSOUND_PKG_ERRORS" >&5
-
-	fusionsound=no
-elif test $pkg_failed = untried; then
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-	fusionsound=no
-else
-	FUSIONSOUND_CFLAGS=$pkg_cv_FUSIONSOUND_CFLAGS
-	FUSIONSOUND_LIBS=$pkg_cv_FUSIONSOUND_LIBS
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-	fusionsound=yes
-fi
-
-        if test x$fusionsound = xyes; then
-
-printf "%s\n" "#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+y}
-then :
-  enableval=$enable_fusionsound_shared;
-else $as_nop
-  enable_fusionsound_shared=yes
-fi
-
-            fusionsound_shared=no
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FusionSound dynamic loading support" >&5
-printf %s "checking for FusionSound dynamic loading support... " >&6; }
-            if test x$have_loadso != xyes && \
-               test x$enable_fusionsound_shared = xyes; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic fusionsound loading" >&5
-printf "%s\n" "$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
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC \"libfusionsound.so\"" >>confdefs.h
-
-                fusionsound_shared=yes
-                SUMMARY_audio="${SUMMARY_audio} fusionsound(dynamic)"
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} fusionsound"
-            fi
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fusionsound_shared" >&5
-printf "%s\n" "$fusionsound_shared" >&6; }
-
-            have_audio=yes
-        fi
-    fi
-}
-
-CheckDiskAudio()
-{
-    # Check whether --enable-diskaudio was given.
-if test ${enable_diskaudio+y}
-then :
-  enableval=$enable_diskaudio;
-else $as_nop
-  enable_diskaudio=yes
-fi
-
-    if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_DISK 1" >>confdefs.h
-
-        SOURCES="$SOURCES $srcdir/src/audio/disk/*.c"
-        SUMMARY_audio="${SUMMARY_audio} disk"
-        have_audio=yes
-    fi
-}
-
-CheckDummyAudio()
-{
-    # Check whether --enable-dummyaudio was given.
-if test ${enable_dummyaudio+y}
-then :
-  enableval=$enable_dummyaudio;
-else $as_nop
-  enable_dummyaudio=yes
-fi
-
-    if test x$enable_audio = xyes -a x$enable_dummyaudio = xyes; then
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_DUMMY 1" >>confdefs.h
-
-        SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
-        SUMMARY_audio="${SUMMARY_audio} dummy"
-        have_audio=yes
-    fi
-}
-
-CheckLibSampleRate()
-{
-    # Check whether --enable-libsamplerate was given.
-if test ${enable_libsamplerate+y}
-then :
-  enableval=$enable_libsamplerate;
-else $as_nop
-  enable_libsamplerate=yes
-fi
-
-    if test x$enable_libsamplerate = xyes; then
-        ac_fn_c_check_header_compile "$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 $as_nop
-  have_samplerate_h_hdr=no
-fi
-
-        if test x$have_samplerate_h_hdr = xyes; then
-
-printf "%s\n" "#define HAVE_LIBSAMPLERATE_H 1" >>confdefs.h
-
-
-            # Check whether --enable-libsamplerate-shared was given.
-if test ${enable_libsamplerate_shared+y}
-then :
-  enableval=$enable_libsamplerate_shared;
-else $as_nop
-  enable_libsamplerate_shared=yes
-fi
-
-
-            samplerate_lib=`find_lib "libsamplerate.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`
-
-            if test x$have_loadso != xyes && \
-               test x$enable_libsamplerate_shared = xyes; then
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: You must have SDL_LoadObject() support for dynamic libsamplerate loading" >&5
-printf "%s\n" "$as_me: WARNING: You must have SDL_LoadObject() support for dynamic libsamplerate loading" >&2;}
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_libsamplerate_shared = xyes && test x$samplerate_lib != x; then
-                echo "-- dynamic libsamplerate -> $samplerate_lib"
-
-printf "%s\n" "#define SDL_LIBSAMPLERATE_DYNAMIC \"$samplerate_lib\"" >>confdefs.h
-
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lsamplerate"
-            fi
-        fi
-    fi
-}
-
-CheckARM()
-{
-    # Check whether --enable-arm-simd was given.
-if test ${enable_arm_simd+y}
-then :
-  enableval=$enable_arm_simd; enable_arm_simd=$enableval
-else $as_nop
-  enable_arm_simd=no
-fi
-
-    if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_arm_simd = xyes; then
-        save_CFLAGS="$CFLAGS"
-        have_arm_simd=no
-        CFLAGS="-x assembler-with-cpp $CFLAGS"
+    if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_arm_simd = xyes; then
+        save_CFLAGS="$CFLAGS"
+        have_arm_simd=no
+        CFLAGS="-x assembler-with-cpp $CFLAGS"
 
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ARM SIMD" >&5
 printf %s "checking for ARM SIMD... " >&6; }
@@ -28356,12 +27309,6 @@ printf "%s\n" "#define SDL_VIDEO_DRIVER_ANDROID 1" >>confdefs.h
         CheckALSA
         CheckPipewire
         CheckPulseAudio
-        CheckJACK
-        CheckARTSC
-        CheckESD
-        CheckNAS
-        CheckSNDIO
-        CheckFusionSound
         CheckLibSampleRate
         # Need to check for Raspberry PI first and add platform specific compiler flags, otherwise the test for GLES fails!
         CheckRPI
@@ -28414,14 +27361,6 @@ printf "%s\n" "#define SDL_VIDEO_DRIVER_ANDROID 1" >>confdefs.h
         # Set up files for the audio library
         if test x$enable_audio = xyes; then
           case $ARCH in
-            sysv5|solaris|hpux)
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_SUNAUDIO 1" >>confdefs.h
-
-                SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
-                SUMMARY_audio="${SUMMARY_audio} sun"
-                have_audio=yes
-            ;;
             netbsd)  # Don't use this on OpenBSD, it's busted.
 
 printf "%s\n" "#define SDL_AUDIO_DRIVER_NETBSD 1" >>confdefs.h
@@ -28430,14 +27369,6 @@ printf "%s\n" "#define SDL_AUDIO_DRIVER_NETBSD 1" >>confdefs.h
                 SUMMARY_audio="${SUMMARY_audio} netbsd"
                 have_audio=yes
             ;;
-            aix)
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_PAUDIO 1" >>confdefs.h
-
-                SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
-                SUMMARY_audio="${SUMMARY_audio} paudio"
-                have_audio=yes
-            ;;
             android)
 
 printf "%s\n" "#define SDL_AUDIO_DRIVER_ANDROID 1" >>confdefs.h
@@ -28673,11 +27604,6 @@ printf "%s\n" "#define SDL_VIDEO_RENDER_D3D12 1" >>confdefs.h
         fi
         # Set up files for the audio library
         if test x$enable_audio = xyes; then
-
-printf "%s\n" "#define SDL_AUDIO_DRIVER_WINMM 1" >>confdefs.h
-
-            SUMMARY_audio="${SUMMARY_audio} winmm"
-            SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
             if test x$have_dsound = xyes; then
 
 printf "%s\n" "#define SDL_AUDIO_DRIVER_DSOUND 1" >>confdefs.h

+ 0 - 284
configure.ac

@@ -996,88 +996,6 @@ CheckALSA()
     fi
 }
 
-dnl Find JACK Audio
-CheckJACK()
-{
-    AC_ARG_ENABLE(jack,
-[AS_HELP_STRING([--enable-jack], [use JACK audio [default=yes]])],
-                  , enable_jack=yes)
-    if test x$enable_audio = xyes -a x$enable_jack = xyes; then
-        PKG_CHECK_MODULES([JACK], [jack >= 0.125], audio_jack=yes, audio_jack=no)
-
-        if test x$audio_jack = xyes; then
-            AC_ARG_ENABLE(jack-shared,
-[AS_HELP_STRING([--enable-jack-shared], [dynamically load JACK audio support [default=yes]])],
-                          , enable_jack_shared=yes)
-            jack_lib=[`find_lib "libjack.so.*" "$JACK_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
-
-            AC_DEFINE(SDL_AUDIO_DRIVER_JACK, 1, [ ])
-            SOURCES="$SOURCES $srcdir/src/audio/jack/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $JACK_CFLAGS"
-            if test x$have_loadso != xyes && \
-               test x$enable_jack_shared = xyes; then
-                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic JACK audio loading])
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_jack_shared = xyes && test x$jack_lib != x; then
-                echo "-- dynamic libjack -> $jack_lib"
-                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_JACK_DYNAMIC, "$jack_lib", [ ])
-                SUMMARY_audio="${SUMMARY_audio} jack(dynamic)"
-
-                case "$host" in
-                    # On Solaris, jack must be linked deferred explicitly
-                    # to prevent undefined symbol failures.
-                    *-*-solaris*)
-                        JACK_LIBS=`echo $JACK_LIBS | sed 's/\-l/-Wl,-l/g'`
-                        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $JACK_LIBS -Wl,-znodeferred"
-                esac
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $JACK_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} jack"
-            fi
-            have_audio=yes
-        fi
-    fi
-}
-
-dnl Find the ESD includes and libraries
-CheckESD()
-{
-    AC_ARG_ENABLE(esd,
-[AS_HELP_STRING([--enable-esd], [support the Enlightened Sound Daemon [default=yes]])],
-                  , enable_esd=yes)
-    if test x$enable_audio = xyes -a x$enable_esd = xyes; then
-        PKG_CHECK_MODULES([ESD], [esound >= 0.2.8], have_esd=yes, have_esd=no)
-        if test x$have_esd = xno; then
-           AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no)
-        fi
-        if test x$have_esd = xyes; then
-            AC_ARG_ENABLE(esd-shared,
-[AS_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [default=yes]])],
-                          , enable_esd_shared=yes)
-            esd_lib=[`find_lib "libesd.so.*" "$ESD_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
-
-            AC_DEFINE(SDL_AUDIO_DRIVER_ESD, 1, [ ])
-            SOURCES="$SOURCES $srcdir/src/audio/esd/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS"
-            if test x$have_loadso != xyes && \
-               test x$enable_esd_shared = xyes; then
-                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ESD loading])
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_esd_shared = xyes && test x$esd_lib != x; then
-                echo "-- dynamic libesd -> $esd_lib"
-                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ESD_DYNAMIC, "$esd_lib", [ ])
-                SUMMARY_audio="${SUMMARY_audio} esd(dynamic)"
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ESD_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} esd"
-            fi
-            have_audio=yes
-        fi
-    fi
-}
-
 dnl Find Pipewire
 CheckPipewire()
 {
@@ -1158,187 +1076,6 @@ CheckPulseAudio()
     fi
 }
 
-CheckARTSC()
-{
-    AC_ARG_ENABLE(arts,
-[AS_HELP_STRING([--enable-arts], [support the Analog Real Time Synthesizer [default=yes]])],
-                  , enable_arts=yes)
-    if test x$enable_audio = xyes -a x$enable_arts = xyes; then
-        AC_PATH_PROG(ARTSCONFIG, artsc-config)
-        if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then
-            : # arts isn't installed
-        else
-            ARTS_CFLAGS=`$ARTSCONFIG --cflags`
-            ARTS_LIBS=`$ARTSCONFIG --libs`
-            AC_MSG_CHECKING(for aRts development environment)
-            audio_arts=no
-            save_CFLAGS="$CFLAGS"
-            CFLAGS="$CFLAGS $ARTS_CFLAGS"
-            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-             #include <artsc.h>
-            ]], [[
-             arts_stream_t stream;
-            ]])], [audio_arts=yes],[])
-            CFLAGS="$save_CFLAGS"
-            AC_MSG_RESULT($audio_arts)
-            if test x$audio_arts = xyes; then
-                AC_ARG_ENABLE(arts-shared,
-[AS_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [default=yes]])],
-                              , enable_arts_shared=yes)
-                arts_lib=[`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
-
-                AC_DEFINE(SDL_AUDIO_DRIVER_ARTS, 1, [ ])
-                SOURCES="$SOURCES $srcdir/src/audio/arts/*.c"
-                EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS"
-                if test x$have_loadso != xyes && \
-                   test x$enable_arts_shared = xyes; then
-                    AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ARTS loading])
-                fi
-                if test x$have_loadso = xyes && \
-                   test x$enable_arts_shared = xyes && test x$arts_lib != x; then
-                    echo "-- dynamic libartsc -> $arts_lib"
-                    AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ARTS_DYNAMIC, "$arts_lib", [ ])
-                    SUMMARY_audio="${SUMMARY_audio} arts(dynamic)"
-                else
-                    EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARTS_LIBS"
-                    SUMMARY_audio="${SUMMARY_audio} arts"
-                fi
-                have_audio=yes
-            fi
-        fi
-    fi
-}
-
-dnl See if the NAS audio interface is supported
-CheckNAS()
-{
-    AC_ARG_ENABLE(nas,
-[AS_HELP_STRING([--enable-nas], [support the NAS audio API [default=yes]])],
-                  , enable_nas=yes)
-    if test x$enable_audio = xyes -a x$enable_nas = xyes; then
-        AC_CHECK_HEADER(audio/audiolib.h, have_nas_hdr=yes)
-        AC_CHECK_LIB(audio, AuOpenServer, have_nas_lib=yes)
-
-        AC_MSG_CHECKING(for NAS audio support)
-        have_nas=no
-
-        if test x$have_nas_hdr = xyes -a x$have_nas_lib = xyes; then
-            have_nas=yes
-            NAS_LIBS="-laudio"
-
-        elif test -r /usr/X11R6/include/audio/audiolib.h; then
-            have_nas=yes
-            NAS_CFLAGS="-I/usr/X11R6/include/"
-            NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
-
-        fi
-
-        AC_MSG_RESULT($have_nas)
-
-        if test x$have_nas = xyes; then
-            AC_ARG_ENABLE(nas-shared,
-[AS_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [default=yes]])],
-                          , enable_nas_shared=yes)
-            nas_lib=[`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
-
-            if test x$have_loadso != xyes && \
-               test x$enable_nas_shared = xyes; then
-                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading])
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_nas_shared = xyes && test x$nas_lib != x; then
-                echo "-- dynamic libaudio -> $nas_lib"
-                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_NAS_DYNAMIC, "$nas_lib", [ ])
-                SUMMARY_audio="${SUMMARY_audio} nas(dynamic)"
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $NAS_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} nas"
-            fi
-
-            AC_DEFINE(SDL_AUDIO_DRIVER_NAS, 1, [ ])
-            SOURCES="$SOURCES $srcdir/src/audio/nas/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $NAS_CFLAGS"
-            have_audio=yes
-        fi
-    fi
-}
-
-dnl See if the sndio audio interface is supported
-CheckSNDIO()
-{
-    AC_ARG_ENABLE(sndio,
-[AS_HELP_STRING([--enable-sndio], [support the sndio audio API [default=yes]])],
-                  , enable_sndio=yes)
-    if test x$enable_audio = xyes -a x$enable_sndio = xyes; then
-        PKG_CHECK_MODULES([SNDIO], [sndio], audio_sndio=yes, audio_sndio=no)
-
-        if test x$audio_sndio = xyes; then
-            AC_ARG_ENABLE(sndio-shared,
-[AS_HELP_STRING([--enable-sndio-shared], [dynamically load sndio audio support [default=yes]])],
-                          , enable_sndio_shared=yes)
-            sndio_lib=[`find_lib "libsndio.so.*" "$SNDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
-
-            if test x$have_loadso != xyes && \
-               test x$enable_sndio_shared = xyes; then
-                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic sndio loading])
-            fi
-            if test x$have_loadso = xyes && \
-               test x$enable_sndio_shared = xyes && test x$sndio_lib != x; then
-                echo "-- dynamic libsndio -> $sndio_lib"
-                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC, "$sndio_lib", [ ])
-                SUMMARY_audio="${SUMMARY_audio} sndio(dynamic)"
-            else
-                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $SNDIO_LIBS"
-                SUMMARY_audio="${SUMMARY_audio} sndio"
-            fi
-
-            AC_DEFINE(SDL_AUDIO_DRIVER_SNDIO, 1, [ ])
-            SOURCES="$SOURCES $srcdir/src/audio/sndio/*.c"
-            EXTRA_CFLAGS="$EXTRA_CFLAGS $SNDIO_CFLAGS"
-            have_audio=yes
-        fi
-    fi
-}
-
-dnl Find FusionSound
-CheckFusionSound()
-{
-    AC_ARG_ENABLE(fusionsound,
-[AS_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
-        PKG_CHECK_MODULES([FUSIONSOUND], [fusionsound >= 1.1.1], fusionsound=yes, fusionsound=no)
-
-        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,
-[AS_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()
 {
@@ -3779,12 +3516,6 @@ case "$host" in
         CheckALSA
         CheckPipewire
         CheckPulseAudio
-        CheckJACK
-        CheckARTSC
-        CheckESD
-        CheckNAS
-        CheckSNDIO
-        CheckFusionSound
         CheckLibSampleRate
         # Need to check for Raspberry PI first and add platform specific compiler flags, otherwise the test for GLES fails!
         CheckRPI
@@ -3837,24 +3568,12 @@ case "$host" in
         # Set up files for the audio library
         if test x$enable_audio = xyes; then
           case $ARCH in
-            sysv5|solaris|hpux)
-                AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ])
-                SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
-                SUMMARY_audio="${SUMMARY_audio} sun"
-                have_audio=yes
-            ;;
             netbsd)  # Don't use this on OpenBSD, it's busted.
                 AC_DEFINE(SDL_AUDIO_DRIVER_NETBSD, 1, [ ])
                 SOURCES="$SOURCES $srcdir/src/audio/netbsd/*.c"
                 SUMMARY_audio="${SUMMARY_audio} netbsd"
                 have_audio=yes
             ;;
-            aix)
-                AC_DEFINE(SDL_AUDIO_DRIVER_PAUDIO, 1, [ ])
-                SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
-                SUMMARY_audio="${SUMMARY_audio} paudio"
-                have_audio=yes
-            ;;
             android)
                 AC_DEFINE(SDL_AUDIO_DRIVER_ANDROID, 1, [ ])
                 SOURCES="$SOURCES $srcdir/src/audio/android/*.c"
@@ -4049,9 +3768,6 @@ case "$host" in
         fi
         # Set up files for the audio library
         if test x$enable_audio = xyes; then
-            AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
-            SUMMARY_audio="${SUMMARY_audio} winmm"
-            SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
             if test x$have_dsound = xyes; then
                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
                 SUMMARY_audio="${SUMMARY_audio} directsound"

+ 0 - 15
include/SDL_config.h.cmake

@@ -293,35 +293,20 @@
 #cmakedefine SDL_AUDIO_DRIVER_ANDROID @SDL_AUDIO_DRIVER_ANDROID@
 #cmakedefine SDL_AUDIO_DRIVER_OPENSLES @SDL_AUDIO_DRIVER_OPENSLES@
 #cmakedefine SDL_AUDIO_DRIVER_AAUDIO @SDL_AUDIO_DRIVER_AAUDIO@
-#cmakedefine SDL_AUDIO_DRIVER_ARTS @SDL_AUDIO_DRIVER_ARTS@
-#cmakedefine SDL_AUDIO_DRIVER_ARTS_DYNAMIC @SDL_AUDIO_DRIVER_ARTS_DYNAMIC@
 #cmakedefine SDL_AUDIO_DRIVER_COREAUDIO @SDL_AUDIO_DRIVER_COREAUDIO@
 #cmakedefine SDL_AUDIO_DRIVER_DISK @SDL_AUDIO_DRIVER_DISK@
 #cmakedefine SDL_AUDIO_DRIVER_DSOUND @SDL_AUDIO_DRIVER_DSOUND@
 #cmakedefine SDL_AUDIO_DRIVER_DUMMY @SDL_AUDIO_DRIVER_DUMMY@
 #cmakedefine SDL_AUDIO_DRIVER_EMSCRIPTEN @SDL_AUDIO_DRIVER_EMSCRIPTEN@
-#cmakedefine SDL_AUDIO_DRIVER_ESD @SDL_AUDIO_DRIVER_ESD@
-#cmakedefine SDL_AUDIO_DRIVER_ESD_DYNAMIC @SDL_AUDIO_DRIVER_ESD_DYNAMIC@
-#cmakedefine SDL_AUDIO_DRIVER_FUSIONSOUND @SDL_AUDIO_DRIVER_FUSIONSOUND@
-#cmakedefine SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC @SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC@
 #cmakedefine SDL_AUDIO_DRIVER_HAIKU @SDL_AUDIO_DRIVER_HAIKU@
-#cmakedefine SDL_AUDIO_DRIVER_JACK @SDL_AUDIO_DRIVER_JACK@
-#cmakedefine SDL_AUDIO_DRIVER_JACK_DYNAMIC @SDL_AUDIO_DRIVER_JACK_DYNAMIC@
-#cmakedefine SDL_AUDIO_DRIVER_NAS @SDL_AUDIO_DRIVER_NAS@
-#cmakedefine SDL_AUDIO_DRIVER_NAS_DYNAMIC @SDL_AUDIO_DRIVER_NAS_DYNAMIC@
 #cmakedefine SDL_AUDIO_DRIVER_NETBSD @SDL_AUDIO_DRIVER_NETBSD@
 #cmakedefine SDL_AUDIO_DRIVER_OSS @SDL_AUDIO_DRIVER_OSS@
-#cmakedefine SDL_AUDIO_DRIVER_PAUDIO @SDL_AUDIO_DRIVER_PAUDIO@
 #cmakedefine SDL_AUDIO_DRIVER_PIPEWIRE @SDL_AUDIO_DRIVER_PIPEWIRE@
 #cmakedefine SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC @SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC@
 #cmakedefine SDL_AUDIO_DRIVER_PULSEAUDIO @SDL_AUDIO_DRIVER_PULSEAUDIO@
 #cmakedefine SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC @SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC@
 #cmakedefine SDL_AUDIO_DRIVER_QSA @SDL_AUDIO_DRIVER_QSA@
-#cmakedefine SDL_AUDIO_DRIVER_SNDIO @SDL_AUDIO_DRIVER_SNDIO@
-#cmakedefine SDL_AUDIO_DRIVER_SNDIO_DYNAMIC @SDL_AUDIO_DRIVER_SNDIO_DYNAMIC@
-#cmakedefine SDL_AUDIO_DRIVER_SUNAUDIO @SDL_AUDIO_DRIVER_SUNAUDIO@
 #cmakedefine SDL_AUDIO_DRIVER_WASAPI @SDL_AUDIO_DRIVER_WASAPI@
-#cmakedefine SDL_AUDIO_DRIVER_WINMM @SDL_AUDIO_DRIVER_WINMM@
 #cmakedefine SDL_AUDIO_DRIVER_VITA @SDL_AUDIO_DRIVER_VITA@
 #cmakedefine SDL_AUDIO_DRIVER_PSP @SDL_AUDIO_DRIVER_PSP@
 #cmakedefine SDL_AUDIO_DRIVER_PS2 @SDL_AUDIO_DRIVER_PS2@

+ 0 - 15
include/SDL_config.h.in

@@ -279,37 +279,22 @@
 #undef SDL_AUDIO_DRIVER_ALSA
 #undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC
 #undef SDL_AUDIO_DRIVER_ANDROID
-#undef SDL_AUDIO_DRIVER_ARTS
-#undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC
 #undef SDL_AUDIO_DRIVER_COREAUDIO
 #undef SDL_AUDIO_DRIVER_DISK
 #undef SDL_AUDIO_DRIVER_DSOUND
 #undef SDL_AUDIO_DRIVER_DUMMY
 #undef SDL_AUDIO_DRIVER_EMSCRIPTEN
-#undef SDL_AUDIO_DRIVER_ESD
-#undef SDL_AUDIO_DRIVER_ESD_DYNAMIC
-#undef SDL_AUDIO_DRIVER_FUSIONSOUND
-#undef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC
 #undef SDL_AUDIO_DRIVER_HAIKU
-#undef SDL_AUDIO_DRIVER_JACK
-#undef SDL_AUDIO_DRIVER_JACK_DYNAMIC
 #undef SDL_AUDIO_DRIVER_NACL
-#undef SDL_AUDIO_DRIVER_NAS
-#undef SDL_AUDIO_DRIVER_NAS_DYNAMIC
 #undef SDL_AUDIO_DRIVER_NETBSD
 #undef SDL_AUDIO_DRIVER_OPENSLES
 #undef SDL_AUDIO_DRIVER_OSS
-#undef SDL_AUDIO_DRIVER_PAUDIO
 #undef SDL_AUDIO_DRIVER_PIPEWIRE
 #undef SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC
 #undef SDL_AUDIO_DRIVER_PULSEAUDIO
 #undef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC
 #undef SDL_AUDIO_DRIVER_QSA
-#undef SDL_AUDIO_DRIVER_SNDIO
-#undef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC
-#undef SDL_AUDIO_DRIVER_SUNAUDIO
 #undef SDL_AUDIO_DRIVER_WASAPI
-#undef SDL_AUDIO_DRIVER_WINMM
 
 /* Enable various input drivers */
 #undef SDL_INPUT_LINUXEV

+ 0 - 27
src/audio/SDL_audio.c

@@ -42,51 +42,27 @@ static const AudioBootStrap *const bootstrap[] = {
 #if SDL_AUDIO_DRIVER_ALSA
     &ALSA_bootstrap,
 #endif
-#if SDL_AUDIO_DRIVER_SNDIO
-    &SNDIO_bootstrap,
-#endif
 #if SDL_AUDIO_DRIVER_NETBSD
     &NETBSDAUDIO_bootstrap,
 #endif
 #if SDL_AUDIO_DRIVER_QSA
     &QSAAUDIO_bootstrap,
 #endif
-#if SDL_AUDIO_DRIVER_SUNAUDIO
-    &SUNAUDIO_bootstrap,
-#endif
-#if SDL_AUDIO_DRIVER_ARTS
-    &ARTS_bootstrap,
-#endif
-#if SDL_AUDIO_DRIVER_ESD
-    &ESD_bootstrap,
-#endif
 #if SDL_AUDIO_DRIVER_NACL
     &NACLAUDIO_bootstrap,
 #endif
-#if SDL_AUDIO_DRIVER_NAS
-    &NAS_bootstrap,
-#endif
 #if SDL_AUDIO_DRIVER_WASAPI
     &WASAPI_bootstrap,
 #endif
 #if SDL_AUDIO_DRIVER_DSOUND
     &DSOUND_bootstrap,
 #endif
-#if SDL_AUDIO_DRIVER_WINMM
-    &WINMM_bootstrap,
-#endif
-#if SDL_AUDIO_DRIVER_PAUDIO
-    &PAUDIO_bootstrap,
-#endif
 #if SDL_AUDIO_DRIVER_HAIKU
     &HAIKUAUDIO_bootstrap,
 #endif
 #if SDL_AUDIO_DRIVER_COREAUDIO
     &COREAUDIO_bootstrap,
 #endif
-#if SDL_AUDIO_DRIVER_FUSIONSOUND
-    &FUSIONSOUND_bootstrap,
-#endif
 #if SDL_AUDIO_DRIVER_AAUDIO
     &aaudio_bootstrap,
 #endif
@@ -111,9 +87,6 @@ static const AudioBootStrap *const bootstrap[] = {
 #if SDL_AUDIO_DRIVER_EMSCRIPTEN
     &EMSCRIPTENAUDIO_bootstrap,
 #endif
-#if SDL_AUDIO_DRIVER_JACK
-    &JACK_bootstrap,
-#endif
 #if SDL_AUDIO_DRIVER_PIPEWIRE
     &PIPEWIRE_bootstrap,
 #endif

+ 0 - 8
src/audio/SDL_sysaudio.h

@@ -184,25 +184,17 @@ typedef struct AudioBootStrap
 extern AudioBootStrap PIPEWIRE_bootstrap;
 extern AudioBootStrap PULSEAUDIO_bootstrap;
 extern AudioBootStrap ALSA_bootstrap;
-extern AudioBootStrap JACK_bootstrap;
-extern AudioBootStrap SNDIO_bootstrap;
 extern AudioBootStrap NETBSDAUDIO_bootstrap;
 extern AudioBootStrap DSP_bootstrap;
 extern AudioBootStrap QSAAUDIO_bootstrap;
-extern AudioBootStrap SUNAUDIO_bootstrap;
-extern AudioBootStrap ARTS_bootstrap;
-extern AudioBootStrap ESD_bootstrap;
 extern AudioBootStrap NACLAUDIO_bootstrap;
-extern AudioBootStrap NAS_bootstrap;
 extern AudioBootStrap WASAPI_bootstrap;
 extern AudioBootStrap DSOUND_bootstrap;
 extern AudioBootStrap WINMM_bootstrap;
-extern AudioBootStrap PAUDIO_bootstrap;
 extern AudioBootStrap HAIKUAUDIO_bootstrap;
 extern AudioBootStrap COREAUDIO_bootstrap;
 extern AudioBootStrap DISKAUDIO_bootstrap;
 extern AudioBootStrap DUMMYAUDIO_bootstrap;
-extern AudioBootStrap FUSIONSOUND_bootstrap;
 extern AudioBootStrap aaudio_bootstrap;
 extern AudioBootStrap openslES_bootstrap;
 extern AudioBootStrap ANDROIDAUDIO_bootstrap;

+ 0 - 357
src/audio/arts/SDL_artsaudio.c

@@ -1,357 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_AUDIO_DRIVER_ARTS
-
-/* Allow access to a raw mixing buffer */
-
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
-#include <unistd.h>
-#include <errno.h>
-
-#include "SDL_timer.h"
-#include "SDL_audio.h"
-#include "../SDL_audio_c.h"
-#include "SDL_artsaudio.h"
-
-#ifdef SDL_AUDIO_DRIVER_ARTS_DYNAMIC
-#include "SDL_name.h"
-#include "SDL_loadso.h"
-#else
-#define SDL_NAME(X) X
-#endif
-
-#ifdef SDL_AUDIO_DRIVER_ARTS_DYNAMIC
-
-static const char *arts_library = SDL_AUDIO_DRIVER_ARTS_DYNAMIC;
-static void *arts_handle = NULL;
-
-/* !!! FIXME: I hate this SDL_NAME clutter...it makes everything so messy! */
-static int (*SDL_NAME(arts_init)) (void);
-static void (*SDL_NAME(arts_free)) (void);
-static arts_stream_t(*SDL_NAME(arts_play_stream)) (int rate, int bits,
-                                                   int channels,
-                                                   const char *name);
-static int (*SDL_NAME(arts_stream_set)) (arts_stream_t s,
-                                         arts_parameter_t param, int value);
-static int (*SDL_NAME(arts_stream_get)) (arts_stream_t s,
-                                         arts_parameter_t param);
-static int (*SDL_NAME(arts_write)) (arts_stream_t s, const void *buffer,
-                                    int count);
-static void (*SDL_NAME(arts_close_stream)) (arts_stream_t s);
-static int (*SDL_NAME(arts_suspend))(void);
-static int (*SDL_NAME(arts_suspended)) (void);
-static const char *(*SDL_NAME(arts_error_text)) (int errorcode);
-
-#define SDL_ARTS_SYM(x) { #x, (void **) (char *) &SDL_NAME(x) }
-static struct
-{
-    const char *name;
-    void **func;
-} arts_functions[] = {
-/* *INDENT-OFF* */
-    SDL_ARTS_SYM(arts_init),
-    SDL_ARTS_SYM(arts_free),
-    SDL_ARTS_SYM(arts_play_stream),
-    SDL_ARTS_SYM(arts_stream_set),
-    SDL_ARTS_SYM(arts_stream_get),
-    SDL_ARTS_SYM(arts_write),
-    SDL_ARTS_SYM(arts_close_stream),
-    SDL_ARTS_SYM(arts_suspend),
-    SDL_ARTS_SYM(arts_suspended),
-    SDL_ARTS_SYM(arts_error_text),
-/* *INDENT-ON* */
-};
-
-#undef SDL_ARTS_SYM
-
-static void
-UnloadARTSLibrary()
-{
-    if (arts_handle != NULL) {
-        SDL_UnloadObject(arts_handle);
-        arts_handle = NULL;
-    }
-}
-
-static int
-LoadARTSLibrary(void)
-{
-    int i, retval = -1;
-
-    if (arts_handle == NULL) {
-        arts_handle = SDL_LoadObject(arts_library);
-        if (arts_handle != NULL) {
-            retval = 0;
-            for (i = 0; i < SDL_arraysize(arts_functions); ++i) {
-                *arts_functions[i].func =
-                    SDL_LoadFunction(arts_handle, arts_functions[i].name);
-                if (!*arts_functions[i].func) {
-                    retval = -1;
-                    UnloadARTSLibrary();
-                    break;
-                }
-            }
-        }
-    }
-
-    return retval;
-}
-
-#else
-
-static void
-UnloadARTSLibrary()
-{
-    return;
-}
-
-static int
-LoadARTSLibrary(void)
-{
-    return 0;
-}
-
-#endif /* SDL_AUDIO_DRIVER_ARTS_DYNAMIC */
-
-/* This function waits until it is possible to write a full sound buffer */
-static void
-ARTS_WaitDevice(_THIS)
-{
-    Sint32 ticks;
-
-    /* Check to see if the thread-parent process is still alive */
-    {
-        static int cnt = 0;
-        /* Note that this only works with thread implementations
-           that use a different process id for each thread.
-         */
-        /* Check every 10 loops */
-        if (this->hidden->parent && (((++cnt) % 10) == 0)) {
-            if (kill(this->hidden->parent, 0) < 0 && errno == ESRCH) {
-                SDL_OpenedAudioDeviceDisconnected(this);
-            }
-        }
-    }
-
-    /* Use timer for general audio synchronization */
-    ticks =
-        ((Sint32) (this->hidden->next_frame - SDL_GetTicks())) - FUDGE_TICKS;
-    if (ticks > 0) {
-        SDL_Delay(ticks);
-    }
-}
-
-static void
-ARTS_PlayDevice(_THIS)
-{
-    /* Write the audio data */
-    int written = SDL_NAME(arts_write) (this->hidden->stream,
-                                        this->hidden->mixbuf,
-                                        this->hidden->mixlen);
-
-    /* If timer synchronization is enabled, set the next write frame */
-    if (this->hidden->frame_ticks) {
-        this->hidden->next_frame += this->hidden->frame_ticks;
-    }
-
-    /* If we couldn't write, assume fatal error for now */
-    if (written < 0) {
-        SDL_OpenedAudioDeviceDisconnected(this);
-    }
-#ifdef DEBUG_AUDIO
-    fprintf(stderr, "Wrote %d bytes of audio data\n", written);
-#endif
-}
-
-static Uint8 *
-ARTS_GetDeviceBuf(_THIS)
-{
-    return (this->hidden->mixbuf);
-}
-
-
-static void
-ARTS_CloseDevice(_THIS)
-{
-    if (this->hidden->stream) {
-        SDL_NAME(arts_close_stream) (this->hidden->stream);
-    }
-    SDL_NAME(arts_free) ();
-    SDL_free(this->hidden->mixbuf);
-    SDL_free(this->hidden);
-}
-
-static int
-ARTS_Suspend(void)
-{
-    const Uint32 abortms = SDL_GetTicks() + 3000; /* give up after 3 secs */
-    while ( (!SDL_NAME(arts_suspended)()) && !SDL_TICKS_PASSED(SDL_GetTicks(), abortms) ) {
-        if ( SDL_NAME(arts_suspend)() ) {
-            break;
-        }
-    }
-    return SDL_NAME(arts_suspended)();
-}
-
-static int
-ARTS_OpenDevice(_THIS, const char *devname)
-{
-    int rc = 0;
-    int bits, frag_spec = 0;
-    SDL_AudioFormat test_format = 0;
-
-    /* Initialize all variables that we clean on shutdown */
-    this->hidden = (struct SDL_PrivateAudioData *)
-        SDL_malloc((sizeof *this->hidden));
-    if (this->hidden == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_zerop(this->hidden);
-
-    /* Try for a closest match on audio format */
-    for (test_format = SDL_FirstAudioFormat(this->spec.format); test_format; test_format = SDL_NextAudioFormat()) {
-#ifdef DEBUG_AUDIO
-        fprintf(stderr, "Trying format 0x%4.4x\n", test_format);
-#endif
-        switch (test_format) {
-        case AUDIO_U8:
-        case AUDIO_S16LSB:
-            break;
-        default:
-            continue;
-        }
-        break;
-    }
-    if (!test_format) {
-        return SDL_SetError("%s: Unsupported audio format", "arts");
-    }
-    this->spec.format = test_format;
-    bits = SDL_AUDIO_BITSIZE(test_format);
-
-    if ((rc = SDL_NAME(arts_init) ()) != 0) {
-        return SDL_SetError("Unable to initialize ARTS: %s",
-                            SDL_NAME(arts_error_text) (rc));
-    }
-
-    if (!ARTS_Suspend()) {
-        return SDL_SetError("ARTS can not open audio device");
-    }
-
-    this->hidden->stream = SDL_NAME(arts_play_stream) (this->spec.freq,
-                                                       bits,
-                                                       this->spec.channels,
-                                                       "SDL");
-
-    /* Play nothing so we have at least one write (server bug workaround). */
-    SDL_NAME(arts_write) (this->hidden->stream, "", 0);
-
-    /* Calculate the final parameters for this audio specification */
-    SDL_CalculateAudioSpec(&this->spec);
-
-    /* Determine the power of two of the fragment size */
-    for (frag_spec = 0; (0x01 << frag_spec) < this->spec.size; ++frag_spec);
-    if ((0x01 << frag_spec) != this->spec.size) {
-        return SDL_SetError("Fragment size must be a power of two");
-    }
-    frag_spec |= 0x00020000;    /* two fragments, for low latency */
-
-#ifdef ARTS_P_PACKET_SETTINGS
-    SDL_NAME(arts_stream_set) (this->hidden->stream,
-                               ARTS_P_PACKET_SETTINGS, frag_spec);
-#else
-    SDL_NAME(arts_stream_set) (this->hidden->stream, ARTS_P_PACKET_SIZE,
-                               frag_spec & 0xffff);
-    SDL_NAME(arts_stream_set) (this->hidden->stream, ARTS_P_PACKET_COUNT,
-                               frag_spec >> 16);
-#endif
-    this->spec.size = SDL_NAME(arts_stream_get) (this->hidden->stream,
-                                                 ARTS_P_PACKET_SIZE);
-
-    /* Allocate mixing buffer */
-    this->hidden->mixlen = this->spec.size;
-    this->hidden->mixbuf = (Uint8 *) SDL_malloc(this->hidden->mixlen);
-    if (this->hidden->mixbuf == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_memset(this->hidden->mixbuf, this->spec.silence, this->spec.size);
-
-    /* Get the parent process id (we're the parent of the audio thread) */
-    this->hidden->parent = getpid();
-
-    /* We're ready to rock and roll. :-) */
-    return 0;
-}
-
-
-static void
-ARTS_Deinitialize(void)
-{
-    UnloadARTSLibrary();
-}
-
-
-static SDL_bool
-ARTS_Init(SDL_AudioDriverImpl * impl)
-{
-    if (LoadARTSLibrary() < 0) {
-        return SDL_FALSE;
-    } else {
-        if (SDL_NAME(arts_init) () != NULL) {
-            UnloadARTSLibrary();
-            SDL_SetError("ARTS: arts_init failed (no audio server?)");
-            return SDL_FALSE;
-        }
-
-        /* Play a stream so aRts doesn't crash */
-        if (ARTS_Suspend()) {
-            arts_stream_t stream;
-            stream = SDL_NAME(arts_play_stream) (44100, 16, 2, "SDL");
-            SDL_NAME(arts_write) (stream, "", 0);
-            SDL_NAME(arts_close_stream) (stream);
-        }
-
-        SDL_NAME(arts_free) ();
-    }
-
-    /* Set the function pointers */
-    impl->OpenDevice = ARTS_OpenDevice;
-    impl->PlayDevice = ARTS_PlayDevice;
-    impl->WaitDevice = ARTS_WaitDevice;
-    impl->GetDeviceBuf = ARTS_GetDeviceBuf;
-    impl->CloseDevice = ARTS_CloseDevice;
-    impl->Deinitialize = ARTS_Deinitialize;
-    impl->OnlyHasDefaultOutputDevice = SDL_TRUE;
-
-    return SDL_TRUE;   /* this audio target is available. */
-}
-
-
-AudioBootStrap ARTS_bootstrap = {
-    "arts", "Analog RealTime Synthesizer", ARTS_Init, SDL_FALSE
-};
-
-#endif /* SDL_AUDIO_DRIVER_ARTS */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 53
src/audio/arts/SDL_artsaudio.h

@@ -1,53 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef SDL_artsaudio_h_
-#define SDL_artsaudio_h_
-
-#include <artsc.h>
-
-#include "../SDL_sysaudio.h"
-
-/* Hidden "this" pointer for the audio functions */
-#define _THIS   SDL_AudioDevice *this
-
-struct SDL_PrivateAudioData
-{
-    /* The stream descriptor for the audio device */
-    arts_stream_t stream;
-
-    /* The parent process id, to detect when application quits */
-    pid_t parent;
-
-    /* Raw mixing buffer */
-    Uint8 *mixbuf;
-    int mixlen;
-
-    /* Support for audio timing using a timer, in addition to SDL_IOReady() */
-    float frame_ticks;
-    float next_frame;
-};
-#define FUDGE_TICKS 10      /* The scheduler overhead ticks per frame */
-
-#endif /* SDL_artsaudio_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 335
src/audio/esd/SDL_esdaudio.c

@@ -1,335 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_AUDIO_DRIVER_ESD
-
-/* Allow access to an ESD network stream mixing buffer */
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <signal.h>
-#include <errno.h>
-#include <esd.h>
-
-#include "SDL_timer.h"
-#include "SDL_audio.h"
-#include "../SDL_audio_c.h"
-#include "SDL_esdaudio.h"
-
-#ifdef SDL_AUDIO_DRIVER_ESD_DYNAMIC
-#include "SDL_name.h"
-#include "SDL_loadso.h"
-#else
-#define SDL_NAME(X) X
-#endif
-
-#ifdef SDL_AUDIO_DRIVER_ESD_DYNAMIC
-
-static const char *esd_library = SDL_AUDIO_DRIVER_ESD_DYNAMIC;
-static void *esd_handle = NULL;
-
-static int (*SDL_NAME(esd_open_sound)) (const char *host);
-static int (*SDL_NAME(esd_close)) (int esd);
-static int (*SDL_NAME(esd_play_stream)) (esd_format_t format, int rate,
-                                         const char *host, const char *name);
-
-#define SDL_ESD_SYM(x) { #x, (void **) (char *) &SDL_NAME(x) }
-static struct
-{
-    const char *name;
-    void **func;
-} const esd_functions[] = {
-    SDL_ESD_SYM(esd_open_sound),
-    SDL_ESD_SYM(esd_close), SDL_ESD_SYM(esd_play_stream),
-};
-
-#undef SDL_ESD_SYM
-
-static void
-UnloadESDLibrary()
-{
-    if (esd_handle != NULL) {
-        SDL_UnloadObject(esd_handle);
-        esd_handle = NULL;
-    }
-}
-
-static int
-LoadESDLibrary(void)
-{
-    int i, retval = -1;
-
-    if (esd_handle == NULL) {
-        esd_handle = SDL_LoadObject(esd_library);
-        if (esd_handle) {
-            retval = 0;
-            for (i = 0; i < SDL_arraysize(esd_functions); ++i) {
-                *esd_functions[i].func =
-                    SDL_LoadFunction(esd_handle, esd_functions[i].name);
-                if (!*esd_functions[i].func) {
-                    retval = -1;
-                    UnloadESDLibrary();
-                    break;
-                }
-            }
-        }
-    }
-    return retval;
-}
-
-#else
-
-static void
-UnloadESDLibrary()
-{
-    return;
-}
-
-static int
-LoadESDLibrary(void)
-{
-    return 0;
-}
-
-#endif /* SDL_AUDIO_DRIVER_ESD_DYNAMIC */
-
-
-/* This function waits until it is possible to write a full sound buffer */
-static void
-ESD_WaitDevice(_THIS)
-{
-    Sint32 ticks;
-
-    /* Check to see if the thread-parent process is still alive */
-    {
-        static int cnt = 0;
-        /* Note that this only works with thread implementations
-           that use a different process id for each thread.
-         */
-        /* Check every 10 loops */
-        if (this->hidden->parent && (((++cnt) % 10) == 0)) {
-            if (kill(this->hidden->parent, 0) < 0 && errno == ESRCH) {
-                SDL_OpenedAudioDeviceDisconnected(this);
-            }
-        }
-    }
-
-    /* Use timer for general audio synchronization */
-    ticks = ((Sint32) (this->hidden->next_frame - SDL_GetTicks())) - FUDGE_TICKS;
-    if (ticks > 0) {
-        SDL_Delay(ticks);
-    }
-}
-
-static void
-ESD_PlayDevice(_THIS)
-{
-    int written = 0;
-
-    /* Write the audio data, checking for EAGAIN on broken audio drivers */
-    do {
-        written = write(this->hidden->audio_fd,
-                        this->hidden->mixbuf, this->hidden->mixlen);
-        if ((written < 0) && ((errno == 0) || (errno == EAGAIN))) {
-            SDL_Delay(1);       /* Let a little CPU time go by */
-        }
-    } while ((written < 0) &&
-             ((errno == 0) || (errno == EAGAIN) || (errno == EINTR)));
-
-    /* Set the next write frame */
-    this->hidden->next_frame += this->hidden->frame_ticks;
-
-    /* If we couldn't write, assume fatal error for now */
-    if (written < 0) {
-        SDL_OpenedAudioDeviceDisconnected(this);
-    }
-}
-
-static Uint8 *
-ESD_GetDeviceBuf(_THIS)
-{
-    return (this->hidden->mixbuf);
-}
-
-static void
-ESD_CloseDevice(_THIS)
-{
-    if (this->hidden->audio_fd >= 0) {
-        SDL_NAME(esd_close) (this->hidden->audio_fd);
-    }
-    SDL_free(this->hidden->mixbuf);
-    SDL_free(this->hidden);
-}
-
-/* Try to get the name of the program */
-static char *
-get_progname(void)
-{
-    char *progname = NULL;
-#ifdef __LINUX__
-    FILE *fp;
-    static char temp[BUFSIZ];
-
-    SDL_snprintf(temp, SDL_arraysize(temp), "/proc/%d/cmdline", getpid());
-    fp = fopen(temp, "r");
-    if (fp != NULL) {
-        if (fgets(temp, sizeof(temp) - 1, fp)) {
-            progname = SDL_strrchr(temp, '/');
-            if (progname == NULL) {
-                progname = temp;
-            } else {
-                progname = progname + 1;
-            }
-        }
-        fclose(fp);
-    }
-#endif
-    return (progname);
-}
-
-
-static int
-ESD_OpenDevice(_THIS, const char *devname)
-{
-    esd_format_t format = (ESD_STREAM | ESD_PLAY);
-    SDL_AudioFormat test_format = 0;
-    int found = 0;
-
-    /* Initialize all variables that we clean on shutdown */
-    this->hidden = (struct SDL_PrivateAudioData *)
-        SDL_malloc((sizeof *this->hidden));
-    if (this->hidden == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_zerop(this->hidden);
-    this->hidden->audio_fd = -1;
-
-    /* Convert audio spec to the ESD audio format */
-    /* Try for a closest match on audio format */
-    for (test_format = SDL_FirstAudioFormat(this->spec.format);
-         !found && test_format; test_format = SDL_NextAudioFormat()) {
-#ifdef DEBUG_AUDIO
-        fprintf(stderr, "Trying format 0x%4.4x\n", test_format);
-#endif
-        found = 1;
-        switch (test_format) {
-        case AUDIO_U8:
-            format |= ESD_BITS8;
-            break;
-        case AUDIO_S16SYS:
-            format |= ESD_BITS16;
-            break;
-        default:
-            found = 0;
-            break;
-        }
-    }
-
-    if (!found) {
-        return SDL_SetError("Couldn't find any hardware audio formats");
-    }
-
-    if (this->spec.channels == 1) {
-        format |= ESD_MONO;
-    } else {
-        format |= ESD_STEREO;
-    }
-#if 0
-    this->spec.samples = ESD_BUF_SIZE;  /* Darn, no way to change this yet */
-#endif
-
-    /* Open a connection to the ESD audio server */
-    this->hidden->audio_fd =
-        SDL_NAME(esd_play_stream) (format, this->spec.freq, NULL,
-                                   get_progname());
-
-    if (this->hidden->audio_fd < 0) {
-        return SDL_SetError("Couldn't open ESD connection");
-    }
-
-    /* Calculate the final parameters for this audio specification */
-    SDL_CalculateAudioSpec(&this->spec);
-    this->hidden->frame_ticks =
-        (float) (this->spec.samples * 1000) / this->spec.freq;
-    this->hidden->next_frame = SDL_GetTicks() + this->hidden->frame_ticks;
-
-    /* Allocate mixing buffer */
-    this->hidden->mixlen = this->spec.size;
-    this->hidden->mixbuf = (Uint8 *) SDL_malloc(this->hidden->mixlen);
-    if (this->hidden->mixbuf == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_memset(this->hidden->mixbuf, this->spec.silence, this->spec.size);
-
-    /* Get the parent process id (we're the parent of the audio thread) */
-    this->hidden->parent = getpid();
-
-    /* We're ready to rock and roll. :-) */
-    return 0;
-}
-
-static void
-ESD_Deinitialize(void)
-{
-    UnloadESDLibrary();
-}
-
-static SDL_bool
-ESD_Init(SDL_AudioDriverImpl * impl)
-{
-    if (LoadESDLibrary() < 0) {
-        return SDL_FALSE;
-    } else {
-        int connection = 0;
-
-        /* Don't start ESD if it's not running */
-        SDL_setenv("ESD_NO_SPAWN", "1", 0);
-
-        connection = SDL_NAME(esd_open_sound) (NULL);
-        if (connection < 0) {
-            UnloadESDLibrary();
-            SDL_SetError("ESD: esd_open_sound failed (no audio server?)");
-            return SDL_FALSE;
-        }
-        SDL_NAME(esd_close) (connection);
-    }
-
-    /* Set the function pointers */
-    impl->OpenDevice = ESD_OpenDevice;
-    impl->PlayDevice = ESD_PlayDevice;
-    impl->WaitDevice = ESD_WaitDevice;
-    impl->GetDeviceBuf = ESD_GetDeviceBuf;
-    impl->CloseDevice = ESD_CloseDevice;
-    impl->Deinitialize = ESD_Deinitialize;
-    impl->OnlyHasDefaultOutputDevice = SDL_TRUE;
-
-    return SDL_TRUE;   /* this audio target is available. */
-}
-
-
-AudioBootStrap ESD_bootstrap = {
-    "esd", "Enlightened Sound Daemon", ESD_Init, SDL_FALSE
-};
-
-#endif /* SDL_AUDIO_DRIVER_ESD */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 51
src/audio/esd/SDL_esdaudio.h

@@ -1,51 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef SDL_esdaudio_h_
-#define SDL_esdaudio_h_
-
-#include "../SDL_sysaudio.h"
-
-/* Hidden "this" pointer for the audio functions */
-#define _THIS   SDL_AudioDevice *this
-
-struct SDL_PrivateAudioData
-{
-    /* The file descriptor for the audio device */
-    int audio_fd;
-
-    /* The parent process id, to detect when application quits */
-    pid_t parent;
-
-    /* Raw mixing buffer */
-    Uint8 *mixbuf;
-    int mixlen;
-
-    /* Support for audio timing using a timer */
-    float frame_ticks;
-    float next_frame;
-};
-#define FUDGE_TICKS 10      /* The scheduler overhead ticks per frame */
-
-#endif /* SDL_esdaudio_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 317
src/audio/fusionsound/SDL_fsaudio.c

@@ -1,317 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_AUDIO_DRIVER_FUSIONSOUND
-
-/* !!! FIXME: why is this is SDL_FS_* instead of FUSIONSOUND_*? */
-
-/* Allow access to a raw mixing buffer */
-
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
-#include <unistd.h>
-
-#include "SDL_timer.h"
-#include "SDL_audio.h"
-#include "../SDL_audio_c.h"
-#include "SDL_fsaudio.h"
-
-#include <fusionsound/fusionsound_version.h>
-
-/* #define SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "libfusionsound.so" */
-
-#ifdef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC
-#include "SDL_name.h"
-#include "SDL_loadso.h"
-#else
-#define SDL_NAME(X) X
-#endif
-
-#if (FUSIONSOUND_MAJOR_VERSION == 1) && (FUSIONSOUND_MINOR_VERSION < 1)
-typedef DFBResult DirectResult;
-#endif
-
-/* Buffers to use - more than 2 gives a lot of latency */
-#define FUSION_BUFFERS              (2)
-
-#ifdef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC
-
-static const char *fs_library = SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC;
-static void *fs_handle = NULL;
-
-static DirectResult (*SDL_NAME(FusionSoundInit)) (int *argc, char *(*argv[]));
-static DirectResult (*SDL_NAME(FusionSoundCreate)) (IFusionSound **
-                                                   ret_interface);
-
-#define SDL_FS_SYM(x) { #x, (void **) (char *) &SDL_NAME(x) }
-static struct
-{
-    const char *name;
-    void **func;
-} fs_functions[] = {
-/* *INDENT-OFF* */
-    SDL_FS_SYM(FusionSoundInit),
-    SDL_FS_SYM(FusionSoundCreate),
-/* *INDENT-ON* */
-};
-
-#undef SDL_FS_SYM
-
-static void
-UnloadFusionSoundLibrary()
-{
-    if (fs_handle != NULL) {
-        SDL_UnloadObject(fs_handle);
-        fs_handle = NULL;
-    }
-}
-
-static int
-LoadFusionSoundLibrary(void)
-{
-    int i, retval = -1;
-
-    if (fs_handle == NULL) {
-        fs_handle = SDL_LoadObject(fs_library);
-        if (fs_handle != NULL) {
-            retval = 0;
-            for (i = 0; i < SDL_arraysize(fs_functions); ++i) {
-                *fs_functions[i].func =
-                    SDL_LoadFunction(fs_handle, fs_functions[i].name);
-                if (!*fs_functions[i].func) {
-                    retval = -1;
-                    UnloadFusionSoundLibrary();
-                    break;
-                }
-            }
-        }
-    }
-
-    return retval;
-}
-
-#else
-
-static void
-UnloadFusionSoundLibrary()
-{
-    return;
-}
-
-static int
-LoadFusionSoundLibrary(void)
-{
-    return 0;
-}
-
-#endif /* SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC */
-
-/* This function waits until it is possible to write a full sound buffer */
-static void
-SDL_FS_WaitDevice(_THIS)
-{
-    this->hidden->stream->Wait(this->hidden->stream,
-                               this->hidden->mixsamples);
-}
-
-static void
-SDL_FS_PlayDevice(_THIS)
-{
-    DirectResult ret;
-
-    ret = this->hidden->stream->Write(this->hidden->stream,
-                                      this->hidden->mixbuf,
-                                      this->hidden->mixsamples);
-    /* If we couldn't write, assume fatal error for now */
-    if (ret) {
-        SDL_OpenedAudioDeviceDisconnected(this);
-    }
-#ifdef DEBUG_AUDIO
-    fprintf(stderr, "Wrote %d bytes of audio data\n", this->hidden->mixlen);
-#endif
-}
-
-
-static Uint8 *
-SDL_FS_GetDeviceBuf(_THIS)
-{
-    return (this->hidden->mixbuf);
-}
-
-
-static void
-SDL_FS_CloseDevice(_THIS)
-{
-    if (this->hidden->stream) {
-        this->hidden->stream->Release(this->hidden->stream);
-    }
-    if (this->hidden->fs) {
-        this->hidden->fs->Release(this->hidden->fs);
-    }
-    SDL_free(this->hidden->mixbuf);
-    SDL_free(this->hidden);
-}
-
-
-static int
-SDL_FS_OpenDevice(_THIS, const char *devname)
-{
-    int bytes;
-    SDL_AudioFormat test_format;
-    FSSampleFormat fs_format;
-    FSStreamDescription desc;
-    DirectResult ret;
-
-    /* Initialize all variables that we clean on shutdown */
-    this->hidden = (struct SDL_PrivateAudioData *)
-        SDL_malloc((sizeof *this->hidden));
-    if (this->hidden == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_zerop(this->hidden);
-
-    /* Try for a closest match on audio format */
-    for (test_format = SDL_FirstAudioFormat(this->spec.format); test_format; test_format = SDL_NextAudioFormat()) {
-#ifdef DEBUG_AUDIO
-        fprintf(stderr, "Trying format 0x%4.4x\n", test_format);
-#endif
-        switch (test_format) {
-        case AUDIO_U8:
-            fs_format = FSSF_U8;
-            break;
-        case AUDIO_S16SYS:
-            fs_format = FSSF_S16;
-            break;
-        case AUDIO_S32SYS:
-            fs_format = FSSF_S32;
-            break;
-        case AUDIO_F32SYS:
-            fs_format = FSSF_FLOAT;
-            break;
-        default:
-            continue;
-        }
-        break;
-    }
-
-    if (!test_format) {
-        return SDL_SetError("%s: Unsupported audio format", "fusionsound");
-    }
-    this->spec.format = test_format;
-    bytes = SDL_AUDIO_BITSIZE(test_format) / 8;
-
-    /* Retrieve the main sound interface. */
-    ret = SDL_NAME(FusionSoundCreate) (&this->hidden->fs);
-    if (ret) {
-        return SDL_SetError("Unable to initialize FusionSound: %d", ret);
-    }
-
-    this->hidden->mixsamples = this->spec.size / bytes / this->spec.channels;
-
-    /* Fill stream description. */
-    desc.flags = FSSDF_SAMPLERATE | FSSDF_BUFFERSIZE |
-        FSSDF_CHANNELS | FSSDF_SAMPLEFORMAT | FSSDF_PREBUFFER;
-    desc.samplerate = this->spec.freq;
-    desc.buffersize = this->spec.size * FUSION_BUFFERS;
-    desc.channels = this->spec.channels;
-    desc.prebuffer = 10;
-    desc.sampleformat = fs_format;
-
-    ret =
-        this->hidden->fs->CreateStream(this->hidden->fs, &desc,
-                                       &this->hidden->stream);
-    if (ret) {
-        return SDL_SetError("Unable to create FusionSoundStream: %d", ret);
-    }
-
-    /* See what we got */
-    desc.flags = FSSDF_SAMPLERATE | FSSDF_BUFFERSIZE |
-        FSSDF_CHANNELS | FSSDF_SAMPLEFORMAT;
-    ret = this->hidden->stream->GetDescription(this->hidden->stream, &desc);
-
-    this->spec.freq = desc.samplerate;
-    this->spec.size =
-        desc.buffersize / FUSION_BUFFERS * bytes * desc.channels;
-    this->spec.channels = desc.channels;
-
-    /* Calculate the final parameters for this audio specification */
-    SDL_CalculateAudioSpec(&this->spec);
-
-    /* Allocate mixing buffer */
-    this->hidden->mixlen = this->spec.size;
-    this->hidden->mixbuf = (Uint8 *) SDL_malloc(this->hidden->mixlen);
-    if (this->hidden->mixbuf == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_memset(this->hidden->mixbuf, this->spec.silence, this->spec.size);
-
-    /* We're ready to rock and roll. :-) */
-    return 0;
-}
-
-
-static void
-SDL_FS_Deinitialize(void)
-{
-    UnloadFusionSoundLibrary();
-}
-
-
-static SDL_bool
-SDL_FS_Init(SDL_AudioDriverImpl * impl)
-{
-    if (LoadFusionSoundLibrary() < 0) {
-        return SDL_FALSE;
-    } else {
-        DirectResult ret;
-
-        ret = SDL_NAME(FusionSoundInit) (NULL, NULL);
-        if (ret) {
-            UnloadFusionSoundLibrary();
-            SDL_SetError
-                ("FusionSound: SDL_FS_init failed (FusionSoundInit: %d)",
-                 ret);
-            return SDL_FALSE;
-        }
-    }
-
-    /* Set the function pointers */
-    impl->OpenDevice = SDL_FS_OpenDevice;
-    impl->PlayDevice = SDL_FS_PlayDevice;
-    impl->WaitDevice = SDL_FS_WaitDevice;
-    impl->GetDeviceBuf = SDL_FS_GetDeviceBuf;
-    impl->CloseDevice = SDL_FS_CloseDevice;
-    impl->Deinitialize = SDL_FS_Deinitialize;
-    impl->OnlyHasDefaultOutputDevice = SDL_TRUE;
-
-    return SDL_TRUE;   /* this audio target is available. */
-}
-
-
-AudioBootStrap FUSIONSOUND_bootstrap = {
-    "fusionsound", "FusionSound", SDL_FS_Init, SDL_FALSE
-};
-
-#endif /* SDL_AUDIO_DRIVER_FUSIONSOUND */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 50
src/audio/fusionsound/SDL_fsaudio.h

@@ -1,50 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef SDL_fsaudio_h_
-#define SDL_fsaudio_h_
-
-#include <fusionsound/fusionsound.h>
-
-#include "../SDL_sysaudio.h"
-
-/* Hidden "this" pointer for the audio functions */
-#define _THIS   SDL_AudioDevice *this
-
-struct SDL_PrivateAudioData
-{
-    /* Interface */
-    IFusionSound *fs;
-
-    /* The stream interface for the audio device */
-    IFusionSoundStream *stream;
-
-    /* Raw mixing buffer */
-    Uint8 *mixbuf;
-    int mixlen;
-    int mixsamples;
-
-};
-
-#endif /* SDL_fsaudio_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 461
src/audio/nas/SDL_nasaudio.c

@@ -1,461 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_AUDIO_DRIVER_NAS
-
-/* Allow access to a raw mixing buffer */
-
-#include <signal.h>
-#include <unistd.h>
-
-#include "SDL_timer.h"
-#include "SDL_audio.h"
-#include "SDL_loadso.h"
-#include "../SDL_audio_c.h"
-#include "SDL_nasaudio.h"
-
-static void (*NAS_AuCloseServer) (AuServer *);
-static void (*NAS_AuNextEvent) (AuServer *, AuBool, AuEvent *);
-static AuBool(*NAS_AuDispatchEvent) (AuServer *, AuEvent *);
-static void (*NAS_AuHandleEvents) (AuServer *);
-static AuFlowID(*NAS_AuCreateFlow) (AuServer *, AuStatus *);
-static void (*NAS_AuStartFlow) (AuServer *, AuFlowID, AuStatus *);
-static void (*NAS_AuSetElements)
-  (AuServer *, AuFlowID, AuBool, int, AuElement *, AuStatus *);
-static void (*NAS_AuWriteElement)
-  (AuServer *, AuFlowID, int, AuUint32, AuPointer, AuBool, AuStatus *);
-static AuUint32 (*NAS_AuReadElement)
-  (AuServer *, AuFlowID, int, AuUint32, AuPointer, AuStatus *);
-static AuServer *(*NAS_AuOpenServer)
-  (_AuConst char *, int, _AuConst char *, int, _AuConst char *, char **);
-static AuEventHandlerRec *(*NAS_AuRegisterEventHandler)
-  (AuServer *, AuMask, int, AuID, AuEventHandlerCallback, AuPointer);
-
-
-#ifdef SDL_AUDIO_DRIVER_NAS_DYNAMIC
-
-static const char *nas_library = SDL_AUDIO_DRIVER_NAS_DYNAMIC;
-static void *nas_handle = NULL;
-
-static int
-load_nas_sym(const char *fn, void **addr)
-{
-    *addr = SDL_LoadFunction(nas_handle, fn);
-    if (*addr == NULL) {
-        return 0;
-    }
-    return 1;
-}
-
-/* cast funcs to char* first, to please GCC's strict aliasing rules. */
-#define SDL_NAS_SYM(x) \
-    if (!load_nas_sym(#x, (void **) (char *) &NAS_##x)) return -1
-#else
-#define SDL_NAS_SYM(x) NAS_##x = x
-#endif
-
-static int
-load_nas_syms(void)
-{
-    SDL_NAS_SYM(AuCloseServer);
-    SDL_NAS_SYM(AuNextEvent);
-    SDL_NAS_SYM(AuDispatchEvent);
-    SDL_NAS_SYM(AuHandleEvents);
-    SDL_NAS_SYM(AuCreateFlow);
-    SDL_NAS_SYM(AuStartFlow);
-    SDL_NAS_SYM(AuSetElements);
-    SDL_NAS_SYM(AuWriteElement);
-    SDL_NAS_SYM(AuReadElement);
-    SDL_NAS_SYM(AuOpenServer);
-    SDL_NAS_SYM(AuRegisterEventHandler);
-    return 0;
-}
-
-#undef SDL_NAS_SYM
-
-#ifdef SDL_AUDIO_DRIVER_NAS_DYNAMIC
-
-static void
-UnloadNASLibrary(void)
-{
-    if (nas_handle != NULL) {
-        SDL_UnloadObject(nas_handle);
-        nas_handle = NULL;
-    }
-}
-
-static int
-LoadNASLibrary(void)
-{
-    int retval = 0;
-    if (nas_handle == NULL) {
-        nas_handle = SDL_LoadObject(nas_library);
-        if (nas_handle == NULL) {
-            /* Copy error string so we can use it in a new SDL_SetError(). */
-            const char *origerr = SDL_GetError();
-            const size_t len = SDL_strlen(origerr) + 1;
-            char *err = SDL_stack_alloc(char, len);
-            SDL_strlcpy(err, origerr, len);
-            SDL_SetError("NAS: SDL_LoadObject('%s') failed: %s", nas_library, err);
-            SDL_stack_free(err);
-            retval = -1;
-        } else {
-            retval = load_nas_syms();
-            if (retval < 0) {
-                UnloadNASLibrary();
-            }
-        }
-    }
-    return retval;
-}
-
-#else
-
-static void
-UnloadNASLibrary(void)
-{
-}
-
-static int
-LoadNASLibrary(void)
-{
-    load_nas_syms();
-    return 0;
-}
-
-#endif /* SDL_AUDIO_DRIVER_NAS_DYNAMIC */
-
-/* This function waits until it is possible to write a full sound buffer */
-static void
-NAS_WaitDevice(_THIS)
-{
-    while (this->hidden->buf_free < this->hidden->mixlen) {
-        AuEvent ev;
-        NAS_AuNextEvent(this->hidden->aud, AuTrue, &ev);
-        NAS_AuDispatchEvent(this->hidden->aud, &ev);
-    }
-}
-
-static void
-NAS_PlayDevice(_THIS)
-{
-    while (this->hidden->mixlen > this->hidden->buf_free) {
-        /*
-         * We think the buffer is full? Yikes! Ask the server for events,
-         *  in the hope that some of them is LowWater events telling us more
-         *  of the buffer is free now than what we think.
-         */
-        AuEvent ev;
-        NAS_AuNextEvent(this->hidden->aud, AuTrue, &ev);
-        NAS_AuDispatchEvent(this->hidden->aud, &ev);
-    }
-    this->hidden->buf_free -= this->hidden->mixlen;
-
-    /* Write the audio data */
-    NAS_AuWriteElement(this->hidden->aud, this->hidden->flow, 0,
-                       this->hidden->mixlen, this->hidden->mixbuf, AuFalse,
-                       NULL);
-
-    this->hidden->written += this->hidden->mixlen;
-
-#ifdef DEBUG_AUDIO
-    fprintf(stderr, "Wrote %d bytes of audio data\n", this->hidden->mixlen);
-#endif
-}
-
-static Uint8 *
-NAS_GetDeviceBuf(_THIS)
-{
-    return (this->hidden->mixbuf);
-}
-
-static int
-NAS_CaptureFromDevice(_THIS, void *buffer, int buflen)
-{
-    struct SDL_PrivateAudioData *h = this->hidden;
-    int retval;
-
-    while (SDL_TRUE) {
-        /* just keep the event queue moving and the server chattering. */
-        NAS_AuHandleEvents(h->aud);
-    
-        retval = (int) NAS_AuReadElement(h->aud, h->flow, 1, buflen, buffer, NULL);
-        /*printf("read %d capture bytes\n", (int) retval);*/
-        if (retval == 0) {
-            SDL_Delay(10);  /* don't burn the CPU if we're waiting for data. */
-        } else {
-            break;
-        }
-    }
-
-    return retval;
-}
-
-static void
-NAS_FlushCapture(_THIS)
-{
-    struct SDL_PrivateAudioData *h = this->hidden;
-    AuUint32 total = 0;
-    AuUint32 br;
-    Uint8 buf[512];
-
-    do {
-        /* just keep the event queue moving and the server chattering. */
-        NAS_AuHandleEvents(h->aud);
-        br = NAS_AuReadElement(h->aud, h->flow, 1, sizeof (buf), buf, NULL);
-        /*printf("flushed %d capture bytes\n", (int) br);*/
-        total += br;
-    } while ((br == sizeof (buf)) && (total < this->spec.size));
-}
-
-static void
-NAS_CloseDevice(_THIS)
-{
-    if (this->hidden->aud) {
-        NAS_AuCloseServer(this->hidden->aud);
-    }
-    SDL_free(this->hidden->mixbuf);
-    SDL_free(this->hidden);
-}
-
-static AuBool
-event_handler(AuServer * aud, AuEvent * ev, AuEventHandlerRec * hnd)
-{
-    SDL_AudioDevice *this = (SDL_AudioDevice *) hnd->data;
-    struct SDL_PrivateAudioData *h = this->hidden;
-    if (this->iscapture) {
-        return AuTrue;  /* we don't (currently) care about any of this for capture devices */
-    }
-
-    switch (ev->type) {
-    case AuEventTypeElementNotify:
-        {
-            AuElementNotifyEvent *event = (AuElementNotifyEvent *) ev;
-
-            switch (event->kind) {
-            case AuElementNotifyKindLowWater:
-                if (h->buf_free >= 0) {
-                    h->really += event->num_bytes;
-                    gettimeofday(&h->last_tv, 0);
-                    h->buf_free += event->num_bytes;
-                } else {
-                    h->buf_free = event->num_bytes;
-                }
-                break;
-            case AuElementNotifyKindState:
-                switch (event->cur_state) {
-                case AuStatePause:
-                    if (event->reason != AuReasonUser) {
-                        if (h->buf_free >= 0) {
-                            h->really += event->num_bytes;
-                            gettimeofday(&h->last_tv, 0);
-                            h->buf_free += event->num_bytes;
-                        } else {
-                            h->buf_free = event->num_bytes;
-                        }
-                    }
-                    break;
-                }
-            }
-        }
-    }
-    return AuTrue;
-}
-
-static AuDeviceID
-find_device(_THIS)
-{
-    /* These "Au" things are all macros, not functions... */
-    struct SDL_PrivateAudioData *h = this->hidden;
-    const unsigned int devicekind = this->iscapture ? AuComponentKindPhysicalInput : AuComponentKindPhysicalOutput;
-    const int numdevs = AuServerNumDevices(h->aud);
-    const int nch = this->spec.channels;
-    int i;
-
-    /* Try to find exact match on channels first... */
-    for (i = 0; i < numdevs; i++) {
-        const AuDeviceAttributes *dev = AuServerDevice(h->aud, i);
-        if ((AuDeviceKind(dev) == devicekind) && (AuDeviceNumTracks(dev) == nch)) {
-            return AuDeviceIdentifier(dev);
-        }
-    }
-
-    /* Take anything, then... */
-    for (i = 0; i < numdevs; i++) {
-        const AuDeviceAttributes *dev = AuServerDevice(h->aud, i);
-        if (AuDeviceKind(dev) == devicekind) {
-            this->spec.channels = AuDeviceNumTracks(dev);
-            return AuDeviceIdentifier(dev);
-        }
-    }
-    return AuNone;
-}
-
-static int
-NAS_OpenDevice(_THIS, const char *devname)
-{
-    AuElement elms[3];
-    int buffer_size;
-    SDL_bool iscapture = this->iscapture;
-    SDL_AudioFormat test_format, format = 0;
-
-    /* Initialize all variables that we clean on shutdown */
-    this->hidden = (struct SDL_PrivateAudioData *)
-        SDL_malloc((sizeof *this->hidden));
-    if (this->hidden == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_zerop(this->hidden);
-
-    /* Try for a closest match on audio format */
-    for (test_format = SDL_FirstAudioFormat(this->spec.format); test_format; test_format = SDL_NextAudioFormat()) {
-        switch (test_format) {
-        case AUDIO_U8:
-            format = AuFormatLinearUnsigned8;
-            break;
-        case AUDIO_S8:
-            format = AuFormatLinearSigned8;
-            break;
-        case AUDIO_U16LSB:
-            format = AuFormatLinearUnsigned16LSB;
-            break;
-        case AUDIO_U16MSB:
-            format = AuFormatLinearUnsigned16MSB;
-            break;
-        case AUDIO_S16LSB:
-            format = AuFormatLinearSigned16LSB;
-            break;
-        case AUDIO_S16MSB:
-            format = AuFormatLinearSigned16MSB;
-            break;
-        default:
-            continue;
-        }
-        break;
-    }
-    if (!test_format) {
-        return SDL_SetError("%s: Unsupported audio format", "nas");
-    }
-    this->spec.format = test_format;
-
-    this->hidden->aud = NAS_AuOpenServer("", 0, NULL, 0, NULL, NULL);
-    if (this->hidden->aud == 0) {
-        return SDL_SetError("NAS: Couldn't open connection to NAS server");
-    }
-
-    this->hidden->dev = find_device(this);
-    if ((this->hidden->dev == AuNone)
-        || (!(this->hidden->flow = NAS_AuCreateFlow(this->hidden->aud, 0)))) {
-        return SDL_SetError("NAS: Couldn't find a fitting device on NAS server");
-    }
-
-    buffer_size = this->spec.freq;
-    if (buffer_size < 4096)
-        buffer_size = 4096;
-
-    if (buffer_size > 32768)
-        buffer_size = 32768;    /* So that the buffer won't get unmanageably big. */
-
-    /* Calculate the final parameters for this audio specification */
-    SDL_CalculateAudioSpec(&this->spec);
-
-    if (iscapture) {
-        AuMakeElementImportDevice(elms, this->spec.freq, this->hidden->dev,
-                                  AuUnlimitedSamples, 0, NULL);
-        AuMakeElementExportClient(elms + 1, 0, this->spec.freq, format,
-                                  this->spec.channels, AuTrue, buffer_size,
-                                  buffer_size, 0, NULL);
-    } else {
-        AuMakeElementImportClient(elms, this->spec.freq, format,
-                                  this->spec.channels, AuTrue, buffer_size,
-                                  buffer_size / 4, 0, NULL);
-        AuMakeElementExportDevice(elms + 1, 0, this->hidden->dev, this->spec.freq,
-                                  AuUnlimitedSamples, 0, NULL);
-    }
-
-    NAS_AuSetElements(this->hidden->aud, this->hidden->flow, AuTrue,
-                      2, elms, NULL);
-
-    NAS_AuRegisterEventHandler(this->hidden->aud, AuEventHandlerIDMask, 0,
-                               this->hidden->flow, event_handler,
-                               (AuPointer) this);
-
-    NAS_AuStartFlow(this->hidden->aud, this->hidden->flow, NULL);
-
-    /* Allocate mixing buffer */
-    if (!iscapture) {
-        this->hidden->mixlen = this->spec.size;
-        this->hidden->mixbuf = (Uint8 *) SDL_malloc(this->hidden->mixlen);
-        if (this->hidden->mixbuf == NULL) {
-            return SDL_OutOfMemory();
-        }
-        SDL_memset(this->hidden->mixbuf, this->spec.silence, this->spec.size);
-    }
-
-    /* We're ready to rock and roll. :-) */
-    return 0;
-}
-
-static void
-NAS_Deinitialize(void)
-{
-    UnloadNASLibrary();
-}
-
-static SDL_bool
-NAS_Init(SDL_AudioDriverImpl * impl)
-{
-    if (LoadNASLibrary() < 0) {
-        return SDL_FALSE;
-    } else {
-        AuServer *aud = NAS_AuOpenServer("", 0, NULL, 0, NULL, NULL);
-        if (aud == NULL) {
-            SDL_SetError("NAS: AuOpenServer() failed (no audio server?)");
-            return SDL_FALSE;
-        }
-        NAS_AuCloseServer(aud);
-    }
-
-    /* Set the function pointers */
-    impl->OpenDevice = NAS_OpenDevice;
-    impl->PlayDevice = NAS_PlayDevice;
-    impl->WaitDevice = NAS_WaitDevice;
-    impl->GetDeviceBuf = NAS_GetDeviceBuf;
-    impl->CaptureFromDevice = NAS_CaptureFromDevice;
-    impl->FlushCapture = NAS_FlushCapture;
-    impl->CloseDevice = NAS_CloseDevice;
-    impl->Deinitialize = NAS_Deinitialize;
-
-    impl->OnlyHasDefaultOutputDevice = SDL_TRUE;
-    impl->OnlyHasDefaultCaptureDevice = SDL_TRUE;
-    impl->HasCaptureSupport = SDL_TRUE;
-
-    return SDL_TRUE;   /* this audio target is available. */
-}
-
-AudioBootStrap NAS_bootstrap = {
-    "nas", "Network Audio System", NAS_Init, SDL_FALSE
-};
-
-#endif /* SDL_AUDIO_DRIVER_NAS */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 56
src/audio/nas/SDL_nasaudio.h

@@ -1,56 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef SDL_nasaudio_h_
-#define SDL_nasaudio_h_
-
-#ifdef __sgi
-#include <nas/audiolib.h>
-#else
-#include <audio/audiolib.h>
-#endif
-#include <sys/time.h>
-
-#include "../SDL_sysaudio.h"
-
-/* Hidden "this" pointer for the audio functions */
-#define _THIS   SDL_AudioDevice *this
-
-struct SDL_PrivateAudioData
-{
-    AuServer *aud;
-    AuFlowID flow;
-    AuDeviceID dev;
-
-    /* Raw mixing buffer */
-    Uint8 *mixbuf;
-    int mixlen;
-
-    int written;
-    int really;
-    int bps;
-    struct timeval last_tv;
-    int buf_free;
-};
-#endif /* SDL_nasaudio_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 494
src/audio/paudio/SDL_paudio.c

@@ -1,494 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_AUDIO_DRIVER_PAUDIO
-
-/* Allow access to a raw mixing buffer */
-
-#include <errno.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "SDL_timer.h"
-#include "SDL_audio.h"
-#include "SDL_stdinc.h"
-#include "../SDL_audio_c.h"
-#include "../../core/unix/SDL_poll.h"
-#include "SDL_paudio.h"
-
-/* #define DEBUG_AUDIO */
-
-/* A conflict within AIX 4.3.3 <sys/> headers and probably others as well.
- * I guess nobody ever uses audio... Shame over AIX header files.  */
-#include <sys/machine.h>
-#undef BIG_ENDIAN
-#include <sys/audio.h>
-
-/* Open the audio device for playback, and don't block if busy */
-/* #define OPEN_FLAGS   (O_WRONLY|O_NONBLOCK) */
-#define OPEN_FLAGS  O_WRONLY
-
-/* Get the name of the audio device we use for output */
-
-#ifndef _PATH_DEV_DSP
-#define _PATH_DEV_DSP   "/dev/%caud%c/%c"
-#endif
-
-static char devsettings[][3] = {
-    {'p', '0', '1'}, {'p', '0', '2'}, {'p', '0', '3'}, {'p', '0', '4'},
-    {'p', '1', '1'}, {'p', '1', '2'}, {'p', '1', '3'}, {'p', '1', '4'},
-    {'p', '2', '1'}, {'p', '2', '2'}, {'p', '2', '3'}, {'p', '2', '4'},
-    {'p', '3', '1'}, {'p', '3', '2'}, {'p', '3', '3'}, {'p', '3', '4'},
-    {'b', '0', '1'}, {'b', '0', '2'}, {'b', '0', '3'}, {'b', '0', '4'},
-    {'b', '1', '1'}, {'b', '1', '2'}, {'b', '1', '3'}, {'b', '1', '4'},
-    {'b', '2', '1'}, {'b', '2', '2'}, {'b', '2', '3'}, {'b', '2', '4'},
-    {'b', '3', '1'}, {'b', '3', '2'}, {'b', '3', '3'}, {'b', '3', '4'},
-    {'\0', '\0', '\0'}
-};
-
-static int
-OpenUserDefinedDevice(char *path, int maxlen, int flags)
-{
-    const char *audiodev;
-    int fd;
-
-    /* Figure out what our audio device is */
-    if ((audiodev = SDL_getenv("SDL_PATH_DSP")) == NULL) {
-        audiodev = SDL_getenv("AUDIODEV");
-    }
-    if (audiodev == NULL) {
-        return -1;
-    }
-    fd = open(audiodev, flags, 0);
-    if (path != NULL) {
-        SDL_strlcpy(path, audiodev, maxlen);
-        path[maxlen - 1] = '\0';
-    }
-    return fd;
-}
-
-static int
-OpenAudioPath(char *path, int maxlen, int flags, int classic)
-{
-    struct stat sb;
-    int cycle = 0;
-    int fd = OpenUserDefinedDevice(path, maxlen, flags);
-
-    if (fd != -1) {
-        return fd;
-    }
-
-    /* !!! FIXME: do we really need a table here? */
-    while (devsettings[cycle][0] != '\0') {
-        char audiopath[1024];
-        SDL_snprintf(audiopath, SDL_arraysize(audiopath),
-                     _PATH_DEV_DSP,
-                     devsettings[cycle][0],
-                     devsettings[cycle][1], devsettings[cycle][2]);
-
-        if (stat(audiopath, &sb) == 0) {
-            fd = open(audiopath, flags, 0);
-            if (fd >= 0) {
-                if (path != NULL) {
-                    SDL_strlcpy(path, audiopath, maxlen);
-                }
-                return fd;
-            }
-        }
-    }
-    return -1;
-}
-
-/* This function waits until it is possible to write a full sound buffer */
-static void
-PAUDIO_WaitDevice(_THIS)
-{
-    fd_set fdset;
-
-    /* See if we need to use timed audio synchronization */
-    if (this->hidden->frame_ticks) {
-        /* Use timer for general audio synchronization */
-        Sint32 ticks;
-
-        ticks = ((Sint32) (this->hidden->next_frame - SDL_GetTicks())) - FUDGE_TICKS;
-        if (ticks > 0) {
-            SDL_Delay(ticks);
-        }
-    } else {
-        int timeoutMS;
-        audio_buffer paud_bufinfo;
-
-        if (ioctl(this->hidden->audio_fd, AUDIO_BUFFER, &paud_bufinfo) < 0) {
-#ifdef DEBUG_AUDIO
-            fprintf(stderr, "Couldn't get audio buffer information\n");
-#endif
-            timeoutMS = 10 * 1000;
-        } else {
-            timeoutMS = paud_bufinfo.write_buf_time;
-#ifdef DEBUG_AUDIO
-            fprintf(stderr, "Waiting for write_buf_time=%d ms\n", timeoutMS);
-#endif
-        }
-
-#ifdef DEBUG_AUDIO
-        fprintf(stderr, "Waiting for audio to get ready\n");
-#endif
-        if (SDL_IOReady(this->hidden->audio_fd, SDL_IOR_WRITE, timeoutMS) <= 0) {
-            /*
-             * In general we should never print to the screen,
-             * but in this case we have no other way of letting
-             * the user know what happened.
-             */
-            fprintf(stderr, "SDL: %s - Audio timeout - buggy audio driver? (disabled)\n", strerror(errno));
-            SDL_OpenedAudioDeviceDisconnected(this);
-            /* Don't try to close - may hang */
-            this->hidden->audio_fd = -1;
-#ifdef DEBUG_AUDIO
-            fprintf(stderr, "Done disabling audio\n");
-#endif
-        }
-#ifdef DEBUG_AUDIO
-        fprintf(stderr, "Ready!\n");
-#endif
-    }
-}
-
-static void
-PAUDIO_PlayDevice(_THIS)
-{
-    int written = 0;
-    const Uint8 *mixbuf = this->hidden->mixbuf;
-    const size_t mixlen = this->hidden->mixlen;
-
-    /* Write the audio data, checking for EAGAIN on broken audio drivers */
-    do {
-        written = write(this->hidden->audio_fd, mixbuf, mixlen);
-        if ((written < 0) && ((errno == 0) || (errno == EAGAIN))) {
-            SDL_Delay(1);       /* Let a little CPU time go by */
-        }
-    } while ((written < 0) &&
-             ((errno == 0) || (errno == EAGAIN) || (errno == EINTR)));
-
-    /* If timer synchronization is enabled, set the next write frame */
-    if (this->hidden->frame_ticks) {
-        this->hidden->next_frame += this->hidden->frame_ticks;
-    }
-
-    /* If we couldn't write, assume fatal error for now */
-    if (written < 0) {
-        SDL_OpenedAudioDeviceDisconnected(this);
-    }
-#ifdef DEBUG_AUDIO
-    fprintf(stderr, "Wrote %d bytes of audio data\n", written);
-#endif
-}
-
-static Uint8 *
-PAUDIO_GetDeviceBuf(_THIS)
-{
-    return this->hidden->mixbuf;
-}
-
-static void
-PAUDIO_CloseDevice(_THIS)
-{
-    if (this->hidden->audio_fd >= 0) {
-        close(this->hidden->audio_fd);
-    }
-    SDL_free(this->hidden->mixbuf);
-    SDL_free(this->hidden);
-}
-
-static int
-PAUDIO_OpenDevice(_THIS, const char *devname)
-{
-    const char *workaround = SDL_getenv("SDL_DSP_NOSELECT");
-    char audiodev[1024];
-    const char *err = NULL;
-    int flags;
-    int bytes_per_sample;
-    SDL_AudioFormat test_format;
-    audio_init paud_init;
-    audio_buffer paud_bufinfo;
-    audio_control paud_control;
-    audio_change paud_change;
-    int fd = -1;
-
-    /* Initialize all variables that we clean on shutdown */
-    this->hidden = (struct SDL_PrivateAudioData *)
-        SDL_malloc((sizeof *this->hidden));
-    if (this->hidden == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_zerop(this->hidden);
-
-    /* Open the audio device */
-    fd = OpenAudioPath(audiodev, sizeof(audiodev), OPEN_FLAGS, 0);
-    this->hidden->audio_fd = fd;
-    if (fd < 0) {
-        return SDL_SetError("Couldn't open %s: %s", audiodev, strerror(errno));
-    }
-
-    /*
-     * We can't set the buffer size - just ask the device for the maximum
-     * that we can have.
-     */
-    if (ioctl(fd, AUDIO_BUFFER, &paud_bufinfo) < 0) {
-        return SDL_SetError("Couldn't get audio buffer information");
-    }
-
-    if (this->spec.channels > 1)
-        this->spec.channels = 2;
-    else
-        this->spec.channels = 1;
-
-    /*
-     * Fields in the audio_init structure:
-     *
-     * Ignored by us:
-     *
-     * paud.loadpath[LOAD_PATH]; * DSP code to load, MWave chip only?
-     * paud.slot_number;         * slot number of the adapter
-     * paud.device_id;           * adapter identification number
-     *
-     * Input:
-     *
-     * paud.srate;           * the sampling rate in Hz
-     * paud.bits_per_sample; * 8, 16, 32, ...
-     * paud.bsize;           * block size for this rate
-     * paud.mode;            * ADPCM, PCM, MU_LAW, A_LAW, SOURCE_MIX
-     * paud.channels;        * 1=mono, 2=stereo
-     * paud.flags;           * FIXED - fixed length data
-     *                       * LEFT_ALIGNED, RIGHT_ALIGNED (var len only)
-     *                       * TWOS_COMPLEMENT - 2's complement data
-     *                       * SIGNED - signed? comment seems wrong in sys/audio.h
-     *                       * BIG_ENDIAN
-     * paud.operation;       * PLAY, RECORD
-     *
-     * Output:
-     *
-     * paud.flags;           * PITCH            - pitch is supported
-     *                       * INPUT            - input is supported
-     *                       * OUTPUT           - output is supported
-     *                       * MONITOR          - monitor is supported
-     *                       * VOLUME           - volume is supported
-     *                       * VOLUME_DELAY     - volume delay is supported
-     *                       * BALANCE          - balance is supported
-     *                       * BALANCE_DELAY    - balance delay is supported
-     *                       * TREBLE           - treble control is supported
-     *                       * BASS             - bass control is supported
-     *                       * BESTFIT_PROVIDED - best fit returned
-     *                       * LOAD_CODE        - DSP load needed
-     * paud.rc;              * NO_PLAY         - DSP code can't do play requests
-     *                       * NO_RECORD       - DSP code can't do record requests
-     *                       * INVALID_REQUEST - request was invalid
-     *                       * CONFLICT        - conflict with open's flags
-     *                       * OVERLOADED      - out of DSP MIPS or memory
-     * paud.position_resolution; * smallest increment for position
-     */
-
-    paud_init.srate = this->spec.freq;
-    paud_init.mode = PCM;
-    paud_init.operation = PLAY;
-    paud_init.channels = this->spec.channels;
-
-    /* Try for a closest match on audio format */
-    for (test_format = SDL_FirstAudioFormat(this->spec.format); test_format; test_format = SDL_NextAudioFormat()) {
-#ifdef DEBUG_AUDIO
-        fprintf(stderr, "Trying format 0x%4.4x\n", test_format);
-#endif
-        switch (test_format) {
-        case AUDIO_U8:
-            flags = TWOS_COMPLEMENT | FIXED;
-            break;
-        case AUDIO_S8:
-            flags = SIGNED | TWOS_COMPLEMENT | FIXED;
-            break;
-        case AUDIO_S16LSB:
-            flags = SIGNED | TWOS_COMPLEMENT | FIXED;
-            break;
-        case AUDIO_S16MSB:
-            flags = BIG_ENDIAN | SIGNED | TWOS_COMPLEMENT | FIXED;
-            break;
-        case AUDIO_U16LSB:
-            flags = TWOS_COMPLEMENT | FIXED;
-            break;
-        case AUDIO_U16MSB:
-            flags = BIG_ENDIAN | TWOS_COMPLEMENT | FIXED;
-            break;
-        default:
-            continue;
-        }
-        break;
-    }
-    if (!test_format) {
-#ifdef DEBUG_AUDIO
-        fprintf(stderr, "Couldn't find any hardware audio formats\n");
-#endif
-        return SDL_SetError("%s: Unsupported audio format", "paud");
-    }
-    this->spec.format = test_format;
-    paud_init.bits_per_sample = SDL_AUDIO_BITSIZE(test_format);
-    bytes_per_sample = SDL_AUDIO_BITSIZE(test_format) / 8;
-    paud_init.flags = flags;
-
-    /*
-     * We know the buffer size and the max number of subsequent writes
-     *  that can be pending. If more than one can pend, allow the application
-     *  to do something like double buffering between our write buffer and
-     *  the device's own buffer that we are filling with write() anyway.
-     *
-     * We calculate this->spec.samples like this because
-     *  SDL_CalculateAudioSpec() will give put paud_bufinfo.write_buf_cap
-     *  (or paud_bufinfo.write_buf_cap/2) into this->spec.size in return.
-     */
-    if (paud_bufinfo.request_buf_cap == 1) {
-        this->spec.samples = paud_bufinfo.write_buf_cap
-            / bytes_per_sample / this->spec.channels;
-    } else {
-        this->spec.samples = paud_bufinfo.write_buf_cap
-            / bytes_per_sample / this->spec.channels / 2;
-    }
-    paud_init.bsize = bytes_per_sample * this->spec.channels;
-
-    SDL_CalculateAudioSpec(&this->spec);
-
-    /*
-     * The AIX paud device init can't modify the values of the audio_init
-     * structure that we pass to it. So we don't need any recalculation
-     * of this stuff and no reinit call as in linux dsp code.
-     *
-     * /dev/paud supports all of the encoding formats, so we don't need
-     * to do anything like reopening the device, either.
-     */
-    if (ioctl(fd, AUDIO_INIT, &paud_init) < 0) {
-        switch (paud_init.rc) {
-        case 1:
-            err = "DSP can't do play requests";
-            break;
-        case 2:
-            err = "DSP can't do record requests";
-            break;
-        case 4:
-            err = "request was invalid";
-            break;
-        case 5:
-            err = "conflict with open's flags";
-            break;
-        case 6:
-            err = "out of DSP MIPS or memory";
-            break;
-        default:
-            err = "not documented in sys/audio.h";
-            break;
-        }
-        return SDL_SetError("paud: Couldn't set audio format (%s)", err);
-    }
-
-    /* Allocate mixing buffer */
-    this->hidden->mixlen = this->spec.size;
-    this->hidden->mixbuf = (Uint8 *) SDL_malloc(this->hidden->mixlen);
-    if (this->hidden->mixbuf == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_memset(this->hidden->mixbuf, this->spec.silence, this->spec.size);
-
-    /*
-     * Set some paramters: full volume, first speaker that we can find.
-     * Ignore the other settings for now.
-     */
-    paud_change.input = AUDIO_IGNORE;   /* the new input source */
-    paud_change.output = OUTPUT_1;      /* EXTERNAL_SPEAKER,INTERNAL_SPEAKER,OUTPUT_1 */
-    paud_change.monitor = AUDIO_IGNORE; /* the new monitor state */
-    paud_change.volume = 0x7fffffff;    /* volume level [0-0x7fffffff] */
-    paud_change.volume_delay = AUDIO_IGNORE;    /* the new volume delay */
-    paud_change.balance = 0x3fffffff;   /* the new balance */
-    paud_change.balance_delay = AUDIO_IGNORE;   /* the new balance delay */
-    paud_change.treble = AUDIO_IGNORE;  /* the new treble state */
-    paud_change.bass = AUDIO_IGNORE;    /* the new bass state */
-    paud_change.pitch = AUDIO_IGNORE;   /* the new pitch state */
-
-    paud_control.ioctl_request = AUDIO_CHANGE;
-    paud_control.request_info = (char *) &paud_change;
-    if (ioctl(fd, AUDIO_CONTROL, &paud_control) < 0) {
-#ifdef DEBUG_AUDIO
-        fprintf(stderr, "Can't change audio display settings\n");
-#endif
-    }
-
-    /*
-     * Tell the device to expect data. Actual start will wait for
-     * the first write() call.
-     */
-    paud_control.ioctl_request = AUDIO_START;
-    paud_control.position = 0;
-    if (ioctl(fd, AUDIO_CONTROL, &paud_control) < 0) {
-#ifdef DEBUG_AUDIO
-        fprintf(stderr, "Can't start audio play\n");
-#endif
-        return SDL_SetError("Can't start audio play");
-    }
-
-    /* Check to see if we need to use SDL_IOReady() workaround */
-    if (workaround != NULL) {
-        this->hidden->frame_ticks = (float) (this->spec.samples * 1000) /
-            this->spec.freq;
-        this->hidden->next_frame = SDL_GetTicks() + this->hidden->frame_ticks;
-    }
-
-    /* We're ready to rock and roll. :-) */
-    return 0;
-}
-
-static SDL_bool
-PAUDIO_Init(SDL_AudioDriverImpl * impl)
-{
-    /* !!! FIXME: not right for device enum? */
-    int fd = OpenAudioPath(NULL, 0, OPEN_FLAGS, 0);
-    if (fd < 0) {
-        SDL_SetError("PAUDIO: Couldn't open audio device");
-        return SDL_FALSE;
-    }
-    close(fd);
-
-    /* Set the function pointers */
-    impl->OpenDevice = PAUDIO_OpenDevice;
-    impl->PlayDevice = PAUDIO_PlayDevice;
-    impl->WaitDevice = PAUDIO_WaitDevice;
-    impl->GetDeviceBuf = PAUDIO_GetDeviceBuf;
-    impl->CloseDevice = PAUDIO_CloseDevice;
-    impl->OnlyHasDefaultOutputDevice = SDL_TRUE;       /* !!! FIXME: add device enum! */
-
-    return SDL_TRUE;   /* this audio target is available. */
-}
-
-AudioBootStrap PAUDIO_bootstrap = {
-    "paud", "AIX Paudio", PAUDIO_Init, SDL_FALSE
-};
-
-#endif /* SDL_AUDIO_DRIVER_PAUDIO */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 48
src/audio/paudio/SDL_paudio.h

@@ -1,48 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef SDL_paudio_h_
-#define SDL_paudio_h_
-
-#include "../SDL_sysaudio.h"
-
-/* Hidden "this" pointer for the audio functions */
-#define _THIS   SDL_AudioDevice *this
-
-struct SDL_PrivateAudioData
-{
-    /* The file descriptor for the audio device */
-    int audio_fd;
-
-    /* Raw mixing buffer */
-    Uint8 *mixbuf;
-    int mixlen;
-
-    /* Support for audio timing using a timer, in addition to SDL_IOReady() */
-    float frame_ticks;
-    float next_frame;
-};
-#define FUDGE_TICKS 10      /* The scheduler overhead ticks per frame */
-
-#endif /* SDL_paudio_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 387
src/audio/sndio/SDL_sndioaudio.c

@@ -1,387 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "../../SDL_internal.h"
-
-#if SDL_AUDIO_DRIVER_SNDIO
-
-/* OpenBSD sndio target */
-
-#if HAVE_STDIO_H
-#include <stdio.h>
-#endif
-
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
-
-#include <poll.h>
-#include <unistd.h>
-
-#include "SDL_audio.h"
-#include "../SDL_audio_c.h"
-#include "SDL_sndioaudio.h"
-
-#ifdef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC
-#include "SDL_loadso.h"
-#endif
-
-#ifndef INFTIM
-#define INFTIM -1
-#endif
-
-#ifndef SIO_DEVANY
-#define SIO_DEVANY "default"
-#endif
-
-static struct sio_hdl * (*SNDIO_sio_open)(const char *, unsigned int, int);
-static void (*SNDIO_sio_close)(struct sio_hdl *);
-static int (*SNDIO_sio_setpar)(struct sio_hdl *, struct sio_par *);
-static int (*SNDIO_sio_getpar)(struct sio_hdl *, struct sio_par *);
-static int (*SNDIO_sio_start)(struct sio_hdl *);
-static int (*SNDIO_sio_stop)(struct sio_hdl *);
-static size_t (*SNDIO_sio_read)(struct sio_hdl *, void *, size_t);
-static size_t (*SNDIO_sio_write)(struct sio_hdl *, const void *, size_t);
-static int (*SNDIO_sio_nfds)(struct sio_hdl *);
-static int (*SNDIO_sio_pollfd)(struct sio_hdl *, struct pollfd *, int);
-static int (*SNDIO_sio_revents)(struct sio_hdl *, struct pollfd *);
-static int (*SNDIO_sio_eof)(struct sio_hdl *);
-static void (*SNDIO_sio_initpar)(struct sio_par *);
-
-#ifdef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC
-static const char *sndio_library = SDL_AUDIO_DRIVER_SNDIO_DYNAMIC;
-static void *sndio_handle = NULL;
-
-static int
-load_sndio_sym(const char *fn, void **addr)
-{
-    *addr = SDL_LoadFunction(sndio_handle, fn);
-    if (*addr == NULL) {
-        /* Don't call SDL_SetError(): SDL_LoadFunction already did. */
-        return 0;
-    }
-
-    return 1;
-}
-
-/* cast funcs to char* first, to please GCC's strict aliasing rules. */
-#define SDL_SNDIO_SYM(x) \
-    if (!load_sndio_sym(#x, (void **) (char *) &SNDIO_##x)) return -1
-#else
-#define SDL_SNDIO_SYM(x) SNDIO_##x = x
-#endif
-
-static int
-load_sndio_syms(void)
-{
-    SDL_SNDIO_SYM(sio_open);
-    SDL_SNDIO_SYM(sio_close);
-    SDL_SNDIO_SYM(sio_setpar);
-    SDL_SNDIO_SYM(sio_getpar);
-    SDL_SNDIO_SYM(sio_start);
-    SDL_SNDIO_SYM(sio_stop);
-    SDL_SNDIO_SYM(sio_read);
-    SDL_SNDIO_SYM(sio_write);
-    SDL_SNDIO_SYM(sio_nfds);
-    SDL_SNDIO_SYM(sio_pollfd);
-    SDL_SNDIO_SYM(sio_revents);
-    SDL_SNDIO_SYM(sio_eof);
-    SDL_SNDIO_SYM(sio_initpar);
-    return 0;
-}
-
-#undef SDL_SNDIO_SYM
-
-#ifdef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC
-
-static void
-UnloadSNDIOLibrary(void)
-{
-    if (sndio_handle != NULL) {
-        SDL_UnloadObject(sndio_handle);
-        sndio_handle = NULL;
-    }
-}
-
-static int
-LoadSNDIOLibrary(void)
-{
-    int retval = 0;
-    if (sndio_handle == NULL) {
-        sndio_handle = SDL_LoadObject(sndio_library);
-        if (sndio_handle == NULL) {
-            retval = -1;
-            /* Don't call SDL_SetError(): SDL_LoadObject already did. */
-        } else {
-            retval = load_sndio_syms();
-            if (retval < 0) {
-                UnloadSNDIOLibrary();
-            }
-        }
-    }
-    return retval;
-}
-
-#else
-
-static void
-UnloadSNDIOLibrary(void)
-{
-}
-
-static int
-LoadSNDIOLibrary(void)
-{
-    load_sndio_syms();
-    return 0;
-}
-
-#endif /* SDL_AUDIO_DRIVER_SNDIO_DYNAMIC */
-
-
-
-
-static void
-SNDIO_WaitDevice(_THIS)
-{
-    /* no-op; SNDIO_sio_write() blocks if necessary. */
-}
-
-static void
-SNDIO_PlayDevice(_THIS)
-{
-    const int written = SNDIO_sio_write(this->hidden->dev,
-                                        this->hidden->mixbuf,
-                                        this->hidden->mixlen);
-
-    /* If we couldn't write, assume fatal error for now */
-    if ( written == 0 ) {
-        SDL_OpenedAudioDeviceDisconnected(this);
-    }
-#ifdef DEBUG_AUDIO
-    fprintf(stderr, "Wrote %d bytes of audio data\n", written);
-#endif
-}
-
-static int
-SNDIO_CaptureFromDevice(_THIS, void *buffer, int buflen)
-{
-    size_t r;
-    int revents;
-    int nfds;
-
-    /* Emulate a blocking read */
-    r = SNDIO_sio_read(this->hidden->dev, buffer, buflen);
-    while (r == 0 && !SNDIO_sio_eof(this->hidden->dev)) {
-        if ((nfds = SNDIO_sio_pollfd(this->hidden->dev, this->hidden->pfd, POLLIN)) <= 0
-            || poll(this->hidden->pfd, nfds, INFTIM) < 0) {
-            return -1;
-        }
-        revents = SNDIO_sio_revents(this->hidden->dev, this->hidden->pfd);
-        if (revents & POLLIN) {
-            r = SNDIO_sio_read(this->hidden->dev, buffer, buflen);
-        }
-        if (revents & POLLHUP) {
-            break;
-        }
-    }
-    return (int) r;
-}
-
-static void
-SNDIO_FlushCapture(_THIS)
-{
-    char buf[512];
-
-    while (SNDIO_sio_read(this->hidden->dev, buf, sizeof(buf)) != 0) {
-        /* do nothing */;
-    }
-}
-
-static Uint8 *
-SNDIO_GetDeviceBuf(_THIS)
-{
-    return this->hidden->mixbuf;
-}
-
-static void
-SNDIO_CloseDevice(_THIS)
-{
-    if ( this->hidden->pfd != NULL ) {
-        SDL_free(this->hidden->pfd);
-    }
-    if ( this->hidden->dev != NULL ) {
-        SNDIO_sio_stop(this->hidden->dev);
-        SNDIO_sio_close(this->hidden->dev);
-    }
-    SDL_free(this->hidden->mixbuf);
-    SDL_free(this->hidden);
-}
-
-static int
-SNDIO_OpenDevice(_THIS, const char *devname)
-{
-    SDL_AudioFormat test_format;
-    struct sio_par par;
-    SDL_bool iscapture = this->iscapture;
-
-    this->hidden = (struct SDL_PrivateAudioData *)
-        SDL_malloc(sizeof(*this->hidden));
-    if (this->hidden == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_zerop(this->hidden);
-
-    this->hidden->mixlen = this->spec.size;
-
-    /* Capture devices must be non-blocking for SNDIO_FlushCapture */
-    if ((this->hidden->dev =
-        SNDIO_sio_open(devname != NULL ? devname : SIO_DEVANY,
-                       iscapture ? SIO_REC : SIO_PLAY, iscapture)) == NULL) {
-        return SDL_SetError("sio_open() failed");
-    }
-
-    /* Allocate the pollfd array for capture devices */
-    if (iscapture && (this->hidden->pfd =
-        SDL_malloc(sizeof(struct pollfd) * SNDIO_sio_nfds(this->hidden->dev))) == NULL) {
-        return SDL_OutOfMemory();
-    }
-
-    SNDIO_sio_initpar(&par);
-
-    par.rate = this->spec.freq;
-    par.pchan = this->spec.channels;
-    par.round = this->spec.samples;
-    par.appbufsz = par.round * 2;
-
-    /* Try for a closest match on audio format */
-    for (test_format = SDL_FirstAudioFormat(this->spec.format); test_format; test_format = SDL_NextAudioFormat()) {
-        if (!SDL_AUDIO_ISFLOAT(test_format)) {
-            par.le = SDL_AUDIO_ISLITTLEENDIAN(test_format) ? 1 : 0;
-            par.sig = SDL_AUDIO_ISSIGNED(test_format) ? 1 : 0;
-            par.bits = SDL_AUDIO_BITSIZE(test_format);
-
-            if (SNDIO_sio_setpar(this->hidden->dev, &par) == 0) {
-                continue;
-            }
-            if (SNDIO_sio_getpar(this->hidden->dev, &par) == 0) {
-                return SDL_SetError("sio_getpar() failed");
-            }
-            if (par.bps != SIO_BPS(par.bits)) {
-                continue;
-            }
-            if ((par.bits == 8 * par.bps) || (par.msb)) {
-                break;
-            }
-        }
-    }
-
-    if (!test_format) {
-        return SDL_SetError("%s: Unsupported audio format", "sndio");
-    }
-
-    if ((par.bps == 4) && (par.sig) && (par.le))
-        this->spec.format = AUDIO_S32LSB;
-    else if ((par.bps == 4) && (par.sig) && (!par.le))
-        this->spec.format = AUDIO_S32MSB;
-    else if ((par.bps == 2) && (par.sig) && (par.le))
-        this->spec.format = AUDIO_S16LSB;
-    else if ((par.bps == 2) && (par.sig) && (!par.le))
-        this->spec.format = AUDIO_S16MSB;
-    else if ((par.bps == 2) && (!par.sig) && (par.le))
-        this->spec.format = AUDIO_U16LSB;
-    else if ((par.bps == 2) && (!par.sig) && (!par.le))
-        this->spec.format = AUDIO_U16MSB;
-    else if ((par.bps == 1) && (par.sig))
-        this->spec.format = AUDIO_S8;
-    else if ((par.bps == 1) && (!par.sig))
-        this->spec.format = AUDIO_U8;
-    else {
-        return SDL_SetError("sndio: Got unsupported hardware audio format.");
-    }
-
-    this->spec.freq = par.rate;
-    this->spec.channels = par.pchan;
-    this->spec.samples = par.round;
-
-    /* Calculate the final parameters for this audio specification */
-    SDL_CalculateAudioSpec(&this->spec);
-
-    /* Allocate mixing buffer */
-    this->hidden->mixlen = this->spec.size;
-    this->hidden->mixbuf = (Uint8 *) SDL_malloc(this->hidden->mixlen);
-    if (this->hidden->mixbuf == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_memset(this->hidden->mixbuf, this->spec.silence, this->hidden->mixlen);
-
-    if (!SNDIO_sio_start(this->hidden->dev)) {
-        return SDL_SetError("sio_start() failed");
-    }
-
-    /* We're ready to rock and roll. :-) */
-    return 0;
-}
-
-static void
-SNDIO_Deinitialize(void)
-{
-    UnloadSNDIOLibrary();
-}
-
-static void
-SNDIO_DetectDevices(void)
-{
-	SDL_AddAudioDevice(SDL_FALSE, DEFAULT_OUTPUT_DEVNAME, NULL, (void *) 0x1);
-	SDL_AddAudioDevice(SDL_TRUE, DEFAULT_INPUT_DEVNAME, NULL, (void *) 0x2);
-}
-
-static SDL_bool
-SNDIO_Init(SDL_AudioDriverImpl * impl)
-{
-    if (LoadSNDIOLibrary() < 0) {
-        return SDL_FALSE;
-    }
-
-    /* Set the function pointers */
-    impl->OpenDevice = SNDIO_OpenDevice;
-    impl->WaitDevice = SNDIO_WaitDevice;
-    impl->PlayDevice = SNDIO_PlayDevice;
-    impl->GetDeviceBuf = SNDIO_GetDeviceBuf;
-    impl->CloseDevice = SNDIO_CloseDevice;
-    impl->CaptureFromDevice = SNDIO_CaptureFromDevice;
-    impl->FlushCapture = SNDIO_FlushCapture;
-    impl->Deinitialize = SNDIO_Deinitialize;
-    impl->DetectDevices = SNDIO_DetectDevices;
-
-    impl->AllowsArbitraryDeviceNames = SDL_TRUE;
-    impl->HasCaptureSupport = SDL_TRUE;
-
-    return SDL_TRUE;   /* this audio target is available. */
-}
-
-AudioBootStrap SNDIO_bootstrap = {
-    "sndio", "OpenBSD sndio", SNDIO_Init, SDL_FALSE
-};
-
-#endif /* SDL_AUDIO_DRIVER_SNDIO */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 49
src/audio/sndio/SDL_sndioaudio.h

@@ -1,49 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef SDL_sndioaudio_h_
-#define SDL_sndioaudio_h_
-
-#include <poll.h>
-#include <sndio.h>
-
-#include "../SDL_sysaudio.h"
-
-/* Hidden "this" pointer for the audio functions */
-#define _THIS   SDL_AudioDevice *this
-
-struct SDL_PrivateAudioData
-{
-    /* The audio device handle */
-    struct sio_hdl *dev;
-
-    /* Raw mixing buffer */
-    Uint8 *mixbuf;
-    int mixlen;
-
-    /* Polling structures for non-blocking sndio devices */
-    struct pollfd *pfd;
-};
-
-#endif /* SDL_sndioaudio_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 420
src/audio/sun/SDL_sunaudio.c

@@ -1,420 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_AUDIO_DRIVER_SUNAUDIO
-
-/* Allow access to a raw mixing buffer */
-
-#include <fcntl.h>
-#include <errno.h>
-#ifdef __NETBSD__
-#include <sys/ioctl.h>
-#include <sys/audioio.h>
-#endif
-#ifdef __SVR4
-#include <sys/audioio.h>
-#else
-#include <sys/time.h>
-#include <sys/types.h>
-#endif
-#include <unistd.h>
-
-#include "SDL_timer.h"
-#include "SDL_audio.h"
-#include "../../core/unix/SDL_poll.h"
-#include "../SDL_audio_c.h"
-#include "../SDL_audiodev_c.h"
-#include "SDL_sunaudio.h"
-
-/* Open the audio device for playback, and don't block if busy */
-
-#if defined(AUDIO_GETINFO) && !defined(AUDIO_GETBUFINFO)
-#define AUDIO_GETBUFINFO AUDIO_GETINFO
-#endif
-
-/* Audio driver functions */
-static Uint8 snd2au(int sample);
-
-/* Audio driver bootstrap functions */
-static void
-SUNAUDIO_DetectDevices(void)
-{
-    SDL_EnumUnixAudioDevices(1, (int (*)(int)) NULL);
-}
-
-#ifdef DEBUG_AUDIO
-void
-CheckUnderflow(_THIS)
-{
-#ifdef AUDIO_GETBUFINFO
-    audio_info_t info;
-    int left;
-
-    ioctl(this->hidden->audio_fd, AUDIO_GETBUFINFO, &info);
-    left = (this->hidden->written - info.play.samples);
-    if (this->hidden->written && (left == 0)) {
-        fprintf(stderr, "audio underflow!\n");
-    }
-#endif
-}
-#endif
-
-static void
-SUNAUDIO_WaitDevice(_THIS)
-{
-#ifdef AUDIO_GETBUFINFO
-#define SLEEP_FUDGE 10      /* 10 ms scheduling fudge factor */
-    audio_info_t info;
-    Sint32 left;
-
-    ioctl(this->hidden->audio_fd, AUDIO_GETBUFINFO, &info);
-    left = (this->hidden->written - info.play.samples);
-    if (left > this->hidden->fragsize) {
-        Sint32 sleepy;
-
-        sleepy = ((left - this->hidden->fragsize) / this->hidden->frequency);
-        sleepy -= SLEEP_FUDGE;
-        if (sleepy > 0) {
-            SDL_Delay(sleepy);
-        }
-    }
-#else
-    SDL_IOReady(this->hidden->audio_fd, SDL_IOR_WRITE, -1);
-#endif
-}
-
-static void
-SUNAUDIO_PlayDevice(_THIS)
-{
-    /* Write the audio data */
-    if (this->hidden->ulaw_only) {
-        /* Assuming that this->spec.freq >= 8000 Hz */
-        int accum, incr, pos;
-        Uint8 *aubuf;
-
-        accum = 0;
-        incr = this->spec.freq / 8;
-        aubuf = this->hidden->ulaw_buf;
-        switch (this->hidden->audio_fmt & 0xFF) {
-        case 8:
-            {
-                Uint8 *sndbuf;
-
-                sndbuf = this->hidden->mixbuf;
-                for (pos = 0; pos < this->hidden->fragsize; ++pos) {
-                    *aubuf = snd2au((0x80 - *sndbuf) * 64);
-                    accum += incr;
-                    while (accum > 0) {
-                        accum -= 1000;
-                        sndbuf += 1;
-                    }
-                    aubuf += 1;
-                }
-            }
-            break;
-        case 16:
-            {
-                Sint16 *sndbuf;
-
-                sndbuf = (Sint16 *) this->hidden->mixbuf;
-                for (pos = 0; pos < this->hidden->fragsize; ++pos) {
-                    *aubuf = snd2au(*sndbuf / 4);
-                    accum += incr;
-                    while (accum > 0) {
-                        accum -= 1000;
-                        sndbuf += 1;
-                    }
-                    aubuf += 1;
-                }
-            }
-            break;
-        }
-#ifdef DEBUG_AUDIO
-        CheckUnderflow(this);
-#endif
-        if (write(this->hidden->audio_fd, this->hidden->ulaw_buf,
-            this->hidden->fragsize) < 0) {
-            /* Assume fatal error, for now */
-            SDL_OpenedAudioDeviceDisconnected(this);
-        }
-        this->hidden->written += this->hidden->fragsize;
-    } else {
-#ifdef DEBUG_AUDIO
-        CheckUnderflow(this);
-#endif
-        if (write(this->hidden->audio_fd, this->hidden->mixbuf,
-            this->spec.size) < 0) {
-            /* Assume fatal error, for now */
-            SDL_OpenedAudioDeviceDisconnected(this);
-        }
-        this->hidden->written += this->hidden->fragsize;
-    }
-}
-
-static Uint8 *
-SUNAUDIO_GetDeviceBuf(_THIS)
-{
-    return (this->hidden->mixbuf);
-}
-
-static void
-SUNAUDIO_CloseDevice(_THIS)
-{
-    SDL_free(this->hidden->ulaw_buf);
-    if (this->hidden->audio_fd >= 0) {
-        close(this->hidden->audio_fd);
-    }
-    SDL_free(this->hidden->mixbuf);
-    SDL_free(this->hidden);
-}
-
-static int
-SUNAUDIO_OpenDevice(_THIS, const char *devname)
-{
-#ifdef AUDIO_SETINFO
-    int enc;
-#endif
-    SDL_bool iscapture = this->iscapture;
-    int desired_freq = 0;
-    const int flags = ((iscapture) ? OPEN_FLAGS_INPUT : OPEN_FLAGS_OUTPUT);
-    SDL_AudioFormat format = 0;
-    audio_info_t info;
-
-    /* We don't care what the devname is...we'll try to open anything. */
-    /*  ...but default to first name in the list... */
-    if (devname == NULL) {
-        devname = SDL_GetAudioDeviceName(0, iscapture);
-        if (devname == NULL) {
-            return SDL_SetError("No such audio device");
-        }
-    }
-
-    /* Initialize all variables that we clean on shutdown */
-    this->hidden = (struct SDL_PrivateAudioData *)
-        SDL_malloc((sizeof *this->hidden));
-    if (this->hidden == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_zerop(this->hidden);
-
-    /* Open the audio device */
-    this->hidden->audio_fd = open(devname, flags, 0);
-    if (this->hidden->audio_fd < 0) {
-        return SDL_SetError("Couldn't open %s: %s", devname, strerror(errno));
-    }
-
-    desired_freq = this->spec.freq;
-
-    /* Determine the audio parameters from the AudioSpec */
-    switch (SDL_AUDIO_BITSIZE(this->spec.format)) {
-
-    case 8:
-        {                       /* Unsigned 8 bit audio data */
-            this->spec.format = AUDIO_U8;
-#ifdef AUDIO_SETINFO
-            enc = AUDIO_ENCODING_LINEAR8;
-#endif
-        }
-        break;
-
-    case 16:
-        {                       /* Signed 16 bit audio data */
-            this->spec.format = AUDIO_S16SYS;
-#ifdef AUDIO_SETINFO
-            enc = AUDIO_ENCODING_LINEAR;
-#endif
-        }
-        break;
-
-    default:
-        {
-            /* !!! FIXME: fallback to conversion on unsupported types! */
-            return SDL_SetError("Unsupported audio format");
-        }
-    }
-    this->hidden->audio_fmt = this->spec.format;
-
-    this->hidden->ulaw_only = 0;    /* modern Suns do support linear audio */
-#ifdef AUDIO_SETINFO
-    for (;;) {
-        audio_info_t info;
-        AUDIO_INITINFO(&info);  /* init all fields to "no change" */
-
-        /* Try to set the requested settings */
-        info.play.sample_rate = this->spec.freq;
-        info.play.channels = this->spec.channels;
-        info.play.precision = (enc == AUDIO_ENCODING_ULAW)
-            ? 8 : this->spec.format & 0xff;
-        info.play.encoding = enc;
-        if (ioctl(this->hidden->audio_fd, AUDIO_SETINFO, &info) == 0) {
-
-            /* Check to be sure we got what we wanted */
-            if (ioctl(this->hidden->audio_fd, AUDIO_GETINFO, &info) < 0) {
-                return SDL_SetError("Error getting audio parameters: %s",
-                                    strerror(errno));
-            }
-            if (info.play.encoding == enc
-                && info.play.precision == (this->spec.format & 0xff)
-                && info.play.channels == this->spec.channels) {
-                /* Yow! All seems to be well! */
-                this->spec.freq = info.play.sample_rate;
-                break;
-            }
-        }
-
-        switch (enc) {
-        case AUDIO_ENCODING_LINEAR8:
-            /* unsigned 8bit apparently not supported here */
-            enc = AUDIO_ENCODING_LINEAR;
-            this->spec.format = AUDIO_S16SYS;
-            break;              /* try again */
-
-        case AUDIO_ENCODING_LINEAR:
-            /* linear 16bit didn't work either, resort to µ-law */
-            enc = AUDIO_ENCODING_ULAW;
-            this->spec.channels = 1;
-            this->spec.freq = 8000;
-            this->spec.format = AUDIO_U8;
-            this->hidden->ulaw_only = 1;
-            break;
-
-        default:
-            /* oh well... */
-            return SDL_SetError("Error setting audio parameters: %s",
-                                strerror(errno));
-        }
-    }
-#endif /* AUDIO_SETINFO */
-    this->hidden->written = 0;
-
-    /* We can actually convert on-the-fly to U-Law */
-    if (this->hidden->ulaw_only) {
-        this->spec.freq = desired_freq;
-        this->hidden->fragsize = (this->spec.samples * 1000) /
-            (this->spec.freq / 8);
-        this->hidden->frequency = 8;
-        this->hidden->ulaw_buf = (Uint8 *) SDL_malloc(this->hidden->fragsize);
-        if (this->hidden->ulaw_buf == NULL) {
-            return SDL_OutOfMemory();
-        }
-        this->spec.channels = 1;
-    } else {
-        this->hidden->fragsize = this->spec.samples;
-        this->hidden->frequency = this->spec.freq / 1000;
-    }
-#ifdef DEBUG_AUDIO
-    fprintf(stderr, "Audio device %s U-Law only\n",
-            this->hidden->ulaw_only ? "is" : "is not");
-    fprintf(stderr, "format=0x%x chan=%d freq=%d\n",
-            this->spec.format, this->spec.channels, this->spec.freq);
-#endif
-
-    /* Update the fragment size as size in bytes */
-    SDL_CalculateAudioSpec(&this->spec);
-
-    /* Allocate mixing buffer */
-    this->hidden->mixbuf = (Uint8 *) SDL_malloc(this->spec.size);
-    if (this->hidden->mixbuf == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_memset(this->hidden->mixbuf, this->spec.silence, this->spec.size);
-
-    /* We're ready to rock and roll. :-) */
-    return 0;
-}
-
-/************************************************************************/
-/* This function (snd2au()) copyrighted:                                */
-/************************************************************************/
-/*      Copyright 1989 by Rich Gopstein and Harris Corporation          */
-/*                                                                      */
-/*      Permission to use, copy, modify, and distribute this software   */
-/*      and its documentation for any purpose and without fee is        */
-/*      hereby granted, provided that the above copyright notice        */
-/*      appears in all copies and that both that copyright notice and   */
-/*      this permission notice appear in supporting documentation, and  */
-/*      that the name of Rich Gopstein and Harris Corporation not be    */
-/*      used in advertising or publicity pertaining to distribution     */
-/*      of the software without specific, written prior permission.     */
-/*      Rich Gopstein and Harris Corporation make no representations    */
-/*      about the suitability of this software for any purpose.  It     */
-/*      provided "as is" without express or implied warranty.           */
-/************************************************************************/
-
-static Uint8
-snd2au(int sample)
-{
-
-    int mask;
-
-    if (sample < 0) {
-        sample = -sample;
-        mask = 0x7f;
-    } else {
-        mask = 0xff;
-    }
-
-    if (sample < 32) {
-        sample = 0xF0 | (15 - sample / 2);
-    } else if (sample < 96) {
-        sample = 0xE0 | (15 - (sample - 32) / 4);
-    } else if (sample < 224) {
-        sample = 0xD0 | (15 - (sample - 96) / 8);
-    } else if (sample < 480) {
-        sample = 0xC0 | (15 - (sample - 224) / 16);
-    } else if (sample < 992) {
-        sample = 0xB0 | (15 - (sample - 480) / 32);
-    } else if (sample < 2016) {
-        sample = 0xA0 | (15 - (sample - 992) / 64);
-    } else if (sample < 4064) {
-        sample = 0x90 | (15 - (sample - 2016) / 128);
-    } else if (sample < 8160) {
-        sample = 0x80 | (15 - (sample - 4064) / 256);
-    } else {
-        sample = 0x80;
-    }
-    return (mask & sample);
-}
-
-static SDL_bool
-SUNAUDIO_Init(SDL_AudioDriverImpl * impl)
-{
-    /* Set the function pointers */
-    impl->DetectDevices = SUNAUDIO_DetectDevices;
-    impl->OpenDevice = SUNAUDIO_OpenDevice;
-    impl->PlayDevice = SUNAUDIO_PlayDevice;
-    impl->WaitDevice = SUNAUDIO_WaitDevice;
-    impl->GetDeviceBuf = SUNAUDIO_GetDeviceBuf;
-    impl->CloseDevice = SUNAUDIO_CloseDevice;
-
-    impl->AllowsArbitraryDeviceNames = SDL_TRUE;
-
-    return SDL_TRUE; /* this audio target is available. */
-}
-
-AudioBootStrap SUNAUDIO_bootstrap = {
-    "audio", "UNIX /dev/audio interface", SUNAUDIO_Init, SDL_FALSE
-};
-
-#endif /* SDL_AUDIO_DRIVER_SUNAUDIO */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 47
src/audio/sun/SDL_sunaudio.h

@@ -1,47 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef SDL_sunaudio_h_
-#define SDL_sunaudio_h_
-
-#include "../SDL_sysaudio.h"
-
-/* Hidden "this" pointer for the audio functions */
-#define _THIS   SDL_AudioDevice *this
-
-struct SDL_PrivateAudioData
-{
-    /* The file descriptor for the audio device */
-    int audio_fd;
-
-    SDL_AudioFormat audio_fmt;  /* The app audio format */
-    Uint8 *mixbuf;              /* The app mixing buffer */
-    int ulaw_only;              /* Flag -- does hardware only output U-law? */
-    Uint8 *ulaw_buf;            /* The U-law mixing buffer */
-    Sint32 written;             /* The number of samples written */
-    int fragsize;               /* The audio fragment size in samples */
-    int frequency;              /* The audio frequency in KHz */
-};
-
-#endif /* SDL_sunaudio_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 459
src/audio/winmm/SDL_winmm.c

@@ -1,459 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_AUDIO_DRIVER_WINMM
-
-/* Allow access to a raw mixing buffer */
-
-#include "../../core/windows/SDL_windows.h"
-#include <mmsystem.h>
-
-#include "SDL_timer.h"
-#include "SDL_audio.h"
-#include "../SDL_audio_c.h"
-#include "SDL_winmm.h"
-
-/* MinGW32 mmsystem.h doesn't include these structures */
-#if defined(__MINGW32__) && defined(_MMSYSTEM_H)
-
-typedef struct tagWAVEINCAPS2W 
-{
-    WORD wMid;
-    WORD wPid;
-    MMVERSION vDriverVersion;
-    WCHAR szPname[MAXPNAMELEN];
-    DWORD dwFormats;
-    WORD wChannels;
-    WORD wReserved1;
-    GUID ManufacturerGuid;
-    GUID ProductGuid;
-    GUID NameGuid;
-} WAVEINCAPS2W,*PWAVEINCAPS2W,*NPWAVEINCAPS2W,*LPWAVEINCAPS2W;
-
-typedef struct tagWAVEOUTCAPS2W
-{
-    WORD wMid;
-    WORD wPid;
-    MMVERSION vDriverVersion;
-    WCHAR szPname[MAXPNAMELEN];
-    DWORD dwFormats;
-    WORD wChannels;
-    WORD wReserved1;
-    DWORD dwSupport;
-    GUID ManufacturerGuid;
-    GUID ProductGuid;
-    GUID NameGuid;
-} WAVEOUTCAPS2W,*PWAVEOUTCAPS2W,*NPWAVEOUTCAPS2W,*LPWAVEOUTCAPS2W;
-
-#endif /* defined(__MINGW32__) && defined(_MMSYSTEM_H) */
-
-#ifndef WAVE_FORMAT_IEEE_FLOAT
-#define WAVE_FORMAT_IEEE_FLOAT 0x0003
-#endif
-
-#define DETECT_DEV_IMPL(iscap, typ, capstyp) \
-static void DetectWave##typ##Devs(void) { \
-    const UINT iscapture = iscap ? 1 : 0; \
-    const UINT devcount = wave##typ##GetNumDevs(); \
-    capstyp##2W caps; \
-    SDL_AudioSpec spec; \
-    UINT i; \
-    SDL_zero(spec); \
-    for (i = 0; i < devcount; i++) { \
-        if (wave##typ##GetDevCaps(i,(LP##capstyp##W)&caps,sizeof(caps))==MMSYSERR_NOERROR) { \
-            char *name = WIN_LookupAudioDeviceName(caps.szPname,&caps.NameGuid); \
-            if (name != NULL) { \
-                /* Note that freq/format are not filled in, as this information \
-                 * is not provided by the caps struct! At best, we get possible \
-                 * sample formats, but not an _active_ format. \
-                 */ \
-                spec.channels = (Uint8)caps.wChannels; \
-                SDL_AddAudioDevice((int) iscapture, name, &spec, (void *) ((size_t) i+1)); \
-                SDL_free(name); \
-            } \
-        } \
-    } \
-}
-
-DETECT_DEV_IMPL(SDL_FALSE, Out, WAVEOUTCAPS)
-DETECT_DEV_IMPL(SDL_TRUE, In, WAVEINCAPS)
-
-static void
-WINMM_DetectDevices(void)
-{
-    DetectWaveInDevs();
-    DetectWaveOutDevs();
-}
-
-static void CALLBACK
-CaptureSound(HWAVEIN hwi, UINT uMsg, DWORD_PTR dwInstance,
-          DWORD_PTR dwParam1, DWORD_PTR dwParam2)
-{
-    SDL_AudioDevice *this = (SDL_AudioDevice *) dwInstance;
-
-    /* Only service "buffer is filled" messages */
-    if (uMsg != WIM_DATA)
-        return;
-
-    /* Signal that we have a new buffer of data */
-    ReleaseSemaphore(this->hidden->audio_sem, 1, NULL);
-}
-
-
-/* The Win32 callback for filling the WAVE device */
-static void CALLBACK
-FillSound(HWAVEOUT hwo, UINT uMsg, DWORD_PTR dwInstance,
-          DWORD_PTR dwParam1, DWORD_PTR dwParam2)
-{
-    SDL_AudioDevice *this = (SDL_AudioDevice *) dwInstance;
-
-    /* Only service "buffer done playing" messages */
-    if (uMsg != WOM_DONE)
-        return;
-
-    /* Signal that we are done playing a buffer */
-    ReleaseSemaphore(this->hidden->audio_sem, 1, NULL);
-}
-
-static int
-SetMMerror(const char *function, MMRESULT code)
-{
-    int len;
-    char errbuf[MAXERRORLENGTH];
-    wchar_t werrbuf[MAXERRORLENGTH];
-
-    SDL_snprintf(errbuf, SDL_arraysize(errbuf), "%s: ", function);
-    len = SDL_static_cast(int, SDL_strlen(errbuf));
-
-    waveOutGetErrorText(code, werrbuf, MAXERRORLENGTH - len);
-    WideCharToMultiByte(CP_ACP, 0, werrbuf, -1, errbuf + len,
-                        MAXERRORLENGTH - len, NULL, NULL);
-
-    return SDL_SetError("%s", errbuf);
-}
-
-static void
-WINMM_WaitDevice(_THIS)
-{
-    /* Wait for an audio chunk to finish */
-    WaitForSingleObject(this->hidden->audio_sem, INFINITE);
-}
-
-static Uint8 *
-WINMM_GetDeviceBuf(_THIS)
-{
-    return (Uint8 *) (this->hidden->
-                      wavebuf[this->hidden->next_buffer].lpData);
-}
-
-static void
-WINMM_PlayDevice(_THIS)
-{
-    /* Queue it up */
-    waveOutWrite(this->hidden->hout,
-                 &this->hidden->wavebuf[this->hidden->next_buffer],
-                 sizeof(this->hidden->wavebuf[0]));
-    this->hidden->next_buffer = (this->hidden->next_buffer + 1) % NUM_BUFFERS;
-}
-
-static int
-WINMM_CaptureFromDevice(_THIS, void *buffer, int buflen)
-{
-    const int nextbuf = this->hidden->next_buffer;
-    MMRESULT result;
-
-    SDL_assert(buflen == this->spec.size);
-
-    /* Wait for an audio chunk to finish */
-    WaitForSingleObject(this->hidden->audio_sem, INFINITE);
-
-    /* Copy it to caller's buffer... */
-    SDL_memcpy(buffer, this->hidden->wavebuf[nextbuf].lpData, this->spec.size);
-
-    /* requeue the buffer that just finished. */
-    result = waveInAddBuffer(this->hidden->hin,
-                             &this->hidden->wavebuf[nextbuf],
-                             sizeof (this->hidden->wavebuf[nextbuf]));
-    if (result != MMSYSERR_NOERROR) {
-        return -1;  /* uhoh! Disable the device. */
-    }
-
-    /* queue the next buffer in sequence, next time. */
-    this->hidden->next_buffer = (nextbuf + 1) % NUM_BUFFERS;
-    return this->spec.size;
-}
-
-static void
-WINMM_FlushCapture(_THIS)
-{
-    /* Wait for an audio chunk to finish */
-    if (WaitForSingleObject(this->hidden->audio_sem, 0) == WAIT_OBJECT_0) {
-        const int nextbuf = this->hidden->next_buffer;
-        /* requeue the buffer that just finished without reading from it. */
-        waveInAddBuffer(this->hidden->hin,
-                        &this->hidden->wavebuf[nextbuf],
-                        sizeof (this->hidden->wavebuf[nextbuf]));
-        this->hidden->next_buffer = (nextbuf + 1) % NUM_BUFFERS;
-    }
-}
-
-static void
-WINMM_CloseDevice(_THIS)
-{
-    int i;
-
-    if (this->hidden->hout) {
-        waveOutReset(this->hidden->hout);
-
-        /* Clean up mixing buffers */
-        for (i = 0; i < NUM_BUFFERS; ++i) {
-            if (this->hidden->wavebuf[i].dwUser != 0xFFFF) {
-                waveOutUnprepareHeader(this->hidden->hout,
-                                       &this->hidden->wavebuf[i],
-                                       sizeof (this->hidden->wavebuf[i]));
-            }
-        }
-
-        waveOutClose(this->hidden->hout);
-    }
-
-    if (this->hidden->hin) {
-        waveInReset(this->hidden->hin);
-
-        /* Clean up mixing buffers */
-        for (i = 0; i < NUM_BUFFERS; ++i) {
-            if (this->hidden->wavebuf[i].dwUser != 0xFFFF) {
-                waveInUnprepareHeader(this->hidden->hin,
-                                       &this->hidden->wavebuf[i],
-                                       sizeof (this->hidden->wavebuf[i]));
-            }
-        }
-        waveInClose(this->hidden->hin);
-    }
-
-    if (this->hidden->audio_sem) {
-        CloseHandle(this->hidden->audio_sem);
-    }
-
-    SDL_free(this->hidden->mixbuf);
-    SDL_free(this->hidden);
-}
-
-static SDL_bool
-PrepWaveFormat(_THIS, UINT devId, WAVEFORMATEX *pfmt, const int iscapture)
-{
-    SDL_zerop(pfmt);
-
-    if (SDL_AUDIO_ISFLOAT(this->spec.format)) {
-        pfmt->wFormatTag = WAVE_FORMAT_IEEE_FLOAT;
-    } else {
-        pfmt->wFormatTag = WAVE_FORMAT_PCM;
-    }
-    pfmt->wBitsPerSample = SDL_AUDIO_BITSIZE(this->spec.format);
-
-    pfmt->nChannels = this->spec.channels;
-    pfmt->nSamplesPerSec = this->spec.freq;
-    pfmt->nBlockAlign = pfmt->nChannels * (pfmt->wBitsPerSample / 8);
-    pfmt->nAvgBytesPerSec = pfmt->nSamplesPerSec * pfmt->nBlockAlign;
-
-    if (iscapture) {
-        return (waveInOpen(0, devId, pfmt, 0, 0, WAVE_FORMAT_QUERY) == 0);
-    } else {
-        return (waveOutOpen(0, devId, pfmt, 0, 0, WAVE_FORMAT_QUERY) == 0);
-    }
-}
-
-static int
-WINMM_OpenDevice(_THIS, const char *devname)
-{
-    SDL_AudioFormat test_format;
-    SDL_bool iscapture = this->iscapture;
-    void *handle = this->handle;
-    MMRESULT result;
-    WAVEFORMATEX waveformat;
-    UINT devId = WAVE_MAPPER;  /* WAVE_MAPPER == choose system's default */
-    UINT i;
-
-    if (handle != NULL) {  /* specific device requested? */
-        /* -1 because we increment the original value to avoid NULL. */
-        const size_t val = ((size_t) handle) - 1;
-        devId = (UINT) val;
-    }
-
-    /* Initialize all variables that we clean on shutdown */
-    this->hidden = (struct SDL_PrivateAudioData *)
-        SDL_malloc((sizeof *this->hidden));
-    if (this->hidden == NULL) {
-        return SDL_OutOfMemory();
-    }
-    SDL_zerop(this->hidden);
-
-    /* Initialize the wavebuf structures for closing */
-    for (i = 0; i < NUM_BUFFERS; ++i)
-        this->hidden->wavebuf[i].dwUser = 0xFFFF;
-
-    if (this->spec.channels > 2)
-        this->spec.channels = 2;        /* !!! FIXME: is this right? */
-
-    for (test_format = SDL_FirstAudioFormat(this->spec.format); test_format; test_format = SDL_NextAudioFormat()) {
-        switch (test_format) {
-        case AUDIO_U8:
-        case AUDIO_S16:
-        case AUDIO_S32:
-        case AUDIO_F32:
-            this->spec.format = test_format;
-            if (PrepWaveFormat(this, devId, &waveformat, iscapture)) {
-                break;
-            }
-            continue;
-        default:
-            continue;
-        }
-        break;
-    }
-
-    if (!test_format) {
-        return SDL_SetError("%s: Unsupported audio format", "winmm");
-    }
-
-    /* Update the fragment size as size in bytes */
-    SDL_CalculateAudioSpec(&this->spec);
-
-    /* Open the audio device */
-    if (iscapture) {
-        result = waveInOpen(&this->hidden->hin, devId, &waveformat,
-                             (DWORD_PTR) CaptureSound, (DWORD_PTR) this,
-                             CALLBACK_FUNCTION);
-        if (result != MMSYSERR_NOERROR) {
-            return SetMMerror("waveInOpen()", result);
-        }
-    } else {
-        result = waveOutOpen(&this->hidden->hout, devId, &waveformat,
-                             (DWORD_PTR) FillSound, (DWORD_PTR) this,
-                             CALLBACK_FUNCTION);
-        if (result != MMSYSERR_NOERROR) {
-            return SetMMerror("waveOutOpen()", result);
-        }
-    }
-
-#ifdef SOUND_DEBUG
-    /* Check the sound device we retrieved */
-    {
-        if (iscapture) {
-            WAVEINCAPS caps;
-            result = waveInGetDevCaps((UINT) this->hidden->hout,
-                                      &caps, sizeof (caps));
-            if (result != MMSYSERR_NOERROR) {
-                return SetMMerror("waveInGetDevCaps()", result);
-            }
-            printf("Audio device: %s\n", caps.szPname);
-        } else {
-            WAVEOUTCAPS caps;
-            result = waveOutGetDevCaps((UINT) this->hidden->hout,
-                                       &caps, sizeof(caps));
-            if (result != MMSYSERR_NOERROR) {
-                return SetMMerror("waveOutGetDevCaps()", result);
-            }
-            printf("Audio device: %s\n", caps.szPname);
-        }
-    }
-#endif
-
-    /* Create the audio buffer semaphore */
-    this->hidden->audio_sem = CreateSemaphore(NULL, iscapture ? 0 : NUM_BUFFERS - 1, NUM_BUFFERS, NULL);
-    if (this->hidden->audio_sem == NULL) {
-        return SDL_SetError("Couldn't create semaphore");
-    }
-
-    /* Create the sound buffers */
-    this->hidden->mixbuf =
-        (Uint8 *) SDL_malloc(NUM_BUFFERS * this->spec.size);
-    if (this->hidden->mixbuf == NULL) {
-        return SDL_OutOfMemory();
-    }
-
-    SDL_zeroa(this->hidden->wavebuf);
-    for (i = 0; i < NUM_BUFFERS; ++i) {
-        this->hidden->wavebuf[i].dwBufferLength = this->spec.size;
-        this->hidden->wavebuf[i].dwFlags = WHDR_DONE;
-        this->hidden->wavebuf[i].lpData =
-            (LPSTR) & this->hidden->mixbuf[i * this->spec.size];
-
-        if (iscapture) {
-            result = waveInPrepareHeader(this->hidden->hin,
-                                          &this->hidden->wavebuf[i],
-                                          sizeof(this->hidden->wavebuf[i]));
-            if (result != MMSYSERR_NOERROR) {
-                return SetMMerror("waveInPrepareHeader()", result);
-            }
-
-            result = waveInAddBuffer(this->hidden->hin,
-                                     &this->hidden->wavebuf[i],
-                                     sizeof(this->hidden->wavebuf[i]));
-            if (result != MMSYSERR_NOERROR) {
-                return SetMMerror("waveInAddBuffer()", result);
-            }
-        } else {
-            result = waveOutPrepareHeader(this->hidden->hout,
-                                          &this->hidden->wavebuf[i],
-                                          sizeof(this->hidden->wavebuf[i]));
-            if (result != MMSYSERR_NOERROR) {
-                return SetMMerror("waveOutPrepareHeader()", result);
-            }
-        }
-    }
-
-    if (iscapture) {
-        result = waveInStart(this->hidden->hin);
-        if (result != MMSYSERR_NOERROR) {
-            return SetMMerror("waveInStart()", result);
-        }
-    }
-
-    return 0;                   /* Ready to go! */
-}
-
-static SDL_bool
-WINMM_Init(SDL_AudioDriverImpl * impl)
-{
-    /* Set the function pointers */
-    impl->DetectDevices = WINMM_DetectDevices;
-    impl->OpenDevice = WINMM_OpenDevice;
-    impl->PlayDevice = WINMM_PlayDevice;
-    impl->WaitDevice = WINMM_WaitDevice;
-    impl->GetDeviceBuf = WINMM_GetDeviceBuf;
-    impl->CaptureFromDevice = WINMM_CaptureFromDevice;
-    impl->FlushCapture = WINMM_FlushCapture;
-    impl->CloseDevice = WINMM_CloseDevice;
-
-    impl->HasCaptureSupport = SDL_TRUE;
-
-    return SDL_TRUE;   /* this audio target is available. */
-}
-
-AudioBootStrap WINMM_bootstrap = {
-    "winmm", "Windows Waveform Audio", WINMM_Init, SDL_FALSE
-};
-
-#endif /* SDL_AUDIO_DRIVER_WINMM */
-
-/* vi: set ts=4 sw=4 expandtab: */

+ 0 - 45
src/audio/winmm/SDL_winmm.h

@@ -1,45 +0,0 @@
-/*
-  Simple DirectMedia Layer
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef SDL_winmm_h_
-#define SDL_winmm_h_
-
-#include "../SDL_sysaudio.h"
-
-/* Hidden "this" pointer for the audio functions */
-#define _THIS   SDL_AudioDevice *this
-
-#define NUM_BUFFERS 2           /* -- Don't lower this! */
-
-struct SDL_PrivateAudioData
-{
-    HWAVEOUT hout;
-    HWAVEIN hin;
-    HANDLE audio_sem;
-    Uint8 *mixbuf;              /* The raw allocated mixing buffer */
-    WAVEHDR wavebuf[NUM_BUFFERS];       /* Wave audio fragments */
-    int next_buffer;
-};
-
-#endif /* SDL_winmm_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */