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
(202) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@op...> - 2024-11-09 23:38:20
|
Author: sagamusix Date: Sun Nov 10 00:38:13 2024 New Revision: 22131 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22131 Log: [Mod] S3M: Don't clamp out-of-range notes to minimum note. [Imp] Add more tests for S3M / XM out-of-range note saving. Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp trunk/OpenMPT/test/test.cpp Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp Sun Nov 10 00:30:29 2024 (r22130) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp Sun Nov 10 00:38:13 2024 (r22131) @@ -973,13 +973,9 @@ { // Note Cut note = s3mNoteOff; - } else if(note >= NOTE_MIN && note < NOTE_MIN + 12) + } else if(note >= NOTE_MIN + 12 && note <= NOTE_MIN + 107) { - // Too low - note = 0; - } else if(note >= NOTE_MIN && note <= NOTE_MIN + 107) - { - note -= (12 + NOTE_MIN); + note -= NOTE_MIN + 12; note = static_cast<uint8>((note % 12) + ((note / 12) << 4)); } else { Modified: trunk/OpenMPT/test/test.cpp ============================================================================== --- trunk/OpenMPT/test/test.cpp Sun Nov 10 00:30:29 2024 (r22130) +++ trunk/OpenMPT/test/test.cpp Sun Nov 10 00:38:13 2024 (r22131) @@ -2866,7 +2866,8 @@ VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(0, 1)->note, NOTE_MIN + 12); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(1, 1)->note, NOTE_MIN + 12 + 95); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(2, 1)->note, NOTE_KEYOFF); - VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(31, 0)->IsEmpty(), true); + VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(30, 0)->IsEmpty(), true); // Test for resaved out-of-range note + VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(31, 0)->IsEmpty(), true); // Test for resaved out-of-range note VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(31, 1)->IsEmpty(), false); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(31, 1)->IsPcNote(), false); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(31, 1)->note, NOTE_MIDDLEC + 12); @@ -3412,7 +3413,8 @@ VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(3, 0)->IsEmpty(), false); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(3, 0)->note, NOTE_NONE); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(3, 0)->instr, 99); - VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(4, 0)->IsEmpty(), true); + VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(4, 0)->IsEmpty(), true); // Test for resaved out-of-range note + VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(5, 0)->IsEmpty(), true); // Test for resaved out-of-range note VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetNumRows(), 64); VERIFY_EQUAL_NONCONT(sndFile.Patterns.IsPatternEmpty(1), false); @@ -3714,6 +3716,8 @@ // file still works. GetSoundFile(sndFileContainer).m_nSamples++; GetSoundFile(sndFileContainer).Instruments[1]->Keyboard[110] = GetSoundFile(sndFileContainer).GetNumSamples(); + GetSoundFile(sndFileContainer).Patterns[1].GetpModCommand(30, 0)->note = NOTE_MIN; // Should not be saved to file + GetSoundFile(sndFileContainer).Patterns[1].GetpModCommand(31, 0)->note = NOTE_MIN + 108; // Ditto #ifndef MODPLUG_NO_FILESAVE // Test file saving @@ -3774,6 +3778,8 @@ #ifndef MODPLUG_NO_FILESAVE // Test file saving sndFile.ChnSettings[1].dwFlags.set(CHN_MUTE); + sndFile.Patterns[0].GetpModCommand(4, 0)->note = NOTE_MIN; // Should not be saved to file + sndFile.Patterns[0].GetpModCommand(5, 0)->note = NOTE_MIN + 108; // Ditto sndFile.m_dwLastSavedWithVersion = Version::Current(); #if MPT_OS_DJGPP SaveS3M(sndFileContainer, filenameBase + P_("ss3")); |
From: <sv...@op...> - 2024-11-09 23:30:42
|
Author: sagamusix Date: Sun Nov 10 00:30:29 2024 New Revision: 22130 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22130 Log: [Mod] Disable per-monitor awareness. It is nowhere near usable in this branch. Modified: branches/OpenMPT-1.31/mptrack/Mptrack.cpp Modified: branches/OpenMPT-1.31/mptrack/Mptrack.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/Mptrack.cpp Sun Nov 10 00:26:15 2024 (r22129) +++ branches/OpenMPT-1.31/mptrack/Mptrack.cpp Sun Nov 10 00:30:29 2024 (r22130) @@ -1295,7 +1295,7 @@ { if(TrackerSettings::Instance().highResUI) { - setDPI = (SetProcessDpiAwarenessContext(HANDLE(MPT_DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2)) == TRUE); + setDPI = (SetProcessDpiAwarenessContext(HANDLE(MPT_DPI_AWARENESS_CONTEXT_SYSTEM_AWARE)) == TRUE); } else { if(TrackerSettings::Instance().useGDIUpcaling && SetProcessDpiAwarenessContext(HANDLE(MPT_DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED)) == TRUE) |
From: <sv...@op...> - 2024-11-09 23:26:27
|
Author: sagamusix Date: Sun Nov 10 00:26:15 2024 New Revision: 22129 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22129 Log: [Fix] S3M: Saving note-less instrument broke in r22093 (see https://github.com/OpenMPT/openmpt/pull/28). [Imp] Improve S3M saving tests. Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp trunk/OpenMPT/test/test.cpp trunk/OpenMPT/test/test.s3m Modified: trunk/OpenMPT/soundlib/Load_s3m.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_s3m.cpp Sun Nov 10 00:10:17 2024 (r22128) +++ trunk/OpenMPT/soundlib/Load_s3m.cpp Sun Nov 10 00:26:15 2024 (r22129) @@ -973,16 +973,15 @@ { // Note Cut note = s3mNoteOff; - } else if(note < NOTE_MIN + 12) + } else if(note >= NOTE_MIN && note < NOTE_MIN + 12) { // Too low note = 0; - } else if(note <= NOTE_MIN + 107) + } else if(note >= NOTE_MIN && note <= NOTE_MIN + 107) { note -= (12 + NOTE_MIN); note = static_cast<uint8>((note % 12) + ((note / 12) << 4)); - } - else + } else { note = s3mNoteNone; } Modified: trunk/OpenMPT/test/test.cpp ============================================================================== --- trunk/OpenMPT/test/test.cpp Sun Nov 10 00:10:17 2024 (r22128) +++ trunk/OpenMPT/test/test.cpp Sun Nov 10 00:26:15 2024 (r22129) @@ -3296,7 +3296,8 @@ VERIFY_EQUAL_NONCONT(sndFile.m_SongFlags, SONG_FASTVOLSLIDES); VERIFY_EQUAL_NONCONT(sndFile.GetMixLevels(), MixLevels::Compatible); VERIFY_EQUAL_NONCONT(sndFile.m_nTempoMode, TempoMode::Classic); - VERIFY_EQUAL_NONCONT(sndFile.m_dwLastSavedWithVersion, resaved ? Version::Current() : MPT_V("1.27.00.00")); + VERIFY_EQUAL_NONCONT(sndFile.m_dwLastSavedWithVersion, resaved ? Version::Current() : MPT_V("1.32.00.32")); + VERIFY_EQUAL_NONCONT(sndFile.GetFileHistory().size(), 1); // Channels VERIFY_EQUAL_NONCONT(sndFile.GetNumChannels(), 4); @@ -3397,6 +3398,7 @@ VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetOverrideSignature(), false); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(0, 0)->note, NOTE_MIN + 12); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(1, 0)->note, NOTE_MIN + 107); + VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(2, 0)->note, NOTE_NOTECUT); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(0, 1)->volcmd, VOLCMD_VOLUME); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(0, 1)->vol, 0); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(1, 1)->volcmd, VOLCMD_VOLUME); @@ -3407,6 +3409,10 @@ VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(3, 1)->vol, 64); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(0, 3)->command, CMD_SPEED); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(0, 3)->param, 0x11); + VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(3, 0)->IsEmpty(), false); + VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(3, 0)->note, NOTE_NONE); + VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(3, 0)->instr, 99); + VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetpModCommand(4, 0)->IsEmpty(), true); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetNumRows(), 64); VERIFY_EQUAL_NONCONT(sndFile.Patterns.IsPatternEmpty(1), false); Modified: trunk/OpenMPT/test/test.s3m ============================================================================== Binary file (source and/or target). No diff available. |
From: <sv...@op...> - 2024-11-09 23:10:25
|
Author: sagamusix Date: Sun Nov 10 00:10:17 2024 New Revision: 22128 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22128 Log: [Ref] Mainbar: Small cleanup. Modified: trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/mptrack/Mainbar.h Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Sat Nov 9 23:57:41 2024 (r22127) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Sun Nov 10 00:10:17 2024 (r22128) @@ -234,11 +234,6 @@ SetButtons(MainButtons, static_cast<int>(std::size(MainButtons))); - nCurrentSpeed = 6; - nCurrentTempo.Set(125); - nCurrentRowsPerBeat = 4; - nCurrentOctave = -1; - // Placeholder rect, text width will be determined later CRect rect{0, 0, SPINNER_WIDTH, SPINNER_HEIGHT}; @@ -440,7 +435,7 @@ UINT CMainToolBar::GetBaseOctave() const { - if(nCurrentOctave >= MIN_BASEOCTAVE) return (UINT)nCurrentOctave; + if(m_currentOctave >= MIN_BASEOCTAVE) return (UINT)m_currentOctave; return 4; } @@ -450,9 +445,9 @@ TCHAR s[64]; if((nOctave < MIN_BASEOCTAVE) || (nOctave > MAX_BASEOCTAVE)) return FALSE; - if(nOctave != (UINT)nCurrentOctave) + if(nOctave != (UINT)m_currentOctave) { - nCurrentOctave = nOctave; + m_currentOctave = nOctave; wsprintf(s, _T("Octave %d"), nOctave); m_EditOctave.SetWindowText(s); m_SpinOctave.SetPos(nOctave); @@ -502,11 +497,11 @@ { TCHAR s[32]; // Update play/pause button - if(nCurrentTempo == TEMPO(0, 0)) + if(m_currentTempo == TEMPO(0, 0)) SetButtonInfo(PLAYCMD_INDEX, ID_PLAYER_PAUSE, TBBS_BUTTON, TOOLBAR_IMAGE_PAUSE); // Update Speed int nSpeed = pSndFile->m_PlayState.m_nMusicSpeed; - if(nSpeed != nCurrentSpeed) + if(nSpeed != m_currentSpeed) { CModDoc *modDoc = pSndFile->GetpModDoc(); if(modDoc != nullptr) @@ -515,29 +510,29 @@ modDoc->UpdateAllViews(InstrumentHint().Envelope()); } - if(nCurrentSpeed < 0) m_SpinSpeed.EnableWindow(TRUE); - nCurrentSpeed = nSpeed; - wsprintf(s, _T("%u"), static_cast<unsigned int>(nCurrentSpeed)); + if(m_currentSpeed < 0) m_SpinSpeed.EnableWindow(TRUE); + m_currentSpeed = nSpeed; + wsprintf(s, _T("%u"), static_cast<unsigned int>(m_currentSpeed)); m_EditSpeed.SetWindowText(s); } TEMPO nTempo = pSndFile->m_PlayState.m_nMusicTempo; - if(nTempo != nCurrentTempo) + if(nTempo != m_currentTempo) { - if(nCurrentTempo <= TEMPO(0, 0)) m_SpinTempo.EnableWindow(TRUE); - nCurrentTempo = nTempo; - if(nCurrentTempo.GetFract() == 0) - _stprintf(s, _T("%u"), nCurrentTempo.GetInt()); + if(m_currentTempo <= TEMPO(0, 0)) m_SpinTempo.EnableWindow(TRUE); + m_currentTempo = nTempo; + if(m_currentTempo.GetFract() == 0) + _stprintf(s, _T("%u"), m_currentTempo.GetInt()); else - _stprintf(s, _T("%.4f"), nCurrentTempo.ToDouble()); + _stprintf(s, _T("%.4f"), m_currentTempo.ToDouble()); m_EditTempo.SetWindowText(s); } int nRowsPerBeat = pSndFile->m_PlayState.m_nCurrentRowsPerBeat; - if(nRowsPerBeat != nCurrentRowsPerBeat) + if(nRowsPerBeat != m_currentRowsPerBeat) { - if(nCurrentRowsPerBeat < 0) + if(m_currentRowsPerBeat < 0) m_SpinRowsPerBeat.EnableWindow(TRUE); - nCurrentRowsPerBeat = nRowsPerBeat; - wsprintf(s, _T("%u"), static_cast<unsigned int>(nCurrentRowsPerBeat)); + m_currentRowsPerBeat = nRowsPerBeat; + wsprintf(s, _T("%u"), static_cast<unsigned int>(m_currentRowsPerBeat)); m_EditRowsPerBeat.SetWindowText(s); } int globalVol = pSndFile->m_PlayState.m_nGlobalVolume; @@ -551,22 +546,22 @@ } } else { - if(nCurrentTempo > TEMPO(0, 0)) + if(m_currentTempo > TEMPO(0, 0)) { - nCurrentTempo.Set(0); + m_currentTempo.Set(0); m_EditTempo.SetWindowText(_T("---")); m_SpinTempo.EnableWindow(FALSE); SetButtonInfo(PLAYCMD_INDEX, ID_PLAYER_PLAY, TBBS_BUTTON, TOOLBAR_IMAGE_PLAY); } - if(nCurrentSpeed != -1) + if(m_currentSpeed != -1) { - nCurrentSpeed = -1; + m_currentSpeed = -1; m_EditSpeed.SetWindowText(_T("---")); m_SpinSpeed.EnableWindow(FALSE); } - if(nCurrentRowsPerBeat != -1) + if(m_currentRowsPerBeat != -1) { - nCurrentRowsPerBeat = -1; + m_currentRowsPerBeat = -1; m_EditRowsPerBeat.SetWindowText(_T("---")); m_SpinRowsPerBeat.EnableWindow(FALSE); } @@ -590,11 +585,11 @@ pScrollBar->SetFocus(); short int oct = (short int)m_SpinOctave.GetPos(); - if((oct >= MIN_BASEOCTAVE) && ((int)oct != nCurrentOctave)) + if((oct >= MIN_BASEOCTAVE) && ((int)oct != m_currentOctave)) { SetBaseOctave(oct); } - if((nCurrentSpeed < 0) || (nCurrentTempo <= TEMPO(0, 0))) return; + if((m_currentSpeed < 0) || (m_currentTempo <= TEMPO(0, 0))) return; if((pMainFrm = CMainFrame::GetMainFrame()) != nullptr) { CSoundFile *pSndFile = pMainFrm->GetSoundFilePlaying(); @@ -617,24 +612,24 @@ { newTempo = TEMPO(n, 0); } - newTempo += nCurrentTempo; + newTempo += m_currentTempo; pSndFile->SetTempo(Clamp(newTempo, specs.GetTempoMin(), specs.GetTempoMax()), true); m_SpinTempo.SetPos(0); } if((n = mpt::signum(m_SpinSpeed.GetPos32())) != 0) { - pSndFile->m_PlayState.m_nMusicSpeed = Clamp(uint32(nCurrentSpeed + n), specs.speedMin, specs.speedMax); + pSndFile->m_PlayState.m_nMusicSpeed = Clamp(uint32(m_currentSpeed + n), specs.speedMin, specs.speedMax); m_SpinSpeed.SetPos(0); } if((n = m_SpinRowsPerBeat.GetPos32()) != 0) { if(n < 0) { - if(nCurrentRowsPerBeat > 1) - SetRowsPerBeat(nCurrentRowsPerBeat - 1); - } else if(static_cast<ROWINDEX>(nCurrentRowsPerBeat) < pSndFile->m_PlayState.m_nCurrentRowsPerMeasure) + if(m_currentRowsPerBeat > 1) + SetRowsPerBeat(m_currentRowsPerBeat - 1); + } else if(static_cast<ROWINDEX>(m_currentRowsPerBeat) < pSndFile->m_PlayState.m_nCurrentRowsPerMeasure) { - SetRowsPerBeat(nCurrentRowsPerBeat + 1); + SetRowsPerBeat(m_currentRowsPerBeat + 1); } m_SpinRowsPerBeat.SetPos(0); Modified: trunk/OpenMPT/mptrack/Mainbar.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.h Sat Nov 9 23:57:41 2024 (r22127) +++ trunk/OpenMPT/mptrack/Mainbar.h Sun Nov 10 00:10:17 2024 (r22128) @@ -86,8 +86,8 @@ CEdit m_EditTempo, m_EditSpeed, m_EditOctave, m_EditRowsPerBeat, m_EditGlobalVolume; CStatic m_StaticTempo, m_StaticSpeed, m_StaticRowsPerBeat, m_StaticGlobalVolume; CSpinButtonCtrl m_SpinTempo, m_SpinSpeed, m_SpinOctave, m_SpinRowsPerBeat, m_SpinGlobalVolume; - int nCurrentSpeed = 0, nCurrentOctave = 0, nCurrentRowsPerBeat = 0, m_currentGlobalVolume = 0; - TEMPO nCurrentTempo; + int m_currentSpeed = 0, m_currentOctave = -1, m_currentRowsPerBeat = 0, m_currentGlobalVolume = 0; + TEMPO m_currentTempo{1, 0}; public: CStereoVU m_VuMeter; |
From: <sv...@op...> - 2024-11-09 23:00:52
|
Author: sagamusix Revision: 22127 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -1,3 +1,3 @@ -[New] The main toolbar shows the global volume of the currently playing module now, and can also be used to modify it. +[New] The main toolbar shows the global volume of the currently playing module now, and can also be used to modify it (https://bugs.openmpt.org/view.php?id=277). [Imp] All custom controls in the main toolbar can now be toggled via the context menu. [Mod] By default, the main toolbar no longer shows the rows/beat. This makes the default toolbar layout still mostly usable at a 1024 pixel width after adding the global volume, and this information is rarely needed anyways (it can be directly seen in the pattenr data itself). Once dynamic toolbar sizing is working, it might be brought back by default. \ No newline at end of file |
From: <sv...@op...> - 2024-11-09 22:57:54
|
Author: sagamusix Date: Sat Nov 9 23:57:41 2024 New Revision: 22127 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22127 Log: [New] The main toolbar shows the global volume of the currently playing module now, and can also be used to modify it. [Imp] All custom controls in the main toolbar can now be toggled via the context menu. [Mod] By default, the main toolbar no longer shows the rows/beat. This makes the default toolbar layout still mostly usable at a 1024 pixel width after adding the global volume, and this information is rarely needed anyways (it can be directly seen in the pattenr data itself). Once dynamic toolbar sizing is working, it might be brought back by default. Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp trunk/OpenMPT/mptrack/Ctrl_gen.h trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/mptrack/Mainbar.h trunk/OpenMPT/mptrack/Mainfrm.h trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/mptrack/resource.h trunk/OpenMPT/soundlib/Sndfile.h Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_gen.cpp Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp Sat Nov 9 23:57:41 2024 (r22127) @@ -93,7 +93,7 @@ // Display range for XM / S3M should be 0...64, for other formats it's 0...256. uint32 CCtrlGeneral::GetGlobalVolumeFactor() const { - return (m_sndFile.GetType() & (MOD_TYPE_XM | MOD_TYPE_S3M)) ? uint32(MAX_SLIDER_GLOBAL_VOL / 64) : uint32(MAX_SLIDER_GLOBAL_VOL / 128); + return MAX_GLOBAL_VOLUME / m_sndFile.GlobalVolumeRange(); } @@ -109,7 +109,7 @@ m_SpinVSTiVol.SetRange(0, 2000); m_SpinRestartPos.SetRange32(0, ORDERINDEX_MAX); - m_SliderGlobalVol.SetRange(0, MAX_SLIDER_GLOBAL_VOL); + m_SliderGlobalVol.SetRange(0, MAX_GLOBAL_VOLUME); m_SliderVSTiVol.SetRange(0, MAX_SLIDER_VSTI_VOL); m_SliderSamplePreAmp.SetRange(0, MAX_SLIDER_SAMPLE_VOL); @@ -372,7 +372,7 @@ SetDlgItemInt(IDC_EDIT_SAMPLEPA, m_sndFile.m_nSamplePreAmp, FALSE); } - m_SliderGlobalVol.SetPos(MAX_SLIDER_GLOBAL_VOL - m_sndFile.m_nDefaultGlobalVolume); + m_SliderGlobalVol.SetPos(MAX_GLOBAL_VOLUME - m_sndFile.m_nDefaultGlobalVolume); m_SliderVSTiVol.SetPos(MAX_SLIDER_VSTI_VOL - m_sndFile.m_nVSTiVolume); m_SliderSamplePreAmp.SetPos(MAX_SLIDER_SAMPLE_VOL - m_sndFile.m_nSamplePreAmp); } @@ -421,8 +421,8 @@ else if (pSlider == &m_SliderGlobalVol) { - const UINT gv = MAX_SLIDER_GLOBAL_VOL - m_SliderGlobalVol.GetPos(); - if ((gv >= 0) && (gv <= MAX_SLIDER_GLOBAL_VOL) && (gv != m_sndFile.m_nDefaultGlobalVolume)) + const UINT gv = MAX_GLOBAL_VOLUME - m_SliderGlobalVol.GetPos(); + if ((gv >= 0) && (gv <= MAX_GLOBAL_VOLUME) && (gv != m_sndFile.m_nDefaultGlobalVolume)) { m_sndFile.m_PlayState.m_nGlobalVolume = gv; m_sndFile.m_nDefaultGlobalVolume = gv; Modified: trunk/OpenMPT/mptrack/Ctrl_gen.h ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_gen.h Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/mptrack/Ctrl_gen.h Sat Nov 9 23:57:41 2024 (r22127) @@ -79,7 +79,6 @@ //}}AFX_VIRTUAL protected: - static constexpr int MAX_SLIDER_GLOBAL_VOL = 256; static constexpr int MAX_SLIDER_VSTI_VOL = 255; static constexpr int MAX_SLIDER_SAMPLE_VOL = 255; Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Sat Nov 9 23:57:41 2024 (r22127) @@ -125,13 +125,19 @@ ON_COMMAND(ID_UPDATE_AVAILABLE, &CMainFrame::OnUpdateAvailable) ON_COMMAND(ID_HELP_SHOWSETTINGSFOLDER, &CMainFrame::OnShowSettingsFolder) #if defined(MPT_ENABLE_UPDATE) - ON_MESSAGE(MPT_WM_APP_UPDATECHECK_START, &CMainFrame::OnUpdateCheckStart) + ON_MESSAGE(MPT_WM_APP_UPDATECHECK_START, &CMainFrame::OnUpdateCheckStart) ON_MESSAGE(MPT_WM_APP_UPDATECHECK_PROGRESS, &CMainFrame::OnUpdateCheckProgress) ON_MESSAGE(MPT_WM_APP_UPDATECHECK_CANCELED, &CMainFrame::OnUpdateCheckCanceled) - ON_MESSAGE(MPT_WM_APP_UPDATECHECK_FAILURE, &CMainFrame::OnUpdateCheckFailure) - ON_MESSAGE(MPT_WM_APP_UPDATECHECK_SUCCESS, &CMainFrame::OnUpdateCheckSuccess) + ON_MESSAGE(MPT_WM_APP_UPDATECHECK_FAILURE, &CMainFrame::OnUpdateCheckFailure) + ON_MESSAGE(MPT_WM_APP_UPDATECHECK_SUCCESS, &CMainFrame::OnUpdateCheckSuccess) #endif // MPT_ENABLE_UPDATE - ON_COMMAND(ID_HELPSHOW, &CMainFrame::OnHelp) + ON_COMMAND(ID_HELPSHOW, &CMainFrame::OnHelp) + ON_COMMAND(ID_MAINBAR_SHOW_OCTAVE, &CMainFrame::OnToggleMainBarShowOctave) + ON_COMMAND(ID_MAINBAR_SHOW_TEMPO, &CMainFrame::OnToggleMainBarShowTempo) + ON_COMMAND(ID_MAINBAR_SHOW_SPEED, &CMainFrame::OnToggleMainBarShowSpeed) + ON_COMMAND(ID_MAINBAR_SHOW_ROWSPERBEAT, &CMainFrame::OnToggleMainBarShowRowsPerBeat) + ON_COMMAND(ID_MAINBAR_SHOW_GLOBALVOLUME, &CMainFrame::OnToggleMainBarShowGlobalVolume) + ON_COMMAND(ID_MAINBAR_SHOW_VUMETER, &CMainFrame::OnToggleMainBarShowVUMeter) #ifdef MPT_ENABLE_PLAYBACK_TEST_MENU ON_COMMAND(ID_CREATE_MIXERDUMP, &CMainFrame::OnCreateMixerDump) @@ -571,12 +577,12 @@ BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) { // Right-click menu to disable/enable tree view and main toolbar when right-clicking on either the menu strip or main toolbar - if((pMsg->message == WM_RBUTTONDOWN) || (pMsg->message == WM_NCRBUTTONDOWN)) + if((pMsg->message == WM_RBUTTONUP) || (pMsg->message == WM_NCRBUTTONUP)) { CControlBar *pBar = nullptr; - if(CWnd *pWnd = CWnd::FromHandlePermanent(pMsg->hwnd); pWnd && (pMsg->message == WM_RBUTTONDOWN)) + if(CWnd *pWnd = CWnd::FromHandlePermanent(pMsg->hwnd); pWnd && (pMsg->message == WM_RBUTTONUP)) pBar = dynamic_cast<CControlBar *>(pWnd); - if(pBar != nullptr || (pMsg->message == WM_NCRBUTTONDOWN && pMsg->wParam == HTMENU)) + if(pBar != nullptr || (pMsg->message == WM_NCRBUTTONUP && pMsg->wParam == HTMENU)) { CPoint pt; GetCursorPos(&pt); @@ -2511,15 +2517,34 @@ void CMainFrame::ShowToolbarMenu(CPoint screenPt) { - CMenu menu; - if(!menu.CreatePopupMenu()) + CMenu menu, subMenu; + if(!menu.CreatePopupMenu() || !subMenu.CreatePopupMenu()) return; menu.AppendMenu(MF_STRING, ID_VIEW_TOOLBAR, m_InputHandler->GetMenuText(ID_VIEW_TOOLBAR)); menu.AppendMenu(MF_STRING, IDD_TREEVIEW, m_InputHandler->GetMenuText(IDD_TREEVIEW)); + + const FlagSet<MainToolBarItem> visibleItems = TrackerSettings::Instance().mainToolBarVisibleItems.Get(); + + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::Octave] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_OCTAVE, _T("Base &Octave")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::Tempo] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_TEMPO, _T("&Tempo")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::Speed] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_SPEED, _T("Ticks/&Row")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::RowsPerBeat] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_ROWSPERBEAT, _T("Rows Per &Beat")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::GlobalVolume] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_GLOBALVOLUME, _T("&Global Volume")); + subMenu.AppendMenu(MF_STRING | (visibleItems[MainToolBarItem::VUMeter] ? MF_CHECKED : 0), ID_MAINBAR_SHOW_VUMETER, _T("&VU Meters")); + menu.AppendMenu(MF_POPUP, reinterpret_cast<UINT_PTR>(subMenu.m_hMenu), _T("Main Toolbar &Items")); + menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, screenPt.x, screenPt.y, this); } +void CMainFrame::OnToggleMainBarShowOctave() { m_wndToolBar.ToggleVisibility(MainToolBarItem::Octave); } +void CMainFrame::OnToggleMainBarShowTempo() { m_wndToolBar.ToggleVisibility(MainToolBarItem::Tempo); } +void CMainFrame::OnToggleMainBarShowSpeed() { m_wndToolBar.ToggleVisibility(MainToolBarItem::Speed); } +void CMainFrame::OnToggleMainBarShowRowsPerBeat() { m_wndToolBar.ToggleVisibility(MainToolBarItem::RowsPerBeat); } +void CMainFrame::OnToggleMainBarShowGlobalVolume() { m_wndToolBar.ToggleVisibility(MainToolBarItem::GlobalVolume); } +void CMainFrame::OnToggleMainBarShowVUMeter() { m_wndToolBar.ToggleVisibility(MainToolBarItem::VUMeter); } + + LRESULT CMainFrame::OnCustomKeyMsg(WPARAM wParam, LPARAM lParam) { switch(wParam) Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Sat Nov 9 23:57:41 2024 (r22127) @@ -87,21 +87,32 @@ } -BOOL CToolBarEx::EnableControl(CWnd &wnd, UINT nIndex, UINT nHeight) +void CToolBarEx::UpdateControl(bool show, CWnd &wnd, int index, int id, int height) { - if(wnd.m_hWnd != NULL) + if(show) { CRect rect; - GetItemRect(nIndex, rect); - if(nHeight) + wnd.GetClientRect(rect); + SetButtonInfo(index, id, TBBS_SEPARATOR, rect.right); + + if(wnd.m_hWnd) { - int n = (rect.bottom + rect.top - nHeight) / 2; - if(n > rect.top) rect.top = n; + GetItemRect(index, rect); + if(height) + { + int n = (rect.bottom + rect.top - height) / 2; + if(n > rect.top) + rect.top = n; + } + wnd.SetWindowPos(nullptr, rect.left, rect.top, 0, 0, SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOSIZE); + wnd.ShowWindow(SW_SHOW); } - wnd.SetWindowPos(NULL, rect.left, rect.top, 0, 0, SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOCOPYBITS); - wnd.ShowWindow(SW_SHOW); + } else + { + SetButtonInfo(index, ID_SEPARATOR, TBBS_SEPARATOR, 1); + if(wnd.m_hWnd) + wnd.ShowWindow(SW_HIDE); } - return TRUE; } @@ -133,19 +144,22 @@ enum ToolbarItemIndex { - PLAYCMD_INDEX = 10, // Play / Pause - EDITOCTAVE_INDEX = 13, // Base Octave - SPINOCTAVE_INDEX = EDITOCTAVE_INDEX + 1, // Spin Base Octave - TEMPOTEXT_INDEX = SPINOCTAVE_INDEX + 1, // Static "Tempo:" - EDITTEMPO_INDEX = TEMPOTEXT_INDEX + 1, // Edit Tempo - SPINTEMPO_INDEX = EDITTEMPO_INDEX + 1, // Spin Tempo - SPEEDTEXT_INDEX = SPINTEMPO_INDEX + 1, // Static "Speed:" - EDITSPEED_INDEX = SPEEDTEXT_INDEX + 1, // Edit Speed - SPINSPEED_INDEX = EDITSPEED_INDEX + 1, // Spin Speed - RPBTEXT_INDEX = SPINSPEED_INDEX + 1, // Static "Rows/Beat:" - EDITRPB_INDEX = RPBTEXT_INDEX + 1, // Edit Speed - SPINRPB_INDEX = EDITRPB_INDEX + 1, // Spin Speed - VUMETER_INDEX = SPINRPB_INDEX + 6, // VU Meters + PLAYCMD_INDEX = 10, // Play / Pause + EDITOCTAVE_INDEX = 13, // Base Octave + SPINOCTAVE_INDEX = EDITOCTAVE_INDEX + 1, // Spin Base Octave + TEMPOTEXT_INDEX = SPINOCTAVE_INDEX + 1, // Static "Tempo:" + EDITTEMPO_INDEX = TEMPOTEXT_INDEX + 1, // Edit Tempo + SPINTEMPO_INDEX = EDITTEMPO_INDEX + 1, // Spin Tempo + SPEEDTEXT_INDEX = SPINTEMPO_INDEX + 1, // Static "Speed:" + EDITSPEED_INDEX = SPEEDTEXT_INDEX + 1, // Edit Speed + SPINSPEED_INDEX = EDITSPEED_INDEX + 1, // Spin Speed + RPBTEXT_INDEX = SPINSPEED_INDEX + 1, // Static "Rows/Beat:" + EDITRPB_INDEX = RPBTEXT_INDEX + 1, // Edit Speed + SPINRPB_INDEX = EDITRPB_INDEX + 1, // Spin Speed + GLOBALVOLTEXT_INDEX = SPINRPB_INDEX + 1, // Static "Rows/Beat:" + EDITGLOBALVOL_INDEX = GLOBALVOLTEXT_INDEX + 1, // Edit Speed + SPINGLOBALVOL_INDEX = EDITGLOBALVOL_INDEX + 1, // Spin Speed + VUMETER_INDEX = SPINGLOBALVOL_INDEX + 6, // VU Meters }; #define TOOLBAR_IMAGE_PAUSE 8 @@ -186,6 +200,9 @@ ID_SEPARATOR, // Rows Per Beat ID_SEPARATOR, ID_SEPARATOR, + ID_SEPARATOR, // Global Volume + ID_SEPARATOR, + ID_SEPARATOR, ID_SEPARATOR, ID_VIEW_OPTIONS, ID_PANIC, @@ -240,6 +257,10 @@ m_StaticRowsPerBeat.Create(_T("Rows/Beat:"), WS_CHILD | SS_CENTER | SS_CENTERIMAGE, rect, this, IDC_TEXT_RPB); m_EditRowsPerBeat.Create(WS_CHILD | WS_BORDER | ES_READONLY | ES_AUTOHSCROLL | ES_NUMBER, rect, this, IDC_EDIT_RPB); m_SpinRowsPerBeat.Create(WS_CHILD | UDS_ALIGNRIGHT | UDS_AUTOBUDDY, rect, this, IDC_SPIN_RPB); + // Global Volume + m_StaticGlobalVolume.Create(_T("Global Volume:"), WS_CHILD | SS_CENTER | SS_CENTERIMAGE, rect, this, IDC_TEXT_GLOBALVOL); + m_EditGlobalVolume.Create(WS_CHILD | WS_BORDER | ES_READONLY | ES_AUTOHSCROLL | ES_NUMBER, rect, this, IDC_EDIT_GLOBALVOL); + m_SpinGlobalVolume.Create(WS_CHILD | UDS_ALIGNRIGHT | UDS_AUTOBUDDY, rect, this, IDC_SPIN_GLOBALVOL); // VU Meter rect.SetRect(0, 0, VUMETER_WIDTH, VUMETER_HEIGHT); @@ -255,6 +276,8 @@ m_SpinSpeed.SetPos(0); m_SpinRowsPerBeat.SetRange(-1, 1); m_SpinRowsPerBeat.SetPos(0); + m_SpinGlobalVolume.SetRange(-1, 1); + m_SpinGlobalVolume.SetPos(0); // Display everything SetWindowText(_T("Main")); @@ -272,14 +295,18 @@ { auto result = Default(); UpdateSizes(); + RefreshToolbar(); + return result; +} + +void CMainToolBar::RefreshToolbar() +{ if(m_bVertical) SetVertical(); else SetHorizontal(); - - CMainFrame::GetMainFrame()->RecalcLayout(); // Update bar height - return result; + CMainFrame::GetMainFrame()->RecalcLayout(); // Update bar height (in case of DPI change) } @@ -300,13 +327,15 @@ }; const TextWndInfo TextWnds[] = { - {m_EditOctave, _T("Octave 9"), EDITOCTAVE_INDEX, IDC_EDIT_BASEOCTAVE}, - {m_StaticTempo, _T("Tempo"), TEMPOTEXT_INDEX, IDC_TEXT_CURRENTTEMPO}, - {m_EditTempo, _T("999.9999"), EDITTEMPO_INDEX, IDC_EDIT_CURRENTTEMPO}, - {m_StaticSpeed, _T("Ticks/Row:"), SPEEDTEXT_INDEX, IDC_TEXT_CURRENTSPEED}, - {m_EditSpeed, _T("999"), EDITSPEED_INDEX, IDC_EDIT_CURRENTSPEED}, - {m_StaticRowsPerBeat, _T("Rows/Beat:"), RPBTEXT_INDEX, IDC_TEXT_RPB}, - {m_EditRowsPerBeat, _T("9999"), EDITRPB_INDEX, IDC_EDIT_RPB}, + {m_EditOctave, _T("Octave 9"), EDITOCTAVE_INDEX, IDC_EDIT_BASEOCTAVE }, + {m_StaticTempo, _T("Tempo"), TEMPOTEXT_INDEX, IDC_TEXT_CURRENTTEMPO}, + {m_EditTempo, _T("999.9999"), EDITTEMPO_INDEX, IDC_EDIT_CURRENTTEMPO}, + {m_StaticSpeed, _T("Ticks/Row:"), SPEEDTEXT_INDEX, IDC_TEXT_CURRENTSPEED}, + {m_EditSpeed, _T("999"), EDITSPEED_INDEX, IDC_EDIT_CURRENTSPEED}, + {m_StaticRowsPerBeat, _T("Rows/Beat:"), RPBTEXT_INDEX, IDC_TEXT_RPB }, + {m_EditRowsPerBeat, _T("9999"), EDITRPB_INDEX, IDC_EDIT_RPB }, + {m_StaticGlobalVolume, _T("Global Volume:"), GLOBALVOLTEXT_INDEX, IDC_TEXT_GLOBALVOL }, + {m_EditGlobalVolume, _T("999"), EDITGLOBALVOL_INDEX, IDC_EDIT_GLOBALVOL }, }; auto oldFont = dc->SelectObject(CMainFrame::GetGUIFont()); @@ -318,7 +347,7 @@ const int height = std::max(static_cast<int>(size.cy) + textPaddingY, textMinHeight); // For some reason, DeferWindowPos doesn't work here info.wnd.SendMessage(WM_SETFONT, hFont, FALSE); - info.wnd.SetWindowPos(nullptr, 0, 0, width, height, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE | SWP_NOCOPYBITS); + info.wnd.SetWindowPos(nullptr, 0, 0, width, height, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE); } dc->SelectObject(oldFont); ReleaseDC(dc); @@ -335,10 +364,11 @@ SetButtonStyle(CommandToIndex(ID_MIDI_RECORD), GetButtonStyle(CommandToIndex(ID_MIDI_RECORD)) | TBSTYLE_DROPDOWN); const int spinnerWidth = SPINNER_WIDTH, spinnerHeight = SPINNER_HEIGHT; - m_SpinOctave.SetWindowPos(nullptr, 0, 0, spinnerWidth, spinnerHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE | SWP_NOCOPYBITS); - m_SpinTempo.SetWindowPos(nullptr, 0, 0, spinnerWidth, spinnerHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE | SWP_NOCOPYBITS); - m_SpinSpeed.SetWindowPos(nullptr, 0, 0, spinnerWidth, spinnerHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE | SWP_NOCOPYBITS); - m_SpinRowsPerBeat.SetWindowPos(nullptr, 0, 0, spinnerWidth, spinnerHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE | SWP_NOCOPYBITS); + m_SpinOctave.SetWindowPos(nullptr, 0, 0, spinnerWidth, spinnerHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE); + m_SpinTempo.SetWindowPos(nullptr, 0, 0, spinnerWidth, spinnerHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE); + m_SpinSpeed.SetWindowPos(nullptr, 0, 0, spinnerWidth, spinnerHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE); + m_SpinRowsPerBeat.SetWindowPos(nullptr, 0, 0, spinnerWidth, spinnerHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE); + m_SpinGlobalVolume.SetWindowPos(nullptr, 0, 0, spinnerWidth, spinnerHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE); // VU Meter m_VuMeter.SetWindowPos(nullptr, 0, 0, VUMETER_WIDTH, VUMETER_HEIGHT, SWP_NOMOVE | SWP_NOZORDER); @@ -353,81 +383,58 @@ } -static int GetWndWidth(const CWnd &wnd) -{ - CRect rect; - wnd.GetClientRect(rect); - return rect.right; -} - - void CMainToolBar::SetHorizontal() { CToolBarEx::SetHorizontal(); - m_VuMeter.SetOrientation(true); - SetButtonInfo(EDITOCTAVE_INDEX, IDC_EDIT_BASEOCTAVE, TBBS_SEPARATOR, GetWndWidth(m_EditOctave)); - SetButtonInfo(SPINOCTAVE_INDEX, IDC_SPIN_BASEOCTAVE, TBBS_SEPARATOR, SPINNER_WIDTH); - SetButtonInfo(TEMPOTEXT_INDEX, IDC_TEXT_CURRENTTEMPO, TBBS_SEPARATOR, GetWndWidth(m_StaticTempo)); - SetButtonInfo(EDITTEMPO_INDEX, IDC_EDIT_CURRENTTEMPO, TBBS_SEPARATOR, GetWndWidth(m_EditTempo)); - SetButtonInfo(SPINTEMPO_INDEX, IDC_SPIN_CURRENTTEMPO, TBBS_SEPARATOR, SPINNER_WIDTH); - SetButtonInfo(SPEEDTEXT_INDEX, IDC_TEXT_CURRENTSPEED, TBBS_SEPARATOR, GetWndWidth(m_StaticSpeed)); - SetButtonInfo(EDITSPEED_INDEX, IDC_EDIT_CURRENTSPEED, TBBS_SEPARATOR, GetWndWidth(m_EditSpeed)); - SetButtonInfo(SPINSPEED_INDEX, IDC_SPIN_CURRENTSPEED, TBBS_SEPARATOR, SPINNER_WIDTH); - SetButtonInfo(RPBTEXT_INDEX, IDC_TEXT_RPB, TBBS_SEPARATOR, GetWndWidth(m_StaticRowsPerBeat)); - SetButtonInfo(EDITRPB_INDEX, IDC_EDIT_RPB, TBBS_SEPARATOR, GetWndWidth(m_EditRowsPerBeat)); - SetButtonInfo(SPINRPB_INDEX, IDC_SPIN_RPB, TBBS_SEPARATOR, SPINNER_WIDTH); - SetButtonInfo(VUMETER_INDEX, IDC_VUMETER, TBBS_SEPARATOR, VUMETER_WIDTH); - - // Octave Box - EnableControl(m_EditOctave, EDITOCTAVE_INDEX); - EnableControl(m_SpinOctave, SPINOCTAVE_INDEX); - // Tempo - EnableControl(m_StaticTempo, TEMPOTEXT_INDEX, TEXTFIELD_HEIGHT); - EnableControl(m_EditTempo, EDITTEMPO_INDEX, TEXTFIELD_HEIGHT); - EnableControl(m_SpinTempo, SPINTEMPO_INDEX, SPINNER_HEIGHT); - // Speed - EnableControl(m_StaticSpeed, SPEEDTEXT_INDEX, TEXTFIELD_HEIGHT); - EnableControl(m_EditSpeed, EDITSPEED_INDEX, TEXTFIELD_HEIGHT); - EnableControl(m_SpinSpeed, SPINSPEED_INDEX, SPINNER_HEIGHT); - // Rows per Beat - EnableControl(m_StaticRowsPerBeat, RPBTEXT_INDEX, TEXTFIELD_HEIGHT); - EnableControl(m_EditRowsPerBeat, EDITRPB_INDEX, TEXTFIELD_HEIGHT); - EnableControl(m_SpinRowsPerBeat, SPINRPB_INDEX, SPINNER_HEIGHT); - EnableControl(m_VuMeter, VUMETER_INDEX, VUMETER_HEIGHT); + UpdateControls(); } void CMainToolBar::SetVertical() { CToolBarEx::SetVertical(); - m_VuMeter.SetOrientation(false); - // Change Buttons - SetButtonInfo(EDITOCTAVE_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(SPINOCTAVE_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(TEMPOTEXT_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(EDITTEMPO_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(SPINTEMPO_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(SPEEDTEXT_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(EDITSPEED_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(SPINSPEED_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(RPBTEXT_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(EDITRPB_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(SPINRPB_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); - SetButtonInfo(VUMETER_INDEX, IDC_VUMETER, TBBS_SEPARATOR, VUMETER_HEIGHT); - - // Hide Controls - if(m_EditOctave.m_hWnd) m_EditOctave.ShowWindow(SW_HIDE); - if(m_SpinOctave.m_hWnd) m_SpinOctave.ShowWindow(SW_HIDE); - if(m_StaticTempo.m_hWnd) m_StaticTempo.ShowWindow(SW_HIDE); - if(m_EditTempo.m_hWnd) m_EditTempo.ShowWindow(SW_HIDE); - if(m_SpinTempo.m_hWnd) m_SpinTempo.ShowWindow(SW_HIDE); - if(m_StaticSpeed.m_hWnd) m_StaticSpeed.ShowWindow(SW_HIDE); - if(m_EditSpeed.m_hWnd) m_EditSpeed.ShowWindow(SW_HIDE); - if(m_SpinSpeed.m_hWnd) m_SpinSpeed.ShowWindow(SW_HIDE); - if(m_StaticRowsPerBeat.m_hWnd) m_StaticRowsPerBeat.ShowWindow(SW_HIDE); - if(m_EditRowsPerBeat.m_hWnd) m_EditRowsPerBeat.ShowWindow(SW_HIDE); - if(m_SpinRowsPerBeat.m_hWnd) m_SpinRowsPerBeat.ShowWindow(SW_HIDE); - EnableControl(m_VuMeter, VUMETER_INDEX, VUMETER_HEIGHT); + UpdateControls(); +} + + +void CMainToolBar::UpdateControls() +{ + const FlagSet<MainToolBarItem> visibleItems = TrackerSettings::Instance().mainToolBarVisibleItems.Get(); + + UpdateControl(visibleItems[MainToolBarItem::Octave], m_EditOctave, EDITOCTAVE_INDEX, IDC_EDIT_BASEOCTAVE); + UpdateControl(visibleItems[MainToolBarItem::Octave], m_SpinOctave, SPINOCTAVE_INDEX, IDC_SPIN_BASEOCTAVE); + + UpdateControl(visibleItems[MainToolBarItem::Tempo], m_StaticTempo, TEMPOTEXT_INDEX, IDC_TEXT_CURRENTTEMPO); + UpdateControl(visibleItems[MainToolBarItem::Tempo], m_EditTempo, EDITTEMPO_INDEX, IDC_EDIT_CURRENTTEMPO); + UpdateControl(visibleItems[MainToolBarItem::Tempo], m_SpinTempo, SPINTEMPO_INDEX, IDC_SPIN_CURRENTTEMPO); + + UpdateControl(visibleItems[MainToolBarItem::Speed], m_StaticSpeed, SPEEDTEXT_INDEX, IDC_TEXT_CURRENTSPEED); + UpdateControl(visibleItems[MainToolBarItem::Speed], m_EditSpeed, EDITSPEED_INDEX, IDC_EDIT_CURRENTSPEED); + UpdateControl(visibleItems[MainToolBarItem::Speed], m_SpinSpeed, SPINSPEED_INDEX, IDC_SPIN_CURRENTSPEED); + + UpdateControl(visibleItems[MainToolBarItem::RowsPerBeat], m_StaticRowsPerBeat, RPBTEXT_INDEX, IDC_TEXT_RPB); + UpdateControl(visibleItems[MainToolBarItem::RowsPerBeat], m_EditRowsPerBeat, EDITRPB_INDEX, IDC_EDIT_RPB); + UpdateControl(visibleItems[MainToolBarItem::RowsPerBeat], m_SpinRowsPerBeat, SPINRPB_INDEX, IDC_SPIN_RPB); + + UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_StaticGlobalVolume, GLOBALVOLTEXT_INDEX, IDC_TEXT_GLOBALVOL); + UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_EditGlobalVolume, EDITGLOBALVOL_INDEX, IDC_EDIT_GLOBALVOL); + UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_SpinGlobalVolume, SPINGLOBALVOL_INDEX, IDC_SPIN_GLOBALVOL); + + m_VuMeter.SetOrientation(!m_bVertical); + if(m_bVertical) + m_VuMeter.SetWindowPos(nullptr, 0, 0, VUMETER_HEIGHT, VUMETER_HEIGHT, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); + else + m_VuMeter.SetWindowPos(nullptr, 0, 0, VUMETER_WIDTH, VUMETER_HEIGHT, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); + UpdateControl(visibleItems[MainToolBarItem::VUMeter], m_VuMeter, VUMETER_INDEX, IDC_VUMETER, VUMETER_HEIGHT); +} + + +void CMainToolBar::ToggleVisibility(MainToolBarItem item) +{ + FlagSet<MainToolBarItem> visibleItems = TrackerSettings::Instance().mainToolBarVisibleItems.Get(); + visibleItems.flip(item); + TrackerSettings::Instance().mainToolBarVisibleItems = visibleItems.value().as_enum(); + RefreshToolbar(); } @@ -457,10 +464,7 @@ bool CMainToolBar::ShowUpdateInfo(const CString &newVersion, const CString &infoURL, bool showHighLight) { GetToolBarCtrl().SetState(ID_UPDATE_AVAILABLE, TBSTATE_ENABLED); - if(m_bVertical) - SetVertical(); - else - SetHorizontal(); + RefreshToolbar(); // Trying to show the tooltip while the window is minimized hangs the application during TTM_TRACKACTIVATE. if(!showHighLight || CMainFrame::GetMainFrame()->IsIconic()) @@ -530,11 +534,21 @@ int nRowsPerBeat = pSndFile->m_PlayState.m_nCurrentRowsPerBeat; if(nRowsPerBeat != nCurrentRowsPerBeat) { - if(nCurrentRowsPerBeat < 0) m_SpinRowsPerBeat.EnableWindow(TRUE); + if(nCurrentRowsPerBeat < 0) + m_SpinRowsPerBeat.EnableWindow(TRUE); nCurrentRowsPerBeat = nRowsPerBeat; wsprintf(s, _T("%u"), static_cast<unsigned int>(nCurrentRowsPerBeat)); m_EditRowsPerBeat.SetWindowText(s); } + int globalVol = pSndFile->m_PlayState.m_nGlobalVolume; + if(globalVol != m_currentGlobalVolume) + { + if(m_currentGlobalVolume < 0) + m_SpinGlobalVolume.EnableWindow(TRUE); + m_currentGlobalVolume = globalVol; + wsprintf(s, _T("%u"), static_cast<unsigned int>(Util::muldivr(m_currentGlobalVolume, pSndFile->GlobalVolumeRange(), MAX_GLOBAL_VOLUME))); + m_EditGlobalVolume.SetWindowText(s); + } } else { if(nCurrentTempo > TEMPO(0, 0)) @@ -556,6 +570,12 @@ m_EditRowsPerBeat.SetWindowText(_T("---")); m_SpinRowsPerBeat.EnableWindow(FALSE); } + if(m_currentGlobalVolume != -1) + { + m_currentGlobalVolume = -1; + m_EditGlobalVolume.SetWindowText(_T("---")); + m_SpinGlobalVolume.EnableWindow(FALSE); + } } return TRUE; } @@ -621,6 +641,12 @@ // Update pattern editor pMainFrm->PostMessage(WM_MOD_INVALIDATEPATTERNS, HINT_MPTOPTIONS); } + if((n = m_SpinGlobalVolume.GetPos32()) != 0) + { + n = Util::muldiv(n, MAX_GLOBAL_VOLUME, pSndFile->GlobalVolumeRange()); + pSndFile->m_PlayState.m_nGlobalVolume = Clamp(pSndFile->m_PlayState.m_nGlobalVolume + n, 0, int(MAX_GLOBAL_VOLUME)); + m_SpinGlobalVolume.SetPos(0); + } SetCurrentSong(pSndFile); } Modified: trunk/OpenMPT/mptrack/Mainbar.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.h Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/mptrack/Mainbar.h Sat Nov 9 23:57:41 2024 (r22127) @@ -18,6 +18,8 @@ OPENMPT_NAMESPACE_BEGIN +enum class MainToolBarItem : uint8; + class CStereoVU: public CStatic { protected: @@ -63,7 +65,7 @@ ~CToolBarEx() override {} public: - BOOL EnableControl(CWnd &wnd, UINT nIndex, UINT nHeight=0); + void UpdateControl(bool show, CWnd &wnd, int index, int id, int height = 0); void ChangeCtrlStyle(LONG lStyle, BOOL bSetStyle); void EnableFlatButtons(BOOL bFlat); @@ -81,10 +83,10 @@ protected: UpdateToolTip m_tooltip; CImageListEx m_ImageList, m_ImageListDisabled; - CEdit m_EditTempo, m_EditSpeed, m_EditOctave, m_EditRowsPerBeat; - CStatic m_StaticTempo, m_StaticSpeed, m_StaticRowsPerBeat; - CSpinButtonCtrl m_SpinTempo, m_SpinSpeed, m_SpinOctave, m_SpinRowsPerBeat; - int nCurrentSpeed = 0, nCurrentOctave = 0, nCurrentRowsPerBeat = 0; + CEdit m_EditTempo, m_EditSpeed, m_EditOctave, m_EditRowsPerBeat, m_EditGlobalVolume; + CStatic m_StaticTempo, m_StaticSpeed, m_StaticRowsPerBeat, m_StaticGlobalVolume; + CSpinButtonCtrl m_SpinTempo, m_SpinSpeed, m_SpinOctave, m_SpinRowsPerBeat, m_SpinGlobalVolume; + int nCurrentSpeed = 0, nCurrentOctave = 0, nCurrentRowsPerBeat = 0, m_currentGlobalVolume = 0; TEMPO nCurrentTempo; public: CStereoVU m_VuMeter; @@ -118,8 +120,12 @@ bool ShowUpdateInfo(const CString &newVersion, const CString &infoURL, bool showHighLight); void RemoveUpdateInfo(); + void ToggleVisibility(MainToolBarItem item); + protected: + void RefreshToolbar(); void UpdateSizes(); + void UpdateControls(); //{{AFX_MSG(CMainToolBar) afx_msg LRESULT OnDPIChangedAfterParent(WPARAM, LPARAM); Modified: trunk/OpenMPT/mptrack/Mainfrm.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/mptrack/Mainfrm.h Sat Nov 9 23:57:41 2024 (r22127) @@ -444,6 +444,13 @@ afx_msg BOOL OnQueryEndSession(); afx_msg void OnActivateApp(BOOL active, DWORD threadID); + afx_msg void OnToggleMainBarShowOctave(); + afx_msg void OnToggleMainBarShowTempo(); + afx_msg void OnToggleMainBarShowSpeed(); + afx_msg void OnToggleMainBarShowRowsPerBeat(); + afx_msg void OnToggleMainBarShowGlobalVolume(); + afx_msg void OnToggleMainBarShowVUMeter(); + afx_msg void OnCreateMixerDump(); afx_msg void OnVerifyMixerDump(); afx_msg void OnConvertMixerDumpToText(); Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp ============================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp Sat Nov 9 23:57:41 2024 (r22127) @@ -201,6 +201,7 @@ , useOldStyleFolderBrowser(conf, UL_("Display"), UL_("UseOldStyleFolderBrowser"), false) , defaultRainbowChannelColors(conf, UL_("Display"), UL_("DefaultChannelColors"), DefaultChannelColors::Random) , commentsFont(conf, UL_("Display"), UL_("Comments Font"), FontSetting(UL_("Courier New"), 120)) + , mainToolBarVisibleItems(conf, UL_("Display"), UL_("MainToolBarVisibleItems"), MainToolBarItem::Default) // Misc , defaultModType(conf, UL_("Misc"), UL_("DefaultModType"), MOD_TYPE_IT) , defaultNewFileAction(conf, UL_("Misc"), UL_("DefaultNewFileAction"), nfDefaultFormat) Modified: trunk/OpenMPT/mptrack/TrackerSettings.h ============================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/mptrack/TrackerSettings.h Sat Nov 9 23:57:41 2024 (r22127) @@ -361,6 +361,22 @@ template<> inline SettingValue ToSettingValue(const NewFileAction &val) { return SettingValue(int32(val)); } template<> inline NewFileAction FromSettingValue(const SettingValue &val) { return NewFileAction(val.as<int32>()); } +enum class MainToolBarItem : uint8 +{ + Octave = 0x01, + Tempo = 0x02, + Speed = 0x04, + RowsPerBeat = 0x08, + GlobalVolume = 0x10, + VUMeter = 0x20, + + Default = Octave | Tempo | Speed | GlobalVolume | VUMeter +}; +DECLARE_FLAGSET(MainToolBarItem) + +template<> inline SettingValue ToSettingValue(const MainToolBarItem &val) { return SettingValue(static_cast<int32>(val)); } +template<> inline MainToolBarItem FromSettingValue(const SettingValue &val) { return static_cast<MainToolBarItem>(val.as<int32>()); } + template<> inline SettingValue ToSettingValue(const std::bitset<128> &val) { return SettingValue(IgnoredCCsToString(val), "IgnoredCCs"); @@ -699,6 +715,8 @@ Setting<FontSetting> commentsFont; + Setting<MainToolBarItem> mainToolBarVisibleItems; + // Misc Setting<MODTYPE> defaultModType; Modified: trunk/OpenMPT/mptrack/resource.h ============================================================================== --- trunk/OpenMPT/mptrack/resource.h Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/mptrack/resource.h Sat Nov 9 23:57:41 2024 (r22127) @@ -763,6 +763,7 @@ #define IDC_EDIT_MISC_ACTIONS 2284 #define IDC_TREE_TUNING 2292 #define IDC_PATTERN_FOLLOWSONG 2293 +#define IDC_TEXT_GLOBALVOL 2299 #define IDC_TEXT_BPM 2300 #define IDC_TEXT_RPB 2301 #define IDC_SPIN_RPB 2302 @@ -1173,6 +1174,12 @@ #define ID_ADDTUNINGGENERAL 36034 #define ID_ADDTUNINGGROUPGEOMETRIC 36035 #define ID_ADDTUNINGGEOMETRIC 36036 +#define ID_MAINBAR_SHOW_OCTAVE 36037 +#define ID_MAINBAR_SHOW_TEMPO 36038 +#define ID_MAINBAR_SHOW_SPEED 36039 +#define ID_MAINBAR_SHOW_ROWSPERBEAT 36040 +#define ID_MAINBAR_SHOW_GLOBALVOLUME 36041 +#define ID_MAINBAR_SHOW_VUMETER 36042 #define ID_SELECTINST 36100 // From here: Command range [ID_SELECTINST, ID_SELECTINST + MAX_INSTRUMENTS] #define ID_PLUG_RECORDAUTOMATION 37003 Modified: trunk/OpenMPT/soundlib/Sndfile.h ============================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h Sat Nov 9 22:21:32 2024 (r22126) +++ trunk/OpenMPT/soundlib/Sndfile.h Sat Nov 9 23:57:41 2024 (r22127) @@ -1169,6 +1169,11 @@ return UseCombinedPortamentoCommands(GetType()); } + uint32 GlobalVolumeRange() const noexcept + { + return !(GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT | MOD_TYPE_IMF | MOD_TYPE_J2B | MOD_TYPE_MID | MOD_TYPE_AMS | MOD_TYPE_DBM | MOD_TYPE_PTM | MOD_TYPE_MDL | MOD_TYPE_DTM)) ? 64 : 128; + } + bool DestroySample(SAMPLEINDEX nSample); bool DestroySampleThreadsafe(SAMPLEINDEX nSample); |
From: <sv...@op...> - 2024-11-09 21:21:48
|
Author: sagamusix Date: Sat Nov 9 22:21:32 2024 New Revision: 22126 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22126 Log: [Fix] Fix completely broken vertical VU meter redraw logic in main toolbar. Modified: trunk/OpenMPT/mptrack/Mainbar.cpp Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Sat Nov 9 22:00:11 2024 (r22125) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Sat Nov 9 22:21:32 2024 (r22126) @@ -1526,17 +1526,17 @@ const int cy = std::max(1, rect.Height()); int v = (vu * cy) >> 8; - for(int ry = rect.bottom - 1; ry > rect.top; ry -= 2) + for(int ry = rect.bottom - 1; ry >= rect.top; ry -= 2) { const int y0 = rect.bottom - ry; int pen = Clamp((y0 * NUM_VUMETER_PENS) / cy, 0, NUM_VUMETER_PENS - 1); - const bool last = (ry == rect.top + 1); + const bool last = (ry <= rect.top + 1); // Darken everything above volume, unless it's the clip indicator if(v <= y0 && (!last || !clip)) pen += NUM_VUMETER_PENS; - bool draw = redraw || (v < lastV[index] && v<=ry && ry<=lastV[index]) || (lastV[index] < v && lastV[index]<=ry && ry<=v); + bool draw = redraw || (v < lastV[index] && v<=y0 && y0<=lastV[index]) || (lastV[index] < v && lastV[index]<=y0 && y0<=v); draw = draw || (last && clip != lastClip[index]); if(draw) dc.FillSolidRect(rect.left, ry, rect.Width(), 1, CMainFrame::gcolrefVuMeter[pen]); if(last) lastClip[index] = clip; |
From: <sv...@op...> - 2024-11-09 21:00:23
|
Author: sagamusix Date: Sat Nov 9 22:00:11 2024 New Revision: 22125 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22125 Log: [Fix] Fix more ambiguous calls. Modified: trunk/OpenMPT/mptrack/HighDPISupport.cpp Modified: trunk/OpenMPT/mptrack/HighDPISupport.cpp ============================================================================== --- trunk/OpenMPT/mptrack/HighDPISupport.cpp Sat Nov 9 20:40:34 2024 (r22124) +++ trunk/OpenMPT/mptrack/HighDPISupport.cpp Sat Nov 9 22:00:11 2024 (r22125) @@ -124,7 +124,7 @@ int HighDPISupport::GetSystemMetrics(int index, HWND hwnd) { if(auto instance = GetHighDPISupportData(); instance->m_GetSystemMetricsForDpi) - return instance->m_GetSystemMetricsForDpi(index, GetDpiForWindow(hwnd)); + return instance->m_GetSystemMetricsForDpi(index, HighDPISupport::GetDpiForWindow(hwnd)); else return ::GetSystemMetrics(index); } @@ -142,7 +142,7 @@ BOOL HighDPISupport::SystemParametersInfo(UINT uiAction, UINT uiParam, void *pvParam, UINT fWinIni, HWND hwnd) { if(auto instance = GetHighDPISupportData(); instance->m_SystemParametersInfoForDpi) - return instance->m_SystemParametersInfoForDpi(uiAction, uiParam, pvParam, fWinIni, GetDpiForWindow(hwnd)); + return instance->m_SystemParametersInfoForDpi(uiAction, uiParam, pvParam, fWinIni, HighDPISupport::GetDpiForWindow(hwnd)); else return ::SystemParametersInfo(uiAction, uiParam, pvParam, fWinIni); } |
From: <sv...@op...> - 2024-11-09 19:41:18
|
Author: sagamusix Date: Sat Nov 9 20:40:34 2024 New Revision: 22124 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22124 Log: [Fix] Fix ambiguous call when recent enough Windows SDK is used. Modified: trunk/OpenMPT/mptrack/HighDPISupport.h Modified: trunk/OpenMPT/mptrack/HighDPISupport.h ============================================================================== --- trunk/OpenMPT/mptrack/HighDPISupport.h Sat Nov 9 19:58:49 2024 (r22123) +++ trunk/OpenMPT/mptrack/HighDPISupport.h Sat Nov 9 20:40:34 2024 (r22124) @@ -44,13 +44,13 @@ // Applies DPI scaling factor to some given size MPT_FORCEINLINE int ScalePixels(int pixels, HWND hwnd) { - return MulDiv(pixels, GetDpiForWindow(hwnd), 96); + return MulDiv(pixels, HighDPISupport::GetDpiForWindow(hwnd), 96); } // Removes DPI scaling factor from some given size MPT_FORCEINLINE int ScalePixelsInv(int pixels, HWND hwnd) { - return MulDiv(pixels, 96, GetDpiForWindow(hwnd)); + return MulDiv(pixels, 96, HighDPISupport::GetDpiForWindow(hwnd)); } }; |
From: <sv...@op...> - 2024-11-09 18:58:56
|
Author: sagamusix Date: Sat Nov 9 19:58:49 2024 New Revision: 22123 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22123 Log: [Fix] Properly scale treeview padding. Modified: trunk/OpenMPT/mptrack/Mainbar.cpp Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Sat Nov 9 19:18:08 2024 (r22122) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Sat Nov 9 19:58:49 2024 (r22123) @@ -157,6 +157,7 @@ #define SPINNER_HEIGHT SCALEPIXELS(20) #define VUMETER_WIDTH SCALEPIXELS(255) #define VUMETER_HEIGHT SCALEPIXELS(19) +#define TREEVIEW_PADDING SCALEPIXELS(3) static UINT MainButtons[] = { @@ -813,7 +814,7 @@ m_pModTree = new CModTree(m_pModTreeData); m_pModTree->SubclassDlgItem(IDC_TREEVIEW, this); m_dwStatus = 0; - m_sizeDefault.cx = HighDPISupport::ScalePixels(TrackerSettings::Instance().glTreeWindowWidth, m_hWnd) + 3; + m_sizeDefault.cx = HighDPISupport::ScalePixels(TrackerSettings::Instance().glTreeWindowWidth, m_hWnd) + TREEVIEW_PADDING; m_sizeDefault.cy = 32767; return l; } @@ -914,7 +915,8 @@ int cytree, cydata, cyavail; GetClientRect(&rect); - cyavail = rect.Height() - 3; + const int padding = TREEVIEW_PADDING; + cyavail = rect.Height() - padding; if(cyavail < 0) cyavail = 0; cytree = (cyavail * m_nTreeSplitRatio) >> 8; cydata = cyavail - cytree; @@ -923,18 +925,18 @@ { int editHeight = HighDPISupport::ScalePixels(20, m_hWnd); ::DeferWindowPos(dwp, *m_pModTree, nullptr, 0, 0, rect.Width(), cytree - editHeight, SWP_NOZORDER | SWP_NOACTIVATE); - ::DeferWindowPos(dwp, *m_pModTreeData, nullptr, 0, cytree + 3, rect.Width(), cydata, SWP_NOZORDER | SWP_NOACTIVATE); + ::DeferWindowPos(dwp, *m_pModTreeData, nullptr, 0, cytree + padding, rect.Width(), cydata, SWP_NOZORDER | SWP_NOACTIVATE); ::DeferWindowPos(dwp, m_filterEdit, *m_pModTree, 0, cytree - editHeight, rect.Width(), editHeight, SWP_NOACTIVATE); } else if(m_filterSource == m_pModTreeData) { int editHeight = HighDPISupport::ScalePixels(20, m_hWnd); ::DeferWindowPos(dwp, *m_pModTree, nullptr, 0, 0, rect.Width(), cytree, SWP_NOZORDER | SWP_NOACTIVATE); - ::DeferWindowPos(dwp, *m_pModTreeData, nullptr, 0, cytree + 3, rect.Width(), cydata - editHeight, SWP_NOZORDER | SWP_NOACTIVATE); - ::DeferWindowPos(dwp, m_filterEdit, *m_pModTreeData, 0, cytree + 3 + cydata - editHeight, rect.Width(), editHeight, SWP_NOACTIVATE); + ::DeferWindowPos(dwp, *m_pModTreeData, nullptr, 0, cytree + padding, rect.Width(), cydata - editHeight, SWP_NOZORDER | SWP_NOACTIVATE); + ::DeferWindowPos(dwp, m_filterEdit, *m_pModTreeData, 0, cytree + padding + cydata - editHeight, rect.Width(), editHeight, SWP_NOACTIVATE); } else { ::DeferWindowPos(dwp, *m_pModTree, nullptr, 0, 0, rect.Width(), cytree, SWP_NOZORDER | SWP_NOACTIVATE); - ::DeferWindowPos(dwp, *m_pModTreeData, nullptr, 0, cytree + 3, rect.Width(), cydata, SWP_NOZORDER | SWP_NOACTIVATE); + ::DeferWindowPos(dwp, *m_pModTreeData, nullptr, 0, cytree + padding, rect.Width(), cydata, SWP_NOZORDER | SWP_NOACTIVATE); } ::EndDeferWindowPos(dwp); } @@ -947,7 +949,7 @@ CSize sz; m_sizeDefault.cx = width; m_sizeDefault.cy = 32767; - sz.cx = width + 3; + sz.cx = width + TREEVIEW_PADDING; if(sz.cx < 4) sz.cx = 4; sz.cy = 32767; return sz; @@ -984,7 +986,7 @@ } } else { - pt.x -= ptDragging.x - m_cxOriginal + 3; + pt.x -= ptDragging.x - m_cxOriginal + TREEVIEW_PADDING; if(pt.x < 0) pt.x = 0; if((!(m_dwStatus & MTB_TRACKER)) || (pt.x != (int)m_nTrackPos)) { @@ -1073,10 +1075,11 @@ OnInvertTracker(m_nTrackPos); m_dwStatus &= ~MTB_TRACKER; } + const int padding = TREEVIEW_PADDING; if(m_dwStatus & MTB_VERTICAL) { GetClientRect(&rect); - int cyavail = rect.Height() - 3; + int cyavail = rect.Height() - padding; if(cyavail < 4) cyavail = 4; int ratio = (m_nTrackPos << 8) / cyavail; if(ratio < 0) ratio = 0; @@ -1087,12 +1090,12 @@ } else { GetWindowRect(&rect); - m_nTrackPos += 3; + m_nTrackPos += padding; if(m_nTrackPos < 4) m_nTrackPos = 4; CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); if((m_nTrackPos != (UINT)rect.Width()) && (pMainFrm)) { - TrackerSettings::Instance().glTreeWindowWidth = HighDPISupport::ScalePixelsInv(m_nTrackPos - 3, m_hWnd); + TrackerSettings::Instance().glTreeWindowWidth = HighDPISupport::ScalePixelsInv(m_nTrackPos - padding, m_hWnd); m_sizeDefault.cx = m_nTrackPos; m_sizeDefault.cy = 32767; pMainFrm->RecalcLayout(); @@ -1186,7 +1189,7 @@ CDialogBar::OnNcCalcSize(bCalcValidRects, lpncsp); if(lpncsp) { - lpncsp->rgrc[0].right -= 3; + lpncsp->rgrc[0].right -= TREEVIEW_PADDING; if(lpncsp->rgrc[0].right < lpncsp->rgrc[0].left) lpncsp->rgrc[0].right = lpncsp->rgrc[0].left; } } @@ -1198,7 +1201,7 @@ GetWindowRect(&rect); rect.DeflateRect(1,1); - rect.right -= 3; + rect.right -= TREEVIEW_PADDING; if(!rect.PtInRect(point)) return HTBORDER; return CDialogBar::OnNcHitTest(point); } @@ -1214,7 +1217,7 @@ rect.right -= rect.left; rect.bottom -= rect.top; rect.top = 0; - rect.left = rect.right - 3; + rect.left = rect.right - TREEVIEW_PADDING; if((rect.left < rect.right) && (rect.top < rect.bottom)) { CDC *pDC = GetWindowDC(); |
Author: sagamusix Date: Sat Nov 9 19:18:08 2024 New Revision: 22122 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22122 Log: [Imp] Greatly improve mixed-DPI and high-DPI support: [Imp] Per-monitor DPI-aware V2 mode now actually works properly (as we retrieve the DPI-dependent data for each window individually), icons and controls are resized when moving the OpenMPT window to a screen with different DPI. Existing WM_DPICHANGED implementation didn't actually do anything, because this message is only called on top-level windows. [Imp] Resizable dialogs work after a DPI change (MFC's implementation of CMFCDynamicLayout is inherently incapable of DPI changes, so we roll our own). [Imp] Moving top-level windows that are not parented in the MDI area to a different screen also lets them use correct font measurements for their screen now. For some windows, icon sizes will still be wrong (e.g. plugin selection dialog: Icon size depends on main window's DPI). [Mod] OpenMPT: Version is now 1.32.00.33 Added: trunk/OpenMPT/mptrack/HighDPISupport.cpp - copied, changed from r22121, trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/HighDPISupport.h (contents, props changed) Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj.filters trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj.filters trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj.filters trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/mptrack/AboutDialog.cpp trunk/OpenMPT/mptrack/CImageListEx.cpp trunk/OpenMPT/mptrack/CListCtrl.h trunk/OpenMPT/mptrack/ChannelManagerDlg.cpp trunk/OpenMPT/mptrack/ChannelManagerDlg.h trunk/OpenMPT/mptrack/Childfrm.cpp trunk/OpenMPT/mptrack/Childfrm.h trunk/OpenMPT/mptrack/ColorConfigDlg.cpp trunk/OpenMPT/mptrack/ColorPickerButton.cpp trunk/OpenMPT/mptrack/Ctrl_com.cpp trunk/OpenMPT/mptrack/Ctrl_com.h trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/Ctrl_ins.h trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Ctrl_pat.h trunk/OpenMPT/mptrack/Ctrl_seq.cpp trunk/OpenMPT/mptrack/Ctrl_smp.cpp trunk/OpenMPT/mptrack/Ctrl_smp.h trunk/OpenMPT/mptrack/DefaultVstEditor.cpp trunk/OpenMPT/mptrack/DialogBase.cpp trunk/OpenMPT/mptrack/DialogBase.h trunk/OpenMPT/mptrack/Draw_pat.cpp trunk/OpenMPT/mptrack/EffectVis.cpp trunk/OpenMPT/mptrack/ExternalSamples.cpp trunk/OpenMPT/mptrack/Globals.cpp trunk/OpenMPT/mptrack/Globals.h trunk/OpenMPT/mptrack/IPCWindow.cpp trunk/OpenMPT/mptrack/Image.cpp trunk/OpenMPT/mptrack/MIDIMacroDialog.cpp trunk/OpenMPT/mptrack/MPTrackUtil.cpp trunk/OpenMPT/mptrack/MPTrackUtil.h trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/mptrack/Mainbar.h trunk/OpenMPT/mptrack/Mainfrm.h trunk/OpenMPT/mptrack/Modedit.cpp trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/Mptrack.h trunk/OpenMPT/mptrack/PatternFont.cpp trunk/OpenMPT/mptrack/ResizableDialog.cpp trunk/OpenMPT/mptrack/ResizableDialog.h trunk/OpenMPT/mptrack/SampleEditorDialogs.cpp trunk/OpenMPT/mptrack/SampleEditorDialogs.h trunk/OpenMPT/mptrack/SelectPluginDialog.cpp trunk/OpenMPT/mptrack/SelectPluginDialog.h trunk/OpenMPT/mptrack/TempoSwingDialog.cpp trunk/OpenMPT/mptrack/UpdateToolTip.cpp trunk/OpenMPT/mptrack/View_ins.cpp trunk/OpenMPT/mptrack/View_ins.h trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/View_pat.h trunk/OpenMPT/mptrack/View_smp.cpp trunk/OpenMPT/mptrack/View_smp.h trunk/OpenMPT/mptrack/View_tre.cpp trunk/OpenMPT/mptrack/View_tre.h trunk/OpenMPT/mptrack/dlg_misc.cpp trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/tuningRatioMapWnd.cpp trunk/OpenMPT/mptrack/tuningRatioMapWnd.h trunk/OpenMPT/mptrack/view_com.cpp trunk/OpenMPT/mptrack/view_com.h Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -826,6 +826,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1268,6 +1269,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -441,6 +441,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1763,6 +1766,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -826,6 +826,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1268,6 +1269,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -441,6 +441,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1763,6 +1766,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -826,6 +826,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1268,6 +1269,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxp/OpenMPT.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -441,6 +441,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1763,6 +1766,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -826,6 +826,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1268,6 +1269,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -441,6 +441,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1763,6 +1766,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -826,6 +826,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1268,6 +1269,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -441,6 +441,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1763,6 +1766,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -826,6 +826,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1268,6 +1269,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2017winxpansi/OpenMPT.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -441,6 +441,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1763,6 +1766,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -845,6 +845,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1287,6 +1288,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -845,6 +845,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1287,6 +1288,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -845,6 +845,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1287,6 +1288,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2019win7/OpenMPT.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -2047,6 +2047,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -2489,6 +2490,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -2047,6 +2047,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -2489,6 +2490,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -2047,6 +2047,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -2489,6 +2490,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10/OpenMPT.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -1615,6 +1615,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -2057,6 +2058,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -441,6 +441,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1763,6 +1766,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -1615,6 +1615,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -2057,6 +2058,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -441,6 +441,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1763,6 +1766,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -1615,6 +1615,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -2057,6 +2058,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win10clang/OpenMPT.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -441,6 +441,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1763,6 +1766,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -865,6 +865,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1307,6 +1308,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win7/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -865,6 +865,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1307,6 +1308,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win7/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -865,6 +865,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1307,6 +1308,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win7/OpenMPT.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -1253,6 +1253,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1695,6 +1696,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win8/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -1253,6 +1253,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1695,6 +1696,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win8/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -1253,6 +1253,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1695,6 +1696,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win8/OpenMPT.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -1253,6 +1253,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1695,6 +1696,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win81/OpenMPT-ANSI.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -1253,6 +1253,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1695,6 +1696,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win81/OpenMPT-UTF8.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj ============================================================================== --- trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj Sat Nov 9 19:18:08 2024 (r22122) @@ -1253,6 +1253,7 @@ <ClInclude Include="..\..\mptrack\GeneralConfigDlg.h" /> <ClInclude Include="..\..\mptrack\Globals.h" /> <ClInclude Include="..\..\mptrack\HTTP.h" /> + <ClInclude Include="..\..\mptrack\HighDPISupport.h" /> <ClInclude Include="..\..\mptrack\IPCWindow.h" /> <ClInclude Include="..\..\mptrack\Image.h" /> <ClInclude Include="..\..\mptrack\ImageLists.h" /> @@ -1695,6 +1696,7 @@ <ClCompile Include="..\..\mptrack\GeneralConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\Globals.cpp" /> <ClCompile Include="..\..\mptrack\HTTP.cpp" /> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp" /> <ClCompile Include="..\..\mptrack\IPCWindow.cpp" /> <ClCompile Include="..\..\mptrack\Image.cpp" /> <ClCompile Include="..\..\mptrack\InputHandler.cpp" /> Modified: trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj.filters ============================================================================== --- trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj.filters Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/build/vs2022win81/OpenMPT.vcxproj.filters Sat Nov 9 19:18:08 2024 (r22122) @@ -483,6 +483,9 @@ <ClInclude Include="..\..\mptrack\HTTP.h"> <Filter>mptrack</Filter> </ClInclude> + <ClInclude Include="..\..\mptrack\HighDPISupport.h"> + <Filter>mptrack</Filter> + </ClInclude> <ClInclude Include="..\..\mptrack\IPCWindow.h"> <Filter>mptrack</Filter> </ClInclude> @@ -1805,6 +1808,9 @@ <ClCompile Include="..\..\mptrack\HTTP.cpp"> <Filter>mptrack</Filter> </ClCompile> + <ClCompile Include="..\..\mptrack\HighDPISupport.cpp"> + <Filter>mptrack</Filter> + </ClCompile> <ClCompile Include="..\..\mptrack\IPCWindow.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/common/versionNumber.h ============================================================================== --- trunk/OpenMPT/common/versionNumber.h Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/common/versionNumber.h Sat Nov 9 19:18:08 2024 (r22122) @@ -16,4 +16,4 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 32 #define VER_MINOR 00 -#define VER_MINORMINOR 32 +#define VER_MINORMINOR 33 Modified: trunk/OpenMPT/mptrack/AboutDialog.cpp ============================================================================== --- trunk/OpenMPT/mptrack/AboutDialog.cpp Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/mptrack/AboutDialog.cpp Sat Nov 9 19:18:08 2024 (r22122) @@ -10,8 +10,10 @@ #include "stdafx.h" #include "AboutDialog.h" +#include "HighDPISupport.h" #include "Image.h" #include "Mptrack.h" +#include "MPTrackUtil.h" #include "TrackerSettings.h" #include "mpt/format/join.hpp" #include "mpt/string/utility.hpp" @@ -82,8 +84,8 @@ m_lastRipple = now; // Initiate ripples at cursor location - point.x = Util::ScalePixelsInv(point.x, m_hWnd); - point.y = Util::ScalePixelsInv(point.y, m_hWnd); + point.x = HighDPISupport::ScalePixelsInv(point.x, m_hWnd); + point.y = HighDPISupport::ScalePixelsInv(point.y, m_hWnd); Limit(point.x, 1, int(m_bitmapSrc->Width()) - 2); Limit(point.y, 2, int(m_bitmapSrc->Height()) - 3); int32 *p = m_backBuf + point.x + point.y * m_bitmapSrc->Width(); Modified: trunk/OpenMPT/mptrack/CImageListEx.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CImageListEx.cpp Sat Nov 9 17:16:30 2024 (r22121) +++ trunk/OpenMPT/mptrack/CImageListEx.cpp Sat Nov 9 19:18:08 2024 (r22122) @@ -10,6 +10,7 @@ #include "stdafx.h" #include "CImageListEx.h" #include "Image.h" +#include "MPTrackUtil.h" #include "../misc/mptColor.h" #include "Mptrack.h" @@ -72,7 +73,8 @@ bool result; - if(dc == nullptr) dc = CDC::FromHandle(GetDC(NULL)); + if(dc == nullptr) + dc = CDC::FromHandle(GetDC(nullptr)); // Use 1-bit transperency when there is no alpha channel. if(GetDeviceCaps(dc->GetSafeHdc(), BITSPIXEL) * GetDev... [truncated message content] |
From: <sv...@op...> - 2024-11-09 16:16:40
|
Author: sagamusix Date: Sat Nov 9 17:16:30 2024 New Revision: 22121 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22121 Log: Merged revision(s) 22120 from trunk/OpenMPT: [Fix] Avoid GDI font handle leak when changing comments font. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/Ctrl_com.cpp Modified: branches/OpenMPT-1.31/mptrack/Ctrl_com.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/Ctrl_com.cpp Sat Nov 9 17:15:57 2024 (r22120) +++ branches/OpenMPT-1.31/mptrack/Ctrl_com.cpp Sat Nov 9 17:16:30 2024 (r22121) @@ -133,6 +133,7 @@ if(previousFont != font) { previousFont = font; + DeleteFont(CMainFrame::GetCommentsFont()); CMainFrame::GetCommentsFont() = ::CreateFont(fontSize, 0, 0, 0, font.flags[FontSetting::Bold] ? FW_BOLD : FW_NORMAL, font.flags[FontSetting::Italic] ? TRUE :FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, |
From: <sv...@op...> - 2024-11-09 16:16:06
|
Author: sagamusix Date: Sat Nov 9 17:15:57 2024 New Revision: 22120 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22120 Log: [Fix] Avoid GDI font handle leak when changing comments font. Modified: trunk/OpenMPT/mptrack/Ctrl_com.cpp Modified: trunk/OpenMPT/mptrack/Ctrl_com.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_com.cpp Sat Nov 9 14:43:39 2024 (r22119) +++ trunk/OpenMPT/mptrack/Ctrl_com.cpp Sat Nov 9 17:15:57 2024 (r22120) @@ -138,6 +138,7 @@ if(previousFont != font) { previousFont = font; + DeleteFont(CMainFrame::GetCommentsFont()); CMainFrame::GetCommentsFont() = ::CreateFont(fontSize, 0, 0, 0, font.flags[FontSetting::Bold] ? FW_BOLD : FW_NORMAL, font.flags[FontSetting::Italic] ? TRUE :FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, |
From: <sv...@op...> - 2024-11-09 13:43:51
|
Author: sagamusix Date: Sat Nov 9 14:43:39 2024 New Revision: 22119 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22119 Log: [Imp] Instrument tab: Add tooltip when instrument mode is disabled. Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp Fri Nov 8 23:28:31 2024 (r22118) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp Sat Nov 9 14:43:39 2024 (r22119) @@ -1744,13 +1744,20 @@ //Note: pszText points to a TCHAR array of length 256 (see CChildFrame::OnToolTipText). //Note2: If there's problems in getting tooltips showing for certain tools, // setting the tab order may have effect. - ModInstrument *pIns = m_sndFile.Instruments[m_nInstrument]; - - if(pIns == nullptr) return FALSE; if ((pszText) && (uId)) { CWnd *wnd = GetDlgItem(uId); bool isEnabled = wnd != nullptr && wnd->IsWindowEnabled() != FALSE; + if(!isEnabled && !m_sndFile.GetNumInstruments()) + { + _tcscpy(pszText, _T("Create a new instrument to enable instrument mode.")); + return TRUE; + } + + ModInstrument *pIns = m_sndFile.Instruments[m_nInstrument]; + if(pIns == nullptr) + return FALSE; + const auto plusMinus = mpt::ToWin(mpt::Charset::UTF8, "\xC2\xB1"); const TCHAR *s = nullptr; CommandID cmd = kcNull; |
From: <sv...@op...> - 2024-11-08 22:28:43
|
Author: sagamusix Date: Fri Nov 8 23:28:31 2024 New Revision: 22118 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22118 Log: [Fix] Fix compilation with custom mpt::span implementation. Modified: trunk/OpenMPT/soundlib/Load_fc.cpp Modified: trunk/OpenMPT/soundlib/Load_fc.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_fc.cpp Fri Nov 8 23:20:11 2024 (r22117) +++ trunk/OpenMPT/soundlib/Load_fc.cpp Fri Nov 8 23:28:31 2024 (r22118) @@ -532,7 +532,7 @@ return false; FileReader smpFile{mpt::as_span(SampleData)}; - const mpt::span<const uint8> sampleLengths = isFC14 ? mpt::as_span(waveTableLengths) : mpt::as_span(SampleLengths); + const auto sampleLengths = isFC14 ? mpt::span<const uint8>(waveTableLengths) : mpt::as_span(SampleLengths); SampleIO sampleIO{SampleIO::_8bit, SampleIO::mono, SampleIO::bigEndian, SampleIO::signedPCM}; for(SAMPLEINDEX smp = 0; smp < sampleLengths.size(); smp++) { |
From: <sv...@op...> - 2024-11-08 22:20:27
|
Author: sagamusix Date: Fri Nov 8 23:20:11 2024 New Revision: 22117 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22117 Log: [Ref] FC: Simplify wavetable reading code. Modified: trunk/OpenMPT/soundlib/Load_fc.cpp Modified: trunk/OpenMPT/soundlib/Load_fc.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_fc.cpp Fri Nov 8 22:53:21 2024 (r22116) +++ trunk/OpenMPT/soundlib/Load_fc.cpp Fri Nov 8 23:20:11 2024 (r22117) @@ -472,9 +472,9 @@ static constexpr uint8 SampleLengths[] = { - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 16, 16, 16, 16, 16, 16, 16, 16, 32, 16, 32, 32, 16, 16, 48, // Future Composer 1.4 imports the last sample with a length of 32 instead, causing some older FC files to be detuned. + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 8, 8, 8, 8, 8, 8, 8, 8, 16, 8, 16, 16, 8, 8, 24, // Future Composer 1.4 imports the last sample with a length of 32 instead of 48, causing some older FC files to be detuned. }; static constexpr uint8 SampleData[] = @@ -527,35 +527,22 @@ 0x00, 0x00, 0x40, 0x60, 0x7F, 0x60, 0x40, 0x20, 0x00, 0xE0, 0xC0, 0xA0, 0x80, 0xA0, 0xC0, 0xE0, 0x80, 0x80, 0x90, 0x98, 0xA0, 0xA8, 0xB0, 0xB8, 0xC0, 0xC8, 0xD0, 0xD8, 0xE0, 0xE8, 0xF0, 0xF8, 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x58, 0x60, 0x68, 0x70, 0x7F, 0x80, 0x80, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0, 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, }; - + + if(isFC14 && !file.Seek(fileHeader.waveTableOffset)) + return false; + + FileReader smpFile{mpt::as_span(SampleData)}; + const mpt::span<const uint8> sampleLengths = isFC14 ? mpt::as_span(waveTableLengths) : mpt::as_span(SampleLengths); SampleIO sampleIO{SampleIO::_8bit, SampleIO::mono, SampleIO::bigEndian, SampleIO::signedPCM}; - if(isFC14) - { - if(!file.Seek(fileHeader.waveTableOffset)) - return false; - for(SAMPLEINDEX smp = 0; smp < waveTableLengths.size(); smp++) - { - ModSample &mptSmp = Samples[smp + 11]; - mptSmp.Initialize(MOD_TYPE_MOD); - mptSmp.nLength = waveTableLengths[smp] * 2u; - mptSmp.nLoopStart = 0; - mptSmp.nLoopEnd = mptSmp.nLength; - mptSmp.uFlags.set(CHN_LOOP); - sampleIO.ReadSample(mptSmp, file); - } - } else + for(SAMPLEINDEX smp = 0; smp < sampleLengths.size(); smp++) { - FileReader smpFile{mpt::as_span(SampleData)}; - for(SAMPLEINDEX smp = 0; smp < std::size(SampleLengths); smp++) - { - ModSample &mptSmp = Samples[smp + 11]; - mptSmp.Initialize(MOD_TYPE_MOD); - mptSmp.nLength = SampleLengths[smp]; - mptSmp.nLoopStart = 0; - mptSmp.nLoopEnd = mptSmp.nLength; - mptSmp.uFlags.set(CHN_LOOP); - sampleIO.ReadSample(mptSmp, smpFile); - } + ModSample &mptSmp = Samples[smp + 11]; + mptSmp.Initialize(MOD_TYPE_MOD); + mptSmp.nLength = sampleLengths[smp] * 2u; + mptSmp.nLoopStart = 0; + mptSmp.nLoopEnd = mptSmp.nLength; + mptSmp.uFlags.set(CHN_LOOP); + sampleIO.ReadSample(mptSmp, isFC14 ? file : smpFile); } return true; |
From: <sv...@op...> - 2024-11-08 21:53:28
|
Author: sagamusix Date: Fri Nov 8 22:53:21 2024 New Revision: 22116 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22116 Log: [Imp] Add hidden setting "Pattern Editor.AutoHideVolumeColumnForMOD". This is not applied to formats that are imported as MOD, because they might still be using the volume column (https://bugs.openmpt.org/view.php?id=1836). Modified: trunk/OpenMPT/mptrack/Childfrm.h trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/mptrack/View_pat.cpp Modified: trunk/OpenMPT/mptrack/Childfrm.h ============================================================================== --- trunk/OpenMPT/mptrack/Childfrm.h Fri Nov 8 22:31:04 2024 (r22115) +++ trunk/OpenMPT/mptrack/Childfrm.h Fri Nov 8 22:53:21 2024 (r22116) @@ -42,7 +42,7 @@ PatternRect selection; ORDERINDEX nOrder = 0; ORDERINDEX initialOrder = ORDERINDEX_INVALID; - std::bitset<PatternCursor::numColumns> visibleColumns = std::bitset<PatternCursor::numColumns>{}.set(); + std::bitset<PatternCursor::numColumns> visibleColumns; bool initialized = false; std::string Serialize() const; Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp ============================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp Fri Nov 8 22:31:04 2024 (r22115) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp Fri Nov 8 22:53:21 2024 (r22116) @@ -1,7 +1,7 @@ /* * TrackerSettings.cpp * ------------------- - * Purpose: Code for managing, loading and saving all applcation settings. + * Purpose: Code for managing, loading and saving all application settings. * Notes : (currently none) * Authors: Olivier Lapicque * OpenMPT Devs @@ -281,6 +281,7 @@ , patternAccessibilityFormat(conf, UL_("Pattern Editor"), UL_("AccessibilityFormat"), _T("Row %row%, Channel %channel%, %column_type%: %column_description%")) , patternAlwaysDrawWholePatternOnScrollSlow(conf, UL_("Pattern Editor"), UL_("AlwaysDrawWholePatternOnScrollSlow"), false) , orderListOldDropBehaviour(conf, UL_("Pattern Editor"), UL_("OrderListOldDropBehaviour"), false) + , autoHideVolumeColumnForMOD(conf, UL_("Pattern Editor"), UL_("AutoHideVolumeColumnForMOD"), false) // Sample Editor , m_SampleUndoBufferSize(conf, UL_("Sample Editor"), UL_("UndoBufferSize"), SampleUndoBufferSize()) , sampleEditorKeyBehaviour(conf, UL_("Sample Editor"), UL_("KeyBehaviour"), seNoteOffOnNewKey) Modified: trunk/OpenMPT/mptrack/TrackerSettings.h ============================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h Fri Nov 8 22:31:04 2024 (r22115) +++ trunk/OpenMPT/mptrack/TrackerSettings.h Fri Nov 8 22:53:21 2024 (r22116) @@ -808,6 +808,7 @@ Setting<CString> patternAccessibilityFormat; CachedSetting<bool> patternAlwaysDrawWholePatternOnScrollSlow; CachedSetting<bool> orderListOldDropBehaviour; + Setting<bool> autoHideVolumeColumnForMOD; // Sample Editor Modified: trunk/OpenMPT/mptrack/View_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp Fri Nov 8 22:31:04 2024 (r22115) +++ trunk/OpenMPT/mptrack/View_pat.cpp Fri Nov 8 22:53:21 2024 (r22116) @@ -201,6 +201,11 @@ m_nLastPlayedRow = 0; m_nLastPlayedOrder = ORDERINDEX_INVALID; m_prevChordNote = NOTE_NONE; + + m_visibleColumns.set(); + CModDoc *modDoc = GetDocument(); + if(modDoc->GetModType() == MOD_TYPE_MOD && !modDoc->GetSoundFile().m_SongFlags[SONG_IMPORTED] && TrackerSettings::Instance().autoHideVolumeColumnForMOD) + m_visibleColumns.reset(PatternCursor::volumeColumn); } @@ -4208,7 +4213,8 @@ if(lParam) { PatternViewState *pState = (PatternViewState *)lParam; - UpdateVisibileColumns(pState->visibleColumns); + if(pState->visibleColumns.any()) + UpdateVisibileColumns(pState->visibleColumns); if(pState->initialized) { SetCurrentPattern(pState->nPattern); |
From: <sv...@op...> - 2024-11-08 21:31:23
|
Author: sagamusix Date: Fri Nov 8 22:31:04 2024 New Revision: 22115 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22115 Log: [Imp] Remember visible pattern editor columns per module, and also the last active instrument in the instrument tab. [Imp] Remember view state for all tabs, not just the currently active tab. Modified: trunk/OpenMPT/mptrack/Childfrm.cpp trunk/OpenMPT/mptrack/Childfrm.h trunk/OpenMPT/mptrack/Ctrl_ins.cpp trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/Ctrl_smp.cpp trunk/OpenMPT/mptrack/Globals.cpp trunk/OpenMPT/mptrack/Globals.h trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/View_gen.cpp trunk/OpenMPT/mptrack/View_ins.cpp trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/View_smp.cpp trunk/OpenMPT/mptrack/view_com.cpp Modified: trunk/OpenMPT/mptrack/Childfrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Childfrm.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/Childfrm.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -414,34 +414,52 @@ } -std::string CChildFrame::SerializeView() const +void CChildFrame::SaveAllViewStates() { + void *ptr = nullptr; + if(strcmp(CViewPattern::classCViewPattern.m_lpszClassName, m_szCurrentViewClassName) == 0) + ptr = &m_ViewPatterns; + else if(strcmp(CViewSample::classCViewSample.m_lpszClassName, m_szCurrentViewClassName) == 0) + ptr = &m_ViewSamples; + else if(strcmp(CViewInstrument::classCViewInstrument.m_lpszClassName, m_szCurrentViewClassName) == 0) + ptr = &m_ViewInstruments; + else if(strcmp(CViewGlobals::classCViewGlobals.m_lpszClassName, m_szCurrentViewClassName) == 0) + ptr = &m_ViewGeneral; + else if(strcmp(CViewComments::classCViewComments.m_lpszClassName, m_szCurrentViewClassName) == 0) + ptr = &m_ViewComments; + ::SendMessage(m_hWndView, WM_MOD_VIEWMSG, VIEWMSG_SAVESTATE, reinterpret_cast<LPARAM>(ptr)); +} + + +std::string CChildFrame::SerializeView() +{ + SaveAllViewStates(); + std::ostringstream f(std::ios::out | std::ios::binary); // Version - mpt::IO::WriteVarInt(f, 0u); + mpt::IO::WriteVarInt(f, 1u); // Current page mpt::IO::WriteVarInt(f, static_cast<uint8>(GetModControlView()->GetActivePage())); - CModControlView *view = GetModControlView(); - if (strcmp(CViewPattern::classCViewPattern.m_lpszClassName, m_szCurrentViewClassName) == 0) - { - mpt::IO::WriteVarInt(f, (uint32)view->SendMessage(WM_MOD_CTRLMSG, CTRLMSG_GETCURRENTORDER)); // Order number - } else if (strcmp(CViewSample::classCViewSample.m_lpszClassName, m_szCurrentViewClassName) == 0) + const auto Serialize = [](std::ostringstream &f, CModControlView::Page page, const std::string &s) { - mpt::IO::WriteVarInt(f, (uint32)view->SendMessage(WM_MOD_CTRLMSG, CTRLMSG_GETCURRENTINSTRUMENT)); // Sample number - } else if (strcmp(CViewInstrument::classCViewInstrument.m_lpszClassName, m_szCurrentViewClassName) == 0) - { - mpt::IO::WriteVarInt(f, (uint32)view->SendMessage(WM_MOD_CTRLMSG, CTRLMSG_GETCURRENTINSTRUMENT)); // Instrument number - } - return f.str(); + mpt::IO::WriteVarInt(f, static_cast<uint8>(page)); + mpt::IO::WriteVarInt(f, s.size()); + mpt::IO::WriteRaw(f, s.data(), s.size()); + }; + Serialize(f, CModControlView::Page::Patterns, m_ViewPatterns.Serialize()); + Serialize(f, CModControlView::Page::Samples, m_ViewSamples.Serialize()); + Serialize(f, CModControlView::Page::Instruments, m_ViewInstruments.Serialize()); + + return std::move(f).str(); } void CChildFrame::DeserializeView(FileReader &file) { uint32 version, page; - if(file.ReadVarInt(version) && version == 0 && - file.ReadVarInt(page) && page >= 0 && static_cast<CModControlView::Page>(page) < CModControlView::Page::MaxPages) + if(file.ReadVarInt(version) && version < 2 && + file.ReadVarInt(page) && page >= 0 && static_cast<CModControlView::Page>(page) < CModControlView::Page::NumPages) { UINT pageDlg = 0; switch(static_cast<CModControlView::Page>(page)) @@ -451,24 +469,51 @@ break; case CModControlView::Page::Patterns: pageDlg = IDD_CONTROL_PATTERNS; - file.ReadVarInt(m_ViewPatterns.initialOrder); + if(version == 0) + m_ViewPatterns.Deserialize(file); break; case CModControlView::Page::Samples: pageDlg = IDD_CONTROL_SAMPLES; - file.ReadVarInt(m_ViewSamples.initialSample); + if(version == 0) + m_ViewSamples.Deserialize(file); break; case CModControlView::Page::Instruments: pageDlg = IDD_CONTROL_INSTRUMENTS; - file.ReadVarInt(m_ViewInstruments.initialInstrument); + if(version == 0) + m_ViewInstruments.Deserialize(file); break; case CModControlView::Page::Comments: pageDlg = IDD_CONTROL_COMMENTS; break; case CModControlView::Page::Unknown: - case CModControlView::Page::MaxPages: + case CModControlView::Page::NumPages: break; } - GetModControlView()->PostMessage(WM_MOD_ACTIVATEVIEW, pageDlg, (LPARAM)-1); + + // Version 1 extensions + while(file.CanRead(3)) + { + uint32 size = 0; + file.ReadVarInt(page); + file.ReadVarInt(size); + FileReader chunk = file.ReadChunk(size); + if(page >= 0 && static_cast<CModControlView::Page>(page) < CModControlView::Page::NumPages && chunk.IsValid()) + { + switch(static_cast<CModControlView::Page>(page)) + { + case CModControlView::Page::Globals: m_ViewGeneral.Deserialize(chunk); break; + case CModControlView::Page::Patterns: m_ViewPatterns.Deserialize(chunk); break; + case CModControlView::Page::Samples: m_ViewSamples.Deserialize(chunk); break; + case CModControlView::Page::Instruments: m_ViewInstruments.Deserialize(chunk); break; + case CModControlView::Page::Comments: m_ViewComments.Deserialize(chunk); break; + case CModControlView::Page::Unknown: + case CModControlView::Page::NumPages: + break; + } + } + } + + GetModControlView()->PostMessage(WM_MOD_ACTIVATEVIEW, pageDlg, LPARAM(-1)); } } @@ -482,4 +527,51 @@ SendViewMessage(VIEWMSG_SETFOCUS); } + +std::string PatternViewState::Serialize() const +{ + std::ostringstream f(std::ios::out | std::ios::binary); + mpt::IO::WriteVarInt(f, initialized ? nOrder : initialOrder); + mpt::IO::WriteVarInt(f, visibleColumns.to_ulong()); + return std::move(f).str(); +} + + +void PatternViewState::Deserialize(FileReader &f) +{ + f.ReadVarInt(initialOrder); + unsigned long columns = 0; + if(f.ReadVarInt(columns)) + visibleColumns = columns; +} + + +std::string SampleViewState::Serialize() const +{ + std::ostringstream f(std::ios::out | std::ios::binary); + mpt::IO::WriteVarInt(f, nSample ? nSample : initialSample); + return std::move(f).str(); +} + + +void SampleViewState::Deserialize(FileReader &f) +{ + f.ReadVarInt(initialSample); +} + + +std::string InstrumentViewState::Serialize() const +{ + std::ostringstream f(std::ios::out | std::ios::binary); + mpt::IO::WriteVarInt(f, instrument ? instrument : initialInstrument); + return std::move(f).str(); +} + + +void InstrumentViewState::Deserialize(FileReader &f) +{ + f.ReadVarInt(initialInstrument); +} + + OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/mptrack/Childfrm.h ============================================================================== --- trunk/OpenMPT/mptrack/Childfrm.h Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/Childfrm.h Fri Nov 8 22:31:04 2024 (r22115) @@ -23,16 +23,19 @@ class CModControlView; class CModControlDlg; -struct GENERALVIEWSTATE +struct GeneralViewState { PlugParamIndex nParam = 0; CHANNELINDEX nTab = 0; PLUGINDEX nPlugin = 0; bool initialized = false; + + std::string Serialize() const { return {}; } + void Deserialize(FileReader &) { } }; -struct PATTERNVIEWSTATE +struct PatternViewState { PATTERNINDEX nPattern = 0; PatternCursor cursor = 0; @@ -41,31 +44,44 @@ ORDERINDEX initialOrder = ORDERINDEX_INVALID; std::bitset<PatternCursor::numColumns> visibleColumns = std::bitset<PatternCursor::numColumns>{}.set(); bool initialized = false; + + std::string Serialize() const; + void Deserialize(FileReader &f); }; -struct SAMPLEVIEWSTATE +struct SampleViewState { SmpLength dwScrollPos = 0; SmpLength dwBeginSel = 0; SmpLength dwEndSel = 0; SAMPLEINDEX nSample = 0; SAMPLEINDEX initialSample = 0; + + std::string Serialize() const; + void Deserialize(FileReader &f); }; -struct INSTRUMENTVIEWSTATE +struct InstrumentViewState { float zoom = 4; EnvelopeType nEnv = ENV_VOLUME; INSTRUMENTINDEX initialInstrument = 0; + INSTRUMENTINDEX instrument = 0; bool bGrid = false; bool initialized = false; + + std::string Serialize() const; + void Deserialize(FileReader &f); }; -struct COMMENTVIEWSTATE +struct CommentsViewState { UINT nId = 0; bool initialized = false; + + std::string Serialize() const { return {}; } + void Deserialize(FileReader &) {} }; @@ -86,11 +102,11 @@ protected: CSplitterWnd m_wndSplitter; HWND m_hWndCtrl, m_hWndView; - GENERALVIEWSTATE m_ViewGeneral; - PATTERNVIEWSTATE m_ViewPatterns; - SAMPLEVIEWSTATE m_ViewSamples; - INSTRUMENTVIEWSTATE m_ViewInstruments; - COMMENTVIEWSTATE m_ViewComments; + GeneralViewState m_ViewGeneral; + PatternViewState m_ViewPatterns; + SampleViewState m_ViewSamples; + InstrumentViewState m_ViewInstruments; + CommentsViewState m_ViewComments; CHAR m_szCurrentViewClassName[256]; bool m_bMaxWhenClosed; bool m_bInitialActivation; @@ -107,16 +123,17 @@ LRESULT ActivateView(UINT nId, LPARAM lParam) { return ::SendMessage(m_hWndCtrl, WM_MOD_ACTIVATEVIEW, nId, lParam); } HWND GetHwndCtrl() const { return m_hWndCtrl; } HWND GetHwndView() const { return m_hWndView; } - GENERALVIEWSTATE &GetGeneralViewState() { return m_ViewGeneral; } - PATTERNVIEWSTATE &GetPatternViewState() { return m_ViewPatterns; } - SAMPLEVIEWSTATE &GetSampleViewState() { return m_ViewSamples; } - INSTRUMENTVIEWSTATE &GetInstrumentViewState() { return m_ViewInstruments; } - COMMENTVIEWSTATE &GetCommentViewState() { return m_ViewComments; } + GeneralViewState &GetGeneralViewState() { return m_ViewGeneral; } + PatternViewState &GetPatternViewState() { return m_ViewPatterns; } + SampleViewState &GetSampleViewState() { return m_ViewSamples; } + InstrumentViewState &GetInstrumentViewState() { return m_ViewInstruments; } + CommentsViewState &GetCommentViewState() { return m_ViewComments; } void SetSplitterHeight(int x); int GetSplitterHeight(); - std::string SerializeView() const; + void SaveAllViewStates(); + std::string SerializeView(); void DeserializeView(FileReader &file); void ToggleViews(); Modified: trunk/OpenMPT/mptrack/Ctrl_ins.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_ins.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/Ctrl_ins.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -1214,7 +1214,7 @@ m_CbnMixPlug.Update(PluginComboBox::Config{PluginComboBox::ShowNoPlugin | PluginComboBox::ShowEmptySlots}, m_sndFile); CChildFrame *pFrame = (CChildFrame *)GetParentFrame(); - INSTRUMENTVIEWSTATE &instrumentState = pFrame->GetInstrumentViewState(); + InstrumentViewState &instrumentState = pFrame->GetInstrumentViewState(); if(instrumentState.initialInstrument != 0) { m_nInstrument = instrumentState.initialInstrument; Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -618,7 +618,7 @@ CChildFrame *pFrame = (CChildFrame *)GetParentFrame(); // Restore all save pattern state, except pattern number which we might have just set. - PATTERNVIEWSTATE &patternViewState = pFrame->GetPatternViewState(); + PatternViewState &patternViewState = pFrame->GetPatternViewState(); if(patternViewState.initialOrder != ORDERINDEX_INVALID) { if(CMainFrame::GetMainFrame()->GetModPlaying() != &m_modDoc) Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_smp.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -386,7 +386,7 @@ } CChildFrame *pFrame = (CChildFrame *)GetParentFrame(); - SAMPLEVIEWSTATE &sampleState = pFrame->GetSampleViewState(); + SampleViewState &sampleState = pFrame->GetSampleViewState(); if(sampleState.initialSample != 0) { m_nSample = sampleState.initialSample; @@ -2853,7 +2853,7 @@ CCtrlSamples::SampleSelectionPoints CCtrlSamples::GetSelectionPoints() { SampleSelectionPoints points; - SAMPLEVIEWSTATE viewstate{}; + SampleViewState viewstate{}; const ModSample &sample = m_sndFile.GetSample(m_nSample); SendViewMessage(VIEWMSG_SAVESTATE, reinterpret_cast<LPARAM>(&viewstate)); @@ -2880,7 +2880,7 @@ Limit(nStart, SmpLength(0), sample.nLength); Limit(nEnd, SmpLength(0), sample.nLength); - SAMPLEVIEWSTATE viewstate{}; + SampleViewState viewstate{}; SendViewMessage(VIEWMSG_SAVESTATE, reinterpret_cast<LPARAM>(&viewstate)); viewstate.dwBeginSel = nStart; Modified: trunk/OpenMPT/mptrack/Globals.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Globals.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/Globals.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -317,7 +317,7 @@ CModControlDlg *CModControlView::GetCurrentControlDlg() const { - if(m_nActiveDlg >= Page::First && m_nActiveDlg < Page::MaxPages) + if(m_nActiveDlg >= Page::First && m_nActiveDlg < Page::NumPages) return m_Pages[static_cast<size_t>(m_nActiveDlg)]; else return nullptr; @@ -357,7 +357,7 @@ return false; } - if(page < Page::First || page >= Page::MaxPages || !pMainFrm) + if(page < Page::First || page >= Page::NumPages || !pMainFrm) return false; CModControlDlg *oldActiveDlg = GetCurrentControlDlg(); @@ -476,7 +476,7 @@ } } // Update child dialogs - for (UINT nIndex=0; nIndex<int(Page::MaxPages); nIndex++) + for (UINT nIndex=0; nIndex<int(Page::NumPages); nIndex++) { CModControlDlg *pDlg = m_Pages[nIndex]; if ((pDlg) && (pObject != pDlg)) pDlg->UpdateView(UpdateHint(lHint), pObject); @@ -504,7 +504,7 @@ if (m_TabCtrl.m_hWnd) { - if (static_cast<Page>(nIndex) < Page::MaxPages) + if (static_cast<Page>(nIndex) < Page::NumPages) { m_TabCtrl.SetCurSel(static_cast<int>(nIndex)); SetActivePage(static_cast<Page>(nIndex), lParam); Modified: trunk/OpenMPT/mptrack/Globals.h ============================================================================== --- trunk/OpenMPT/mptrack/Globals.h Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/Globals.h Fri Nov 8 22:31:04 2024 (r22115) @@ -112,6 +112,7 @@ class CModControlView: public CView { public: + // Note: Page IDs are serialized to module window settings! enum class Page { Unknown = -1, @@ -121,12 +122,12 @@ Samples, Instruments, Comments, - MaxPages + NumPages }; protected: CModTabCtrl m_TabCtrl; - std::array<CModControlDlg *, int(Page::MaxPages)> m_Pages = {{}}; + std::array<CModControlDlg *, int(Page::NumPages)> m_Pages = {{}}; Page m_nActiveDlg = Page::Unknown; int m_nInstrumentChanged = -1; HWND m_hWndView = nullptr, m_hWndMDI = nullptr; Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -2965,7 +2965,7 @@ case CModControlView::Page::Instruments: page = "::/Instruments.html"; break; case CModControlView::Page::Comments: page = "::/Comments.html"; break; case CModControlView::Page::Unknown: /* nothing */ break; - case CModControlView::Page::MaxPages: /* nothing */ break; + case CModControlView::Page::NumPages: /* nothing */ break; } } } Modified: trunk/OpenMPT/mptrack/Moddoc.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/Moddoc.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -2455,7 +2455,7 @@ if(strcmp("CViewPattern", pChildFrm->GetCurrentViewClassName()) == 0) // dirty HACK { - PATTERNVIEWSTATE patternViewState; + PatternViewState patternViewState; pChildFrm->SendViewMessage(VIEWMSG_SAVESTATE, (LPARAM)(&patternViewState)); pat = patternViewState.nPattern; @@ -2464,7 +2464,7 @@ } else { //patern editor object does not exist (i.e. is not active) - use saved state. - PATTERNVIEWSTATE &patternViewState = pChildFrm->GetPatternViewState(); + PatternViewState &patternViewState = pChildFrm->GetPatternViewState(); pat = patternViewState.nPattern; row = patternViewState.cursor.GetRow(); Modified: trunk/OpenMPT/mptrack/View_gen.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_gen.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/View_gen.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -189,7 +189,7 @@ if (pFrame) { - GENERALVIEWSTATE &generalState = pFrame->GetGeneralViewState(); + GeneralViewState &generalState = pFrame->GetGeneralViewState(); if (generalState.initialized) { m_TabCtrl.SetCurSel(generalState.nTab); @@ -249,7 +249,7 @@ CChildFrame *pFrame = (CChildFrame *)GetParentFrame(); if (pFrame) { - GENERALVIEWSTATE &generalState = pFrame->GetGeneralViewState(); + GeneralViewState &generalState = pFrame->GetGeneralViewState(); generalState.initialized = true; generalState.nTab = m_nActiveTab; generalState.nPlugin = m_nCurrentPlugin; Modified: trunk/OpenMPT/mptrack/View_ins.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_ins.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/View_ins.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -256,7 +256,7 @@ case VIEWMSG_LOADSTATE: if(lParam) { - INSTRUMENTVIEWSTATE *pState = (INSTRUMENTVIEWSTATE *)lParam; + InstrumentViewState *pState = (InstrumentViewState *)lParam; if(pState->initialized) { m_zoom = pState->zoom; @@ -269,11 +269,12 @@ case VIEWMSG_SAVESTATE: if(lParam) { - INSTRUMENTVIEWSTATE *pState = (INSTRUMENTVIEWSTATE *)lParam; + InstrumentViewState *pState = (InstrumentViewState *)lParam; pState->initialized = true; pState->zoom = m_zoom; pState->nEnv = m_nEnv; pState->bGrid = m_bGrid; + pState->instrument = m_nInstrument; } break; Modified: trunk/OpenMPT/mptrack/View_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/View_pat.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -4207,7 +4207,7 @@ case VIEWMSG_LOADSTATE: if(lParam) { - PATTERNVIEWSTATE *pState = (PATTERNVIEWSTATE *)lParam; + PatternViewState *pState = (PatternViewState *)lParam; UpdateVisibileColumns(pState->visibleColumns); if(pState->initialized) { @@ -4222,7 +4222,7 @@ case VIEWMSG_SAVESTATE: if(lParam) { - PATTERNVIEWSTATE *pState = (PATTERNVIEWSTATE *)lParam; + PatternViewState *pState = (PatternViewState *)lParam; pState->initialized = true; pState->nPattern = m_nPattern; pState->cursor = m_Cursor; Modified: trunk/OpenMPT/mptrack/View_smp.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_smp.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/View_smp.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -728,7 +728,7 @@ case VIEWMSG_LOADSTATE: if (lParam) { - SAMPLEVIEWSTATE *pState = (SAMPLEVIEWSTATE *)lParam; + SampleViewState *pState = (SampleViewState *)lParam; if (pState->nSample == m_nSample) { SetCurSel(pState->dwBeginSel, pState->dwEndSel); @@ -742,7 +742,7 @@ case VIEWMSG_SAVESTATE: if (lParam) { - SAMPLEVIEWSTATE *pState = (SAMPLEVIEWSTATE *)lParam; + SampleViewState *pState = (SampleViewState *)lParam; pState->dwScrollPos = m_nScrollPosX; pState->dwBeginSel = m_dwBeginSel; pState->dwEndSel = m_dwEndSel; Modified: trunk/OpenMPT/mptrack/view_com.cpp ============================================================================== --- trunk/OpenMPT/mptrack/view_com.cpp Fri Nov 8 21:58:58 2024 (r22114) +++ trunk/OpenMPT/mptrack/view_com.cpp Fri Nov 8 22:31:04 2024 (r22115) @@ -123,7 +123,7 @@ if (pFrame) { - COMMENTVIEWSTATE &commentState = pFrame->GetCommentViewState(); + CommentsViewState &commentState = pFrame->GetCommentViewState(); if (commentState.initialized) { m_nListId = commentState.nId; @@ -154,7 +154,7 @@ CChildFrame *pFrame = (CChildFrame *)GetParentFrame(); if (pFrame) { - COMMENTVIEWSTATE &commentState = pFrame->GetCommentViewState(); + CommentsViewState &commentState = pFrame->GetCommentViewState(); commentState.initialized = true; commentState.nId = m_nListId; } |
From: <sv...@op...> - 2024-11-08 20:59:15
|
Author: sagamusix Date: Fri Nov 8 21:58:58 2024 New Revision: 22114 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22114 Log: [Ref] Silence warnings. Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp trunk/OpenMPT/mptrack/View_pat.cpp Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Draw_pat.cpp Fri Nov 8 16:06:32 2024 (r22113) +++ trunk/OpenMPT/mptrack/Draw_pat.cpp Fri Nov 8 21:58:58 2024 (r22114) @@ -1794,6 +1794,10 @@ } } break; + + case PatternCursor::numColumns: + MPT_ASSERT_NOTREACHED(); + break; } return s; } Modified: trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp ============================================================================== --- trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp Fri Nov 8 16:06:32 2024 (r22113) +++ trunk/OpenMPT/mptrack/PatternEditorDialogs.cpp Fri Nov 8 21:58:58 2024 (r22114) @@ -437,6 +437,9 @@ case PatternCursor::paramColumn: sldParam.SetFocus(); break; + case PatternCursor::numColumns: + MPT_ASSERT_NOTREACHED(); + break; } // Update Window Title Modified: trunk/OpenMPT/mptrack/View_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp Fri Nov 8 16:06:32 2024 (r22113) +++ trunk/OpenMPT/mptrack/View_pat.cpp Fri Nov 8 21:58:58 2024 (r22114) @@ -2293,6 +2293,10 @@ m_cmdOld.command = m.command; m_cmdOld.param = m.param; break; + + case PatternCursor::numColumns: + MPT_ASSERT_NOTREACHED(); + break; } } @@ -2339,6 +2343,10 @@ m.command = m_cmdOld.command; m.param = m_cmdOld.param; break; + + case PatternCursor::numColumns: + MPT_ASSERT_NOTREACHED(); + break; } if(m != mTarget) @@ -2491,6 +2499,9 @@ [](const ModCommand &start) { return start.command != CMD_NONE || start.IsPcNote(); }, [](const ModCommand &start, const ModCommand &end) { return (end.command == start.command || (start.IsNormalVolumeSlide() && end.IsNormalVolumeSlide()) || start.IsPcNote()) && (!start.IsPcNote() || end.IsPcNote()); }); break; + case PatternCursor::numColumns: + MPT_ASSERT_NOTREACHED(); + break; } if(sweepSelection.GetNumRows() > 1) @@ -2526,6 +2537,9 @@ case PatternCursor::paramColumn: description = "Interpolate Effect Column"; break; + case PatternCursor::numColumns: + MPT_ASSERT_NOTREACHED(); + break; } PrepareUndo(m_Selection, description); } |
From: <sv...@op...> - 2024-11-08 15:06:44
|
Author: sagamusix Date: Fri Nov 8 16:06:32 2024 New Revision: 22113 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22113 Log: [Fix] Don't invert the new pattern detail icon on dark color schemes. Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp trunk/OpenMPT/mptrack/ImageLists.h trunk/OpenMPT/mptrack/MainFrm.cpp Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Ctrl_pat.cpp Fri Nov 8 14:09:21 2024 (r22112) +++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp Fri Nov 8 16:06:32 2024 (r22113) @@ -164,7 +164,7 @@ m_ToolBar.AddButton(ID_PATTERN_SHRINK, TIMAGE_PATTERN_SHRINK); // m_ToolBar.AddButton(ID_PATTERN_AMPLIFY, TIMAGE_SAMPLE_AMPLIFY); m_ToolBar.AddButton(ID_SEPARATOR, 0, TBSTYLE_SEP); - m_ToolBar.AddButton(ID_PATTERNDETAIL_DROPDOWN, TIMAGE_PATTERN_DETAIL_LO, TBSTYLE_BUTTON | TBSTYLE_DROPDOWN); + m_ToolBar.AddButton(ID_PATTERNDETAIL_DROPDOWN, TIMAGE_PATTERN_DETAIL, TBSTYLE_BUTTON | TBSTYLE_DROPDOWN); m_ToolBar.AddButton(ID_SEPARATOR, 0, TBSTYLE_SEP); m_ToolBar.AddButton(ID_OVERFLOWPASTE, TIMAGE_PATTERN_OVERFLOWPASTE, TBSTYLE_CHECK, ((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_OVERFLOWPASTE) ? TBSTATE_CHECKED : 0) | TBSTATE_ENABLED); Modified: trunk/OpenMPT/mptrack/ImageLists.h ============================================================================== --- trunk/OpenMPT/mptrack/ImageLists.h Fri Nov 8 14:09:21 2024 (r22112) +++ trunk/OpenMPT/mptrack/ImageLists.h Fri Nov 8 16:06:32 2024 (r22113) @@ -82,9 +82,9 @@ TIMAGE_REDO, TIMAGE_PATTERN_PLAYROW, TIMAGE_SAMPLE_DOWNSAMPLE, - TIMAGE_PATTERN_DETAIL_LO, - TIMAGE_PATTERN_DETAIL_MED, - TIMAGE_PATTERN_DETAIL_HI, + TIMAGE_PATTERN_DETAIL, + TIMAGE_PATTERN_DETAIL_MED, // unused + TIMAGE_PATTERN_DETAIL_HI, // unused TIMAGE_PATTERN_PLUGINS, TIMAGE_CHANNELMANAGER, TIMAGE_SAMPLE_INVERT, Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Fri Nov 8 14:09:21 2024 (r22112) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Fri Nov 8 16:06:32 2024 (r22113) @@ -270,7 +270,7 @@ CDC *dc = GetDC(); const double scaling = Util::GetDPIx(m_hWnd) / 96.0; static constexpr int miscIconsInvert[] = {IMAGE_PATTERNS, IMAGE_OPLINSTRACTIVE, IMAGE_OPLINSTRMUTE}; - static constexpr int patternIconsInvert[] = {TIMAGE_PREVIEW, TIMAGE_MACROEDITOR, TIMAGE_PATTERN_OVERFLOWPASTE, TIMAGE_PATTERN_DETAIL_LO, TIMAGE_PATTERN_DETAIL_MED, TIMAGE_PATTERN_DETAIL_HI, TIMAGE_PATTERN_PLUGINS, TIMAGE_SAMPLE_UNSIGN}; + static constexpr int patternIconsInvert[] = {TIMAGE_PREVIEW, TIMAGE_MACROEDITOR, TIMAGE_PATTERN_OVERFLOWPASTE, TIMAGE_PATTERN_PLUGINS, TIMAGE_SAMPLE_UNSIGN}; static constexpr int envelopeIconsInvert[] = {IIMAGE_CHECKED, IIMAGE_VOLSWITCH, IIMAGE_PANSWITCH, IIMAGE_PITCHSWITCH, IIMAGE_FILTERSWITCH, IIMAGE_NOPITCHSWITCH, IIMAGE_NOFILTERSWITCH}; m_MiscIcons.Create(IDB_IMAGELIST, 16, 16, IMGLIST_NUMIMAGES, 1, dc, scaling, false, miscIconsInvert); m_MiscIconsDisabled.Create(IDB_IMAGELIST, 16, 16, IMGLIST_NUMIMAGES, 1, dc, scaling, true, miscIconsInvert); |
From: <sv...@op...> - 2024-11-08 13:09:29
|
Author: manx Date: Fri Nov 8 14:09:21 2024 New Revision: 22112 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22112 Log: [Fix] mptOS: Compile fix for older SDKs. Modified: trunk/OpenMPT/misc/mptOS.cpp Modified: trunk/OpenMPT/misc/mptOS.cpp ============================================================================== --- trunk/OpenMPT/misc/mptOS.cpp Fri Nov 8 13:40:07 2024 (r22111) +++ trunk/OpenMPT/misc/mptOS.cpp Fri Nov 8 14:09:21 2024 (r22112) @@ -204,35 +204,99 @@ Architecture Host; }; static constexpr MachineArchitecture machinearchitectures [] = { - { IMAGE_FILE_MACHINE_I386 , Architecture::x86 }, - { IMAGE_FILE_MACHINE_R3000 , Architecture::mips }, - { IMAGE_FILE_MACHINE_R4000 , Architecture::mips }, - { IMAGE_FILE_MACHINE_R10000 , Architecture::mips }, - { IMAGE_FILE_MACHINE_WCEMIPSV2 , Architecture::mips }, - { IMAGE_FILE_MACHINE_ALPHA , Architecture::alpha }, - { IMAGE_FILE_MACHINE_SH3 , Architecture::shx }, - { IMAGE_FILE_MACHINE_SH3DSP , Architecture::shx }, - { IMAGE_FILE_MACHINE_SH3E , Architecture::shx }, - { IMAGE_FILE_MACHINE_SH4 , Architecture::shx }, - { IMAGE_FILE_MACHINE_SH5 , Architecture::shx }, - { IMAGE_FILE_MACHINE_ARM , Architecture::arm }, - { IMAGE_FILE_MACHINE_THUMB , Architecture::arm }, - { IMAGE_FILE_MACHINE_ARMNT , Architecture::arm }, - { IMAGE_FILE_MACHINE_AM33 , Architecture::unknown }, - { IMAGE_FILE_MACHINE_POWERPC , Architecture::ppc }, - { IMAGE_FILE_MACHINE_POWERPCFP , Architecture::ppc }, - { IMAGE_FILE_MACHINE_MIPS16 , Architecture::unknown }, - { IMAGE_FILE_MACHINE_ALPHA64 , Architecture::alpha64 }, - { IMAGE_FILE_MACHINE_MIPSFPU , Architecture::mips }, - { IMAGE_FILE_MACHINE_MIPSFPU16 , Architecture::unknown }, - { IMAGE_FILE_MACHINE_AXP64 , Architecture::alpha64 }, - { IMAGE_FILE_MACHINE_TRICORE , Architecture::unknown }, - { IMAGE_FILE_MACHINE_CEF , Architecture::unknown }, - { IMAGE_FILE_MACHINE_EBC , Architecture::unknown }, - { IMAGE_FILE_MACHINE_AMD64 , Architecture::amd64 }, - { IMAGE_FILE_MACHINE_M32R , Architecture::unknown }, - { IMAGE_FILE_MACHINE_ARM64 , Architecture::arm64 }, - { IMAGE_FILE_MACHINE_CEE , Architecture::unknown } +#ifdef IMAGE_FILE_MACHINE_UNKNOWN + { IMAGE_FILE_MACHINE_UNKNOWN , Architecture::unknown }, +#endif +#ifdef IMAGE_FILE_MACHINE_TARGET_HOST + { IMAGE_FILE_MACHINE_TARGET_HOST, Architecture::unknown }, +#endif +#ifdef IMAGE_FILE_MACHINE_I386 + { IMAGE_FILE_MACHINE_I386 , Architecture::x86 }, +#endif +#ifdef IMAGE_FILE_MACHINE_R3000 + { IMAGE_FILE_MACHINE_R3000 , Architecture::mips }, +#endif +#ifdef IMAGE_FILE_MACHINE_R4000 + { IMAGE_FILE_MACHINE_R4000 , Architecture::mips }, +#endif +#ifdef IMAGE_FILE_MACHINE_R10000 + { IMAGE_FILE_MACHINE_R10000 , Architecture::mips }, +#endif +#ifdef IMAGE_FILE_MACHINE_WCEMIPSV2 + { IMAGE_FILE_MACHINE_WCEMIPSV2 , Architecture::mips }, +#endif +#ifdef IMAGE_FILE_MACHINE_ALPHA + { IMAGE_FILE_MACHINE_ALPHA , Architecture::alpha }, +#endif +#ifdef IMAGE_FILE_MACHINE_SH3 + { IMAGE_FILE_MACHINE_SH3 , Architecture::shx }, +#endif +#ifdef IMAGE_FILE_MACHINE_SH3DSP + { IMAGE_FILE_MACHINE_SH3DSP , Architecture::shx }, +#endif +#ifdef IMAGE_FILE_MACHINE_SH3E + { IMAGE_FILE_MACHINE_SH3E , Architecture::shx }, +#endif +#ifdef IMAGE_FILE_MACHINE_SH4 + { IMAGE_FILE_MACHINE_SH4 , Architecture::shx }, +#endif +#ifdef IMAGE_FILE_MACHINE_SH5 + { IMAGE_FILE_MACHINE_SH5 , Architecture::shx }, +#endif +#ifdef IMAGE_FILE_MACHINE_ARM + { IMAGE_FILE_MACHINE_ARM , Architecture::arm }, +#endif +#ifdef IMAGE_FILE_MACHINE_THUMB + { IMAGE_FILE_MACHINE_THUMB , Architecture::arm }, +#endif +#ifdef IMAGE_FILE_MACHINE_ARMNT + { IMAGE_FILE_MACHINE_ARMNT , Architecture::arm }, +#endif +#ifdef IMAGE_FILE_MACHINE_AM33 + { IMAGE_FILE_MACHINE_AM33 , Architecture::unknown }, +#endif +#ifdef IMAGE_FILE_MACHINE_POWERPC + { IMAGE_FILE_MACHINE_POWERPC , Architecture::ppc }, +#endif +#ifdef IMAGE_FILE_MACHINE_POWERPCFP + { IMAGE_FILE_MACHINE_POWERPCFP , Architecture::ppc }, +#endif +#ifdef IMAGE_FILE_MACHINE_MIPS16 + { IMAGE_FILE_MACHINE_MIPS16 , Architecture::unknown }, +#endif +#ifdef IMAGE_FILE_MACHINE_ALPHA64 + { IMAGE_FILE_MACHINE_ALPHA64 , Architecture::alpha64 }, +#endif +#ifdef IMAGE_FILE_MACHINE_MIPSFPU + { IMAGE_FILE_MACHINE_MIPSFPU , Architecture::mips }, +#endif +#ifdef IMAGE_FILE_MACHINE_MIPSFPU16 + { IMAGE_FILE_MACHINE_MIPSFPU16 , Architecture::unknown }, +#endif +#ifdef IMAGE_FILE_MACHINE_AXP64 + { IMAGE_FILE_MACHINE_AXP64 , Architecture::alpha64 }, +#endif +#ifdef IMAGE_FILE_MACHINE_TRICORE + { IMAGE_FILE_MACHINE_TRICORE , Architecture::unknown }, +#endif +#ifdef IMAGE_FILE_MACHINE_CEF + { IMAGE_FILE_MACHINE_CEF , Architecture::unknown }, +#endif +#ifdef IMAGE_FILE_MACHINE_EBC + { IMAGE_FILE_MACHINE_EBC , Architecture::unknown }, +#endif +#ifdef IMAGE_FILE_MACHINE_AMD64 + { IMAGE_FILE_MACHINE_AMD64 , Architecture::amd64 }, +#endif +#ifdef IMAGE_FILE_MACHINE_M32R + { IMAGE_FILE_MACHINE_M32R , Architecture::unknown }, +#endif +#ifdef IMAGE_FILE_MACHINE_ARM64 + { IMAGE_FILE_MACHINE_ARM64 , Architecture::arm64 }, +#endif +#ifdef IMAGE_FILE_MACHINE_CEE + { IMAGE_FILE_MACHINE_CEE , Architecture::unknown } +#endif }; |
From: <sv...@op...> - 2024-11-08 12:40:15
|
Author: manx Date: Fri Nov 8 13:40:07 2024 New Revision: 22111 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22111 Log: Merged revision(s) 22110 from trunk/OpenMPT: [Fix] mptWine: Fix calling convention in function pointer declaration. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/misc/mptWine.h Modified: branches/OpenMPT-1.31/misc/mptWine.h ============================================================================== --- branches/OpenMPT-1.31/misc/mptWine.h Fri Nov 8 13:39:40 2024 (r22110) +++ branches/OpenMPT-1.31/misc/mptWine.h Fri Nov 8 13:40:07 2024 (r22111) @@ -91,8 +91,8 @@ mpt::OS::Wine::VersionContext m_VersionContext; std::shared_ptr<std::optional<mpt::library>> m_Kernel32; private: - LPWSTR (*CDECL wine_get_dos_file_name)(LPCSTR str); - LPSTR (*CDECL wine_get_unix_file_name)(LPCWSTR str); + LPWSTR (CDECL * wine_get_dos_file_name)(LPCSTR str); + LPSTR (CDECL * wine_get_unix_file_name)(LPCWSTR str); protected: std::string m_Uname_m; std::string m_HOME; |
From: <sv...@op...> - 2024-11-08 12:39:51
|
Author: manx Date: Fri Nov 8 13:39:40 2024 New Revision: 22110 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22110 Log: [Fix] mptWine: Fix calling convention in function pointer declaration. Modified: trunk/OpenMPT/misc/mptWine.h Modified: trunk/OpenMPT/misc/mptWine.h ============================================================================== --- trunk/OpenMPT/misc/mptWine.h Fri Nov 8 13:39:02 2024 (r22109) +++ trunk/OpenMPT/misc/mptWine.h Fri Nov 8 13:39:40 2024 (r22110) @@ -91,8 +91,8 @@ mpt::OS::Wine::VersionContext m_VersionContext; std::shared_ptr<std::optional<mpt::library>> m_Kernel32; private: - LPWSTR (*CDECL wine_get_dos_file_name)(LPCSTR str); - LPSTR (*CDECL wine_get_unix_file_name)(LPCWSTR str); + LPWSTR (CDECL * wine_get_dos_file_name)(LPCSTR str); + LPSTR (CDECL * wine_get_unix_file_name)(LPCWSTR str); protected: std::string m_Uname_m; std::string m_HOME; |
From: <sv...@op...> - 2024-11-08 12:39:15
|
Author: manx Date: Fri Nov 8 13:39:02 2024 New Revision: 22109 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22109 Log: [Fix] mptOS: Use documented are more reliable method to detect host architecture as ARM64 in case of emulated AMD64 process, especially for ARM64EC. Modified: trunk/OpenMPT/misc/mptOS.cpp Modified: trunk/OpenMPT/misc/mptOS.cpp ============================================================================== --- trunk/OpenMPT/misc/mptOS.cpp Thu Nov 7 23:53:57 2024 (r22108) +++ trunk/OpenMPT/misc/mptOS.cpp Fri Nov 8 13:39:02 2024 (r22109) @@ -14,6 +14,7 @@ #include "mpt/binary/hex.hpp" #include "mpt/format/join.hpp" #include "mpt/library/library.hpp" +#include "mpt/osinfo/windows_version.hpp" #include "mpt/parse/split.hpp" #include "mpt/path/native_path.hpp" @@ -197,6 +198,44 @@ }; +struct MachineArchitecture +{ + USHORT ImageFileMachine; + Architecture Host; +}; +static constexpr MachineArchitecture machinearchitectures [] = { + { IMAGE_FILE_MACHINE_I386 , Architecture::x86 }, + { IMAGE_FILE_MACHINE_R3000 , Architecture::mips }, + { IMAGE_FILE_MACHINE_R4000 , Architecture::mips }, + { IMAGE_FILE_MACHINE_R10000 , Architecture::mips }, + { IMAGE_FILE_MACHINE_WCEMIPSV2 , Architecture::mips }, + { IMAGE_FILE_MACHINE_ALPHA , Architecture::alpha }, + { IMAGE_FILE_MACHINE_SH3 , Architecture::shx }, + { IMAGE_FILE_MACHINE_SH3DSP , Architecture::shx }, + { IMAGE_FILE_MACHINE_SH3E , Architecture::shx }, + { IMAGE_FILE_MACHINE_SH4 , Architecture::shx }, + { IMAGE_FILE_MACHINE_SH5 , Architecture::shx }, + { IMAGE_FILE_MACHINE_ARM , Architecture::arm }, + { IMAGE_FILE_MACHINE_THUMB , Architecture::arm }, + { IMAGE_FILE_MACHINE_ARMNT , Architecture::arm }, + { IMAGE_FILE_MACHINE_AM33 , Architecture::unknown }, + { IMAGE_FILE_MACHINE_POWERPC , Architecture::ppc }, + { IMAGE_FILE_MACHINE_POWERPCFP , Architecture::ppc }, + { IMAGE_FILE_MACHINE_MIPS16 , Architecture::unknown }, + { IMAGE_FILE_MACHINE_ALPHA64 , Architecture::alpha64 }, + { IMAGE_FILE_MACHINE_MIPSFPU , Architecture::mips }, + { IMAGE_FILE_MACHINE_MIPSFPU16 , Architecture::unknown }, + { IMAGE_FILE_MACHINE_AXP64 , Architecture::alpha64 }, + { IMAGE_FILE_MACHINE_TRICORE , Architecture::unknown }, + { IMAGE_FILE_MACHINE_CEF , Architecture::unknown }, + { IMAGE_FILE_MACHINE_EBC , Architecture::unknown }, + { IMAGE_FILE_MACHINE_AMD64 , Architecture::amd64 }, + { IMAGE_FILE_MACHINE_M32R , Architecture::unknown }, + { IMAGE_FILE_MACHINE_ARM64 , Architecture::arm64 }, + { IMAGE_FILE_MACHINE_CEE , Architecture::unknown } +}; + + struct HostArchitecture { Architecture Host; @@ -272,6 +311,32 @@ Architecture GetHostArchitecture() noexcept { SYSTEM_INFO systemInfo = {}; + mpt::osinfo::windows::Version WindowsVersion = mpt::osinfo::windows::Version::Current(); + if(WindowsVersion.IsAtLeast(mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, mpt::osinfo::windows::Version::ServicePack(0, 0), 16299, 0))) { + std::optional<mpt::library> kernel32{mpt::library::load({ mpt::library::path_search::system, mpt::library::path_prefix::none, MPT_NATIVE_PATH("kernel32.dll"), mpt::library::path_suffix::none })}; + if(kernel32.has_value()) + { + BOOL (WINAPI * fIsWow64Process2)(HANDLE hProcess, USHORT *pProcessMachine, USHORT *pNativeMachine) = NULL; + if(kernel32->bind(fIsWow64Process2, "IsWow64Process2")) + { + USHORT ProcessMachine = 0; + USHORT NativeMachine = 0; + if(fIsWow64Process2(GetCurrentProcess(), &ProcessMachine, &NativeMachine) != FALSE) + { + for(const auto &arch : machinearchitectures) + { + if(NativeMachine == arch.ImageFileMachine) + { + if(arch.Host != Architecture::unknown) + { + return arch.Host; + } + } + } + } + } + } + } GetNativeSystemInfo(&systemInfo); for(const auto &arch : architectures) { |
From: <sv...@op...> - 2024-11-07 22:54:09
|
Author: sagamusix Date: Thu Nov 7 23:53:57 2024 New Revision: 22108 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22108 Log: Merged revision(s) 22107 from trunk/OpenMPT: [Fix] MED: Apparently in MED SoundStudio, when using 1-64ch software mixing mode, tempos 1-10 in SPD mode behave strangely (first 8 values all result in ~157 BPM, 8 upwards results in "normal" tempo). Fixes "K-SaveMe" (https://www.un4seen.com/forum/?topic=15448.msg144080#msg144080). ........ 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 Thu Nov 7 23:48:41 2024 (r22107) +++ branches/OpenMPT-1.31/soundlib/Load_med.cpp Thu Nov 7 23:53:57 2024 (r22108) @@ -368,7 +368,7 @@ MPT_BINARY_STRUCT(MMDDump, 10) -static TEMPO MMDTempoToBPM(uint32 tempo, bool is8Ch, bool bpmMode, uint8 rowsPerBeat) +static TEMPO MMDTempoToBPM(uint32 tempo, bool is8Ch, bool softwareMixing, bool bpmMode, uint8 rowsPerBeat) { if(bpmMode && !is8Ch) { @@ -382,10 +382,14 @@ // MED Soundstudio uses these tempos when importing old files static constexpr uint8 tempos[10] = {179, 164, 152, 141, 131, 123, 116, 110, 104, 99}; return TEMPO(tempos[tempo - 1], 0); - } else if(tempo > 0 && tempo <= 10) + } else if(!softwareMixing && tempo > 0 && tempo <= 10) { // SoundTracker compatible tempo return TEMPO((6.0 * 1773447.0 / 14500.0) / tempo); + } else if(softwareMixing && tempo < 8) + { + // Observed in MED SoundStudio 1.03 with 1-64ch mixing mode and SPD tempo mode (bug?) + return TEMPO(157.86); } return TEMPO(tempo / 0.264); @@ -398,8 +402,8 @@ const CHANNELINDEX numTracks; const uint8 version; const uint8 rowsPerBeat; - const bool hardwareMixSamples : 1; const bool is8Ch : 1; + const bool softwareMixing : 1; const bool bpmMode : 1; const bool volHex : 1; }; @@ -446,7 +450,7 @@ m.param = 0x70; } else { - uint16 tempo = mpt::saturate_round<uint16>(MMDTempoToBPM(param, ctx.is8Ch, ctx.bpmMode, ctx.rowsPerBeat).ToDouble()); + uint16 tempo = mpt::saturate_round<uint16>(MMDTempoToBPM(param, ctx.is8Ch, ctx.softwareMixing, ctx.bpmMode, ctx.rowsPerBeat).ToDouble()); if(tempo <= Util::MaxValueOfType(m.param)) { m.param = static_cast<ModCommand::PARAM>(tempo); @@ -1259,10 +1263,11 @@ const bool volHex = (songHeader.flags & MMDSong::FLAG_VOLHEX) != 0; const bool is8Ch = (songHeader.flags & MMDSong::FLAG_8CHANNEL) != 0; const bool bpmMode = (songHeader.flags2 & MMDSong::FLAG2_BPM) != 0; + const bool softwareMixing = (songHeader.flags2 & MMDSong::FLAG2_MIX) != 0; const uint8 rowsPerBeat = 1 + (songHeader.flags2 & MMDSong::FLAG2_BMASK); if(song == 0) { - m_nDefaultTempo = MMDTempoToBPM(songHeader.defaultTempo, is8Ch, bpmMode, rowsPerBeat); + m_nDefaultTempo = MMDTempoToBPM(songHeader.defaultTempo, is8Ch, softwareMixing, bpmMode, rowsPerBeat); m_nDefaultSpeed = Clamp<uint8, uint8>(songHeader.tempo2, 1, 32); if(bpmMode) { @@ -1439,7 +1444,7 @@ pattern.SetName(patName); LimitMax(numTracks, m_nChannels); - TranslateMEDPatternContext context{transpose, numTracks, version, rowsPerBeat, hardwareMixSamples, is8Ch, bpmMode, volHex}; + TranslateMEDPatternContext context{transpose, numTracks, version, rowsPerBeat, is8Ch, softwareMixing, bpmMode, volHex}; needInstruments |= TranslateMEDPattern(file, cmdExt, pattern, context, false); for(uint16 page = 0; page < numPages; page++) |