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-08 18:16:32
|
Author: sagamusix Date: Mon Apr 8 20:16:25 2024 New Revision: 20532 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20532 Log: Merged revision(s) 20531 from trunk/OpenMPT: [Ref] Silence warning. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/soundlib/Load_med.cpp Modified: branches/OpenMPT-1.31/soundlib/Load_med.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_med.cpp Mon Apr 8 20:16:07 2024 (r20531) +++ branches/OpenMPT-1.31/soundlib/Load_med.cpp Mon Apr 8 20:16:25 2024 (r20532) @@ -1452,7 +1452,7 @@ { for(CHANNELINDEX chn = 0; chn < m_nChannels; chn++) { - Patterns[firstPat].WriteEffect(EffectWriter(CMD_CHANNELVOLUME, ChnSettings[chn].nVolume).Channel(chn).RetryNextRow()); + Patterns[firstPat].WriteEffect(EffectWriter(CMD_CHANNELVOLUME, static_cast<ModCommand::PARAM>(ChnSettings[chn].nVolume)).Channel(chn).RetryNextRow()); Patterns[firstPat].WriteEffect(EffectWriter(CMD_PANNING8, mpt::saturate_cast<ModCommand::PARAM>(ChnSettings[chn].nPan)).Channel(chn).RetryNextRow()); } if(firstPat >= numPatterns) |
From: <sv...@op...> - 2024-04-08 18:16:14
|
Author: sagamusix Date: Mon Apr 8 20:16:07 2024 New Revision: 20531 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20531 Log: [Ref] Silence warning. Modified: trunk/OpenMPT/soundlib/Load_med.cpp Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Mon Apr 8 20:12:42 2024 (r20530) +++ trunk/OpenMPT/soundlib/Load_med.cpp Mon Apr 8 20:16:07 2024 (r20531) @@ -1452,7 +1452,7 @@ { for(CHANNELINDEX chn = 0; chn < m_nChannels; chn++) { - Patterns[firstPat].WriteEffect(EffectWriter(CMD_CHANNELVOLUME, ChnSettings[chn].nVolume).Channel(chn).RetryNextRow()); + Patterns[firstPat].WriteEffect(EffectWriter(CMD_CHANNELVOLUME, static_cast<ModCommand::PARAM>(ChnSettings[chn].nVolume)).Channel(chn).RetryNextRow()); Patterns[firstPat].WriteEffect(EffectWriter(CMD_PANNING8, mpt::saturate_cast<ModCommand::PARAM>(ChnSettings[chn].nPan)).Channel(chn).RetryNextRow()); } if(firstPat >= numPatterns) |
From: <sv...@op...> - 2024-04-08 18:12:48
|
Author: sagamusix Date: Mon Apr 8 20:12:42 2024 New Revision: 20530 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20530 Log: Merged revision(s) 20529 from trunk/OpenMPT: [Imp] MED: Improve handling of default tempo, panning and channel volume in files containing more than one song (fixes sugar n spice.mmd3, https://www.un4seen.com/forum/?topic=15448.msg142659#msg142659) ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/soundlib/Load_med.cpp Modified: branches/OpenMPT-1.31/soundlib/Load_med.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_med.cpp Mon Apr 8 20:12:23 2024 (r20529) +++ branches/OpenMPT-1.31/soundlib/Load_med.cpp Mon Apr 8 20:12:42 2024 (r20530) @@ -1197,12 +1197,15 @@ 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); - m_nDefaultTempo = MMDTempoToBPM(songHeader.defaultTempo, is8Ch, bpmMode, rowsPerBeat); - m_nDefaultSpeed = Clamp<uint8, uint8>(songHeader.tempo2, 1, 32); - if(bpmMode) + if(song == 0) { - m_nDefaultRowsPerBeat = rowsPerBeat; - m_nDefaultRowsPerMeasure = m_nDefaultRowsPerBeat * 4u; + 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; + } } if(songHeader.masterVol) @@ -1422,7 +1425,7 @@ } // Fix jump order commands - for(const auto & [from, to] : jumpTargets) + for(const auto &[from, to] : jumpTargets) { PATTERNINDEX pat; if(from > 0 && order.IsValidPat(from - 1)) @@ -1442,6 +1445,21 @@ numPatterns = pat + 1; } + if(numSongs > 1) + { + PATTERNINDEX firstPat = order.EnsureUnique(0); + if(firstPat != PATTERNINDEX_INVALID) + { + for(CHANNELINDEX chn = 0; chn < m_nChannels; chn++) + { + Patterns[firstPat].WriteEffect(EffectWriter(CMD_CHANNELVOLUME, ChnSettings[chn].nVolume).Channel(chn).RetryNextRow()); + Patterns[firstPat].WriteEffect(EffectWriter(CMD_PANNING8, mpt::saturate_cast<ModCommand::PARAM>(ChnSettings[chn].nPan)).Channel(chn).RetryNextRow()); + } + if(firstPat >= numPatterns) + numPatterns = firstPat + 1; + } + } + basePattern += numPatterns; if(!expData.nextModOffset || !file.Seek(expData.nextModOffset)) |
From: <sv...@op...> - 2024-04-08 18:12:37
|
Author: sagamusix Date: Mon Apr 8 20:12:23 2024 New Revision: 20529 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20529 Log: [Imp] MED: Improve handling of default tempo, panning and channel volume in files containing more than one song (fixes sugar n spice.mmd3, https://www.un4seen.com/forum/?topic=15448.msg142659#msg142659) Modified: trunk/OpenMPT/soundlib/Load_med.cpp Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Mon Apr 8 19:08:57 2024 (r20528) +++ trunk/OpenMPT/soundlib/Load_med.cpp Mon Apr 8 20:12:23 2024 (r20529) @@ -1197,12 +1197,15 @@ 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); - m_nDefaultTempo = MMDTempoToBPM(songHeader.defaultTempo, is8Ch, bpmMode, rowsPerBeat); - m_nDefaultSpeed = Clamp<uint8, uint8>(songHeader.tempo2, 1, 32); - if(bpmMode) + if(song == 0) { - m_nDefaultRowsPerBeat = rowsPerBeat; - m_nDefaultRowsPerMeasure = m_nDefaultRowsPerBeat * 4u; + 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; + } } if(songHeader.masterVol) @@ -1422,7 +1425,7 @@ } // Fix jump order commands - for(const auto & [from, to] : jumpTargets) + for(const auto &[from, to] : jumpTargets) { PATTERNINDEX pat; if(from > 0 && order.IsValidPat(from - 1)) @@ -1442,6 +1445,21 @@ numPatterns = pat + 1; } + if(numSongs > 1) + { + PATTERNINDEX firstPat = order.EnsureUnique(0); + if(firstPat != PATTERNINDEX_INVALID) + { + for(CHANNELINDEX chn = 0; chn < m_nChannels; chn++) + { + Patterns[firstPat].WriteEffect(EffectWriter(CMD_CHANNELVOLUME, ChnSettings[chn].nVolume).Channel(chn).RetryNextRow()); + Patterns[firstPat].WriteEffect(EffectWriter(CMD_PANNING8, mpt::saturate_cast<ModCommand::PARAM>(ChnSettings[chn].nPan)).Channel(chn).RetryNextRow()); + } + if(firstPat >= numPatterns) + numPatterns = firstPat + 1; + } + } + basePattern += numPatterns; if(!expData.nextModOffset || !file.Seek(expData.nextModOffset)) |
From: <sv...@op...> - 2024-04-08 17:09:04
|
Author: sagamusix Date: Mon Apr 8 19:08:57 2024 New Revision: 20528 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20528 Log: Merged revision(s) 20524 from trunk/OpenMPT: [Mod] M15: Loosen file rejection heuristics a bit to allow loading of schmokk.mod and scramble_2.mod. ........ 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 19:08:00 2024 (r20527) +++ branches/OpenMPT-1.28/soundlib/Load_mod.cpp Mon Apr 8 19:08:57 2024 (r20528) @@ -1322,9 +1322,9 @@ // 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 5 invalid characters just in the title alone. + // 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 > 5) + if(invalidChars > 11) { return false; } @@ -1338,10 +1338,13 @@ invalidChars += CountInvalidChars(sampleHeader.name); + // schmokk.mod has a non-zero value here but it should not be treated as finetune + if(sampleHeader.finetune != 0) + invalidChars += 16; + // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 || sampleHeader.volume > 64 - || sampleHeader.finetune != 0 || sampleHeader.length > 32768) { return false; @@ -1477,10 +1480,12 @@ file.Seek(20); for(SAMPLEINDEX smp = 1; smp <= 15; smp++) { + ModSample &mptSmp = Samples[smp]; MODSampleHeader sampleHeader; ReadSample(file, sampleHeader, Samples[smp], m_szNames[smp], true); + mptSmp.nFineTune = 0; - totalSampleLen += Samples[smp].nLength; + totalSampleLen += mptSmp.nLength; if(m_szNames[smp][0] && ((memcmp(m_szNames[smp], "st-", 3) && memcmp(m_szNames[smp], "ST-", 3)) || m_szNames[smp][5] != ':')) { @@ -1491,9 +1496,9 @@ // Loop start is always in bytes, not words, so don't trust the auto-fix magic in the sample header conversion (fixes loop of "st-01:asia" in mod.drag 10) if(sampleHeader.loopLength > 1) { - Samples[smp].nLoopStart = sampleHeader.loopStart; - Samples[smp].nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; - Samples[smp].SanitizeLoops(); + mptSmp.nLoopStart = sampleHeader.loopStart; + mptSmp.nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; + mptSmp.SanitizeLoops(); } // UST only handles samples up to 9999 bytes. Master Soundtracker 1.0 and SoundTracker 2.0 introduce 32KB samples. |
From: <sv...@op...> - 2024-04-08 17:08:07
|
Author: sagamusix Date: Mon Apr 8 19:08:00 2024 New Revision: 20527 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20527 Log: Merged revision(s) 20524 from trunk/OpenMPT: [Mod] M15: Loosen file rejection heuristics a bit to allow loading of schmokk.mod and scramble_2.mod. ........ 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 19:07:38 2024 (r20526) +++ branches/OpenMPT-1.29/soundlib/Load_mod.cpp Mon Apr 8 19:08:00 2024 (r20527) @@ -1363,9 +1363,9 @@ // 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 5 invalid characters just in the title alone. + // 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 > 5) + if(invalidChars > 11) { return false; } @@ -1379,10 +1379,13 @@ invalidChars += CountInvalidChars(sampleHeader.name); + // schmokk.mod has a non-zero value here but it should not be treated as finetune + if(sampleHeader.finetune != 0) + invalidChars += 16; + // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 || sampleHeader.volume > 64 - || sampleHeader.finetune != 0 || sampleHeader.length > 32768) { return false; @@ -1490,10 +1493,12 @@ file.Seek(20); for(SAMPLEINDEX smp = 1; smp <= 15; smp++) { + ModSample &mptSmp = Samples[smp]; MODSampleHeader sampleHeader; ReadSample(file, sampleHeader, Samples[smp], m_szNames[smp], true); + mptSmp.nFineTune = 0; - totalSampleLen += Samples[smp].nLength; + 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] != ':')) { @@ -1504,9 +1509,9 @@ // Loop start is always in bytes, not words, so don't trust the auto-fix magic in the sample header conversion (fixes loop of "st-01:asia" in mod.drag 10) if(sampleHeader.loopLength > 1) { - Samples[smp].nLoopStart = sampleHeader.loopStart; - Samples[smp].nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; - Samples[smp].SanitizeLoops(); + mptSmp.nLoopStart = sampleHeader.loopStart; + mptSmp.nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; + mptSmp.SanitizeLoops(); } // UST only handles samples up to 9999 bytes. Master Soundtracker 1.0 and SoundTracker 2.0 introduce 32KB samples. |
From: <sv...@op...> - 2024-04-08 17:07:46
|
Author: sagamusix Date: Mon Apr 8 19:07:38 2024 New Revision: 20526 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20526 Log: Merged revision(s) 20524 from trunk/OpenMPT: [Mod] M15: Loosen file rejection heuristics a bit to allow loading of schmokk.mod and scramble_2.mod. ........ 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 19:07:22 2024 (r20525) +++ branches/OpenMPT-1.30/soundlib/Load_mod.cpp Mon Apr 8 19:07:38 2024 (r20526) @@ -1370,9 +1370,9 @@ // 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 5 invalid characters just in the title alone. + // 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 > 5) + if(invalidChars > 11) { return false; } @@ -1386,10 +1386,13 @@ invalidChars += CountInvalidChars(sampleHeader.name); + // schmokk.mod has a non-zero value here but it should not be treated as finetune + if(sampleHeader.finetune != 0) + invalidChars += 16; + // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 || sampleHeader.volume > 64 - || sampleHeader.finetune != 0 || sampleHeader.length > 32768) { return false; @@ -1497,10 +1500,12 @@ file.Seek(20); for(SAMPLEINDEX smp = 1; smp <= 15; smp++) { + ModSample &mptSmp = Samples[smp]; MODSampleHeader sampleHeader; ReadSample(file, sampleHeader, Samples[smp], m_szNames[smp], true); + mptSmp.nFineTune = 0; - totalSampleLen += Samples[smp].nLength; + 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] != ':')) { @@ -1511,9 +1516,9 @@ // Loop start is always in bytes, not words, so don't trust the auto-fix magic in the sample header conversion (fixes loop of "st-01:asia" in mod.drag 10) if(sampleHeader.loopLength > 1) { - Samples[smp].nLoopStart = sampleHeader.loopStart; - Samples[smp].nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; - Samples[smp].SanitizeLoops(); + mptSmp.nLoopStart = sampleHeader.loopStart; + mptSmp.nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; + mptSmp.SanitizeLoops(); } // UST only handles samples up to 9999 bytes. Master Soundtracker 1.0 and SoundTracker 2.0 introduce 32KB samples. |
From: <sv...@op...> - 2024-04-08 17:07:37
|
Author: sagamusix Date: Mon Apr 8 19:07:22 2024 New Revision: 20525 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20525 Log: Merged revision(s) 20524 from trunk/OpenMPT: [Mod] M15: Loosen file rejection heuristics a bit to allow loading of schmokk.mod and scramble_2.mod. ........ 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 19:06:34 2024 (r20524) +++ branches/OpenMPT-1.31/soundlib/Load_mod.cpp Mon Apr 8 19:07:22 2024 (r20525) @@ -1410,9 +1410,9 @@ // 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 5 invalid characters just in the title alone. + // 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 > 5) + if(invalidChars > 11) { return false; } @@ -1426,10 +1426,13 @@ invalidChars += CountInvalidChars(sampleHeader.name); + // schmokk.mod has a non-zero value here but it should not be treated as finetune + if(sampleHeader.finetune != 0) + invalidChars += 16; + // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 || sampleHeader.volume > 64 - || sampleHeader.finetune != 0 || sampleHeader.length > 32768) { return false; @@ -1537,11 +1540,13 @@ file.Seek(20); for(SAMPLEINDEX smp = 1; smp <= 15; smp++) { + ModSample &mptSmp = Samples[smp]; MODSampleHeader sampleHeader; file.ReadStruct(sampleHeader); ReadSample(sampleHeader, Samples[smp], m_szNames[smp], true); + mptSmp.nFineTune = 0; - totalSampleLen += Samples[smp].nLength; + 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] != ':')) { @@ -1552,9 +1557,9 @@ // Loop start is always in bytes, not words, so don't trust the auto-fix magic in the sample header conversion (fixes loop of "st-01:asia" in mod.drag 10) if(sampleHeader.loopLength > 1) { - Samples[smp].nLoopStart = sampleHeader.loopStart; - Samples[smp].nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; - Samples[smp].SanitizeLoops(); + mptSmp.nLoopStart = sampleHeader.loopStart; + mptSmp.nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; + mptSmp.SanitizeLoops(); } // UST only handles samples up to 9999 bytes. Master Soundtracker 1.0 and SoundTracker 2.0 introduce 32KB samples. |
From: <sv...@op...> - 2024-04-08 17:06:46
|
Author: sagamusix Date: Mon Apr 8 19:06:34 2024 New Revision: 20524 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20524 Log: [Mod] M15: Loosen file rejection heuristics a bit to allow loading of schmokk.mod and scramble_2.mod. Modified: trunk/OpenMPT/soundlib/Load_mod.cpp Modified: trunk/OpenMPT/soundlib/Load_mod.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mod.cpp Sun Apr 7 22:18:38 2024 (r20523) +++ trunk/OpenMPT/soundlib/Load_mod.cpp Mon Apr 8 19:06:34 2024 (r20524) @@ -1410,9 +1410,9 @@ // 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 5 invalid characters just in the title alone. + // 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 > 5) + if(invalidChars > 11) { return false; } @@ -1426,10 +1426,13 @@ invalidChars += CountInvalidChars(sampleHeader.name); + // schmokk.mod has a non-zero value here but it should not be treated as finetune + if(sampleHeader.finetune != 0) + invalidChars += 16; + // Sanity checks - invalid character count adjusted for ata.mod (MD5 937b79b54026fa73a1a4d3597c26eace, SHA1 3322ca62258adb9e0ae8e9afe6e0c29d39add874) if(invalidChars > 48 || sampleHeader.volume > 64 - || sampleHeader.finetune != 0 || sampleHeader.length > 32768) { return false; @@ -1537,11 +1540,13 @@ file.Seek(20); for(SAMPLEINDEX smp = 1; smp <= 15; smp++) { + ModSample &mptSmp = Samples[smp]; MODSampleHeader sampleHeader; file.ReadStruct(sampleHeader); ReadSample(sampleHeader, Samples[smp], m_szNames[smp], true); + mptSmp.nFineTune = 0; - totalSampleLen += Samples[smp].nLength; + 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] != ':')) { @@ -1552,9 +1557,9 @@ // Loop start is always in bytes, not words, so don't trust the auto-fix magic in the sample header conversion (fixes loop of "st-01:asia" in mod.drag 10) if(sampleHeader.loopLength > 1) { - Samples[smp].nLoopStart = sampleHeader.loopStart; - Samples[smp].nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; - Samples[smp].SanitizeLoops(); + mptSmp.nLoopStart = sampleHeader.loopStart; + mptSmp.nLoopEnd = sampleHeader.loopStart + sampleHeader.loopLength * 2; + mptSmp.SanitizeLoops(); } // UST only handles samples up to 9999 bytes. Master Soundtracker 1.0 and SoundTracker 2.0 introduce 32KB samples. |
From: <sv...@op...> - 2024-04-07 20:18:45
|
Author: sagamusix Date: Sun Apr 7 22:18:38 2024 New Revision: 20523 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20523 Log: [Fix] When OpenMPT is configured to automatically open the audio device on start, autoplay needs to happen afterwards to avoid playing silence. Modified: trunk/OpenMPT/mptrack/Mptrack.cpp Modified: trunk/OpenMPT/mptrack/Mptrack.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mptrack.cpp Sun Apr 7 22:13:15 2024 (r20522) +++ trunk/OpenMPT/mptrack/Mptrack.cpp Sun Apr 7 22:18:38 2024 (r20523) @@ -1468,10 +1468,6 @@ pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); - if(cmdInfo.m_autoPlay) - { - pMainFrame->PlayMod(pMainFrame->GetActiveDoc()); - } EndWaitCursor(); @@ -1527,6 +1523,11 @@ pMainFrame->PlayPreview(); } + if(cmdInfo.m_autoPlay) + { + pMainFrame->PlayMod(pMainFrame->GetActiveDoc()); + } + if(!TrackerSettings::Instance().FirstRun) { #if defined(MPT_ENABLE_UPDATE) |
From: <sv...@op...> - 2024-04-07 20:13:23
|
Author: sagamusix Date: Sun Apr 7 22:13:15 2024 New Revision: 20522 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20522 Log: [New] Add a /play command line switch, which automatically starts playback of one of the modules passed via the command-line (https://bugs.openmpt.org/view.php?id=1751). Modified: trunk/OpenMPT/mptrack/IPCWindow.cpp trunk/OpenMPT/mptrack/IPCWindow.h trunk/OpenMPT/mptrack/Mptrack.cpp Modified: trunk/OpenMPT/mptrack/IPCWindow.cpp ============================================================================== --- trunk/OpenMPT/mptrack/IPCWindow.cpp Sun Apr 7 22:01:56 2024 (r20521) +++ trunk/OpenMPT/mptrack/IPCWindow.cpp Sun Apr 7 22:13:15 2024 (r20522) @@ -10,9 +10,11 @@ #include "stdafx.h" #include "IPCWindow.h" +#include "Mainfrm.h" +#include "ModDocTemplate.h" +#include "Mptrack.h" #include "../common/version.h" -#include "Mptrack.h" OPENMPT_NAMESPACE_BEGIN @@ -86,6 +88,13 @@ result = (theApp.GetConfigPath().ToWide() == path) ? 1 : 0; } break; + case Function::PlayCurrent: + if(CMainFrame::GetMainFrame()) + { + if(CMainFrame::GetMainFrame()->PlayMod(CMainFrame::GetMainFrame()->GetActiveDoc())) + result = 1; + } + break; default: result = 0; break; @@ -209,7 +218,7 @@ - bool SendToIPC(const std::vector<mpt::PathString> &filenames) + bool SendToIPC(const std::vector<mpt::PathString> &filenames, bool autoplay) { HWND ipcWnd = FindIPCWindow(); if(!ipcWnd) @@ -227,6 +236,10 @@ return false; } } + if(autoplay) + { + SendIPC(ipcWnd, Function::PlayCurrent); + } return true; } Modified: trunk/OpenMPT/mptrack/IPCWindow.h ============================================================================== --- trunk/OpenMPT/mptrack/IPCWindow.h Sun Apr 7 22:01:56 2024 (r20521) +++ trunk/OpenMPT/mptrack/IPCWindow.h Sun Apr 7 22:13:15 2024 (r20522) @@ -23,7 +23,8 @@ GetVersion = 0x03, // returns Version::GewRawVersion() GetArchitecture = 0x04, // returns mpt::OS::Windows::Architecture HasSameBinaryPath = 0x05, - HasSameSettingsPath = 0x06 + HasSameSettingsPath = 0x06, + PlayCurrent = 0x07, }; void Open(HINSTANCE hInstance); @@ -48,7 +49,7 @@ HWND FindIPCWindow(FlagSet<InstanceRequirements> require); // Send file open requests to other OpenMPT instance, if there is one - bool SendToIPC(const std::vector<mpt::PathString> &filenames); + bool SendToIPC(const std::vector<mpt::PathString> &filenames, bool autoplay); } Modified: trunk/OpenMPT/mptrack/Mptrack.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mptrack.cpp Sun Apr 7 22:01:56 2024 (r20521) +++ trunk/OpenMPT/mptrack/Mptrack.cpp Sun Apr 7 22:13:15 2024 (r20522) @@ -294,7 +294,8 @@ public: std::vector<mpt::PathString> m_fileNames; bool m_noDls = false, m_noPlugins = false, m_noAssembly = false, m_noSysCheck = false, m_noWine = false, - m_portable = false, m_noCrashHandler = false, m_debugCrashHandler = false, m_sharedInstance = false; + m_portable = false, m_noCrashHandler = false, m_debugCrashHandler = false, m_sharedInstance = false, + m_autoPlay = false; #ifdef ENABLE_TESTS bool m_noTests = false; #endif @@ -315,6 +316,7 @@ if(!lstrcmpi(param, _T("noCrashHandler"))) { m_noCrashHandler = true; return; } if(!lstrcmpi(param, _T("DebugCrashHandler"))) { m_debugCrashHandler = true; return; } if(!lstrcmpi(param, _T("shared"))) { m_sharedInstance = true; return; } + if(!lstrcmpi(param, _T("play"))) { m_autoPlay = true; return; } #ifdef ENABLE_TESTS if (!lstrcmpi(param, _T("noTests"))) { m_noTests = true; return; } #endif @@ -1165,7 +1167,7 @@ // Set up paths to store configuration in SetupPaths(cmdInfo.m_portable); - if(cmdInfo.m_sharedInstance && IPCWindow::SendToIPC(cmdInfo.m_fileNames)) + if(cmdInfo.m_sharedInstance && IPCWindow::SendToIPC(cmdInfo.m_fileNames, cmdInfo.m_autoPlay)) { ExitProcess(0); } @@ -1269,7 +1271,7 @@ ExceptionHandler::ConfigureSystemHandler(); } - if(TrackerSettings::Instance().MiscUseSingleInstance && IPCWindow::SendToIPC(cmdInfo.m_fileNames)) + if(TrackerSettings::Instance().MiscUseSingleInstance && IPCWindow::SendToIPC(cmdInfo.m_fileNames, cmdInfo.m_autoPlay)) { ExitProcess(0); } @@ -1466,6 +1468,10 @@ pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); + if(cmdInfo.m_autoPlay) + { + pMainFrame->PlayMod(pMainFrame->GetActiveDoc()); + } EndWaitCursor(); |
From: <sv...@op...> - 2024-04-07 20:02:10
|
Author: sagamusix Date: Sun Apr 7 22:01:56 2024 New Revision: 20521 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20521 Log: [Doc] Update module_formats.md. Modified: trunk/OpenMPT/doc/module_formats.md Modified: trunk/OpenMPT/doc/module_formats.md ============================================================================== --- trunk/OpenMPT/doc/module_formats.md Sun Apr 7 21:29:51 2024 (r20520) +++ trunk/OpenMPT/doc/module_formats.md Sun Apr 7 22:01:56 2024 (r20521) @@ -17,8 +17,8 @@ a subset of ProTracker MOD). * When reading binary structs from the file, use our data types with defined endianness, which can be found in `common/Endianness.h`: - * Big-Endian: (u)int8/16/32/64be, float32be, float64be - * Little-Endian: (u)int8/16/32/64le, float32le, float64le + * Big-Endian: (u)int8/16/24/32/64be, float32be, float64be + * Little-Endian: (u)int8/16/24/32/64le, float32le, float64le Entire structs containing integers with defined endianness can be read in one go if they are tagged with `MPT_BINARY_STRUCT` (see existing loaders for an @@ -38,8 +38,8 @@ thread-safe for libopenmpt. * `FileReader` instances may be used to treat a portion of a file as its own independent file (through `FileReader::ReadChunk`). This can be useful with - "embedded files" such as WAV or Ogg samples. Container formats such as UMX - are another good example for this usage. + "embedded files" such as WAV or Ogg samples (see MO3 or SymMOD for examples). + Container formats such as UMX are another good example for this usage. * Samples *either* use middle-C frequency *or* finetune + transpose. For the few weird formats that use both, it may make sense to translate everything into middle-C frequency. @@ -66,7 +66,7 @@ (which may e.g. cause a song title starting with if ..." in various other formats to be interpreted as a 669 module), and of course Ultimate SoundTracker modules, which have no magic bytes at all. -* Avoid use of functions tagged with [[deprecated]]. +* Avoid use of functions tagged with `[[deprecated]]`. Probing ------- |
From: <sv...@op...> - 2024-04-07 19:29:57
|
Author: sagamusix Date: Sun Apr 7 21:29:51 2024 New Revision: 20520 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20520 Log: [Mod] Add XnaVisualizerDmo to list of known DMO plugins that should not be loaded. It cannot be used. Modified: trunk/OpenMPT/soundlib/plugins/PluginManager.cpp Modified: trunk/OpenMPT/soundlib/plugins/PluginManager.cpp ============================================================================== --- trunk/OpenMPT/soundlib/plugins/PluginManager.cpp Sun Apr 7 21:09:48 2024 (r20519) +++ trunk/OpenMPT/soundlib/plugins/PluginManager.cpp Sun Apr 7 21:29:51 2024 (r20520) @@ -415,6 +415,7 @@ "120CED89-3BF4-4173-A132-3CB406CF3231"_uuid, // ParamEq "87FC0268-9A55-4360-95AA-004A1D9DE26C"_uuid, // WavesReverb "F447B69E-1884-4A7E-8055-346F74D6EDB3"_uuid, // Resampler DMO (not usable) + "A8122FF4-9E52-4374-B3D9-B4063E77109D"_uuid, // XnaVisualizerDmo (not usable) }; HKEY hkEnum; |
From: <sv...@op...> - 2024-04-07 19:10:00
|
Author: sagamusix Date: Sun Apr 7 21:09:48 2024 New Revision: 20519 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20519 Log: Merged revision(s) 20518 from trunk/OpenMPT: [Imp] When autos-saving, display the to-be-saved module's filename in the status bar. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/AutoSaver.cpp Modified: branches/OpenMPT-1.31/mptrack/AutoSaver.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/AutoSaver.cpp Sun Apr 7 21:07:59 2024 (r20518) +++ branches/OpenMPT-1.31/mptrack/AutoSaver.cpp Sun Apr 7 21:09:48 2024 (r20519) @@ -9,15 +9,18 @@ #include "stdafx.h" -#include "Mptrack.h" -#include "Mainfrm.h" -#include "Moddoc.h" #include "AutoSaver.h" #include "FileDialog.h" #include "FolderScanner.h" +#include "Mainfrm.h" +#include "Moddoc.h" +#include "Mptrack.h" +#include "Reporting.h" #include "resource.h" -#include "mpt/fs/fs.hpp" +#include "TrackerSettings.h" #include "../soundlib/mod_specifications.h" +#include "mpt/fs/fs.hpp" + #include <algorithm> @@ -58,35 +61,39 @@ bool CAutoSaver::DoSave(DWORD curTime) { - bool success = true; - - //If time to save and not already having save in progress. - if (CheckTimer(curTime) && !m_saveInProgress) - { - m_saveInProgress = true; - - theApp.BeginWaitCursor(); //display hour glass - - for(auto &modDoc : theApp.GetOpenDocuments()) + // Do nothing if we are already saving, or if time to save has not been reached yet. + if(m_saveInProgress || !CheckTimer(curTime)) + return true; + + bool success = true, clearStatus = false; + m_saveInProgress = true; + + theApp.BeginWaitCursor(); // Display hour glass + + for(auto &modDoc : theApp.GetOpenDocuments()) + { + if(modDoc->ModifiedSinceLastAutosave()) { - if(modDoc->ModifiedSinceLastAutosave()) + clearStatus = true; + static_cast<CMainFrame *>(theApp.GetMainWnd())->SetHelpText(MPT_CFORMAT("Auto-saving {}...")(modDoc->GetPathNameMpt().GetFilename())); + if(SaveSingleFile(*modDoc)) { - if(SaveSingleFile(*modDoc)) - { - CleanUpBackups(*modDoc); - } else - { - TrackerSettings::Instance().AutosaveEnabled = false; - Reporting::Warning("Warning: Auto Save failed and has been disabled. Please:\n- Review your Auto Save paths\n- Check available disk space and filesystem access rights"); - success = false; - } + CleanUpBackups(*modDoc); + } else + { + TrackerSettings::Instance().AutosaveEnabled = false; + Reporting::Warning("Warning: Auto Save failed and has been disabled. Please:\n- Review your Auto Save paths\n- Check available disk space and filesystem access rights"); + success = false; } } - - m_lastSave = timeGetTime(); - theApp.EndWaitCursor(); // End display hour glass - m_saveInProgress = false; } + + m_lastSave = timeGetTime(); + theApp.EndWaitCursor(); // End display hour glass + m_saveInProgress = false; + + if(clearStatus) + static_cast<CMainFrame *>(theApp.GetMainWnd())->SetHelpText(_T("")); return success; } |
From: <sv...@op...> - 2024-04-07 19:08:15
|
Author: sagamusix Date: Sun Apr 7 21:07:59 2024 New Revision: 20518 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20518 Log: [Imp] When autos-saving, display the to-be-saved module's filename in the status bar. Modified: trunk/OpenMPT/mptrack/AutoSaver.cpp Modified: trunk/OpenMPT/mptrack/AutoSaver.cpp ============================================================================== --- trunk/OpenMPT/mptrack/AutoSaver.cpp Sat Apr 6 14:45:29 2024 (r20517) +++ trunk/OpenMPT/mptrack/AutoSaver.cpp Sun Apr 7 21:07:59 2024 (r20518) @@ -12,6 +12,7 @@ #include "AutoSaver.h" #include "FileDialog.h" #include "FolderScanner.h" +#include "Mainfrm.h" #include "Moddoc.h" #include "Mptrack.h" #include "Reporting.h" @@ -60,35 +61,39 @@ bool CAutoSaver::DoSave(DWORD curTime) { - bool success = true; - - //If time to save and not already having save in progress. - if (CheckTimer(curTime) && !m_saveInProgress) - { - m_saveInProgress = true; - - theApp.BeginWaitCursor(); //display hour glass - - for(auto &modDoc : theApp.GetOpenDocuments()) + // Do nothing if we are already saving, or if time to save has not been reached yet. + if(m_saveInProgress || !CheckTimer(curTime)) + return true; + + bool success = true, clearStatus = false; + m_saveInProgress = true; + + theApp.BeginWaitCursor(); // Display hour glass + + for(auto &modDoc : theApp.GetOpenDocuments()) + { + if(modDoc->ModifiedSinceLastAutosave()) { - if(modDoc->ModifiedSinceLastAutosave()) + clearStatus = true; + static_cast<CMainFrame *>(theApp.GetMainWnd())->SetHelpText(MPT_CFORMAT("Auto-saving {}...")(modDoc->GetPathNameMpt().GetFilename())); + if(SaveSingleFile(*modDoc)) + { + CleanUpBackups(*modDoc); + } else { - if(SaveSingleFile(*modDoc)) - { - CleanUpBackups(*modDoc); - } else - { - TrackerSettings::Instance().AutosaveEnabled = false; - Reporting::Warning("Warning: Auto Save failed and has been disabled. Please:\n- Review your Auto Save paths\n- Check available disk space and filesystem access rights"); - success = false; - } + TrackerSettings::Instance().AutosaveEnabled = false; + Reporting::Warning("Warning: Auto Save failed and has been disabled. Please:\n- Review your Auto Save paths\n- Check available disk space and filesystem access rights"); + success = false; } } - - m_lastSave = timeGetTime(); - theApp.EndWaitCursor(); // End display hour glass - m_saveInProgress = false; } + + m_lastSave = timeGetTime(); + theApp.EndWaitCursor(); // End display hour glass + m_saveInProgress = false; + + if(clearStatus) + static_cast<CMainFrame *>(theApp.GetMainWnd())->SetHelpText(_T("")); return success; } |
From: <sv...@op...> - 2024-04-06 12:45:42
|
Author: sagamusix Date: Sat Apr 6 14:45:29 2024 New Revision: 20517 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20517 Log: [Mod] Pattern tab: Avoid redrawing the entire pattern when playing a pattern that is not associated with any order. Modified: trunk/OpenMPT/mptrack/View_pat.cpp Modified: trunk/OpenMPT/mptrack/View_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp Fri Apr 5 16:46:41 2024 (r20516) +++ trunk/OpenMPT/mptrack/View_pat.cpp Sat Apr 6 14:45:29 2024 (r20517) @@ -3601,11 +3601,9 @@ else if(TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SHOWPREVIOUS) InvalidatePattern(true, true); // Redraw previous / next pattern + m_nOrder = ord; if(ord < order.GetLength()) - { - m_nOrder = ord; SendCtrlMessage(CTRLMSG_NOTIFYCURRENTORDER, ord); - } updateOrderList = false; } if(row != GetCurrentRow()) |
From: <sv...@op...> - 2024-04-05 14:46:53
|
Author: manx Date: Fri Apr 5 16:46:41 2024 New Revision: 20516 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20516 Log: Merged revision(s) 20504-20505 from trunk/OpenMPT: [New] build: CI: GitHub: CPA: Add Autotools builders for FreeBSD, OpenBSD, and NetBSD. ........ [Reg] build: CI: GitHub: CPA: Remove Autotools builders for OpenBSD and NetBSD again. ........ Added: branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml - copied, changed from r20505, trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml Modified: branches/OpenMPT-1.31/ (props changed) Copied and modified: branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml (from r20505, trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml) ============================================================================== --- trunk/OpenMPT/.github/workflows/FreeBSD-Autotools.yml Fri Apr 5 14:49:55 2024 (r20505, copy source) +++ branches/OpenMPT-1.31/.github/workflows/FreeBSD-Autotools.yml Fri Apr 5 16:46:41 2024 (r20516) @@ -2,9 +2,7 @@ on: push: - branches: [ master ] - pull_request: - branches: [ master ] + branches: [ OpenMPT-1.31 ] jobs: build: |
From: <sv...@op...> - 2024-04-05 14:44:39
|
Author: manx Date: Fri Apr 5 16:44:26 2024 New Revision: 20515 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20515 Log: Merged revision(s) 20506 from trunk/OpenMPT: [Ref] build: CI: GitHub: CPA: NetBSD: Try to cleanup dependency installation. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml Modified: branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml ============================================================================== --- branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml Fri Apr 5 16:43:00 2024 (r20514) +++ branches/OpenMPT-1.31/.github/workflows/NetBSD-Makefile.yml Fri Apr 5 16:44:26 2024 (r20515) @@ -54,10 +54,8 @@ sudo pkgin -y install subversion git p5-XML-XPath mawk sudo pkgin -y install gmake pkgconf sudo pkgin -y install mpg123 libogg libvorbis flac libsndfile pulseaudio portaudio SDL2 - sudo pkgin -y install gcc7-libs # for libstdc++7 sudo pkgin -y install autoconf autoconf-archive automake libtool libltdl - sudo pkgin -y install help2man - #sudo pkgin -y install doxygen # broken + sudo pkgin -y install doxygen help2man - name: Build uses: cross-platform-actions/action@141cc293701219fd2f72b3abd9ca1fc322cf7d84 with: |
From: <sv...@op...> - 2024-04-05 14:43:12
|
Author: manx Date: Fri Apr 5 16:43:00 2024 New Revision: 20514 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20514 Log: Merged revision(s) 20494, 20507 from trunk/OpenMPT: [Imp] build: Autotools: Support running autoconfiscate on BSD system. ........ [Fix] build: Autotools: Assume bsdtar on BSD. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/build/autotools/autoconfiscate.sh Modified: branches/OpenMPT-1.31/build/autotools/autoconfiscate.sh ============================================================================== --- branches/OpenMPT-1.31/build/autotools/autoconfiscate.sh Fri Apr 5 16:41:19 2024 (r20513) +++ branches/OpenMPT-1.31/build/autotools/autoconfiscate.sh Fri Apr 5 16:43:00 2024 (r20514) @@ -9,11 +9,21 @@ # checkout. The invests no effort in verifying this precondition. # +echo "Detecting OS ..." +UNAME_S="$(uname -s)" +if [[ $UNAME_S == *"BSD"* ]]; then + BSD=1 + MAKE=gmake +else + BSD=0 + MAKE=make +fi + echo "Gathering version ..." . libopenmpt/libopenmpt_version.mk echo "Cleaning local build ..." -make clean +$MAKE clean echo "Cleaning dist-autotools.tar ..." rm -rf bin/dist-autotools.tar || true @@ -188,14 +198,14 @@ echo " BUILD_SVNDATE=${BUILD_SVNDATE}" echo "Building man pages ..." -make bin/openmpt123.1 +$MAKE bin/openmpt123.1 echo "Copying man pages ..." mkdir bin/dist-autotools/man cp bin/openmpt123.1 bin/dist-autotools/man/openmpt123.1 echo "Cleaning local buid ..." -make clean +$MAKE clean echo "Changing to autotools package directory ..." OLDDIR="$(pwd)" @@ -239,28 +249,31 @@ ./configure echo "Running 'make dist' ..." -make dist +$MAKE dist echo "Running 'make distcheck' ..." -#make distcheck ( - make distcheck 3>&1 1>&2 2>&3 | ( grep -v 'libtool: install: warning:' || true ) | ( grep -v 'libtool: warning: remember to run' || true ) | ( grep -v "libtool: warning: '.*la' has not been installed" || true ) + $MAKE distcheck 3>&1 1>&2 2>&3 | ( grep -v 'libtool: install: warning:' || true ) | ( grep -v 'libtool: warning: remember to run' || true ) | ( grep -v "libtool: warning: '.*la' has not been installed" || true ) exit ${PIPESTATUS[0]} ) 3>&1 1>&2 2>&3 echo "Running 'make' ..." -make +$MAKE echo "Running 'make check' ..." -make check +$MAKE check echo "Building dist-autotools.tar ..." cd "$OLDDIR" -MPT_LIBOPENMPT_VERSION=$(make distversion-tarball) +MPT_LIBOPENMPT_VERSION=$($MAKE distversion-tarball) cd bin/dist-autotools rm -rf libopenmpt mkdir -p libopenmpt/src.autotools/$MPT_LIBOPENMPT_VERSION/ cp *.tar.gz libopenmpt/src.autotools/$MPT_LIBOPENMPT_VERSION/ -tar -cv --numeric-owner --owner=0 --group=0 -f ../dist-autotools.tar libopenmpt +if [[ $BSD == "1" ]]; then + tar -cv --numeric-owner --uname "" --gname "" --uid 0 --gid 0 -f ../dist-autotools.tar libopenmpt +else + tar -cv --numeric-owner --owner=0 --group=0 -f ../dist-autotools.tar libopenmpt +fi cd ../.. |
From: <sv...@op...> - 2024-04-05 14:41:30
|
Author: manx Date: Fri Apr 5 16:41:19 2024 New Revision: 20513 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20513 Log: Merged revision(s) 20495 from trunk/OpenMPT: [Var] mpg123: Update to 1.32.6 (2024-04-04). ........ Modified: branches/OpenMPT-1.28/ (props changed) |
From: <sv...@op...> - 2024-04-05 14:40:51
|
Author: manx Date: Fri Apr 5 16:40:39 2024 New Revision: 20512 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20512 Log: Merged revision(s) 20495 from trunk/OpenMPT: [Var] mpg123: Update to 1.32.6 (2024-04-04). ........ Modified: branches/OpenMPT-1.29/ (props changed) |
From: <sv...@op...> - 2024-04-05 14:40:30
|
Author: manx Date: Fri Apr 5 16:40:18 2024 New Revision: 20511 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20511 Log: Merged revision(s) 20495 from trunk/OpenMPT: [Var] mpg123: Update to 1.32.6 (2024-04-04). ........ Modified: branches/OpenMPT-1.30/ (props changed) |
From: <sv...@op...> - 2024-04-05 14:40:12
|
Author: manx Date: Fri Apr 5 16:39:58 2024 New Revision: 20510 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20510 Log: Merged revision(s) 20495 from trunk/OpenMPT: [Var] mpg123: Update to 1.32.6 (2024-04-04). ........ Modified: branches/OpenMPT-1.31/ (props changed) |
From: <sv...@op...> - 2024-04-05 14:38:32
|
Author: manx Date: Fri Apr 5 16:38:19 2024 New Revision: 20509 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20509 Log: Merged revision(s) 20491-20492 from trunk/OpenMPT: [Mod] build: CI: GitHub: Update NetBSD CPA to commit 141cc293701219fd2f72b3abd9ca1fc322cf7d84. [Mod] build: CI: GitHub: Update NetBSD to 10.0. ........ [Mod] build: CI: GitHub: Add NetBSD 9.3 back. ........ Modified: branches/OpenMPT-1.31/ (props changed) |
From: <sv...@op...> - 2024-04-05 14:37:30
|
Author: manx Date: Fri Apr 5 16:37:16 2024 New Revision: 20508 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20508 Log: Merged revision(s) 20484 from trunk/OpenMPT: [Var] ancient: Update commit reference to git master. ........ Modified: branches/OpenMPT-1.31/ (props changed) |