SDL_mixer: updated Visual Studio and Xcode project files for libxmp full library. (fb6bd)

From fb6bda5807bd45e709da868c33d6e5ffa4df7ec0 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Fri, 25 Aug 2023 17:00:32 +0300
Subject: [PATCH] updated Visual Studio and Xcode project files for libxmp full
 library.

.. with prowizard format loaders and depackers functionality disabled.
---
 VisualC/SDL_mixer.vcxproj                     |  16 +-
 VisualC/external/include/xmp.h                |  36 +-
 .../{LICENSE.xmp-lite.txt => LICENSE.xmp.txt} |  26 +-
 VisualC/external/optional/x64/libxmp-lite.dll | Bin 143360 -> 0 bytes
 VisualC/external/optional/x64/libxmp.dll      | Bin 0 -> 390656 bytes
 .../{LICENSE.xmp-lite.txt => LICENSE.xmp.txt} |  26 +-
 VisualC/external/optional/x86/libxmp-lite.dll | Bin 136192 -> 0 bytes
 VisualC/external/optional/x86/libxmp.dll      | Bin 0 -> 376832 bytes
 Xcode/SDL_mixer.xcodeproj/project.pbxproj     |  22 +-
 Xcode/config.xcconfig                         |   2 +-
 .../playmus/playmus.xcodeproj/project.pbxproj |  28 +-
 .../playwave.xcodeproj/project.pbxproj        |  28 +-
 .../xmp-lite.xcodeproj/project.pbxproj        | 537 ------------
 Xcode/xmp/xmp.xcodeproj/project.pbxproj       | 787 ++++++++++++++++++
 14 files changed, 866 insertions(+), 642 deletions(-)
 rename VisualC/external/optional/x64/{LICENSE.xmp-lite.txt => LICENSE.xmp.txt} (52%)
 delete mode 100644 VisualC/external/optional/x64/libxmp-lite.dll
 create mode 100644 VisualC/external/optional/x64/libxmp.dll
 rename VisualC/external/optional/x86/{LICENSE.xmp-lite.txt => LICENSE.xmp.txt} (52%)
 delete mode 100644 VisualC/external/optional/x86/libxmp-lite.dll
 create mode 100644 VisualC/external/optional/x86/libxmp.dll
 delete mode 100644 Xcode/xmp-lite/xmp-lite.xcodeproj/project.pbxproj
 create mode 100644 Xcode/xmp/xmp.xcodeproj/project.pbxproj

diff --git a/VisualC/SDL_mixer.vcxproj b/VisualC/SDL_mixer.vcxproj
index 23c430a9..e7e21bb1 100644
--- a/VisualC/SDL_mixer.vcxproj
+++ b/VisualC/SDL_mixer.vcxproj
@@ -114,7 +114,7 @@
       <AdditionalOptions>/D OGG_DYNAMIC=\"libvorbisfile-3.dll\" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\src\codecs\native_midi;external\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;_DEBUG;WIN32;_WINDOWS;MUSIC_WAV;MUSIC_FLAC_DRFLAC;MUSIC_MOD_XMP;XMP_DYNAMIC="libxmp-lite.dll";MUSIC_MP3_DRMP3;MUSIC_OGG;OGG_USE_STB;MUSIC_OPUS;OPUS_DYNAMIC="libopusfile-0.dll";MUSIC_MID_TIMIDITY;MUSIC_MID_NATIVE</PreprocessorDefinitions>
+      <PreprocessorDefinitions>DLL_EXPORT;_DEBUG;WIN32;_WINDOWS;MUSIC_WAV;MUSIC_FLAC_DRFLAC;MUSIC_MOD_XMP;XMP_DYNAMIC="libxmp.dll";MUSIC_MP3_DRMP3;MUSIC_OGG;OGG_USE_STB;MUSIC_OPUS;OPUS_DYNAMIC="libopusfile-0.dll";MUSIC_MID_TIMIDITY;MUSIC_MID_NATIVE</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>OldStyle</DebugInformationFormat>
@@ -144,7 +144,7 @@
       <AdditionalOptions>/D OGG_DYNAMIC=\"libvorbisfile-3.dll\" %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\src\codecs\native_midi;external\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;_DEBUG;WIN32;_WINDOWS;MUSIC_WAV;MUSIC_FLAC_DRFLAC;MUSIC_MOD_XMP;XMP_DYNAMIC="libxmp-lite.dll";MUSIC_MP3_DRMP3;MUSIC_OGG;OGG_USE_STB;MUSIC_OPUS;OPUS_DYNAMIC="libopusfile-0.dll";MUSIC_MID_TIMIDITY;MUSIC_MID_NATIVE</PreprocessorDefinitions>
