You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(10) |
Sep
|
Oct
|
Nov
|
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(1) |
Feb
(2) |
Mar
(3) |
Apr
(2) |
May
(10) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2008 |
Jan
(6) |
Feb
(4) |
Mar
(5) |
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(4) |
Aug
(6) |
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(4) |
2009 |
Jan
(9) |
Feb
(2) |
Mar
(2) |
Apr
(2) |
May
(6) |
Jun
(18) |
Jul
(33) |
Aug
(39) |
Sep
(33) |
Oct
(24) |
Nov
(23) |
Dec
(22) |
2010 |
Jan
(29) |
Feb
(32) |
Mar
(51) |
Apr
(17) |
May
(31) |
Jun
(21) |
Jul
(32) |
Aug
(28) |
Sep
(35) |
Oct
(27) |
Nov
(11) |
Dec
(13) |
2011 |
Jan
(14) |
Feb
(13) |
Mar
(27) |
Apr
(27) |
May
(28) |
Jun
(20) |
Jul
(43) |
Aug
(52) |
Sep
(66) |
Oct
(61) |
Nov
(11) |
Dec
(8) |
2012 |
Jan
(20) |
Feb
(30) |
Mar
(38) |
Apr
(21) |
May
(33) |
Jun
(21) |
Jul
(25) |
Aug
(9) |
Sep
(24) |
Oct
(42) |
Nov
(27) |
Dec
(41) |
2013 |
Jan
(20) |
Feb
(35) |
Mar
(156) |
Apr
(298) |
May
(258) |
Jun
(201) |
Jul
(105) |
Aug
(60) |
Sep
(193) |
Oct
(245) |
Nov
(280) |
Dec
(194) |
2014 |
Jan
(63) |
Feb
(202) |
Mar
(200) |
Apr
(23) |
May
(53) |
Jun
(105) |
Jul
(18) |
Aug
(26) |
Sep
(110) |
Oct
(187) |
Nov
(97) |
Dec
(74) |
2015 |
Jan
(45) |
Feb
(55) |
Mar
(116) |
Apr
(116) |
May
(193) |
Jun
(164) |
Jul
(50) |
Aug
(111) |
Sep
(98) |
Oct
(71) |
Nov
(103) |
Dec
(63) |
2016 |
Jan
(33) |
Feb
(101) |
Mar
(182) |
Apr
(139) |
May
(140) |
Jun
(103) |
Jul
(165) |
Aug
(286) |
Sep
(208) |
Oct
(127) |
Nov
(97) |
Dec
(54) |
2017 |
Jan
(64) |
Feb
(335) |
Mar
(202) |
Apr
(212) |
May
(139) |
Jun
(127) |
Jul
(294) |
Aug
(154) |
Sep
(170) |
Oct
(152) |
Nov
(156) |
Dec
(62) |
2018 |
Jan
(168) |
Feb
(237) |
Mar
(196) |
Apr
(174) |
May
(174) |
Jun
(161) |
Jul
(127) |
Aug
(88) |
Sep
(149) |
Oct
(66) |
Nov
(52) |
Dec
(135) |
2019 |
Jan
(146) |
Feb
(126) |
Mar
(104) |
Apr
(58) |
May
(60) |
Jun
(28) |
Jul
(197) |
Aug
(129) |
Sep
(141) |
Oct
(148) |
Nov
(63) |
Dec
(100) |
2020 |
Jan
(74) |
Feb
(37) |
Mar
(59) |
Apr
(154) |
May
(194) |
Jun
(133) |
Jul
(313) |
Aug
(197) |
Sep
(49) |
Oct
(162) |
Nov
(143) |
Dec
(57) |
2021 |
Jan
(120) |
Feb
(107) |
Mar
(314) |
Apr
(157) |
May
(524) |
Jun
(169) |
Jul
(72) |
Aug
(133) |
Sep
(135) |
Oct
(146) |
Nov
(198) |
Dec
(325) |
2022 |
Jan
(409) |
Feb
(249) |
Mar
(138) |
Apr
(95) |
May
(102) |
Jun
(221) |
Jul
(66) |
Aug
(120) |
Sep
(192) |
Oct
(131) |
Nov
(53) |
Dec
(171) |
2023 |
Jan
(357) |
Feb
(82) |
Mar
(168) |
Apr
(218) |
May
(196) |
Jun
(86) |
Jul
(115) |
Aug
(49) |
Sep
(190) |
Oct
(102) |
Nov
(45) |
Dec
(76) |
2024 |
Jan
(86) |
Feb
(50) |
Mar
(324) |
Apr
(209) |
May
(197) |
Jun
(232) |
Jul
(194) |
Aug
(247) |
Sep
(219) |
Oct
(266) |
Nov
(328) |
Dec
(304) |
2025 |
Jan
(191) |
Feb
(115) |
Mar
(137) |
Apr
(32) |
May
(126) |
Jun
(403) |
Jul
(213) |
Aug
(184) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@op...> - 2024-05-10 19:11:49
|
Author: sagamusix Date: Fri May 10 21:11:37 2024 New Revision: 20755 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20755 Log: [Imp] Speed up fuzzing by using persistent mode and shared memory file input. Note: afl++ will report a stability of about 99.x%. According to its debug output, the unstable edges are in WavesReverb and I3DL2Reverb implementations, however the unstable edges that it finds don't make any sense. As a tiny bit of instability in these parts of the code should not hurt overall code coverage, we trade this for the significant gains in speed that persistent mode gives us. Added: trunk/OpenMPT/contrib/fuzzing/fuzz.cpp - copied, changed from r20754, trunk/OpenMPT/contrib/fuzzing/fuzz.c Deleted: trunk/OpenMPT/contrib/fuzzing/fuzz.c Modified: trunk/OpenMPT/Makefile Modified: trunk/OpenMPT/Makefile ============================================================================== --- trunk/OpenMPT/Makefile Fri May 10 16:13:47 2024 (r20754) +++ trunk/OpenMPT/Makefile Fri May 10 21:11:37 2024 (r20755) @@ -2093,10 +2093,10 @@ endif endif -contrib/fuzzing/fuzz$(FLAVOUR_O).o: contrib/fuzzing/fuzz.c - $(INFO) [CC] $< - $(VERYSILENT)$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -M -MT$@ $< > $*$(FLAVOUR_O).d - $(SILENT)$(COMPILE.c) $(OUTPUT_OPTION) $< +contrib/fuzzing/fuzz$(FLAVOUR_O).o: contrib/fuzzing/fuzz.cpp + $(INFO) [CXX] $< + $(VERYSILENT)$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -M -MT$@ $< > $*$(FLAVOUR_O).d + $(SILENT)$(COMPILE.cc) $(OUTPUT_OPTION) $< bin/$(FLAVOUR_DIR)fuzz$(EXESUFFIX): contrib/fuzzing/fuzz$(FLAVOUR_O).o $(OBJECTS_LIBOPENMPT) $(OUTPUT_LIBOPENMPT) $(INFO) [LD] $@ $(SILENT)$(LINK.cc) $(LDFLAGS_LIBOPENMPT) contrib/fuzzing/fuzz$(FLAVOUR_O).o $(OBJECTS_LIBOPENMPT) $(LOADLIBES) $(LDLIBS) $(LDLIBS_LIBOPENMPT) -o $@ Copied and modified: trunk/OpenMPT/contrib/fuzzing/fuzz.cpp (from r20754, trunk/OpenMPT/contrib/fuzzing/fuzz.c) ============================================================================== --- trunk/OpenMPT/contrib/fuzzing/fuzz.c Fri May 10 16:13:47 2024 (r20754, copy source) +++ trunk/OpenMPT/contrib/fuzzing/fuzz.cpp Fri May 10 21:11:37 2024 (r20755) @@ -1,24 +1,22 @@ /* - * fuzz.c - * ------ + * fuzz.cpp + * -------- * Purpose: Tiny libopenmpt user to be used by fuzzing tools * Notes : (currently none) * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. */ -#include <memory.h> -#include <stdint.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <time.h> +#include <memory> +#include <cstdint> +#include <cstdlib> -#include <errno.h> +#include <cerrno> #include <unistd.h> #include <libopenmpt/libopenmpt.h> -#include <libopenmpt/libopenmpt_stream_callbacks_file.h> + +#include "../../common/mptRandom.h" #define BUFFERSIZE 450 // shouldn't match OpenMPT's internal mix buffer size (512) #define SAMPLERATE 22050 @@ -39,43 +37,52 @@ case OPENMPT_ERROR_RANGE: case OPENMPT_ERROR_RUNTIME: case OPENMPT_ERROR_EXCEPTION: - abort(); + std::abort(); default: return OPENMPT_ERROR_FUNC_RESULT_NONE; } } +__AFL_FUZZ_INIT(); + int main( int argc, char * argv[] ) { (void)argc; + (void)argv; + openmpt_module_create_from_memory2( buffer, BUFFERSIZE, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr ); #ifdef __AFL_HAVE_MANUAL_CONTROL __AFL_INIT(); #endif - FILE * file = fopen( argv[1], "rb" ); - openmpt_module * mod = openmpt_module_create2( openmpt_stream_get_file_callbacks(), file, NULL, NULL, ErrFunc, NULL, NULL, NULL, NULL ); - fclose( file ); - if ( mod == NULL ) - return 1; - - // verify API contract : If the file can be loaded, header probing must be successful too. - if ( openmpt_probe_file_header_from_stream( OPENMPT_PROBE_FILE_HEADER_FLAGS_DEFAULT, openmpt_stream_get_file_callbacks(), file, NULL, NULL, ErrFunc, NULL, NULL, NULL ) == OPENMPT_PROBE_FILE_HEADER_RESULT_FAILURE ) - abort(); - - openmpt_module_ctl_set( mod, "render.resampler.emulate_amiga", (openmpt_module_get_num_orders( mod ) & 1) ? "0" : "1" ); - // render about a second of the module for fuzzing the actual mix routines - for(int i = 0; i < 50; i++) { - size_t count = openmpt_module_read_mono( mod, SAMPLERATE, BUFFERSIZE, buffer ); - if ( count == 0 ) { - break; + + unsigned char *fileBuffer = __AFL_FUZZ_TESTCASE_BUF; // must be after __AFL_INIT and before __AFL_LOOP! + + while (__AFL_LOOP(10000)) { + int fileSize = __AFL_FUZZ_TESTCASE_LEN; + OpenMPT::mpt::reinit_global_random(); + openmpt_module * mod = openmpt_module_create_from_memory2( fileBuffer, fileSize, nullptr, nullptr, ErrFunc, nullptr, nullptr, nullptr, nullptr); + if ( mod == NULL ) + return 1; + + // verify API contract: If the file can be loaded, header probing must be successful too. + if ( openmpt_probe_file_header( OPENMPT_PROBE_FILE_HEADER_FLAGS_DEFAULT, fileBuffer, fileSize, fileSize, nullptr, nullptr, ErrFunc, nullptr, nullptr, nullptr ) == OPENMPT_PROBE_FILE_HEADER_RESULT_FAILURE ) + std::abort(); + + openmpt_module_ctl_set( mod, "render.resampler.emulate_amiga", (openmpt_module_get_num_orders( mod ) & 1) ? "0" : "1" ); + // render about a second of the module for fuzzing the actual mix routines + for(int i = 0; i < 50; i++) { + size_t count = openmpt_module_read_mono( mod, SAMPLERATE, BUFFERSIZE, buffer ); + if ( count == 0 ) { + break; + } } + openmpt_module_set_position_seconds( mod, 1.0 ); + openmpt_module_read_mono( mod, SAMPLERATE, BUFFERSIZE, buffer ); + openmpt_module_set_position_order_row( mod, 3, 16 ); + openmpt_module_read_mono( mod, SAMPLERATE, BUFFERSIZE, buffer ); + + // fuzz string-related stuff + openmpt_free_string ( openmpt_module_get_metadata( mod, "date" ) ); + openmpt_free_string ( openmpt_module_get_metadata( mod, "message" ) ); + openmpt_module_destroy( mod ); } - openmpt_module_set_position_seconds( mod, 1.0 ); - openmpt_module_read_mono( mod, SAMPLERATE, BUFFERSIZE, buffer ); - openmpt_module_set_position_order_row( mod, 3, 16 ); - openmpt_module_read_mono( mod, SAMPLERATE, BUFFERSIZE, buffer ); - - // fuzz string-related stuff - openmpt_free_string ( openmpt_module_get_metadata( mod, "date" ) ); - openmpt_free_string ( openmpt_module_get_metadata( mod, "message" ) ); - openmpt_module_destroy( mod ); return 0; } |
From: <sv...@op...> - 2024-05-10 14:13:59
|
Author: manx Date: Fri May 10 16:13:47 2024 New Revision: 20754 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20754 Log: Merged revision(s) 20753 from trunk/OpenMPT: [Var] Run clang-format. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/src/mpt/arch/x86_amd64.hpp Modified: branches/OpenMPT-1.31/src/mpt/arch/x86_amd64.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/arch/x86_amd64.hpp Fri May 10 16:13:16 2024 (r20753) +++ branches/OpenMPT-1.31/src/mpt/arch/x86_amd64.hpp Fri May 10 16:13:47 2024 (r20754) @@ -748,7 +748,7 @@ result.d = CPUInfo[3]; return result; -#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13,0,0) +#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13, 0, 0) // <https://reviews.llvm.org/D101338> cpuid_result result; @@ -762,7 +762,7 @@ result.c = regecx; result.d = regedx; return result; - + #elif MPT_COMPILER_CLANG && MPT_ARCH_AMD64 // <https://reviews.llvm.org/D101338> @@ -824,7 +824,7 @@ result.d = CPUInfo[3]; return result; -#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13,0,0) +#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13, 0, 0) // <https://reviews.llvm.org/D101338> cpuid_result result; |
From: <sv...@op...> - 2024-05-10 14:13:23
|
Author: manx Date: Fri May 10 16:13:16 2024 New Revision: 20753 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20753 Log: [Var] Run clang-format. Modified: trunk/OpenMPT/src/mpt/arch/x86_amd64.hpp Modified: trunk/OpenMPT/src/mpt/arch/x86_amd64.hpp ============================================================================== --- trunk/OpenMPT/src/mpt/arch/x86_amd64.hpp Fri May 10 16:00:14 2024 (r20752) +++ trunk/OpenMPT/src/mpt/arch/x86_amd64.hpp Fri May 10 16:13:16 2024 (r20753) @@ -748,7 +748,7 @@ result.d = CPUInfo[3]; return result; -#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13,0,0) +#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13, 0, 0) // <https://reviews.llvm.org/D101338> cpuid_result result; @@ -762,7 +762,7 @@ result.c = regecx; result.d = regedx; return result; - + #elif MPT_COMPILER_CLANG && MPT_ARCH_AMD64 // <https://reviews.llvm.org/D101338> @@ -824,7 +824,7 @@ result.d = CPUInfo[3]; return result; -#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13,0,0) +#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13, 0, 0) // <https://reviews.llvm.org/D101338> cpuid_result result; |
From: <sv...@op...> - 2024-05-10 14:00:26
|
Author: manx Date: Fri May 10 16:00:14 2024 New Revision: 20752 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20752 Log: Merged revision(s) 20751 from trunk/OpenMPT: [Fix] mpt/arch/x86_amd64.hpp: Work-around <https://reviews.llvm.org/D101338>, which affects Clang < 13.0 on AMD64. It misses saving RBX across CPUID. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/src/mpt/arch/x86_amd64.hpp Modified: branches/OpenMPT-1.31/src/mpt/arch/x86_amd64.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/arch/x86_amd64.hpp Fri May 10 15:59:45 2024 (r20751) +++ branches/OpenMPT-1.31/src/mpt/arch/x86_amd64.hpp Fri May 10 16:00:14 2024 (r20752) @@ -748,7 +748,8 @@ result.d = CPUInfo[3]; return result; -#elif MPT_COMPILER_GCC || MPT_COMPILER_CLANG +#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13,0,0) + // <https://reviews.llvm.org/D101338> cpuid_result result; unsigned int regeax{}; @@ -761,6 +762,28 @@ result.c = regecx; result.d = regedx; return result; + +#elif MPT_COMPILER_CLANG && MPT_ARCH_AMD64 + // <https://reviews.llvm.org/D101338> + + cpuid_result result; + unsigned int a{}; + unsigned int b{}; + unsigned int c{}; + unsigned int d{}; + // clang-format off + __asm__ __volatile__ ( + "xchgq %%rbx,%q1 \n\t" + "cpuid \n\t" + "xchgq %%rbx,%q1 \n\t" + : "=a" (a), "=r" (b), "=c" (c), "=d" (d) + : "0" (function)); + // clang-format on + result.a = a; + result.b = b; + result.c = c; + result.d = d; + return result; #elif 0 @@ -801,7 +824,8 @@ result.d = CPUInfo[3]; return result; -#elif MPT_COMPILER_GCC || MPT_COMPILER_CLANG +#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13,0,0) + // <https://reviews.llvm.org/D101338> cpuid_result result; unsigned int regeax{}; @@ -815,6 +839,28 @@ result.d = regedx; return result; +#elif MPT_COMPILER_CLANG && MPT_ARCH_AMD64 + // <https://reviews.llvm.org/D101338> + + cpuid_result result; + unsigned int a{}; + unsigned int b{}; + unsigned int c{}; + unsigned int d{}; + // clang-format off + __asm__ __volatile__ ( + "xchgq %%rbx,%q1 \n\t" + "cpuid \n\t" + "xchgq %%rbx,%q1 \n\t" + : "=a" (a), "=r" (b), "=c" (c), "=d" (d) + : "0" (function_a), "2" (function_c)); + // clang-format on + result.a = a; + result.b = b; + result.c = c; + result.d = d; + return result; + #elif 0 cpuid_result result; |
From: <sv...@op...> - 2024-05-10 13:59:56
|
Author: manx Date: Fri May 10 15:59:45 2024 New Revision: 20751 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20751 Log: [Fix] mpt/arch/x86_amd64.hpp: Work-around <https://reviews.llvm.org/D101338>, which affects Clang < 13.0 on AMD64. It misses saving RBX across CPUID. Modified: trunk/OpenMPT/src/mpt/arch/x86_amd64.hpp Modified: trunk/OpenMPT/src/mpt/arch/x86_amd64.hpp ============================================================================== --- trunk/OpenMPT/src/mpt/arch/x86_amd64.hpp Fri May 10 15:39:12 2024 (r20750) +++ trunk/OpenMPT/src/mpt/arch/x86_amd64.hpp Fri May 10 15:59:45 2024 (r20751) @@ -748,7 +748,8 @@ result.d = CPUInfo[3]; return result; -#elif MPT_COMPILER_GCC || MPT_COMPILER_CLANG +#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13,0,0) + // <https://reviews.llvm.org/D101338> cpuid_result result; unsigned int regeax{}; @@ -761,6 +762,28 @@ result.c = regecx; result.d = regedx; return result; + +#elif MPT_COMPILER_CLANG && MPT_ARCH_AMD64 + // <https://reviews.llvm.org/D101338> + + cpuid_result result; + unsigned int a{}; + unsigned int b{}; + unsigned int c{}; + unsigned int d{}; + // clang-format off + __asm__ __volatile__ ( + "xchgq %%rbx,%q1 \n\t" + "cpuid \n\t" + "xchgq %%rbx,%q1 \n\t" + : "=a" (a), "=r" (b), "=c" (c), "=d" (d) + : "0" (function)); + // clang-format on + result.a = a; + result.b = b; + result.c = c; + result.d = d; + return result; #elif 0 @@ -801,7 +824,8 @@ result.d = CPUInfo[3]; return result; -#elif MPT_COMPILER_GCC || MPT_COMPILER_CLANG +#elif MPT_COMPILER_GCC || (MPT_COMPILER_CLANG && !MPT_ARCH_AMD64) || MPT_CLANG_AT_LEAST(13,0,0) + // <https://reviews.llvm.org/D101338> cpuid_result result; unsigned int regeax{}; @@ -815,6 +839,28 @@ result.d = regedx; return result; +#elif MPT_COMPILER_CLANG && MPT_ARCH_AMD64 + // <https://reviews.llvm.org/D101338> + + cpuid_result result; + unsigned int a{}; + unsigned int b{}; + unsigned int c{}; + unsigned int d{}; + // clang-format off + __asm__ __volatile__ ( + "xchgq %%rbx,%q1 \n\t" + "cpuid \n\t" + "xchgq %%rbx,%q1 \n\t" + : "=a" (a), "=r" (b), "=c" (c), "=d" (d) + : "0" (function_a), "2" (function_c)); + // clang-format on + result.a = a; + result.b = b; + result.c = c; + result.d = d; + return result; + #elif 0 cpuid_result result; |
From: <sv...@op...> - 2024-05-10 13:39:24
|
Author: manx Date: Fri May 10 15:39:12 2024 New Revision: 20750 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20750 Log: [Imp] mptRandom: Add reinit_global_random() function for fuzzer builds to allow deterministic consecutive fuzzer runs in the same process. Modified: trunk/OpenMPT/common/mptRandom.cpp trunk/OpenMPT/common/mptRandom.h Modified: trunk/OpenMPT/common/mptRandom.cpp ============================================================================== --- trunk/OpenMPT/common/mptRandom.cpp Fri May 10 15:32:21 2024 (r20749) +++ trunk/OpenMPT/common/mptRandom.cpp Fri May 10 15:39:12 2024 (r20750) @@ -69,6 +69,16 @@ return g_global_prng; } +#ifdef MPT_BUILD_FUZZER +void reinit_global_random() +{ + global_prng().~thread_safe_prng<mpt::default_prng>(); + global_random_device().~random_device(); + new(&global_random_device()) mpt::random_device{}; + new(&global_prng()) thread_safe_prng<mpt::default_prng>{global_random_device()}; +} +#endif // MPT_BUILD_FUZZER + #endif // MODPLUG_TRACKER && !MPT_BUILD_WINESUPPORT } // namespace mpt Modified: trunk/OpenMPT/common/mptRandom.h ============================================================================== --- trunk/OpenMPT/common/mptRandom.h Fri May 10 15:32:21 2024 (r20749) +++ trunk/OpenMPT/common/mptRandom.h Fri May 10 15:39:12 2024 (r20750) @@ -128,6 +128,10 @@ mpt::random_device & global_random_device(); mpt::thread_safe_prng<mpt::default_prng> & global_prng(); +#ifdef MPT_BUILD_FUZZER +void reinit_global_random(); +#endif // MPT_BUILD_FUZZER + #if defined(MODPLUG_TRACKER) && !defined(MPT_BUILD_WINESUPPORT) void set_global_random_device(mpt::random_device *rd); void set_global_prng(mpt::thread_safe_prng<mpt::default_prng> *rng); |
From: <sv...@op...> - 2024-05-10 13:32:33
|
Author: sagamusix Date: Fri May 10 15:32:21 2024 New Revision: 20749 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20749 Log: [Mod] Reduce static variable usage in fuzzer program to eventually allow using __AFL_LOOP. Modified: trunk/OpenMPT/contrib/fuzzing/fuzz.c Modified: trunk/OpenMPT/contrib/fuzzing/fuzz.c ============================================================================== --- trunk/OpenMPT/contrib/fuzzing/fuzz.c Fri May 10 14:33:30 2024 (r20748) +++ trunk/OpenMPT/contrib/fuzzing/fuzz.c Fri May 10 15:32:21 2024 (r20749) @@ -46,16 +46,12 @@ } int main( int argc, char * argv[] ) { - static FILE * file = NULL; - static openmpt_module * mod = NULL; - static size_t count = 0; - static int i = 0; (void)argc; #ifdef __AFL_HAVE_MANUAL_CONTROL __AFL_INIT(); #endif - file = fopen( argv[1], "rb" ); - mod = openmpt_module_create2( openmpt_stream_get_file_callbacks(), file, NULL, NULL, ErrFunc, NULL, NULL, NULL, NULL ); + FILE * file = fopen( argv[1], "rb" ); + openmpt_module * mod = openmpt_module_create2( openmpt_stream_get_file_callbacks(), file, NULL, NULL, ErrFunc, NULL, NULL, NULL, NULL ); fclose( file ); if ( mod == NULL ) return 1; @@ -66,8 +62,8 @@ openmpt_module_ctl_set( mod, "render.resampler.emulate_amiga", (openmpt_module_get_num_orders( mod ) & 1) ? "0" : "1" ); // render about a second of the module for fuzzing the actual mix routines - for(; i < 50; i++) { - count = openmpt_module_read_mono( mod, SAMPLERATE, BUFFERSIZE, buffer ); + for(int i = 0; i < 50; i++) { + size_t count = openmpt_module_read_mono( mod, SAMPLERATE, BUFFERSIZE, buffer ); if ( count == 0 ) { break; } |
From: <sv...@op...> - 2024-05-10 12:33:39
|
Author: sagamusix Date: Fri May 10 14:33:30 2024 New Revision: 20748 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20748 Log: [Var] XM: Document more cases of unusal instrument header sizes. Modified: trunk/OpenMPT/soundlib/Load_xm.cpp Modified: trunk/OpenMPT/soundlib/Load_xm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_xm.cpp Thu May 9 23:59:39 2024 (r20747) +++ trunk/OpenMPT/soundlib/Load_xm.cpp Fri May 10 14:33:30 2024 (r20748) @@ -761,6 +761,10 @@ else if(madeWith[verFT2Clone | verFT2Generic] && instrHeader.size != 33) { // Sure isn't FT2. + // 4-mat's eternity.xm has an empty instruments with a header size of 29. + // Another module using that size is funky_dumbass.xm. Mysterious! + // Note: This may happen when the XM Commenter by Aka (XMC.EXE) adds empty instruments at the end of the list, + // which would explain the latter case, but in eternity.xm the empty slots are not at the end of the list. madeWith = verUnknown; } if(instrHeader.size != 33) @@ -772,8 +776,6 @@ // Note: FT2 NORMALLY writes sampleHeaderSize=40 for all samples, but for any instruments before the first // instrument that has numSamples != 0, sampleHeaderSize will be uninitialized. It will always be the same // value, though. - // Note: 4-mat's eternity.xm has an instrument header size of 29 (without the previously described condition). - // Another module with that size is funky_dumbass.xm. Mysterious! if(instrumentWithSamplesEncountered || (lastSampleHeaderSize != -1 && instrHeader.sampleHeaderSize != lastSampleHeaderSize)) madeWith = verPlayerPRO | verConfirmed; lastSampleHeaderSize = instrHeader.sampleHeaderSize; @@ -794,6 +796,7 @@ { // FT2 writes some random junk for the instrument type field, // but it's always the SAME junk for every instrument saved. + // Note: This may happen when running an FT2-made XM through PutInst and adding new instrument slots. madeWith.reset(verFT2Generic); madeWith.set(verFT2Clone); } |
From: <sv...@op...> - 2024-05-09 21:59:47
|
Author: sagamusix Date: Thu May 9 23:59:39 2024 New Revision: 20747 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20747 Log: [Imp] XM: Improve detection of MPT-made files, and tell them apart from files created with PlayerPRO. Modified: trunk/OpenMPT/soundlib/Load_xm.cpp Modified: trunk/OpenMPT/soundlib/Load_xm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_xm.cpp Thu May 9 19:41:22 2024 (r20746) +++ trunk/OpenMPT/soundlib/Load_xm.cpp Thu May 9 23:59:39 2024 (r20747) @@ -368,9 +368,10 @@ verFT2Generic = 0x20, // "FastTracker v2.00", but FastTracker has NOT been ruled out verOther = 0x40, // Something we don't know, testing for DigiTrakker. verFT2Clone = 0x80, // NOT FT2: itype changed between instruments, or \0 found in song title - verDigiTrakker = 0x100, // Probably DigiTrakker - verUNMO3 = 0x200, // TODO: UNMO3-ed XMs are detected as MPT 1.16 - verEmptyOrders = 0x400, // Allow empty order list like in OpenMPT (FT2 just plays pattern 0 if the order list is empty according to the header) + verPlayerPRO = 0x100, // Could be PlayerPRO + verDigiTrakker = 0x200, // Probably DigiTrakker + verUNMO3 = 0x400, // TODO: UNMO3-ed XMs are detected as MPT 1.16 + verEmptyOrders = 0x800, // Allow empty order list like in OpenMPT (FT2 just plays pattern 0 if the order list is empty according to the header) }; DECLARE_FLAGSET(TrackerVersions) @@ -605,13 +606,30 @@ if(!memcmp(fileHeader.trackerName, "FastTracker v2.00 ", 20) && fileHeader.size == 276) { + const std::string_view songName{fileHeader.songName, sizeof(fileHeader.songName)}; if(fileHeader.version < 0x0104) + { madeWith = verFT2Generic | verConfirmed; - else if(memchr(fileHeader.songName, '\0', 20) != nullptr) + } else if(const auto firstNull = songName.find('\0'); firstNull != std::string_view::npos) + { // FT2 pads the song title with spaces, some other trackers use null chars - madeWith = verFT2Clone | verNewModPlug | verEmptyOrders; - else - madeWith = verFT2Generic | verNewModPlug; + // PlayerPRO filles the remaining buffer after the null terminator with space characters. + // PlayerPRO does not support song restart position. + if(fileHeader.restartPos) + madeWith = verFT2Clone | verNewModPlug | verEmptyOrders; + else if(firstNull == songName.size() - 1) + madeWith = verFT2Clone | verNewModPlug | verPlayerPRO | verEmptyOrders; + else if(songName.find_first_not_of(' ', firstNull + 1) == std::string_view::npos) + madeWith = verPlayerPRO | verConfirmed; + else + madeWith = verFT2Clone | verNewModPlug | verEmptyOrders; + } else + { + if(fileHeader.restartPos) + madeWith = verFT2Generic | verNewModPlug; + else + madeWith = verFT2Generic | verNewModPlug | verPlayerPRO; + } } else if(!memcmp(fileHeader.trackerName, "FastTracker v 2.00 ", 20)) { // MPT 1.0 (exact version to be determined later) @@ -672,10 +690,8 @@ m_SongFlags.reset(); m_SongFlags.set(SONG_LINEARSLIDES, (fileHeader.flags & XMFileHeader::linearSlides) != 0); m_SongFlags.set(SONG_EXFILTERRANGE, (fileHeader.flags & XMFileHeader::extendedFilterRange) != 0); - if(m_SongFlags[SONG_EXFILTERRANGE] && madeWith == (verFT2Generic | verNewModPlug)) - { - madeWith = verFT2Clone | verNewModPlug | verConfirmed; - } + if(m_SongFlags[SONG_EXFILTERRANGE] && madeWith[verNewModPlug]) + madeWith = verFT2Clone | verNewModPlug | verConfirmed | verEmptyOrders; ReadOrderFromFile<uint8>(Order(), file, fileHeader.orders); if(fileHeader.orders == 0 && !madeWith[verEmptyOrders]) @@ -695,9 +711,11 @@ // In case of XM versions < 1.04, we need to memorize the sample flags for all samples, as they are not stored immediately after the sample headers. std::vector<SampleIO> sampleFlags; uint8 sampleReserved = 0; - int instrType = -1; + int16 lastInstrType = -1, lastSampleReserved = -1; + int64 lastSampleHeaderSize = -1; bool unsupportedSamples = false; bool anyADPCM = false; + bool instrumentWithSamplesEncountered = false; // Reading instruments for(INSTRUMENTINDEX instr = 1; instr <= m_nInstruments; instr++) @@ -743,11 +761,23 @@ else if(madeWith[verFT2Clone | verFT2Generic] && instrHeader.size != 33) { // Sure isn't FT2. - // Note: FT2 NORMALLY writes shdr=40 for all samples, but sometimes it - // just happens to write random garbage there instead. Surprise! - // Note: 4-mat's eternity.xm has an instrument header size of 29. madeWith = verUnknown; } + if(instrHeader.size != 33) + { + madeWith.reset(verPlayerPRO); + } else if(instrHeader.sampleHeaderSize > sizeof(XMSample) && madeWith[verPlayerPRO]) + { + // Older PlayerPRO versions appear to write garbage in the sampleHeaderSize field, and it's different for each sample. + // Note: FT2 NORMALLY writes sampleHeaderSize=40 for all samples, but for any instruments before the first + // instrument that has numSamples != 0, sampleHeaderSize will be uninitialized. It will always be the same + // value, though. + // Note: 4-mat's eternity.xm has an instrument header size of 29 (without the previously described condition). + // Another module with that size is funky_dumbass.xm. Mysterious! + if(instrumentWithSamplesEncountered || (lastSampleHeaderSize != -1 && instrHeader.sampleHeaderSize != lastSampleHeaderSize)) + madeWith = verPlayerPRO | verConfirmed; + lastSampleHeaderSize = instrHeader.sampleHeaderSize; + } } if(AllocateInstrument(instr) == nullptr) @@ -757,10 +787,10 @@ instrHeader.ConvertToMPT(*Instruments[instr]); - if(instrType == -1) + if(lastInstrType == -1) { - instrType = instrHeader.type; - } else if(instrType != instrHeader.type && madeWith[verFT2Generic]) + lastInstrType = instrHeader.type; + } else if(lastInstrType != instrHeader.type && madeWith[verFT2Generic]) { // FT2 writes some random junk for the instrument type field, // but it's always the SAME junk for every instrument saved. @@ -770,11 +800,24 @@ if(instrHeader.numSamples > 0) { + instrumentWithSamplesEncountered = true; + // Yep, there are some samples associated with this instrument. + + // If MIDI settings are present, this is definitely not an old MPT or PlayerPRO. if((instrHeader.instrument.midiEnabled | instrHeader.instrument.midiChannel | instrHeader.instrument.midiProgram | instrHeader.instrument.muteComputer) != 0) - { - // Definitely not an old MPT. - madeWith.reset(verOldModPlug | verNewModPlug); + madeWith.reset(verOldModPlug | verNewModPlug | verPlayerPRO); + if(instrHeader.size != 263 || instrHeader.type != 0) + madeWith.reset(verPlayerPRO); + if(!madeWith[verConfirmed] && madeWith[verPlayerPRO]) + { + // Note: Earlier (?) PlayerPRO versions do not seem to set the loop points to 0xFF (george_megas_-_q.xm) + if((!(instrHeader.instrument.volFlags & XMInstrument::envLoop) && instrHeader.instrument.volLoopStart == 0xFF && instrHeader.instrument.volLoopEnd == 0xFF) + || (!(instrHeader.instrument.panFlags & XMInstrument::envLoop) && instrHeader.instrument.panLoopStart == 0xFF && instrHeader.instrument.panLoopEnd == 0xFF)) + { + madeWith.set(verConfirmed); + madeWith.reset(verNewModPlug); + } } // Read sample headers @@ -809,6 +852,18 @@ sampleSize[sample] = sampleHeader.length; sampleReserved |= sampleHeader.reserved; + if(sampleHeader.reserved != 0 && sampleHeader.reserved != 0xAD) + madeWith.reset(verOldModPlug | verNewModPlug | verOpenMPT); + + if(lastSampleReserved == -1) + lastSampleReserved = sampleHeader.reserved; + else if(lastSampleReserved != sampleHeader.reserved) + madeWith.reset(verPlayerPRO); + if(sampleHeader.pan != 128) + madeWith.reset(verPlayerPRO); + if((sampleHeader.finetune & 0x0F) && sampleHeader.finetune != 127) + madeWith.reset(verPlayerPRO); + if(sample < sampleSlots.size()) { SAMPLEINDEX mptSample = sampleSlots[sample]; @@ -817,6 +872,13 @@ instrHeader.instrument.ApplyAutoVibratoToMPT(Samples[mptSample]); m_szNames[mptSample] = mpt::String::ReadBuf(mpt::String::spacePadded, sampleHeader.name); + if(madeWith[verFT2Generic | verFT2Clone] && madeWith[verNewModPlug | verPlayerPRO] && !madeWith[verConfirmed] + && (sampleHeader.reserved > 22 || std::find_if(std::begin(sampleHeader.name) + sampleHeader.reserved, std::end(sampleHeader.name), [](char c) { return c != ' '; }) != std::end(sampleHeader.name))) + { + // FT2 stores the sample name length here (it just copies the entire Pascal string, but that string might have ended with spaces even before space-padding it in the file, so we cannot do an exact length comparison) + madeWith.reset(verFT2Generic); + madeWith.set(verFT2Clone | verConfirmed); + } if((sampleHeader.flags & 3) == 3 && madeWith[verNewModPlug]) madeWith.set(verModPlugBidiFlag); @@ -878,6 +940,7 @@ { m_songMessage.Read(file, file.ReadUint32LE(), SongMessage::leCR); madeWith.set(verConfirmed); + madeWith.reset(verPlayerPRO); } // Read midi config: "MIDI" @@ -888,6 +951,7 @@ m_MidiCfg.Sanitize(); hasMidiConfig = true; madeWith.set(verConfirmed); + madeWith.reset(verPlayerPRO); } // Read pattern names: "PNAM" @@ -902,6 +966,7 @@ Patterns[pat].SetName(patName); } madeWith.set(verConfirmed); + madeWith.reset(verPlayerPRO); } // Read channel names: "CNAM" @@ -913,6 +978,7 @@ file.ReadString<mpt::String::maybeNullTerminated>(ChnSettings[chn].szName, MAX_CHANNELNAME); } madeWith.set(verConfirmed); + madeWith.reset(verPlayerPRO); } // Read mix plugins information @@ -923,6 +989,7 @@ if(file.GetPosition() != oldPos) { madeWith.set(verConfirmed); + madeWith.reset(verPlayerPRO); } } @@ -932,10 +999,17 @@ { m_dwLastSavedWithVersion = MPT_V("1.11"); madeWithTracker = U_("ModPlug Tracker 1.0 - 1.11"); - } else if(madeWith[verNewModPlug]) + } else if(madeWith[verNewModPlug] && !madeWith[verPlayerPRO]) { m_dwLastSavedWithVersion = MPT_V("1.16"); madeWithTracker = U_("ModPlug Tracker 1.0 - 1.16"); + } else if(madeWith[verNewModPlug] && madeWith[verPlayerPRO]) + { + m_dwLastSavedWithVersion = MPT_V("1.16"); + madeWithTracker = U_("ModPlug Tracker 1.0 - 1.16 / PlayerPRO"); + } else if(!madeWith[verNewModPlug] && madeWith[verPlayerPRO]) + { + madeWithTracker = U_("PlayerPRO"); } } @@ -982,7 +1056,7 @@ if(madeWithTracker.empty()) { - if(madeWith[verDigiTrakker] && sampleReserved == 0 && (instrType ? instrType : -1) == -1) + if(madeWith[verDigiTrakker] && sampleReserved == 0 && (lastInstrType ? lastInstrType : -1) == -1) { madeWithTracker = U_("DigiTrakker"); } else if(madeWith[verFT2Generic]) |
From: <sv...@op...> - 2024-05-09 17:41:34
|
Author: sagamusix Date: Thu May 9 19:41:22 2024 New Revision: 20746 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20746 Log: [Imp] S3M: Tell Velvet Studio apart from MPT more reliably. [Imp] S3M: Detect PlayerPRO when running on big-endian platforms (assumption based on source - I have not searched for any such S3M files yet.) Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp Thu May 9 18:45:14 2024 (r20745) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp Thu May 9 19:41:22 2024 (r20746) @@ -248,7 +248,7 @@ madeWithTracker = U_("Akord"); break; case S3MFileHeader::trkScreamTracker: - if(fileHeader.cwtv == S3MFileHeader::trkST3_20 && fileHeader.special == 0 && (fileHeader.ordNum & 0x0F) == 0 && fileHeader.ultraClicks == 0 && (fileHeader.flags & ~0x50) == 0) + if(fileHeader.cwtv == S3MFileHeader::trkST3_20 && fileHeader.special == 0 && (fileHeader.ordNum & 0x0F) == 0 && fileHeader.ultraClicks == 0 && (fileHeader.flags & ~0x50) == 0 && fileHeader.usePanningTable == S3MFileHeader::idPanning) { // MPT and OpenMPT before 1.17.03.02 - Simply keep default (filter) MIDI macros if((fileHeader.masterVolume & 0x80) != 0) @@ -266,7 +266,10 @@ m_playBehaviour.set(kST3LimitPeriod); } else if(fileHeader.cwtv == S3MFileHeader::trkST3_20 && fileHeader.special == 0 && fileHeader.ultraClicks == 0 && fileHeader.flags == 0 && fileHeader.usePanningTable == 0) { - madeWithTracker = U_("Velvet Studio"); + if(fileHeader.globalVol == 64 && fileHeader.masterVolume == 48) + madeWithTracker = U_("PlayerPRO"); + else // Always stereo + madeWithTracker = U_("Velvet Studio"); } else { // ST3.20 should only ever write ultra-click values 16, 24 and 32 (corresponding to 8, 12 and 16 in the GUI), ST3.01/3.03 should only write 0, |
From: <sv...@op...> - 2024-05-09 16:45:21
|
Author: sagamusix Date: Thu May 9 18:45:14 2024 New Revision: 20745 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20745 Log: [Imp] S3M: Detect files saved with PlayerPRO on intel platforms, where it tries to disguise as Scream Tracker 3 but the tracker ID bytes are swapped. Supposedly this will not work for files saved on Motorola Macs. Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp trunk/OpenMPT/soundlib/S3MTools.h Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp Thu May 9 15:11:23 2024 (r20744) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp Thu May 9 18:45:14 2024 (r20745) @@ -279,8 +279,11 @@ } break; case S3MFileHeader::trkImagoOrpheus: - madeWithTracker = U_("Imago Orpheus"); - formatTrackerStr = true; + formatTrackerStr = (fileHeader.cwtv != S3MFileHeader::trkPlayerPRO); + if(formatTrackerStr) + madeWithTracker = U_("Imago Orpheus"); + else + madeWithTracker = U_("PlayerPRO"); nonCompatTracker = true; break; case S3MFileHeader::trkImpulseTracker: Modified: trunk/OpenMPT/soundlib/S3MTools.h ============================================================================== --- trunk/OpenMPT/soundlib/S3MTools.h Thu May 9 15:11:23 2024 (r20744) +++ trunk/OpenMPT/soundlib/S3MTools.h Thu May 9 18:45:14 2024 (r20745) @@ -53,6 +53,7 @@ trkBeRoTrackerOld = 0x4100, // Used from 2004 to 2012 trkGraoumfTracker = 0x5447, trkCamoto = 0xCA00, + trkPlayerPRO = 0x2013 // PlayerPRO on Intel doesn't byte-swap the tracker ID bytes }; // Flags |
From: <sv...@op...> - 2024-05-09 13:11:35
|
Author: sagamusix Date: Thu May 9 15:11:23 2024 New Revision: 20744 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20744 Log: [Mod] XM: All MPT versions up to v1.11 set both normal and pingpong loop flags for pingpong-looped samples, not just MPT 1.09. Apart from this, a file made with MPT 1.06 or newer will be bit-identical when re-saved in MPT 1.16. Make the version reporting more precise. Modified: trunk/OpenMPT/soundlib/Load_xm.cpp Modified: trunk/OpenMPT/soundlib/Load_xm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_xm.cpp Thu May 9 11:49:41 2024 (r20743) +++ trunk/OpenMPT/soundlib/Load_xm.cpp Thu May 9 15:11:23 2024 (r20744) @@ -358,19 +358,19 @@ enum TrackerVersions { - verUnknown = 0x00, // Probably not made with MPT - verOldModPlug = 0x01, // Made with MPT Alpha / Beta - verNewModPlug = 0x02, // Made with MPT (not Alpha / Beta) - verModPlug1_09 = 0x04, // Made with MPT 1.09 or possibly other version - verOpenMPT = 0x08, // Made with OpenMPT - verConfirmed = 0x10, // We are very sure that we found the correct tracker version. - - verFT2Generic = 0x20, // "FastTracker v2.00", but FastTracker has NOT been ruled out - verOther = 0x40, // Something we don't know, testing for DigiTrakker. - verFT2Clone = 0x80, // NOT FT2: itype changed between instruments, or \0 found in song title - verDigiTrakker = 0x100, // Probably DigiTrakker - verUNMO3 = 0x200, // TODO: UNMO3-ed XMs are detected as MPT 1.16 - verEmptyOrders = 0x400, // Allow empty order list like in OpenMPT (FT2 just plays pattern 0 if the order list is empty according to the header) + verUnknown = 0x00, // Probably not made with MPT + verOldModPlug = 0x01, // Made with MPT Alpha / Beta + verNewModPlug = 0x02, // Made with MPT (not Alpha / Beta) + verModPlugBidiFlag = 0x04, // MPT up to v1.11 sets both normal loop and pingpong loop flags + verOpenMPT = 0x08, // Made with OpenMPT + verConfirmed = 0x10, // We are very sure that we found the correct tracker version. + + verFT2Generic = 0x20, // "FastTracker v2.00", but FastTracker has NOT been ruled out + verOther = 0x40, // Something we don't know, testing for DigiTrakker. + verFT2Clone = 0x80, // NOT FT2: itype changed between instruments, or \0 found in song title + verDigiTrakker = 0x100, // Probably DigiTrakker + verUNMO3 = 0x200, // TODO: UNMO3-ed XMs are detected as MPT 1.16 + verEmptyOrders = 0x400, // Allow empty order list like in OpenMPT (FT2 just plays pattern 0 if the order list is empty according to the header) }; DECLARE_FLAGSET(TrackerVersions) @@ -819,10 +819,7 @@ m_szNames[mptSample] = mpt::String::ReadBuf(mpt::String::spacePadded, sampleHeader.name); if((sampleHeader.flags & 3) == 3 && madeWith[verNewModPlug]) - { - // MPT 1.09 and maybe newer / older versions set both loop flags for bidi loops. - madeWith.set(verModPlug1_09); - } + madeWith.set(verModPlugBidiFlag); } if(sampleFlags.back().GetEncoding() == SampleIO::ADPCM) anyADPCM = true; @@ -931,14 +928,14 @@ if(madeWith[verConfirmed]) { - if(madeWith[verModPlug1_09]) + if(madeWith[verModPlugBidiFlag]) { - m_dwLastSavedWithVersion = MPT_V("1.09"); - madeWithTracker = U_("ModPlug Tracker 1.09"); + m_dwLastSavedWithVersion = MPT_V("1.11"); + madeWithTracker = U_("ModPlug Tracker 1.0 - 1.11"); } else if(madeWith[verNewModPlug]) { m_dwLastSavedWithVersion = MPT_V("1.16"); - madeWithTracker = U_("ModPlug Tracker 1.10 - 1.16"); + madeWithTracker = U_("ModPlug Tracker 1.0 - 1.16"); } } |
From: <sv...@op...> - 2024-05-09 09:49:56
|
Author: manx Date: Thu May 9 11:49:41 2024 New Revision: 20743 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20743 Log: [Ref] build: libopenmpt: Move libopenmpt test driver from test/ to libopenmpt/libopenmpt_test/, ultimately simplifying build system logic. Added: trunk/OpenMPT/libopenmpt/libopenmpt_test/ trunk/OpenMPT/libopenmpt/libopenmpt_test/libopenmpt_test.cpp - copied, changed from r20742, trunk/OpenMPT/test/libopenmpt_test.cpp trunk/OpenMPT/libopenmpt/libopenmpt_test/libopenmpt_test.manifest - copied unchanged from r20742, trunk/OpenMPT/test/libopenmpt_test.manifest Deleted: trunk/OpenMPT/test/libopenmpt_test.cpp trunk/OpenMPT/test/libopenmpt_test.manifest Modified: trunk/OpenMPT/Makefile trunk/OpenMPT/build/autotools/Makefile.am trunk/OpenMPT/build/premake/mpt-libopenmpt_test.lua trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2019win81/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2019win81/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2019win81/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2019win81/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2019win81/OpenMPT.vcxproj trunk/OpenMPT/build/vs2019win81/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2019win81/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2019win81/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win10/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2022win10/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2022win10clang/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win7/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2022win7/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win81/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2022win81/libopenmpt_test.vcxproj.filters Modified: trunk/OpenMPT/Makefile ============================================================================== --- trunk/OpenMPT/Makefile Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/Makefile Thu May 9 11:49:41 2024 (r20743) @@ -1323,7 +1323,7 @@ LIBOPENMPTTEST_CXX_SOURCES += \ - test/libopenmpt_test.cpp \ + libopenmpt/libopenmpt_test/libopenmpt_test.cpp \ $(SOUNDLIB_CXX_SOURCES) \ test/mpt_tests_base.cpp \ test/mpt_tests_binary.cpp \ Modified: trunk/OpenMPT/build/autotools/Makefile.am ============================================================================== --- trunk/OpenMPT/build/autotools/Makefile.am Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/autotools/Makefile.am Thu May 9 11:49:41 2024 (r20743) @@ -622,7 +622,6 @@ libopenmpttest_LDADD = libopenmpttest_LDADD += $(ZLIB_LIBS) $(MPG123_LIBS) $(OGG_LIBS) $(VORBIS_LIBS) $(VORBISFILE_LIBS) $(LIBOPENMPT_WIN32_LIBS) $(LIBOPENMPTTEST_WIN32_LIBS) libopenmpttest_SOURCES = -libopenmpttest_SOURCES += test/libopenmpt_test.cpp libopenmpttest_SOURCES += test/mpt_tests_base.cpp libopenmpttest_SOURCES += test/mpt_tests_binary.cpp libopenmpttest_SOURCES += test/mpt_tests_crc.cpp @@ -669,6 +668,7 @@ libopenmpttest_SOURCES += libopenmpt/libopenmpt_stream_callbacks_file_posix.h libopenmpttest_SOURCES += libopenmpt/libopenmpt_stream_callbacks_file_posix_lfs64.h libopenmpttest_SOURCES += libopenmpt/libopenmpt_version.h +libopenmpttest_SOURCES += libopenmpt/libopenmpt_test/libopenmpt_test.cpp endif if ENABLE_OPENMPT123 Modified: trunk/OpenMPT/build/premake/mpt-libopenmpt_test.lua ============================================================================== --- trunk/OpenMPT/build/premake/mpt-libopenmpt_test.lua Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/premake/mpt-libopenmpt_test.lua Thu May 9 11:49:41 2024 (r20743) @@ -19,7 +19,7 @@ } files { - "../../test/libopenmpt_test.manifest", + "../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest", } includedirs { "../..", @@ -67,6 +67,7 @@ "../../libopenmpt/libopenmpt_cxx.cpp", "../../libopenmpt/libopenmpt_ext_impl.cpp", "../../libopenmpt/libopenmpt_impl.cpp", + "../../libopenmpt/libopenmpt_test/libopenmpt_test.cpp", } excludes { "../../src/mpt/crypto/**.cpp", Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -1472,7 +1472,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2363,9 +2363,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -1472,7 +1472,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2363,9 +2363,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -1472,7 +1472,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2363,9 +2363,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -319,7 +319,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -347,7 +347,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -380,7 +380,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -412,7 +412,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -446,7 +446,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -479,7 +479,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -507,7 +507,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -534,7 +534,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -567,7 +567,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -599,7 +599,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -633,7 +633,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -666,7 +666,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1000,6 +1000,7 @@ <ClCompile Include="..\..\libopenmpt\libopenmpt_cxx.cpp" /> <ClCompile Include="..\..\libopenmpt\libopenmpt_ext_impl.cpp" /> <ClCompile Include="..\..\libopenmpt\libopenmpt_impl.cpp" /> + <ClCompile Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\sounddsp\AGC.cpp" /> <ClCompile Include="..\..\sounddsp\DSP.cpp" /> <ClCompile Include="..\..\sounddsp\EQ.cpp" /> @@ -1127,7 +1128,6 @@ <ClCompile Include="..\..\soundlib\tuningCollection.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> @@ -1143,7 +1143,7 @@ <ClCompile Include="..\..\unarchiver\ungzip.cpp" /> </ItemGroup> <ItemGroup> - <None Include="..\..\test\libopenmpt_test.manifest" /> + <None Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.manifest" /> </ItemGroup> <ItemGroup> <ProjectReference Include="ext\mpg123.vcxproj"> Modified: trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -7,6 +7,9 @@ <Filter Include="libopenmpt"> <UniqueIdentifier>{FFE9848F-EBA1-C6DC-54A9-9F38408061CD}</UniqueIdentifier> </Filter> + <Filter Include="libopenmpt\libopenmpt_test"> + <UniqueIdentifier>{073CA60F-F34B-52E0-5C05-B7FE48344179}</UniqueIdentifier> + </Filter> <Filter Include="sounddsp"> <UniqueIdentifier>{55EAB016-41B7-0B22-6AD0-F9C956FC40B0}</UniqueIdentifier> </Filter> @@ -1148,6 +1151,9 @@ <ClCompile Include="..\..\libopenmpt\libopenmpt_impl.cpp"> <Filter>libopenmpt</Filter> </ClCompile> + <ClCompile Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.cpp"> + <Filter>libopenmpt\libopenmpt_test</Filter> + </ClCompile> <ClCompile Include="..\..\sounddsp\AGC.cpp"> <Filter>sounddsp</Filter> </ClCompile> @@ -1529,9 +1535,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> @@ -1573,8 +1576,8 @@ </ClCompile> </ItemGroup> <ItemGroup> - <None Include="..\..\test\libopenmpt_test.manifest"> - <Filter>test</Filter> + <None Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.manifest"> + <Filter>libopenmpt\libopenmpt_test</Filter> </None> </ItemGroup> </Project> \ No newline at end of file Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -1472,7 +1472,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2363,9 +2363,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -1472,7 +1472,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2363,9 +2363,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -1472,7 +1472,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2363,9 +2363,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -319,7 +319,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -347,7 +347,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -380,7 +380,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -412,7 +412,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -446,7 +446,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -479,7 +479,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -507,7 +507,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -534,7 +534,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -567,7 +567,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -599,7 +599,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -633,7 +633,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -666,7 +666,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1000,6 +1000,7 @@ <ClCompile Include="..\..\libopenmpt\libopenmpt_cxx.cpp" /> <ClCompile Include="..\..\libopenmpt\libopenmpt_ext_impl.cpp" /> <ClCompile Include="..\..\libopenmpt\libopenmpt_impl.cpp" /> + <ClCompile Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\sounddsp\AGC.cpp" /> <ClCompile Include="..\..\sounddsp\DSP.cpp" /> <ClCompile Include="..\..\sounddsp\EQ.cpp" /> @@ -1127,7 +1128,6 @@ <ClCompile Include="..\..\soundlib\tuningCollection.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> @@ -1143,7 +1143,7 @@ <ClCompile Include="..\..\unarchiver\ungzip.cpp" /> </ItemGroup> <ItemGroup> - <None Include="..\..\test\libopenmpt_test.manifest" /> + <None Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.manifest" /> </ItemGroup> <ItemGroup> <ProjectReference Include="ext\mpg123.vcxproj"> Modified: trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -7,6 +7,9 @@ <Filter Include="libopenmpt"> <UniqueIdentifier>{FFE9848F-EBA1-C6DC-54A9-9F38408061CD}</UniqueIdentifier> </Filter> + <Filter Include="libopenmpt\libopenmpt_test"> + <UniqueIdentifier>{073CA60F-F34B-52E0-5C05-B7FE48344179}</UniqueIdentifier> + </Filter> <Filter Include="sounddsp"> <UniqueIdentifier>{55EAB016-41B7-0B22-6AD0-F9C956FC40B0}</UniqueIdentifier> </Filter> @@ -1148,6 +1151,9 @@ <ClCompile Include="..\..\libopenmpt\libopenmpt_impl.cpp"> <Filter>libopenmpt</Filter> </ClCompile> + <ClCompile Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.cpp"> + <Filter>libopenmpt\libopenmpt_test</Filter> + </ClCompile> <ClCompile Include="..\..\sounddsp\AGC.cpp"> <Filter>sounddsp</Filter> </ClCompile> @@ -1529,9 +1535,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> @@ -1573,8 +1576,8 @@ </ClCompile> </ItemGroup> <ItemGroup> - <None Include="..\..\test\libopenmpt_test.manifest"> - <Filter>test</Filter> + <None Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.manifest"> + <Filter>libopenmpt\libopenmpt_test</Filter> </None> </ItemGroup> </Project> \ No newline at end of file Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -2247,7 +2247,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2405,9 +2405,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -2247,7 +2247,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2405,9 +2405,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -2247,7 +2247,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2405,9 +2405,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -563,7 +563,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -593,7 +593,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -622,7 +622,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -651,7 +651,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -686,7 +686,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -720,7 +720,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -754,7 +754,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -788,7 +788,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -824,7 +824,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -859,7 +859,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -894,7 +894,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -929,7 +929,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -958,7 +958,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -987,7 +987,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1016,7 +1016,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1045,7 +1045,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1080,7 +1080,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1114,7 +1114,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1148,7 +1148,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1182,7 +1182,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1218,7 +1218,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1253,7 +1253,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1288,7 +1288,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1323,7 +1323,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win10.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> + <AdditionalManifestFiles>../vs/win10.manifest;../../libopenmpt/libopenmpt_test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles> </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> @@ -1657,6 +1657,7 @@ <ClCompile Include="..\..\libopenmpt\libopenmpt_cxx.cpp" /> <ClCompile Include="..\..\libopenmpt\libopenmpt_ext_impl.cpp" /> <ClCompile Include="..\..\libopenmpt\libopenmpt_impl.cpp" /> + <ClCompile Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\sounddsp\AGC.cpp" /> <ClCompile Include="..\..\sounddsp\DSP.cpp" /> <ClCompile Include="..\..\sounddsp\EQ.cpp" /> @@ -1784,7 +1785,6 @@ <ClCompile Include="..\..\soundlib\tuningCollection.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> @@ -1800,7 +1800,7 @@ <ClCompile Include="..\..\unarchiver\ungzip.cpp" /> </ItemGroup> <ItemGroup> - <None Include="..\..\test\libopenmpt_test.manifest" /> + <None Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.manifest" /> <None Include="..\vs\win10.manifest" /> </ItemGroup> <ItemGroup> Modified: trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -13,6 +13,9 @@ <Filter Include="libopenmpt"> <UniqueIdentifier>{FFE9848F-EBA1-C6DC-54A9-9F38408061CD}</UniqueIdentifier> </Filter> + <Filter Include="libopenmpt\libopenmpt_test"> + <UniqueIdentifier>{073CA60F-F34B-52E0-5C05-B7FE48344179}</UniqueIdentifier> + </Filter> <Filter Include="sounddsp"> <UniqueIdentifier>{55EAB016-41B7-0B22-6AD0-F9C956FC40B0}</UniqueIdentifier> </Filter> @@ -1154,6 +1157,9 @@ <ClCompile Include="..\..\libopenmpt\libopenmpt_impl.cpp"> <Filter>libopenmpt</Filter> </ClCompile> + <ClCompile Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.cpp"> + <Filter>libopenmpt\libopenmpt_test</Filter> + </ClCompile> <ClCompile Include="..\..\sounddsp\AGC.cpp"> <Filter>sounddsp</Filter> </ClCompile> @@ -1535,9 +1541,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> @@ -1579,8 +1582,8 @@ </ClCompile> </ItemGroup> <ItemGroup> - <None Include="..\..\test\libopenmpt_test.manifest"> - <Filter>test</Filter> + <None Include="..\..\libopenmpt\libopenmpt_test\libopenmpt_test.manifest"> + <Filter>libopenmpt\libopenmpt_test</Filter> </None> <None Include="..\vs\win10.manifest"> <Filter>build\vs</Filter> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -1491,7 +1491,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2405,9 +2405,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -1491,7 +1491,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2405,9 +2405,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -1491,7 +1491,6 @@ <ClCompile Include="..\..\src\openmpt\sounddevice\SoundDeviceWaveout.cpp" /> <ClCompile Include="..\..\test\PlaybackTest.cpp" /> <ClCompile Include="..\..\test\TestToolsLib.cpp" /> - <ClCompile Include="..\..\test\libopenmpt_test.cpp" /> <ClCompile Include="..\..\test\mpt_tests_base.cpp" /> <ClCompile Include="..\..\test\mpt_tests_binary.cpp" /> <ClCompile Include="..\..\test\mpt_tests_crc.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters Thu May 9 11:49:41 2024 (r20743) @@ -2405,9 +2405,6 @@ <ClCompile Include="..\..\test\TestToolsLib.cpp"> <Filter>test</Filter> </ClCompile> - <ClCompile Include="..\..\test\libopenmpt_test.cpp"> - <Filter>test</Filter> - </ClCompile> <ClCompile Include="..\..\test\mpt_tests_base.cpp"> <Filter>test</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj Thu May 9 01:17:00 2024 (r20742) +++ trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj Thu May 9 11:49:41 2024 (r20743) @@ -295,7 +295,7 @@ <LargeAddressAware>true</LargeAddressAware> </Link> <Manifest> - <AdditionalManifestFiles>../vs/win7.manifest;../../test/libopenmpt_test.manifest;%(AdditionalManifestFiles)</AdditionalMa... [truncated message content] |
From: <sv...@op...> - 2024-05-08 23:17:13
|
Author: sagamusix Date: Thu May 9 01:17:00 2024 New Revision: 20742 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20742 Log: [Fix] ULT: Strings are space-padded, not null-terminated. Modified: trunk/OpenMPT/soundlib/Load_ult.cpp Modified: trunk/OpenMPT/soundlib/Load_ult.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_ult.cpp Wed May 8 21:16:09 2024 (r20741) +++ trunk/OpenMPT/soundlib/Load_ult.cpp Thu May 9 01:17:00 2024 (r20742) @@ -18,7 +18,7 @@ { char signature[14]; // "MAS_UTrack_V00" uint8 version; // '1'...'4' - char songName[32]; // Song Name, not guaranteed to be null-terminated + char songName[32]; // Song Name, space-padded uint8 messageLength; // Number of Lines }; @@ -51,7 +51,7 @@ mptSmp.Initialize(); mptSmp.Set16BitCuePoints(); - mptSmp.filename = mpt::String::ReadBuf(mpt::String::maybeNullTerminated, filename); + mptSmp.filename = mpt::String::ReadBuf(mpt::String::spacePadded, filename); if(sizeEnd <= sizeStart) { @@ -385,7 +385,7 @@ } InitializeGlobals(MOD_TYPE_ULT); - m_songName = mpt::String::ReadBuf(mpt::String::maybeNullTerminated, fileHeader.songName); + m_songName = mpt::String::ReadBuf(mpt::String::spacePadded, fileHeader.songName); const mpt::uchar *versions[] = {UL_("<1.4"), UL_("1.4"), UL_("1.5"), UL_("1.6")}; m_modFormat.formatName = U_("UltraTracker"); @@ -419,7 +419,7 @@ } sampleHeader.ConvertToMPT(Samples[smp]); - m_szNames[smp] = mpt::String::ReadBuf(mpt::String::maybeNullTerminated, sampleHeader.name); + m_szNames[smp] = mpt::String::ReadBuf(mpt::String::spacePadded, sampleHeader.name); } ReadOrderFromFile<uint8>(Order(), file, 256, 0xFF, 0xFE); |
From: <sv...@op...> - 2024-05-08 19:16:21
|
Author: sagamusix Date: Wed May 8 21:16:09 2024 New Revision: 20741 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20741 Log: [Mod] STK: Don't reader sample headers from disk and order list twice in a row. STKFileHeaders already contains them. Modified: trunk/OpenMPT/soundlib/Load_stk.cpp Modified: trunk/OpenMPT/soundlib/Load_stk.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_stk.cpp Wed May 8 20:47:53 2024 (r20740) +++ trunk/OpenMPT/soundlib/Load_stk.cpp Wed May 8 21:16:09 2024 (r20741) @@ -83,35 +83,25 @@ // scramble_2.mod has a lot of garbage in the song title, but it has lots of properly-formatted sample names, so we consider those to be more important than the garbage bytes. if(invalidCharsInTitle > 5 && (validNameCount < 4 || invalidNames)) - { return false; - } // Reject any files with no (or only silent) samples at all, as this might just be a random binary file (e.g. ID3 tags with tons of padding) if(totalSampleLen == 0 || allVolumes == 0) - { return false; - } // Sanity check: No more than 128 positions. ST's GUI limits tempo to [1, 220]. // There are some mods with a tempo of 0 (explora3-death.mod) though, so ignore the lower limit. if(fileHeaders.fileHeader.numOrders > 128 || fileHeaders.fileHeader.restartPos > 220) - { return false; - } uint8 maxPattern = *std::max_element(std::begin(fileHeaders.fileHeader.orderList), std::end(fileHeaders.fileHeader.orderList)); // Sanity check: 64 patterns max. if(maxPattern > 63) - { return false; - } // No playable song, and lots of null values => most likely a sparse binary file but not a module if(fileHeaders.fileHeader.restartPos == 0 && fileHeaders.fileHeader.numOrders == 0 && maxPattern == 0) - { return false; - } return true; } @@ -129,21 +119,13 @@ { STKFileHeaders fileHeaders; if(!file.ReadStruct(fileHeaders)) - { return ProbeWantMoreData; - } if(!ValidateHeader(fileHeaders)) - { return ProbeFailure; - } if(!file.CanRead(sizeof(MODPatternData))) - { return ProbeWantMoreData; - } if(!ValidateFirstSTKPattern(file)) - { return ProbeFailure; - } MPT_UNREFERENCED_PARAMETER(pfilesize); return ProbeSuccess; } @@ -155,20 +137,12 @@ STKFileHeaders fileHeaders; if(!file.ReadStruct(fileHeaders)) - { return false; - } if(!ValidateHeader(fileHeaders)) - { return false; - } if(!ValidateFirstSTKPattern(file)) - { return false; - } - - char songname[20]; - std::memcpy(songname, fileHeaders.songname, 20); + file.Seek(sizeof(STKFileHeaders)); InitializeGlobals(MOD_TYPE_MOD); m_playBehaviour.reset(kMODOneShotLoops); @@ -182,12 +156,10 @@ SmpLength totalSampleLen = 0; m_nSamples = 15; - file.Seek(20); for(SAMPLEINDEX smp = 1; smp <= 15; smp++) { ModSample &mptSmp = Samples[smp]; - MODSampleHeader sampleHeader; - file.ReadStruct(sampleHeader); + const MODSampleHeader &sampleHeader = fileHeaders.sampleHeaders[smp - 1]; ReadMODSample(sampleHeader, Samples[smp], m_szNames[smp], true); mptSmp.nFineTune = 0; @@ -212,9 +184,7 @@ minVersion = std::max(minVersion, MST1_00); } - MODFileHeader fileHeader; - file.ReadStruct(fileHeader); - + MODFileHeader &fileHeader = fileHeaders.fileHeader; ReadOrderFromArray(Order(), fileHeader.orderList); PATTERNINDEX numPatterns = GetNumPatterns(file, Order(), fileHeader.numOrders, totalSampleLen, m_nChannels, 0, true); @@ -237,7 +207,7 @@ if(!fileHeader.restartPos) fileHeader.restartPos = 0x78; // jjk55 by Jesper Kyd has a weird tempo set, but it needs to be ignored. - if(!memcmp(songname, "jjk55", 6)) + if(!memcmp(fileHeaders.songname, "jjk55", 6)) fileHeader.restartPos = 0x78; // Sample 7 in echoing.mod won't "loop" correctly if we don't convert the VBlank tempo. Order().SetDefaultTempoInt(125); @@ -259,7 +229,7 @@ m_nMaxPeriod = 856 * 4; m_nSamplePreAmp = 64; m_SongFlags.set(SONG_PT_MODE); - m_songName = mpt::String::ReadBuf(mpt::String::spacePadded, songname); + m_songName = mpt::String::ReadBuf(mpt::String::spacePadded, fileHeaders.songname); // Setup channel pan positions and volume SetupMODPanning(); |
From: <sv...@op...> - 2024-05-08 18:48:00
|
Author: sagamusix Date: Wed May 8 20:47:53 2024 New Revision: 20740 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20740 Log: [Ref] Clean up ConvertModCommand / ModSaveCommand. Modified: trunk/OpenMPT/soundlib/MODTools.cpp Modified: trunk/OpenMPT/soundlib/MODTools.cpp ============================================================================== --- trunk/OpenMPT/soundlib/MODTools.cpp Wed May 8 20:11:44 2024 (r20739) +++ trunk/OpenMPT/soundlib/MODTools.cpp Wed May 8 20:47:53 2024 (r20740) @@ -17,51 +17,39 @@ void CSoundFile::ConvertModCommand(ModCommand &m, const uint8 command, const uint8 param) { + static constexpr EffectCommand effTrans[] = + { + // MOD effects + CMD_ARPEGGIO, CMD_PORTAMENTOUP, CMD_PORTAMENTODOWN, CMD_TONEPORTAMENTO, // 0123 + CMD_VIBRATO, CMD_TONEPORTAVOL, CMD_VIBRATOVOL, CMD_TREMOLO, // 4567 + CMD_PANNING8, CMD_OFFSET, CMD_VOLUMESLIDE, CMD_POSITIONJUMP, // 89AB + CMD_VOLUME, CMD_PATTERNBREAK, CMD_MODCMDEX, CMD_TEMPO, // CDEF + // XM extended effects + CMD_GLOBALVOLUME, CMD_GLOBALVOLSLIDE, CMD_NONE, CMD_NONE, // GHIJ + CMD_KEYOFF, CMD_SETENVPOSITION, CMD_NONE, CMD_NONE, // KLMN + CMD_NONE, CMD_PANNINGSLIDE, CMD_NONE, CMD_RETRIG, // OPQR + CMD_NONE, CMD_TREMOR, CMD_NONE, CMD_NONE, // STUV + CMD_DUMMY, CMD_XFINEPORTAUPDOWN, CMD_PANBRELLO, CMD_MIDI, // WXYZ + CMD_SMOOTHMIDI, CMD_SMOOTHMIDI, CMD_XPARAM, // \\# (BeRoTracker uses command 37 instead of 36 for smooth MIDI macros; in old OpenMPT versions this was reserved for the unimplemented "velocity" command) + }; + + m.command = CMD_NONE; m.param = param; - switch(command) + if(command == 0x00 && param == 0x00) { - case 0x00: m.command = m.param ? CMD_ARPEGGIO : CMD_NONE; break; - case 0x01: m.command = CMD_PORTAMENTOUP; break; - case 0x02: m.command = CMD_PORTAMENTODOWN; break; - case 0x03: m.command = CMD_TONEPORTAMENTO; break; - case 0x04: m.command = CMD_VIBRATO; break; - case 0x05: m.command = CMD_TONEPORTAVOL; break; - case 0x06: m.command = CMD_VIBRATOVOL; break; - case 0x07: m.command = CMD_TREMOLO; break; - case 0x08: m.command = CMD_PANNING8; break; - case 0x09: m.command = CMD_OFFSET; break; - case 0x0A: m.command = CMD_VOLUMESLIDE; break; - case 0x0B: m.command = CMD_POSITIONJUMP; break; - case 0x0C: m.command = CMD_VOLUME; break; - case 0x0D: m.command = CMD_PATTERNBREAK; m.param = static_cast<ModCommand::PARAM>(((m.param >> 4) * 10) + (m.param & 0x0F)); break; - case 0x0E: m.command = CMD_MODCMDEX; break; - case 0x0F: - // For a very long time, this code imported 0x20 as CMD_SPEED for MOD files, but this seems to contradict - // pretty much the majority of other MOD player out there. + m.command = CMD_NONE; + } else if(command == 0x0F && param < 0x20) + { + // For a very long time (until OpenMPT 1.25.02.02), this code also imported 0x20 as CMD_SPEED for MOD files, + // but this seems to contradict pretty much the majority of other MOD player out there. // 0x20 is Speed: Impulse Tracker, Scream Tracker, old ModPlug // 0x20 is Tempo: ProTracker, XMPlay, Imago Orpheus, Cubic Player, ChibiTracker, BeRoTracker, DigiTrakker, DigiTrekker, Disorder Tracker 2, DMP, Extreme's Tracker, ... - if(m.param < 0x20) - m.command = CMD_SPEED; - else - m.command = CMD_TEMPO; - break; - - // Extension for XM extended effects - case 'G' - 55: m.command = CMD_GLOBALVOLUME; break; //16 - case 'H' - 55: m.command = CMD_GLOBALVOLSLIDE; break; - case 'K' - 55: m.command = CMD_KEYOFF; break; - case 'L' - 55: m.command = CMD_SETENVPOSITION; break; - case 'P' - 55: m.command = CMD_PANNINGSLIDE; break; - case 'R' - 55: m.command = CMD_RETRIG; break; - case 'T' - 55: m.command = CMD_TREMOR; break; - case 'W' - 55: m.command = CMD_DUMMY; break; - case 'X' - 55: m.command = CMD_XFINEPORTAUPDOWN; break; - case 'Y' - 55: m.command = CMD_PANBRELLO; break; // 34 - case 'Z' - 55: m.command = CMD_MIDI; break; // 35 - case '\\' - 56: m.command = CMD_SMOOTHMIDI; break; // 36 - note: this is actually displayed as "-" in FT2, but seems to be doing nothing. - case 37: m.command = CMD_SMOOTHMIDI; break; // BeRoTracker uses this for smooth MIDI macros for some reason; in old OpenMPT versions this was reserved for the unimplemented "velocity" command - case '#' + 3: m.command = CMD_XPARAM; break; // 38 - default: m.command = CMD_NONE; + m.command = CMD_SPEED; + } else if(command < std::size(effTrans)) + { + m.command = effTrans[command]; + if(m.command == CMD_PATTERNBREAK) + m.param = static_cast<ModCommand::PARAM>(((m.param >> 4) * 10) + (m.param & 0x0F)); } } @@ -73,29 +61,35 @@ param = source.param; switch(source.command) { - case CMD_NONE: command = param = 0; break; - case CMD_ARPEGGIO: command = 0; break; + case CMD_NONE: command = param = 0; break; + case CMD_ARPEGGIO: command = 0; break; case CMD_PORTAMENTOUP: - if (GetType() & (MOD_TYPE_S3M|MOD_TYPE_IT|MOD_TYPE_STM|MOD_TYPE_MPT)) + command = 0x01; + if(UseCombinedPortamentoCommands() && param >= 0xE0) { - if ((param & 0xF0) == 0xE0) { command = 0x0E; param = ((param & 0x0F) >> 2) | 0x10; break; } - else if ((param & 0xF0) == 0xF0) { command = 0x0E; param &= 0x0F; param |= 0x10; break; } + command = 0x0E; + if(param < 0xF0) + param = ((param & 0x0F) >> 2) | 0x10; + else + param = (param & 0x0F) | 0x10; } - command = 0x01; break; case CMD_PORTAMENTODOWN: - if(GetType() & (MOD_TYPE_S3M|MOD_TYPE_IT|MOD_TYPE_STM|MOD_TYPE_MPT)) + command = 0x02; + if(UseCombinedPortamentoCommands() && param >= 0xE0) { - if ((param & 0xF0) == 0xE0) { command = 0x0E; param= ((param & 0x0F) >> 2) | 0x20; break; } - else if ((param & 0xF0) == 0xF0) { command = 0x0E; param &= 0x0F; param |= 0x20; break; } + command = 0x0E; + if(param < 0xF0) + param = ((param & 0x0F) >> 2) | 0x20; + else + param = (param & 0x0F) | 0x20; } - command = 0x02; break; - case CMD_TONEPORTAMENTO: command = 0x03; break; - case CMD_VIBRATO: command = 0x04; break; - case CMD_TONEPORTAVOL: command = 0x05; break; - case CMD_VIBRATOVOL: command = 0x06; break; - case CMD_TREMOLO: command = 0x07; break; + case CMD_TONEPORTAMENTO: command = 0x03; break; + case CMD_VIBRATO: command = 0x04; break; + case CMD_TONEPORTAVOL: command = 0x05; break; + case CMD_VIBRATOVOL: command = 0x06; break; + case CMD_TREMOLO: command = 0x07; break; case CMD_PANNING8: command = 0x08; if(GetType() & MOD_TYPE_S3M) @@ -103,14 +97,12 @@ if(param <= 0x80) { param = mpt::saturate_cast<uint8>(param * 2); - } - else if(param == 0xA4) // surround + } else if(param == 0xA4) // Surround { if(compatibilityExport || !toXM) { command = param = 0; - } - else + } else { command = 'X' - 55; param = 91; @@ -118,25 +110,36 @@ } } break; - case CMD_OFFSET: command = 0x09; break; - case CMD_VOLUMESLIDE: command = 0x0A; break; - case CMD_POSITIONJUMP: command = 0x0B; break; - case CMD_VOLUME: command = 0x0C; break; - case CMD_PATTERNBREAK: command = 0x0D; param = ((param / 10) << 4) | (param % 10); break; - case CMD_MODCMDEX: command = 0x0E; break; - case CMD_SPEED: command = 0x0F; param = std::min(param, uint8(0x1F)); break; - case CMD_TEMPO: command = 0x0F; param = std::max(param, uint8(0x20)); break; - case CMD_GLOBALVOLUME: command = 'G' - 55; break; - case CMD_GLOBALVOLSLIDE: command = 'H' - 55; break; - case CMD_KEYOFF: command = 'K' - 55; break; - case CMD_SETENVPOSITION: command = 'L' - 55; break; - case CMD_PANNINGSLIDE: command = 'P' - 55; break; - case CMD_RETRIG: command = 'R' - 55; break; - case CMD_TREMOR: command = 'T' - 55; break; - case CMD_DUMMY: command = 'W' - 55; break; - case CMD_XFINEPORTAUPDOWN: command = 'X' - 55; - if(compatibilityExport && param >= 0x30) // X1x and X2x are legit, everything above are MPT extensions, which don't belong here. - param = 0; // Don't set command to 0 to indicate that there *was* some X command here... + case CMD_OFFSETPERCENTAGE: + case CMD_OFFSET: command = 0x09; break; + case CMD_VOLUMESLIDE: command = 0x0A; break; + case CMD_POSITIONJUMP: command = 0x0B; break; + case CMD_VOLUME: command = 0x0C; break; + case CMD_PATTERNBREAK: + command = 0x0D; + param = ((param / 10) << 4) | (param % 10); + break; + case CMD_MODCMDEX: command = 0x0E; break; + case CMD_SPEED: + command = 0x0F; + param = std::min(param, uint8(0x1F)); + break; + case CMD_TEMPO: + command = 0x0F; + param = std::max(param, uint8(0x20)); + break; + case CMD_GLOBALVOLUME: command = 'G' - 55; break; + case CMD_GLOBALVOLSLIDE: command = 'H' - 55; break; + case CMD_KEYOFF: command = 'K' - 55; break; + case CMD_SETENVPOSITION: command = 'L' - 55; break; + case CMD_PANNINGSLIDE: command = 'P' - 55; break; + case CMD_RETRIG: command = 'R' - 55; break; + case CMD_TREMOR: command = 'T' - 55; break; + case CMD_DUMMY: command = 'W' - 55; break; + case CMD_XFINEPORTAUPDOWN: + command = 'X' - 55; + if(compatibilityExport && param >= 0x30) // X1x and X2x are legit, everything above are MPT extensions, which don't belong here. + param = 0; // Don't set command to 0 to indicate that there *was* some X command here... break; case CMD_PANBRELLO: if(compatibilityExport) @@ -150,13 +153,13 @@ else command = 'Z' - 55; break; - case CMD_SMOOTHMIDI: //rewbs.smoothVST: 36 + case CMD_SMOOTHMIDI: if(compatibilityExport) command = param = 0; else command = '\\' - 56; break; - case CMD_XPARAM: //rewbs.XMfixes - XParam is 38 + case CMD_XPARAM: if(compatibilityExport) command = param = 0; else |
From: <sv...@op...> - 2024-05-08 18:11:56
|
Author: manx Date: Wed May 8 20:11:44 2024 New Revision: 20739 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20739 Log: Merged revision(s) 20738 from trunk/OpenMPT: [Mod] build: CI: GitHub: Update NetBSD 9 to 9.4. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml Modified: branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml Wed May 8 20:11:12 2024 (r20738) +++ branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml Wed May 8 20:11:44 2024 (r20739) @@ -14,9 +14,9 @@ - { version: '10.0', deps: sys } - { version: '10.0', deps: local } - { version: '10.0', deps: small } - - { version: '9.3' , deps: sys } - - { version: '9.3' , deps: local } - - { version: '9.3' , deps: small } + - { version: '9.4' , deps: sys } + - { version: '9.4' , deps: local } + - { version: '9.4' , deps: small } concurrency: group: ${{github.ref}}-${{github.workflow}}-${{matrix.version}}-${{matrix.deps}} @@ -28,7 +28,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu @@ -40,7 +40,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu @@ -57,7 +57,7 @@ sudo pkgin -y install autoconf autoconf-archive automake libtool libltdl sudo pkgin -y install doxygen help2man - name: Build - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu @@ -70,7 +70,7 @@ run: | gmake -j4 STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} - name: Test - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu @@ -83,7 +83,7 @@ run: | gmake -j4 STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check - name: Shutdown VM - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu |
From: <sv...@op...> - 2024-05-08 18:11:24
|
Author: manx Date: Wed May 8 20:11:12 2024 New Revision: 20738 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20738 Log: [Mod] build: CI: GitHub: Update NetBSD 9 to 9.4. Modified: trunk/OpenMPT/.github/workflows/NetBSD-Makefile.yml Modified: trunk/OpenMPT/.github/workflows/NetBSD-Makefile.yml ============================================================================== --- trunk/OpenMPT/.github/workflows/NetBSD-Makefile.yml Wed May 8 19:55:35 2024 (r20737) +++ trunk/OpenMPT/.github/workflows/NetBSD-Makefile.yml Wed May 8 20:11:12 2024 (r20738) @@ -16,9 +16,9 @@ - { version: '10.0', deps: sys } - { version: '10.0', deps: local } - { version: '10.0', deps: small } - - { version: '9.3' , deps: sys } - - { version: '9.3' , deps: local } - - { version: '9.3' , deps: small } + - { version: '9.4' , deps: sys } + - { version: '9.4' , deps: local } + - { version: '9.4' , deps: small } concurrency: group: ${{github.ref}}-${{github.workflow}}-${{matrix.version}}-${{matrix.deps}} @@ -30,7 +30,7 @@ - name: Checkout uses: actions/checkout@v4 - name: Startup VM - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu @@ -42,7 +42,7 @@ shutdown_vm: false run: true - name: Install dependencies - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu @@ -59,7 +59,7 @@ sudo pkgin -y install autoconf autoconf-archive automake libtool libltdl sudo pkgin -y install doxygen help2man - name: Build - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu @@ -72,7 +72,7 @@ run: | gmake -j4 STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} - name: Test - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu @@ -85,7 +85,7 @@ run: | gmake -j4 STRICT=1 VERBOSE=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check - name: Shutdown VM - uses: cross-platform-actions/action@v0.24.0 + uses: cross-platform-actions/action@6121538380a6783d30116c93a3b675b02ab4cce8 with: architecture: x86_64 hypervisor: qemu |
From: <sv...@op...> - 2024-05-08 17:55:42
|
Author: sagamusix Date: Wed May 8 19:55:35 2024 New Revision: 20737 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20737 Log: [Fix] Previous commit included an earlier version of ClassifyName, that didn't check for strict ASCII strings as the return value implies. Modified: trunk/OpenMPT/soundlib/MODTools.cpp Modified: trunk/OpenMPT/soundlib/MODTools.cpp ============================================================================== --- trunk/OpenMPT/soundlib/MODTools.cpp Wed May 8 19:53:49 2024 (r20736) +++ trunk/OpenMPT/soundlib/MODTools.cpp Wed May 8 19:55:35 2024 (r20737) @@ -331,9 +331,9 @@ NameClassification ClassifyName(const mpt::span<const char> name) noexcept { bool foundNull = false, foundNormal = false; - for(auto c : name) + for(int8 c : name) { - if(c > 0 && c < ' ') + if(c != 0 && c < ' ') return NameClassification::Invalid; if(c == 0) foundNull = true; |
From: <sv...@op...> - 2024-05-08 17:54:01
|
Author: sagamusix Date: Wed May 8 19:53:49 2024 New Revision: 20736 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20736 Log: [Imp] STK: Allow romantic.stk to load, which has a sample longer than 74KB. [Imp] STK: Also allow files to load that have garbage in the song title, but whose sample names are properly null-terminated non-empty ASCII strings. Fixes STK.Sharks-NewIntro. Modified: trunk/OpenMPT/soundlib/Load_stk.cpp trunk/OpenMPT/soundlib/MODTools.cpp trunk/OpenMPT/soundlib/MODTools.h Modified: trunk/OpenMPT/soundlib/Load_stk.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_stk.cpp Wed May 8 18:52:54 2024 (r20735) +++ trunk/OpenMPT/soundlib/Load_stk.cpp Wed May 8 19:53:49 2024 (r20736) @@ -51,7 +51,8 @@ SmpLength totalSampleLen = 0; uint8 allVolumes = 0; - uint8 diskNameCount = 0; + uint8 validNameCount = 0; + bool invalidNames = false; for(SAMPLEINDEX smp = 0; smp < 15; smp++) { @@ -62,13 +63,16 @@ // schmokk.mod has a non-zero value here but it should not be treated as finetune if(sampleHeader.finetune != 0) invalidChars += 16; - if(sampleHeader.HasDiskName()) - diskNameCount++; + if(const auto nameType = ClassifyName(sampleHeader.name); nameType == NameClassification::ValidASCII) + validNameCount++; + else if(nameType == NameClassification::Invalid) + invalidNames = true; // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) + // Sample length adjusted for romantic.stk which has a (valid) sample of length 72222 if(invalidChars > 48 || sampleHeader.volume > 64 - || sampleHeader.length > 32768) + || sampleHeader.length > 37000) { return false; } @@ -77,8 +81,8 @@ allVolumes |= sampleHeader.volume; } - // scramble_2.mod has a lot of garbage in the song title, but it has lots of sample names starting with st-01, so we consider those to be more important than the garbage bytes. - if(invalidCharsInTitle > 5 && diskNameCount < 4) + // scramble_2.mod has a lot of garbage in the song title, but it has lots of properly-formatted sample names, so we consider those to be more important than the garbage bytes. + if(invalidCharsInTitle > 5 && (validNameCount < 4 || invalidNames)) { return false; } Modified: trunk/OpenMPT/soundlib/MODTools.cpp ============================================================================== --- trunk/OpenMPT/soundlib/MODTools.cpp Wed May 8 18:52:54 2024 (r20735) +++ trunk/OpenMPT/soundlib/MODTools.cpp Wed May 8 19:53:49 2024 (r20736) @@ -314,7 +314,7 @@ // Check if a name string is valid (i.e. doesn't contain binary garbage data) -uint32 CountInvalidChars(const mpt::span<const char> name) +uint32 CountInvalidChars(const mpt::span<const char> name) noexcept { uint32 invalidChars = 0; for(int8 c : name) // char can be signed or unsigned @@ -327,6 +327,27 @@ } +// Check if a name is a valid null - terminated ASCII string with no garbage after the null terminator, or if it's empty +NameClassification ClassifyName(const mpt::span<const char> name) noexcept +{ + bool foundNull = false, foundNormal = false; + for(auto c : name) + { + if(c > 0 && c < ' ') + return NameClassification::Invalid; + if(c == 0) + foundNull = true; + else if(foundNull) + return NameClassification::Invalid; + else + foundNormal = true; + } + if(!foundNull) + return NameClassification::Invalid; + return foundNormal ? NameClassification::ValidASCII : NameClassification::Empty; +} + + // Count malformed bytes in MOD pattern data uint32 CountMalformedMODPatternData(const MODPatternData &patternData, const bool extendedFormat) { Modified: trunk/OpenMPT/soundlib/MODTools.h ============================================================================== --- trunk/OpenMPT/soundlib/MODTools.h Wed May 8 18:52:54 2024 (r20735) +++ trunk/OpenMPT/soundlib/MODTools.h Wed May 8 19:53:49 2024 (r20736) @@ -108,7 +108,18 @@ // Check if a name string is valid (i.e. doesn't contain binary garbage data) -uint32 CountInvalidChars(const mpt::span<const char> name); +uint32 CountInvalidChars(const mpt::span<const char> name) noexcept; + + +enum class NameClassification +{ + Empty, + ValidASCII, + Invalid, +}; + +// Check if a name is a valid null-terminated ASCII string with no garbage after the null terminator, or if it's empty +NameClassification ClassifyName(const mpt::span<const char> name) noexcept; // Count malformed bytes in MOD pattern data |
From: <sv...@op...> - 2024-05-08 16:53:02
|
Author: manx Date: Wed May 8 18:52:54 2024 New Revision: 20735 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20735 Log: Merged revision(s) 20733 from trunk/OpenMPT: [Imp] build: CI: GitHub: Ubuntu: Use a big matrix build. [New] build: CI: GitHub: Ubuntu: Add Autotools builders for Ubuntu. ........ Added: branches/OpenMPT-1.31/.github/workflows/Ubuntu-Autotools.yml - copied, changed from r20734, branches/OpenMPT-1.31/.github/workflows/Ubuntu2004-Makefile.yml branches/OpenMPT-1.31/.github/workflows/Ubuntu-Makefile.yml - copied, changed from r20734, branches/OpenMPT-1.31/.github/workflows/Ubuntu2204-Makefile.yml Deleted: branches/OpenMPT-1.31/.github/workflows/Ubuntu2004-Makefile.yml branches/OpenMPT-1.31/.github/workflows/Ubuntu2204-Makefile.yml Modified: branches/OpenMPT-1.31/ (props changed) Copied and modified: branches/OpenMPT-1.31/.github/workflows/Ubuntu-Autotools.yml (from r20734, branches/OpenMPT-1.31/.github/workflows/Ubuntu2004-Makefile.yml) ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/Ubuntu2004-Makefile.yml Wed May 8 18:38:04 2024 (r20734, copy source) +++ branches/OpenMPT-1.31/.github/workflows/Ubuntu-Autotools.yml Wed May 8 18:52:54 2024 (r20735) @@ -1,17 +1,25 @@ -name: Ubuntu 20.04 Makefile +name: Ubuntu Autotools on: push: branches: [ OpenMPT-1.31 ] -concurrency: - group: ${{ github.ref }}-${{ github.workflow }} - cancel-in-progress: true - jobs: build: - runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + include: + - { version: '24.04' } + - { version: '22.04' } + - { version: '20.04' } + + concurrency: + group: ${{github.ref}}-${{github.workflow}}-${{matrix.version}}-autotools + cancel-in-progress: true + + runs-on: ubuntu-${{matrix.version}} steps: - uses: actions/checkout@v4 @@ -19,7 +27,5 @@ run: sudo apt-get update && sudo apt-get install -y subversion libxml-xpath-perl git mawk zip unzip p7zip xz-utils make binutils gcc g++ clang tcc pcc pkg-config help2man doxygen autoconf autoconf-archive automake libtool ccache zlib1g-dev libmpg123-dev libogg-dev libvorbis-dev portaudio19-dev libpulse-dev libsdl2-dev libflac-dev libsndfile1-dev libltdl-dev - name: setup parallel make run: echo "MAKEFLAGS=-j$(nproc)" >> $GITHUB_ENV - - name: make - run: make STRICT=1 - - name: make check - run: make STRICT=1 check + - name: Build + run: ./build/autotools/autoconfiscate.sh Copied and modified: branches/OpenMPT-1.31/.github/workflows/Ubuntu-Makefile.yml (from r20734, branches/OpenMPT-1.31/.github/workflows/Ubuntu2204-Makefile.yml) ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/Ubuntu2204-Makefile.yml Wed May 8 18:38:04 2024 (r20734, copy source) +++ branches/OpenMPT-1.31/.github/workflows/Ubuntu-Makefile.yml Wed May 8 18:52:54 2024 (r20735) @@ -1,17 +1,31 @@ -name: Ubuntu 22.04 Makefile +name: Ubuntu Makefile on: push: branches: [ OpenMPT-1.31 ] -concurrency: - group: ${{ github.ref }}-${{ github.workflow }} - cancel-in-progress: true - jobs: build: - runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + include: + - { version: '24.04', deps: sys } + - { version: '24.04', deps: local } + - { version: '24.04', deps: small } + - { version: '22.04', deps: sys } + - { version: '22.04', deps: local } + - { version: '22.04', deps: small } + - { version: '20.04', deps: sys } + - { version: '20.04', deps: local } + - { version: '20.04', deps: small } + + concurrency: + group: ${{github.ref}}-${{github.workflow}}-${{matrix.version}}-${{matrix.deps}} + cancel-in-progress: true + + runs-on: ubuntu-${{matrix.version}} steps: - uses: actions/checkout@v4 @@ -19,7 +33,9 @@ run: sudo apt-get update && sudo apt-get install -y subversion libxml-xpath-perl git mawk zip unzip p7zip xz-utils make binutils gcc g++ clang tcc pcc pkg-config help2man doxygen autoconf autoconf-archive automake libtool ccache zlib1g-dev libmpg123-dev libogg-dev libvorbis-dev portaudio19-dev libpulse-dev libsdl2-dev libflac-dev libsndfile1-dev libltdl-dev - name: setup parallel make run: echo "MAKEFLAGS=-j$(nproc)" >> $GITHUB_ENV - - name: make - run: make STRICT=1 - - name: make check - run: make STRICT=1 check + - name: Build + run: | + make STRICT=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} + - name: Test + run: | + make STRICT=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check |
From: <sv...@op...> - 2024-05-08 16:38:17
|
Author: sagamusix Date: Wed May 8 18:38:04 2024 New Revision: 20734 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20734 Log: [Ref] Small cleanup. Modified: trunk/OpenMPT/soundlib/Load_ice.cpp trunk/OpenMPT/soundlib/Load_ims.cpp Modified: trunk/OpenMPT/soundlib/Load_ice.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_ice.cpp Wed May 8 18:17:41 2024 (r20733) +++ trunk/OpenMPT/soundlib/Load_ice.cpp Wed May 8 18:38:04 2024 (r20734) @@ -111,7 +111,7 @@ if(loadFlags == onlyVerifyHeader) return true; - // Now we can be pretty sure that this is a valid MOD file. Set up default song settings. + // Now we can be pretty sure that this is a valid ICE file. Set up default song settings. m_nChannels = 4; SetupMODPanning(true); Order().SetDefaultSpeed(6); Modified: trunk/OpenMPT/soundlib/Load_ims.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_ims.cpp Wed May 8 18:17:41 2024 (r20733) +++ trunk/OpenMPT/soundlib/Load_ims.cpp Wed May 8 18:38:04 2024 (r20734) @@ -44,7 +44,7 @@ const auto patternDiv = std::div(sampleDataOffset - 1084, 768); if(patternDiv.rem) return false; - const PATTERNINDEX numPatterns = mpt::saturate_cast<PATTERNINDEX>(patternDiv.quot); + const uint8 numPatterns = mpt::saturate_cast<uint8>(patternDiv.quot); if(numPatterns > 128) return false; @@ -151,7 +151,7 @@ } m_modFormat.formatName = UL_("Images Music System"); - m_modFormat.type = UL_("IMS"); + m_modFormat.type = UL_("ims"); m_modFormat.charset = mpt::Charset::Amiga_no_C1; return true; |
From: <sv...@op...> - 2024-05-08 16:17:48
|
Author: manx Date: Wed May 8 18:17:41 2024 New Revision: 20733 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20733 Log: [Imp] build: CI: GitHub: Ubuntu: Use a big matrix build. [New] build: CI: GitHub: Ubuntu: Add Autotools builders for Ubuntu. Added: trunk/OpenMPT/.github/workflows/Ubuntu-Autotools.yml - copied, changed from r20732, trunk/OpenMPT/.github/workflows/Ubuntu2204-Makefile.yml trunk/OpenMPT/.github/workflows/Ubuntu-Makefile.yml - copied, changed from r20732, trunk/OpenMPT/.github/workflows/Ubuntu2204-Makefile.yml Deleted: trunk/OpenMPT/.github/workflows/Ubuntu2004-Makefile.yml trunk/OpenMPT/.github/workflows/Ubuntu2204-Makefile.yml Copied and modified: trunk/OpenMPT/.github/workflows/Ubuntu-Autotools.yml (from r20732, trunk/OpenMPT/.github/workflows/Ubuntu2204-Makefile.yml) ============================================================================== --- trunk/OpenMPT/.github/workflows/Ubuntu2204-Makefile.yml Wed May 8 08:14:40 2024 (r20732, copy source) +++ trunk/OpenMPT/.github/workflows/Ubuntu-Autotools.yml Wed May 8 18:17:41 2024 (r20733) @@ -1,4 +1,4 @@ -name: Ubuntu 22.04 Makefile +name: Ubuntu Autotools on: push: @@ -6,14 +6,22 @@ pull_request: branches: [ master ] -concurrency: - group: ${{ github.ref }}-${{ github.workflow }} - cancel-in-progress: true - jobs: build: - runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + include: + - { version: '24.04' } + - { version: '22.04' } + - { version: '20.04' } + + concurrency: + group: ${{github.ref}}-${{github.workflow}}-${{matrix.version}}-autotools + cancel-in-progress: true + + runs-on: ubuntu-${{matrix.version}} steps: - uses: actions/checkout@v4 @@ -21,7 +29,5 @@ run: sudo apt-get update && sudo apt-get install -y subversion libxml-xpath-perl git mawk zip unzip p7zip xz-utils make binutils gcc g++ clang tcc pcc pkg-config help2man doxygen autoconf autoconf-archive automake libtool ccache zlib1g-dev libmpg123-dev libogg-dev libvorbis-dev portaudio19-dev libpulse-dev libsdl2-dev libflac-dev libsndfile1-dev libltdl-dev - name: setup parallel make run: echo "MAKEFLAGS=-j$(nproc)" >> $GITHUB_ENV - - name: make - run: make STRICT=1 - - name: make check - run: make STRICT=1 check + - name: Build + run: ./build/autotools/autoconfiscate.sh Copied and modified: trunk/OpenMPT/.github/workflows/Ubuntu-Makefile.yml (from r20732, trunk/OpenMPT/.github/workflows/Ubuntu2204-Makefile.yml) ============================================================================== --- trunk/OpenMPT/.github/workflows/Ubuntu2204-Makefile.yml Wed May 8 08:14:40 2024 (r20732, copy source) +++ trunk/OpenMPT/.github/workflows/Ubuntu-Makefile.yml Wed May 8 18:17:41 2024 (r20733) @@ -1,4 +1,4 @@ -name: Ubuntu 22.04 Makefile +name: Ubuntu Makefile on: push: @@ -6,14 +6,28 @@ pull_request: branches: [ master ] -concurrency: - group: ${{ github.ref }}-${{ github.workflow }} - cancel-in-progress: true - jobs: build: - runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + include: + - { version: '24.04', deps: sys } + - { version: '24.04', deps: local } + - { version: '24.04', deps: small } + - { version: '22.04', deps: sys } + - { version: '22.04', deps: local } + - { version: '22.04', deps: small } + - { version: '20.04', deps: sys } + - { version: '20.04', deps: local } + - { version: '20.04', deps: small } + + concurrency: + group: ${{github.ref}}-${{github.workflow}}-${{matrix.version}}-${{matrix.deps}} + cancel-in-progress: true + + runs-on: ubuntu-${{matrix.version}} steps: - uses: actions/checkout@v4 @@ -21,7 +35,9 @@ run: sudo apt-get update && sudo apt-get install -y subversion libxml-xpath-perl git mawk zip unzip p7zip xz-utils make binutils gcc g++ clang tcc pcc pkg-config help2man doxygen autoconf autoconf-archive automake libtool ccache zlib1g-dev libmpg123-dev libogg-dev libvorbis-dev portaudio19-dev libpulse-dev libsdl2-dev libflac-dev libsndfile1-dev libltdl-dev - name: setup parallel make run: echo "MAKEFLAGS=-j$(nproc)" >> $GITHUB_ENV - - name: make - run: make STRICT=1 - - name: make check - run: make STRICT=1 check + - name: Build + run: | + make STRICT=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} + - name: Test + run: | + make STRICT=1 ${{ (matrix.deps == 'sys') && 'AUTO_DEPS=1' || (matrix.deps == 'local') && 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' || 'NO_ZLIB=1 NO_MPG123=1 NO_OGG=1 NO_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check |
From: <sv...@op...> - 2024-05-08 06:14:52
|
Author: manx Date: Wed May 8 08:14:40 2024 New Revision: 20732 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20732 Log: Merged revision(s) 20726 from trunk/OpenMPT: [Fix] Static (internal linkage) functions in namespace scope in headers can cause ODR-violations when used by external linkage inline functions. ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/soundlib/MixerInterface.h Modified: branches/OpenMPT-1.28/soundlib/MixerInterface.h ============================================================================== --- branches/OpenMPT-1.28/soundlib/MixerInterface.h Wed May 8 08:14:19 2024 (r20731) +++ branches/OpenMPT-1.28/soundlib/MixerInterface.h Wed May 8 08:14:40 2024 (r20732) @@ -67,7 +67,7 @@ // FilterFunc: Functor for applying the resonant filter // MixFunc: Functor for mixing the computed sample data into the output buffer template<class Traits, class InterpolationFunc, class FilterFunc, class MixFunc> -static void SampleLoop(ModChannel &chn, const CResampler &resampler, typename Traits::output_t * MPT_RESTRICT outBuffer, unsigned int numSamples) +inline void SampleLoop(ModChannel &chn, const CResampler &resampler, typename Traits::output_t * MPT_RESTRICT outBuffer, unsigned int numSamples) { ModChannel &c = chn; const typename Traits::input_t * MPT_RESTRICT inSample = static_cast<const typename Traits::input_t *>(c.pCurrentSample); |
From: <sv...@op...> - 2024-05-08 06:14:31
|
Author: manx Date: Wed May 8 08:14:19 2024 New Revision: 20731 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20731 Log: Merged revision(s) 20726 from trunk/OpenMPT: [Fix] Static (internal linkage) functions in namespace scope in headers can cause ODR-violations when used by external linkage inline functions. ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/soundlib/MixerInterface.h Modified: branches/OpenMPT-1.29/soundlib/MixerInterface.h ============================================================================== --- branches/OpenMPT-1.29/soundlib/MixerInterface.h Wed May 8 08:13:58 2024 (r20730) +++ branches/OpenMPT-1.29/soundlib/MixerInterface.h Wed May 8 08:14:19 2024 (r20731) @@ -66,7 +66,7 @@ // FilterFunc: Functor for applying the resonant filter // MixFunc: Functor for mixing the computed sample data into the output buffer template<class Traits, class InterpolationFunc, class FilterFunc, class MixFunc> -static void SampleLoop(ModChannel &chn, const CResampler &resampler, typename Traits::output_t * MPT_RESTRICT outBuffer, unsigned int numSamples) +inline void SampleLoop(ModChannel &chn, const CResampler &resampler, typename Traits::output_t * MPT_RESTRICT outBuffer, unsigned int numSamples) { ModChannel &c = chn; const typename Traits::input_t * MPT_RESTRICT inSample = static_cast<const typename Traits::input_t *>(c.pCurrentSample); |