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
(187) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@op...> - 2024-04-10 12:25:33
|
Author: manx Date: Wed Apr 10 14:25:19 2024 New Revision: 20557 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20557 Log: Merged revision(s) 20553-20554 from trunk/OpenMPT: [Fix] build: Autotools: Pipe example was missing. ........ [Fix] build: Autotools: libopenmpt_ext.bi was missing. ........ Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/build/autotools/Makefile.am Modified: branches/OpenMPT-1.30/build/autotools/Makefile.am ============================================================================== --- branches/OpenMPT-1.30/build/autotools/Makefile.am Wed Apr 10 14:24:45 2024 (r20556) +++ branches/OpenMPT-1.30/build/autotools/Makefile.am Wed Apr 10 14:25:19 2024 (r20557) @@ -29,6 +29,7 @@ EXTRA_DIST += man/openmpt123.1 EXTRA_DIST += examples/.clang-format EXTRA_DIST += libopenmpt/bindings/freebasic/libopenmpt.bi +EXTRA_DIST += libopenmpt/bindings/freebasic/libopenmpt_ext.bi MOSTLYCLEANFILES = dist_doc_DATA = @@ -39,6 +40,7 @@ nobase_dist_doc_DATA += examples/libopenmpt_example_c_mem.c nobase_dist_doc_DATA += examples/libopenmpt_example_c_unsafe.c nobase_dist_doc_DATA += examples/libopenmpt_example_c.c +nobase_dist_doc_DATA += examples/libopenmpt_example_c_pipe.c nobase_dist_doc_DATA += examples/libopenmpt_example_c_probe.c nobase_dist_doc_DATA += examples/libopenmpt_example_c_stdout.c @@ -51,8 +53,9 @@ if ENABLE_EXAMPLES -check_PROGRAMS += libopenmpt_example_c_stdout +check_PROGRAMS += libopenmpt_example_c_pipe check_PROGRAMS += libopenmpt_example_c_probe +check_PROGRAMS += libopenmpt_example_c_stdout if HAVE_PORTAUDIO check_PROGRAMS += libopenmpt_example_c check_PROGRAMS += libopenmpt_example_c_mem @@ -62,8 +65,9 @@ check_PROGRAMS += libopenmpt_example_cxx endif -libopenmpt_example_c_stdout_SOURCES = examples/libopenmpt_example_c_stdout.c +libopenmpt_example_c_pipe_SOURCES = examples/libopenmpt_example_c_pipe.c libopenmpt_example_c_probe_SOURCES = examples/libopenmpt_example_c_probe.c +libopenmpt_example_c_stdout_SOURCES = examples/libopenmpt_example_c_stdout.c if HAVE_PORTAUDIO libopenmpt_example_c_SOURCES = examples/libopenmpt_example_c.c libopenmpt_example_c_mem_SOURCES = examples/libopenmpt_example_c_mem.c @@ -73,8 +77,9 @@ libopenmpt_example_cxx_SOURCES = examples/libopenmpt_example_cxx.cpp endif -libopenmpt_example_c_stdout_CPPFLAGS = $(WIN32_CPPFLAGS) +libopenmpt_example_c_pipe_CPPFLAGS = $(WIN32_CPPFLAGS) libopenmpt_example_c_probe_CPPFLAGS = $(WIN32_CPPFLAGS) +libopenmpt_example_c_stdout_CPPFLAGS = $(WIN32_CPPFLAGS) if HAVE_PORTAUDIO libopenmpt_example_c_CPPFLAGS = $(WIN32_CPPFLAGS) $(PORTAUDIO_CFLAGS) libopenmpt_example_c_mem_CPPFLAGS = $(WIN32_CPPFLAGS) $(PORTAUDIO_CFLAGS) @@ -84,8 +89,9 @@ libopenmpt_example_cxx_CPPFLAGS = $(WIN32_CPPFLAGS) $(MINGWSTDTHREADS_CPPFLAGS) $(PORTAUDIOCPP_CFLAGS) endif -libopenmpt_example_c_stdout_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) +libopenmpt_example_c_pipe_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) libopenmpt_example_c_probe_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) +libopenmpt_example_c_stdout_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) if HAVE_PORTAUDIO libopenmpt_example_c_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) libopenmpt_example_c_mem_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) @@ -95,8 +101,9 @@ libopenmpt_example_cxx_CXXFLAGS = $(WIN32_CXXFLAGS) $(WIN32_CONSOLE_CXXFLAGS) endif -libopenmpt_example_c_stdout_LDADD = $(lib_LTLIBRARIES) +libopenmpt_example_c_pipe_LDADD = $(lib_LTLIBRARIES) libopenmpt_example_c_probe_LDADD = $(lib_LTLIBRARIES) +libopenmpt_example_c_stdout_LDADD = $(lib_LTLIBRARIES) if HAVE_PORTAUDIO libopenmpt_example_c_LDADD = $(lib_LTLIBRARIES) $(PORTAUDIO_LIBS) libopenmpt_example_c_mem_LDADD = $(lib_LTLIBRARIES) $(PORTAUDIO_LIBS) |
From: <sv...@op...> - 2024-04-10 12:24:59
|
Author: manx Date: Wed Apr 10 14:24:45 2024 New Revision: 20556 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20556 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Modified: branches/OpenMPT-1.31/doc/libopenmpt/changelog.md ============================================================================== --- branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Wed Apr 10 14:24:33 2024 (r20555) +++ branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Wed Apr 10 14:24:45 2024 (r20556) @@ -7,6 +7,10 @@ ### libopenmpt 0.7.7-pre + * [**Bug**] `examples/libopenmpt_example_c_pipe.c` and + `libopenmpt/bindings/freebasic/libopenmpt_ext.bi` were missing from the + Autotools package. + * mpg123: Update to v1.32.6 (2024-04-04). ### libopenmpt 0.7.6 (2024-03-24) |
From: <sv...@op...> - 2024-04-10 12:24:51
|
Author: manx Date: Wed Apr 10 14:24:33 2024 New Revision: 20555 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20555 Log: Merged revision(s) 20553-20554 from trunk/OpenMPT: [Fix] build: Autotools: Pipe example was missing. ........ [Fix] build: Autotools: libopenmpt_ext.bi was missing. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/build/autotools/Makefile.am Modified: branches/OpenMPT-1.31/build/autotools/Makefile.am ============================================================================== --- branches/OpenMPT-1.31/build/autotools/Makefile.am Wed Apr 10 14:05:25 2024 (r20554) +++ branches/OpenMPT-1.31/build/autotools/Makefile.am Wed Apr 10 14:24:33 2024 (r20555) @@ -29,6 +29,7 @@ EXTRA_DIST += man/openmpt123.1 EXTRA_DIST += examples/.clang-format EXTRA_DIST += libopenmpt/bindings/freebasic/libopenmpt.bi +EXTRA_DIST += libopenmpt/bindings/freebasic/libopenmpt_ext.bi MOSTLYCLEANFILES = dist_doc_DATA = @@ -39,6 +40,7 @@ nobase_dist_doc_DATA += examples/libopenmpt_example_c_mem.c nobase_dist_doc_DATA += examples/libopenmpt_example_c_unsafe.c nobase_dist_doc_DATA += examples/libopenmpt_example_c.c +nobase_dist_doc_DATA += examples/libopenmpt_example_c_pipe.c nobase_dist_doc_DATA += examples/libopenmpt_example_c_probe.c nobase_dist_doc_DATA += examples/libopenmpt_example_c_stdout.c @@ -51,8 +53,9 @@ if ENABLE_EXAMPLES -check_PROGRAMS += libopenmpt_example_c_stdout +check_PROGRAMS += libopenmpt_example_c_pipe check_PROGRAMS += libopenmpt_example_c_probe +check_PROGRAMS += libopenmpt_example_c_stdout if HAVE_PORTAUDIO check_PROGRAMS += libopenmpt_example_c check_PROGRAMS += libopenmpt_example_c_mem @@ -62,8 +65,9 @@ check_PROGRAMS += libopenmpt_example_cxx endif -libopenmpt_example_c_stdout_SOURCES = examples/libopenmpt_example_c_stdout.c +libopenmpt_example_c_pipe_SOURCES = examples/libopenmpt_example_c_pipe.c libopenmpt_example_c_probe_SOURCES = examples/libopenmpt_example_c_probe.c +libopenmpt_example_c_stdout_SOURCES = examples/libopenmpt_example_c_stdout.c if HAVE_PORTAUDIO libopenmpt_example_c_SOURCES = examples/libopenmpt_example_c.c libopenmpt_example_c_mem_SOURCES = examples/libopenmpt_example_c_mem.c @@ -73,8 +77,9 @@ libopenmpt_example_cxx_SOURCES = examples/libopenmpt_example_cxx.cpp endif -libopenmpt_example_c_stdout_CPPFLAGS = $(WIN32_CPPFLAGS) +libopenmpt_example_c_pipe_CPPFLAGS = $(WIN32_CPPFLAGS) libopenmpt_example_c_probe_CPPFLAGS = $(WIN32_CPPFLAGS) +libopenmpt_example_c_stdout_CPPFLAGS = $(WIN32_CPPFLAGS) if HAVE_PORTAUDIO libopenmpt_example_c_CPPFLAGS = $(WIN32_CPPFLAGS) $(PORTAUDIO_CFLAGS) libopenmpt_example_c_mem_CPPFLAGS = $(WIN32_CPPFLAGS) $(PORTAUDIO_CFLAGS) @@ -84,8 +89,9 @@ libopenmpt_example_cxx_CPPFLAGS = $(WIN32_CPPFLAGS) $(PORTAUDIOCPP_CFLAGS) endif -libopenmpt_example_c_stdout_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) +libopenmpt_example_c_pipe_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) libopenmpt_example_c_probe_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) +libopenmpt_example_c_stdout_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) if HAVE_PORTAUDIO libopenmpt_example_c_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) libopenmpt_example_c_mem_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) @@ -95,8 +101,9 @@ libopenmpt_example_cxx_CXXFLAGS = $(WIN32_CXXFLAGS) $(WIN32_CONSOLE_CXXFLAGS) endif -libopenmpt_example_c_stdout_LDADD = $(lib_LTLIBRARIES) +libopenmpt_example_c_pipe_LDADD = $(lib_LTLIBRARIES) libopenmpt_example_c_probe_LDADD = $(lib_LTLIBRARIES) +libopenmpt_example_c_stdout_LDADD = $(lib_LTLIBRARIES) if HAVE_PORTAUDIO libopenmpt_example_c_LDADD = $(lib_LTLIBRARIES) $(PORTAUDIO_LIBS) libopenmpt_example_c_mem_LDADD = $(lib_LTLIBRARIES) $(PORTAUDIO_LIBS) |
From: <sv...@op...> - 2024-04-10 12:05:37
|
Author: manx Date: Wed Apr 10 14:05:25 2024 New Revision: 20554 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20554 Log: [Fix] build: Autotools: libopenmpt_ext.bi was missing. Modified: trunk/OpenMPT/build/autotools/Makefile.am Modified: trunk/OpenMPT/build/autotools/Makefile.am ============================================================================== --- trunk/OpenMPT/build/autotools/Makefile.am Wed Apr 10 12:54:22 2024 (r20553) +++ trunk/OpenMPT/build/autotools/Makefile.am Wed Apr 10 14:05:25 2024 (r20554) @@ -29,6 +29,7 @@ EXTRA_DIST += man/openmpt123.1 EXTRA_DIST += examples/.clang-format EXTRA_DIST += libopenmpt/bindings/freebasic/libopenmpt.bi +EXTRA_DIST += libopenmpt/bindings/freebasic/libopenmpt_ext.bi MOSTLYCLEANFILES = dist_doc_DATA = |
From: <sv...@op...> - 2024-04-10 10:54:29
|
Author: manx Date: Wed Apr 10 12:54:22 2024 New Revision: 20553 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20553 Log: [Fix] build: Autotools: Pipe example was missing. Modified: trunk/OpenMPT/build/autotools/Makefile.am Modified: trunk/OpenMPT/build/autotools/Makefile.am ============================================================================== --- trunk/OpenMPT/build/autotools/Makefile.am Wed Apr 10 11:26:10 2024 (r20552) +++ trunk/OpenMPT/build/autotools/Makefile.am Wed Apr 10 12:54:22 2024 (r20553) @@ -39,6 +39,7 @@ nobase_dist_doc_DATA += examples/libopenmpt_example_c_mem.c nobase_dist_doc_DATA += examples/libopenmpt_example_c_unsafe.c nobase_dist_doc_DATA += examples/libopenmpt_example_c.c +nobase_dist_doc_DATA += examples/libopenmpt_example_c_pipe.c nobase_dist_doc_DATA += examples/libopenmpt_example_c_probe.c nobase_dist_doc_DATA += examples/libopenmpt_example_c_stdout.c @@ -51,8 +52,9 @@ if ENABLE_EXAMPLES -check_PROGRAMS += libopenmpt_example_c_stdout +check_PROGRAMS += libopenmpt_example_c_pipe check_PROGRAMS += libopenmpt_example_c_probe +check_PROGRAMS += libopenmpt_example_c_stdout if HAVE_PORTAUDIO check_PROGRAMS += libopenmpt_example_c check_PROGRAMS += libopenmpt_example_c_mem @@ -62,8 +64,9 @@ check_PROGRAMS += libopenmpt_example_cxx endif -libopenmpt_example_c_stdout_SOURCES = examples/libopenmpt_example_c_stdout.c +libopenmpt_example_c_pipe_SOURCES = examples/libopenmpt_example_c_pipe.c libopenmpt_example_c_probe_SOURCES = examples/libopenmpt_example_c_probe.c +libopenmpt_example_c_stdout_SOURCES = examples/libopenmpt_example_c_stdout.c if HAVE_PORTAUDIO libopenmpt_example_c_SOURCES = examples/libopenmpt_example_c.c libopenmpt_example_c_mem_SOURCES = examples/libopenmpt_example_c_mem.c @@ -73,8 +76,9 @@ libopenmpt_example_cxx_SOURCES = examples/libopenmpt_example_cxx.cpp endif -libopenmpt_example_c_stdout_CPPFLAGS = $(WIN32_CPPFLAGS) +libopenmpt_example_c_pipe_CPPFLAGS = $(WIN32_CPPFLAGS) libopenmpt_example_c_probe_CPPFLAGS = $(WIN32_CPPFLAGS) +libopenmpt_example_c_stdout_CPPFLAGS = $(WIN32_CPPFLAGS) if HAVE_PORTAUDIO libopenmpt_example_c_CPPFLAGS = $(WIN32_CPPFLAGS) $(PORTAUDIO_CFLAGS) libopenmpt_example_c_mem_CPPFLAGS = $(WIN32_CPPFLAGS) $(PORTAUDIO_CFLAGS) @@ -84,8 +88,9 @@ libopenmpt_example_cxx_CPPFLAGS = $(WIN32_CPPFLAGS) $(PORTAUDIOCPP_CFLAGS) endif -libopenmpt_example_c_stdout_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) +libopenmpt_example_c_pipe_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) libopenmpt_example_c_probe_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) +libopenmpt_example_c_stdout_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) if HAVE_PORTAUDIO libopenmpt_example_c_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) libopenmpt_example_c_mem_CFLAGS = $(WIN32_CFLAGS) $(WIN32_CONSOLE_CFLAGS) @@ -95,8 +100,9 @@ libopenmpt_example_cxx_CXXFLAGS = $(WIN32_CXXFLAGS) $(WIN32_CONSOLE_CXXFLAGS) endif -libopenmpt_example_c_stdout_LDADD = $(lib_LTLIBRARIES) +libopenmpt_example_c_pipe_LDADD = $(lib_LTLIBRARIES) libopenmpt_example_c_probe_LDADD = $(lib_LTLIBRARIES) +libopenmpt_example_c_stdout_LDADD = $(lib_LTLIBRARIES) if HAVE_PORTAUDIO libopenmpt_example_c_LDADD = $(lib_LTLIBRARIES) $(PORTAUDIO_LIBS) libopenmpt_example_c_mem_LDADD = $(lib_LTLIBRARIES) $(PORTAUDIO_LIBS) |
From: <sv...@op...> - 2024-04-10 09:26:17
|
Author: manx Date: Wed Apr 10 11:26:10 2024 New Revision: 20552 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20552 Log: Merged revision(s) 20551 from trunk/OpenMPT: [Var] python: Update to v3.12.3. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/build/download_externals.cmd Modified: branches/OpenMPT-1.31/build/download_externals.cmd ============================================================================== --- branches/OpenMPT-1.31/build/download_externals.cmd Wed Apr 10 11:25:50 2024 (r20551) +++ branches/OpenMPT-1.31/build/download_externals.cmd Wed Apr 10 11:26:10 2024 (r20552) @@ -44,7 +44,7 @@ call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://web.archive.org/web/20200918004813if_/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe" "build\externals\htmlhelp.exe" d91371244ea98c691b4674ee266c4a2496a296800c176adae069d21f5c52c0763b21cc7859cfffa865b89e50171a2c99a6d14620c32f7d72c0ef04045348f856 3509072 || goto error -call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.12.2/python-3.12.3-embed-amd64.zip" "build\externals\python-3.12.3-embed-amd64.zip" b09fb48e9e17117d0e370e4a9934296c1211556594933ecaed4438daaa5e55fe673bb40e9ee0bc1bf7a038fa0711fbcc853422c84f3862703085cf891fae4298 11055461 || goto error +call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.12.3/python-3.12.3-embed-amd64.zip" "build\externals\python-3.12.3-embed-amd64.zip" b09fb48e9e17117d0e370e4a9934296c1211556594933ecaed4438daaa5e55fe673bb40e9ee0bc1bf7a038fa0711fbcc853422c84f3862703085cf891fae4298 11055461 || goto error call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://netcologne.dl.sourceforge.net/project/innounp/innounp/innounp%%%%200.50/innounp050.rar" "build\externals\innounp050.rar" dbbc809308267a866db9d6b751fdeda6d179e1a65d8ddb14bb51984431ae91493f9a76105e1789b245732043a2c696c869ed10964b48cf59f81e55bd52f85330 141621 || goto error |
From: <sv...@op...> - 2024-04-10 09:26:02
|
Author: manx Date: Wed Apr 10 11:25:50 2024 New Revision: 20551 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20551 Log: [Var] python: Update to v3.12.3. Modified: trunk/OpenMPT/build/download_externals.cmd Modified: trunk/OpenMPT/build/download_externals.cmd ============================================================================== --- trunk/OpenMPT/build/download_externals.cmd Wed Apr 10 11:05:35 2024 (r20550) +++ trunk/OpenMPT/build/download_externals.cmd Wed Apr 10 11:25:50 2024 (r20551) @@ -44,7 +44,7 @@ call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://web.archive.org/web/20200918004813if_/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe" "build\externals\htmlhelp.exe" d91371244ea98c691b4674ee266c4a2496a296800c176adae069d21f5c52c0763b21cc7859cfffa865b89e50171a2c99a6d14620c32f7d72c0ef04045348f856 3509072 || goto error -call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.12.2/python-3.12.3-embed-amd64.zip" "build\externals\python-3.12.3-embed-amd64.zip" b09fb48e9e17117d0e370e4a9934296c1211556594933ecaed4438daaa5e55fe673bb40e9ee0bc1bf7a038fa0711fbcc853422c84f3862703085cf891fae4298 11055461 || goto error +call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.12.3/python-3.12.3-embed-amd64.zip" "build\externals\python-3.12.3-embed-amd64.zip" b09fb48e9e17117d0e370e4a9934296c1211556594933ecaed4438daaa5e55fe673bb40e9ee0bc1bf7a038fa0711fbcc853422c84f3862703085cf891fae4298 11055461 || goto error call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://netcologne.dl.sourceforge.net/project/innounp/innounp/innounp%%%%200.50/innounp050.rar" "build\externals\innounp050.rar" dbbc809308267a866db9d6b751fdeda6d179e1a65d8ddb14bb51984431ae91493f9a76105e1789b245732043a2c696c869ed10964b48cf59f81e55bd52f85330 141621 || goto error |
From: <sv...@op...> - 2024-04-10 09:05:42
|
Author: manx Date: Wed Apr 10 11:05:35 2024 New Revision: 20550 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20550 Log: Merged revision(s) 20549 from trunk/OpenMPT: [Var] python: Update to v3.12.3. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/build/download_externals.cmd Modified: branches/OpenMPT-1.31/build/download_externals.cmd ============================================================================== --- branches/OpenMPT-1.31/build/download_externals.cmd Wed Apr 10 11:05:08 2024 (r20549) +++ branches/OpenMPT-1.31/build/download_externals.cmd Wed Apr 10 11:05:35 2024 (r20550) @@ -44,7 +44,7 @@ call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://web.archive.org/web/20200918004813if_/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe" "build\externals\htmlhelp.exe" d91371244ea98c691b4674ee266c4a2496a296800c176adae069d21f5c52c0763b21cc7859cfffa865b89e50171a2c99a6d14620c32f7d72c0ef04045348f856 3509072 || goto error -call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.12.2/python-3.12.2-embed-amd64.zip" "build\externals\python-3.12.2-embed-amd64.zip" 51b8f926f5591e804e4ce635ba7b2e944ba99a20834680fd7816063986ebcebdc26fc718c3ff39d478ced3b5c45f6e7500a4f306246bd84cbf5e6d3a6d05f7f4 11068186 || goto error +call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.12.2/python-3.12.3-embed-amd64.zip" "build\externals\python-3.12.3-embed-amd64.zip" b09fb48e9e17117d0e370e4a9934296c1211556594933ecaed4438daaa5e55fe673bb40e9ee0bc1bf7a038fa0711fbcc853422c84f3862703085cf891fae4298 11055461 || goto error call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://netcologne.dl.sourceforge.net/project/innounp/innounp/innounp%%%%200.50/innounp050.rar" "build\externals\innounp050.rar" dbbc809308267a866db9d6b751fdeda6d179e1a65d8ddb14bb51984431ae91493f9a76105e1789b245732043a2c696c869ed10964b48cf59f81e55bd52f85330 141621 || goto error @@ -73,7 +73,7 @@ call build\scriptlib\unpack.cmd "include\winamp" "build\externals\WA5.55_SDK.exe" "." || goto error call build\scriptlib\unpack.cmd "include\xmplay" "build\externals\xmp-sdk.zip" "." || goto error -call build\scriptlib\unpack.cmd "build\tools\python3" "build\externals\python-3.12.2-embed-amd64.zip" "." || goto error +call build\scriptlib\unpack.cmd "build\tools\python3" "build\externals\python-3.12.3-embed-amd64.zip" "." || goto error call :killdir "build\tools\innounp" || goto error call :killdir "build\tools\innosetup" || goto error |
From: <sv...@op...> - 2024-04-10 09:05:21
|
Author: manx Date: Wed Apr 10 11:05:08 2024 New Revision: 20549 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20549 Log: [Var] python: Update to v3.12.3. Modified: trunk/OpenMPT/build/download_externals.cmd Modified: trunk/OpenMPT/build/download_externals.cmd ============================================================================== --- trunk/OpenMPT/build/download_externals.cmd Tue Apr 9 22:51:51 2024 (r20548) +++ trunk/OpenMPT/build/download_externals.cmd Wed Apr 10 11:05:08 2024 (r20549) @@ -44,7 +44,7 @@ call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://web.archive.org/web/20200918004813if_/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe" "build\externals\htmlhelp.exe" d91371244ea98c691b4674ee266c4a2496a296800c176adae069d21f5c52c0763b21cc7859cfffa865b89e50171a2c99a6d14620c32f7d72c0ef04045348f856 3509072 || goto error -call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.12.2/python-3.12.2-embed-amd64.zip" "build\externals\python-3.12.2-embed-amd64.zip" 51b8f926f5591e804e4ce635ba7b2e944ba99a20834680fd7816063986ebcebdc26fc718c3ff39d478ced3b5c45f6e7500a4f306246bd84cbf5e6d3a6d05f7f4 11068186 || goto error +call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://www.python.org/ftp/python/3.12.2/python-3.12.3-embed-amd64.zip" "build\externals\python-3.12.3-embed-amd64.zip" b09fb48e9e17117d0e370e4a9934296c1211556594933ecaed4438daaa5e55fe673bb40e9ee0bc1bf7a038fa0711fbcc853422c84f3862703085cf891fae4298 11055461 || goto error call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://netcologne.dl.sourceforge.net/project/innounp/innounp/innounp%%%%200.50/innounp050.rar" "build\externals\innounp050.rar" dbbc809308267a866db9d6b751fdeda6d179e1a65d8ddb14bb51984431ae91493f9a76105e1789b245732043a2c696c869ed10964b48cf59f81e55bd52f85330 141621 || goto error @@ -73,7 +73,7 @@ call build\scriptlib\unpack.cmd "include\winamp" "build\externals\WA5.55_SDK.exe" "." || goto error call build\scriptlib\unpack.cmd "include\xmplay" "build\externals\xmp-sdk.zip" "." || goto error -call build\scriptlib\unpack.cmd "build\tools\python3" "build\externals\python-3.12.2-embed-amd64.zip" "." || goto error +call build\scriptlib\unpack.cmd "build\tools\python3" "build\externals\python-3.12.3-embed-amd64.zip" "." || goto error call :killdir "build\tools\innounp" || goto error call :killdir "build\tools\innosetup" || goto error |
Author: sagamusix Date: Tue Apr 9 22:51:51 2024 New Revision: 20548 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20548 Log: [New] Can now read GMC (Game Music Creator) files (https://bugs.openmpt.org/view.php?id=1762). [Mod] OpenMPT: Version is now 1.32.00.09 Added: trunk/OpenMPT/soundlib/Load_gmc.cpp (contents, props changed) Modified: trunk/OpenMPT/build/android_ndk/Android.mk trunk/OpenMPT/build/autotools/Makefile.am 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-small.vcxproj trunk/OpenMPT/build/vs2017winxp/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2017winxp/libopenmpt.vcxproj trunk/OpenMPT/build/vs2017winxp/libopenmpt.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-small.vcxproj trunk/OpenMPT/build/vs2017winxpansi/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/libopenmpt.vcxproj trunk/OpenMPT/build/vs2017winxpansi/libopenmpt.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-small.vcxproj trunk/OpenMPT/build/vs2019win10/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2019win10/libopenmpt.vcxproj trunk/OpenMPT/build/vs2019win10/libopenmpt.vcxproj.filters trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2019win10uwp/libopenmpt-small.vcxproj trunk/OpenMPT/build/vs2019win10uwp/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2019win10uwp/libopenmpt.vcxproj trunk/OpenMPT/build/vs2019win10uwp/libopenmpt.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-small.vcxproj trunk/OpenMPT/build/vs2019win7/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2019win7/libopenmpt.vcxproj trunk/OpenMPT/build/vs2019win7/libopenmpt.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-small.vcxproj trunk/OpenMPT/build/vs2019win81/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2019win81/libopenmpt.vcxproj trunk/OpenMPT/build/vs2019win81/libopenmpt.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-small.vcxproj trunk/OpenMPT/build/vs2022win10/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2022win10/libopenmpt.vcxproj trunk/OpenMPT/build/vs2022win10/libopenmpt.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-small.vcxproj trunk/OpenMPT/build/vs2022win10clang/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/libopenmpt.vcxproj trunk/OpenMPT/build/vs2022win10clang/libopenmpt.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2022win10clang/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/vs2022win10uwp/libopenmpt-small.vcxproj trunk/OpenMPT/build/vs2022win10uwp/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2022win10uwp/libopenmpt.vcxproj trunk/OpenMPT/build/vs2022win10uwp/libopenmpt.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-small.vcxproj trunk/OpenMPT/build/vs2022win7/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2022win7/libopenmpt.vcxproj trunk/OpenMPT/build/vs2022win7/libopenmpt.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-small.vcxproj trunk/OpenMPT/build/vs2022win81/libopenmpt-small.vcxproj.filters trunk/OpenMPT/build/vs2022win81/libopenmpt.vcxproj trunk/OpenMPT/build/vs2022win81/libopenmpt.vcxproj.filters trunk/OpenMPT/build/vs2022win81/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2022win81/libopenmpt_test.vcxproj.filters trunk/OpenMPT/build/xcode-ios/libopenmpt.xcodeproj/project.pbxproj trunk/OpenMPT/build/xcode-macosx/libopenmpt.xcodeproj/project.pbxproj trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/installer/filetypes-multi-arch-per-arch-retro.iss trunk/OpenMPT/installer/filetypes-multi-arch-per-arch.iss trunk/OpenMPT/installer/filetypes-multi-arch-retro.iss trunk/OpenMPT/installer/filetypes-multi-arch.iss trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Sndfile.h trunk/OpenMPT/soundlib/Tables.cpp Modified: trunk/OpenMPT/build/android_ndk/Android.mk ============================================================================== --- trunk/OpenMPT/build/android_ndk/Android.mk Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/android_ndk/Android.mk Tue Apr 9 22:51:51 2024 (r20548) @@ -125,6 +125,7 @@ soundlib/Load_far.cpp \ soundlib/Load_fmt.cpp \ soundlib/Load_gdm.cpp \ + soundlib/Load_gmc.cpp \ soundlib/Load_gt2.cpp \ soundlib/Load_imf.cpp \ soundlib/Load_it.cpp \ Modified: trunk/OpenMPT/build/autotools/Makefile.am ============================================================================== --- trunk/OpenMPT/build/autotools/Makefile.am Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/autotools/Makefile.am Tue Apr 9 22:51:51 2024 (r20548) @@ -379,6 +379,7 @@ MPT_FILES_SOUNDLIB += soundlib/Load_far.cpp MPT_FILES_SOUNDLIB += soundlib/Load_fmt.cpp MPT_FILES_SOUNDLIB += soundlib/Load_gdm.cpp +MPT_FILES_SOUNDLIB += soundlib/Load_gmc.cpp MPT_FILES_SOUNDLIB += soundlib/Load_gt2.cpp MPT_FILES_SOUNDLIB += soundlib/Load_imf.cpp MPT_FILES_SOUNDLIB += soundlib/Load_it.cpp Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1354,6 +1354,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2009,6 +2009,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1354,6 +1354,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2009,6 +2009,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1354,6 +1354,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2009,6 +2009,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/libopenmpt-small.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/libopenmpt-small.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/libopenmpt-small.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -984,6 +984,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/libopenmpt-small.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/libopenmpt-small.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/libopenmpt-small.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/libopenmpt.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/libopenmpt.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/libopenmpt.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -984,6 +984,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/libopenmpt.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/libopenmpt.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/libopenmpt.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1020,6 +1020,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxp/libopenmpt_test.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1205,6 +1205,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1354,6 +1354,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2009,6 +2009,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1354,6 +1354,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2009,6 +2009,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1354,6 +1354,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2009,6 +2009,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/libopenmpt-small.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/libopenmpt-small.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/libopenmpt-small.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -984,6 +984,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/libopenmpt-small.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/libopenmpt-small.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/libopenmpt-small.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/libopenmpt.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/libopenmpt.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/libopenmpt.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -984,6 +984,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/libopenmpt.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/libopenmpt.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/libopenmpt.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1020,6 +1020,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1205,6 +1205,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -2129,6 +2129,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -2129,6 +2129,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -2129,6 +2129,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/OpenMPT.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10/libopenmpt-small.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/libopenmpt-small.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/libopenmpt-small.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1611,6 +1611,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10/libopenmpt-small.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/libopenmpt-small.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/libopenmpt-small.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10/libopenmpt.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/libopenmpt.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/libopenmpt.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1611,6 +1611,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10/libopenmpt.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/libopenmpt.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/libopenmpt.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1677,6 +1677,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10/libopenmpt_test.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1211,6 +1211,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10uwp/libopenmpt-small.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10uwp/libopenmpt-small.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10uwp/libopenmpt-small.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1641,6 +1641,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10uwp/libopenmpt-small.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10uwp/libopenmpt-small.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10uwp/libopenmpt-small.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win10uwp/libopenmpt.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win10uwp/libopenmpt.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10uwp/libopenmpt.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1641,6 +1641,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win10uwp/libopenmpt.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win10uwp/libopenmpt.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win10uwp/libopenmpt.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1373,6 +1373,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1373,6 +1373,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1373,6 +1373,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/libopenmpt-small.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/libopenmpt-small.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/libopenmpt-small.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -981,6 +981,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/libopenmpt-small.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/libopenmpt-small.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/libopenmpt-small.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/libopenmpt.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/libopenmpt.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/libopenmpt.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -981,6 +981,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/libopenmpt.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/libopenmpt.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/libopenmpt.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1017,6 +1017,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win7/libopenmpt_test.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1211,6 +1211,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win81/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win81/OpenMPT-ANSI.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/OpenMPT-ANSI.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1373,6 +1373,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win81/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win81/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win81/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win81/OpenMPT-UTF8.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/OpenMPT-UTF8.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1373,6 +1373,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win81/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win81/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win81/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win81/OpenMPT.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/OpenMPT.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1373,6 +1373,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win81/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win81/OpenMPT.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/OpenMPT.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win81/libopenmpt-small.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win81/libopenmpt-small.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/libopenmpt-small.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -981,6 +981,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win81/libopenmpt-small.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win81/libopenmpt-small.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/libopenmpt-small.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win81/libopenmpt.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win81/libopenmpt.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/libopenmpt.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -981,6 +981,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win81/libopenmpt.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win81/libopenmpt.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/libopenmpt.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win81/libopenmpt_test.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win81/libopenmpt_test.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/libopenmpt_test.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1017,6 +1017,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2019win81/libopenmpt_test.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win81/libopenmpt_test.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2019win81/libopenmpt_test.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1211,6 +1211,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -2169,6 +2169,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -2169,6 +2169,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -2169,6 +2169,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -2051,6 +2051,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> </ClCompile> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp"> + <Filter>soundlib</Filter> + </ClCompile> <ClCompile Include="..\..\soundlib\Load_gt2.cpp"> <Filter>soundlib</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10/libopenmpt-small.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/libopenmpt-small.vcxproj Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2022win10/libopenmpt-small.vcxproj Tue Apr 9 22:51:51 2024 (r20548) @@ -1651,6 +1651,7 @@ <ClCompile Include="..\..\soundlib\Load_far.cpp" /> <ClCompile Include="..\..\soundlib\Load_fmt.cpp" /> <ClCompile Include="..\..\soundlib\Load_gdm.cpp" /> + <ClCompile Include="..\..\soundlib\Load_gmc.cpp" /> <ClCompile Include="..\..\soundlib\Load_gt2.cpp" /> <ClCompile Include="..\..\soundlib\Load_imf.cpp" /> <ClCompile Include="..\..\soundlib\Load_it.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10/libopenmpt-small.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/libopenmpt-small.vcxproj.filters Tue Apr 9 21:50:02 2024 (r20547) +++ trunk/OpenMPT/build/vs2022win10/libopenmpt-small.vcxproj.filters Tue Apr 9 22:51:51 2024 (r20548) @@ -1181,6 +1181,9 @@ <ClCompile Include="..\..\soundlib\Load_gdm.cpp"> <Filter>soundlib</Filter> ... [truncated message content] |
From: <sv...@op...> - 2024-04-09 19:50:17
|
Author: sagamusix Date: Tue Apr 9 21:50:02 2024 New Revision: 20547 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20547 Log: [Mod] Add separate song flag for fast portamentos, similar to fast volume slides. Modified: trunk/OpenMPT/soundlib/Load_669.cpp trunk/OpenMPT/soundlib/Load_med.cpp trunk/OpenMPT/soundlib/Load_okt.cpp trunk/OpenMPT/soundlib/Snd_defs.h trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Load_669.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_669.cpp Tue Apr 9 20:12:09 2024 (r20546) +++ trunk/OpenMPT/soundlib/Load_669.cpp Tue Apr 9 21:50:02 2024 (r20547) @@ -142,6 +142,7 @@ Order().SetDefaultSpeed(4); m_nChannels = 8; m_playBehaviour.set(kPeriodsAreHertz); + m_SongFlags.set(SONG_FASTPORTAS); #ifdef MODPLUG_TRACKER // 669 uses frequencies rather than periods, so linear slides mode will sound better in the higher octaves. //m_SongFlags.set(SONG_LINEARSLIDES); Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Tue Apr 9 20:12:09 2024 (r20546) +++ trunk/OpenMPT/soundlib/Load_med.cpp Tue Apr 9 21:50:02 2024 (r20547) @@ -1209,8 +1209,8 @@ m_nDefaultGlobalVolume = std::min<uint8>(songHeader.masterVol, 64) * 4; m_nSamplePreAmp = m_nVSTiVolume = preamp; - // For MED, this affects both volume and pitch slides m_SongFlags.set(SONG_FASTVOLSLIDES, !(songHeader.flags & MMDSong::FLAG_STSLIDE)); + m_SongFlags.set(SONG_FASTPORTAS, !(songHeader.flags& MMDSong::FLAG_STSLIDE)); if(expData.songNameOffset && file.Seek(expData.songNameOffset)) { Modified: trunk/OpenMPT/soundlib/Load_okt.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_okt.cpp Tue Apr 9 20:12:09 2024 (r20546) +++ trunk/OpenMPT/soundlib/Load_okt.cpp Tue Apr 9 21:50:02 2024 (r20547) @@ -451,6 +451,7 @@ m_nSamplePreAmp = m_nVSTiVolume = 48; m_nMinPeriod = 113 * 4; m_nMaxPeriod = 856 * 4; + m_SongFlags.set(SONG_FASTPORTAS); // Fix orderlist Order().resize(numOrders); Modified: trunk/OpenMPT/soundlib/Snd_defs.h ============================================================================== --- trunk/OpenMPT/soundlib/Snd_defs.h Tue Apr 9 20:12:09 2024 (r20546) +++ trunk/OpenMPT/soundlib/Snd_defs.h Tue Apr 9 21:50:02 2024 (r20547) @@ -245,7 +245,8 @@ // Module flags - contains both song configuration and playback state... Use SONG_FILE_FLAGS and SONG_PLAY_FLAGS distinguish between the two. enum SongFlags { - SONG_FASTVOLSLIDES = 0x02, // Old Scream Tracker 3.0 volume slides + SONG_FASTPORTAS = 0x01, // Portamentos are executed on every tick + SONG_FASTVOLSLIDES = 0x02, // Old Scream Tracker 3.0 volume slides (executed on every tick) SONG_ITOLDEFFECTS = 0x04, // Old Impulse Tracker effect implementations SONG_ITCOMPATGXX = 0x08, // IT "Compatible Gxx" (IT's flag to behave more like other trackers w/r/t portamento effects) SONG_LINEARSLIDES = 0x10, // Linear slides vs. Amiga slides @@ -269,7 +270,7 @@ }; DECLARE_FLAGSET(SongFlags) -#define SONG_FILE_FLAGS (SONG_FASTVOLSLIDES|SONG_ITOLDEFFECTS|SONG_ITCOMPATGXX|SONG_LINEARSLIDES|SONG_EXFILTERRANGE|SONG_AMIGALIMITS|SONG_S3MOLDVIBRATO|SONG_PT_MODE|SONG_ISAMIGA|SONG_IMPORTED) +#define SONG_FILE_FLAGS (SONG_FASTPORTAS|SONG_FASTVOLSLIDES|SONG_ITOLDEFFECTS|SONG_ITCOMPATGXX|SONG_LINEARSLIDES|SONG_EXFILTERRANGE|SONG_AMIGALIMITS|SONG_S3MOLDVIBRATO|SONG_PT_MODE|SONG_ISAMIGA|SONG_IMPORTED) #define SONG_PLAY_FLAGS (~SONG_FILE_FLAGS) // Global Options (Renderer) Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp Tue Apr 9 20:12:09 2024 (r20546) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp Tue Apr 9 21:50:02 2024 (r20547) @@ -3826,8 +3826,7 @@ // Regular Slide if(!chn.isFirstTick || (m_PlayState.m_nMusicSpeed == 1 && m_playBehaviour[kSlidesAtSpeed1]) - || (GetType() & (MOD_TYPE_669 | MOD_TYPE_OKT)) - || (GetType() == MOD_TYPE_MED && m_SongFlags[SONG_FASTVOLSLIDES])) + || m_SongFlags[SONG_FASTPORTAS]) { DoFreqSlide(chn, chn.nPeriod, param * 4); } @@ -3898,8 +3897,7 @@ if(!chn.isFirstTick || (m_PlayState.m_nMusicSpeed == 1 && m_playBehaviour[kSlidesAtSpeed1]) - || (GetType() & (MOD_TYPE_669 | MOD_TYPE_OKT)) - || (GetType() == MOD_TYPE_MED && m_SongFlags[SONG_FASTVOLSLIDES])) + || m_SongFlags[SONG_FASTPORTAS]) { DoFreqSlide(chn, chn.nPeriod, param * -4); } @@ -4226,9 +4224,9 @@ return 0; bool doPorta = !chn.isFirstTick - || (GetType() & (MOD_TYPE_DBM | MOD_TYPE_669)) + || GetType() == MOD_TYPE_DBM || (playState.m_nMusicSpeed == 1 && m_playBehaviour[kSlidesAtSpeed1]) - || (GetType() == MOD_TYPE_MED && m_SongFlags[SONG_FASTVOLSLIDES]); + || m_SongFlags[SONG_FASTPORTAS]; int32 delta = chn.portamentoSlide; if(GetType() == MOD_TYPE_PLM && delta >= 0xF0) |
From: <sv...@op...> - 2024-04-09 18:12:22
|
Author: sagamusix Date: Tue Apr 9 20:12:09 2024 New Revision: 20546 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20546 Log: [Mod] Comments tab: Also apply fixed-width font to filenames. Modified: trunk/OpenMPT/mptrack/view_com.cpp Modified: trunk/OpenMPT/mptrack/view_com.cpp ============================================================================== --- trunk/OpenMPT/mptrack/view_com.cpp Tue Apr 9 20:04:10 2024 (r20545) +++ trunk/OpenMPT/mptrack/view_com.cpp Tue Apr 9 20:12:09 2024 (r20546) @@ -64,7 +64,7 @@ { _T("Type"), 80, LVCFMT_RIGHT }, { _T("C-5 Freq"), 80, LVCFMT_RIGHT }, { _T("Instr"), 64, LVCFMT_RIGHT }, - { _T("File Name"), 128, LVCFMT_RIGHT }, + { _T("File Name"), 160, LVCFMT_RIGHT }, { _T("Path"), 256, LVCFMT_LEFT }, }; @@ -74,7 +74,7 @@ { _T("Num"), 45, LVCFMT_RIGHT }, { _T("Samples"), 64, LVCFMT_RIGHT }, { _T("Envelopes"), 128, LVCFMT_RIGHT }, - { _T("File Name"), 128, LVCFMT_RIGHT }, + { _T("File Name"), 160, LVCFMT_RIGHT }, { _T("Plugin"), 128, LVCFMT_RIGHT }, }; @@ -690,6 +690,7 @@ const auto &lvcd = *reinterpret_cast<NMLVCUSTOMDRAW *>(pNMHDR); *pResult = CDRF_DODEFAULT; + const bool useFont = lvcd.iSubItem == 0 || (m_nListId == IDC_LIST_SAMPLES && lvcd.iSubItem == SMPLIST_FILENAME) || (m_nListId == IDC_LIST_INSTRUMENTS && lvcd.iSubItem == INSLIST_FILENAME); switch(lvcd.nmcd.dwDrawStage) { case CDDS_PREPAINT: @@ -699,14 +700,14 @@ *pResult = CDRF_NOTIFYSUBITEMDRAW; break; case CDDS_ITEMPREPAINT | CDDS_SUBITEM: - if(lvcd.iSubItem == 0) + if(useFont) { m_oldFont = SelectFont(lvcd.nmcd.hdc, m_fixedFont); *pResult = CDRF_NEWFONT | CDRF_NOTIFYPOSTPAINT; } break; case CDDS_ITEMPOSTPAINT | CDDS_SUBITEM: - if(lvcd.iSubItem == 0) + if(useFont) { SelectFont(lvcd.nmcd.hdc, m_oldFont); *pResult = CDRF_NEWFONT; |
From: <sv...@op...> - 2024-04-09 18:04:17
|
Author: sagamusix Date: Tue Apr 9 20:04:10 2024 New Revision: 20545 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20545 Log: [Imp] Comments tab: Sample / instrument names are now drawn using the Comments font, which is typically a fixed-width font (https://bugs.openmpt.org/view.php?id=1758). Modified: trunk/OpenMPT/mptrack/view_com.cpp trunk/OpenMPT/mptrack/view_com.h Modified: trunk/OpenMPT/mptrack/view_com.cpp ============================================================================== --- trunk/OpenMPT/mptrack/view_com.cpp Tue Apr 9 19:08:36 2024 (r20544) +++ trunk/OpenMPT/mptrack/view_com.cpp Tue Apr 9 20:04:10 2024 (r20545) @@ -58,24 +58,24 @@ static constexpr CListCtrlEx::Header SampleHeaders[SMPLIST_COLUMNS] = { - { _T("Sample Name"), 192, LVCFMT_LEFT }, - { _T("Num"), 45, LVCFMT_RIGHT }, - { _T("Size"), 72, LVCFMT_RIGHT }, - { _T("Type"), 80, LVCFMT_RIGHT }, - { _T("C-5 Freq"), 80, LVCFMT_RIGHT }, - { _T("Instr"), 64, LVCFMT_RIGHT }, - { _T("File Name"), 128, LVCFMT_RIGHT }, - { _T("Path"), 256, LVCFMT_LEFT }, + { _T("Sample Name"), 208, LVCFMT_LEFT }, + { _T("Num"), 45, LVCFMT_RIGHT }, + { _T("Size"), 72, LVCFMT_RIGHT }, + { _T("Type"), 80, LVCFMT_RIGHT }, + { _T("C-5 Freq"), 80, LVCFMT_RIGHT }, + { _T("Instr"), 64, LVCFMT_RIGHT }, + { _T("File Name"), 128, LVCFMT_RIGHT }, + { _T("Path"), 256, LVCFMT_LEFT }, }; static constexpr CListCtrlEx::Header InstrumentHeaders[INSLIST_COLUMNS] = { - { _T("Instrument Name"), 192, LVCFMT_LEFT }, - { _T("Num"), 45, LVCFMT_RIGHT }, - { _T("Samples"), 64, LVCFMT_RIGHT }, - { _T("Envelopes"), 128, LVCFMT_RIGHT }, - { _T("File Name"), 128, LVCFMT_RIGHT }, - { _T("Plugin"), 128, LVCFMT_RIGHT }, + { _T("Instrument Name"), 208, LVCFMT_LEFT }, + { _T("Num"), 45, LVCFMT_RIGHT }, + { _T("Samples"), 64, LVCFMT_RIGHT }, + { _T("Envelopes"), 128, LVCFMT_RIGHT }, + { _T("File Name"), 128, LVCFMT_RIGHT }, + { _T("Plugin"), 128, LVCFMT_RIGHT }, }; @@ -95,6 +95,7 @@ ON_NOTIFY(LVN_BEGINLABELEDIT, IDC_LIST_DETAILS, &CViewComments::OnBeginLabelEdit) ON_NOTIFY(NM_DBLCLK, IDC_LIST_DETAILS, &CViewComments::OnDblClickListItem) ON_NOTIFY(NM_RCLICK, IDC_LIST_DETAILS, &CViewComments::OnRClickListItem) + ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST_DETAILS, &CViewComments::OnCustomDrawList) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -130,13 +131,14 @@ m_ToolBar.Init(CMainFrame::GetMainFrame()->m_MiscIcons, CMainFrame::GetMainFrame()->m_MiscIconsDisabled); m_ItemList.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT | LVS_SINGLESEL | LVS_EDITLABELS | LVS_NOSORTHEADER, rect, this, IDC_LIST_DETAILS); m_ItemList.ModifyStyleEx(0, WS_EX_STATICEDGE); + // Add ToolBar Buttons m_ToolBar.AddButton(IDC_LIST_SAMPLES, IMAGE_SAMPLES); m_ToolBar.AddButton(IDC_LIST_INSTRUMENTS, IMAGE_INSTRUMENTS); //m_ToolBar.AddButton(IDC_LIST_PATTERNS, TIMAGE_TAB_PATTERNS); m_ToolBar.SetIndent(4); UpdateButtonState(); - UpdateView(UpdateHint().ModType()); + UpdateView(UpdateHint().ModType().MPTOptions()); } @@ -153,6 +155,7 @@ commentState.initialized = true; commentState.nId = m_nListId; } + m_fixedFont.DeleteObject(); CModScrollView::OnDestroy(); } @@ -293,6 +296,16 @@ if (hintType[HINT_MPTOPTIONS]) { m_ToolBar.UpdateStyle(); + + // Font for sample / instrument names + CFont *font = m_ItemList.GetFont(); + LOGFONT lf; + font->GetLogFont(&lf); + mpt::WriteWinBuf(lf.lfFaceName) = mpt::ToWin(TrackerSettings::Instance().commentsFont.Get().name); + m_fixedFont.DeleteObject(); + m_fixedFont.CreateFontIndirect(&lf); + + m_ItemList.Invalidate(FALSE); } const SampleHint sampleHint = hint.ToType<SampleHint>(); const InstrumentHint instrHint = hint.ToType<InstrumentHint>(); @@ -555,8 +568,8 @@ void CViewComments::OnEndLabelEdit(LPNMHDR pnmhdr, LRESULT *) { CMainFrame::GetInputHandler()->Bypass(false); - LV_DISPINFO *plvDispInfo = (LV_DISPINFO *)pnmhdr; - LV_ITEM &lvItem = plvDispInfo->item; + LV_DISPINFO &lvDispInfo = *reinterpret_cast<LV_DISPINFO *>(pnmhdr); + LV_ITEM &lvItem = lvDispInfo.item; CModDoc *pModDoc = GetDocument(); if(lvItem.pszText != nullptr && !lvItem.iSubItem && pModDoc) @@ -672,6 +685,37 @@ } +void CViewComments::OnCustomDrawList(NMHDR *pNMHDR, LRESULT *pResult) +{ + const auto &lvcd = *reinterpret_cast<NMLVCUSTOMDRAW *>(pNMHDR); + *pResult = CDRF_DODEFAULT; + + switch(lvcd.nmcd.dwDrawStage) + { + case CDDS_PREPAINT: + *pResult = CDRF_NOTIFYITEMDRAW; + break; + case CDDS_ITEMPREPAINT: + *pResult = CDRF_NOTIFYSUBITEMDRAW; + break; + case CDDS_ITEMPREPAINT | CDDS_SUBITEM: + if(lvcd.iSubItem == 0) + { + m_oldFont = SelectFont(lvcd.nmcd.hdc, m_fixedFont); + *pResult = CDRF_NEWFONT | CDRF_NOTIFYPOSTPAINT; + } + break; + case CDDS_ITEMPOSTPAINT | CDDS_SUBITEM: + if(lvcd.iSubItem == 0) + { + SelectFont(lvcd.nmcd.hdc, m_oldFont); + *pResult = CDRF_NEWFONT; + } + break; + } +} + + void CViewComments::OnCopyNames() { std::wstring names; Modified: trunk/OpenMPT/mptrack/view_com.h ============================================================================== --- trunk/OpenMPT/mptrack/view_com.h Tue Apr 9 19:08:36 2024 (r20544) +++ trunk/OpenMPT/mptrack/view_com.h Tue Apr 9 20:04:10 2024 (r20545) @@ -28,6 +28,8 @@ protected: CModControlBar m_ToolBar; CListCtrlEx m_ItemList; + CFont m_fixedFont; + HFONT m_oldFont = nullptr; int m_nCurrentListId = 0, m_nListId = 0; ModCommand::NOTE m_lastNote = NOTE_NONE; CHANNELINDEX m_noteChannel = CHANNELINDEX_INVALID; @@ -59,6 +61,7 @@ afx_msg void OnBeginLabelEdit(LPNMHDR pnmhdr, LRESULT *pLResult); afx_msg void OnDblClickListItem(NMHDR *, LRESULT *); afx_msg void OnRClickListItem(NMHDR *, LRESULT *); + afx_msg void OnCustomDrawList(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnCopyNames(); afx_msg LRESULT OnMidiMsg(WPARAM midiData, LPARAM); afx_msg LRESULT OnCustomKeyMsg(WPARAM, LPARAM); |
From: <sv...@op...> - 2024-04-09 17:08:44
|
Author: sagamusix Date: Tue Apr 9 19:08:36 2024 New Revision: 20544 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20544 Log: [Mod] Always only write out supported play behaviours. When manually saving from the UI, this was already ensured in CModDoc, but this way it is also done for autosaved files. Modified: trunk/OpenMPT/soundlib/Load_it.cpp Modified: trunk/OpenMPT/soundlib/Load_it.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp Tue Apr 9 19:02:30 2024 (r20543) +++ trunk/OpenMPT/soundlib/Load_it.cpp Tue Apr 9 19:08:36 2024 (r20544) @@ -2353,12 +2353,13 @@ // Playback compatibility flags { - uint8 bits[(kMaxPlayBehaviours + 7) / 8u]; - MemsetZero(bits); + const auto supportedBehaviours = GetSupportedPlaybackBehaviour(GetBestSaveFormat()); + std::array<uint8, (kMaxPlayBehaviours + 7) / 8u> bits; + bits.fill(0); size_t maxBit = 0; for(size_t i = 0; i < kMaxPlayBehaviours; i++) { - if(m_playBehaviour[i]) + if(m_playBehaviour[i] && supportedBehaviours[i]) { bits[i >> 3] |= 1 << (i & 0x07); maxBit = i + 8; @@ -2366,7 +2367,7 @@ } uint16 numBytes = static_cast<uint16>(maxBit / 8u); WRITEMODULARHEADER(MagicBE("MSF."), numBytes); - mpt::IO::WriteRaw(f, bits, numBytes); + mpt::IO::WriteRaw(f, bits.data(), numBytes); } if(!m_songArtist.empty() && specs.hasArtistName) |
From: <sv...@op...> - 2024-04-09 17:02:40
|
Author: sagamusix Date: Tue Apr 9 19:02:30 2024 New Revision: 20543 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20543 Log: [New] Templates can now be opened from the "New" icon in the main toolbar (https://bugs.openmpt.org/view.php?id=254). Modified: trunk/OpenMPT/mptrack/Mainbar.cpp Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Mon Apr 8 23:44:54 2024 (r20542) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Tue Apr 9 19:02:30 2024 (r20543) @@ -642,7 +642,17 @@ switch(pToolBar->iItem) { case ID_FILE_NEW: - CMainFrame::GetMainFrame()->GetFileMenu()->GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pToolBar->rcButton.left, pToolBar->rcButton.bottom, this); + { + auto *mainFrm = CMainFrame::GetMainFrame(); + CMenu *newMenu = mainFrm->GetFileMenu()->GetSubMenu(0); + CMenu *templateMenu = mainFrm->GetFileMenu()->GetSubMenu(2); + const bool hasTemplates = templateMenu->GetMenuItemID(0) != 0; + if(hasTemplates) + newMenu->AppendMenu(MF_POPUP, reinterpret_cast<UINT_PTR>(templateMenu->m_hMenu), _T("&Templates")); + newMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pToolBar->rcButton.left, pToolBar->rcButton.bottom, this); + if(hasTemplates) + newMenu->RemoveMenu(newMenu->GetMenuItemCount() - 1, MF_BYPOSITION); + } break; case ID_MIDI_RECORD: // Show a list of MIDI devices |
From: <sv...@op...> - 2024-04-08 21:45:02
|
Author: sagamusix Date: Mon Apr 8 23:44:54 2024 New Revision: 20542 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20542 Log: Merged revision(s) 20538 from trunk/OpenMPT: [Mod] M15: The heuristics in r20524 were a bit too loose, also identifying some GMC files as SoundTracker modules. Tighten the song title check again to previous values, but ignore it if a sufficent amount of sample headers has "real-looking" sample names (starting with a disk name like st-01:...). ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/soundlib/Load_mod.cpp Modified: branches/OpenMPT-1.28/soundlib/Load_mod.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/Load_mod.cpp Mon Apr 8 23:43:38 2024 (r20541) +++ branches/OpenMPT-1.28/soundlib/Load_mod.cpp Mon Apr 8 23:44:54 2024 (r20542) @@ -319,6 +319,11 @@ + ((loopStart > length * 2) ? 1 : 0); } + bool HasDiskName() const + { + return (!memcmp(name, "st-", 3) || !memcmp(name, "ST-", 3)) && name[5] == ':'; + } + // Suggested threshold for rejecting invalid files based on cumulated score returned by GetInvalidByteScore enum : uint32 { INVALID_BYTE_THRESHOLD = 40 }; @@ -1322,15 +1327,13 @@ // However, there are quite a few SoundTracker modules in the wild with random // characters. To still be able to distguish them from other formats, we just reject // files with *too* many bogus characters. Arbitrary threshold: 48 bogus characters in total - // or more than 11 invalid characters just in the title alone (just enough to make scramble_2.mod load). - uint32 invalidChars = CountInvalidChars(fileHeaders.songname); - if(invalidChars > 11) - { - return false; - } + // or more than 5 invalid characters just in the title alone + uint32 invalidCharsInTitle = CountInvalidChars(fileHeaders.songname); + uint32 invalidChars = invalidCharsInTitle; SmpLength totalSampleLen = 0; uint8 allVolumes = 0; + uint8 diskNameCount = 0; for(SAMPLEINDEX smp = 0; smp < 15; smp++) { @@ -1341,6 +1344,8 @@ // 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++; // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 @@ -1354,6 +1359,12 @@ 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) + { + 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) { @@ -1487,7 +1498,7 @@ totalSampleLen += mptSmp.nLength; - if(m_szNames[smp][0] && ((memcmp(m_szNames[smp], "st-", 3) && memcmp(m_szNames[smp], "ST-", 3)) || m_szNames[smp][5] != ':')) + if(m_szNames[smp][0] && sampleHeader.HasDiskName()) { // Ultimate Soundtracker 1.8 and D.O.C. SoundTracker IX always have sample names containing disk names. hasDiskNames = false; |
From: <sv...@op...> - 2024-04-08 21:43:57
|
Author: sagamusix Date: Mon Apr 8 23:43:38 2024 New Revision: 20541 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20541 Log: Merged revision(s) 20538 from trunk/OpenMPT: [Mod] M15: The heuristics in r20524 were a bit too loose, also identifying some GMC files as SoundTracker modules. Tighten the song title check again to previous values, but ignore it if a sufficent amount of sample headers has "real-looking" sample names (starting with a disk name like st-01:...). ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/soundlib/Load_mod.cpp Modified: branches/OpenMPT-1.29/soundlib/Load_mod.cpp ============================================================================== --- branches/OpenMPT-1.29/soundlib/Load_mod.cpp Mon Apr 8 23:43:21 2024 (r20540) +++ branches/OpenMPT-1.29/soundlib/Load_mod.cpp Mon Apr 8 23:43:38 2024 (r20541) @@ -321,6 +321,11 @@ + ((loopStart > length * 2) ? 1 : 0); } + bool HasDiskName() const + { + return (!memcmp(name, "st-", 3) || !memcmp(name, "ST-", 3)) && name[5] == ':'; + } + // Suggested threshold for rejecting invalid files based on cumulated score returned by GetInvalidByteScore static constexpr uint32 INVALID_BYTE_THRESHOLD = 40; @@ -1363,15 +1368,13 @@ // However, there are quite a few SoundTracker modules in the wild with random // characters. To still be able to distguish them from other formats, we just reject // files with *too* many bogus characters. Arbitrary threshold: 48 bogus characters in total - // or more than 11 invalid characters just in the title alone (just enough to make scramble_2.mod load). - uint32 invalidChars = CountInvalidChars(fileHeaders.songname); - if(invalidChars > 11) - { - return false; - } + // or more than 5 invalid characters just in the title alone + uint32 invalidCharsInTitle = CountInvalidChars(fileHeaders.songname); + uint32 invalidChars = invalidCharsInTitle; SmpLength totalSampleLen = 0; uint8 allVolumes = 0; + uint8 diskNameCount = 0; for(SAMPLEINDEX smp = 0; smp < 15; smp++) { @@ -1382,6 +1385,8 @@ // 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++; // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 @@ -1395,6 +1400,12 @@ 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) + { + 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) { @@ -1500,7 +1511,7 @@ totalSampleLen += mptSmp.nLength; - if(m_szNames[smp][0] && ((memcmp(m_szNames[smp].buf, "st-", 3) && memcmp(m_szNames[smp].buf, "ST-", 3)) || m_szNames[smp][5] != ':')) + if(m_szNames[smp][0] && sampleHeader.HasDiskName()) { // Ultimate Soundtracker 1.8 and D.O.C. SoundTracker IX always have sample names containing disk names. hasDiskNames = false; |
From: <sv...@op...> - 2024-04-08 21:43:33
|
Author: sagamusix Date: Mon Apr 8 23:43:21 2024 New Revision: 20540 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20540 Log: Merged revision(s) 20538 from trunk/OpenMPT: [Mod] M15: The heuristics in r20524 were a bit too loose, also identifying some GMC files as SoundTracker modules. Tighten the song title check again to previous values, but ignore it if a sufficent amount of sample headers has "real-looking" sample names (starting with a disk name like st-01:...). ........ Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/soundlib/Load_mod.cpp Modified: branches/OpenMPT-1.30/soundlib/Load_mod.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/Load_mod.cpp Mon Apr 8 23:43:03 2024 (r20539) +++ branches/OpenMPT-1.30/soundlib/Load_mod.cpp Mon Apr 8 23:43:21 2024 (r20540) @@ -324,6 +324,11 @@ + ((loopStart > length * 2) ? 1 : 0); } + bool HasDiskName() const + { + return (!memcmp(name, "st-", 3) || !memcmp(name, "ST-", 3)) && name[5] == ':'; + } + // Suggested threshold for rejecting invalid files based on cumulated score returned by GetInvalidByteScore static constexpr uint32 INVALID_BYTE_THRESHOLD = 40; @@ -1370,15 +1375,13 @@ // However, there are quite a few SoundTracker modules in the wild with random // characters. To still be able to distguish them from other formats, we just reject // files with *too* many bogus characters. Arbitrary threshold: 48 bogus characters in total - // or more than 11 invalid characters just in the title alone (just enough to make scramble_2.mod load). - uint32 invalidChars = CountInvalidChars(fileHeaders.songname); - if(invalidChars > 11) - { - return false; - } + // or more than 5 invalid characters just in the title alone + uint32 invalidCharsInTitle = CountInvalidChars(fileHeaders.songname); + uint32 invalidChars = invalidCharsInTitle; SmpLength totalSampleLen = 0; uint8 allVolumes = 0; + uint8 diskNameCount = 0; for(SAMPLEINDEX smp = 0; smp < 15; smp++) { @@ -1389,6 +1392,8 @@ // 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++; // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 @@ -1402,6 +1407,12 @@ 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) + { + 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) { @@ -1507,7 +1518,7 @@ totalSampleLen += mptSmp.nLength; - if(m_szNames[smp][0] && ((memcmp(m_szNames[smp].buf, "st-", 3) && memcmp(m_szNames[smp].buf, "ST-", 3)) || m_szNames[smp][5] != ':')) + if(m_szNames[smp][0] && sampleHeader.HasDiskName()) { // Ultimate Soundtracker 1.8 and D.O.C. SoundTracker IX always have sample names containing disk names. hasDiskNames = false; |
From: <sv...@op...> - 2024-04-08 21:43:13
|
Author: sagamusix Date: Mon Apr 8 23:43:03 2024 New Revision: 20539 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20539 Log: Merged revision(s) 20538 from trunk/OpenMPT: [Mod] M15: The heuristics in r20524 were a bit too loose, also identifying some GMC files as SoundTracker modules. Tighten the song title check again to previous values, but ignore it if a sufficent amount of sample headers has "real-looking" sample names (starting with a disk name like st-01:...). ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/soundlib/Load_mod.cpp Modified: branches/OpenMPT-1.31/soundlib/Load_mod.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_mod.cpp Mon Apr 8 23:40:51 2024 (r20538) +++ branches/OpenMPT-1.31/soundlib/Load_mod.cpp Mon Apr 8 23:43:03 2024 (r20539) @@ -322,6 +322,11 @@ + ((loopStart > length * 2) ? 1 : 0); } + bool HasDiskName() const + { + return (!memcmp(name, "st-", 3) || !memcmp(name, "ST-", 3)) && name[5] == ':'; + } + // Suggested threshold for rejecting invalid files based on cumulated score returned by GetInvalidByteScore static constexpr uint32 INVALID_BYTE_THRESHOLD = 40; @@ -1410,15 +1415,13 @@ // However, there are quite a few SoundTracker modules in the wild with random // characters. To still be able to distguish them from other formats, we just reject // files with *too* many bogus characters. Arbitrary threshold: 48 bogus characters in total - // or more than 11 invalid characters just in the title alone (just enough to make scramble_2.mod load). - uint32 invalidChars = CountInvalidChars(fileHeaders.songname); - if(invalidChars > 11) - { - return false; - } + // or more than 5 invalid characters just in the title alone + uint32 invalidCharsInTitle = CountInvalidChars(fileHeaders.songname); + uint32 invalidChars = invalidCharsInTitle; SmpLength totalSampleLen = 0; uint8 allVolumes = 0; + uint8 diskNameCount = 0; for(SAMPLEINDEX smp = 0; smp < 15; smp++) { @@ -1429,6 +1432,8 @@ // 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++; // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 @@ -1442,6 +1447,12 @@ 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) + { + 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) { @@ -1548,7 +1559,7 @@ totalSampleLen += mptSmp.nLength; - if(m_szNames[smp][0] && ((memcmp(m_szNames[smp].buf, "st-", 3) && memcmp(m_szNames[smp].buf, "ST-", 3)) || m_szNames[smp][5] != ':')) + if(m_szNames[smp][0] && sampleHeader.HasDiskName()) { // Ultimate Soundtracker 1.8 and D.O.C. SoundTracker IX always have sample names containing disk names. hasDiskNames = false; |
From: <sv...@op...> - 2024-04-08 21:41:08
|
Author: sagamusix Date: Mon Apr 8 23:40:51 2024 New Revision: 20538 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20538 Log: [Mod] M15: The heuristics in r20524 were a bit too loose, also identifying some GMC files as SoundTracker modules. Tighten the song title check again to previous values, but ignore it if a sufficent amount of sample headers has "real-looking" sample names (starting with a disk name like st-01:...). Modified: trunk/OpenMPT/soundlib/Load_mod.cpp Modified: trunk/OpenMPT/soundlib/Load_mod.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mod.cpp Mon Apr 8 21:27:35 2024 (r20537) +++ trunk/OpenMPT/soundlib/Load_mod.cpp Mon Apr 8 23:40:51 2024 (r20538) @@ -322,6 +322,11 @@ + ((loopStart > length * 2) ? 1 : 0); } + bool HasDiskName() const + { + return (!memcmp(name, "st-", 3) || !memcmp(name, "ST-", 3)) && name[5] == ':'; + } + // Suggested threshold for rejecting invalid files based on cumulated score returned by GetInvalidByteScore static constexpr uint32 INVALID_BYTE_THRESHOLD = 40; @@ -1410,15 +1415,13 @@ // However, there are quite a few SoundTracker modules in the wild with random // characters. To still be able to distguish them from other formats, we just reject // files with *too* many bogus characters. Arbitrary threshold: 48 bogus characters in total - // or more than 11 invalid characters just in the title alone (just enough to make scramble_2.mod load). - uint32 invalidChars = CountInvalidChars(fileHeaders.songname); - if(invalidChars > 11) - { - return false; - } + // or more than 5 invalid characters just in the title alone + uint32 invalidCharsInTitle = CountInvalidChars(fileHeaders.songname); + uint32 invalidChars = invalidCharsInTitle; SmpLength totalSampleLen = 0; uint8 allVolumes = 0; + uint8 diskNameCount = 0; for(SAMPLEINDEX smp = 0; smp < 15; smp++) { @@ -1429,6 +1432,8 @@ // 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++; // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 @@ -1442,6 +1447,12 @@ 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) + { + 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) { @@ -1548,7 +1559,7 @@ totalSampleLen += mptSmp.nLength; - if(m_szNames[smp][0] && ((memcmp(m_szNames[smp].buf, "st-", 3) && memcmp(m_szNames[smp].buf, "ST-", 3)) || m_szNames[smp][5] != ':')) + if(m_szNames[smp][0] && sampleHeader.HasDiskName()) { // Ultimate Soundtracker 1.8 and D.O.C. SoundTracker IX always have sample names containing disk names. hasDiskNames = false; |
From: <sv...@op...> - 2024-04-08 19:27:50
|
Author: sagamusix Date: Mon Apr 8 21:27:35 2024 New Revision: 20537 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20537 Log: [Fix] Compile fix for libopenmpt. Modified: trunk/OpenMPT/soundlib/Sndmix.cpp Modified: trunk/OpenMPT/soundlib/Sndmix.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Sndmix.cpp Mon Apr 8 21:22:41 2024 (r20536) +++ trunk/OpenMPT/soundlib/Sndmix.cpp Mon Apr 8 21:27:35 2024 (r20537) @@ -643,8 +643,8 @@ m_PlayState.Chn[i].Reset(ModChannel::resetSetPosFull, *this, i, muteFlag); StopAllVsti(); // ...and the global playback information. - m_PlayState.m_nMusicSpeed = m_nDefaultSpeed; - m_PlayState.m_nMusicTempo = m_nDefaultTempo; + m_PlayState.m_nMusicSpeed = Order().GetDefaultSpeed(); + m_PlayState.m_nMusicTempo = Order().GetDefaultTempo(); m_PlayState.m_nGlobalVolume = m_nDefaultGlobalVolume; m_PlayState.m_nNextOrder = m_PlayState.m_nCurrentOrder; |
From: <sv...@op...> - 2024-04-08 19:22:49
|
Author: sagamusix Date: Mon Apr 8 21:22:41 2024 New Revision: 20536 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20536 Log: [Fix] PSM: Avoid double assignment to just-declared variable. Modified: trunk/OpenMPT/soundlib/Load_psm.cpp Modified: trunk/OpenMPT/soundlib/Load_psm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_psm.cpp Mon Apr 8 21:13:21 2024 (r20535) +++ trunk/OpenMPT/soundlib/Load_psm.cpp Mon Apr 8 21:22:41 2024 (r20536) @@ -857,7 +857,7 @@ ModSequence &order = Order(static_cast<SEQUENCEINDEX>(i)); if(order.IsValidPat(0)) { - PATTERNINDEX startPattern = startPattern = order.EnsureUnique(0); + PATTERNINDEX startPattern = order.EnsureUnique(0); // Subsongs with different panning setup -> write to pattern (MUSIC_C.PSM) // Don't write channel volume for now, as there is no real-world module which needs it. if(subsongPanningDiffers) |
From: <sv...@op...> - 2024-04-08 19:13:32
|
Author: sagamusix Date: Mon Apr 8 21:13:21 2024 New Revision: 20535 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20535 Log: [New] Every sequence can now have its own default tempo and speed (https://bugs.openmpt.org/view.php?id=1322) [Mod] PSM: Import with real sub-songs even in OpenMPT, not just libopenmpt. Modified: trunk/OpenMPT/mptrack/CleanupSong.cpp trunk/OpenMPT/mptrack/Ctrl_gen.cpp trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/Ctrl_seq.cpp trunk/OpenMPT/mptrack/MPTHacks.cpp trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/ModConvert.cpp trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/dlg_misc.cpp trunk/OpenMPT/soundlib/Dlsbank.cpp trunk/OpenMPT/soundlib/Load_667.cpp trunk/OpenMPT/soundlib/Load_669.cpp trunk/OpenMPT/soundlib/Load_amf.cpp trunk/OpenMPT/soundlib/Load_ams.cpp trunk/OpenMPT/soundlib/Load_c67.cpp trunk/OpenMPT/soundlib/Load_dmf.cpp trunk/OpenMPT/soundlib/Load_dsm.cpp trunk/OpenMPT/soundlib/Load_dtm.cpp trunk/OpenMPT/soundlib/Load_far.cpp trunk/OpenMPT/soundlib/Load_fmt.cpp trunk/OpenMPT/soundlib/Load_gdm.cpp trunk/OpenMPT/soundlib/Load_gt2.cpp trunk/OpenMPT/soundlib/Load_imf.cpp trunk/OpenMPT/soundlib/Load_it.cpp trunk/OpenMPT/soundlib/Load_itp.cpp trunk/OpenMPT/soundlib/Load_mdl.cpp trunk/OpenMPT/soundlib/Load_med.cpp trunk/OpenMPT/soundlib/Load_mid.cpp trunk/OpenMPT/soundlib/Load_mo3.cpp trunk/OpenMPT/soundlib/Load_mod.cpp trunk/OpenMPT/soundlib/Load_mt2.cpp trunk/OpenMPT/soundlib/Load_okt.cpp trunk/OpenMPT/soundlib/Load_plm.cpp trunk/OpenMPT/soundlib/Load_psm.cpp trunk/OpenMPT/soundlib/Load_s3m.cpp trunk/OpenMPT/soundlib/Load_sfx.cpp trunk/OpenMPT/soundlib/Load_stm.cpp trunk/OpenMPT/soundlib/Load_stp.cpp trunk/OpenMPT/soundlib/Load_symmod.cpp trunk/OpenMPT/soundlib/Load_wav.cpp trunk/OpenMPT/soundlib/Load_xm.cpp trunk/OpenMPT/soundlib/ModSequence.cpp trunk/OpenMPT/soundlib/ModSequence.h trunk/OpenMPT/soundlib/Snd_fx.cpp trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Sndfile.h trunk/OpenMPT/soundlib/Sndmix.cpp trunk/OpenMPT/soundlib/load_j2b.cpp trunk/OpenMPT/test/test.cpp trunk/OpenMPT/test/test.mptm Modified: trunk/OpenMPT/mptrack/CleanupSong.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CleanupSong.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/mptrack/CleanupSong.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -1012,11 +1012,11 @@ sndFile.m_MidiCfg.Reset(); // Global vars - sndFile.m_nDefaultTempo.Set(125); - sndFile.m_nDefaultSpeed = 6; sndFile.m_nDefaultGlobalVolume = MAX_GLOBAL_VOLUME; sndFile.m_nSamplePreAmp = 48; sndFile.m_nVSTiVolume = 48; + sndFile.Order().SetDefaultTempoInt(125); + sndFile.Order().SetDefaultSpeed(6); sndFile.Order().SetRestartPos(0); if(sndFile.Order().empty()) Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_gen.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -243,7 +243,7 @@ double newTempo = 60.0 / secondsPerBeat; if(m_sndFile.m_nTempoMode != TempoMode::Modern) - newTempo *= (m_sndFile.m_nDefaultSpeed * m_sndFile.m_nDefaultRowsPerBeat) / 24.0; + newTempo *= (m_sndFile.Order().GetDefaultSpeed() * m_sndFile.m_nDefaultRowsPerBeat) / 24.0; if(!m_sndFile.GetModSpecifications().hasFractionalTempo) newTempo = std::round(newTempo); TEMPO t(newTempo); @@ -291,7 +291,7 @@ m_tempoMax = specs.GetTempoMax(); // IT Hack: There are legacy OpenMPT-made ITs out there which use a higher default speed than 255. // Changing the upper tempo limit in the mod specs would break them, so do it here instead. - if(m_sndFile.GetType() == MOD_TYPE_IT && m_sndFile.m_nDefaultTempo <= TEMPO(255, 0)) + if(m_sndFile.GetType() == MOD_TYPE_IT && m_sndFile.Order().GetDefaultTempo() <= TEMPO(255, 0)) m_tempoMax.Set(255); // Lower resolution for BPM above 256 if(m_tempoMax >= TEMPO_SPLIT_THRESHOLD) @@ -349,14 +349,23 @@ m_SpinRestartPos.SetRange32(0, std::max(m_sndFile.Order().GetRestartPos(), static_cast<ORDERINDEX>(m_sndFile.Order().GetLengthTailTrimmed() - 1))); SetDlgItemInt(IDC_EDIT_RESTARTPOS, m_sndFile.Order().GetRestartPos(), FALSE); } + + if(updateAll || (hint.GetCategory() == HINTCAT_GENERAL && hintType[HINT_MODGENERAL]) || (hint.GetCategory() == HINTCAT_SEQUENCE && hint.ToType<SequenceHint>().GetSequence() == SEQUENCEINDEX_INVALID)) + { + if(!m_editsLocked) + { + m_EditTempo.SetTempoValue(m_sndFile.Order().GetDefaultTempo()); + SetDlgItemInt(IDC_EDIT_SPEED, m_sndFile.Order().GetDefaultSpeed(), FALSE); + } + m_SliderTempo.SetPos(TempoToSlider(m_sndFile.Order().GetDefaultTempo())); + } + if (updateAll || (hint.GetCategory() == HINTCAT_GENERAL && hintType[HINT_MODGENERAL])) { if (!m_editsLocked) { m_EditTitle.SetWindowText(mpt::ToCString(m_sndFile.GetCharsetInternal(), m_sndFile.GetTitle())); m_EditArtist.SetWindowText(mpt::ToCString(m_sndFile.m_songArtist)); - m_EditTempo.SetTempoValue(m_sndFile.m_nDefaultTempo); - SetDlgItemInt(IDC_EDIT_SPEED, m_sndFile.m_nDefaultSpeed, FALSE); SetDlgItemInt(IDC_EDIT_GLOBALVOL, m_sndFile.m_nDefaultGlobalVolume / GetGlobalVolumeFactor(), FALSE); SetDlgItemInt(IDC_EDIT_VSTIVOL, m_sndFile.m_nVSTiVolume, FALSE); SetDlgItemInt(IDC_EDIT_SAMPLEPA, m_sndFile.m_nSamplePreAmp, FALSE); @@ -365,7 +374,6 @@ m_SliderGlobalVol.SetPos(MAX_SLIDER_GLOBAL_VOL - m_sndFile.m_nDefaultGlobalVolume); m_SliderVSTiVol.SetPos(MAX_SLIDER_VSTI_VOL - m_sndFile.m_nVSTiVolume); m_SliderSamplePreAmp.SetPos(MAX_SLIDER_SAMPLE_VOL - m_sndFile.m_nSamplePreAmp); - m_SliderTempo.SetPos(TempoToSlider(m_sndFile.m_nDefaultTempo)); } if(updateAll || hintType == HINT_MPTOPTIONS || (hint.GetCategory() == HINTCAT_GENERAL && hintType[HINT_MODGENERAL])) @@ -400,9 +408,9 @@ if (pSlider == &m_SliderTempo) { const TEMPO tempo = SliderToTempo(m_SliderTempo.GetPos()); - if ((tempo >= m_sndFile.GetModSpecifications().GetTempoMin()) && (tempo <= m_sndFile.GetModSpecifications().GetTempoMax()) && (tempo != m_sndFile.m_nDefaultTempo)) + if ((tempo >= m_sndFile.GetModSpecifications().GetTempoMin()) && (tempo <= m_sndFile.GetModSpecifications().GetTempoMax()) && (tempo != m_sndFile.Order().GetDefaultTempo())) { - m_sndFile.m_nDefaultTempo = m_sndFile.m_PlayState.m_nMusicTempo = tempo; + m_sndFile.Order().SetDefaultTempo(m_sndFile.m_PlayState.m_nMusicTempo = tempo); m_modDoc.SetModified(); m_modDoc.UpdateAllViews(nullptr, GeneralHint().General(), this); m_EditTempo.SetTempoValue(tempo); @@ -463,9 +471,9 @@ } TEMPO newTempo; newTempo.SetRaw(pos32); - newTempo += m_sndFile.m_nDefaultTempo; + newTempo += m_sndFile.Order().GetDefaultTempo(); Limit(newTempo, m_tempoMin, m_tempoMax); - m_sndFile.m_nDefaultTempo = m_sndFile.m_PlayState.m_nMusicTempo = newTempo; + m_sndFile.Order().SetDefaultTempo(m_sndFile.m_PlayState.m_nMusicTempo = newTempo); m_modDoc.SetModified(); LockControls(); m_modDoc.UpdateAllViews(nullptr, GeneralHint().General(), this); @@ -516,11 +524,11 @@ TEMPO tempo = m_EditTempo.GetTempoValue(); Limit(tempo, m_tempoMin, m_tempoMax); if(!m_sndFile.GetModSpecifications().hasFractionalTempo) tempo.Set(tempo.GetInt()); - if (tempo != m_sndFile.m_nDefaultTempo) + if (tempo != m_sndFile.Order().GetDefaultTempo()) { m_editsLocked = true; m_EditTempo.SetModify(FALSE); - m_sndFile.m_nDefaultTempo = tempo; + m_sndFile.Order().SetDefaultTempo(tempo); m_sndFile.m_PlayState.m_nMusicTempo = tempo; m_modDoc.SetModified(); m_modDoc.UpdateAllViews(nullptr, GeneralHint().General()); @@ -540,11 +548,11 @@ { UINT n = mpt::parse<UINT>(s); n = Clamp(n, m_sndFile.GetModSpecifications().speedMin, m_sndFile.GetModSpecifications().speedMax); - if (n != m_sndFile.m_nDefaultSpeed) + if (n != m_sndFile.Order().GetDefaultSpeed()) { m_editsLocked = true; m_EditSpeed.SetModify(FALSE); - m_sndFile.m_nDefaultSpeed = n; + m_sndFile.Order().SetDefaultSpeed(n); m_sndFile.m_PlayState.m_nMusicSpeed = n; m_modDoc.SetModified(); m_modDoc.UpdateAllViews(nullptr, GeneralHint().General(), this); Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -3050,7 +3050,7 @@ } if(!ptl.GetRaw()) { - ptl = m_sndFile.m_nDefaultTempo; + ptl = m_sndFile.Order().GetDefaultTempo(); } m_EditPitchTempoLock.SetTempoValue(ptl); isZero = true; Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_seq.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -1519,7 +1519,6 @@ sndFile.Order.SetSequence(newIndex); if(const auto name = sndFile.Order().GetName(); duplicate && !name.empty()) sndFile.Order().SetName(name + U_(" (Copy)")); - m_modDoc.UpdateAllViews(nullptr, SequenceHint(SEQUENCEINDEX_INVALID).Names().Data()); } } else if(seq == sndFile.Order.GetCurrentSequenceIndex()) return; @@ -1536,8 +1535,13 @@ cs.Leave(); if(editSequence) + { m_modDoc.SetModified(); - m_modDoc.UpdateAllViews(nullptr, SequenceHint().Data(), nullptr); + m_modDoc.UpdateAllViews(nullptr, SequenceHint(SEQUENCEINDEX_INVALID).Names().Data(), nullptr); + } else + { + m_modDoc.UpdateAllViews(nullptr, SequenceHint(SEQUENCEINDEX_INVALID).Data(), nullptr); + } } Modified: trunk/OpenMPT/mptrack/MPTHacks.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MPTHacks.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/mptrack/MPTHacks.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -350,34 +350,37 @@ if(foundEnvelopes) AddToLog("Two envelope points may not share the same tick"); - // Check for too many orders - if(m_SndFile.Order().GetLengthTailTrimmed() > originalSpecs->ordersMax) + for(auto &order : m_SndFile.Order) { - AddToLog(MPT_AFORMAT("Found too many orders ({} allowed)")(originalSpecs->ordersMax)); - foundHacks = true; - if(autofix) + // Check for too many orders + if(order.GetLengthTailTrimmed() > originalSpecs->ordersMax) { - // Can we be more intelligent here and maybe remove stop patterns and such? - m_SndFile.Order().resize(originalSpecs->ordersMax); + AddToLog(MPT_AFORMAT("Found too many orders ({} allowed)")(originalSpecs->ordersMax)); + foundHacks = true; + if(autofix) + { + // Can we be more intelligent here and maybe remove stop patterns and such? + order.resize(originalSpecs->ordersMax); + } } - } - // Check for invalid default tempo - if(m_SndFile.m_nDefaultTempo > originalSpecs->GetTempoMax() || m_SndFile.m_nDefaultTempo < originalSpecs->GetTempoMin()) - { - AddToLog(MPT_AFORMAT("Found incompatible default tempo (must be between {} and {})")(originalSpecs->GetTempoMin().GetInt(), originalSpecs->GetTempoMax().GetInt())); - foundHacks = true; - if(autofix) - m_SndFile.m_nDefaultTempo = Clamp(m_SndFile.m_nDefaultTempo, originalSpecs->GetTempoMin(), originalSpecs->GetTempoMax()); - } + // Check for invalid default tempo + if(order.GetDefaultTempo() > originalSpecs->GetTempoMax() || order.GetDefaultTempo() < originalSpecs->GetTempoMin()) + { + AddToLog(MPT_AFORMAT("Found incompatible default tempo (must be between {} and {})")(originalSpecs->GetTempoMin().GetInt(), originalSpecs->GetTempoMax().GetInt())); + foundHacks = true; + if(autofix) + order.SetDefaultTempo(Clamp(order.GetDefaultTempo(), originalSpecs->GetTempoMin(), originalSpecs->GetTempoMax())); + } - // Check for invalid default speed - if(m_SndFile.m_nDefaultSpeed > originalSpecs->speedMax || m_SndFile.m_nDefaultSpeed < originalSpecs->speedMin) - { - AddToLog(MPT_AFORMAT("Found incompatible default speed (must be between {} and {})")(originalSpecs->speedMin, originalSpecs->speedMax)); - foundHacks = true; - if(autofix) - m_SndFile.m_nDefaultSpeed = Clamp(m_SndFile.m_nDefaultSpeed, originalSpecs->speedMin, originalSpecs->speedMax); + // Check for invalid default speed + if(order.GetDefaultSpeed() > originalSpecs->speedMax || order.GetDefaultSpeed() < originalSpecs->speedMin) + { + AddToLog(MPT_AFORMAT("Found incompatible default speed (must be between {} and {})")(originalSpecs->speedMin, originalSpecs->speedMax)); + foundHacks = true; + if(autofix) + order.SetDefaultSpeed(Clamp(order.GetDefaultSpeed(), originalSpecs->speedMin, originalSpecs->speedMax)); + } } // Check for invalid rows per beat / measure values @@ -449,7 +452,7 @@ foundHacks = true; if(autofix) { - m_SndFile.Order.RestartPosToPattern(seq); + m_SndFile.Order.WriteGlobalsToPattern(seq, true, false); } } } Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -1667,8 +1667,8 @@ { m_WaveFile.Destroy(); m_WaveFile.Create(FileReader()); - m_WaveFile.m_nDefaultTempo.Set(125); - m_WaveFile.m_nDefaultSpeed = 6; + m_WaveFile.Order().SetDefaultTempoInt(125); + m_WaveFile.Order().SetDefaultSpeed(6); m_WaveFile.m_nType = MOD_TYPE_MPT; m_WaveFile.m_nChannels = 2; m_WaveFile.m_nInstruments = 1; Modified: trunk/OpenMPT/mptrack/ModConvert.cpp ============================================================================== --- trunk/OpenMPT/mptrack/ModConvert.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/mptrack/ModConvert.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -456,22 +456,22 @@ bool firstPatValid = firstPat != m_SndFile.Order().cend(); bool lossy = false; - if(m_SndFile.m_nDefaultSpeed != 6) + if(m_SndFile.Order().GetDefaultSpeed() != 6) { if(firstPatValid) { - m_SndFile.Patterns[*firstPat].WriteEffect(EffectWriter(CMD_SPEED, ModCommand::PARAM(m_SndFile.m_nDefaultSpeed)).RetryNextRow()); + m_SndFile.Patterns[*firstPat].WriteEffect(EffectWriter(CMD_SPEED, ModCommand::PARAM(m_SndFile.Order().GetDefaultSpeed())).RetryNextRow()); } - m_SndFile.m_nDefaultSpeed = 6; + m_SndFile.Order().SetDefaultSpeed(6); lossy = true; } - if(m_SndFile.m_nDefaultTempo != TEMPO(125, 0)) + if(m_SndFile.Order().GetDefaultTempo() != TEMPO(125, 0)) { if(firstPatValid) { - m_SndFile.Patterns[*firstPat].WriteEffect(EffectWriter(CMD_TEMPO, ModCommand::PARAM(m_SndFile.m_nDefaultTempo.GetInt())).RetryNextRow()); + m_SndFile.Patterns[*firstPat].WriteEffect(EffectWriter(CMD_TEMPO, ModCommand::PARAM(m_SndFile.Order().GetDefaultTempo().GetInt())).RetryNextRow()); } - m_SndFile.m_nDefaultTempo.Set(125); + m_SndFile.Order().SetDefaultTempoInt(125); lossy = true; } if(m_SndFile.m_nDefaultGlobalVolume != MAX_GLOBAL_VOLUME || m_SndFile.m_nSamplePreAmp != 48 || m_SndFile.m_nVSTiVolume != 48) @@ -493,7 +493,7 @@ if(m_SndFile.Order(seq).GetRestartPos() > 0 && !specs.hasRestartPos) { // Try to fix it by placing a pattern jump command in the pattern. - if(!m_SndFile.Order.RestartPosToPattern(seq)) + if(!m_SndFile.Order.WriteGlobalsToPattern(seq, true, false)) { // Couldn't fix it! :( warnings.set(wRestartPos); @@ -578,18 +578,20 @@ warnings.set(wMixmode); } - if(!specs.hasFractionalTempo && m_SndFile.m_nDefaultTempo.GetFract() != 0) + for(auto &order : m_SndFile.Order) { - m_SndFile.m_nDefaultTempo.Set(m_SndFile.m_nDefaultTempo.GetInt(), 0); - warnings.set(wFractionalTempo); + if(!specs.hasFractionalTempo && order.GetDefaultTempo().GetFract() != 0) + { + order.SetDefaultTempoInt(order.GetDefaultTempo().GetInt()); + warnings.set(wFractionalTempo); + } + + order.SetDefaultTempo(Clamp(order.GetDefaultTempo(), specs.GetTempoMin(), specs.GetTempoMax())); + order.SetDefaultSpeed(Clamp(order.GetDefaultSpeed(), specs.speedMin, specs.speedMax)); } ChangeFileExtension(nNewType); - // Check mod specifications - Limit(m_SndFile.m_nDefaultTempo, specs.GetTempoMin(), specs.GetTempoMax()); - Limit(m_SndFile.m_nDefaultSpeed, specs.speedMin, specs.speedMax); - for(INSTRUMENTINDEX i = 1; i <= m_SndFile.GetNumInstruments(); i++) if(m_SndFile.Instruments[i] != nullptr) { UpdateEnvelopes(m_SndFile.Instruments[i]->VolEnv, specs, warnings); Modified: trunk/OpenMPT/mptrack/Moddoc.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/mptrack/Moddoc.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -637,9 +637,8 @@ Clear(m_SndFile.m_szNames); - m_SndFile.m_PlayState.m_nMusicTempo.Set(125); - m_SndFile.m_nDefaultTempo.Set(125); - m_SndFile.m_PlayState.m_nMusicSpeed = m_SndFile.m_nDefaultSpeed = 6; + m_SndFile.Order().SetDefaultTempoInt(125); + m_SndFile.Order().SetDefaultSpeed(6); // Set up mix levels m_SndFile.m_PlayState.m_nGlobalVolume = m_SndFile.m_nDefaultGlobalVolume = MAX_GLOBAL_VOLUME; Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp ============================================================================== --- trunk/OpenMPT/mptrack/dlg_misc.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/mptrack/dlg_misc.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -411,10 +411,13 @@ sndFile.m_nTempoMode = static_cast<TempoMode>(m_TempoModeBox.GetItemData(sel)); if(oldMode == TempoMode::Modern && sndFile.m_nTempoMode != TempoMode::Modern) { - double newTempo = sndFile.m_nDefaultTempo.ToDouble() * (sndFile.m_nDefaultSpeed * sndFile.m_nDefaultRowsPerBeat) / ((sndFile.m_nTempoMode == TempoMode::Classic) ? 24 : 60); - if(!newModSpecs.hasFractionalTempo) - newTempo = std::round(newTempo); - sndFile.m_nDefaultTempo = Clamp(TEMPO(newTempo), newModSpecs.GetTempoMin(), newModSpecs.GetTempoMax()); + for(auto &order : sndFile.Order) + { + double newTempo = order.GetDefaultTempo().ToDouble() * (order.GetDefaultSpeed() * sndFile.m_nDefaultRowsPerBeat) / ((sndFile.m_nTempoMode == TempoMode::Classic) ? 24 : 60); + if(!newModSpecs.hasFractionalTempo) + newTempo = std::round(newTempo); + order.SetDefaultTempo(Clamp(TEMPO(newTempo), newModSpecs.GetTempoMin(), newModSpecs.GetTempoMax())); + } } } if(sndFile.m_nTempoMode == TempoMode::Modern) Modified: trunk/OpenMPT/soundlib/Dlsbank.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Dlsbank.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Dlsbank.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -2264,7 +2264,7 @@ float tempoScale = 1.0f; if(sndFile.m_nTempoMode == TempoMode::Modern) { - uint32 ticksPerBeat = sndFile.m_nDefaultRowsPerBeat * sndFile.m_nDefaultSpeed; + uint32 ticksPerBeat = sndFile.m_nDefaultRowsPerBeat * sndFile.Order().GetDefaultSpeed(); if(ticksPerBeat != 0) tempoScale = ticksPerBeat / 24.0f; } Modified: trunk/OpenMPT/soundlib/Load_667.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_667.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_667.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -79,8 +79,8 @@ InitializeGlobals(MOD_TYPE_S3M); m_SongFlags.set(SONG_IMPORTED); - m_nDefaultTempo.Set(150); - m_nDefaultSpeed = fileHeader.speed; + Order().SetDefaultTempoInt(150); + Order().SetDefaultSpeed(fileHeader.speed); m_nChannels = 18; m_nSamples = 64; Modified: trunk/OpenMPT/soundlib/Load_669.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_669.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_669.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -138,8 +138,8 @@ InitializeGlobals(MOD_TYPE_669); m_nMinPeriod = 28 << 2; m_nMaxPeriod = 1712 << 3; - m_nDefaultTempo.Set(78); - m_nDefaultSpeed = 4; + Order().SetDefaultTempoInt(78); + Order().SetDefaultSpeed(4); m_nChannels = 8; m_playBehaviour.set(kPeriodsAreHertz); #ifdef MODPLUG_TRACKER Modified: trunk/OpenMPT/soundlib/Load_amf.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_amf.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_amf.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -129,8 +129,8 @@ InitializeChannels(); SetupMODPanning(true); m_nChannels = 8; - m_nDefaultSpeed = fileHeader.defaultSpeed; - m_nDefaultTempo.Set(fileHeader.defaultTempo); + Order().SetDefaultSpeed(fileHeader.defaultSpeed); + Order().SetDefaultTempoInt(fileHeader.defaultTempo); m_nSamples = fileHeader.numSamples; if(fileHeader.restartPos < fileHeader.numOrders) { @@ -633,12 +633,12 @@ auto [tempo, speed] = file.ReadArray<uint8, 2>(); if(tempo < 32) tempo = 125; - m_nDefaultTempo.Set(tempo); - m_nDefaultSpeed = speed; + Order().SetDefaultTempoInt(tempo); + Order().SetDefaultSpeed(speed); } else { - m_nDefaultTempo.Set(125); - m_nDefaultSpeed = 6; + Order().SetDefaultTempoInt(125); + Order().SetDefaultSpeed(6); } // Setup Order List Modified: trunk/OpenMPT/soundlib/Load_ams.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_ams.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_ams.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -790,29 +790,29 @@ uint16 headerFlags; if(fileHeader.versionLow >= 2) { - uint16 tempo = std::max(uint16(32 << 8), file.ReadUint16LE()); // 8.8 tempo - m_nDefaultTempo.SetRaw((tempo * TEMPO::fractFact) >> 8); - m_nDefaultSpeed = std::max(uint8(1), file.ReadUint8()); - file.Skip(3); // Default values for pattern editor + uint16 tempo = std::max(uint16(32 << 8), file.ReadUint16LE()); // 8.8 tempo + Order().SetDefaultTempo(TEMPO{}.SetRaw((tempo * TEMPO::fractFact) >> 8)); + Order().SetDefaultSpeed(std::max(uint8(1), file.ReadUint8())); + file.Skip(3); // Default values for pattern editor headerFlags = file.ReadUint16LE(); } else { - m_nDefaultTempo.Set(std::max(uint8(32), file.ReadUint8())); - m_nDefaultSpeed = std::max(uint8(1), file.ReadUint8()); + Order().SetDefaultTempoInt(std::max(uint8(32), file.ReadUint8())); + Order().SetDefaultSpeed(std::max(uint8(1), file.ReadUint8())); headerFlags = file.ReadUint8(); } m_SongFlags = SONG_ITCOMPATGXX | SONG_ITOLDEFFECTS | ((headerFlags & AMS2FileHeader::linearSlides) ? SONG_LINEARSLIDES : SongFlags(0)); // Instruments - std::vector<SAMPLEINDEX> firstSample; // First sample of instrument - std::vector<uint16> sampleSettings; // Shadow sample map... Lo byte = Instrument, Hi byte, lo nibble = Sample index in instrument, Hi byte, hi nibble = Sample pack status + std::vector<SAMPLEINDEX> firstSample; // First sample of instrument + std::vector<uint16> sampleSettings; // Shadow sample map... Lo byte = Instrument, Hi byte, lo nibble = Sample index in instrument, Hi byte, hi nibble = Sample pack status enum { - instrIndexMask = 0xFF, // Shadow instrument - sampleIndexMask = 0x7F00, // Sample index in instrument + instrIndexMask = 0xFF, // Shadow instrument + sampleIndexMask = 0x7F00, // Sample index in instrument sampleIndexShift = 8, - packStatusMask = 0x8000, // If bit is set, sample is packed + packStatusMask = 0x8000, // If bit is set, sample is packed }; static_assert(MAX_INSTRUMENTS > 255); @@ -827,11 +827,11 @@ uint8 numSamples = file.ReadUint8(); uint8 sampleAssignment[120]; - MemsetZero(sampleAssignment); // Only really needed for v2.0, where the lowest and highest octave aren't cleared. + MemsetZero(sampleAssignment); // Only really needed for v2.0, where the lowest and highest octave aren't cleared. if(numSamples == 0 - || (fileHeader.versionLow > 0 && !file.ReadArray(sampleAssignment)) // v2.01+: 120 Notes - || (fileHeader.versionLow == 0 && !file.ReadRaw(mpt::span(sampleAssignment + 12, 96)).size())) // v2.0: 96 Notes + || (fileHeader.versionLow > 0 && !file.ReadArray(sampleAssignment)) // v2.01+: 120 Notes + || (fileHeader.versionLow == 0 && !file.ReadRaw(mpt::span(sampleAssignment + 12, 96)).size())) // v2.0: 96 Notes { continue; } Modified: trunk/OpenMPT/soundlib/Load_c67.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_c67.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_c67.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -165,8 +165,8 @@ m_modFormat.madeWithTracker = U_("Composer 670"); m_modFormat.charset = mpt::Charset::CP437; - m_nDefaultSpeed = fileHeader.speed; - m_nDefaultTempo.Set(143); + Order().SetDefaultSpeed(fileHeader.speed); + Order().SetDefaultTempoInt(143); Order().SetRestartPos(fileHeader.restartPos); m_nSamples = 64; m_nChannels = 4 + 9; Modified: trunk/OpenMPT/soundlib/Load_dmf.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_dmf.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_dmf.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -1041,8 +1041,8 @@ InitializeChannels(); m_SongFlags = SONG_LINEARSLIDES | SONG_ITCOMPATGXX; // this will be converted to IT format by MPT. SONG_ITOLDEFFECTS is not set because of tremor and vibrato. - m_nDefaultSpeed = 6; - m_nDefaultTempo.Set(120); + Order().SetDefaultSpeed(6); + Order().SetDefaultTempoInt(120); m_nDefaultGlobalVolume = 256; m_nSamplePreAmp = m_nVSTiVolume = 48; m_playBehaviour.set(kApplyOffsetWithoutNote); Modified: trunk/OpenMPT/soundlib/Load_dsm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_dsm.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_dsm.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -214,8 +214,8 @@ m_songName = mpt::String::ReadBuf(mpt::String::maybeNullTerminated, songHeader.songName); m_nChannels = std::max(songHeader.numChannels.get(), uint16(1)); - m_nDefaultSpeed = songHeader.speed; - m_nDefaultTempo.Set(songHeader.bpm); + Order().SetDefaultSpeed(songHeader.speed); + Order().SetDefaultTempoInt(songHeader.bpm); m_nDefaultGlobalVolume = std::min(songHeader.globalVol.get(), uint8(64)) * 4u; if(!m_nDefaultGlobalVolume) m_nDefaultGlobalVolume = MAX_GLOBAL_VOLUME; if(songHeader.mastervol == 0x80) Modified: trunk/OpenMPT/soundlib/Load_dtm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_dtm.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_dtm.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -234,9 +234,9 @@ m_playBehaviour.reset(kITVibratoTremoloPanbrello); // Various files have a default speed or tempo of 0 if(fileHeader.tempo) - m_nDefaultTempo.Set(fileHeader.tempo); + Order().SetDefaultTempoInt(fileHeader.tempo); if(fileHeader.speed) - m_nDefaultSpeed = fileHeader.speed; + Order().SetDefaultSpeed(fileHeader.speed); if(fileHeader.stereoMode == 0) SetupMODPanning(true); @@ -282,7 +282,7 @@ { chunk.Skip(2); // Ticks per quarter note, typically 24 uint32 fractionalTempo = chunk.ReadUint32BE(); - m_nDefaultTempo = TEMPO(m_nDefaultTempo.GetInt() + fractionalTempo / 4294967296.0); + Order().SetDefaultTempo(TEMPO(Order().GetDefaultTempo().GetInt() + fractionalTempo / 4294967296.0)); uint16be panning[32]; chunk.ReadArray(panning); @@ -410,7 +410,7 @@ if(patternFormat == DTM_206_PATTERN_FORMAT) { // The stored data is actually not row-based, but tick-based. - numRows /= m_nDefaultSpeed; + numRows /= Order().GetDefaultSpeed(); } if(!(loadFlags & loadPatternData) || patNum > 255 || !Patterns.Insert(patNum, numRows)) { @@ -474,7 +474,7 @@ tick += (delay & 0x7F) * 0x100 + rowChunk.ReadUint8(); else tick += delay; - position = std::div(tick, m_nDefaultSpeed); + position = std::div(tick, Order().GetDefaultSpeed()); } } } else Modified: trunk/OpenMPT/soundlib/Load_far.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_far.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_far.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -165,8 +165,8 @@ InitializeGlobals(MOD_TYPE_FAR); m_nChannels = 16; m_nSamplePreAmp = 32; - m_nDefaultSpeed = fileHeader.defaultSpeed; - m_nDefaultTempo.Set(80); + Order().SetDefaultSpeed(fileHeader.defaultSpeed); + Order().SetDefaultTempoInt(80); m_nDefaultGlobalVolume = MAX_GLOBAL_VOLUME; m_SongFlags = SONG_LINEARSLIDES; m_playBehaviour.set(kPeriodsAreHertz); Modified: trunk/OpenMPT/soundlib/Load_fmt.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_fmt.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_fmt.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -89,7 +89,7 @@ InitializeChannels(); m_nChannels = 8; m_nSamples = 8; - m_nDefaultTempo = TEMPO(45.5); // 18.2 Hz timer + Order().SetDefaultTempo(TEMPO(45.5)); // 18.2 Hz timer m_playBehaviour.set(kOPLNoteStopWith0Hz); m_SongFlags.set(SONG_IMPORTED); m_songName = mpt::String::ReadBuf(mpt::String::maybeNullTerminated, fileHeader.songName); @@ -118,7 +118,7 @@ if(delay < 1 || delay > 8) return false; } - m_nDefaultSpeed = delays[0]; + Order().SetDefaultSpeed(delays[0]); const PATTERNINDEX numPatterns = fileHeader.lastPattern + 1u; const ROWINDEX numRows = fileHeader.lastRow + 1u; Modified: trunk/OpenMPT/soundlib/Load_gdm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_gdm.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_gdm.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -208,8 +208,8 @@ } m_nDefaultGlobalVolume = std::min(fileHeader.masterVol * 4u, 256u); - m_nDefaultSpeed = fileHeader.tempo; - m_nDefaultTempo.Set(fileHeader.bpm); + Order().SetDefaultSpeed(fileHeader.tempo); + Order().SetDefaultTempoInt(fileHeader.bpm); // Read orders if(file.Seek(fileHeader.orderOffset)) Modified: trunk/OpenMPT/soundlib/Load_gt2.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_gt2.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_gt2.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -599,8 +599,8 @@ Patterns.ResizeArray(numPatterns); const uint8 eventSize = fileHeader.fileVersion < 4 ? 4 : 5; - TEMPO currentTempo = m_nDefaultTempo; - uint32 currentSpeed = m_nDefaultSpeed; + TEMPO currentTempo = Order().GetDefaultTempo(); + uint32 currentSpeed = Order().GetDefaultSpeed(); for(PATTERNINDEX pat = 0; pat < numPatterns; pat++) { if(!(loadFlags & loadPatternData) || !file.CanRead(fileHeader.numRows * GetNumChannels() * eventSize) || !Patterns.Insert(pat, fileHeader.numRows)) @@ -1234,8 +1234,8 @@ if(fileHeader.fileVersion <= 5) { - m_nDefaultSpeed = std::max(fileHeader.speed.get(), uint16(1)); - m_nDefaultTempo.Set(std::max(fileHeader.tempo.get(), uint16(1))); + Order().SetDefaultSpeed(std::max(fileHeader.speed.get(), uint16(1))); + Order().SetDefaultTempoInt(std::max(fileHeader.tempo.get(), uint16(1))); m_nDefaultGlobalVolume = std::min(Util::muldivr_unsigned(fileHeader.masterVol, MAX_GLOBAL_VOLUME, 4095), uint32(MAX_GLOBAL_VOLUME)); uint16 tracks = fileHeader.numPannedTracks; LimitMax(tracks, MAX_BASECHANNELS); @@ -1296,8 +1296,8 @@ if(auto chunk = chunks.GetChunk(GT2Chunk::idTCN2); chunk.CanRead(12)) { const auto [chunkVersion, bpmInt, bpmFract, speed, timeSigNum, timeSigDenum] = chunk.ReadArray<uint16be, 6>(); - m_nDefaultTempo = TEMPO(Clamp<uint16, uint16>(bpmInt, 32, 999), Util::muldivr_unsigned(bpmFract, TEMPO::fractFact, 65536)); - m_nDefaultSpeed = Clamp<uint16, uint16>(speed, 1, 255); + Order().SetDefaultTempo(TEMPO(Clamp<uint16, uint16>(bpmInt, 32, 999), Util::muldivr_unsigned(bpmFract, TEMPO::fractFact, 65536))); + Order().SetDefaultSpeed(Clamp<uint16, uint16>(speed, 1, 255)); m_nDefaultRowsPerBeat = 16 / Clamp<uint16, uint16>(timeSigDenum, 1, 16); m_nDefaultRowsPerMeasure = m_nDefaultRowsPerBeat * Clamp<uint16, uint16>(timeSigNum, 1, 16); if(chunkVersion >= 1) @@ -1520,8 +1520,8 @@ auto patterns = chunks.GetAllChunks(GT2Chunk::idPATD); Patterns.ResizeArray(static_cast<PATTERNINDEX>(patterns.size())); - TEMPO currentTempo = m_nDefaultTempo; - uint32 currentSpeed = m_nDefaultSpeed; + TEMPO currentTempo = Order().GetDefaultTempo(); + uint32 currentSpeed = Order().GetDefaultSpeed(); for(auto &patChunk : patterns) { if(!(loadFlags & loadPatternData) || !patChunk.CanRead(24)) Modified: trunk/OpenMPT/soundlib/Load_imf.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_imf.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_imf.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -489,8 +489,8 @@ m_songName = mpt::String::ReadBuf(mpt::String::nullTerminated, fileHeader.title); m_SongFlags.set(SONG_LINEARSLIDES, fileHeader.flags & IMFFileHeader::linearSlides); - m_nDefaultSpeed = fileHeader.tempo; - m_nDefaultTempo.Set(fileHeader.bpm); + Order().SetDefaultSpeed(fileHeader.tempo); + Order().SetDefaultTempoInt(fileHeader.bpm); m_nDefaultGlobalVolume = fileHeader.master * 4u; m_nSamplePreAmp = fileHeader.amp; Modified: trunk/OpenMPT/soundlib/Load_it.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_it.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -533,8 +533,8 @@ if(m_nDefaultGlobalVolume > MAX_GLOBAL_VOLUME) m_nDefaultGlobalVolume = MAX_GLOBAL_VOLUME; if(fileHeader.speed) - m_nDefaultSpeed = fileHeader.speed; - m_nDefaultTempo.Set(std::max(uint8(31), static_cast<uint8>(fileHeader.tempo))); + Order().SetDefaultSpeed(fileHeader.speed); + Order().SetDefaultTempoInt(std::max(uint8(31), static_cast<uint8>(fileHeader.tempo))); m_nSamplePreAmp = std::min(static_cast<uint8>(fileHeader.mv), uint8(128)); // Reading Channels Pan Positions @@ -1548,8 +1548,8 @@ itHeader.globalvol = static_cast<uint8>(m_nDefaultGlobalVolume / 2u); itHeader.mv = static_cast<uint8>(std::min(m_nSamplePreAmp, uint32(128))); - itHeader.speed = mpt::saturate_cast<uint8>(m_nDefaultSpeed); - itHeader.tempo = mpt::saturate_cast<uint8>(m_nDefaultTempo.GetInt()); // We save the real tempo in an extension below if it exceeds 255. + itHeader.speed = mpt::saturate_cast<uint8>(Order().GetDefaultSpeed()); + itHeader.tempo = mpt::saturate_cast<uint8>(Order().GetDefaultTempo().GetInt()); // We save the real tempo in an extension below if it exceeds 255. itHeader.sep = 128; // pan separation // IT doesn't have a per-instrument Pitch Wheel Depth setting, so we just store the first non-zero PWD setting in the header. for(INSTRUMENTINDEX ins = 1; ins <= GetNumInstruments(); ins++) @@ -2249,14 +2249,14 @@ mpt::IO::WriteIntLE(f, field); \ } - if(m_nDefaultTempo.GetInt() > 255) + if(Order().GetDefaultTempo().GetInt() > 255) { - uint32 tempo = m_nDefaultTempo.GetInt(); + uint32 tempo = Order().GetDefaultTempo().GetInt(); WRITEMODULAR(MagicBE("DT.."), tempo); } - if(m_nDefaultTempo.GetFract() != 0 && specs.hasFractionalTempo) + if(Order().GetDefaultTempo().GetFract() != 0 && specs.hasFractionalTempo) { - uint32 tempo = m_nDefaultTempo.GetFract(); + uint32 tempo = Order().GetDefaultTempo().GetFract(); WRITEMODULAR(MagicLE("DTFR"), tempo); } @@ -2472,8 +2472,8 @@ switch (code) // interpret field code { - case MagicBE("DT.."): { uint32 tempo; ReadField(chunk, size, tempo); m_nDefaultTempo.Set(tempo, m_nDefaultTempo.GetFract()); break; } - case MagicLE("DTFR"): { uint32 tempoFract; ReadField(chunk, size, tempoFract); m_nDefaultTempo.Set(m_nDefaultTempo.GetInt(), tempoFract); break; } + case MagicBE("DT.."): { uint32 tempo; ReadField(chunk, size, tempo); Order().SetDefaultTempo(TEMPO(tempo, Order().GetDefaultTempo().GetFract())); break; } + case MagicLE("DTFR"): { uint32 tempoFract; ReadField(chunk, size, tempoFract); Order().SetDefaultTempo(TEMPO(Order().GetDefaultTempo().GetInt(), tempoFract)); break; } case MagicBE("RPB."): ReadField(chunk, size, m_nDefaultRowsPerBeat); break; case MagicBE("RPM."): ReadField(chunk, size, m_nDefaultRowsPerMeasure); break; // FIXME: If there are only PC events on the last few channels in an MPTM MO3, they won't be imported! @@ -2589,7 +2589,7 @@ } // Validate read values. - Limit(m_nDefaultTempo, GetModSpecifications().GetTempoMin(), GetModSpecifications().GetTempoMax()); + Order().SetDefaultTempo(Clamp(Order().GetDefaultTempo(), GetModSpecifications().GetTempoMin(), GetModSpecifications().GetTempoMax())); if(m_nTempoMode >= TempoMode::NumModes) m_nTempoMode = TempoMode::Classic; if(m_nMixLevels >= MixLevels::NumMixLevels) Modified: trunk/OpenMPT/soundlib/Load_itp.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_itp.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_itp.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -193,8 +193,8 @@ m_nDefaultGlobalVolume = file.ReadUint32LE(); m_nSamplePreAmp = file.ReadUint32LE(); - m_nDefaultSpeed = std::max(uint32(1), file.ReadUint32LE()); - m_nDefaultTempo.Set(std::max(uint32(32), file.ReadUint32LE())); + Order().SetDefaultSpeed(std::max(uint32(1), file.ReadUint32LE())); + Order().SetDefaultTempoInt(std::max(uint32(32), file.ReadUint32LE())); m_nChannels = static_cast<CHANNELINDEX>(file.ReadUint32LE()); if(m_nChannels == 0 || m_nChannels > MAX_BASECHANNELS) { Modified: trunk/OpenMPT/soundlib/Load_mdl.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mdl.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_mdl.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -483,8 +483,8 @@ m_songArtist = mpt::ToUnicode(mpt::Charset::CP437, mpt::String::ReadBuf(mpt::String::spacePadded, info.composer)); m_nDefaultGlobalVolume = info.globalVol + 1; - m_nDefaultSpeed = Clamp<uint8, uint8>(info.speed, 1, 255); - m_nDefaultTempo.Set(Clamp<uint8, uint8>(info.tempo, 4, 255)); + Order().SetDefaultSpeed(Clamp<uint8, uint8>(info.speed, 1, 255)); + Order().SetDefaultTempoInt(Clamp<uint8, uint8>(info.tempo, 4, 255)); ReadOrderFromFile<uint8>(Order(), chunk, info.numOrders); Order().SetRestartPos(info.restartPos); Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_med.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -1197,15 +1197,12 @@ const bool is8Ch = (songHeader.flags & MMDSong::FLAG_8CHANNEL) != 0; const bool bpmMode = (songHeader.flags2 & MMDSong::FLAG2_BPM) != 0; const uint8 rowsPerBeat = 1 + (songHeader.flags2 & MMDSong::FLAG2_BMASK); - if(song == 0) + order.SetDefaultTempo(MMDTempoToBPM(songHeader.defaultTempo, is8Ch, bpmMode, rowsPerBeat)); + order.SetDefaultSpeed(Clamp<uint8, uint8>(songHeader.tempo2, 1, 32)); + if(bpmMode) { - m_nDefaultTempo = MMDTempoToBPM(songHeader.defaultTempo, is8Ch, bpmMode, rowsPerBeat); - m_nDefaultSpeed = Clamp<uint8, uint8>(songHeader.tempo2, 1, 32); - if(bpmMode) - { - m_nDefaultRowsPerBeat = rowsPerBeat; - m_nDefaultRowsPerMeasure = m_nDefaultRowsPerBeat * 4u; - } + m_nDefaultRowsPerBeat = rowsPerBeat; + m_nDefaultRowsPerMeasure = m_nDefaultRowsPerBeat * 4u; } if(songHeader.masterVol) Modified: trunk/OpenMPT/soundlib/Load_mid.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mid.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_mid.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -649,13 +649,13 @@ SetMixLevels(MixLevels::v1_17RC3); m_nTempoMode = TempoMode::Modern; m_SongFlags = SONG_LINEARSLIDES; - m_nDefaultTempo.Set(120); - m_nDefaultSpeed = ticksPerRow; + TEMPO tempo{120, 0}; + Order().SetDefaultTempo(tempo); + Order().SetDefaultSpeed(ticksPerRow); m_nChannels = MAX_BASECHANNELS; m_nDefaultRowsPerBeat = quantize / 4; m_nDefaultRowsPerMeasure = 4 * m_nDefaultRowsPerBeat; m_nSamplePreAmp = m_nVSTiVolume = 32; - TEMPO tempo = m_nDefaultTempo; uint16 ppqn = fileHeader.division; if(ppqn & 0x8000) { @@ -832,7 +832,7 @@ TEMPO newTempo(60000000.0 / tempoInt); if(!tick) { - m_nDefaultTempo = newTempo; + Order().SetDefaultTempo(newTempo); } else if(newTempo != tempo) { patRow[tempoChannel].command = CMD_TEMPO; Modified: trunk/OpenMPT/soundlib/Load_mo3.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mo3.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_mo3.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -835,8 +835,8 @@ Order().SetRestartPos(fileHeader.restartPos); m_nInstruments = fileHeader.numInstruments; m_nSamples = fileHeader.numSamples; - m_nDefaultSpeed = fileHeader.defaultSpeed ? fileHeader.defaultSpeed : 6; - m_nDefaultTempo.Set(fileHeader.defaultTempo ? fileHeader.defaultTempo : 125, 0); + Order().SetDefaultSpeed(fileHeader.defaultSpeed ? fileHeader.defaultSpeed : 6); + Order().SetDefaultTempoInt(fileHeader.defaultTempo ? fileHeader.defaultTempo : 125); if(fileHeader.flags & MO3FileHeader::isIT) SetType(MOD_TYPE_IT); Modified: trunk/OpenMPT/soundlib/Load_mod.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mod.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_mod.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -980,8 +980,8 @@ Order().SetRestartPos(0); } - m_nDefaultSpeed = 6; - m_nDefaultTempo.Set(125); + Order().SetDefaultSpeed(6); + Order().SetDefaultTempoInt(125); m_nMinPeriod = 14 * 4; m_nMaxPeriod = 3424 * 4; // Prevent clipping based on number of channels... If all channels are playing at full volume, "256 / #channels" @@ -1595,11 +1595,11 @@ if(!memcmp(songname, "jjk55", 6)) fileHeader.restartPos = 0x78; // Sample 7 in echoing.mod won't "loop" correctly if we don't convert the VBlank tempo. - m_nDefaultTempo.Set(125); + Order().SetDefaultTempoInt(125); if(fileHeader.restartPos != 0x78) { // Convert to CIA timing - m_nDefaultTempo = TEMPO((709379.0 * 125.0 / 50.0) / ((240 - fileHeader.restartPos) * 122.0)); + Order().SetDefaultTempo(TEMPO((709379.0 * 125.0 / 50.0) / ((240 - fileHeader.restartPos) * 122.0))); if(minVersion > UST1_80) { // D.O.C. SoundTracker IX re-introduced the variable tempo after some other versions dropped it. @@ -2009,8 +2009,8 @@ // Now we can be pretty sure that this is a valid MOD file. Set up default song settings. m_nChannels = 4; m_nInstruments = 0; - m_nDefaultSpeed = 6; - m_nDefaultTempo.Set(125); + Order().SetDefaultSpeed(6); + Order().SetDefaultTempoInt(125); m_nMinPeriod = 14 * 4; m_nMaxPeriod = 3424 * 4; m_nSamplePreAmp = 64; @@ -2227,7 +2227,7 @@ if(info.volume != 0) m_nSamplePreAmp = std::min(uint16(64), static_cast<uint16>(info.volume)); if(info.tempo != 0 && !vblank) - m_nDefaultTempo.Set(info.tempo); + Order().SetDefaultTempoInt(info.tempo); if(info.name[0]) m_songName = mpt::String::ReadBuf(mpt::String::maybeNullTerminated, info.name); Modified: trunk/OpenMPT/soundlib/Load_mt2.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mt2.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_mt2.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -457,8 +457,8 @@ m_songName = mpt::String::ReadBuf(mpt::String::maybeNullTerminated, fileHeader.songName); m_nChannels = fileHeader.numChannels; - m_nDefaultSpeed = Clamp<uint8, uint8>(fileHeader.ticksPerLine, 1, 31); - m_nDefaultTempo.Set(125); + Order().SetDefaultSpeed(Clamp<uint8, uint8>(fileHeader.ticksPerLine, 1, 31)); + Order().SetDefaultTempoInt(125); m_SongFlags = SONG_LINEARSLIDES | SONG_ITCOMPATGXX | SONG_EXFILTERRANGE; m_nInstruments = fileHeader.numInstruments; m_nSamples = fileHeader.numSamples; @@ -563,11 +563,11 @@ { if(hasLegacyTempo) { - m_nDefaultTempo.SetRaw(Util::muldivr(110250, TEMPO::fractFact, fileHeader.samplesPerTick)); + Order().SetDefaultTempo(TEMPO{}.SetRaw(Util::muldivr(110250, TEMPO::fractFact, fileHeader.samplesPerTick))); m_nTempoMode = TempoMode::Classic; } else { - m_nDefaultTempo = TEMPO(44100.0 * 60.0 / (m_nDefaultSpeed * m_nDefaultRowsPerBeat * fileHeader.samplesPerTick)); + Order().SetDefaultTempo(TEMPO(44100.0 * 60.0 / (Order().GetDefaultSpeed() * m_nDefaultRowsPerBeat * fileHeader.samplesPerTick))); m_nTempoMode = TempoMode::Modern; } } @@ -589,7 +589,7 @@ double d = chunk.ReadDoubleLE(); if(d > 0.00000001) { - m_nDefaultTempo = TEMPO(44100.0 * 60.0 / (m_nDefaultSpeed * m_nDefaultRowsPerBeat * d)); + Order().SetDefaultTempo(TEMPO(44100.0 * 60.0 / (Order().GetDefaultSpeed() * m_nDefaultRowsPerBeat * d))); } } break; Modified: trunk/OpenMPT/soundlib/Load_okt.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_okt.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_okt.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -403,7 +403,7 @@ // Read default speed if(chunk.GetLength() >= 2) { - m_nDefaultSpeed = Clamp(chunk.ReadUint16BE(), uint16(1), uint16(255)); + Order().SetDefaultSpeed(Clamp(chunk.ReadUint16BE(), uint16(1), uint16(255))); } break; @@ -446,7 +446,7 @@ if(m_nChannels == 0) return false; - m_nDefaultTempo.Set(125); + Order().SetDefaultTempoInt(125); m_nDefaultGlobalVolume = MAX_GLOBAL_VOLUME; m_nSamplePreAmp = m_nVSTiVolume = 48; m_nMinPeriod = 113 * 4; Modified: trunk/OpenMPT/soundlib/Load_plm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_plm.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_plm.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -158,8 +158,8 @@ m_songName = mpt::String::ReadBuf(mpt::String::spacePadded, fileHeader.songName); m_nChannels = fileHeader.numChannels + 1; // Additional channel for writing pattern breaks m_nSamplePreAmp = fileHeader.amplify; - m_nDefaultTempo.Set(fileHeader.tempo); - m_nDefaultSpeed = fileHeader.speed; + Order().SetDefaultTempoInt(fileHeader.tempo); + Order().SetDefaultSpeed(fileHeader.speed); for(CHANNELINDEX chn = 0; chn < fileHeader.numChannels; chn++) { ChnSettings[chn].nPan = fileHeader.panPos[chn] * 0x11; Modified: trunk/OpenMPT/soundlib/Load_psm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_psm.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_psm.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -14,10 +14,6 @@ #include "mpt/parse/parse.hpp" -#ifdef LIBOPENMPT_BUILD -#define MPT_PSM_USE_REAL_SUBSONGS -#endif - OPENMPT_NAMESPACE_BEGIN //////////////////////////////////////////////////////////// @@ -166,8 +162,6 @@ { std::vector<uint8> channelPanning, channelVolume; std::vector<bool> channelSurround; - ORDERINDEX startOrder = ORDERINDEX_INVALID, endOrder = ORDERINDEX_INVALID, restartPos = 0; - uint8 defaultTempo = 125, defaultSpeed = 6; char songName[10] = {}; PSMSubSong() @@ -360,7 +354,6 @@ PSMSubSong subsong; mpt::String::WriteAutoBuf(subsong.songName) = mpt::String::ReadBuf(mpt::String::nullTerminated, songHeader.songType); -#ifdef MPT_PSM_USE_REAL_SUBSONGS if(!Order().empty()) { // Add a new sequence for this subsong @@ -368,7 +361,6 @@ break; } Order().SetName(mpt::ToUnicode(mpt::Charset::CP437, subsong.songName)); -#endif // MPT_PSM_USE_REAL_SUBSONGS // Read "Sub chunks" auto subChunks = chunk.ReadChunks<PSMChunk>(1); @@ -422,9 +414,6 @@ { case 0x01: // Play order list item { - if(subsong.startOrder == ORDERINDEX_INVALID) - subsong.startOrder = Order().GetLength(); - subsong.endOrder = Order().GetLength(); PATTERNINDEX pat = ReadPSMPatternIndex(subChunk, sinariaFormat); if(pat == 0xFF) pat = Order.GetInvalidPatIndex(); @@ -446,8 +435,7 @@ { uint16 restartChunk = subChunk.ReadUint16LE(); if(restartChunk >= firstOrderChunk) - subsong.restartPos = static_cast<ORDERINDEX>(restartChunk - firstOrderChunk); // Close enough - we assume that order list is continuous (like in any real-world PSM) - Order().SetRestartPos(subsong.restartPos); + Order().SetRestartPos(static_cast<ORDERINDEX>(restartChunk - firstOrderChunk)); // Close enough - we assume that order list is continuous (like in any real-world PSM) if(opcode == 0x03) subChunk.Skip(1); } @@ -465,11 +453,11 @@ break; case 0x07: // Default Speed - subsong.defaultSpeed = subChunk.ReadUint8(); + Order().SetDefaultSpeed(subChunk.ReadUint8()); break; case 0x08: // Default Tempo - subsong.defaultTempo = subChunk.ReadUint8(); + Order().SetDefaultTempoInt(subChunk.ReadUint8()); break; case 0x0C: // Sample map table @@ -545,17 +533,11 @@ } // Attach this subsong to the subsong list - finally, all "sub sub sub ..." chunks are parsed. - if(subsong.startOrder != ORDERINDEX_INVALID && subsong.endOrder != ORDERINDEX_INVALID) - { - // Separate subsongs by "---" patterns - Order().push_back(); + if(!Order().empty()) subsongs.push_back(subsong); - } } -#ifdef MPT_PSM_USE_REAL_SUBSONGS Order.SetSequence(0); -#endif // MPT_PSM_USE_REAL_SUBSONGS if(subsongs.empty()) return false; @@ -608,9 +590,6 @@ } // Make the default variables of the first subsong global - m_nDefaultSpeed = subsongs[0].defaultSpeed; - m_nDefaultTempo.Set(subsongs[0].defaultTempo); - Order().SetRestartPos(subsongs[0].restartPos); for(CHANNELINDEX chn = 0; chn < m_nChannels; chn++) { ChnSettings[chn].Reset(); @@ -874,16 +853,11 @@ // Write subsong "configuration" to patterns (only if there are multiple subsongs) for(size_t i = 0; i < subsongs.size(); i++) { -#ifdef MPT_PSM_USE_REAL_SUBSONGS - ModSequence &order = Order(static_cast<SEQUENCEINDEX>(i)); -#else - ModSequence &order = Order(); -#endif // MPT_PSM_USE_REAL_SUBSONGS const PSMSubSong &subsong = subsongs[i]; - PATTERNINDEX startPattern = order[subsong.startOrder]; - if(Patterns.IsValidPat(startPattern)) + ModSequence &order = Order(static_cast<SEQUENCEINDEX>(i)); + if(order.IsValidPat(0)) { - startPattern = order.EnsureUnique(subsong.startOrder); + PATTERNINDEX startPattern = startPattern = order.EnsureUnique(0); // Subsongs with different panning setup -> write to pattern (MUSIC_C.PSM) // Don't write channel volume for now, as there is no real-world module which needs it. if(subsongPanningDiffers) @@ -896,37 +870,7 @@ Patterns[startPattern].WriteEffect(EffectWriter(CMD_PANNING8, subsong.channelPanning[chn]).Row(0).Channel(chn).RetryNextRow()); } } - // Write default tempo/speed to pattern - Patterns[startPattern].WriteEffect(EffectWriter(CMD_SPEED, subsong.defaultSpeed).Row(0).RetryNextRow()); - Patterns[startPattern].WriteEffect(EffectWriter(CMD_TEMPO, subsong.defaultTempo).Row(0).RetryNextRow()); - } - -#ifndef MPT_PSM_USE_REAL_SUBSONGS - // Add restart position to the last pattern - PATTERNINDEX endPattern = order[subsong.endOrder]; - if(Patterns.IsValidPat(endPattern)) - { - endPattern = order.EnsureUnique(subsong.endOrder); - ROWINDEX lastRow = Patterns[endPattern].GetNumRows() - 1; - auto m = Patterns[endPattern].cbegin(); - for(uint32 cell = 0; cell < m_nChannels * Patterns[endPattern].GetNumRows(); cell++, m++) - { - if(m->command == CMD_PATTERNBREAK || m->command == CMD_POSITIONJUMP) - { - lastRow = cell / m_nChannels; - break; - } - } - Patterns[endPattern].WriteEffect(EffectWriter(CMD_POSITIONJUMP, mpt::saturate_cast<ModCommand::PARAM>(subsong.startOrder + subsong.restartPos)).Row(lastRow).RetryPreviousRow()); - } - - // Set the subsong name to all pattern names - for(ORDERINDEX ord = subsong.startOrder; ord <= subsong.endOrder; ord++) - { - if(Patterns.IsValidIndex(order[ord])) - Patterns[order[ord]].SetName(subsong.songName); } -#endif // MPT_PSM_USE_REAL_SUBSONGS } } @@ -1122,8 +1066,8 @@ // Most of the time, the master volume value makes sense... Just not when it's 255. m_nSamplePreAmp = 48; } - m_nDefaultSpeed = fileHeader.songSpeed; - m_nDefaultTempo.Set(fileHeader.songTempo); + Order().SetDefaultSpeed(fileHeader.songSpeed); + Order().SetDefaultTempoInt(fileHeader.songTempo); m_songName = mpt::String::ReadBuf(mpt::String::spacePadded, fileHeader.songName); Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -403,21 +403,17 @@ m_SongFlags.set(SONG_FASTVOLSLIDES); } - // Speed - m_nDefaultSpeed = fileHeader.speed; - if(m_nDefaultSpeed == 0 || (m_nDefaultSpeed == 255 && isST3)) - { - // Even though ST3 accepts the command AFF as expected, it mysteriously fails to load a default speed of 255... - m_nDefaultSpeed = 6; - } + // Even though ST3 accepts the command AFF as expected, it mysteriously fails to load a default speed of 255... + if(fileHeader.speed == 0 || (fileHeader.speed == 255 && isST3)) + Order().SetDefaultSpeed(6); + else + Order().SetDefaultSpeed(fileHeader.speed); - // Tempo - m_nDefaultTempo.Set(fileHeader.tempo); + // ST3 also fails to load an otherwise valid default tempo of 32... if(fileHeader.tempo < 33) - { - // ST3 also fails to load an otherwise valid default tempo of 32... - m_nDefaultTempo.Set(isST3 ? 125 : 32); - } + Order().SetDefaultTempoInt(isST3 ? 125 : 32); + else + Order().SetDefaultTempoInt(fileHeader.tempo); // Global Volume m_nDefaultGlobalVolume = std::min(fileHeader.globalVol.get(), uint8(64)) * 4u; @@ -790,8 +786,8 @@ // Song Variables fileHeader.globalVol = static_cast<uint8>(std::min(m_nDefaultGlobalVolume / 4u, uint32(64))); - fileHeader.speed = static_cast<uint8>(Clamp(m_nDefaultSpeed, 1u, 254u)); - fileHeader.tempo = static_cast<uint8>(Clamp(m_nDefaultTempo.GetInt(), 33u, 255u)); + fileHeader.speed = static_cast<uint8>(Clamp(Order().GetDefaultSpeed(), 1u, 254u)); + fileHeader.tempo = static_cast<uint8>(Clamp(Order().GetDefaultTempo().GetInt(), 33u, 255u)); fileHeader.masterVolume = static_cast<uint8>(Clamp(m_nSamplePreAmp, 16u, 127u) | 0x80); fileHeader.ultraClicks = 16; fileHeader.usePanningTable = S3MFileHeader::idPanning; Modified: trunk/OpenMPT/soundlib/Load_sfx.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_sfx.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_sfx.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -192,8 +192,8 @@ m_nChannels = 4; m_nInstruments = 0; - m_nDefaultTempo = TEMPO((14565.0 * 122.0) / fileHeader.speed); - m_nDefaultSpeed = 6; + Order().SetDefaultTempo(TEMPO((14565.0 * 122.0) / fileHeader.speed)); + Order().SetDefaultSpeed(6); m_nMinPeriod = 14 * 4; m_nMaxPeriod = 3424 * 4; m_nSamplePreAmp = 64; Modified: trunk/OpenMPT/soundlib/Load_stm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_stm.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_stm.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -253,8 +253,8 @@ if(initTempo == 0) initTempo = 0x60; - m_nDefaultTempo = ConvertST2Tempo(initTempo); - m_nDefaultSpeed = initTempo >> 4; + Order().SetDefaultTempo(ConvertST2Tempo(initTempo)); + Order().SetDefaultSpeed(initTempo >> 4); if(fileHeader.verMinor > 10) m_nDefaultGlobalVolume = std::min(fileHeader.globalVolume, uint8(64)) * 4u; @@ -475,8 +475,8 @@ if(initTempo == 0) initTempo = 0x60; - m_nDefaultTempo = ConvertST2Tempo(initTempo); - m_nDefaultSpeed = initTempo >> 4; + Order().SetDefaultTempo(ConvertST2Tempo(initTempo)); + Order().SetDefaultSpeed(initTempo >> 4); m_nDefaultGlobalVolume = std::min(fileHeader.globalVolume, uint8(64)) * 4u; // Setting up channels Modified: trunk/OpenMPT/soundlib/Load_stp.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_stp.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_stp.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -263,8 +263,8 @@ m_nChannels = 4; m_nSamples = 0; - m_nDefaultSpeed = fileHeader.speed; - m_nDefaultTempo = ConvertTempo(fileHeader.timerCount); + Order().SetDefaultSpeed(fileHeader.speed); + Order().SetDefaultTempo(ConvertTempo(fileHeader.timerCount)); m_nMinPeriod = 14 * 4; m_nMaxPeriod = 3424 * 4; Modified: trunk/OpenMPT/soundlib/Load_symmod.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_symmod.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_symmod.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -1075,7 +1075,7 @@ break; case ChunkType::Tempo: - m_nDefaultTempo = TEMPO(1.24 * std::min(file.ReadUint32BE(), uint32(800))); + Order().SetDefaultTempo(TEMPO(1.24 * std::min(file.ReadUint32BE(), uint32(800)))); break; // Unused values Modified: trunk/OpenMPT/soundlib/Load_wav.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_wav.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_wav.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -111,8 +111,8 @@ m_nSamples = wavFile.GetNumChannels(); m_nInstruments = 0; - m_nDefaultSpeed = ticksPerRow; - m_nDefaultTempo.Set(125); + Order().SetDefaultSpeed(ticksPerRow); + Order().SetDefaultTempoInt(125); m_SongFlags = SONG_LINEARSLIDES; for(CHANNELINDEX channel = 0; channel < m_nChannels; channel++) Modified: trunk/OpenMPT/soundlib/Load_xm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_xm.cpp Mon Apr 8 20:39:45 2024 (r20534) +++ trunk/OpenMPT/soundlib/Load_xm.cpp Mon Apr 8 21:13:21 2024 (r20535) @@ -666,9 +666,9 @@ m_nChannels = fileHeader.channels; m_nInstruments = std::min(static_cast<uint16>(fileHeader.instruments), static_cast<uint16>(MAX_INSTRUMENTS - 1)); if(fileHeader.speed) - m_nDefaultSpeed = fileHeader.speed; + Order().SetDefaultSpeed(fileHeader.speed); if(fileHeader.tempo) - m_nDefaultTempo = Clamp(TEMPO(fileHeader.tempo, 0), ModSpecs::xmEx.GetTempoMin(), ModSpecs::xmEx.GetTempoMax()); + Order().SetDefaultTempo(Clamp(TEMPO(fileHeader.tempo, 0), ModSpecs::xmEx.GetTempoMin(), ModSpecs::xmEx.GetTempoMax())); m_SongFlags.reset(); m_SongFlags.set(SONG_LINEARSLIDES, (fileHeader.flags & XMFileHeader::linearSlides) != 0); @@ -1135,8 +1135,8 @@ fileHeader.flags = fileHeader.flags; // Fasttracker 2 will happily accept any tempo faster than 255 BPM. XMPlay does also support this, great! - fileHeader.tempo = mpt::saturate_cast<uint16>(m_nDefaultTempo.GetInt()); - fileHeader.speed = static_cast<uint16>(Clamp(m_nDefaultSpeed, 1u, 31u)); + fileHeader.tempo = mpt::saturate_cast<uint16>(Order().GetDefaultTempo().GetInt()); + fileHeader.speed = static_cast<uint16>(Clamp(Order().GetDefaultSpeed(), 1u, 31u)); mpt::IO::Write(f, fileHeader); Modified: trunk/OpenMPT/soundlib/ModSequence.cpp ==============================================================================... [truncated message content] |
From: <sv...@op...> - 2024-04-08 18:40:00
|
Author: sagamusix Date: Mon Apr 8 20:39:45 2024 New Revision: 20534 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20534 Log: Merged revision(s) 20533 from trunk/OpenMPT: [Fix] Possible crash when merging sequences. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/soundlib/ModSequence.cpp Modified: branches/OpenMPT-1.31/soundlib/ModSequence.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/ModSequence.cpp Mon Apr 8 20:39:23 2024 (r20533) +++ branches/OpenMPT-1.31/soundlib/ModSequence.cpp Mon Apr 8 20:39:45 2024 (r20534) @@ -484,6 +484,7 @@ firstSeq.reserve(firstOrder + lengthTrimmed); firstSeq.push_back(); // Separator item RestartPosToPattern(seqNum); + patternsFixed.resize(m_sndFile.Patterns.Size(), SEQUENCEINDEX_INVALID); // Previous line might have increased pattern count for(ORDERINDEX ord = 0; ord < lengthTrimmed; ord++) { PATTERNINDEX pat = seq[ord]; @@ -522,6 +523,7 @@ } } m_Sequences.erase(m_Sequences.begin() + 1, m_Sequences.end()); + m_currentSeq = 0; return true; } |
From: <sv...@op...> - 2024-04-08 18:39:35
|
Author: sagamusix Date: Mon Apr 8 20:39:23 2024 New Revision: 20533 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20533 Log: [Fix] Possible crash when merging sequences. Modified: trunk/OpenMPT/soundlib/ModSequence.cpp Modified: trunk/OpenMPT/soundlib/ModSequence.cpp ============================================================================== --- trunk/OpenMPT/soundlib/ModSequence.cpp Mon Apr 8 20:16:25 2024 (r20532) +++ trunk/OpenMPT/soundlib/ModSequence.cpp Mon Apr 8 20:39:23 2024 (r20533) @@ -497,6 +497,7 @@ firstSeq.reserve(firstOrder + lengthTrimmed); firstSeq.push_back(); // Separator item RestartPosToPattern(seqNum); + patternsFixed.resize(m_sndFile.Patterns.Size(), SEQUENCEINDEX_INVALID); // Previous line might have increased pattern count for(ORDERINDEX ord = 0; ord < lengthTrimmed; ord++) { PATTERNINDEX pat = seq[ord]; @@ -535,6 +536,7 @@ } } m_Sequences.erase(m_Sequences.begin() + 1, m_Sequences.end()); + m_currentSeq = 0; return true; } |