+      <PreprocessorDefinitions>DLL_EXPORT;_DEBUG;WIN32;_WINDOWS;MUSIC_WAV;MUSIC_FLAC_DRFLAC;MUSIC_MOD_XMP;XMP_DYNAMIC="libxmp.dll";MUSIC_MP3_DRMP3;MUSIC_OGG;OGG_USE_STB;MUSIC_OPUS;OPUS_DYNAMIC="libopusfile-0.dll";MUSIC_MID_TIMIDITY;MUSIC_MID_NATIVE</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>OldStyle</DebugInformationFormat>
@@ -173,7 +173,7 @@
     <ClCompile>
       <AdditionalOptions>/D OGG_DYNAMIC=\"libvorbisfile-3.dll\" %(AdditionalOptions)</AdditionalOptions>
       <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\src\codecs\native_midi;external\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;MUSIC_WAV;MUSIC_FLAC_DRFLAC;MUSIC_MOD_XMP;XMP_DYNAMIC="libxmp-lite.dll";MUSIC_MP3_DRMP3;MUSIC_OGG;OGG_USE_STB;MUSIC_OPUS;OPUS_DYNAMIC="libopusfile-0.dll";MUSIC_MID_TIMIDITY;MUSIC_MID_NATIVE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>DLL_EXPORT;NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;MUSIC_WAV;MUSIC_FLAC_DRFLAC;MUSIC_MOD_XMP;XMP_DYNAMIC="libxmp.dll";MUSIC_MP3_DRMP3;MUSIC_OGG;OGG_USE_STB;MUSIC_OPUS;OPUS_DYNAMIC="libopusfile-0.dll";MUSIC_MID_TIMIDITY;MUSIC_MID_NATIVE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
@@ -200,7 +200,7 @@
     <ClCompile>
       <AdditionalOptions>/D OGG_DYNAMIC=\"libvorbisfile-3.dll\" %(AdditionalOptions)</AdditionalOptions>
       <AdditionalIncludeDirectories>..\include;..\src;..\src\codecs;..\src\codecs\timidity;..\src\codecs\native_midi;external\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>DLL_EXPORT;NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;MUSIC_WAV;MUSIC_FLAC_DRFLAC;MUSIC_MOD_XMP;XMP_DYNAMIC="libxmp-lite.dll";MUSIC_MP3_DRMP3;MUSIC_OGG;OGG_USE_STB;MUSIC_OPUS;OPUS_DYNAMIC="libopusfile-0.dll";MUSIC_MID_TIMIDITY;MUSIC_MID_NATIVE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>DLL_EXPORT;NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;MUSIC_WAV;MUSIC_FLAC_DRFLAC;MUSIC_MOD_XMP;XMP_DYNAMIC="libxmp.dll";MUSIC_MP3_DRMP3;MUSIC_OGG;OGG_USE_STB;MUSIC_OPUS;OPUS_DYNAMIC="libopusfile-0.dll";MUSIC_MID_TIMIDITY;MUSIC_MID_NATIVE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
@@ -267,7 +267,7 @@
     </ProjectReference>
   </ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="external\optional\x64\libxmp-lite.dll">
+    <CustomBuild Include="external\optional\x64\libxmp.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
@@ -303,7 +303,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x64\LICENSE.xmp-lite.txt">
+    <CustomBuild Include="external\optional\x64\LICENSE.xmp.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
@@ -335,7 +335,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x86\libxmp-lite.dll">
+    <CustomBuild Include="external\optional\x86\libxmp.dll">
       <FileType>Document</FileType>
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
@@ -371,7 +371,7 @@
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
     </CustomBuild>
-    <CustomBuild Include="external\optional\x86\LICENSE.xmp-lite.txt">
+    <CustomBuild Include="external\optional\x86\LICENSE.xmp.txt">
       <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy %(FullPath) $(SolutionDir)\$(Platform)\$(Configuration)\</Command>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying %(Filename)%(Extension)</Message>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension)</Outputs>
diff --git a/VisualC/external/include/xmp.h b/VisualC/external/include/xmp.h
index 2d725411..22db2a3d 100644
--- a/VisualC/external/include/xmp.h
+++ b/VisualC/external/include/xmp.h
@@ -1,39 +1,56 @@
 #ifndef XMP_H
 #define XMP_H
 
+#if defined(EMSCRIPTEN)
+# include <emscripten.h>
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#define XMP_VERSION "4.5.0"
-#define XMP_VERCODE 0x040500
+#define XMP_VERSION "4.6.0"
+#define XMP_VERCODE 0x040600
 #define XMP_VER_MAJOR 4
-#define XMP_VER_MINOR 5
+#define XMP_VER_MINOR 6
 #define XMP_VER_RELEASE 0
 
 #if defined(_WIN32) && !defined(__CYGWIN__)
