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

From cdb54ad21e5eeaf271ad01c74a888c44841199e7 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Tue, 22 Nov 2022 19:51:56 +0300
Subject: [PATCH] removed arts, esd, fusionsound, nas, paudio, sndio, sunaudio,
 winmm audio backends.

---
 .github/workflows/main.yml          |    2 +-
 CMakeLists.txt                      |   37 +-
 acinclude/esd.m4                    |  173 ----
 cmake/sdlchecks.cmake               |  180 ----
 configure                           | 1446 ++++-----------------------
 configure.ac                        |  284 ------
 include/SDL_config.h.cmake          |   15 -
 include/SDL_config.h.in             |   15 -
 src/audio/SDL_audio.c               |   27 -
 src/audio/SDL_sysaudio.h            |    8 -
 src/audio/arts/SDL_artsaudio.c      |  357 -------
 src/audio/arts/SDL_artsaudio.h      |   53 -
 src/audio/esd/SDL_esdaudio.c        |  335 -------
 src/audio/esd/SDL_esdaudio.h        |   51 -
 src/audio/fusionsound/SDL_fsaudio.c |  317 ------
 src/audio/fusionsound/SDL_fsaudio.h |   50 -
 src/audio/nas/SDL_nasaudio.c        |  461 ---------
 src/audio/nas/SDL_nasaudio.h        |   56 --
 src/audio/paudio/SDL_paudio.c       |  494 ---------
 src/audio/paudio/SDL_paudio.h       |   48 -
 src/audio/sndio/SDL_sndioaudio.c    |  387 -------
 src/audio/sndio/SDL_sndioaudio.h    |   49 -
 src/audio/sun/SDL_sunaudio.c        |  420 --------
 src/audio/sun/SDL_sunaudio.h        |   47 -
 src/audio/winmm/SDL_winmm.c         |  459 ---------
 src/audio/winmm/SDL_winmm.h         |   45 -
 26 files changed, 188 insertions(+), 5628 deletions(-)
 delete mode 100644 acinclude/esd.m4
 delete mode 100644 src/audio/arts/SDL_artsaudio.c
 delete mode 100644 src/audio/arts/SDL_artsaudio.h
 delete mode 100644 src/audio/esd/SDL_esdaudio.c
 delete mode 100644 src/audio/esd/SDL_esdaudio.h
 delete mode 100644 src/audio/fusionsound/SDL_fsaudio.c
 delete mode 100644 src/audio/fusionsound/SDL_fsaudio.h
 delete mode 100644 src/audio/nas/SDL_nasaudio.c
 delete mode 100644 src/audio/nas/SDL_nasaudio.h
 delete mode 100644 src/audio/paudio/SDL_paudio.c
 delete mode 100644 src/audio/paudio/SDL_paudio.h
 delete mode 100644 src/audio/sndio/SDL_sndioaudio.c
 delete mode 100644 src/audio/sndio/SDL_sndioaudio.h
 delete mode 100644 src/audio/sun/SDL_sunaudio.c
 delete mode 100644 src/audio/sun/SDL_sunaudio.h
 delete mode 100644 src/audio/winmm/SDL_winmm.c
 delete mode 100644 src/audio/winmm/SDL_winmm.h

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 250f8905ce53..43309172a953 100644
--- a/.github/workflows/main.yml
+++ b/.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
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c1bcefd3fb85..260ab3aa7a8f 100644
--- a/CMakeLists.txt
+++ b/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)
diff --git a/acinclude/esd.m4 b/acinclude/esd.m4
deleted file mode 100644
index bd4b84849d54..000000000000
--- a/acinclude/esd.m4
+++ /dev/null
@@ -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
-  )
-])
diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake
index b65d63aabc8a..553d67092681 100644
--- a/cmake/sdlchecks.cmake
+++ b/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:
diff --git a/configure b/configure
index 79763cbba287..a641003f751b 100755
--- a/configure
+++ b/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.
-              

(Patch may be truncated, please check the link at the top of this post.)