diff --git a/.github/workflows/CI-windows.yml b/.github/workflows/CI-windows.yml
index 347f98f..b2c4fbe 100644
--- a/.github/workflows/CI-windows.yml
+++ b/.github/workflows/CI-windows.yml
@@ -29,9 +29,11 @@ jobs:
submodules: recursive
# nasm is required for building Release|Win32
- uses: ilammy/setup-nasm@v1
- - name: Apply patch
+ - name: Apply patches
# yamllint disable-line rule:line-length
- run: git apply --directory=ThirdParty/flac ThirdParty/submodule_flac_CUETools.patch --verbose
+ run: |
+ git apply --directory=ThirdParty/flac ThirdParty/submodule_flac_CUETools.patch --verbose
+ git apply --directory=ThirdParty/WavPack ThirdParty/submodule_WavPack_CUETools_VS2017.patch --verbose
- name: Build Release|Any CPU
run: |
"%DEVENV_PATH%" "%SLN_PATH%" /Build "Release|Any CPU"
diff --git a/.github/workflows/release-windows.yml b/.github/workflows/release-windows.yml
index a268694..d214330 100644
--- a/.github/workflows/release-windows.yml
+++ b/.github/workflows/release-windows.yml
@@ -30,9 +30,11 @@ jobs:
submodules: recursive
# nasm is required for building Release|Win32
- uses: ilammy/setup-nasm@v1
- - name: Apply patch
+ - name: Apply patches
# yamllint disable-line rule:line-length
- run: git apply --directory=ThirdParty/flac ThirdParty/submodule_flac_CUETools.patch --verbose
+ run: |
+ git apply --directory=ThirdParty/flac ThirdParty/submodule_flac_CUETools.patch --verbose
+ git apply --directory=ThirdParty/WavPack ThirdParty/submodule_WavPack_CUETools_VS2017.patch --verbose
- name: Build Release|Any CPU
run: |
"%DEVENV_PATH%" "%SLN_PATH%" /Build "Release|Any CPU"
diff --git a/.gitmodules b/.gitmodules
index 6f0ea43..7938054 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -12,7 +12,7 @@
url = https://github.com/gchudov/openclnet.git
[submodule "ThirdParty/WavPack"]
path = ThirdParty/WavPack
- url = https://github.com/gchudov/WavPack.git
+ url = https://github.com/dbry/WavPack.git
[submodule "ThirdParty/WindowsMediaLib"]
path = ThirdParty/WindowsMediaLib
url = https://github.com/gchudov/WindowsMediaLib.git
diff --git a/README.md b/README.md
index 56b4c58..685102f 100644
--- a/README.md
+++ b/README.md
@@ -11,8 +11,9 @@ Prebuilt binaries can be downloaded from [CUETools Download](http://cue.tools/wi
`git clone https://github.com/gchudov/cuetools.net.git`
* Get the required submodules using:
`git submodule update --init --recursive`
-* Apply patch to submodule flac:
-`git apply --directory=ThirdParty/flac ThirdParty/submodule_flac_CUETools.patch`
+* Apply patches to submodules:
+`git apply --directory=ThirdParty/flac ThirdParty/submodule_flac_CUETools.patch`
+`git apply --directory=ThirdParty/WavPack ThirdParty/submodule_WavPack_CUETools_VS2017.patch`
* The solution can be built using Microsoft Visual Studio 2017 or newer (Community Edition will work)
* Install the required .NET development tools (currently .NET Framework 4.7 and .NET Core 2.0)
* Install an appropriate Windows SDK version (currently 10.0.16299.0)
diff --git a/ThirdParty/WavPack b/ThirdParty/WavPack
index 9b59bcd..2ce3c06 160000
--- a/ThirdParty/WavPack
+++ b/ThirdParty/WavPack
@@ -1 +1 @@
-Subproject commit 9b59bcd6ed875e3e2e5b0e93536c097838181d1c
+Subproject commit 2ce3c069be548e82ea9c05741ace6583e549c6de
diff --git a/ThirdParty/submodule_WavPack_CUETools_VS2017.patch b/ThirdParty/submodule_WavPack_CUETools_VS2017.patch
new file mode 100644
index 0000000..0b52c70
--- /dev/null
+++ b/ThirdParty/submodule_WavPack_CUETools_VS2017.patch
@@ -0,0 +1,673 @@
+diff --git a/audition/audition.vcxproj b/audition/audition.vcxproj
+index fd59f60..a1ff47f 100644
+--- a/audition/audition.vcxproj
++++ b/audition/audition.vcxproj
+@@ -26,19 +26,19 @@
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+
+@@ -57,7 +57,7 @@
+
+
+
+- <_ProjectFileVersion>16.0.30804.86
++ <_ProjectFileVersion>15.9.28307.1500
+
+
+ $(SolutionDir)$(Configuration)\
+diff --git a/src/libwavpack.vcxproj b/src/libwavpack.vcxproj
+index 3d586d6..121a4f1 100644
+--- a/src/libwavpack.vcxproj
++++ b/src/libwavpack.vcxproj
+@@ -26,19 +26,19 @@
+
+
+ StaticLibrary
+- v142
++ v141
+
+
+ StaticLibrary
+- v142
++ v141
+
+
+ StaticLibrary
+- v142
++ v141
+
+
+ StaticLibrary
+- v142
++ v141
+
+
+
+@@ -58,32 +58,32 @@
+
+
+
+- <_ProjectFileVersion>16.0.30804.86
++ <_ProjectFileVersion>15.9.28307.1500
+
+
+- $(SolutionDir)$(Configuration)\
+- $(Configuration)\
++ $(SolutionDir)..\ThirdParty$(Configuration)\$(Platform)\
++ $(Platform)\$(Configuration)\
+
+
+- $(SolutionDir)$(Platform)\$(Configuration)\
++ $(SolutionDir)..\ThirdParty$(Configuration)\$(Platform)\
+ $(Platform)\$(Configuration)\
+
+
+- $(SolutionDir)$(Configuration)\
+- $(Configuration)\
++ $(SolutionDir)..\ThirdParty\$(Platform)\
++ $(Platform)\$(Configuration)\
+
+
+- $(SolutionDir)$(Platform)\$(Configuration)\
++ $(SolutionDir)..\ThirdParty\$(Platform)\
+ $(Platform)\$(Configuration)\
+
+
+
+ Disabled
+ ..\include;%(AdditionalIncludeDirectories)
+- WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;ENABLE_DSD;%(PreprocessorDefinitions)
++ WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;NO_TAGS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+- MultiThreadedDebug
++ MultiThreadedDebugDLL
+
+ Level3
+ EditAndContinue
+@@ -96,10 +96,10 @@
+
+ Disabled
+ ..\include;%(AdditionalIncludeDirectories)
+- WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;ENABLE_DSD;%(PreprocessorDefinitions)
++ WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;NO_TAGS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+- MultiThreadedDebug
++ MultiThreadedDebugDLL
+
+ Level3
+ ProgramDatabase
+@@ -113,10 +113,10 @@
+ true
+ Speed
+ true
+- WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;ENABLE_DSD;OPT_ASM_X86;%(PreprocessorDefinitions)
++ WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;NO_TAGS;OPT_ASM_X86;%(PreprocessorDefinitions)
+ true
+
+- MultiThreaded
++ MultiThreadedDLL
+ false
+ true
+ false
+@@ -142,10 +142,10 @@
+ true
+ Speed
+ true
+- WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;ENABLE_DSD;OPT_ASM_X64;%(PreprocessorDefinitions)
++ WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;NO_TAGS;OPT_ASM_X64;%(PreprocessorDefinitions)
+ true
+
+- MultiThreaded
++ MultiThreadedDLL
+ false
+ true
+ false
+@@ -172,13 +172,33 @@
+
+
+
+-
+-
+-
++
++ true
++ true
++ true
++ true
++
++
++ true
++ true
++ true
++ true
++
++
++ true
++ true
++ true
++ true
++
+
+
+
+-
++
++ true
++ true
++ true
++ true
++
+
+
+
+diff --git a/wavpack.sln b/wavpack.sln
+index a979740..0b9a66d 100644
+--- a/wavpack.sln
++++ b/wavpack.sln
+@@ -1,7 +1,7 @@
+
+ Microsoft Visual Studio Solution File, Format Version 12.00
+-# Visual Studio Version 16
+-VisualStudioVersion = 16.0.30804.86
++# Visual Studio 15
++VisualStudioVersion = 15.9.28307.1500
+ MinimumVisualStudioVersion = 10.0.40219.1
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libwavpack", "src\libwavpack.vcxproj", "{5CCCB9CF-0384-458F-BA08-72B73866840F}"
+ EndProject
+diff --git a/wavpackdll/wavpackdll.rc b/wavpackdll/wavpackdll.rc
+index 782c69f..4ea10a3 100644
+--- a/wavpackdll/wavpackdll.rc
++++ b/wavpackdll/wavpackdll.rc
+@@ -7,7 +7,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#include "winres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -34,7 +34,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""afxres.h""\r\n"
++ "#include ""winres.h""\r\n"
+ "\0"
+ END
+
+diff --git a/wavpackdll/wavpackdll.vcxproj b/wavpackdll/wavpackdll.vcxproj
+index eabba53..2925c90 100644
+--- a/wavpackdll/wavpackdll.vcxproj
++++ b/wavpackdll/wavpackdll.vcxproj
+@@ -26,19 +26,19 @@
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+
+@@ -58,25 +58,25 @@
+
+
+
+- <_ProjectFileVersion>16.0.30804.86
++ <_ProjectFileVersion>15.9.28307.1500
+
+
+- $(SolutionDir)$(Configuration)\
+- $(Configuration)\
++ $(SolutionDir)..\ThirdParty$(Configuration)\$(Platform)\
++ $(Platform)\$(Configuration)\
+ true
+
+
+- $(SolutionDir)$(Platform)\$(Configuration)\
++ $(SolutionDir)..\ThirdParty$(Configuration)\$(Platform)\
+ $(Platform)\$(Configuration)\
+ true
+
+
+- $(SolutionDir)$(Configuration)\
+- $(Configuration)\
++ $(SolutionDir)..\ThirdParty\$(Platform)\
++ $(Platform)\$(Configuration)\
+ false
+
+
+- $(SolutionDir)$(Platform)\$(Configuration)\
++ $(SolutionDir)..\ThirdParty\$(Platform)\
+ $(Platform)\$(Configuration)\
+ false
+
+@@ -93,18 +93,18 @@
+ Default
+
+
+- /export:WavpackOpenFileInput /export:WavpackOpenFileInputEx /export:WavpackGetMode
++ /export:WavpackGetMode
+ /export:WavpackGetVersion /export:WavpackGetErrorMessage /export:WavpackUnpackSamples
+-/export:WavpackSeekSample /export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
++/export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
+ /export:WavpackGetEncodedNoise
+
+ /export:WavpackGetTagItemIndexed /export:WavpackGetBinaryTagItemIndexed /export:WavpackOpenFileOutput
+-/export:WavpackSetConfiguration /export:WavpackPackInit /export:WavpackPackSamples
++/export:WavpackPackInit /export:WavpackPackSamples
+ /export:WavpackFlushSamples /export:WavpackAddWrapper /export:WavpackStoreMD5Sum
+ /export:WavpackUpdateNumSamples /export:WavpackGetWrapperLocation
+ /export:WavpackAppendTagItem /export:WavpackAppendBinaryTagItem /export:WavpackDeleteTagItem /export:WavpackWriteTag
+-/export:WavpackGetNumSamples /export:WavpackGetSampleIndex /export:WavpackGetNumErrors
+-/export:WavpackLossyBlocks /export:WavpackGetProgress /export:WavpackGetFileSize
++/export:WavpackGetNumErrors
++/export:WavpackLossyBlocks /export:WavpackGetProgress
+ /export:WavpackGetRatio /export:WavpackGetAverageBitrate /export:WavpackGetInstantBitrate
+ /export:WavpackCloseFile /export:WavpackGetSampleRate /export:WavpackGetNumChannels
+ /export:WavpackGetChannelMask /export:WavpackGetFloatNormExp
+@@ -116,11 +116,11 @@
+ /export:WavpackLittleEndianToNative /export:WavpackNativeToLittleEndian
+ /export:WavpackGetLibraryVersion /export:WavpackGetLibraryVersionString
+
+-/export:WavpackOpenRawDecoder /export:WavpackOpenFileInputEx64
++/export:WavpackOpenFileInputEx64
+ /export:WavpackGetNumSamples64 /export:WavpackGetSampleIndex64
+ /export:WavpackSeekSample64 /export:WavpackGetFileSize64
+ /export:WavpackGetQualifyMode /export:WavpackGetFileExtension
+-/export:WavpackGetFileFormat /export:WavpackGetNumSamplesInFrame
++/export:WavpackGetFileFormat
+ /export:WavpackGetNativeSampleRate /export:WavpackGetChannelIdentities
+ /export:WavpackGetChannelLayout /export:WavpackSetFileInformation
+ /export:WavpackSetConfiguration64 /export:WavpackSetChannelLayout
+@@ -150,16 +150,16 @@
+ Default
+
+
+- /export:WavpackOpenFileInput /export:WavpackOpenFileInputEx /export:WavpackGetMode
++ /export:WavpackGetMode
+ /export:WavpackGetVersion /export:WavpackGetErrorMessage /export:WavpackUnpackSamples
+-/export:WavpackSeekSample /export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
++/export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
+ /export:WavpackGetTagItemIndexed /export:WavpackGetBinaryTagItemIndexed /export:WavpackOpenFileOutput
+-/export:WavpackSetConfiguration /export:WavpackPackInit /export:WavpackPackSamples
++/export:WavpackPackInit /export:WavpackPackSamples
+ /export:WavpackFlushSamples /export:WavpackAddWrapper /export:WavpackStoreMD5Sum
+ /export:WavpackUpdateNumSamples /export:WavpackGetWrapperLocation
+ /export:WavpackAppendTagItem /export:WavpackAppendBinaryTagItem /export:WavpackDeleteTagItem /export:WavpackWriteTag
+-/export:WavpackGetNumSamples /export:WavpackGetSampleIndex /export:WavpackGetNumErrors
+-/export:WavpackLossyBlocks /export:WavpackGetProgress /export:WavpackGetFileSize
++/export:WavpackGetNumErrors
++/export:WavpackLossyBlocks /export:WavpackGetProgress
+ /export:WavpackGetRatio /export:WavpackGetAverageBitrate /export:WavpackGetInstantBitrate
+ /export:WavpackCloseFile /export:WavpackGetSampleRate /export:WavpackGetNumChannels
+ /export:WavpackGetChannelMask /export:WavpackGetFloatNormExp
+@@ -171,11 +171,11 @@
+ /export:WavpackLittleEndianToNative /export:WavpackNativeToLittleEndian
+ /export:WavpackGetLibraryVersion /export:WavpackGetLibraryVersionString
+
+-/export:WavpackOpenRawDecoder /export:WavpackOpenFileInputEx64
++/export:WavpackOpenFileInputEx64
+ /export:WavpackGetNumSamples64 /export:WavpackGetSampleIndex64
+ /export:WavpackSeekSample64 /export:WavpackGetFileSize64
+ /export:WavpackGetQualifyMode /export:WavpackGetFileExtension
+-/export:WavpackGetFileFormat /export:WavpackGetNumSamplesInFrame
++/export:WavpackGetFileFormat
+ /export:WavpackGetNativeSampleRate /export:WavpackGetChannelIdentities
+ /export:WavpackGetChannelLayout /export:WavpackSetFileInformation
+ /export:WavpackSetConfiguration64 /export:WavpackSetChannelLayout
+@@ -198,23 +198,23 @@
+ Speed
+ true
+ false
+- MultiThreaded
++ MultiThreadedDLL
+
+ Level3
+ ProgramDatabase
+ Default
+
+
+- /export:WavpackOpenFileInput /export:WavpackOpenFileInputEx /export:WavpackGetMode
++ /export:WavpackGetMode
+ /export:WavpackGetVersion /export:WavpackGetErrorMessage /export:WavpackUnpackSamples
+-/export:WavpackSeekSample /export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
++/export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
+ /export:WavpackGetTagItemIndexed /export:WavpackGetBinaryTagItemIndexed /export:WavpackOpenFileOutput
+-/export:WavpackSetConfiguration /export:WavpackPackInit /export:WavpackPackSamples
++/export:WavpackPackInit /export:WavpackPackSamples
+ /export:WavpackFlushSamples /export:WavpackAddWrapper /export:WavpackStoreMD5Sum
+ /export:WavpackUpdateNumSamples /export:WavpackGetWrapperLocation
+ /export:WavpackAppendTagItem /export:WavpackAppendBinaryTagItem /export:WavpackDeleteTagItem /export:WavpackWriteTag
+-/export:WavpackGetNumSamples /export:WavpackGetSampleIndex /export:WavpackGetNumErrors
+-/export:WavpackLossyBlocks /export:WavpackGetProgress /export:WavpackGetFileSize
++/export:WavpackGetNumErrors
++/export:WavpackLossyBlocks /export:WavpackGetProgress
+ /export:WavpackGetRatio /export:WavpackGetAverageBitrate /export:WavpackGetInstantBitrate
+ /export:WavpackCloseFile /export:WavpackGetSampleRate /export:WavpackGetNumChannels
+ /export:WavpackGetChannelMask /export:WavpackGetFloatNormExp
+@@ -227,11 +227,11 @@
+ /export:WavpackGetLibraryVersion /export:WavpackGetLibraryVersionString
+ /export:WavpackGetEncodedNoise
+
+-/export:WavpackOpenRawDecoder /export:WavpackOpenFileInputEx64
++/export:WavpackOpenFileInputEx64
+ /export:WavpackGetNumSamples64 /export:WavpackGetSampleIndex64
+ /export:WavpackSeekSample64 /export:WavpackGetFileSize64
+ /export:WavpackGetQualifyMode /export:WavpackGetFileExtension
+-/export:WavpackGetFileFormat /export:WavpackGetNumSamplesInFrame
++/export:WavpackGetFileFormat
+ /export:WavpackGetNativeSampleRate /export:WavpackGetChannelIdentities
+ /export:WavpackGetChannelLayout /export:WavpackSetFileInformation
+ /export:WavpackSetConfiguration64 /export:WavpackSetChannelLayout
+@@ -259,25 +259,25 @@
+ Speed
+ true
+ false
+- MultiThreaded
++ MultiThreadedDLL
+
+ Level3
+ ProgramDatabase
+ Default
+
+
+- /export:WavpackOpenFileInput /export:WavpackOpenFileInputEx /export:WavpackGetMode
++ /export:WavpackGetMode
+ /export:WavpackGetVersion /export:WavpackGetErrorMessage /export:WavpackUnpackSamples
+-/export:WavpackSeekSample /export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
++/export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
+ /export:WavpackGetEncodedNoise
+
+ /export:WavpackGetTagItemIndexed /export:WavpackGetBinaryTagItemIndexed /export:WavpackOpenFileOutput
+-/export:WavpackSetConfiguration /export:WavpackPackInit /export:WavpackPackSamples
++/export:WavpackPackInit /export:WavpackPackSamples
+ /export:WavpackFlushSamples /export:WavpackAddWrapper /export:WavpackStoreMD5Sum
+ /export:WavpackUpdateNumSamples /export:WavpackGetWrapperLocation
+ /export:WavpackAppendTagItem /export:WavpackAppendBinaryTagItem /export:WavpackDeleteTagItem /export:WavpackWriteTag
+-/export:WavpackGetNumSamples /export:WavpackGetSampleIndex /export:WavpackGetNumErrors
+-/export:WavpackLossyBlocks /export:WavpackGetProgress /export:WavpackGetFileSize
++/export:WavpackGetNumErrors
++/export:WavpackLossyBlocks /export:WavpackGetProgress
+ /export:WavpackGetRatio /export:WavpackGetAverageBitrate /export:WavpackGetInstantBitrate
+ /export:WavpackCloseFile /export:WavpackGetSampleRate /export:WavpackGetNumChannels
+ /export:WavpackGetChannelMask /export:WavpackGetFloatNormExp
+@@ -289,11 +289,11 @@
+ /export:WavpackLittleEndianToNative /export:WavpackNativeToLittleEndian
+ /export:WavpackGetLibraryVersion /export:WavpackGetLibraryVersionString
+
+-/export:WavpackOpenRawDecoder /export:WavpackOpenFileInputEx64
++/export:WavpackOpenFileInputEx64
+ /export:WavpackGetNumSamples64 /export:WavpackGetSampleIndex64
+ /export:WavpackSeekSample64 /export:WavpackGetFileSize64
+ /export:WavpackGetQualifyMode /export:WavpackGetFileExtension
+-/export:WavpackGetFileFormat /export:WavpackGetNumSamplesInFrame
++/export:WavpackGetFileFormat
+ /export:WavpackGetNativeSampleRate /export:WavpackGetChannelIdentities
+ /export:WavpackGetChannelLayout /export:WavpackSetFileInformation
+ /export:WavpackSetConfiguration64 /export:WavpackSetChannelLayout
+diff --git a/wavpackexe/wavpack.vcxproj b/wavpackexe/wavpack.vcxproj
+index 89d7b8f..b6939f4 100644
+--- a/wavpackexe/wavpack.vcxproj
++++ b/wavpackexe/wavpack.vcxproj
+@@ -25,19 +25,19 @@
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+
+@@ -56,7 +56,7 @@
+
+
+
+- <_ProjectFileVersion>16.0.30804.86
++ <_ProjectFileVersion>15.9.28307.1500
+
+
+ $(SolutionDir)$(Configuration)\
+diff --git a/winamp/winamp.vcxproj b/winamp/winamp.vcxproj
+index 0761d2e..0ecc44a 100644
+--- a/winamp/winamp.vcxproj
++++ b/winamp/winamp.vcxproj
+@@ -26,19 +26,19 @@
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+ DynamicLibrary
+- v142
++ v141
+
+
+
+@@ -57,7 +57,7 @@
+
+
+
+- <_ProjectFileVersion>16.0.30804.86
++ <_ProjectFileVersion>15.9.28307.1500
+
+
+ $(SolutionDir)$(Configuration)\
+diff --git a/winamp/winamp_lng/winamp_lng.vcxproj b/winamp/winamp_lng/winamp_lng.vcxproj
+index e7b87ad..aba4c94 100644
+--- a/winamp/winamp_lng/winamp_lng.vcxproj
++++ b/winamp/winamp_lng/winamp_lng.vcxproj
+@@ -26,25 +26,25 @@
+
+
+ DynamicLibrary
+- v142
++ v141
+ Unicode
+ false
+
+
+ DynamicLibrary
+- v142
++ v141
+ Unicode
+ false
+
+
+ DynamicLibrary
+- v142
++ v141
+ Unicode
+ false
+
+
+ DynamicLibrary
+- v142
++ v141
+ Unicode
+ false
+
+@@ -65,7 +65,7 @@
+
+
+
+- <_ProjectFileVersion>16.0.30804.86
++ <_ProjectFileVersion>15.9.28307.1500
+
+
+ $(SolutionDir)$(Configuration)\
+diff --git a/wvgainexe/wvgain.vcxproj b/wvgainexe/wvgain.vcxproj
+index b7331b9..a463dad 100644
+--- a/wvgainexe/wvgain.vcxproj
++++ b/wvgainexe/wvgain.vcxproj
+@@ -25,19 +25,19 @@
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+
+@@ -56,7 +56,7 @@
+
+
+
+- <_ProjectFileVersion>16.0.30804.86
++ <_ProjectFileVersion>15.9.28307.1500
+
+
+ $(SolutionDir)$(Configuration)\
+diff --git a/wvtagexe/wvtag.vcxproj b/wvtagexe/wvtag.vcxproj
+index b593ab8..20a85aa 100644
+--- a/wvtagexe/wvtag.vcxproj
++++ b/wvtagexe/wvtag.vcxproj
+@@ -26,19 +26,19 @@
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+
+@@ -57,7 +57,7 @@
+
+
+
+- <_ProjectFileVersion>16.0.30804.86
++ <_ProjectFileVersion>15.9.28307.1500
+
+
+ $(SolutionDir)$(Configuration)\
+diff --git a/wvunpackexe/wvunpack.vcxproj b/wvunpackexe/wvunpack.vcxproj
+index 599b888..794e92a 100644
+--- a/wvunpackexe/wvunpack.vcxproj
++++ b/wvunpackexe/wvunpack.vcxproj
+@@ -25,19 +25,19 @@
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+ Application
+- v142
++ v141
+
+
+
+@@ -56,7 +56,7 @@
+
+
+
+- <_ProjectFileVersion>16.0.30804.86
++ <_ProjectFileVersion>15.9.28307.1500
+
+
+ $(SolutionDir)$(Configuration)\
diff --git a/ThirdParty/submodule_WavPack_CUETools_VS2019.patch b/ThirdParty/submodule_WavPack_CUETools_VS2019.patch
new file mode 100644
index 0000000..11b6409
--- /dev/null
+++ b/ThirdParty/submodule_WavPack_CUETools_VS2019.patch
@@ -0,0 +1,338 @@
+diff --git a/src/libwavpack.vcxproj b/src/libwavpack.vcxproj
+index 3d586d6..e3299c5 100644
+--- a/src/libwavpack.vcxproj
++++ b/src/libwavpack.vcxproj
+@@ -61,29 +61,29 @@
+ <_ProjectFileVersion>16.0.30804.86
+
+
+- $(SolutionDir)$(Configuration)\
+- $(Configuration)\
++ $(SolutionDir)..\ThirdParty$(Configuration)\$(Platform)\
++ $(Platform)\$(Configuration)\
+
+
+- $(SolutionDir)$(Platform)\$(Configuration)\
++ $(SolutionDir)..\ThirdParty$(Configuration)\$(Platform)\
+ $(Platform)\$(Configuration)\
+
+
+- $(SolutionDir)$(Configuration)\
+- $(Configuration)\
++ $(SolutionDir)..\ThirdParty\$(Platform)\
++ $(Platform)\$(Configuration)\
+
+
+- $(SolutionDir)$(Platform)\$(Configuration)\
++ $(SolutionDir)..\ThirdParty\$(Platform)\
+ $(Platform)\$(Configuration)\
+
+
+
+ Disabled
+ ..\include;%(AdditionalIncludeDirectories)
+- WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;ENABLE_DSD;%(PreprocessorDefinitions)
++ WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;NO_TAGS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+- MultiThreadedDebug
++ MultiThreadedDebugDLL
+
+ Level3
+ EditAndContinue
+@@ -96,10 +96,10 @@
+
+ Disabled
+ ..\include;%(AdditionalIncludeDirectories)
+- WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;ENABLE_DSD;%(PreprocessorDefinitions)
++ WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;NO_TAGS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+- MultiThreadedDebug
++ MultiThreadedDebugDLL
+
+ Level3
+ ProgramDatabase
+@@ -113,10 +113,10 @@
+ true
+ Speed
+ true
+- WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;ENABLE_DSD;OPT_ASM_X86;%(PreprocessorDefinitions)
++ WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;NO_TAGS;OPT_ASM_X86;%(PreprocessorDefinitions)
+ true
+
+- MultiThreaded
++ MultiThreadedDLL
+ false
+ true
+ false
+@@ -142,10 +142,10 @@
+ true
+ Speed
+ true
+- WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;ENABLE_DSD;OPT_ASM_X64;%(PreprocessorDefinitions)
++ WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;NO_TAGS;OPT_ASM_X64;%(PreprocessorDefinitions)
+ true
+
+- MultiThreaded
++ MultiThreadedDLL
+ false
+ true
+ false
+@@ -172,13 +172,33 @@
+
+
+
+-
+-
+-
++
++ true
++ true
++ true
++ true
++
++
++ true
++ true
++ true
++ true
++
++
++ true
++ true
++ true
++ true
++
+
+
+
+-
++
++ true
++ true
++ true
++ true
++
+
+
+
+diff --git a/wavpackdll/wavpackdll.rc b/wavpackdll/wavpackdll.rc
+index 782c69f..4ea10a3 100644
+--- a/wavpackdll/wavpackdll.rc
++++ b/wavpackdll/wavpackdll.rc
+@@ -7,7 +7,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "afxres.h"
++#include "winres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -34,7 +34,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""afxres.h""\r\n"
++ "#include ""winres.h""\r\n"
+ "\0"
+ END
+
+diff --git a/wavpackdll/wavpackdll.vcxproj b/wavpackdll/wavpackdll.vcxproj
+index eabba53..5a77dea 100644
+--- a/wavpackdll/wavpackdll.vcxproj
++++ b/wavpackdll/wavpackdll.vcxproj
+@@ -61,22 +61,22 @@
+ <_ProjectFileVersion>16.0.30804.86
+
+
+- $(SolutionDir)$(Configuration)\
+- $(Configuration)\
++ $(SolutionDir)..\ThirdParty$(Configuration)\$(Platform)\
++ $(Platform)\$(Configuration)\
+ true
+
+
+- $(SolutionDir)$(Platform)\$(Configuration)\
++ $(SolutionDir)..\ThirdParty$(Configuration)\$(Platform)\
+ $(Platform)\$(Configuration)\
+ true
+
+
+- $(SolutionDir)$(Configuration)\
+- $(Configuration)\
++ $(SolutionDir)..\ThirdParty\$(Platform)\
++ $(Platform)\$(Configuration)\
+ false
+
+
+- $(SolutionDir)$(Platform)\$(Configuration)\
++ $(SolutionDir)..\ThirdParty\$(Platform)\
+ $(Platform)\$(Configuration)\
+ false
+
+@@ -93,18 +93,18 @@
+ Default
+
+
+- /export:WavpackOpenFileInput /export:WavpackOpenFileInputEx /export:WavpackGetMode
++ /export:WavpackGetMode
+ /export:WavpackGetVersion /export:WavpackGetErrorMessage /export:WavpackUnpackSamples
+-/export:WavpackSeekSample /export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
++/export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
+ /export:WavpackGetEncodedNoise
+
+ /export:WavpackGetTagItemIndexed /export:WavpackGetBinaryTagItemIndexed /export:WavpackOpenFileOutput
+-/export:WavpackSetConfiguration /export:WavpackPackInit /export:WavpackPackSamples
++/export:WavpackPackInit /export:WavpackPackSamples
+ /export:WavpackFlushSamples /export:WavpackAddWrapper /export:WavpackStoreMD5Sum
+ /export:WavpackUpdateNumSamples /export:WavpackGetWrapperLocation
+ /export:WavpackAppendTagItem /export:WavpackAppendBinaryTagItem /export:WavpackDeleteTagItem /export:WavpackWriteTag
+-/export:WavpackGetNumSamples /export:WavpackGetSampleIndex /export:WavpackGetNumErrors
+-/export:WavpackLossyBlocks /export:WavpackGetProgress /export:WavpackGetFileSize
++/export:WavpackGetNumErrors
++/export:WavpackLossyBlocks /export:WavpackGetProgress
+ /export:WavpackGetRatio /export:WavpackGetAverageBitrate /export:WavpackGetInstantBitrate
+ /export:WavpackCloseFile /export:WavpackGetSampleRate /export:WavpackGetNumChannels
+ /export:WavpackGetChannelMask /export:WavpackGetFloatNormExp
+@@ -116,11 +116,11 @@
+ /export:WavpackLittleEndianToNative /export:WavpackNativeToLittleEndian
+ /export:WavpackGetLibraryVersion /export:WavpackGetLibraryVersionString
+
+-/export:WavpackOpenRawDecoder /export:WavpackOpenFileInputEx64
++/export:WavpackOpenFileInputEx64
+ /export:WavpackGetNumSamples64 /export:WavpackGetSampleIndex64
+ /export:WavpackSeekSample64 /export:WavpackGetFileSize64
+ /export:WavpackGetQualifyMode /export:WavpackGetFileExtension
+-/export:WavpackGetFileFormat /export:WavpackGetNumSamplesInFrame
++/export:WavpackGetFileFormat
+ /export:WavpackGetNativeSampleRate /export:WavpackGetChannelIdentities
+ /export:WavpackGetChannelLayout /export:WavpackSetFileInformation
+ /export:WavpackSetConfiguration64 /export:WavpackSetChannelLayout
+@@ -150,16 +150,16 @@
+ Default
+
+
+- /export:WavpackOpenFileInput /export:WavpackOpenFileInputEx /export:WavpackGetMode
++ /export:WavpackGetMode
+ /export:WavpackGetVersion /export:WavpackGetErrorMessage /export:WavpackUnpackSamples
+-/export:WavpackSeekSample /export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
++/export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
+ /export:WavpackGetTagItemIndexed /export:WavpackGetBinaryTagItemIndexed /export:WavpackOpenFileOutput
+-/export:WavpackSetConfiguration /export:WavpackPackInit /export:WavpackPackSamples
++/export:WavpackPackInit /export:WavpackPackSamples
+ /export:WavpackFlushSamples /export:WavpackAddWrapper /export:WavpackStoreMD5Sum
+ /export:WavpackUpdateNumSamples /export:WavpackGetWrapperLocation
+ /export:WavpackAppendTagItem /export:WavpackAppendBinaryTagItem /export:WavpackDeleteTagItem /export:WavpackWriteTag
+-/export:WavpackGetNumSamples /export:WavpackGetSampleIndex /export:WavpackGetNumErrors
+-/export:WavpackLossyBlocks /export:WavpackGetProgress /export:WavpackGetFileSize
++/export:WavpackGetNumErrors
++/export:WavpackLossyBlocks /export:WavpackGetProgress
+ /export:WavpackGetRatio /export:WavpackGetAverageBitrate /export:WavpackGetInstantBitrate
+ /export:WavpackCloseFile /export:WavpackGetSampleRate /export:WavpackGetNumChannels
+ /export:WavpackGetChannelMask /export:WavpackGetFloatNormExp
+@@ -171,11 +171,11 @@
+ /export:WavpackLittleEndianToNative /export:WavpackNativeToLittleEndian
+ /export:WavpackGetLibraryVersion /export:WavpackGetLibraryVersionString
+
+-/export:WavpackOpenRawDecoder /export:WavpackOpenFileInputEx64
++/export:WavpackOpenFileInputEx64
+ /export:WavpackGetNumSamples64 /export:WavpackGetSampleIndex64
+ /export:WavpackSeekSample64 /export:WavpackGetFileSize64
+ /export:WavpackGetQualifyMode /export:WavpackGetFileExtension
+-/export:WavpackGetFileFormat /export:WavpackGetNumSamplesInFrame
++/export:WavpackGetFileFormat
+ /export:WavpackGetNativeSampleRate /export:WavpackGetChannelIdentities
+ /export:WavpackGetChannelLayout /export:WavpackSetFileInformation
+ /export:WavpackSetConfiguration64 /export:WavpackSetChannelLayout
+@@ -198,23 +198,23 @@
+ Speed
+ true
+ false
+- MultiThreaded
++ MultiThreadedDLL
+
+ Level3
+ ProgramDatabase
+ Default
+
+
+- /export:WavpackOpenFileInput /export:WavpackOpenFileInputEx /export:WavpackGetMode
++ /export:WavpackGetMode
+ /export:WavpackGetVersion /export:WavpackGetErrorMessage /export:WavpackUnpackSamples
+-/export:WavpackSeekSample /export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
++/export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
+ /export:WavpackGetTagItemIndexed /export:WavpackGetBinaryTagItemIndexed /export:WavpackOpenFileOutput
+-/export:WavpackSetConfiguration /export:WavpackPackInit /export:WavpackPackSamples
++/export:WavpackPackInit /export:WavpackPackSamples
+ /export:WavpackFlushSamples /export:WavpackAddWrapper /export:WavpackStoreMD5Sum
+ /export:WavpackUpdateNumSamples /export:WavpackGetWrapperLocation
+ /export:WavpackAppendTagItem /export:WavpackAppendBinaryTagItem /export:WavpackDeleteTagItem /export:WavpackWriteTag
+-/export:WavpackGetNumSamples /export:WavpackGetSampleIndex /export:WavpackGetNumErrors
+-/export:WavpackLossyBlocks /export:WavpackGetProgress /export:WavpackGetFileSize
++/export:WavpackGetNumErrors
++/export:WavpackLossyBlocks /export:WavpackGetProgress
+ /export:WavpackGetRatio /export:WavpackGetAverageBitrate /export:WavpackGetInstantBitrate
+ /export:WavpackCloseFile /export:WavpackGetSampleRate /export:WavpackGetNumChannels
+ /export:WavpackGetChannelMask /export:WavpackGetFloatNormExp
+@@ -227,11 +227,11 @@
+ /export:WavpackGetLibraryVersion /export:WavpackGetLibraryVersionString
+ /export:WavpackGetEncodedNoise
+
+-/export:WavpackOpenRawDecoder /export:WavpackOpenFileInputEx64
++/export:WavpackOpenFileInputEx64
+ /export:WavpackGetNumSamples64 /export:WavpackGetSampleIndex64
+ /export:WavpackSeekSample64 /export:WavpackGetFileSize64
+ /export:WavpackGetQualifyMode /export:WavpackGetFileExtension
+-/export:WavpackGetFileFormat /export:WavpackGetNumSamplesInFrame
++/export:WavpackGetFileFormat
+ /export:WavpackGetNativeSampleRate /export:WavpackGetChannelIdentities
+ /export:WavpackGetChannelLayout /export:WavpackSetFileInformation
+ /export:WavpackSetConfiguration64 /export:WavpackSetChannelLayout
+@@ -259,25 +259,25 @@
+ Speed
+ true
+ false
+- MultiThreaded
++ MultiThreadedDLL
+
+ Level3
+ ProgramDatabase
+ Default
+
+
+- /export:WavpackOpenFileInput /export:WavpackOpenFileInputEx /export:WavpackGetMode
++ /export:WavpackGetMode
+ /export:WavpackGetVersion /export:WavpackGetErrorMessage /export:WavpackUnpackSamples
+-/export:WavpackSeekSample /export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
++/export:WavpackGetNumTagItems /export:WavpackGetNumBinaryTagItems /export:WavpackGetTagItem /export:WavpackGetBinaryTagItem
+ /export:WavpackGetEncodedNoise
+
+ /export:WavpackGetTagItemIndexed /export:WavpackGetBinaryTagItemIndexed /export:WavpackOpenFileOutput
+-/export:WavpackSetConfiguration /export:WavpackPackInit /export:WavpackPackSamples
++/export:WavpackPackInit /export:WavpackPackSamples
+ /export:WavpackFlushSamples /export:WavpackAddWrapper /export:WavpackStoreMD5Sum
+ /export:WavpackUpdateNumSamples /export:WavpackGetWrapperLocation
+ /export:WavpackAppendTagItem /export:WavpackAppendBinaryTagItem /export:WavpackDeleteTagItem /export:WavpackWriteTag
+-/export:WavpackGetNumSamples /export:WavpackGetSampleIndex /export:WavpackGetNumErrors
+-/export:WavpackLossyBlocks /export:WavpackGetProgress /export:WavpackGetFileSize
++/export:WavpackGetNumErrors
++/export:WavpackLossyBlocks /export:WavpackGetProgress
+ /export:WavpackGetRatio /export:WavpackGetAverageBitrate /export:WavpackGetInstantBitrate
+ /export:WavpackCloseFile /export:WavpackGetSampleRate /export:WavpackGetNumChannels
+ /export:WavpackGetChannelMask /export:WavpackGetFloatNormExp
+@@ -289,11 +289,11 @@
+ /export:WavpackLittleEndianToNative /export:WavpackNativeToLittleEndian
+ /export:WavpackGetLibraryVersion /export:WavpackGetLibraryVersionString
+
+-/export:WavpackOpenRawDecoder /export:WavpackOpenFileInputEx64
++/export:WavpackOpenFileInputEx64
+ /export:WavpackGetNumSamples64 /export:WavpackGetSampleIndex64
+ /export:WavpackSeekSample64 /export:WavpackGetFileSize64
+ /export:WavpackGetQualifyMode /export:WavpackGetFileExtension
+-/export:WavpackGetFileFormat /export:WavpackGetNumSamplesInFrame
++/export:WavpackGetFileFormat
+ /export:WavpackGetNativeSampleRate /export:WavpackGetChannelIdentities
+ /export:WavpackGetChannelLayout /export:WavpackSetFileInformation
+ /export:WavpackSetConfiguration64 /export:WavpackSetChannelLayout