-# if defined(BUILDING_STATIC)
+# if defined(LIBXMP_STATIC)
 #  define LIBXMP_EXPORT
 # elif defined(BUILDING_DLL)
 #  define LIBXMP_EXPORT __declspec(dllexport)
 # else
 #  define LIBXMP_EXPORT __declspec(dllimport)
 # endif
-#elif defined(__OS2__) && defined(__WATCOMC__) && defined(__SW_BD)
+#elif defined(__OS2__) && defined(__WATCOMC__)
+# if defined(LIBXMP_STATIC)
+#  define LIBXMP_EXPORT
+# elif defined(BUILDING_DLL)
 #  define LIBXMP_EXPORT __declspec(dllexport)
+# else
+#  define LIBXMP_EXPORT
+# endif
 #elif (defined(__GNUC__) || defined(__clang__) || defined(__HP_cc)) && defined(XMP_SYM_VISIBILITY)
-# define LIBXMP_EXPORT __attribute__((visibility ("default")))
+# if defined(LIBXMP_STATIC)
+#  define LIBXMP_EXPORT
+# else
+#  define LIBXMP_EXPORT __attribute__((visibility("default")))
+# endif
 #elif defined(__SUNPRO_C) && defined(XMP_LDSCOPE_GLOBAL)
-# define LIBXMP_EXPORT __global
+# if defined(LIBXMP_STATIC)
+#  define LIBXMP_EXPORT
+# else
+#  define LIBXMP_EXPORT __global
+# endif
 #elif defined(EMSCRIPTEN)
-# include <emscripten.h>
 # define LIBXMP_EXPORT EMSCRIPTEN_KEEPALIVE
 # define LIBXMP_EXPORT_VAR
 #else
 # define LIBXMP_EXPORT
 #endif
 
-#if !defined (LIBXMP_EXPORT_VAR)
+#if !defined(LIBXMP_EXPORT_VAR)
 # define LIBXMP_EXPORT_VAR LIBXMP_EXPORT
 #endif
 
@@ -238,6 +255,7 @@ struct xmp_sample {
 #define XMP_SAMPLE_LOOP_FULL	(1 << 4)  /* Play full sample before looping */
 #define XMP_SAMPLE_SLOOP	(1 << 5)  /* Sample has sustain loop */
 #define XMP_SAMPLE_SLOOP_BIDIR	(1 << 6)  /* Bidirectional sustain loop */
+#define XMP_SAMPLE_STEREO	(1 << 7)  /* Interlaced stereo sample */
 #define XMP_SAMPLE_SYNTH	(1 << 15) /* Data contains synth patch */
 	int flg;			/* Flags */
 	unsigned char *data;		/* Sample data */
diff --git a/VisualC/external/optional/x64/LICENSE.xmp-lite.txt b/VisualC/external/optional/x64/LICENSE.xmp.txt
similarity index 52%
rename from VisualC/external/optional/x64/LICENSE.xmp-lite.txt
rename to VisualC/external/optional/x64/LICENSE.xmp.txt
index b47bcdbe..b3bae0d3 100644
--- a/VisualC/external/optional/x64/LICENSE.xmp-lite.txt
+++ b/VisualC/external/optional/x64/LICENSE.xmp.txt
@@ -1,26 +1,5 @@
-   __   _ __                       ___ __     
-  / /  (_) / __ __ __ _  ___  ____/ (_) /____ 
- / /__/ / _ \\ \ //  ' \/ _ \/___/ / / __/ -_)
-/____/_/_.__/_\_\/_/_/_/ .__/   /_/_/\__/\__/ 
-                      /_/                     
-
-Libxmp-lite is a lean and lightweight subset of Libxmp that plays MOD, S3M,
-XM, and IT modules and retains full compatibility with the original API.
-It's intended for games and small or embedded applications where module
-format diversity and file depacking are not required.
-
-Library size can be further reduced by disabling Impulse Tracker format
-support (configure with --disable-it). This option will also disable IT
-effects and lowpass filtering.
-
-Please refer to http://xmp.sf.net/libxmp.html for details on the current
-Libxmp API.
-
-
-LICENSE
-
-Extended Module Player Lite
-Copyright (C) 1996-2021 Claudio Matsuoka and Hipolito Carraro Jr
+Extended Module Player
+Copyright (C) 1996-2023 Claudio Matsuoka and Hipolito Carraro Jr
 
 Permission is hereby granted, free of charge, to any person obtaining a
 copy of this software and associated documentation files (the "Software"),
@@ -39,4 +18,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
-
diff --git a/VisualC/external/optional/x64/libxmp-lite.dll b/VisualC/external/optional/x64/libxmp-lite.dll
deleted file mode 100644
index d509c6bd0df30597be675a761427b6905934be87..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 143360
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

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