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
(177) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@op...> - 2024-07-01 15:45:41
|
Author: manx Date: Mon Jul 1 17:45:29 2024 New Revision: 21121 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21121 Log: [Var] Update 7-zip to 24.07. Fixes <https://bugs.openmpt.org/view.php?id=1793>. Modified: 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 Mon Jul 1 17:45:19 2024 (r21120) +++ branches/OpenMPT-1.31/build/download_externals.cmd Mon Jul 1 17:45:29 2024 (r21121) @@ -31,9 +31,9 @@ call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://7-zip.org/a/7za920.zip" "build\externals\7za920.zip" 84e830c91a0e8ae499cc4814080da6569d8a6acbddc585c8b62abc86c809793aeb669b0a741063a379fd281ade85f120bc27efeb67d63bf961be893eec8bc3b3 384846 || goto error -call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://7-zip.org/a/7z2406-extra.7z" "build\externals\7z2406-extra.7z" 6b88a761f7cc8b8affc074b24750bcdc65cc3ab18d127c8bfdd1eca953d43e21558eb1137c4b934689990564d7d24cf14e249a773dc1e5ddb7316b10d73682f8 1610111 || goto error +call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://7-zip.org/a/7z2407-extra.7z" "build\externals\7z2407-extra.7z" bad57efe210540001da6e02bd31507d0ee00b7d0978eb4e0a0b564acd927860c6f2e9bad4d5aa14616aa058192514e678f7be9f818de90e251367e9170a66627 1610146 || goto error -call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://7-zip.org/a/7z2406-x64.exe" "build\externals\7z2406-x64.exe" b635b449f49aac29234f677e662be35f72a059401ea0786d956485d07134f9dd10ed284338503f08ff7aad16833cf034eb955ca34e1faf35a8177ccad1f20c75 1619556 || goto error +call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://7-zip.org/a/7z2407-x64.exe" "build\externals\7z2407-x64.exe" c6ba7770de0302dd90b04393a47dd7d80a0de26fab0bc11e147bf356e3e54ec69ba78e3df05f4f8718ba08ccaefbd6ea0409857973af3b6b57d271762685823a 1620576 || goto error call build\scriptlib\download.cmd %MPT_DOWNLOAD% x%1 "https://web.archive.org/web/20131217072017id_/http://download.nullsoft.com/winamp/plugin-dev/WA5.55_SDK.exe" "build\externals\WA5.55_SDK.exe" 394375db8a16bf155b5de9376f6290488ab339e503dbdfdc4e2f5bede967799e625c559cca363bc988324f1a8e86e5fd28a9f697422abd7bb3dcde4a766607b5 336166 || goto error @@ -65,8 +65,8 @@ rem Get 7zip installer and unpack it with current commandline 7zip rem This is a mess for automation. Oh well. cscript build\scriptlib\unpack-zip.vbs "build\externals\7za920.zip" "build\tools\7zipold" || goto error -build\tools\7zipold\7za.exe x -y -obuild\tools\7zipa "build\externals\7z2406-extra.7z" || goto error -build\tools\7zipa\7za.exe x -y -obuild\tools\7zip "build\externals\7z2406-x64.exe" || goto error +build\tools\7zipold\7za.exe x -y -obuild\tools\7zipa "build\externals\7z2407-extra.7z" || goto error +build\tools\7zipa\7za.exe x -y -obuild\tools\7zip "build\externals\7z2407-x64.exe" || goto error call build\scriptlib\unpack.cmd "build\tools\htmlhelp" "build\externals\htmlhelp.exe" "." || goto error |
From: <sv...@op...> - 2024-07-01 15:45:27
|
Author: manx Date: Mon Jul 1 17:45:19 2024 New Revision: 21120 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21120 Log: [Var] Update 7-zip to 24.07. Fixes <https://bugs.openmpt.org/view.php?id=1793>. Modified: trunk/OpenMPT/build/download_externals.cmd trunk/OpenMPT/build/download_externals.txt Modified: trunk/OpenMPT/build/download_externals.cmd ============================================================================== --- trunk/OpenMPT/build/download_externals.cmd Sat Jun 29 23:46:07 2024 (r21119) +++ trunk/OpenMPT/build/download_externals.cmd Mon Jul 1 17:45:19 2024 (r21120) @@ -39,8 +39,8 @@ rem Get 7zip installer and unpack it with current commandline 7zip rem This is a mess for automation. Oh well. cscript build\scriptlib\unpack-zip.vbs "build\externals\7za920.zip" "build\tools\7zipold" || goto error -build\tools\7zipold\7za.exe x -y -obuild\tools\7zipa "build\externals\7z2406-extra.7z" || goto error -build\tools\7zipa\7za.exe x -y -obuild\tools\7zip "build\externals\7z2406-x64.exe" || goto error +build\tools\7zipold\7za.exe x -y -obuild\tools\7zipa "build\externals\7z2407-extra.7z" || goto error +build\tools\7zipa\7za.exe x -y -obuild\tools\7zip "build\externals\7z2407-x64.exe" || goto error call build\scriptlib\unpack.cmd "build\tools\htmlhelp" "build\externals\htmlhelp.exe" "." || goto error Modified: trunk/OpenMPT/build/download_externals.txt ============================================================================== --- trunk/OpenMPT/build/download_externals.txt Sat Jun 29 23:46:07 2024 (r21119) +++ trunk/OpenMPT/build/download_externals.txt Mon Jul 1 17:45:19 2024 (r21120) @@ -1,6 +1,6 @@ "build/externals/7za920.zip" 384846 84e830c91a0e8ae499cc4814080da6569d8a6acbddc585c8b62abc86c809793aeb669b0a741063a379fd281ade85f120bc27efeb67d63bf961be893eec8bc3b3 "https://7-zip.org/a/7za920.zip" "https://netcologne.dl.sourceforge.net/project/sevenzip/7-Zip/9.20/7za920.zip" -"build/externals/7z2406-extra.7z" 1610111 6b88a761f7cc8b8affc074b24750bcdc65cc3ab18d127c8bfdd1eca953d43e21558eb1137c4b934689990564d7d24cf14e249a773dc1e5ddb7316b10d73682f8 "https://7-zip.org/a/7z2406-extra.7z" "https://netcologne.dl.sourceforge.net/project/sevenzip/7-Zip/24.06/7z2406-extra.7z" -"build/externals/7z2406-x64.exe" 1619556 b635b449f49aac29234f677e662be35f72a059401ea0786d956485d07134f9dd10ed284338503f08ff7aad16833cf034eb955ca34e1faf35a8177ccad1f20c75 "https://7-zip.org/a/7z2406-x64.exe" "https://netcologne.dl.sourceforge.net/project/sevenzip/7-Zip/24.06/7z2406-x64.exe" +"build/externals/7z2407-extra.7z" 1610146 bad57efe210540001da6e02bd31507d0ee00b7d0978eb4e0a0b564acd927860c6f2e9bad4d5aa14616aa058192514e678f7be9f818de90e251367e9170a66627 "https://7-zip.org/a/7z2407-extra.7z" "https://netcologne.dl.sourceforge.net/project/sevenzip/7-Zip/24.07/7z2407-extra.7z" +"build/externals/7z2407-x64.exe" 1620576 c6ba7770de0302dd90b04393a47dd7d80a0de26fab0bc11e147bf356e3e54ec69ba78e3df05f4f8718ba08ccaefbd6ea0409857973af3b6b57d271762685823a "https://7-zip.org/a/7z2407-x64.exe" "https://netcologne.dl.sourceforge.net/project/sevenzip/7-Zip/24.07/7z2407-x64.exe" "build/externals/WA5.55_SDK.exe" 336166 394375db8a16bf155b5de9376f6290488ab339e503dbdfdc4e2f5bede967799e625c559cca363bc988324f1a8e86e5fd28a9f697422abd7bb3dcde4a766607b5 "https://download.nullsoft.com/winamp/plugin-dev/WA5.55_SDK.exe" "http://download.nullsoft.com/winamp/plugin-dev/WA5.55_SDK.exe" "https://web.archive.org/web/20131217072017id_/http://download.nullsoft.com/winamp/plugin-dev/WA5.55_SDK.exe" "build/externals/xmp-sdk.zip" 322744 62c442d656d4bb380360368a0f5f01da11b4ed54333d7f54f875a9a5ec390b08921e00bd08e62cd7a0a5fe642e3377023f20a950cc2a42898ff4cda9ab88fc91 "https://www.un4seen.com/files/xmp-sdk.zip" "build/externals/htmlhelp.exe" 3509072 d91371244ea98c691b4674ee266c4a2496a296800c176adae069d21f5c52c0763b21cc7859cfffa865b89e50171a2c99a6d14620c32f7d72c0ef04045348f856 "https://web.archive.org/web/20200918004813id_/https://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe" "https://web.archive.org/web/20200918004813id_/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe" |
From: <sv...@op...> - 2024-06-29 21:46:19
|
Author: sagamusix Date: Sat Jun 29 23:46:07 2024 New Revision: 21119 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21119 Log: [Mod] Comments tab: Add a few more pixels to the name column, as some longer names (when importing other formats) were cut off. Modified: trunk/OpenMPT/mptrack/view_com.cpp Modified: trunk/OpenMPT/mptrack/view_com.cpp ============================================================================== --- trunk/OpenMPT/mptrack/view_com.cpp Sat Jun 29 22:48:18 2024 (r21118) +++ trunk/OpenMPT/mptrack/view_com.cpp Sat Jun 29 23:46:07 2024 (r21119) @@ -58,7 +58,7 @@ static constexpr CListCtrlEx::Header SampleHeaders[SMPLIST_COLUMNS] = { - { _T("Sample Name"), 208, LVCFMT_LEFT }, + { _T("Sample Name"), 212, LVCFMT_LEFT }, { _T("Num"), 45, LVCFMT_RIGHT }, { _T("Size"), 72, LVCFMT_RIGHT }, { _T("Type"), 80, LVCFMT_RIGHT }, @@ -70,7 +70,7 @@ static constexpr CListCtrlEx::Header InstrumentHeaders[INSLIST_COLUMNS] = { - { _T("Instrument Name"), 208, LVCFMT_LEFT }, + { _T("Instrument Name"), 212, LVCFMT_LEFT }, { _T("Num"), 45, LVCFMT_RIGHT }, { _T("Samples"), 64, LVCFMT_RIGHT }, { _T("Envelopes"), 128, LVCFMT_RIGHT }, |
From: <sv...@op...> - 2024-06-29 20:48:31
|
Author: sagamusix Date: Sat Jun 29 22:48:18 2024 New Revision: 21118 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21118 Log: [Doc] Update fuzzing documentation to reflect that we now use a C++ program for fuzzing. Modified: trunk/OpenMPT/contrib/fuzzing/readme.md Modified: trunk/OpenMPT/contrib/fuzzing/readme.md ============================================================================== --- trunk/OpenMPT/contrib/fuzzing/readme.md Sat Jun 29 18:41:11 2024 (r21117) +++ trunk/OpenMPT/contrib/fuzzing/readme.md Sat Jun 29 22:48:18 2024 (r21118) @@ -16,7 +16,7 @@ scripts are set up to use different exploration strategies. * `fuzz-settings.sh`: Set up your preferences and afl settings here before the first run. -* `fuzz.c`: A tiny C program that is used by the fuzzer to test libopenmpt. +* `fuzz.cpp`: A tiny C++ program that is used by the fuzzer to test libopenmpt. * `get-afl.sh`: A simple script to obtain the latest version of afl++. You can also make it download from a specific branch or tag, e.g. `GET_AFL_VERSION=stable ./get-afl.sh` to download the latest stable but |
From: <sv...@op...> - 2024-06-29 16:41:18
|
Author: sagamusix Date: Sat Jun 29 18:41:11 2024 New Revision: 21117 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21117 Log: Merged revision(s) 21116 from trunk/OpenMPT: [Fix] The new extended note key octaves were overlapping with the shortcuts introduced in r21113. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/CommandSet.cpp Modified: branches/OpenMPT-1.31/mptrack/CommandSet.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/CommandSet.cpp Sat Jun 29 18:40:50 2024 (r21116) +++ branches/OpenMPT-1.31/mptrack/CommandSet.cpp Sat Jun 29 18:41:11 2024 (r21117) @@ -1369,11 +1369,11 @@ {KeyCommand::Hidden, kcDataEntryDownCoarseStop, _T("Stop Data Entry Down (Coarse)")}, {2068, kcSampleConvertNormalLoopToSustain, _T("Convert Normal Loop to Sustain Loop")}, {2069, kcSampleConvertSustainLoopToNormal, _T("Convert Sustain Loop to Normal Loop")}, - {2070, kcGotoNoteColumn, _T("Go to note column")}, - {2071, kcGotoInstrColumn, _T("Go to instrument column")}, - {2072, kcGotoVolumeColumn, _T("Go to volume effect column")}, - {2073, kcGotoCommandColumn, _T("Go to effect command column")}, - {2074, kcGotoParamColumn, _T("Go to effect parameter column")}, + {2096, kcGotoNoteColumn, _T("Go to note column")}, + {2097, kcGotoInstrColumn, _T("Go to instrument column")}, + {2098, kcGotoVolumeColumn, _T("Go to volume effect column")}, + {2099, kcGotoCommandColumn, _T("Go to effect command column")}, + {2100, kcGotoParamColumn, _T("Go to effect parameter column")}, }; // Get command descriptions etc.. loaded up. |
From: <sv...@op...> - 2024-06-29 16:41:06
|
Author: sagamusix Date: Sat Jun 29 18:40:50 2024 New Revision: 21116 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21116 Log: [Fix] The new extended note key octaves were overlapping with the shortcuts introduced in r21113. Modified: trunk/OpenMPT/mptrack/CommandSet.cpp Modified: trunk/OpenMPT/mptrack/CommandSet.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp Sat Jun 29 18:11:51 2024 (r21115) +++ trunk/OpenMPT/mptrack/CommandSet.cpp Sat Jun 29 18:40:50 2024 (r21116) @@ -1384,11 +1384,11 @@ {2067, kcOrderlistQueueAtRowEnd, _T("Queue Pattern (Transition at end of current row)")}, {2068, kcSampleConvertNormalLoopToSustain, _T("Convert Normal Loop to Sustain Loop")}, {2069, kcSampleConvertSustainLoopToNormal, _T("Convert Sustain Loop to Normal Loop")}, - {2070, kcGotoNoteColumn, _T("Go to note column")}, - {2071, kcGotoInstrColumn, _T("Go to instrument column")}, - {2072, kcGotoVolumeColumn, _T("Go to volume effect column")}, - {2073, kcGotoCommandColumn, _T("Go to effect command column")}, - {2074, kcGotoParamColumn, _T("Go to effect parameter column")}, + {2096, kcGotoNoteColumn, _T("Go to note column")}, + {2097, kcGotoInstrColumn, _T("Go to instrument column")}, + {2098, kcGotoVolumeColumn, _T("Go to volume effect column")}, + {2099, kcGotoCommandColumn, _T("Go to effect command column")}, + {2100, kcGotoParamColumn, _T("Go to effect parameter column")}, }; // clang-format on |
From: <sv...@op...> - 2024-06-29 16:12:03
|
Author: sagamusix Date: Sat Jun 29 18:11:51 2024 New Revision: 21115 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21115 Log: Merged revision(s) 21113 from trunk/OpenMPT: [New] Pattern tab: Added shortcuts to go to a specific column within a pattern cell (https://bugs.openmpt.org/view.php?id=1797). ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/CommandSet.cpp branches/OpenMPT-1.31/mptrack/CommandSet.h branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp branches/OpenMPT-1.31/mptrack/View_pat.cpp Modified: branches/OpenMPT-1.31/mptrack/CommandSet.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/CommandSet.cpp Sat Jun 29 15:33:32 2024 (r21114) +++ branches/OpenMPT-1.31/mptrack/CommandSet.cpp Sat Jun 29 18:11:51 2024 (r21115) @@ -1369,6 +1369,11 @@ {KeyCommand::Hidden, kcDataEntryDownCoarseStop, _T("Stop Data Entry Down (Coarse)")}, {2068, kcSampleConvertNormalLoopToSustain, _T("Convert Normal Loop to Sustain Loop")}, {2069, kcSampleConvertSustainLoopToNormal, _T("Convert Sustain Loop to Normal Loop")}, + {2070, kcGotoNoteColumn, _T("Go to note column")}, + {2071, kcGotoInstrColumn, _T("Go to instrument column")}, + {2072, kcGotoVolumeColumn, _T("Go to volume effect column")}, + {2073, kcGotoCommandColumn, _T("Go to effect command column")}, + {2074, kcGotoParamColumn, _T("Go to effect parameter column")}, }; // Get command descriptions etc.. loaded up. Modified: branches/OpenMPT-1.31/mptrack/CommandSet.h ============================================================================== --- branches/OpenMPT-1.31/mptrack/CommandSet.h Sat Jun 29 15:33:32 2024 (r21114) +++ branches/OpenMPT-1.31/mptrack/CommandSet.h Sat Jun 29 18:11:51 2024 (r21115) @@ -236,7 +236,16 @@ //Pattern Editing kcStartPatternEditing, - kcStartPatternScrolling = kcStartPatternEditing, + + kcStartGotoColumn = kcStartPatternEditing, + kcGotoNoteColumn = kcStartGotoColumn, + kcGotoInstrColumn, + kcGotoVolumeColumn, + kcGotoCommandColumn, + kcGotoParamColumn, + kcEndGotoColumn = kcGotoParamColumn, + + kcStartPatternScrolling, kcPatternScrollLeft = kcStartPatternScrolling, kcPatternScrollRight, kcPatternScrollUp, Modified: branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp Sat Jun 29 15:33:32 2024 (r21114) +++ branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp Sat Jun 29 18:11:51 2024 (r21115) @@ -246,6 +246,7 @@ newCat.AddCommands(kcStartPlainNavigate, kcEndPlainNavigate, true); newCat.AddCommands(kcStartJumpSnap, kcEndJumpSnap, true); newCat.AddCommands(kcStartHomeEnd, kcEndHomeEnd, true); + newCat.AddCommands(kcStartGotoColumn, kcEndGotoColumn, true); newCat.AddCommands(kcPrevPattern, kcNextSequence, true); newCat.AddCommands(kcStartPatternScrolling, kcEndPatternScrolling, true); newCat.AddCommands(kcStartSelect, kcEndSelect, true); Modified: branches/OpenMPT-1.31/mptrack/View_pat.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/View_pat.cpp Sat Jun 29 15:33:32 2024 (r21114) +++ branches/OpenMPT-1.31/mptrack/View_pat.cpp Sat Jun 29 18:11:51 2024 (r21115) @@ -4426,6 +4426,14 @@ if (GetCurrentRow() < pModDoc->GetPatternSize(m_nPattern) - 1) SetCurrentRow(pModDoc->GetPatternSize(m_nPattern) - 1); return wParam; + case kcGotoNoteColumn: + case kcGotoInstrColumn: + case kcGotoVolumeColumn: + case kcGotoCommandColumn: + case kcGotoParamColumn: + SetCurrentColumn(m_Cursor.GetChannel(), static_cast<PatternCursor::Columns>(wParam - kcGotoNoteColumn + PatternCursor::firstColumn)); + return wParam; + case kcPrevEntryInColumn: case kcNextEntryInColumn: JumpToPrevOrNextEntry(wParam == kcNextEntryInColumn, false); |
From: <sv...@op...> - 2024-06-29 13:33:44
|
Author: sagamusix Date: Sat Jun 29 15:33:32 2024 New Revision: 21114 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21114 Log: [Imp] Increase precision of time display in status bar to show 10ths of seconds (https://bugs.openmpt.org/view.php?id=1791). Modified: trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainfrm.h Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Sat Jun 29 15:29:07 2024 (r21113) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Sat Jun 29 15:33:32 2024 (r21114) @@ -61,10 +61,10 @@ OPENMPT_NAMESPACE_BEGIN -#define TIMERID_GUI 1 -#define TIMERID_NOTIFY 2 +static constexpr uint32 TIMERID_GUI = 1; +static constexpr uint32 TIMERID_NOTIFY = 2; -#define MPTTIMER_PERIOD 200 +static constexpr uint32 MPTTIMER_PERIOD = 100; #if defined(MPT_BUILD_DEBUG) #define MPT_ENABLE_PLAYBACK_TEST_MENU @@ -2113,10 +2113,9 @@ IdleHandlerSounddevice(); // Display Time in status bar - samplecount_t time = 0; if(m_pSndFile != nullptr && m_pSndFile->GetSampleRate() != 0) { - time = m_pSndFile->GetTotalSampleCount() / m_pSndFile->GetSampleRate(); + samplecount_t time = Util::muldivr(m_pSndFile->GetTotalSampleCount(), 10, m_pSndFile->GetSampleRate()); if(time != m_dwTimeSec) { m_dwTimeSec = time; @@ -2222,8 +2221,9 @@ void CMainFrame::OnUpdateTime(CCmdUI *) { TCHAR s[64]; - wsprintf(s, _T("%u:%02u:%02u"), - m_dwTimeSec / 3600, (m_dwTimeSec / 60) % 60, m_dwTimeSec % 60); + auto timeSec = m_dwTimeSec / 10u; + wsprintf(s, _T("%u:%02u:%02u.%u"), + timeSec / 3600u, (timeSec / 60u) % 60u, timeSec % 60u, m_dwTimeSec % 10u); if(m_pSndFile != nullptr && m_pSndFile != &m_WaveFile && !m_pSndFile->IsPaused()) { @@ -2232,9 +2232,9 @@ { if(nPat < 10) _tcscat(s, _T(" ")); if(nPat < 100) _tcscat(s, _T(" ")); - wsprintf(s + _tcslen(s), _T(" [%d]"), nPat); + wsprintf(s + _tcslen(s), _T(" [%u]"), nPat); } - wsprintf(s + _tcslen(s), _T(" %dch"), m_nAvgMixChn); + wsprintf(s + _tcslen(s), _T(" %uch"), m_nAvgMixChn); } m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_INDICATOR_TIME), s, TRUE); } Modified: trunk/OpenMPT/mptrack/Mainfrm.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h Sat Jun 29 15:29:07 2024 (r21113) +++ trunk/OpenMPT/mptrack/Mainfrm.h Sat Jun 29 15:33:32 2024 (r21114) @@ -281,7 +281,7 @@ void UpdateTree(CModDoc *pModDoc, UpdateHint hint, CObject *pHint = nullptr); void RefreshDlsBanks(); static CInputHandler* GetInputHandler() { return m_InputHandler; } - void SetElapsedTime(double t) { m_dwTimeSec = static_cast<samplecount_t>(t); } + void SetElapsedTime(double t) { m_dwTimeSec = mpt::saturate_cast<samplecount_t>(t * 10.0); } #if defined(MPT_ENABLE_UPDATE) bool ShowUpdateIndicator(const UpdateCheckResult &result, const CString &releaseVersion, const CString &infoURL, bool showHighlight); |
From: <sv...@op...> - 2024-06-29 13:29:19
|
Author: sagamusix Date: Sat Jun 29 15:29:07 2024 New Revision: 21113 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21113 Log: [New] Pattern tab: Added shortcuts to go to a specific column within a pattern cell (https://bugs.openmpt.org/view.php?id=1797). Modified: trunk/OpenMPT/mptrack/CommandSet.cpp trunk/OpenMPT/mptrack/CommandSet.h trunk/OpenMPT/mptrack/KeyConfigDlg.cpp trunk/OpenMPT/mptrack/View_pat.cpp Modified: trunk/OpenMPT/mptrack/CommandSet.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp Sat Jun 29 14:42:58 2024 (r21112) +++ trunk/OpenMPT/mptrack/CommandSet.cpp Sat Jun 29 15:29:07 2024 (r21113) @@ -1384,6 +1384,11 @@ {2067, kcOrderlistQueueAtRowEnd, _T("Queue Pattern (Transition at end of current row)")}, {2068, kcSampleConvertNormalLoopToSustain, _T("Convert Normal Loop to Sustain Loop")}, {2069, kcSampleConvertSustainLoopToNormal, _T("Convert Sustain Loop to Normal Loop")}, + {2070, kcGotoNoteColumn, _T("Go to note column")}, + {2071, kcGotoInstrColumn, _T("Go to instrument column")}, + {2072, kcGotoVolumeColumn, _T("Go to volume effect column")}, + {2073, kcGotoCommandColumn, _T("Go to effect command column")}, + {2074, kcGotoParamColumn, _T("Go to effect parameter column")}, }; // clang-format on Modified: trunk/OpenMPT/mptrack/CommandSet.h ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.h Sat Jun 29 14:42:58 2024 (r21112) +++ trunk/OpenMPT/mptrack/CommandSet.h Sat Jun 29 15:29:07 2024 (r21113) @@ -244,7 +244,16 @@ //Pattern Editing kcStartPatternEditing, - kcStartPatternScrolling = kcStartPatternEditing, + + kcStartGotoColumn = kcStartPatternEditing, + kcGotoNoteColumn = kcStartGotoColumn, + kcGotoInstrColumn, + kcGotoVolumeColumn, + kcGotoCommandColumn, + kcGotoParamColumn, + kcEndGotoColumn = kcGotoParamColumn, + + kcStartPatternScrolling, kcPatternScrollLeft = kcStartPatternScrolling, kcPatternScrollRight, kcPatternScrollUp, Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Jun 29 14:42:58 2024 (r21112) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Jun 29 15:29:07 2024 (r21113) @@ -264,6 +264,7 @@ newCat.AddCommands(kcStartPlainNavigate, kcEndPlainNavigate, true); newCat.AddCommands(kcStartJumpSnap, kcEndJumpSnap, true); newCat.AddCommands(kcStartHomeEnd, kcEndHomeEnd, true); + newCat.AddCommands(kcStartGotoColumn, kcEndGotoColumn, true); newCat.AddCommands(kcPrevPattern, kcNextSequence, true); newCat.AddCommands(kcStartPatternScrolling, kcEndPatternScrolling, true); newCat.AddCommands(kcStartSelect, kcEndSelect, true); Modified: trunk/OpenMPT/mptrack/View_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp Sat Jun 29 14:42:58 2024 (r21112) +++ trunk/OpenMPT/mptrack/View_pat.cpp Sat Jun 29 15:29:07 2024 (r21113) @@ -4517,6 +4517,14 @@ SetCurrentRow(pModDoc->GetPatternSize(m_nPattern) - 1); return wParam; + case kcGotoNoteColumn: + case kcGotoInstrColumn: + case kcGotoVolumeColumn: + case kcGotoCommandColumn: + case kcGotoParamColumn: + SetCurrentColumn(m_Cursor.GetChannel(), static_cast<PatternCursor::Columns>(wParam - kcGotoNoteColumn + PatternCursor::firstColumn)); + return wParam; + case kcPrevEntryInColumn: case kcNextEntryInColumn: JumpToPrevOrNextEntry(wParam == kcNextEntryInColumn, false); |
From: <sv...@op...> - 2024-06-29 12:43:10
|
Author: sagamusix Date: Sat Jun 29 14:42:58 2024 New Revision: 21112 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21112 Log: [Fix] Compile fix for libopenmpt test suite. Modified: trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Sndfile.h trunk/OpenMPT/test/test.cpp Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Sat Jun 29 14:12:55 2024 (r21111) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Sat Jun 29 14:42:58 2024 (r21112) @@ -1683,11 +1683,9 @@ void CMainFrame::InitPreview() { m_WaveFile.Destroy(); - m_WaveFile.Create(FileReader()); + m_WaveFile.Create(MOD_TYPE_MPT, 2); m_WaveFile.Order().SetDefaultTempoInt(125); m_WaveFile.Order().SetDefaultSpeed(6); - m_WaveFile.ChangeModTypeTo(MOD_TYPE_MPT, false); - m_WaveFile.ChnSettings.resize(2); m_WaveFile.m_nInstruments = 1; m_WaveFile.m_nTempoMode = TempoMode::Classic; m_WaveFile.Order().assign(1, 0); Modified: trunk/OpenMPT/soundlib/Sndfile.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp Sat Jun 29 14:12:55 2024 (r21111) +++ trunk/OpenMPT/soundlib/Sndfile.cpp Sat Jun 29 14:42:58 2024 (r21112) @@ -409,6 +409,14 @@ } +void CSoundFile::Create(MODTYPE type, CHANNELINDEX numChannels, CModDoc *modDoc) +{ + Create(FileReader{}, CSoundFile::loadCompleteModule, modDoc); + SetType(type); + ChnSettings.resize(numChannels); +} + + bool CSoundFile::Create(FileReader file, ModLoadingFlags loadFlags, CModDoc *pModDoc) { m_nMixChannels = 0; Modified: trunk/OpenMPT/soundlib/Sndfile.h ============================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h Sat Jun 29 14:12:55 2024 (r21111) +++ trunk/OpenMPT/soundlib/Sndfile.h Sat Jun 29 14:42:58 2024 (r21112) @@ -663,6 +663,7 @@ CModDoc *GetpModDoc() const noexcept { return m_pModDoc; } #endif // MODPLUG_TRACKER + void Create(MODTYPE type, CHANNELINDEX numChannels, CModDoc *pModDoc = nullptr); bool Create(FileReader file, ModLoadingFlags loadFlags = loadCompleteModule, CModDoc *pModDoc = nullptr); private: bool CreateInternal(FileReader file, ModLoadingFlags loadFlags); Modified: trunk/OpenMPT/test/test.cpp ============================================================================== --- trunk/OpenMPT/test/test.cpp Sat Jun 29 14:12:55 2024 (r21111) +++ trunk/OpenMPT/test/test.cpp Sat Jun 29 14:42:58 2024 (r21112) @@ -3857,9 +3857,7 @@ #ifdef MODPLUG_TRACKER auto modDoc = static_cast<CModDoc *>(theApp.GetModDocTemplate()->CreateNewDocument()); auto &sndFile = modDoc->GetSoundFile(); - sndFile.Create(FileReader(), CSoundFile::loadCompleteModule, modDoc); - sndFile.ChnSettings.resize(4); - sndFile.ChangeModTypeTo(MOD_TYPE_MPT); + sndFile.Create(MOD_TYPE_MPT, 4, modDoc); // Rearrange channels sndFile.Patterns.ResizeArray(2); @@ -4055,11 +4053,9 @@ static MPT_NOINLINE void TestPCnoteSerialization() { FileReader file; - std::unique_ptr<CSoundFile> pSndFile = std::make_unique<CSoundFile>(); - CSoundFile &sndFile = *pSndFile.get(); - sndFile.ChangeModTypeTo(MOD_TYPE_MPT, false); - sndFile.Patterns.DestroyPatterns(); - sndFile.ChnSettings.resize(ModSpecs::mptm.channelsMax); + mpt::heap_value<CSoundFile> pSndFile; + CSoundFile &sndFile = *pSndFile; + sndFile.Create(MOD_TYPE_MPT, ModSpecs::mptm.channelsMax); sndFile.Patterns.Insert(0, ModSpecs::mptm.patternRowsMin); sndFile.Patterns.Insert(1, 64); |
From: <sv...@op...> - 2024-06-29 12:13:07
|
Author: sagamusix Date: Sat Jun 29 14:12:55 2024 New Revision: 21111 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21111 Log: [Fix] Compile fix for test suite. Modified: trunk/OpenMPT/test/test.cpp Modified: trunk/OpenMPT/test/test.cpp ============================================================================== --- trunk/OpenMPT/test/test.cpp Sat Jun 29 14:08:57 2024 (r21110) +++ trunk/OpenMPT/test/test.cpp Sat Jun 29 14:12:55 2024 (r21111) @@ -4057,7 +4057,7 @@ FileReader file; std::unique_ptr<CSoundFile> pSndFile = std::make_unique<CSoundFile>(); CSoundFile &sndFile = *pSndFile.get(); - sndFile.m_nType = MOD_TYPE_MPT; + sndFile.ChangeModTypeTo(MOD_TYPE_MPT, false); sndFile.Patterns.DestroyPatterns(); sndFile.ChnSettings.resize(ModSpecs::mptm.channelsMax); |
From: <sv...@op...> - 2024-06-29 12:09:09
|
Author: sagamusix Date: Sat Jun 29 14:08:57 2024 New Revision: 21110 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21110 Log: [Ref] Make CSoundFile::m_nType and CSoundFile::m_pModDoc private. Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/Moddoc.h trunk/OpenMPT/mptrack/View_gen.cpp trunk/OpenMPT/soundlib/Sndfile.h Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp Sat Jun 29 13:54:54 2024 (r21109) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp Sat Jun 29 14:08:57 2024 (r21110) @@ -713,7 +713,7 @@ return true; } - else if ((!m_bIns) && (sndFile.m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT))) //in note column + else if(!m_bIns && !(sndFile.GetType() & MOD_TYPE_XM)) { uint32 n = pIns->NoteMap[m_nNote]; Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Sat Jun 29 13:54:54 2024 (r21109) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Sat Jun 29 14:08:57 2024 (r21110) @@ -1041,10 +1041,10 @@ FlagSet<Notification::Type> notifyType(Notification::Default); Notification::Item notifyItem = 0; - if(m_pSndFile->m_pModDoc) + if(CModDoc *modDoc = m_pSndFile->GetpModDoc()) { - notifyType = m_pSndFile->m_pModDoc->GetNotificationType(); - notifyItem = m_pSndFile->m_pModDoc->GetNotificationItem(); + notifyType = modDoc->GetNotificationType(); + notifyItem = modDoc->GetNotificationItem(); } // Add an entry to the notification history @@ -1643,7 +1643,8 @@ { CriticalSection cs; InitPreview(); - m_WaveFile.m_nType = sndFile.GetType(); + m_WaveFile.ChangeModTypeTo(sndFile.GetType(), false); + m_WaveFile.m_playBehaviour = sndFile.m_playBehaviour; if ((nInstrument) && (nInstrument <= sndFile.GetNumInstruments())) { m_WaveFile.m_nInstruments = 1; @@ -1685,7 +1686,7 @@ m_WaveFile.Create(FileReader()); m_WaveFile.Order().SetDefaultTempoInt(125); m_WaveFile.Order().SetDefaultSpeed(6); - m_WaveFile.m_nType = MOD_TYPE_MPT; + m_WaveFile.ChangeModTypeTo(MOD_TYPE_MPT, false); m_WaveFile.ChnSettings.resize(2); m_WaveFile.m_nInstruments = 1; m_WaveFile.m_nTempoMode = TempoMode::Classic; Modified: trunk/OpenMPT/mptrack/Moddoc.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp Sat Jun 29 13:54:54 2024 (r21109) +++ trunk/OpenMPT/mptrack/Moddoc.cpp Sat Jun 29 14:08:57 2024 (r21110) @@ -243,7 +243,7 @@ MPT_CFORMAT("File: {}\nLast saved with: {}, you are using OpenMPT {}\n\n") (filename, m_SndFile.m_modFormat.madeWithTracker, Version::Current())); - if((m_SndFile.m_nType == MOD_TYPE_NONE) || (!m_SndFile.GetNumChannels())) + if((GetModType() == MOD_TYPE_NONE) || (!m_SndFile.GetNumChannels())) return FALSE; const bool noColors = std::find_if(std::begin(m_SndFile.ChnSettings), std::begin(m_SndFile.ChnSettings) + GetNumChannels(), [](const auto &settings) { Modified: trunk/OpenMPT/mptrack/Moddoc.h ============================================================================== --- trunk/OpenMPT/mptrack/Moddoc.h Sat Jun 29 13:54:54 2024 (r21109) +++ trunk/OpenMPT/mptrack/Moddoc.h Sat Jun 29 14:08:57 2024 (r21110) @@ -177,7 +177,7 @@ void PostMessageToAllViews(UINT uMsg, WPARAM wParam = 0, LPARAM lParam = 0); void SendNotifyMessageToAllViews(UINT uMsg, WPARAM wParam = 0, LPARAM lParam = 0); void SendMessageToActiveView(UINT uMsg, WPARAM wParam = 0, LPARAM lParam = 0); - MODTYPE GetModType() const { return m_SndFile.m_nType; } + MODTYPE GetModType() const noexcept { return m_SndFile.GetType(); } INSTRUMENTINDEX GetNumInstruments() const { return m_SndFile.m_nInstruments; } SAMPLEINDEX GetNumSamples() const { return m_SndFile.m_nSamples; } Modified: trunk/OpenMPT/mptrack/View_gen.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_gen.cpp Sat Jun 29 13:54:54 2024 (r21109) +++ trunk/OpenMPT/mptrack/View_gen.cpp Sat Jun 29 14:08:57 2024 (r21110) @@ -410,7 +410,7 @@ } // Enable/Disable controls for this channel - BOOL bIT = ((bEnable) && (sndFile.m_nType & (MOD_TYPE_IT|MOD_TYPE_MPT))); + BOOL bIT = ((bEnable) && (sndFile.GetType() & (MOD_TYPE_IT|MOD_TYPE_MPT))); GetDlgItem(IDC_CHECK1 + ichn * 2)->EnableWindow(bEnable); GetDlgItem(IDC_CHECK2 + ichn * 2)->EnableWindow(bIT); @@ -421,7 +421,7 @@ m_spinPan[ichn].EnableWindow(bEnable && !(sndFile.GetType() & (MOD_TYPE_XM|MOD_TYPE_MOD))); GetDlgItem(IDC_EDIT1 + ichn * 2)->EnableWindow(bIT); // channel vol GetDlgItem(IDC_EDIT2 + ichn * 2)->EnableWindow(bEnable && !(sndFile.GetType() & (MOD_TYPE_XM|MOD_TYPE_MOD))); // channel pan - GetDlgItem(IDC_EDIT9 + ichn)->EnableWindow(((bEnable) && (sndFile.m_nType & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)))); // channel name + GetDlgItem(IDC_EDIT9 + ichn)->EnableWindow(((bEnable) && (sndFile.GetType() & (MOD_TYPE_XM|MOD_TYPE_IT|MOD_TYPE_MPT)))); // channel name m_CbnEffects[ichn].EnableWindow(bEnable & (sndFile.GetModSpecifications().supportsPlugins ? TRUE : FALSE)); } UnlockControls(); Modified: trunk/OpenMPT/soundlib/Sndfile.h ============================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h Sat Jun 29 13:54:54 2024 (r21109) +++ trunk/OpenMPT/soundlib/Sndfile.h Sat Jun 29 14:08:57 2024 (r21110) @@ -461,12 +461,11 @@ static constexpr uint32 TICKS_ROW_FINISHED = uint32_max - 1u; -public: // for Editing +private: #ifdef MODPLUG_TRACKER CModDoc *m_pModDoc = nullptr; // Can be a null pointer for example when previewing samples from the treeview. #endif // MODPLUG_TRACKER Enum<MODTYPE> m_nType; -private: ModContainerType m_ContainerType = ModContainerType::None; public: SAMPLEINDEX m_nSamples = 0; |
From: <sv...@op...> - 2024-06-29 11:55:06
|
Author: sagamusix Date: Sat Jun 29 13:54:54 2024 New Revision: 21109 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21109 Log: [Mod] Goto Dialog: move OK button left of Cancel button for consistency. Modified: trunk/OpenMPT/mptrack/mptrack.rc Modified: trunk/OpenMPT/mptrack/mptrack.rc ============================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc Sat Jun 29 12:47:39 2024 (r21108) +++ trunk/OpenMPT/mptrack/mptrack.rc Sat Jun 29 13:54:54 2024 (r21109) @@ -2246,8 +2246,8 @@ EDITTEXT IDC_EDIT6,78,78,22,12,ES_AUTOHSCROLL | ES_NUMBER LTEXT "sec",IDC_STATIC,102,80,12,8 CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,6,96,108,1 - DEFPUSHBUTTON "&OK",IDOK,72,102,44,14 - PUSHBUTTON "&Cancel",IDCANCEL,24,102,44,14 + DEFPUSHBUTTON "&OK",IDOK,24,102,44,14 + PUSHBUTTON "&Cancel",IDCANCEL,72,102,44,14 END IDD_ADDSILENCE DIALOGEX 0, 0, 195, 93 |
From: <sv...@op...> - 2024-06-29 10:47:51
|
Author: sagamusix Date: Sat Jun 29 12:47:39 2024 New Revision: 21108 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21108 Log: [Doc] Make it clear that the original afl is not supported anymore and we use afl++. Modified: trunk/OpenMPT/doc/libopenmpt/gettingstarted.md Modified: trunk/OpenMPT/doc/libopenmpt/gettingstarted.md ============================================================================== --- trunk/OpenMPT/doc/libopenmpt/gettingstarted.md Sat Jun 29 01:15:01 2024 (r21107) +++ trunk/OpenMPT/doc/libopenmpt/gettingstarted.md Sat Jun 29 12:47:39 2024 (r21108) @@ -165,9 +165,9 @@ ./build/download_externals.sh # download liballegro source make CONFIG=djgpp USE_ALLEGRO42=1 BUNDLED_ALLEGRO42=1 - - American Fuzzy Lop: + - afl++: - To compile libopenmpt with fuzzing instrumentation for afl-fuzz, run: + To compile libopenmpt with fuzzing instrumentation using afl++, run: make CONFIG=afl |
From: <sv...@op...> - 2024-06-28 23:15:14
|
Author: sagamusix Date: Sat Jun 29 01:15:01 2024 New Revision: 21107 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21107 Log: Merged revision(s) 21106 from trunk/OpenMPT: [Fix] Pattern tab Allow drawing next pattern even if "always center active row" is turned off (https://bugs.openmpt.org/view.php?id=22). ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/Draw_pat.cpp Modified: branches/OpenMPT-1.31/mptrack/Draw_pat.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/Draw_pat.cpp Sat Jun 29 01:14:07 2024 (r21106) +++ branches/OpenMPT-1.31/mptrack/Draw_pat.cpp Sat Jun 29 01:15:01 2024 (r21107) @@ -633,7 +633,7 @@ if ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SHOWPREVIOUS) && (ypaint < rcClient.bottom) && (ypaint == ypatternend)) { int nVisRows = (rcClient.bottom - ypaint + m_szCell.cy - 1) / m_szCell.cy; - if ((nVisRows > 0) && (m_nMidRow)) + if(nVisRows > 0) { PATTERNINDEX nNextPat = PATTERNINDEX_INVALID; ORDERINDEX nNextOrder = order.GetNextOrderIgnoringSkips(m_nOrder); |
From: <sv...@op...> - 2024-06-28 23:14:19
|
Author: sagamusix Date: Sat Jun 29 01:14:07 2024 New Revision: 21106 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21106 Log: [Fix] Pattern tab Allow drawing next pattern even if "always center active row" is turned off (https://bugs.openmpt.org/view.php?id=22). Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Draw_pat.cpp Sat Jun 29 01:08:14 2024 (r21105) +++ trunk/OpenMPT/mptrack/Draw_pat.cpp Sat Jun 29 01:14:07 2024 (r21106) @@ -633,7 +633,7 @@ if ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SHOWPREVIOUS) && (ypaint < rcClient.bottom) && (ypaint == ypatternend)) { int nVisRows = (rcClient.bottom - ypaint + m_szCell.cy - 1) / m_szCell.cy; - if ((nVisRows > 0) && (m_nMidRow)) + if(nVisRows > 0) { PATTERNINDEX nNextPat = PATTERNINDEX_INVALID; ORDERINDEX nNextOrder = order.GetNextOrderIgnoringSkips(m_nOrder); |
From: <sv...@op...> - 2024-06-28 23:08:21
|
Author: sagamusix Date: Sat Jun 29 01:08:14 2024 New Revision: 21105 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21105 Log: Merged revision(s) 21104 from trunk/OpenMPT: [Fix] Note Properties: S8x/E8x doesn't really have a center point, so do not show Center for S88/E88 (https://bugs.openmpt.org/view.php?id=1796). ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/EffectInfo.cpp Modified: branches/OpenMPT-1.31/mptrack/EffectInfo.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/EffectInfo.cpp Sat Jun 29 01:07:30 2024 (r21104) +++ branches/OpenMPT-1.31/mptrack/EffectInfo.cpp Sat Jun 29 01:08:14 2024 (r21105) @@ -797,7 +797,7 @@ break; case 0x80: // panning - s = FormatPanning(param & 0x0F, 8).c_str(); + s = FormatPanning(param & 0x0F, (param & 0x0F) < 8 ? 8 : 7).c_str(); break; case 0xA0: // high offset @@ -890,7 +890,7 @@ s += _T(" times"); break; case 0x80: // panning - s = FormatPanning(param & 0x0F, 8).c_str(); + s = FormatPanning(param & 0x0F, (param & 0x0F) < 8 ? 8 : 7).c_str(); break; case 0x90: // retrigger s.Format(_T("speed %d"), param & 0x0F); |
From: <sv...@op...> - 2024-06-28 23:07:42
|
Author: sagamusix Date: Sat Jun 29 01:07:30 2024 New Revision: 21104 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21104 Log: [Fix] Note Properties: S8x/E8x doesn't really have a center point, so do not show Center for S88/E88 (https://bugs.openmpt.org/view.php?id=1796). Modified: trunk/OpenMPT/mptrack/EffectInfo.cpp Modified: trunk/OpenMPT/mptrack/EffectInfo.cpp ============================================================================== --- trunk/OpenMPT/mptrack/EffectInfo.cpp Sat Jun 29 01:01:45 2024 (r21103) +++ trunk/OpenMPT/mptrack/EffectInfo.cpp Sat Jun 29 01:07:30 2024 (r21104) @@ -804,7 +804,7 @@ break; case 0x80: // panning - s = FormatPanning(param & 0x0F, 8).c_str(); + s = FormatPanning(param & 0x0F, (param & 0x0F) < 8 ? 8 : 7).c_str(); break; case 0xA0: // high offset @@ -897,7 +897,7 @@ s += _T(" times"); break; case 0x80: // panning - s = FormatPanning(param & 0x0F, 8).c_str(); + s = FormatPanning(param & 0x0F, (param & 0x0F) < 8 ? 8 : 7).c_str(); break; case 0x90: // retrigger s.Format(_T("speed %d"), param & 0x0F); |
From: <sv...@op...> - 2024-06-28 23:01:52
|
Author: sagamusix Date: Sat Jun 29 01:01:45 2024 New Revision: 21103 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21103 Log: [Fix] Compile fix. Modified: branches/OpenMPT-1.29/soundlib/modcommand.cpp Modified: branches/OpenMPT-1.29/soundlib/modcommand.cpp ============================================================================== --- branches/OpenMPT-1.29/soundlib/modcommand.cpp Sat Jun 29 01:00:51 2024 (r21102) +++ branches/OpenMPT-1.29/soundlib/modcommand.cpp Sat Jun 29 01:01:45 2024 (r21103) @@ -1142,8 +1142,6 @@ case CMD_MIDI: case CMD_SMOOTHMIDI: case CMD_DELAYCUT: - case CMD_FINETUNE: - case CMD_FINETUNE_SMOOTH: case CMD_DUMMY: case CMD_REVERSEOFFSET: case CMD_DBMECHO: |
From: <sv...@op...> - 2024-06-28 23:00:58
|
Author: sagamusix Date: Sat Jun 29 01:00:51 2024 New Revision: 21102 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21102 Log: [Fix] Compile fix. Modified: branches/OpenMPT-1.28/soundlib/modcommand.cpp Modified: branches/OpenMPT-1.28/soundlib/modcommand.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/modcommand.cpp Sat Jun 29 00:56:08 2024 (r21101) +++ branches/OpenMPT-1.28/soundlib/modcommand.cpp Sat Jun 29 01:00:51 2024 (r21102) @@ -1147,9 +1147,6 @@ case CMD_MIDI: case CMD_SMOOTHMIDI: case CMD_DELAYCUT: - case CMD_FINETUNE: - case CMD_FINETUNE_SMOOTH: - case CMD_DUMMY: case CMD_REVERSEOFFSET: case CMD_DBMECHO: case CMD_OFFSETPERCENTAGE: |
From: <sv...@op...> - 2024-06-28 22:56:15
|
Author: sagamusix Date: Sat Jun 29 00:56:08 2024 New Revision: 21101 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21101 Log: Merged revision(s) 21076-21077, 21082 from trunk/OpenMPT: [Imp] When combining two identical pattern commands, don't try to keep both commands. The first command is preferred to be kept (fixes DBM.143_gnoj, https://www.un4seen.com/forum/?topic=15448.msg143155#msg143155) ........ [Fix] Compiler warnings. ........ [Imp] DBM: Disable a few more IT-specific playback compatibility flags. Fixes "Are You Flying with Me?" by Jazzcat. ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/soundlib/Load_dbm.cpp branches/OpenMPT-1.28/soundlib/modcommand.cpp Modified: branches/OpenMPT-1.28/soundlib/Load_dbm.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/Load_dbm.cpp Sat Jun 29 00:54:45 2024 (r21100) +++ branches/OpenMPT-1.28/soundlib/Load_dbm.cpp Sat Jun 29 00:56:08 2024 (r21101) @@ -354,6 +354,8 @@ m_playBehaviour.set(kSlidesAtSpeed1); m_playBehaviour.reset(kITVibratoTremoloPanbrello); m_playBehaviour.reset(kITArpeggio); + m_playBehaviour.reset(kITInstrWithNoteOff); + m_playBehaviour.reset(kITInstrWithNoteOffOldEffects); m_modFormat.formatName = U_("DigiBooster Pro"); m_modFormat.type = U_("dbm"); Modified: branches/OpenMPT-1.28/soundlib/modcommand.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/modcommand.cpp Sat Jun 29 00:54:45 2024 (r21100) +++ branches/OpenMPT-1.28/soundlib/modcommand.cpp Sat Jun 29 00:56:08 2024 (r21101) @@ -1127,6 +1127,39 @@ bool ModCommand::TwoRegularCommandsToMPT(uint8 &effect1, uint8 ¶m1, uint8 &effect2, uint8 ¶m2) { + if(effect1 == effect2) + { + // For non-sliding, absolute effects, it doesn't make sense to keep both commands + switch(effect1) + { + case CMD_ARPEGGIO: + case CMD_PANNING8: + case CMD_OFFSET: + case CMD_POSITIONJUMP: + case CMD_VOLUME: + case CMD_PATTERNBREAK: + case CMD_SPEED: + case CMD_TEMPO: + case CMD_CHANNELVOLUME: + case CMD_GLOBALVOLUME: + case CMD_KEYOFF: + case CMD_SETENVPOSITION: + case CMD_MIDI: + case CMD_SMOOTHMIDI: + case CMD_DELAYCUT: + case CMD_FINETUNE: + case CMD_FINETUNE_SMOOTH: + case CMD_DUMMY: + case CMD_REVERSEOFFSET: + case CMD_DBMECHO: + case CMD_OFFSETPERCENTAGE: + effect2 = CMD_NONE; + break; + default: + break; + } + } + for(uint8 n = 0; n < 4; n++) { if(ModCommand::ConvertVolEffect(effect1, param1, (n > 1))) |
From: <sv...@op...> - 2024-06-28 22:54:57
|
Author: sagamusix Date: Sat Jun 29 00:54:45 2024 New Revision: 21100 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21100 Log: Merged revision(s) 21076-21077, 21082 from trunk/OpenMPT: [Imp] When combining two identical pattern commands, don't try to keep both commands. The first command is preferred to be kept (fixes DBM.143_gnoj, https://www.un4seen.com/forum/?topic=15448.msg143155#msg143155) ........ [Fix] Compiler warnings. ........ [Imp] DBM: Disable a few more IT-specific playback compatibility flags. Fixes "Are You Flying with Me?" by Jazzcat. ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/soundlib/Load_dbm.cpp branches/OpenMPT-1.29/soundlib/modcommand.cpp Modified: branches/OpenMPT-1.29/soundlib/Load_dbm.cpp ============================================================================== --- branches/OpenMPT-1.29/soundlib/Load_dbm.cpp Sat Jun 29 00:52:12 2024 (r21099) +++ branches/OpenMPT-1.29/soundlib/Load_dbm.cpp Sat Jun 29 00:54:45 2024 (r21100) @@ -354,6 +354,8 @@ m_playBehaviour.set(kSlidesAtSpeed1); m_playBehaviour.reset(kITVibratoTremoloPanbrello); m_playBehaviour.reset(kITArpeggio); + m_playBehaviour.reset(kITInstrWithNoteOff); + m_playBehaviour.reset(kITInstrWithNoteOffOldEffects); m_modFormat.formatName = U_("DigiBooster Pro"); m_modFormat.type = U_("dbm"); Modified: branches/OpenMPT-1.29/soundlib/modcommand.cpp ============================================================================== --- branches/OpenMPT-1.29/soundlib/modcommand.cpp Sat Jun 29 00:52:12 2024 (r21099) +++ branches/OpenMPT-1.29/soundlib/modcommand.cpp Sat Jun 29 00:54:45 2024 (r21100) @@ -1122,6 +1122,39 @@ std::pair<EffectCommand, ModCommand::PARAM> ModCommand::TwoRegularCommandsToMPT(uint8 &effect1, uint8 ¶m1, uint8 &effect2, uint8 ¶m2) { + if(effect1 == effect2) + { + // For non-sliding, absolute effects, it doesn't make sense to keep both commands + switch(effect1) + { + case CMD_ARPEGGIO: + case CMD_PANNING8: + case CMD_OFFSET: + case CMD_POSITIONJUMP: + case CMD_VOLUME: + case CMD_PATTERNBREAK: + case CMD_SPEED: + case CMD_TEMPO: + case CMD_CHANNELVOLUME: + case CMD_GLOBALVOLUME: + case CMD_KEYOFF: + case CMD_SETENVPOSITION: + case CMD_MIDI: + case CMD_SMOOTHMIDI: + case CMD_DELAYCUT: + case CMD_FINETUNE: + case CMD_FINETUNE_SMOOTH: + case CMD_DUMMY: + case CMD_REVERSEOFFSET: + case CMD_DBMECHO: + case CMD_OFFSETPERCENTAGE: + effect2 = CMD_NONE; + break; + default: + break; + } + } + for(uint8 n = 0; n < 4; n++) { if(ModCommand::ConvertVolEffect(effect1, param1, (n > 1))) |
From: <sv...@op...> - 2024-06-28 22:52:19
|
Author: sagamusix Date: Sat Jun 29 00:52:12 2024 New Revision: 21099 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21099 Log: Merged revision(s) 21076-21082 from trunk/OpenMPT: [Imp] When combining two identical pattern commands, don't try to keep both commands. The first command is preferred to be kept (fixes DBM.143_gnoj, https://www.un4seen.com/forum/?topic=15448.msg143155#msg143155) ........ [Fix] Compiler warnings. ........ [Fix] DBM: Like in XM, offset with portamento ignores the offset command. ........ [Imp] DBM: Disable a few more IT-specific playback compatibility flags. Fixes "Are You Flying with Me?" by Jazzcat. ........ Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/soundlib/Load_dbm.cpp branches/OpenMPT-1.30/soundlib/Snd_fx.cpp branches/OpenMPT-1.30/soundlib/modcommand.cpp Modified: branches/OpenMPT-1.30/soundlib/Load_dbm.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/Load_dbm.cpp Sat Jun 29 00:27:51 2024 (r21098) +++ branches/OpenMPT-1.30/soundlib/Load_dbm.cpp Sat Jun 29 00:52:12 2024 (r21099) @@ -353,6 +353,8 @@ m_playBehaviour.set(kSlidesAtSpeed1); m_playBehaviour.reset(kITVibratoTremoloPanbrello); m_playBehaviour.reset(kITArpeggio); + m_playBehaviour.reset(kITInstrWithNoteOff); + m_playBehaviour.reset(kITInstrWithNoteOffOldEffects); m_modFormat.formatName = U_("DigiBooster Pro"); m_modFormat.type = U_("dbm"); @@ -535,6 +537,14 @@ { std::swap(cmd1, cmd2); std::swap(param1, param2); + } else if(cmd1 == CMD_TONEPORTAMENTO && cmd2 == CMD_OFFSET && param2 == 0) + { + // Offset + Portmaneto: Ignore portamento. If the offset command has a non-zero parameter, keep it for effect memory. + cmd2 = CMD_NONE; + } else if(cmd2 == CMD_TONEPORTAMENTO && cmd1 == CMD_OFFSET && param1 == 0) + { + // Ditto + cmd1 = CMD_NONE; } const auto lostCommand = ModCommand::TwoRegularCommandsToMPT(cmd1, param1, cmd2, param2); Modified: branches/OpenMPT-1.30/soundlib/Snd_fx.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/Snd_fx.cpp Sat Jun 29 00:27:51 2024 (r21098) +++ branches/OpenMPT-1.30/soundlib/Snd_fx.cpp Sat Jun 29 00:52:12 2024 (r21099) @@ -987,7 +987,8 @@ { if(m.command == CMD_OFFSET) { - ProcessSampleOffset(chn, nChn, playState); + if(!porta || !(GetType() & (MOD_TYPE_XM | MOD_TYPE_DBM))) + ProcessSampleOffset(chn, nChn, playState); } else if(m.command == CMD_OFFSETPERCENTAGE) { SampleOffset(chn, Util::muldiv_unsigned(chn.nLength, m.param, 256)); @@ -3140,7 +3141,7 @@ { // FT2 compatibility: Portamento + Offset = Ignore offset // Test case: porta-offset.xm - if(bPorta && GetType() == MOD_TYPE_XM) + if(bPorta && (GetType() & (MOD_TYPE_XM | MOD_TYPE_DBM))) break; ProcessSampleOffset(chn, nChn, m_PlayState); Modified: branches/OpenMPT-1.30/soundlib/modcommand.cpp ============================================================================== --- branches/OpenMPT-1.30/soundlib/modcommand.cpp Sat Jun 29 00:27:51 2024 (r21098) +++ branches/OpenMPT-1.30/soundlib/modcommand.cpp Sat Jun 29 00:52:12 2024 (r21099) @@ -1261,6 +1261,40 @@ std::pair<EffectCommand, ModCommand::PARAM> ModCommand::TwoRegularCommandsToMPT(uint8 &effect1, uint8 ¶m1, uint8 &effect2, uint8 ¶m2) { + if(effect1 == effect2) + { + // For non-sliding, absolute effects, it doesn't make sense to keep both commands + switch(effect1) + { + case CMD_ARPEGGIO: + case CMD_PANNING8: + case CMD_OFFSET: + case CMD_POSITIONJUMP: + case CMD_VOLUME: + case CMD_PATTERNBREAK: + case CMD_SPEED: + case CMD_TEMPO: + case CMD_CHANNELVOLUME: + case CMD_GLOBALVOLUME: + case CMD_KEYOFF: + case CMD_SETENVPOSITION: + case CMD_MIDI: + case CMD_SMOOTHMIDI: + case CMD_DELAYCUT: + case CMD_FINETUNE: + case CMD_FINETUNE_SMOOTH: + case CMD_DUMMY: + case CMD_REVERSEOFFSET: + case CMD_DBMECHO: + case CMD_OFFSETPERCENTAGE: + case CMD_DIGIREVERSESAMPLE: + effect2 = CMD_NONE; + break; + default: + break; + } + } + for(uint8 n = 0; n < 4; n++) { if(ModCommand::ConvertVolEffect(effect1, param1, (n > 1))) |
From: <sv...@op...> - 2024-06-28 22:28:03
|
Author: sagamusix Date: Sat Jun 29 00:27:51 2024 New Revision: 21098 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21098 Log: Merged revision(s) 21097 from trunk/OpenMPT: [Fix] Properly restore keyboard focus in the upper half of the MDI views after OpenMPT regains focus (https://bugs.openmpt.org/view.php?id=1795). ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/Globals.cpp branches/OpenMPT-1.31/mptrack/Globals.h Modified: branches/OpenMPT-1.31/mptrack/Globals.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/Globals.cpp Sat Jun 29 00:27:03 2024 (r21097) +++ branches/OpenMPT-1.31/mptrack/Globals.cpp Sat Jun 29 00:27:51 2024 (r21098) @@ -1,8 +1,9 @@ /* - * globals.cpp + * Globals.cpp * ----------- - * Purpose: Implementation of various views of the tracker interface. - * Notes : (currently none) + * Purpose: Implementation of the base classes for the upper and lower half of the MDI child windows. + * Notes : CModControlDlg = Upper half (Ctrl_*.cpp/h), which is contained inside a CModControlView together with the tab switcher (CModTabCtrl). + * CModScrollView = Lower half (View_*.cpp/h). * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. */ @@ -192,10 +193,12 @@ //{{AFX_MSG_MAP(CModControlView) ON_WM_SIZE() ON_WM_DESTROY() + ON_WM_SETFOCUS() ON_NOTIFY(TCN_SELCHANGE, IDC_TABCTRL1, &CModControlView::OnTabSelchange) ON_MESSAGE(WM_MOD_ACTIVATEVIEW, &CModControlView::OnActivateModView) ON_MESSAGE(WM_MOD_CTRLMSG, &CModControlView::OnModCtrlMsg) ON_MESSAGE(WM_MOD_GETTOOLTIPTEXT, &CModControlView::OnGetToolTipText) + ON_MESSAGE(WM_MOD_MDIDEACTIVATE, &CModControlView::OnSaveFocusItem) ON_COMMAND(ID_EDIT_CUT, &CModControlView::OnEditCut) ON_COMMAND(ID_EDIT_COPY, &CModControlView::OnEditCopy) ON_COMMAND(ID_EDIT_PASTE, &CModControlView::OnEditPaste) @@ -227,6 +230,22 @@ } +LRESULT CModControlView::OnSaveFocusItem(WPARAM, LPARAM) +{ + // Ugly workaround for focus issue in upper view (https://bugs.openmpt.org/view.php?id=1795) + m_oldWnd = ::GetFocus(); + return 0; +} + + +void CModControlView::OnSetFocus(CWnd* pOldWnd) +{ + if(m_oldWnd && ::IsChild(m_hWnd, m_oldWnd)) + ::SetFocus(m_oldWnd); + CView::OnSetFocus(pOldWnd); +} + + void CModControlView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); Modified: branches/OpenMPT-1.31/mptrack/Globals.h ============================================================================== --- branches/OpenMPT-1.31/mptrack/Globals.h Sat Jun 29 00:27:03 2024 (r21097) +++ branches/OpenMPT-1.31/mptrack/Globals.h Sat Jun 29 00:27:51 2024 (r21098) @@ -1,7 +1,7 @@ /* * Globals.h * --------- - * Purpose: Implementation of various views of the tracker interface. + * Purpose: Implementation of the base classes for the upper and lower half of the MDI child windows. * Notes : (currently none) * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. @@ -119,6 +119,7 @@ Page m_nActiveDlg = Page::Unknown; int m_nInstrumentChanged = -1; HWND m_hWndView = nullptr, m_hWndMDI = nullptr; + HWND m_oldWnd = nullptr; protected: // create from serialization only CModControlView() = default; @@ -153,6 +154,8 @@ protected: //{{AFX_MSG(CModControlView) + afx_msg LRESULT OnSaveFocusItem(WPARAM, LPARAM); + afx_msg void OnSetFocus(CWnd *pOldWnd); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnDestroy(); afx_msg void OnTabSelchange(NMHDR* pNMHDR, LRESULT* pResult); |
From: <sv...@op...> - 2024-06-28 22:27:15
|
Author: sagamusix Date: Sat Jun 29 00:27:03 2024 New Revision: 21097 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21097 Log: [Fix] Properly restore keyboard focus in the upper half of the MDI views after OpenMPT regains focus (https://bugs.openmpt.org/view.php?id=1795). Modified: trunk/OpenMPT/mptrack/Globals.cpp trunk/OpenMPT/mptrack/Globals.h Modified: trunk/OpenMPT/mptrack/Globals.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Globals.cpp Fri Jun 28 22:05:47 2024 (r21096) +++ trunk/OpenMPT/mptrack/Globals.cpp Sat Jun 29 00:27:03 2024 (r21097) @@ -1,8 +1,9 @@ /* - * globals.cpp + * Globals.cpp * ----------- - * Purpose: Implementation of various views of the tracker interface. - * Notes : (currently none) + * Purpose: Implementation of the base classes for the upper and lower half of the MDI child windows. + * Notes : CModControlDlg = Upper half (Ctrl_*.cpp/h), which is contained inside a CModControlView together with the tab switcher (CModTabCtrl). + * CModScrollView = Lower half (View_*.cpp/h). * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. */ @@ -189,10 +190,12 @@ //{{AFX_MSG_MAP(CModControlView) ON_WM_SIZE() ON_WM_DESTROY() + ON_WM_SETFOCUS() ON_NOTIFY(TCN_SELCHANGE, IDC_TABCTRL1, &CModControlView::OnTabSelchange) ON_MESSAGE(WM_MOD_ACTIVATEVIEW, &CModControlView::OnActivateModView) ON_MESSAGE(WM_MOD_CTRLMSG, &CModControlView::OnModCtrlMsg) ON_MESSAGE(WM_MOD_GETTOOLTIPTEXT, &CModControlView::OnGetToolTipText) + ON_MESSAGE(WM_MOD_MDIDEACTIVATE, &CModControlView::OnSaveFocusItem) ON_COMMAND(ID_EDIT_CUT, &CModControlView::OnEditCut) ON_COMMAND(ID_EDIT_COPY, &CModControlView::OnEditCopy) ON_COMMAND(ID_EDIT_PASTE, &CModControlView::OnEditPaste) @@ -219,6 +222,22 @@ } +LRESULT CModControlView::OnSaveFocusItem(WPARAM, LPARAM) +{ + // Ugly workaround for focus issue in upper view (https://bugs.openmpt.org/view.php?id=1795) + m_oldWnd = ::GetFocus(); + return 0; +} + + +void CModControlView::OnSetFocus(CWnd* pOldWnd) +{ + if(m_oldWnd && ::IsChild(m_hWnd, m_oldWnd)) + ::SetFocus(m_oldWnd); + CView::OnSetFocus(pOldWnd); +} + + void CModControlView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); Modified: trunk/OpenMPT/mptrack/Globals.h ============================================================================== --- trunk/OpenMPT/mptrack/Globals.h Fri Jun 28 22:05:47 2024 (r21096) +++ trunk/OpenMPT/mptrack/Globals.h Sat Jun 29 00:27:03 2024 (r21097) @@ -1,7 +1,7 @@ /* * Globals.h * --------- - * Purpose: Implementation of various views of the tracker interface. + * Purpose: Implementation of the base classes for the upper and lower half of the MDI child windows. * Notes : (currently none) * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. @@ -125,6 +125,7 @@ Page m_nActiveDlg = Page::Unknown; int m_nInstrumentChanged = -1; HWND m_hWndView = nullptr, m_hWndMDI = nullptr; + HWND m_oldWnd = nullptr; protected: // create from serialization only CModControlView() = default; @@ -157,6 +158,8 @@ protected: //{{AFX_MSG(CModControlView) + afx_msg LRESULT OnSaveFocusItem(WPARAM, LPARAM); + afx_msg void OnSetFocus(CWnd *pOldWnd); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnDestroy(); afx_msg void OnTabSelchange(NMHDR* pNMHDR, LRESULT* pResult); |