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-16 19:39:28
|
Author: sagamusix Date: Sat Nov 16 20:39:17 2024 New Revision: 22206 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22206 Log: [Fix] On Windows XP, removing all groups from a list view disables grouping. Modified: trunk/OpenMPT/mptrack/AdvancedConfigDlg.cpp trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Modified: trunk/OpenMPT/mptrack/AdvancedConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/AdvancedConfigDlg.cpp Sat Nov 16 20:00:35 2024 (r22205) +++ trunk/OpenMPT/mptrack/AdvancedConfigDlg.cpp Sat Nov 16 20:39:17 2024 (r22206) @@ -100,6 +100,7 @@ if(m_listGrouped) { ListView_RemoveAllGroups(m_List.m_hWnd); + m_List.EnableGroupView(); } m_List.SetItemCount(static_cast<int>(theApp.GetSettings().size())); Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Nov 16 20:00:35 2024 (r22205) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Nov 16 20:39:17 2024 (r22206) @@ -202,7 +202,7 @@ m_localCmdSet->Copy(*CMainFrame::GetInputHandler()->m_activeCommandSet); m_lbnCommandKeys.SetExtendedStyle(m_lbnCommandKeys.GetExtendedStyle() | LVS_EX_FULLROWSELECT); - m_listGrouped = CListCtrlEx::EnableGroupView(m_lbnCommandKeys); + m_listGrouped = m_lbnCommandKeys.EnableGroupView(); m_lbnCommandKeys.SetHeaders(KeyListHeaders); //Fill category combo and automatically selects first category @@ -514,7 +514,10 @@ m_lbnCommandKeys.SetRedraw(FALSE); m_lbnCommandKeys.DeleteAllItems(); if(m_listGrouped) + { ListView_RemoveAllGroups(m_lbnCommandKeys); + m_lbnCommandKeys.EnableGroupView(); + } int currentGroup = -1; int itemID = -1; |
From: <sv...@op...> - 2024-11-16 19:00:42
|
Author: sagamusix Date: Sat Nov 16 20:00:35 2024 New Revision: 22205 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22205 Log: [Fix] Set the correct item data for category header fallback in key config dialog. Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Nov 16 19:26:49 2024 (r22204) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Nov 16 20:00:35 2024 (r22205) @@ -597,7 +597,7 @@ { const CString catName = _T("------ ") + CString{commandCategories[cat].name}.TrimLeft() + _T(" ------"); lvi.iItem = ++itemID; - lvi.lParam = LPARAM(-1); + lvi.lParam = kcNull; lvi.pszText = const_cast<TCHAR *>(catName.GetString()); m_lbnCommandKeys.InsertItem(&lvi); } |
From: <sv...@op...> - 2024-11-16 18:27:01
|
Author: sagamusix Date: Sat Nov 16 19:26:49 2024 New Revision: 22204 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22204 Log: [Fix] Split buttons are only available on Vista and newer. Try to enable them, and if that fails, fall back to a normal button. Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp trunk/OpenMPT/mptrack/KeyConfigDlg.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Nov 16 19:04:42 2024 (r22203) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Nov 16 19:26:49 2024 (r22204) @@ -151,12 +151,16 @@ ON_COMMAND(IDC_NOTESREPEAT, &COptionsKeyboard::OnNotesRepeat) ON_COMMAND(IDC_NONOTESREPEAT, &COptionsKeyboard::OnNoNotesRepeat) ON_COMMAND(IDC_RESTORE_KEYMAP, &COptionsKeyboard::OnRestoreDefaultKeymap) + ON_COMMAND(ID_KEYPRESET_MPT, &COptionsKeyboard::OnRestoreMPTKeymap) ON_COMMAND(ID_KEYPRESET_IT, &COptionsKeyboard::OnRestoreITKeymap) ON_COMMAND(ID_KEYPRESET_FT2, &COptionsKeyboard::OnRestoreFT2Keymap) ON_EN_CHANGE(IDC_FIND, &COptionsKeyboard::OnSearchTermChanged) ON_EN_SETFOCUS(IDC_FINDHOTKEY, &COptionsKeyboard::OnClearHotKey) ON_NOTIFY(LVN_ITEMCHANGED, IDC_COMMAND_LIST, &COptionsKeyboard::OnCommandKeySelChanged) ON_NOTIFY(NM_DBLCLK, IDC_COMMAND_LIST, &COptionsKeyboard::OnListenForKeysFromList) +#if MPT_WINNT_AT_LEAST(MPT_WIN_VISTA) + ON_NOTIFY(BCN_DROPDOWN, IDC_RESTORE_KEYMAP, &COptionsKeyboard::OnRestoreKeymapDropdown) +#endif END_MESSAGE_MAP() @@ -211,13 +215,9 @@ m_cmbCategory.SetCurSel(0); UpdateDialog(); - CMenu *splitButtonMenu = new CMenu{}; - if(splitButtonMenu->CreatePopupMenu()) - { - splitButtonMenu->AppendMenu(MF_STRING, ID_KEYPRESET_IT, _T("&Impulse Tracker style")); - splitButtonMenu->AppendMenu(MF_STRING, ID_KEYPRESET_FT2, _T("&Fast Tracker style")); - m_restoreDefaultButton.SetDropDownMenu(splitButtonMenu); // takes ownership of menu pointer - } +#if MPT_WINNT_AT_LEAST(MPT_WIN_VISTA) + m_restoreDefaultButton.ModifyStyle(0, BS_SPLITBUTTON); +#endif m_eCustHotKey.SetOwner(*this); m_eFindHotKey.SetOwner(*this); @@ -1092,6 +1092,44 @@ } +void COptionsKeyboard::OnRestoreKeymapDropdown(NMHDR *, LRESULT *result) +{ + ShowRestoreKeymapMenu(); + *result = 0; +} + +void COptionsKeyboard::OnRestoreDefaultKeymap() +{ +#if MPT_WINNT_AT_LEAST(MPT_WIN_VISTA) + if((m_restoreDefaultButton.GetStyle() & BS_SPLITBUTTON) == BS_SPLITBUTTON) + { + OnRestoreMPTKeymap(); + return; + } +#endif + ShowRestoreKeymapMenu(); +} + + +void COptionsKeyboard::ShowRestoreKeymapMenu() +{ + CRect rect; + m_restoreDefaultButton.GetWindowRect(rect); + + TPMPARAMS tpmParams{}; + tpmParams.cbSize = sizeof(TPMPARAMS); + tpmParams.rcExclude = rect; + + CMenu menu; + if(!menu.CreatePopupMenu()) + return; + menu.AppendMenu(MF_STRING, ID_KEYPRESET_MPT, _T("&OpenMPT style")); + menu.AppendMenu(MF_STRING, ID_KEYPRESET_IT, _T("&Impulse Tracker style")); + menu.AppendMenu(MF_STRING, ID_KEYPRESET_FT2, _T("&Fast Tracker style")); + menu.TrackPopupMenuEx(TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON, rect.left, rect.bottom, this, &tpmParams); +} + + void COptionsKeyboard::RestoreKeymap(KeyboardPreset preset) { if(Reporting::Confirm("Discard all custom changes and restore default key configuration?", false, true, this) == cnfYes) Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.h ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.h Sat Nov 16 19:04:42 2024 (r22203) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.h Sat Nov 16 19:26:49 2024 (r22204) @@ -79,7 +79,7 @@ CStatic m_warnIconCtl, m_warnText; CEdit m_eFind; CEdit m_eChordWaitTime; - CSplitButton m_restoreDefaultButton; + CButton m_restoreDefaultButton; HICON m_infoIcon = nullptr, m_warnIcon = nullptr; CString m_lastWarning; @@ -117,6 +117,7 @@ void EnableKeyChoice(bool enable); void UpdateWarning(CString text = {}, bool notify = false); + void ShowRestoreKeymapMenu(); void RestoreKeymap(KeyboardPreset preset); afx_msg LRESULT OnDPIChangedAfterParent(WPARAM, LPARAM); @@ -137,7 +138,9 @@ afx_msg void OnRestoreKeyChoice(); afx_msg void OnLoad(); afx_msg void OnSave(); - afx_msg void OnRestoreDefaultKeymap() { RestoreKeymap(KeyboardPreset::MPT); } + afx_msg void OnRestoreDefaultKeymap(); + afx_msg void OnRestoreKeymapDropdown(NMHDR *, LRESULT *result); + afx_msg void OnRestoreMPTKeymap() { RestoreKeymap(KeyboardPreset::MPT); } afx_msg void OnRestoreITKeymap() { RestoreKeymap(KeyboardPreset::IT); } afx_msg void OnRestoreFT2Keymap() { RestoreKeymap(KeyboardPreset::FT2); } afx_msg void OnClearHotKey(); Modified: trunk/OpenMPT/mptrack/mptrack.rc ============================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc Sat Nov 16 19:04:42 2024 (r22203) +++ trunk/OpenMPT/mptrack/mptrack.rc Sat Nov 16 19:26:49 2024 (r22204) @@ -1273,8 +1273,7 @@ EDITTEXT IDC_CHORDDETECTWAITTIME,252,246,30,12,ES_AUTOHSCROLL | ES_NUMBER PUSHBUTTON "&Import Key Map...",IDC_LOAD,6,264,72,13 PUSHBUTTON "&Export Key Map...",IDC_SAVE,84,264,72,13 - CONTROL "Restore default &configuration",IDC_RESTORE_KEYMAP, - "Button",BS_SPLITBUTTON | WS_TABSTOP,162,264,120,12 + PUSHBUTTON "Restore default &configuration",IDC_RESTORE_KEYMAP,162,264,120,12 END IDD_OPTIONS_COLORS DIALOGEX 0, 0, 286, 282 Modified: trunk/OpenMPT/mptrack/resource.h ============================================================================== --- trunk/OpenMPT/mptrack/resource.h Sat Nov 16 19:04:42 2024 (r22203) +++ trunk/OpenMPT/mptrack/resource.h Sat Nov 16 19:26:49 2024 (r22204) @@ -1179,8 +1179,9 @@ #define ID_MAINBAR_SHOW_GLOBALVOLUME 36041 #define ID_MAINBAR_SHOW_VUMETER 36042 #define ID_TREEVIEW_ON_LEFT 36043 -#define ID_KEYPRESET_IT 36044 -#define ID_KEYPRESET_FT2 36045 +#define ID_KEYPRESET_MPT 36044 +#define ID_KEYPRESET_IT 36045 +#define ID_KEYPRESET_FT2 36046 #define ID_SELECTINST 36100 // From here: Command range [ID_SELECTINST, ID_SELECTINST + MAX_INSTRUMENTS] #define ID_PLUG_RECORDAUTOMATION 37003 |
From: <sv...@op...> - 2024-11-16 18:04:54
|
Author: sagamusix Date: Sat Nov 16 19:04:42 2024 New Revision: 22203 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22203 Log: Merged revision(s) 22202 from trunk/OpenMPT: [Mod] Go back to the same key assignments for Note Fade and PC Events as used before r22194. Default key bindings should keep PC events accessible on ANSI keyboards. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/CommandSet.cpp Modified: branches/OpenMPT-1.31/mptrack/CommandSet.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/CommandSet.cpp Sat Nov 16 19:04:11 2024 (r22202) +++ branches/OpenMPT-1.31/mptrack/CommandSet.cpp Sat Nov 16 19:04:42 2024 (r22203) @@ -248,14 +248,14 @@ {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02") }, - {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcNoteOff, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNoteFade, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNoteFade, 12 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePC, VK_OEM_102, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePC, 86 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePCS, VK_OEM_102, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePCS, 86 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteFade, VK_OEM_PLUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, + {kcNoteFade, 13 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePC, VK_OEM_MINUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, + {kcNotePC, 12 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePCS, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, + {kcNotePCS, 12 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, {kcSetIns0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, {kcSetIns0, '0', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, {kcSetIns1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, |
From: <sv...@op...> - 2024-11-16 18:04:18
|
Author: sagamusix Date: Sat Nov 16 19:04:11 2024 New Revision: 22202 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22202 Log: [Mod] Go back to the same key assignments for Note Fade and PC Events as used before r22194. Default key bindings should keep PC events accessible on ANSI keyboards. Modified: trunk/OpenMPT/mptrack/CommandSet.cpp Modified: trunk/OpenMPT/mptrack/CommandSet.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp Sat Nov 16 14:49:50 2024 (r22201) +++ trunk/OpenMPT/mptrack/CommandSet.cpp Sat Nov 16 19:04:11 2024 (r22202) @@ -258,14 +258,14 @@ {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcNoteOff, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNoteFade, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNoteFade, 12 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePC, VK_OEM_102, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePC, 86 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePCS, VK_OEM_102, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, - {kcNotePCS, 86 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteFade, VK_OEM_PLUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, + {kcNoteFade, 13 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePC, VK_OEM_MINUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, + {kcNotePC, 12 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePCS, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, + {kcNotePCS, 12 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, {kcSetIns0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, {kcSetIns0, '0', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, {kcSetIns1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, @@ -591,10 +591,10 @@ {kcNoteFade, 41 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, {kcNoteFade, VK_OEM_5, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, {kcNoteFade, 43 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePC, VK_OEM_102, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePC, 86 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePCS, VK_OEM_102, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, - {kcNotePCS, 86 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePC, VK_OEM_7, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePC, 40 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePCS, VK_OEM_7, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePCS, 40 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, }; // clang-format on |
From: <sv...@op...> - 2024-11-16 13:49:58
|
Author: sagamusix Date: Sat Nov 16 14:49:50 2024 New Revision: 22201 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22201 Log: [New] Key bindings with IT-like and FT2-like note entry (but otherwise identical keyboard shortcuts) can now be applied directly from the keyboard settings dialog, without the need for external keymap files. Modified: trunk/OpenMPT/mptrack/CommandSet.cpp trunk/OpenMPT/mptrack/CommandSet.h trunk/OpenMPT/mptrack/KeyConfigDlg.cpp trunk/OpenMPT/mptrack/KeyConfigDlg.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/mptrack/CommandSet.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp Sat Nov 16 01:42:07 2024 (r22200) +++ trunk/OpenMPT/mptrack/CommandSet.cpp Sat Nov 16 14:49:50 2024 (r22201) @@ -44,7 +44,7 @@ {kCtxViewComments, kcCommentsStartNotes, kcCommentsStartNoteStops}, }; -constexpr struct +struct DefaultKeybinding { CommandID cmd; uint16 key; // Virtual key code, or scan code if high bit is set @@ -52,7 +52,9 @@ FlagSet<KeyEventType> events; InputTargetContext ctx; Version addedInVersion; -} DefaultKeybindings[] = +}; + +constexpr DefaultKeybinding DefaultKeybindings[] = // clang-format off { {kcFileNew, 'N', ModCtrl, kKeyEventDown, kCtxAllContexts, MPT_V("1.31")}, @@ -255,7 +257,7 @@ {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02") }, + {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, {kcNoteOff, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, {kcNoteFade, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, @@ -523,6 +525,157 @@ }; // clang-format on +constexpr DefaultKeybinding DefaultKeybindingsIT[] = +// clang-format off +{ + {kcClearFieldStepITStyle, 52 | 0x8000, ModNone, kKeyEventDown | kKeyEventRepeat, kCtxViewPatterns, MPT_V("1.32")}, + {kcVPNoteC_0, 44 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteCS0, 31 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteD_0, 45 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteDS0, 32 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteE_0, 46 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteF_0, 47 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteFS0, 34 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteG_0, 48 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteGS0, 35 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteA_1, 49 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteAS1, 36 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteB_1, 50 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + + {kcVPNoteC_1, 16 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteCS1, 3 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteD_1, 17 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteDS1, 4 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteE_1, 18 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteF_1, 19 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteFS1, 6 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteG_1, 20 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteGS1, 7 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteA_2, 21 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteAS2, 8 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteB_2, 22 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteC_2, 23 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteCS2, 10 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteD_2, 24 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteDS2, 11 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteE_2, 25 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteF_2, 26 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteFS2, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteG_2, 27 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + + {kcSetOctave0, '0', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave1, '1', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave2, '2', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave2, VK_NUMPAD2, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave3, '3', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave3, VK_NUMPAD3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave4, '4', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave4, VK_NUMPAD4, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave5, '5', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave5, VK_NUMPAD5, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave6, '6', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave6, VK_NUMPAD6, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave7, '7', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave7, VK_NUMPAD7, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave8, '8', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave8, VK_NUMPAD8, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave9, '9', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteCut, '1', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteOff, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteOff, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteFade, VK_OEM_3, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteFade, 41 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteFade, VK_OEM_5, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteFade, 43 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePC, VK_OEM_102, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePC, 86 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePCS, VK_OEM_102, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePCS, 86 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, +}; +// clang-format on + +constexpr DefaultKeybinding DefaultKeybindingsFT2[] = +// clang-format off +{ + {kcVPNoteC_1, 44 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteCS1, 31 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteD_1, 45 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteDS1, 32 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteE_1, 46 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteF_1, 47 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteFS1, 34 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteG_1, 48 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteGS1, 35 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteA_2, 49 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteAS2, 36 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteB_2, 50 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteC_2, 51 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteCS2, 38 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteD_2, 52 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteDS2, 39 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteE_2, 53 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteFS2, 43 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + + {kcVPNoteC_2, 16 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteCS2, 3 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteD_2, 17 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteDS2, 4 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteE_2, 18 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteF_2, 19 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteFS2, 6 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteG_2, 20 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteGS2, 7 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteA_3, 21 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteAS3, 8 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteB_3, 22 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteC_3, 23 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteCS3, 10 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteD_3, 24 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteDS3, 11 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteE_3, 25 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteF_3, 26 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteFS3, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcVPNoteG_3, 27 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + + {kcSetOctave0, '0', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave1, '1', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave2, '2', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave2, VK_NUMPAD2, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave3, '3', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave3, VK_NUMPAD3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave4, '4', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave4, VK_NUMPAD4, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave5, '5', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave5, VK_NUMPAD5, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave6, '6', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave6, VK_NUMPAD6, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave7, '7', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave7, VK_NUMPAD7, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave8, '8', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave8, VK_NUMPAD8, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave9, '9', ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteOff, VK_CAPITAL, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteOff, 58 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteOff, VK_OEM_102, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteOff, 86 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNoteFade, '1', ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePC, VK_OEM_7, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePC, 40 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePCS, VK_OEM_7, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, + {kcNotePCS, 40 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.32")}, +}; +// clang-format on + }; // namespace #ifdef MPT_ALL_LOGGING @@ -2119,7 +2272,7 @@ void CCommandSet::Copy(const CCommandSet &source) { - m_oldSpecs = source.m_oldSpecs; + m_currentModSpecs = source.m_currentModSpecs; std::copy(std::begin(source.m_commands), std::end(source.m_commands), std::begin(m_commands)); } @@ -2297,7 +2450,7 @@ } } - ApplyDefaultKeybindings(keymapVersion); + ApplyDefaultKeybindings(KeyboardPreset::MPT, keymapVersion); // Fix up old keymaps containing legacy commands that have been merged into other commands static constexpr std::pair<CommandID, CommandID> MergeCommands[] = @@ -2337,28 +2490,60 @@ } -void CCommandSet::LoadDefaultKeymap() +void CCommandSet::LoadDefaultKeymap(KeyboardPreset preset) { for(auto &cmd : m_commands) cmd.kcList.clear(); - ApplyDefaultKeybindings(); + ApplyDefaultKeybindings(KeyboardPreset::MPT); + + if(preset == KeyboardPreset::MPT) + return; + + const auto defaults = (preset == KeyboardPreset::IT) ? mpt::as_span(DefaultKeybindingsIT) : mpt::as_span(DefaultKeybindingsFT2); + // Remove all pre-populated notes + for(CommandID cmd = kcVPStartNotes; cmd <= kcVPEndNotes; cmd = static_cast<CommandID>(cmd + 1)) + { + for(const auto &kc : m_commands[cmd].kcList) + { + EnforceAll(kc, cmd, false); + } + m_commands[cmd].kcList.clear(); + } + // Also remove any other keys that are going to be overwritten + for (const auto &key : defaults) + { + for(const auto &kc : m_commands[key.cmd].kcList) + { + EnforceAll(kc, key.cmd, false); + } + m_commands[key.cmd].kcList.clear(); + } + ApplyDefaultKeybindings(preset); } -void CCommandSet::ApplyDefaultKeybindings(const Version onlyCommandsAfterVersion) +void CCommandSet::ApplyDefaultKeybindings(KeyboardPreset preset, const Version onlyCommandsAfterVersion) { - if(m_oldSpecs) + if(m_currentModSpecs) { - const auto specs = m_oldSpecs; - m_oldSpecs = nullptr; + const auto specs = m_currentModSpecs; + m_currentModSpecs = nullptr; QuickChange_SetEffects(*specs); } std::vector<HKL> layouts(GetKeyboardLayoutList(0, nullptr)); GetKeyboardLayoutList(static_cast<int>(layouts.size()), layouts.data()); + mpt::span<const DefaultKeybinding> defaults; + switch(preset) + { + case KeyboardPreset::MPT: defaults = DefaultKeybindings; break; + case KeyboardPreset::IT: defaults = DefaultKeybindingsIT; break; + case KeyboardPreset::FT2: defaults = DefaultKeybindingsFT2; break; + } + CommandID lastAdded = kcNull; - for(const auto &kb : DefaultKeybindings) + for(const auto &kb : defaults) { if(onlyCommandsAfterVersion != Version{}) { @@ -2567,11 +2752,11 @@ bool CCommandSet::QuickChange_SetEffects(const CModSpecifications &modSpecs) { // Is this already the active key configuration? - if(&modSpecs == m_oldSpecs) + if(&modSpecs == m_currentModSpecs) { return false; } - m_oldSpecs = &modSpecs; + m_currentModSpecs = &modSpecs; KeyCombination kc(kCtxViewPatternsFX, ModNone, 0, kKeyEventDown | kKeyEventRepeat); Modified: trunk/OpenMPT/mptrack/CommandSet.h ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.h Sat Nov 16 01:42:07 2024 (r22200) +++ trunk/OpenMPT/mptrack/CommandSet.h Sat Nov 16 14:49:50 2024 (r22201) @@ -1209,6 +1209,14 @@ }; +enum class KeyboardPreset +{ + MPT, + IT, + FT2, +}; + + enum RuleID { krPreventDuplicate, @@ -1241,7 +1249,7 @@ CommandID FindCmd(uint32 uid) const; bool KeyCombinationConflict(KeyCombination kc1, KeyCombination kc2, bool checkEventConflict = true) const; - void ApplyDefaultKeybindings(const Version onlyCommandsAfterVersion = {}); + void ApplyDefaultKeybindings(KeyboardPreset preset, const Version onlyCommandsAfterVersion = {}); public: CCommandSet(); @@ -1272,12 +1280,12 @@ bool SaveFile(const mpt::PathString &filename); bool LoadFile(const mpt::PathString &filename); bool LoadFile(std::istream &iStrm, const mpt::ustring &filenameDescription); - void LoadDefaultKeymap(); + void LoadDefaultKeymap(KeyboardPreset preset = KeyboardPreset::MPT); static bool MustBeModifierKey(CommandID id); protected: - const CModSpecifications *m_oldSpecs = nullptr; + const CModSpecifications *m_currentModSpecs = nullptr; KeyCommand m_commands[kcNumCommands]; std::bitset<kCtxMaxInputContexts> m_isParentContext[kCtxMaxInputContexts]; std::bitset<kNumRules> m_enforceRule; Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Nov 16 01:42:07 2024 (r22200) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Sat Nov 16 14:49:50 2024 (r22201) @@ -151,6 +151,8 @@ ON_COMMAND(IDC_NOTESREPEAT, &COptionsKeyboard::OnNotesRepeat) ON_COMMAND(IDC_NONOTESREPEAT, &COptionsKeyboard::OnNoNotesRepeat) ON_COMMAND(IDC_RESTORE_KEYMAP, &COptionsKeyboard::OnRestoreDefaultKeymap) + ON_COMMAND(ID_KEYPRESET_IT, &COptionsKeyboard::OnRestoreITKeymap) + ON_COMMAND(ID_KEYPRESET_FT2, &COptionsKeyboard::OnRestoreFT2Keymap) ON_EN_CHANGE(IDC_FIND, &COptionsKeyboard::OnSearchTermChanged) ON_EN_SETFOCUS(IDC_FINDHOTKEY, &COptionsKeyboard::OnClearHotKey) ON_NOTIFY(LVN_ITEMCHANGED, IDC_COMMAND_LIST, &COptionsKeyboard::OnCommandKeySelChanged) @@ -173,6 +175,7 @@ DDX_Control(pDX, IDC_FIND, m_eFind); DDX_Control(pDX, IDC_STATIC1, m_warnIconCtl); DDX_Control(pDX, IDC_KEYREPORT, m_warnText); + DDX_Control(pDX, IDC_RESTORE_KEYMAP, m_restoreDefaultButton); } @@ -208,6 +211,14 @@ m_cmbCategory.SetCurSel(0); UpdateDialog(); + CMenu *splitButtonMenu = new CMenu{}; + if(splitButtonMenu->CreatePopupMenu()) + { + splitButtonMenu->AppendMenu(MF_STRING, ID_KEYPRESET_IT, _T("&Impulse Tracker style")); + splitButtonMenu->AppendMenu(MF_STRING, ID_KEYPRESET_FT2, _T("&Fast Tracker style")); + m_restoreDefaultButton.SetDropDownMenu(splitButtonMenu); // takes ownership of menu pointer + } + m_eCustHotKey.SetOwner(*this); m_eFindHotKey.SetOwner(*this); @@ -1059,10 +1070,10 @@ void COptionsKeyboard::ForceUpdateGUI(bool updateAllKeys) { - m_forceUpdate = true; // m_nCurKeyChoice and m_nCurHotKey haven't changed, yet we still want to update. - int ntmpChoice = m_curKeyChoice; // next call will overwrite m_nCurKeyChoice + m_forceUpdate = true; // m_curKeyChoice and m_curCommand haven't changed, yet we still want to update. + int curChoice = m_curKeyChoice; // next call will overwrite m_curKeyChoice OnCommandKeySelChanged(); // update keychoice list - m_cmbKeyChoice.SetCurSel(ntmpChoice); // select fresh keychoice (thus restoring m_nCurKeyChoice) + m_cmbKeyChoice.SetCurSel(curChoice); // select fresh keychoice (thus restoring m_curKeyChoice) OnKeyChoiceSelect(); // update key data OnSettingsChanged(); // Enable "apply" button @@ -1081,11 +1092,11 @@ } -void COptionsKeyboard::OnRestoreDefaultKeymap() +void COptionsKeyboard::RestoreKeymap(KeyboardPreset preset) { if(Reporting::Confirm("Discard all custom changes and restore default key configuration?", false, true, this) == cnfYes) { - m_localCmdSet->LoadDefaultKeymap(); + m_localCmdSet->LoadDefaultKeymap(preset); ForceUpdateGUI(true); } } Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.h ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.h Sat Nov 16 01:42:07 2024 (r22200) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.h Sat Nov 16 14:49:50 2024 (r22201) @@ -12,7 +12,7 @@ #include "openmpt/all/BuildSettings.hpp" #include "CListCtrl.h" -#include "InputHandler.h" +#include "CommandSet.h" OPENMPT_NAMESPACE_BEGIN @@ -79,6 +79,7 @@ CStatic m_warnIconCtl, m_warnText; CEdit m_eFind; CEdit m_eChordWaitTime; + CSplitButton m_restoreDefaultButton; HICON m_infoIcon = nullptr, m_warnIcon = nullptr; CString m_lastWarning; @@ -116,6 +117,7 @@ void EnableKeyChoice(bool enable); void UpdateWarning(CString text = {}, bool notify = false); + void RestoreKeymap(KeyboardPreset preset); afx_msg LRESULT OnDPIChangedAfterParent(WPARAM, LPARAM); afx_msg void UpdateDialog(); @@ -135,7 +137,9 @@ afx_msg void OnRestoreKeyChoice(); afx_msg void OnLoad(); afx_msg void OnSave(); - afx_msg void OnRestoreDefaultKeymap(); + afx_msg void OnRestoreDefaultKeymap() { RestoreKeymap(KeyboardPreset::MPT); } + afx_msg void OnRestoreITKeymap() { RestoreKeymap(KeyboardPreset::IT); } + afx_msg void OnRestoreFT2Keymap() { RestoreKeymap(KeyboardPreset::FT2); } afx_msg void OnClearHotKey(); afx_msg void OnClearSearch(); afx_msg void OnEnableFindHotKey(); Modified: trunk/OpenMPT/mptrack/mptrack.rc ============================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc Sat Nov 16 01:42:07 2024 (r22200) +++ trunk/OpenMPT/mptrack/mptrack.rc Sat Nov 16 14:49:50 2024 (r22201) @@ -1273,7 +1273,8 @@ EDITTEXT IDC_CHORDDETECTWAITTIME,252,246,30,12,ES_AUTOHSCROLL | ES_NUMBER PUSHBUTTON "&Import Key Map...",IDC_LOAD,6,264,72,13 PUSHBUTTON "&Export Key Map...",IDC_SAVE,84,264,72,13 - PUSHBUTTON "Restore default &configuration",IDC_RESTORE_KEYMAP,162,264,120,12 + CONTROL "Restore default &configuration",IDC_RESTORE_KEYMAP, + "Button",BS_SPLITBUTTON | WS_TABSTOP,162,264,120,12 END IDD_OPTIONS_COLORS DIALOGEX 0, 0, 286, 282 Modified: trunk/OpenMPT/mptrack/resource.h ============================================================================== --- trunk/OpenMPT/mptrack/resource.h Sat Nov 16 01:42:07 2024 (r22200) +++ trunk/OpenMPT/mptrack/resource.h Sat Nov 16 14:49:50 2024 (r22201) @@ -1179,6 +1179,8 @@ #define ID_MAINBAR_SHOW_GLOBALVOLUME 36041 #define ID_MAINBAR_SHOW_VUMETER 36042 #define ID_TREEVIEW_ON_LEFT 36043 +#define ID_KEYPRESET_IT 36044 +#define ID_KEYPRESET_FT2 36045 #define ID_SELECTINST 36100 // From here: Command range [ID_SELECTINST, ID_SELECTINST + MAX_INSTRUMENTS] #define ID_PLUG_RECORDAUTOMATION 37003 |
From: <sv...@op...> - 2024-11-16 00:42:14
|
Author: sagamusix Date: Sat Nov 16 01:42:07 2024 New Revision: 22200 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22200 Log: Merged revision(s) 22199 from trunk/OpenMPT: [Fix] MED: Another attempt at getting volume commands right. If MED Soundstudio for Windows behaviour is to be believed, 7-bit volume should only be applied if the pattern has valid block info. Otherwise it multiplies volume command parameters by 2. Fixes drain from hyperland! (d.f.h).med (https://www.un4seen.com/forum/?topic=15448.msg144105#msg144105) ........ 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 Sat Nov 16 01:39:06 2024 (r22199) +++ branches/OpenMPT-1.31/soundlib/Load_med.cpp Sat Nov 16 01:42:07 2024 (r22200) @@ -406,6 +406,7 @@ const bool softwareMixing : 1; const bool bpmMode : 1; const bool volHex : 1; + const bool vol7bit : 1; }; @@ -426,7 +427,7 @@ case 0x0C: // Set Volume (note: parameters >= 0x80 (only in hex mode?) should set the default instrument volume, which we don't support) if(!ctx.volHex && param < 0x99) m.SetEffectCommand(CMD_VOLUME, static_cast<ModCommand::PARAM>((param >> 4) * 10 + (param & 0x0F))); - else if(ctx.volHex && ctx.version < 3) + else if(ctx.volHex && !ctx.vol7bit) m.SetEffectCommand(CMD_VOLUME, static_cast<ModCommand::PARAM>(std::min(param & 0x7F, 64))); else if(ctx.volHex) m.SetEffectCommand(CMD_VOLUME, static_cast<ModCommand::PARAM>(((param & 0x7F) + 1) / 2)); @@ -1389,6 +1390,7 @@ int16 transpose = NOTE_MIN + 47 + songHeader.playTranspose; uint16 numPages = 0; FileReader cmdExt, commandPages; + bool vol7bit = false; if(version < 1) { @@ -1406,6 +1408,7 @@ numRows = patHeader.numRows + 1; if(patHeader.blockInfoOffset) { + vol7bit = true; auto offset = file.GetPosition(); file.Seek(patHeader.blockInfoOffset); MMDBlockInfo blockInfo; @@ -1444,7 +1447,7 @@ pattern.SetName(patName); LimitMax(numTracks, m_nChannels); - TranslateMEDPatternContext context{transpose, numTracks, version, rowsPerBeat, is8Ch, softwareMixing, bpmMode, volHex}; + TranslateMEDPatternContext context{transpose, numTracks, version, rowsPerBeat, is8Ch, softwareMixing, bpmMode, volHex, vol7bit}; needInstruments |= TranslateMEDPattern(file, cmdExt, pattern, context, false); for(uint16 page = 0; page < numPages; page++) |
From: <sv...@op...> - 2024-11-16 00:39:13
|
Author: sagamusix Date: Sat Nov 16 01:39:06 2024 New Revision: 22199 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22199 Log: [Fix] MED: Another attempt at getting volume commands right. If MED Soundstudio for Windows behaviour is to be believed, 7-bit volume should only be applied if the pattern has valid block info. Otherwise it multiplies volume command parameters by 2. Fixes drain from hyperland! (d.f.h).med (https://www.un4seen.com/forum/?topic=15448.msg144105#msg144105) Modified: trunk/OpenMPT/soundlib/Load_med.cpp Modified: trunk/OpenMPT/soundlib/Load_med.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_med.cpp Sat Nov 16 00:40:57 2024 (r22198) +++ trunk/OpenMPT/soundlib/Load_med.cpp Sat Nov 16 01:39:06 2024 (r22199) @@ -429,6 +429,7 @@ const bool softwareMixing : 1; const bool bpmMode : 1; const bool volHex : 1; + const bool vol7bit : 1; }; @@ -449,7 +450,7 @@ case 0x0C: // Set Volume (note: parameters >= 0x80 (only in hex mode?) should set the default instrument volume, which we don't support) if(!ctx.volHex && param < 0x99) m.SetEffectCommand(CMD_VOLUME, static_cast<ModCommand::PARAM>((param >> 4) * 10 + (param & 0x0F))); - else if(ctx.volHex && ctx.version < 3) + else if(ctx.volHex && !ctx.vol7bit) m.SetEffectCommand(CMD_VOLUME, static_cast<ModCommand::PARAM>(std::min(param & 0x7F, 64))); else if(ctx.volHex) m.SetEffectCommand(CMD_VOLUME, static_cast<ModCommand::PARAM>(((param & 0x7F) + 1) / 2)); @@ -1579,6 +1580,7 @@ int16 transpose = NOTE_MIN + 47 + songHeader.playTranspose; uint16 numPages = 0; FileReader cmdExt, commandPages; + bool vol7bit = false; if(version < 1) { @@ -1596,6 +1598,7 @@ numRows = patHeader.numRows + 1; if(patHeader.blockInfoOffset) { + vol7bit = true; auto offset = file.GetPosition(); file.Seek(patHeader.blockInfoOffset); MMDBlockInfo blockInfo; @@ -1634,7 +1637,7 @@ pattern.SetName(patName); LimitMax(numTracks, GetNumChannels()); - TranslateMEDPatternContext context{transpose, numTracks, version, rowsPerBeat, is8Ch, softwareMixing, bpmMode, volHex}; + TranslateMEDPatternContext context{transpose, numTracks, version, rowsPerBeat, is8Ch, softwareMixing, bpmMode, volHex, vol7bit}; needInstruments |= TranslateMEDPattern(file, cmdExt, pattern, context, false); for(uint16 page = 0; page < numPages; page++) |
From: <sv...@op...> - 2024-11-15 23:41:05
|
Author: sagamusix Date: Sat Nov 16 00:40:57 2024 New Revision: 22198 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22198 Log: [Fix] Fix mis-merge. Modified: branches/OpenMPT-1.31/mptrack/CommandSet.h Modified: branches/OpenMPT-1.31/mptrack/CommandSet.h ============================================================================== --- branches/OpenMPT-1.31/mptrack/CommandSet.h Sat Nov 16 00:32:28 2024 (r22197) +++ branches/OpenMPT-1.31/mptrack/CommandSet.h Sat Nov 16 00:40:57 2024 (r22198) @@ -328,7 +328,7 @@ kcToggleOverflowPaste, kcToggleNoteOffRecordPC, kcToggleNoteOffRecordMIDI, - kcEndPatternEditMisc = kcToggleNoteOffRecordMIDI, + kcEndPatternMisc = kcToggleNoteOffRecordMIDI, kcStartChannelKeys, kcChannelMute = kcStartChannelKeys, |
From: <sv...@op...> - 2024-11-15 23:32:41
|
Author: sagamusix Date: Sat Nov 16 00:32:28 2024 New Revision: 22197 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22197 Log: Merged revision(s) 22190 from trunk/OpenMPT: [Mod] Rename automatically-generated keyboard shortcuts to something more identifiable. These names are still shown in the conflict list and can thus be confusing. [Mod] Rearrange a few keyboard shortcuts to group them more logically. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/mptrack/CommandSet.cpp branches/OpenMPT-1.31/mptrack/CommandSet.h branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp Modified: branches/OpenMPT-1.31/mptrack/CommandSet.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/CommandSet.cpp Fri Nov 15 23:38:02 2024 (r22196) +++ branches/OpenMPT-1.31/mptrack/CommandSet.cpp Sat Nov 16 00:32:28 2024 (r22197) @@ -963,38 +963,38 @@ {KeyCommand::Hidden, kcSetFXDummy, _T("FX Dummy") }, {1294, kcSetFXmacroSlide, _T("Smooth MIDI Macro Slide")}, {1295, kcSetFXdelaycut, _T("Combined Note Delay and Note Cut")}, - {KeyCommand::Hidden, kcPatternJumpDownh1Select, _T("kcPatternJumpDownh1Select")}, - {KeyCommand::Hidden, kcPatternJumpUph1Select, _T("kcPatternJumpUph1Select")}, - {KeyCommand::Hidden, kcPatternSnapDownh1Select, _T("kcPatternSnapDownh1Select")}, - {KeyCommand::Hidden, kcPatternSnapUph1Select, _T("kcPatternSnapUph1Select")}, - {KeyCommand::Hidden, kcNavigateDownSelect, _T("kcNavigateDownSelect")}, - {KeyCommand::Hidden, kcNavigateUpSelect, _T("kcNavigateUpSelect")}, - {KeyCommand::Hidden, kcNavigateLeftSelect, _T("kcNavigateLeftSelect")}, - {KeyCommand::Hidden, kcNavigateRightSelect, _T("kcNavigateRightSelect")}, - {KeyCommand::Hidden, kcNavigateNextChanSelect, _T("kcNavigateNextChanSelect")}, - {KeyCommand::Hidden, kcNavigatePrevChanSelect, _T("kcNavigatePrevChanSelect")}, - {KeyCommand::Hidden, kcHomeHorizontalSelect, _T("kcHomeHorizontalSelect")}, - {KeyCommand::Hidden, kcHomeVerticalSelect, _T("kcHomeVerticalSelect")}, - {KeyCommand::Hidden, kcHomeAbsoluteSelect, _T("kcHomeAbsoluteSelect")}, - {KeyCommand::Hidden, kcEndHorizontalSelect, _T("kcEndHorizontalSelect")}, - {KeyCommand::Hidden, kcEndVerticalSelect, _T("kcEndVerticalSelect")}, - {KeyCommand::Hidden, kcEndAbsoluteSelect, _T("kcEndAbsoluteSelect")}, + {KeyCommand::Hidden, kcPatternJumpDownh1Select, _T("Jump down by measure select")}, + {KeyCommand::Hidden, kcPatternJumpUph1Select, _T("Jump up by measure select")}, + {KeyCommand::Hidden, kcPatternSnapDownh1Select, _T("Snap down to measure select")}, + {KeyCommand::Hidden, kcPatternSnapUph1Select, _T("Snap up to measure select")}, + {KeyCommand::Hidden, kcNavigateDownSelect, _T("Select to Down")}, + {KeyCommand::Hidden, kcNavigateUpSelect, _T("Select to Up")}, + {KeyCommand::Hidden, kcNavigateLeftSelect, _T("Select to Left")}, + {KeyCommand::Hidden, kcNavigateRightSelect, _T("Select to Right")}, + {KeyCommand::Hidden, kcNavigateNextChanSelect, _T("Select to Next Channel")}, + {KeyCommand::Hidden, kcNavigatePrevChanSelect, _T("Select to Previous Channel")}, + {KeyCommand::Hidden, kcHomeHorizontalSelect, _T("Select to First Channel")}, + {KeyCommand::Hidden, kcHomeVerticalSelect, _T("Select to First Row")}, + {KeyCommand::Hidden, kcHomeAbsoluteSelect, _T("Selecto to First Row / Channel")}, + {KeyCommand::Hidden, kcEndHorizontalSelect, _T("Select to Last Channel")}, + {KeyCommand::Hidden, kcEndVerticalSelect, _T("Select to Last Row")}, + {KeyCommand::Hidden, kcEndAbsoluteSelect, _T("Select to Last Row /channel")}, {KeyCommand::Hidden, kcSelectWithNav, _T("kcSelectWithNav")}, {KeyCommand::Hidden, kcSelectOffWithNav, _T("kcSelectOffWithNav")}, {KeyCommand::Hidden, kcCopySelectWithNav, _T("kcCopySelectWithNav")}, {KeyCommand::Hidden, kcCopySelectOffWithNav, _T("kcCopySelectOffWithNav")}, {1316 | KeyCommand::Dummy, kcChordModifier, _T("Chord Modifier")}, - {1317 | KeyCommand::Dummy, kcSetSpacing, _T("Set edit step on note entry")}, - {KeyCommand::Hidden, kcSetSpacing0, _T("")}, - {KeyCommand::Hidden, kcSetSpacing1, _T("")}, - {KeyCommand::Hidden, kcSetSpacing2, _T("")}, - {KeyCommand::Hidden, kcSetSpacing3, _T("")}, - {KeyCommand::Hidden, kcSetSpacing4, _T("")}, - {KeyCommand::Hidden, kcSetSpacing5, _T("")}, - {KeyCommand::Hidden, kcSetSpacing6, _T("")}, - {KeyCommand::Hidden, kcSetSpacing7, _T("")}, - {KeyCommand::Hidden, kcSetSpacing8, _T("")}, - {KeyCommand::Hidden, kcSetSpacing9, _T("")}, + {1317 | KeyCommand::Dummy, kcSetSpacing, _T("Edit Step Modifier")}, + {KeyCommand::Hidden, kcSetSpacing0, _T("Set Edit Step to 0")}, + {KeyCommand::Hidden, kcSetSpacing1, _T("Set Edit Step to 1")}, + {KeyCommand::Hidden, kcSetSpacing2, _T("Set Edit Step to 2")}, + {KeyCommand::Hidden, kcSetSpacing3, _T("Set Edit Step to 3")}, + {KeyCommand::Hidden, kcSetSpacing4, _T("Set Edit Step to 4")}, + {KeyCommand::Hidden, kcSetSpacing5, _T("Set Edit Step to 5")}, + {KeyCommand::Hidden, kcSetSpacing6, _T("Set Edit Step to 6")}, + {KeyCommand::Hidden, kcSetSpacing7, _T("Set Edit Step to 7")}, + {KeyCommand::Hidden, kcSetSpacing8, _T("Set Edit Step to 8")}, + {KeyCommand::Hidden, kcSetSpacing9, _T("Set Edit Step to 9")}, {KeyCommand::Hidden, kcCopySelectWithSelect, _T("kcCopySelectWithSelect")}, {KeyCommand::Hidden, kcCopySelectOffWithSelect, _T("kcCopySelectOffWithSelect")}, {KeyCommand::Hidden, kcSelectWithCopySelect, _T("kcSelectWithCopySelect")}, @@ -1011,10 +1011,10 @@ {1339, kcPatternJumpUph2, _T("Jump up by beat")}, {1340, kcPatternSnapDownh2, _T("Snap down to beat")}, {1341, kcPatternSnapUph2, _T("Snap up to beat")}, - {KeyCommand::Hidden, kcPatternJumpDownh2Select, _T("kcPatternJumpDownh2Select")}, - {KeyCommand::Hidden, kcPatternJumpUph2Select, _T("kcPatternJumpUph2Select")}, - {KeyCommand::Hidden, kcPatternSnapDownh2Select, _T("kcPatternSnapDownh2Select")}, - {KeyCommand::Hidden, kcPatternSnapUph2Select, _T("kcPatternSnapUph2Select")}, + {KeyCommand::Hidden, kcPatternJumpDownh2Select, _T("Jump down by beat select")}, + {KeyCommand::Hidden, kcPatternJumpUph2Select, _T("Jump up by beat select")}, + {KeyCommand::Hidden, kcPatternSnapDownh2Select, _T("Snap down to beat select")}, + {KeyCommand::Hidden, kcPatternSnapUph2Select, _T("Snap up to beat select")}, {1346, kcFileOpen, _T("File/Open")}, {1347, kcFileNew, _T("File/New")}, {1348, kcFileClose, _T("File/Close")}, @@ -1085,8 +1085,8 @@ {1685, kcSwitchToOrderList, _T("Switch to Order List")}, {1686, kcEditMixPasteITStyle, _T("Mix Paste (IT Style)")}, {1687, kcApproxRealBPM, _T("Show approx. real BPM")}, - {KeyCommand::Hidden, kcNavigateDownBySpacingSelect, _T("kcNavigateDownBySpacingSelect")}, - {KeyCommand::Hidden, kcNavigateUpBySpacingSelect, _T("kcNavigateUpBySpacingSelect")}, + {KeyCommand::Hidden, kcNavigateDownBySpacingSelect, _T("Up-By-Spacing-Select")}, + {KeyCommand::Hidden, kcNavigateUpBySpacingSelect, _T("Down-By-Spacing-Select")}, {1691, kcNavigateDownBySpacing, _T("Navigate down by spacing")}, {1692, kcNavigateUpBySpacing, _T("Navigate up by spacing")}, {1693, kcPrevDocument, _T("Previous Document")}, @@ -1109,12 +1109,12 @@ {1779, kcSoloChnOnPatTransition, _T("Solo channel on pattern transition")}, {1780, kcTimeAtRow, _T("Show playback time at current row")}, {1781, kcViewMIDImapping, _T("View MIDI Mapping")}, - {1782, kcVSTGUIPrevPresetJump, _T("Plugin preset backward jump")}, - {1783, kcVSTGUINextPresetJump, _T("Plugin preset forward jump")}, + {1782, kcVSTGUIPrevPresetJump, _T("Plugin Preset -10")}, + {1783, kcVSTGUINextPresetJump, _T("Plugin Preset +10")}, {1784, kcSampleInvert, _T("Invert Sample Phase")}, {1785, kcSampleSignUnsign, _T("Signed / Unsigned Conversion")}, {1786, kcChannelReset, _T("Reset Channel")}, - {1787, kcToggleOverflowPaste, _T("Toggle overflow paste")}, + {1787, kcToggleOverflowPaste, _T("Toggle Overflow Paste")}, {1788, kcNotePC, _T("Parameter Control")}, {1789, kcNotePCS, _T("Parameter Control (smooth)")}, {1790, kcSampleRemoveDCOffset, _T("Remove DC Offset")}, @@ -1125,10 +1125,10 @@ {1795, kcOrderlistNavigateRight, _T("Next Order")}, {1796, kcOrderlistNavigateFirst, _T("First Order")}, {1797, kcOrderlistNavigateLast, _T("Last Order")}, - {KeyCommand::Hidden, kcOrderlistNavigateLeftSelect, _T("kcOrderlistNavigateLeftSelect")}, - {KeyCommand::Hidden, kcOrderlistNavigateRightSelect, _T("kcOrderlistNavigateRightSelect")}, - {KeyCommand::Hidden, kcOrderlistNavigateFirstSelect, _T("kcOrderlistNavigateFirstSelect")}, - {KeyCommand::Hidden, kcOrderlistNavigateLastSelect, _T("kcOrderlistNavigateLastSelect")}, + {KeyCommand::Hidden, kcOrderlistNavigateLeftSelect, _T("Left-Select")}, + {KeyCommand::Hidden, kcOrderlistNavigateRightSelect, _T("Right-Select")}, + {KeyCommand::Hidden, kcOrderlistNavigateFirstSelect, _T("First-Select")}, + {KeyCommand::Hidden, kcOrderlistNavigateLastSelect, _T("Last-Select")}, {1802, kcOrderlistEditDelete, _T("Delete Order")}, {1803, kcOrderlistEditInsert, _T("Insert Order")}, {1804, kcOrderlistEditPattern, _T("Edit Pattern")}, @@ -1144,26 +1144,26 @@ {1814, kcOrderlistPat7, _T("Pattern index digit 7")}, {1815, kcOrderlistPat8, _T("Pattern index digit 8")}, {1816, kcOrderlistPat9, _T("Pattern index digit 9")}, - {1817, kcOrderlistPatPlus, _T("Increase pattern index ")}, - {1818, kcOrderlistPatMinus, _T("Decrease pattern index")}, + {1817, kcOrderlistPatPlus, _T("Increase Pattern Index")}, + {1818, kcOrderlistPatMinus, _T("Decrease Pattern Index")}, {1819, kcShowSplitKeyboardSettings, _T("Split Keyboard Settings dialog")}, {1820, kcEditPushForwardPaste, _T("Push Forward Paste (Insert)")}, - {1821, kcInstrumentEnvelopePointMoveLeft, _T("Move envelope point left")}, - {1822, kcInstrumentEnvelopePointMoveRight, _T("Move envelope point right")}, - {1823, kcInstrumentEnvelopePointMoveUp, _T("Move envelope point up")}, - {1824, kcInstrumentEnvelopePointMoveDown, _T("Move envelope point down")}, - {1825, kcInstrumentEnvelopePointPrev, _T("Select previous envelope point")}, - {1826, kcInstrumentEnvelopePointNext, _T("Select next envelope point")}, + {1821, kcInstrumentEnvelopePointMoveLeft, _T("Move Envelope Point Left")}, + {1822, kcInstrumentEnvelopePointMoveRight, _T("Move Envelope Point Right")}, + {1823, kcInstrumentEnvelopePointMoveUp, _T("Move envelope Point Up")}, + {1824, kcInstrumentEnvelopePointMoveDown, _T("Move Envelope Point Down")}, + {1825, kcInstrumentEnvelopePointPrev, _T("Select Previous Envelope Point")}, + {1826, kcInstrumentEnvelopePointNext, _T("Select Next Envelope Point")}, {1827, kcInstrumentEnvelopePointInsert, _T("Insert Envelope Point")}, {1828, kcInstrumentEnvelopePointRemove, _T("Remove Envelope Point")}, {1829, kcInstrumentEnvelopeSetLoopStart, _T("Set Loop Start")}, {1830, kcInstrumentEnvelopeSetLoopEnd, _T("Set Loop End")}, - {1831, kcInstrumentEnvelopeSetSustainLoopStart, _T("Set sustain loop start")}, - {1832, kcInstrumentEnvelopeSetSustainLoopEnd, _T("Set sustain loop end")}, - {1833, kcInstrumentEnvelopeToggleReleaseNode, _T("Toggle release node")}, - {1834, kcInstrumentEnvelopePointMoveUp8, _T("Move envelope point up (Coarse)")}, - {1835, kcInstrumentEnvelopePointMoveDown8, _T("Move envelope point down (Coarse)")}, - {1836, kcPatternEditPCNotePlugin, _T("Toggle PC Event/instrument plugin editor")}, + {1831, kcInstrumentEnvelopeSetSustainLoopStart, _T("Set Sustain Loop Start")}, + {1832, kcInstrumentEnvelopeSetSustainLoopEnd, _T("Set Sustain Loop End")}, + {1833, kcInstrumentEnvelopeToggleReleaseNode, _T("Toggle Release Mode")}, + {1834, kcInstrumentEnvelopePointMoveUp8, _T("Move Envelope Point Up (Coarse)")}, + {1835, kcInstrumentEnvelopePointMoveDown8, _T("Move Envelope Point Down (Coarse)")}, + {1836, kcPatternEditPCNotePlugin, _T("Toggle PC Event/Instrument Plugin Editor")}, {1837, kcInstrumentEnvelopeZoomIn, _T("Zoom In")}, {1838, kcInstrumentEnvelopeZoomOut, _T("Zoom Out")}, {1839, kcVSTGUIToggleRecordParams, _T("Toggle Parameter Recording")}, @@ -1192,16 +1192,16 @@ {1862, kcDecreaseSpacing, _T("Decrease Edit Step")}, {1863, kcSampleAutotune, _T("Tune Sample to given Note")}, {1864, kcFileCloseAll, _T("File/Close All")}, - {KeyCommand::Hidden, kcSetOctaveStop0, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop1, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop2, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop3, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop4, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop5, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop6, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop7, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop8, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop9, _T("")}, + {KeyCommand::Hidden, kcSetOctaveStop0, _T("Set Octave 0")}, + {KeyCommand::Hidden, kcSetOctaveStop1, _T("Set Octave 1")}, + {KeyCommand::Hidden, kcSetOctaveStop2, _T("Set Octave 2")}, + {KeyCommand::Hidden, kcSetOctaveStop3, _T("Set Octave 3")}, + {KeyCommand::Hidden, kcSetOctaveStop4, _T("Set Octave 4")}, + {KeyCommand::Hidden, kcSetOctaveStop5, _T("Set Octave 5")}, + {KeyCommand::Hidden, kcSetOctaveStop6, _T("Set Octave 6")}, + {KeyCommand::Hidden, kcSetOctaveStop7, _T("Set Octave 7")}, + {KeyCommand::Hidden, kcSetOctaveStop8, _T("Set Octave 8")}, + {KeyCommand::Hidden, kcSetOctaveStop9, _T("Set Octave 9")}, {1875, kcOrderlistLockPlayback, _T("Lock Playback to Selection")}, {1876, kcOrderlistUnlockPlayback, _T("Unlock Playback")}, {1877, kcChannelSettings, _T("Quick Channel Settings")}, @@ -1334,10 +1334,10 @@ {2029, kcViewToggle, _T("Toggle Between Upper / Lower View") }, {2030, kcFileSaveOPL, _T("File/Export OPL Register Dump") }, {2031, kcSampleLoadRaw, _T("Load Raw Sample")}, - {2032, kcTogglePatternPlayRow, _T("Toggle row playback when navigating")}, + {2032, kcTogglePatternPlayRow, _T("Toggle Row Playback when Navigating")}, {2033, kcInsNoteMapTransposeSamples, _T("Transpose Samples / Reset Map") }, - {KeyCommand::Hidden, kcPrevEntryInColumnSelect, _T("kcPrevEntryInColumnSelect")}, - {KeyCommand::Hidden, kcNextEntryInColumnSelect, _T("kcNextEntryInColumnSelect")}, + {KeyCommand::Hidden, kcPrevEntryInColumnSelect, _T("Select to previous entry in column")}, + {KeyCommand::Hidden, kcNextEntryInColumnSelect, _T("Select to next entry in column")}, {2034, kcTreeViewOpen, _T("Open / View Item")}, {2035, kcTreeViewPlay, _T("Play Item")}, {2036, kcTreeViewInsert, _T("Insert Item")}, Modified: branches/OpenMPT-1.31/mptrack/CommandSet.h ============================================================================== --- branches/OpenMPT-1.31/mptrack/CommandSet.h Fri Nov 15 23:38:02 2024 (r22196) +++ branches/OpenMPT-1.31/mptrack/CommandSet.h Sat Nov 16 00:32:28 2024 (r22197) @@ -87,11 +87,11 @@ kcFileSaveMidi, kcFileSaveOPL, kcFileExportCompat, - kcPrevDocument, - kcNextDocument, kcFileImportMidiLib, kcFileAddSoundBank, - kcEndFile = kcFileAddSoundBank, + kcPrevDocument, + kcNextDocument, + kcEndFile = kcNextDocument, kcStartPlayCommands, kcPlayPauseSong = kcStartPlayCommands, @@ -276,7 +276,9 @@ kcEndSelect = kcCopyAndLoseSelection, kcStartPatternClipboard, - kcCutPatternChannel = kcStartPatternClipboard, + kcCursorCopy = kcStartPatternClipboard, + kcCursorPaste, + kcCutPatternChannel, kcCutPattern, kcCopyPatternChannel, kcCopyPattern, @@ -287,13 +289,13 @@ kcClipboardNext, kcEndPatternClipboard = kcClipboardNext, - kcStartPatternEditMisc, - kcToggleFollowSong = kcStartPatternEditMisc, - kcCursorCopy, - kcCursorPaste, + kcStartPatternMisc, + kcToggleFollowSong = kcStartPatternMisc, + kcChangeLoopStatus, + kcPatternPlayRow, + kcPatternGoto, kcFindInstrument, kcPatternRecord, - kcPatternPlayRow, kcSetSpacing, kcSetSpacing0, kcSetSpacing1, @@ -308,16 +310,14 @@ kcIncreaseSpacing, kcDecreaseSpacing, kcSwitchToOrderList, - kcNewPattern, - kcDuplicatePattern, - kcSplitPattern, kcPatternEditPCNotePlugin, kcTogglePluginEditor, kcShowNoteProperties, kcShowPatternProperties, kcShowSplitKeyboardSettings, + kcPatternVisualizeEffect, + kcPatternOpenRandomizer, kcChordEditor, - kcChangeLoopStatus, kcShowEditMenu, kcShowChannelCtxMenu, kcShowChannelPluginCtxMenu, @@ -349,6 +349,7 @@ kcChannelMoveRight, kcChannelSettings, kcEndChannelKeys = kcChannelSettings, + kcBeginTranspose, kcTransposeUp = kcBeginTranspose, kcTransposeDown, @@ -373,18 +374,22 @@ kcDataEntryUpCoarseStop, kcDataEntryDownCoarseStop, kcEndTransposeStop = kcDataEntryDownCoarseStop, + + kcStartPatternEditMisc, + kcNewPattern = kcStartPatternEditMisc, + kcDuplicatePattern, + kcSplitPattern, kcPatternAmplify, kcPatternInterpolateNote, kcPatternInterpolateInstr, kcPatternInterpolateVol, kcPatternInterpolateEffect, - kcPatternVisualizeEffect, - kcPatternOpenRandomizer, - kcPatternGoto, kcPatternSetInstrument, kcPatternSetInstrumentNotEmpty, kcPatternGrowSelection, kcPatternShrinkSelection, + kcEndPatternEditMisc = kcPatternShrinkSelection, + // kcClearSelection, kcClearRow, kcClearField, @@ -714,7 +719,8 @@ //Volume stuff kcSetVolumeStart, - kcSetVolume0 = kcSetVolumeStart, + kcStartVolumeDigits = kcSetVolumeStart, + kcSetVolume0 = kcStartVolumeDigits, kcSetVolume1, kcSetVolume2, kcSetVolume3, @@ -724,22 +730,25 @@ kcSetVolume7, kcSetVolume8, kcSetVolume9, - kcSetVolumeVol, //v - kcSetVolumePan, //p - kcSetVolumeVolSlideUp, //c - kcSetVolumeVolSlideDown, //d - kcSetVolumeFineVolUp, //a - kcSetVolumeFineVolDown, //b - kcSetVolumeVibratoSpd, //u - kcSetVolumeVibrato, //h - kcSetVolumeXMPanLeft, //l - kcSetVolumeXMPanRight, //r - kcSetVolumePortamento, //g - kcSetVolumeITPortaUp, //f - kcSetVolumeITPortaDown, //e - kcSetVolumeITUnused, //: - kcSetVolumeITOffset, //o - kcSetVolumeEnd = kcSetVolumeITOffset, + kcEndVolumeDigits = kcSetVolume9, + kcStartVolumeCommands, + kcSetVolumeVol = kcStartVolumeCommands, //v + kcSetVolumePan, //p + kcSetVolumeVolSlideUp, //c + kcSetVolumeVolSlideDown, //d + kcSetVolumeFineVolUp, //a + kcSetVolumeFineVolDown, //b + kcSetVolumeVibratoSpd, //u + kcSetVolumeVibrato, //h + kcSetVolumeXMPanLeft, //l + kcSetVolumeXMPanRight, //r + kcSetVolumePortamento, //g + kcSetVolumeITPortaUp, //f + kcSetVolumeITPortaDown, //e + kcSetVolumeITUnused, //: + kcSetVolumeITOffset, //o + kcEndVolumeCommands = kcSetVolumeITOffset, + kcSetVolumeEnd = kcEndVolumeCommands, //Effect params kcSetFXParam0, @@ -1026,13 +1035,13 @@ kcOrderlistPatIgnore, kcOrderlistPatInvalid, kcEndOrderlistNum = kcOrderlistPatInvalid, + kcStartOrderlistMisc, // Playback lock - kcStartOrderlistLock, - kcOrderlistLockPlayback = kcStartOrderlistLock, + kcOrderlistLockPlayback = kcStartOrderlistMisc, kcOrderlistUnlockPlayback, - kcEndOrderlistLock = kcOrderlistUnlockPlayback, kcOrderlistStreamExport, - kcEndOrderlistCommands = kcOrderlistStreamExport, + kcEndOrderlistMisc = kcOrderlistStreamExport, + kcEndOrderlistCommands = kcEndOrderlistMisc, kcStartChnSettingsCommands, kcChnSettingsPrev = kcStartChnSettingsCommands, Modified: branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp Fri Nov 15 23:38:02 2024 (r22196) +++ branches/OpenMPT-1.31/mptrack/KeyConfigDlg.cpp Sat Nov 16 00:32:28 2024 (r22197) @@ -258,8 +258,8 @@ newCat.AddCommands(kcClearRow, kcInsertWholeRowGlobal, true); newCat.AddCommands(kcStartChannelKeys, kcEndChannelKeys, true); newCat.AddCommands(kcBeginTranspose, kcEndTranspose, true); - newCat.AddCommands(kcPatternAmplify, kcPatternShrinkSelection, true); newCat.AddCommands(kcStartPatternEditMisc, kcEndPatternEditMisc, true); + newCat.AddCommands(kcStartPatternMisc, kcEndPatternMisc, true); commandCategories.push_back(newCat); } |
From: <sv...@op...> - 2024-11-15 22:38:16
|
Author: sagamusix Date: Fri Nov 15 23:38:02 2024 New Revision: 22196 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22196 Log: [Fix] When grouped view is not available, don't allow key choice editing to start when clicking in the second column of an (emulated) group header. Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Fri Nov 15 23:27:37 2024 (r22195) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Fri Nov 15 23:38:02 2024 (r22196) @@ -698,7 +698,7 @@ void COptionsKeyboard::OnListenForKeysFromList(NMHDR *pNMHDR, LRESULT *) { auto hdr = reinterpret_cast<const NMLISTVIEW *>(pNMHDR); - if(hdr->iSubItem == 1) + if(m_curCommand != kcNull && hdr->iSubItem == 1) OnListenForKeys(); } |
From: <sv...@op...> - 2024-11-15 22:27:43
|
Author: sagamusix Date: Fri Nov 15 23:27:37 2024 New Revision: 22195 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22195 Log: Merged revision(s) 22191, 22194 from trunk/OpenMPT: [Fix] File/Append shortcut didn't work. ........ [Fix] Special note keys (cut/off/fade/PC/PCs) were not available in the default key map on various keyboard layouts (https://bugs.openmpt.org/view.php?id=1838). ........ [Mod] OpenMPT: Version is now 1.31.12.02 Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/common/versionNumber.h branches/OpenMPT-1.31/mptrack/CommandSet.cpp branches/OpenMPT-1.31/mptrack/MainFrm.cpp Modified: branches/OpenMPT-1.31/common/versionNumber.h ============================================================================== --- branches/OpenMPT-1.31/common/versionNumber.h Fri Nov 15 23:25:54 2024 (r22194) +++ branches/OpenMPT-1.31/common/versionNumber.h Fri Nov 15 23:27:37 2024 (r22195) @@ -18,6 +18,6 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 31 #define VER_MINOR 12 -#define VER_MINORMINOR 01 +#define VER_MINORMINOR 02 OPENMPT_NAMESPACE_END Modified: branches/OpenMPT-1.31/mptrack/CommandSet.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/CommandSet.cpp Fri Nov 15 23:25:54 2024 (r22194) +++ branches/OpenMPT-1.31/mptrack/CommandSet.cpp Fri Nov 15 23:27:37 2024 (r22195) @@ -247,10 +247,15 @@ {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNoteFade, VK_OEM_PLUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNotePC, VK_OEM_MINUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNotePCS, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, + {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02") }, + {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteOff, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteFade, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteFade, 12 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePC, VK_OEM_102, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePC, 86 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePCS, VK_OEM_102, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePCS, 86 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, {kcSetIns0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, {kcSetIns0, '0', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, {kcSetIns1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, Modified: branches/OpenMPT-1.31/mptrack/MainFrm.cpp ============================================================================== --- branches/OpenMPT-1.31/mptrack/MainFrm.cpp Fri Nov 15 23:25:54 2024 (r22194) +++ branches/OpenMPT-1.31/mptrack/MainFrm.cpp Fri Nov 15 23:27:37 2024 (r22195) @@ -2467,6 +2467,7 @@ //D'oh!! moddoc isn't a CWnd so we have to handle its messages and pass them on. + case kcFileAppend: case kcFileSaveAs: case kcFileSaveCopy: case kcFileSaveAsWave: |
From: <sv...@op...> - 2024-11-15 22:26:13
|
Author: sagamusix Date: Fri Nov 15 23:25:54 2024 New Revision: 22194 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22194 Log: [Fix] Special note keys (cut/off/fade/PC/PCs) were not available in the default key map on various keyboard layouts (https://bugs.openmpt.org/view.php?id=1838). Modified: trunk/OpenMPT/mptrack/CommandSet.cpp Modified: trunk/OpenMPT/mptrack/CommandSet.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp Fri Nov 15 23:08:19 2024 (r22193) +++ trunk/OpenMPT/mptrack/CommandSet.cpp Fri Nov 15 23:25:54 2024 (r22194) @@ -255,10 +255,15 @@ {kcSetOctave9, VK_NUMPAD9, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcChordModifier, VK_SHIFT, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, {kcNoteCut, VK_OEM_3, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNoteFade, VK_OEM_PLUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNotePC, VK_OEM_MINUS, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, - {kcNotePCS, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31")}, + {kcNoteCut, 41 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02") }, + {kcNoteOff, VK_OEM_PLUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteOff, 13 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteFade, VK_OEM_MINUS, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNoteFade, 12 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePC, VK_OEM_102, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePC, 86 | 0x8000, ModNone, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePCS, VK_OEM_102, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, + {kcNotePCS, 86 | 0x8000, ModShift, kKeyEventDown, kCtxViewPatternsNote, MPT_V("1.31.12.02")}, {kcSetIns0, VK_NUMPAD0, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, {kcSetIns0, '0', ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, {kcSetIns1, VK_NUMPAD1, ModNone, kKeyEventDown, kCtxViewPatternsIns, MPT_V("1.31")}, |
From: <sv...@op...> - 2024-11-15 22:08:38
|
Author: sagamusix Date: Fri Nov 15 23:08:19 2024 New Revision: 22193 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22193 Log: [Fix] Add explicit constructor for CommandCategory::Range to make VS2017 happy. Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.h Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.h ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.h Fri Nov 15 22:52:54 2024 (r22192) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.h Fri Nov 15 23:08:19 2024 (r22193) @@ -28,6 +28,7 @@ struct Range { + Range(CommandID f, CommandID l, const TCHAR *n) : first{f}, last{l}, name{n} {} const CommandID first, last; const CString name; }; |
From: <sv...@op...> - 2024-11-15 21:53:03
|
Author: sagamusix Date: Fri Nov 15 22:52:54 2024 New Revision: 22192 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22192 Log: [Imp] Redesign keyboard config dialog. The list of shortcuts now shows currently assigned key choices so shortcuts no longer have to be clicked individually to figure out which keys they are assigned to. The error log has been replaced with a display for the currently selected key choice whether it conflicts or not. "Find by hotkey" is no longer a keyboard focus trap. Categories in keyboard contexts now have names in their headers. etc... Modified: trunk/OpenMPT/mptrack/CListCtrl.h trunk/OpenMPT/mptrack/CommandSet.cpp trunk/OpenMPT/mptrack/CommandSet.h trunk/OpenMPT/mptrack/InputHandler.cpp trunk/OpenMPT/mptrack/InputHandler.h trunk/OpenMPT/mptrack/KeyConfigDlg.cpp trunk/OpenMPT/mptrack/KeyConfigDlg.h trunk/OpenMPT/mptrack/WelcomeDialog.cpp trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/mptrack/CListCtrl.h ============================================================================== --- trunk/OpenMPT/mptrack/CListCtrl.h Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/CListCtrl.h Fri Nov 15 22:52:54 2024 (r22192) @@ -25,6 +25,7 @@ int width = 0; UINT mask = 0; }; + void SetHeaders(const mpt::span<const Header> &header) { for(int i = 0; i < static_cast<int>(header.size()); i++) @@ -36,6 +37,15 @@ } } + void SetColumnWidths(const mpt::span<const Header> &header) + { + for(int i = 0; i < static_cast<int>(header.size()); i++) + { + if(int width = header[i].width; width > 0) + SetColumnWidth(i, HighDPISupport::ScalePixels(width, m_hWnd)); + } + } + void SetItemDataPtr(int item, void *value) { SetItemData(item, reinterpret_cast<DWORD_PTR>(value)); Modified: trunk/OpenMPT/mptrack/CommandSet.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/CommandSet.cpp Fri Nov 15 22:52:54 2024 (r22192) @@ -28,6 +28,11 @@ namespace { +constexpr CommandID ModifierCommands[] = +{ + kcSelect, kcCopySelect, kcChordModifier, kcSetSpacing +}; + constexpr std::tuple<InputTargetContext, CommandID, CommandID> NoteContexts[] = { {kCtxViewPatternsNote, kcVPStartNotes, kcVPStartNoteStops}, @@ -1465,42 +1470,39 @@ // Avoid duplicate if(mpt::contains(kcList, kc)) - { - return CString(); - } + return CString{}; // Check that this keycombination isn't already assigned (in this context), except for dummy keys CString report; if(auto conflictCmd = IsConflicting(kc, cmd, checkEventConflict); conflictCmd.first != kcNull) { - if (!overwrite) + if(!overwrite) { - return CString(); + return CString{}; } else { - if (IsCrossContextConflict(kc, conflictCmd.second)) - { - report += _T("The following commands may conflict:\r\n >") + GetCommandText(conflictCmd.first) + _T(" in ") + conflictCmd.second.GetContextText() + _T("\r\n >") + GetCommandText(cmd) + _T(" in ") + kc.GetContextText() + _T("\r\n\r\n"); - LOG_COMMANDSET(mpt::ToUnicode(report)); - } else - { - //if(!TrackerSettings::Instance().MiscAllowMultipleCommandsPerKey) - // Remove(conflictCmd.second, conflictCmd.first); - report += _T("The following commands in same context share the same key combination:\r\n >") + GetCommandText(conflictCmd.first) + _T(" in ") + conflictCmd.second.GetContextText() + _T("\r\n\r\n"); - LOG_COMMANDSET(mpt::ToUnicode(report)); - } + report = FormatConflict(kc, conflictCmd.first, conflictCmd.second); + LOG_COMMANDSET(mpt::ToUnicode(report)); } } kcList.insert((pos < 0) ? kcList.end() : (kcList.begin() + pos), kc); //enfore rules on CommandSet - report += EnforceAll(kc, cmd, true); + EnforceAll(kc, cmd, true); return report; } -std::pair<CommandID, KeyCombination> CCommandSet::IsConflicting(KeyCombination kc, CommandID cmd, bool checkEventConflict) const +CString CCommandSet::FormatConflict(KeyCombination kc, CommandID conflictCommand, KeyCombination conflictCombination) const +{ + if(IsCrossContextConflict(kc, conflictCombination)) + return _T("May conflict with ") + GetCommandText(conflictCommand) + _T(" in ") + conflictCombination.GetContextText(); + else + return _T("Conflicts with ") + GetCommandText(conflictCommand) + _T(" in same context"); +} + +std::pair<CommandID, KeyCombination> CCommandSet::IsConflicting(KeyCombination kc, CommandID cmd, bool checkEventConflict, bool checkSameCommand) const { if(m_commands[cmd].IsDummy()) // no need to search if we are adding a dummy key return {kcNull, KeyCombination()}; @@ -1511,7 +1513,7 @@ // such conflicts are errors. Cross-context conflicts only emit warnings. for(int curCmd = kcFirst; curCmd < kcNumCommands; curCmd++) { - if(m_commands[curCmd].IsDummy()) + if(m_commands[curCmd].IsDummy() || (!checkSameCommand && cmd == curCmd)) continue; for(auto &curKc : m_commands[curCmd].kcList) @@ -1531,19 +1533,18 @@ } -CString CCommandSet::Remove(int pos, CommandID cmd) +void CCommandSet::Remove(int pos, CommandID cmd) { - if (pos>=0 && (size_t)pos<m_commands[cmd].kcList.size()) + if(pos >= 0 && static_cast<size_t>(pos) < m_commands[cmd].kcList.size()) { - return Remove(m_commands[cmd].kcList[pos], cmd); + Remove(m_commands[cmd].kcList[pos], cmd); } LOG_COMMANDSET(U_("Failed to remove a key: keychoice out of range.")); - return _T(""); } -CString CCommandSet::Remove(KeyCombination kc, CommandID cmd) +void CCommandSet::Remove(KeyCombination kc, CommandID cmd) { auto &kcList = m_commands[cmd].kcList; auto index = std::find(kcList.begin(), kcList.end(), kc); @@ -1551,23 +1552,20 @@ { kcList.erase(index); LOG_COMMANDSET(U_("Removed a key")); - return EnforceAll(kc, cmd, false); + EnforceAll(kc, cmd, false); } else { LOG_COMMANDSET(U_("Failed to remove a key as it was not found")); - return CString(); } - } -CString CCommandSet::EnforceAll(KeyCombination inKc, CommandID inCmd, bool adding) +void CCommandSet::EnforceAll(KeyCombination inKc, CommandID inCmd, bool adding) { //World's biggest, most confusing method. :) //Needs refactoring. Maybe make lots of Rule subclasses, each with their own Enforce() method? KeyCombination curKc; // for looping through key combinations KeyCombination newKc; // for adding new key combinations - CString report; if(m_enforceRule[krAllowNavigationWithSelection]) { @@ -1996,15 +1994,13 @@ if (m_enforceRule[krCheckModifiers]) { // for all commands that must be modifiers - for (auto curCmd : { kcSelect, kcCopySelect, kcChordModifier, kcSetSpacing }) + for (auto curCmd : ModifierCommands) { //for all of this command's key combinations for (auto &kc : m_commands[curCmd].kcList) { - if ((!kc.Modifier()) || (kc.KeyCode()!=VK_SHIFT && kc.KeyCode()!=VK_CONTROL && kc.KeyCode()!=VK_MENU && kc.KeyCode()!=0 && - kc.KeyCode()!=VK_LWIN && kc.KeyCode()!=VK_RWIN )) // Feature: use Windows keys as modifier keys + if(!kc.IsModifierCombination()) { - report += _T("Error! ") + GetCommandText((CommandID)curCmd) + _T(" must be a modifier (shift/ctrl/alt), but is currently ") + inKc.GetKeyText() + _T("\r\n"); //replace with dummy kc.Modifier(ModShift); kc.KeyCode(0); @@ -2057,7 +2053,6 @@ } } */ - return report; } @@ -2117,10 +2112,10 @@ } -void CCommandSet::Copy(const CCommandSet *source) +void CCommandSet::Copy(const CCommandSet &source) { - m_oldSpecs = source->m_oldSpecs; - std::copy(std::begin(source->m_commands), std::end(source->m_commands), std::begin(m_commands)); + m_oldSpecs = source.m_oldSpecs; + std::copy(std::begin(source.m_commands), std::end(source.m_commands), std::begin(m_commands)); } @@ -2517,12 +2512,32 @@ } +bool KeyCombination::IsModifierCombination() const +{ + return Modifier() && + (KeyCode() == VK_SHIFT || KeyCode() == VK_CONTROL || KeyCode() == VK_MENU || KeyCode() == 0 + || KeyCode() == VK_LWIN || KeyCode() == VK_RWIN); // Feature: use Windows keys as modifier keys + +} + + CString CCommandSet::GetKeyTextFromCommand(CommandID c, UINT key) const { - if (key < m_commands[c].kcList.size()) + if(key < m_commands[c].kcList.size()) return m_commands[c].kcList[0].GetKeyText(); - else + if(key != uint32_max) return CString(); + CString keys; + bool addSeparator = false; + for(auto &item : m_commands[c].kcList) + { + if(addSeparator) + keys += _T("; "); + else + addSeparator = true; + keys += item.GetKeyText(); + } + return keys; } @@ -2687,4 +2702,11 @@ return m_isParentContext[kc1.Context()][kc2.Context()] || m_isParentContext[kc2.Context()][kc1.Context()]; } + +bool CCommandSet::MustBeModifierKey(CommandID id) +{ + return mpt::contains(ModifierCommands, id); +} + + OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/mptrack/CommandSet.h ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.h Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/CommandSet.h Fri Nov 15 22:52:54 2024 (r22192) @@ -1158,6 +1158,9 @@ } LPARAM AsLPARAM() const { return AsUint32(); } + // True if key combination only consists of modifier keys + bool IsModifierCombination() const; + // Key combination to string static CString GetContextText(InputTargetContext ctx); CString GetContextText() const { return GetContextText(Context()); } @@ -1233,7 +1236,7 @@ //util void SetupCommands(); void SetupContextHierarchy(); - CString EnforceAll(KeyCombination kc, CommandID cmd, bool adding); + void EnforceAll(KeyCombination kc, CommandID cmd, bool adding); CommandID FindCmd(uint32 uid) const; bool KeyCombinationConflict(KeyCombination kc1, KeyCombination kc2, bool checkEventConflict = true) const; @@ -1245,10 +1248,10 @@ // Population CString Add(KeyCombination kc, CommandID cmd, bool overwrite, int pos = -1, bool checkEventConflict = true); - CString Remove(KeyCombination kc, CommandID cmd); - CString Remove(int pos, CommandID cmd); + void Remove(KeyCombination kc, CommandID cmd); + void Remove(int pos, CommandID cmd); - std::pair<CommandID, KeyCombination> IsConflicting(KeyCombination kc, CommandID cmd, bool checkEventConflict = true) const; + std::pair<CommandID, KeyCombination> IsConflicting(KeyCombination kc, CommandID cmd, bool checkEventConflict = true, bool checkSameCommand = true) const; bool IsCrossContextConflict(KeyCombination kc1, KeyCombination kc2) const; // Tranformation @@ -1257,19 +1260,22 @@ // Communication KeyCombination GetKey(CommandID cmd, UINT key) const { return m_commands[cmd].kcList[key]; } - bool isHidden(UINT c) const { return m_commands[c].IsHidden(); } + bool IsHidden(UINT c) const { return m_commands[c].IsHidden(); } int GetKeyListSize(CommandID cmd) const { return (cmd != kcNull) ? static_cast<int>(m_commands[cmd].kcList.size()) : 0; } CString GetCommandText(CommandID cmd) const { return m_commands[cmd].Message; } - CString GetKeyTextFromCommand(CommandID c, UINT key) const; + CString GetKeyTextFromCommand(CommandID c, UINT key = uint32_max) const; + CString FormatConflict(KeyCombination kc, CommandID conflictCommand, KeyCombination conflictCombination) const; // Pululation ;) - void Copy(const CCommandSet *source); // Copy the contents of a commandset into this command set + void Copy(const CCommandSet &source); // Copy the contents of a commandset into this command set void GenKeyMap(KeyMap &km); // Generate a keymap from this command set bool SaveFile(const mpt::PathString &filename); bool LoadFile(const mpt::PathString &filename); bool LoadFile(std::istream &iStrm, const mpt::ustring &filenameDescription); void LoadDefaultKeymap(); + static bool MustBeModifierKey(CommandID id); + protected: const CModSpecifications *m_oldSpecs = nullptr; KeyCommand m_commands[kcNumCommands]; Modified: trunk/OpenMPT/mptrack/InputHandler.cpp ============================================================================== --- trunk/OpenMPT/mptrack/InputHandler.cpp Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/InputHandler.cpp Fri Nov 15 22:52:54 2024 (r22192) @@ -534,7 +534,7 @@ } -void CInputHandler::SetNewCommandSet(const CCommandSet *newSet) +void CInputHandler::SetNewCommandSet(const CCommandSet &newSet) { m_activeCommandSet->Copy(newSet); m_activeCommandSet->GenKeyMap(m_keyMap); Modified: trunk/OpenMPT/mptrack/InputHandler.h ============================================================================== --- trunk/OpenMPT/mptrack/InputHandler.h Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/InputHandler.h Fri Nov 15 22:52:54 2024 (r22192) @@ -68,7 +68,7 @@ CString GetKeyTextFromCommand(CommandID c, const TCHAR *prependText = nullptr) const; CString GetMenuText(UINT id) const; void UpdateMainMenu(); - void SetNewCommandSet(const CCommandSet *newSet); + void SetNewCommandSet(const CCommandSet &newSet); bool SetEffectLetters(const CModSpecifications &modSpecs); }; Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Fri Nov 15 22:52:54 2024 (r22192) @@ -51,16 +51,14 @@ if(byte2 != 0) { SetKey(ModMidi, byte1); - if(!m_isDummy) - m_pOptKeyDlg->OnSetKeyChoice(); + m_pOptKeyDlg->OnSetKeyChoice(this); } break; case MIDIEvents::evNoteOn: case MIDIEvents::evNoteOff: SetKey(ModMidi, byte1 | 0x80); - if(!m_isDummy) - m_pOptKeyDlg->OnSetKeyChoice(); + m_pOptKeyDlg->OnSetKeyChoice(this); break; default: @@ -83,8 +81,8 @@ { //if a key has been released but custom edit box is empty, we have probably just //navigated into the box with TAB or SHIFT-TAB. No need to set keychoice. - if(code != 0 && !m_isDummy) - m_pOptKeyDlg->OnSetKeyChoice(); + if(code != 0) + m_pOptKeyDlg->OnSetKeyChoice(this); } } return CEdit::PreTranslateMessage(pMsg); @@ -118,6 +116,7 @@ //unlock the input handler CMainFrame::GetInputHandler()->Bypass(false); m_isFocussed = false; + m_pOptKeyDlg->OnCancelKeyChoice(this); } @@ -126,14 +125,21 @@ // //***************************************************************************************// -// Initialisation +static constexpr CListCtrlEx::Header KeyListHeaders[] = +{ + {_T("Shortcut"), 276, LVCFMT_LEFT}, + {_T("Assigned Keys"), 116, LVCFMT_LEFT}, +}; BEGIN_MESSAGE_MAP(COptionsKeyboard, CPropertyPage) - ON_NOTIFY(LVN_ITEMCHANGED, IDC_COMMAND_LIST, &COptionsKeyboard::OnCommandKeySelChanged) - + ON_WM_LBUTTONDBLCLK() + ON_WM_DESTROY() + ON_MESSAGE(WM_DPICHANGED_AFTERPARENT, &COptionsKeyboard::OnDPIChangedAfterParent) ON_LBN_SELCHANGE(IDC_CHOICECOMBO, &COptionsKeyboard::OnKeyChoiceSelect) ON_LBN_SELCHANGE(IDC_KEYCATEGORY, &COptionsKeyboard::OnCategorySelChanged) ON_EN_UPDATE(IDC_CHORDDETECTWAITTIME, &COptionsKeyboard::OnChordWaitTimeChanged) + ON_COMMAND(IDC_BUTTON3, &COptionsKeyboard::OnClearSearch) + ON_COMMAND(IDC_BUTTON2, &COptionsKeyboard::OnEnableFindHotKey) ON_COMMAND(IDC_BUTTON1, &COptionsKeyboard::OnListenForKeys) ON_COMMAND(IDC_DELETE, &COptionsKeyboard::OnDeleteKeyChoice) ON_COMMAND(IDC_RESTORE, &COptionsKeyboard::OnRestoreKeyChoice) @@ -144,15 +150,14 @@ ON_COMMAND(IDC_CHECKKEYUP, &COptionsKeyboard::OnCheck) ON_COMMAND(IDC_NOTESREPEAT, &COptionsKeyboard::OnNotesRepeat) ON_COMMAND(IDC_NONOTESREPEAT, &COptionsKeyboard::OnNoNotesRepeat) - ON_COMMAND(IDC_CLEARLOG, &COptionsKeyboard::OnClearLog) ON_COMMAND(IDC_RESTORE_KEYMAP, &COptionsKeyboard::OnRestoreDefaultKeymap) ON_EN_CHANGE(IDC_FIND, &COptionsKeyboard::OnSearchTermChanged) - ON_EN_CHANGE(IDC_FINDHOTKEY, &COptionsKeyboard::OnFindHotKey) ON_EN_SETFOCUS(IDC_FINDHOTKEY, &COptionsKeyboard::OnClearHotKey) - ON_WM_LBUTTONDBLCLK() - ON_WM_DESTROY() + ON_NOTIFY(LVN_ITEMCHANGED, IDC_COMMAND_LIST, &COptionsKeyboard::OnCommandKeySelChanged) + ON_NOTIFY(NM_DBLCLK, IDC_COMMAND_LIST, &COptionsKeyboard::OnListenForKeysFromList) END_MESSAGE_MAP() + void COptionsKeyboard::DoDataExchange(CDataExchange *pDX) { CPropertyPage::DoDataExchange(pDX); @@ -160,13 +165,14 @@ DDX_Control(pDX, IDC_COMMAND_LIST, m_lbnCommandKeys); DDX_Control(pDX, IDC_CHOICECOMBO, m_cmbKeyChoice); DDX_Control(pDX, IDC_CHORDDETECTWAITTIME, m_eChordWaitTime); - DDX_Control(pDX, IDC_KEYREPORT, m_eReport); DDX_Control(pDX, IDC_CUSTHOTKEY, m_eCustHotKey); DDX_Control(pDX, IDC_FINDHOTKEY, m_eFindHotKey); DDX_Control(pDX, IDC_CHECKKEYDOWN, m_bKeyDown); DDX_Control(pDX, IDC_CHECKKEYHOLD, m_bKeyHold); DDX_Control(pDX, IDC_CHECKKEYUP, m_bKeyUp); DDX_Control(pDX, IDC_FIND, m_eFind); + DDX_Control(pDX, IDC_STATIC1, m_warnIconCtl); + DDX_Control(pDX, IDC_KEYREPORT, m_warnText); } @@ -180,32 +186,30 @@ } - BOOL COptionsKeyboard::OnInitDialog() { CPropertyPage::OnInitDialog(); m_fullPathName = TrackerSettings::Instance().m_szKbdFile; m_localCmdSet = std::make_unique<CCommandSet>(); - m_localCmdSet->Copy(CMainFrame::GetInputHandler()->m_activeCommandSet.get()); + m_localCmdSet->Copy(*CMainFrame::GetInputHandler()->m_activeCommandSet); m_lbnCommandKeys.SetExtendedStyle(m_lbnCommandKeys.GetExtendedStyle() | LVS_EX_FULLROWSELECT); m_listGrouped = CListCtrlEx::EnableGroupView(m_lbnCommandKeys); + m_lbnCommandKeys.SetHeaders(KeyListHeaders); //Fill category combo and automatically selects first category DefineCommandCategories(); for(size_t c = 0; c < commandCategories.size(); c++) { - if(commandCategories[c].name && !commandCategories[c].commands.empty()) + if(commandCategories[c].name && !commandCategories[c].commandRanges.empty()) m_cmbCategory.SetItemData(m_cmbCategory.AddString(commandCategories[c].name), c); } m_cmbCategory.SetCurSel(0); UpdateDialog(); - m_eCustHotKey.SetParent(m_hWnd, IDC_CUSTHOTKEY, this); - m_eFindHotKey.SetParent(m_hWnd, IDC_FINDHOTKEY, this); - m_eReport.FmtLines(TRUE); - m_eReport.SetWindowText(_T("")); + m_eCustHotKey.SetOwner(*this); + m_eFindHotKey.SetOwner(*this); EnableKeyChoice(false); @@ -214,31 +218,38 @@ } -void CommandCategory::AddCommands(CommandID first, CommandID last, bool addSeparatorAtEnd) +LRESULT COptionsKeyboard::OnDPIChangedAfterParent(WPARAM, LPARAM) { - int count = last - first + 1, val = first; - commands.insert(commands.end(), count, kcNull); - std::generate(commands.end() - count, commands.end(), [&val] { return static_cast<CommandID>(val++); }); - if(addSeparatorAtEnd) - separators.push_back(last); + auto result = Default(); + + m_lbnCommandKeys.SetColumnWidths(KeyListHeaders); + + if(m_warnIcon) + { + DestroyIcon(m_warnIcon); + m_warnIcon = nullptr; + } + if(m_infoIcon) + { + DestroyIcon(m_infoIcon); + m_infoIcon = nullptr; + } + UpdateWarning(m_lastWarning); + + return result; } -// Filter commands: We only need user to see a select set off commands -// for each category void COptionsKeyboard::DefineCommandCategories() { { - CommandCategory newCat(_T("Global keys"), kCtxAllContexts); - - newCat.AddCommands(kcStartFile, kcEndFile, true); - newCat.AddCommands(kcStartPlayCommands, kcEndPlayCommands, true); - newCat.AddCommands(kcStartEditCommands, kcEndEditCommands, true); - newCat.AddCommands(kcStartView, kcEndView, true); - newCat.AddCommands(kcStartMisc, kcEndMisc, true); - newCat.commands.push_back(kcDummyShortcut); - - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T("Global"), kCtxAllContexts).commandRanges; + commands.emplace_back(kcStartFile, kcEndFile, _T("File")); + commands.emplace_back(kcStartPlayCommands, kcEndPlayCommands, _T("Player")); + commands.emplace_back(kcStartEditCommands, kcEndEditCommands, _T("Edit")); + commands.emplace_back(kcStartView, kcEndView, _T("View")); + commands.emplace_back(kcStartMisc, kcEndMisc, _T("Miscellaneous")); + commands.emplace_back(kcDummyShortcut, kcDummyShortcut, _T("")); } commandCategories.emplace_back(_T(" General [Top]"), kCtxCtrlGeneral); @@ -246,121 +257,97 @@ commandCategories.emplace_back(_T(" Pattern Editor [Top]"), kCtxCtrlPatterns); { - CommandCategory newCat(_T(" Pattern Editor - Order List"), kCtxCtrlOrderlist); - - newCat.AddCommands(kcStartOrderlistCommands, kcEndOrderlistCommands); - newCat.separators.push_back(kcEndOrderlistNavigation); - newCat.separators.push_back(kcEndOrderlistEdit); - newCat.separators.push_back(kcEndOrderlistNum); - - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Pattern Editor - Order List"), kCtxCtrlOrderlist).commandRanges; + commands.emplace_back(kcStartOrderlistEdit, kcEndOrderlistEdit, _T("Edit")); + commands.emplace_back(kcStartOrderlistNavigation, kcEndOrderlistNavigation, _T("Navigation")); + commands.emplace_back(kcStartOrderlistNum, kcEndOrderlistNum, _T("Pattern Entry")); + commands.emplace_back(kcStartOrderlistMisc, kcEndOrderlistMisc, _T("Miscellaneous")); } { - CommandCategory newCat(_T(" Pattern Editor - Quick Channel Settings"), kCtxChannelSettings); - newCat.AddCommands(kcStartChnSettingsCommands, kcEndChnSettingsCommands); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Pattern Editor - Quick Channel Settings"), kCtxChannelSettings).commandRanges; + commands.emplace_back(kcStartChnSettingsCommands, kcEndChnSettingsCommands, _T("")); } { - CommandCategory newCat(_T(" Pattern Editor - General"), kCtxViewPatterns); - - newCat.AddCommands(kcStartPlainNavigate, kcEndPlainNavigate, true); - newCat.AddCommands(kcStartJumpSnap, kcEndJumpSnap, true); - newCat.AddCommands(kcStartHomeEnd, kcEndHomeEnd, true); - newCat.AddCommands(kcStartGotoColumn, kcEndGotoColumn, true); - newCat.AddCommands(kcPrevPattern, kcNextSequence, true); - newCat.AddCommands(kcStartPatternScrolling, kcEndPatternScrolling, true); - newCat.AddCommands(kcStartSelect, kcEndSelect, true); - newCat.AddCommands(kcStartPatternClipboard, kcEndPatternClipboard, true); - newCat.AddCommands(kcClearRow, kcInsertWholeRowGlobal, true); - newCat.AddCommands(kcStartChannelKeys, kcEndChannelKeys, true); - newCat.AddCommands(kcBeginTranspose, kcEndTranspose, true); - newCat.AddCommands(kcStartPatternEditMisc, kcEndPatternEditMisc, true); - newCat.AddCommands(kcStartPatternMisc, kcEndPatternMisc, true); - - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Pattern Editor - General"), kCtxViewPatterns).commandRanges; + commands.emplace_back(kcStartPlainNavigate, kcEndPlainNavigate, _T("Navigation")); + commands.emplace_back(kcStartJumpSnap, kcEndJumpSnap, _T("Jump")); + commands.emplace_back(kcStartHomeEnd, kcEndHomeEnd, _T("Go To")); + commands.emplace_back(kcStartGotoColumn, kcEndGotoColumn, _T("Go To Column")); + commands.emplace_back(kcPrevPattern, kcNextSequence, _T("Order List Navigation")); + commands.emplace_back(kcStartPatternScrolling, kcEndPatternScrolling, _T("Scrolling")); + commands.emplace_back(kcStartSelect, kcEndSelect, _T("Selection")); + commands.emplace_back(kcStartPatternClipboard, kcEndPatternClipboard, _T("Clipboard")); + commands.emplace_back(kcClearRow, kcInsertWholeRowGlobal, _T("Clear / Insert")); + commands.emplace_back(kcStartChannelKeys, kcEndChannelKeys, _T("Channels")); + commands.emplace_back(kcBeginTranspose, kcEndTranspose, _T("Transpose")); + commands.emplace_back(kcStartPatternEditMisc, kcEndPatternEditMisc, _T("Edit")); + commands.emplace_back(kcStartPatternMisc, kcEndPatternMisc, _T("Miscellaneous")); } { - CommandCategory newCat(_T(" Pattern Editor - Note Column"), kCtxViewPatternsNote); - - newCat.AddCommands(kcVPStartNotes, kcVPEndNotes, true); - newCat.AddCommands(kcSetOctave0, kcSetOctave9, true); - newCat.AddCommands(kcStartNoteMisc, kcEndNoteMisc); - - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Pattern Editor - Note Column"), kCtxViewPatternsNote).commandRanges; + commands.emplace_back(kcVPStartNotes, kcVPEndNotes, _T("Note Entry")); + commands.emplace_back(kcSetOctave0, kcSetOctave9, _T("Octave Entry")); + commands.emplace_back(kcStartNoteMisc, kcEndNoteMisc, _T("Miscellaneous")); } { - CommandCategory newCat(_T(" Pattern Editor - Instrument Column"), kCtxViewPatternsIns); - newCat.AddCommands(kcSetIns0, kcSetIns9); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Pattern Editor - Instrument Column"), kCtxViewPatternsIns).commandRanges; + commands.emplace_back(kcSetIns0, kcSetIns9, _T("Instrument Entry")); } { - CommandCategory newCat(_T(" Pattern Editor - Volume Column"), kCtxViewPatternsVol); - newCat.AddCommands(kcSetVolumeStart, kcSetVolumeEnd); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Pattern Editor - Volume Column"), kCtxViewPatternsVol).commandRanges; + commands.emplace_back(kcStartVolumeDigits, kcEndVolumeDigits, _T("Volume Entry")); + commands.emplace_back(kcStartVolumeCommands, kcEndVolumeCommands, _T("Volume Command Entry")); } { - CommandCategory newCat(_T(" Pattern Editor - Effect Column"), kCtxViewPatternsFX); - newCat.AddCommands(kcSetFXStart, kcSetFXEnd); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Pattern Editor - Effect Column"), kCtxViewPatternsFX).commandRanges; + commands.emplace_back(kcSetFXStart, kcSetFXEnd, _T("Effect Command Entry")); } { - CommandCategory newCat(_T(" Pattern Editor - Effect Parameter Column"), kCtxViewPatternsFXparam); - newCat.AddCommands(kcSetFXParam0, kcSetFXParamF); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Pattern Editor - Effect Parameter Column"), kCtxViewPatternsFXparam).commandRanges; + commands.emplace_back(kcSetFXParam0, kcSetFXParamF, _T("Parameter Digit Entry")); } - { - CommandCategory newCat(_T(" Sample [Top]"), kCtxCtrlSamples); - commandCategories.push_back(newCat); - } + commandCategories.emplace_back(_T(" Sample [Top]"), kCtxCtrlSamples); { - CommandCategory newCat(_T(" Sample Editor"), kCtxViewSamples); - - newCat.AddCommands(kcStartSampleEditing, kcEndSampleEditing, true); - newCat.AddCommands(kcStartSampleMisc, kcEndSampleMisc, true); - newCat.AddCommands(kcStartSampleCues, kcEndSampleCueGroup); - - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Sample Editor"), kCtxViewSamples).commandRanges; + commands.emplace_back(kcStartSampleEditing, kcEndSampleEditing, _T("Edit")); + commands.emplace_back(kcStartSampleMisc, kcEndSampleMisc, _T("Miscellaneous")); + commands.emplace_back(kcStartSampleCues, kcEndSampleCueGroup, _T("Sample Cues")); } { - CommandCategory newCat(_T(" Instrument Editor"), kCtxCtrlInstruments); - newCat.AddCommands(kcStartInstrumentCtrlMisc, kcEndInstrumentCtrlMisc); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Instrument Editor"), kCtxCtrlInstruments).commandRanges; + commands.emplace_back(kcStartInstrumentCtrlMisc, kcEndInstrumentCtrlMisc, _T("")); } { - CommandCategory newCat(_T(" Envelope Editor"), kCtxViewInstruments); - newCat.AddCommands(kcStartInstrumentMisc, kcEndInstrumentMisc); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Envelope Editor"), kCtxViewInstruments).commandRanges; + commands.emplace_back(kcStartInstrumentMisc, kcEndInstrumentMisc, _T("")); } commandCategories.emplace_back(_T(" Comments [Top]"), kCtxCtrlComments); { - CommandCategory newCat(_T(" Comments [Bottom]"), kCtxViewComments); - newCat.AddCommands(kcStartCommentsCommands, kcEndCommentsCommands); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Comments [Bottom]"), kCtxViewComments).commandRanges; + commands.emplace_back(kcStartCommentsCommands, kcEndCommentsCommands, _T("")); } { - CommandCategory newCat(_T(" Plugin Editor"), kCtxVSTGUI); - newCat.AddCommands(kcStartVSTGUICommands, kcEndVSTGUICommands); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Plugin Editor"), kCtxVSTGUI).commandRanges; + commands.emplace_back(kcStartVSTGUICommands, kcEndVSTGUICommands, _T("")); } { - CommandCategory newCat(_T(" Tree View"), kCtxViewTree); - newCat.AddCommands(kcStartTreeViewCommands, kcEndTreeViewCommands); - commandCategories.push_back(newCat); + auto &commands = commandCategories.emplace_back(_T(" Tree View"), kCtxViewTree).commandRanges; + commands.emplace_back(kcStartTreeViewCommands, kcEndTreeViewCommands, _T("")); } } @@ -429,16 +416,33 @@ } +void COptionsKeyboard::OnClearSearch() +{ + m_eFindHotKey.SetKey(ModNone, 0); + m_eFind.SetWindowText(_T("")); +} + + +void COptionsKeyboard::OnEnableFindHotKey() +{ + OnClearHotKey(); + GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_FINDHOTKEY_LABEL)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_FINDHOTKEY)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_FINDHOTKEY)->SetFocus(); +} + + void COptionsKeyboard::OnFindHotKey() { - if(IsLocked()) - return; - - if(m_eFindHotKey.code == 0) - { + GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_FINDHOTKEY_LABEL)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_FINDHOTKEY)->ShowWindow(SW_HIDE); + const bool hasKey = m_eFindHotKey.HasKey(); + if(!hasKey) UpdateCategory(); - } - UpdateShortcutList(m_eFindHotKey.code == 0 ? m_curCategory : -1); + UpdateShortcutList(hasKey ? - 1: m_curCategory); + m_lbnCommandKeys.SetFocus(); } @@ -483,7 +487,7 @@ m_eFind.GetWindowText(findString); findString.MakeLower(); - const bool searchByName = !findString.IsEmpty(), searchByKey = (m_eFindHotKey.code != 0); + const bool searchByName = !findString.IsEmpty(), searchByKey = m_eFindHotKey.HasKey(); const bool doSearch = (searchByName || searchByKey); int firstCat = category, lastCat = category; @@ -497,11 +501,9 @@ const auto curSelection = m_lbnCommandKeys.GetSelectionMark(); CommandID curCommand = (curSelection >= 0) ? static_cast<CommandID>(m_lbnCommandKeys.GetItemData(curSelection)) : kcNull; m_lbnCommandKeys.SetRedraw(FALSE); - m_lbnCommandKeys.DeleteColumn(0); + m_lbnCommandKeys.DeleteAllItems(); if(m_listGrouped) ListView_RemoveAllGroups(m_lbnCommandKeys); - m_lbnCommandKeys.InsertColumn(0, _T("")); - m_lbnCommandKeys.DeleteAllItems(); int currentGroup = -1; int itemID = -1; @@ -511,34 +513,35 @@ // When searching, we also add the category names to the list. bool addCategoryName = (firstCat != lastCat); - for(size_t cmd = 0; cmd < commandCategories[cat].commands.size(); cmd++) + for(const auto &range : commandCategories[cat].commandRanges) { - CommandID com = (CommandID)commandCategories[cat].commands[cmd]; - - CString cmdText = m_localCmdSet->GetCommandText(com); - bool addKey = true; - - if(searchByKey) + for(CommandID com = range.first; com <= range.last; com = static_cast<CommandID>(com + 1)) { - addKey = false; - int numChoices = m_localCmdSet->GetKeyListSize(com); - for(int choice = 0; choice < numChoices; choice++) + CString cmdText = m_localCmdSet->GetCommandText(com); + bool addKey = true; + + if(searchByKey) { - const KeyCombination &kc = m_localCmdSet->GetKey(com, choice); - if(kc.KeyCode() == m_eFindHotKey.code && kc.Modifier() == m_eFindHotKey.mod) + addKey = false; + int numChoices = m_localCmdSet->GetKeyListSize(com); + for(int choice = 0; choice < numChoices; choice++) { - addKey = true; - break; + const KeyCombination &kc = m_localCmdSet->GetKey(com, choice); + if(kc.KeyCode() == m_eFindHotKey.code && kc.Modifier() == m_eFindHotKey.mod) + { + addKey = true; + break; + } } } - } - if(searchByName && addKey) - { - addKey = (cmdText.MakeLower().Find(findString) >= 0); - } + if(searchByName && addKey) + { + addKey = (cmdText.MakeLower().Find(findString) >= 0); + } + + if(!addKey) + continue; - if(addKey) - { m_curCategory = cat; LVITEM lvi; @@ -553,16 +556,35 @@ lvi.iIndent = 0; lvi.iGroupId = 0; - if(!m_localCmdSet->isHidden(com)) + if(com == range.first && !doSearch) + { + if(m_listGrouped) + { + InsertGroup(range.name, ++currentGroup); + } else + { + lvi.iItem = ++itemID; + lvi.lParam = kcNull; + CString catName; + if(range.name.IsEmpty()) + catName = const_cast<TCHAR *>(_T("------------------------------------------------------")); + else + catName = _T("------ ") + range.name + _T(" ------"); + lvi.pszText = const_cast<TCHAR *>(catName.GetString()); + m_lbnCommandKeys.InsertItem(&lvi); + } + } + + if(!m_localCmdSet->IsHidden(com)) { if(doSearch && addCategoryName) { if(m_listGrouped) { - InsertGroup(commandCategories[cat].name.Trim(), ++currentGroup); + InsertGroup(CString{commandCategories[cat].name}.TrimLeft(), ++currentGroup); } else { - const CString catName = _T("------ ") + commandCategories[cat].name.Trim() + _T(" ------"); + const CString catName = _T("------ ") + CString{commandCategories[cat].name}.TrimLeft() + _T(" ------"); lvi.iItem = ++itemID; lvi.lParam = LPARAM(-1); lvi.pszText = const_cast<TCHAR *>(catName.GetString()); @@ -580,6 +602,7 @@ lvi.pszText = const_cast<TCHAR *>(text.GetString()); lvi.iGroupId = currentGroup; m_lbnCommandKeys.InsertItem(&lvi); + m_lbnCommandKeys.SetItemText(itemID, 1, m_localCmdSet->GetKeyTextFromCommand(com)); if(curCommand == com) { @@ -587,21 +610,6 @@ m_lbnCommandKeys.SetSelectionMark(itemID); } } - - if(commandCategories[cat].SeparatorAt(com)) - { - if(m_listGrouped) - { - InsertGroup(_T(""), ++currentGroup); - - } else - { - lvi.iItem = ++itemID; - lvi.lParam = LPARAM(-1); - lvi.pszText = const_cast<TCHAR *>(_T("------------------------------------------------------")); - m_lbnCommandKeys.InsertItem(&lvi); - } - } } } } @@ -610,7 +618,6 @@ { m_lbnCommandKeys.SetSelectionMark(0); } - m_lbnCommandKeys.SetColumnWidth(0, LVSCW_AUTOSIZE); m_lbnCommandKeys.SetRedraw(TRUE); OnCommandKeySelChanged(); } @@ -636,14 +643,15 @@ EnableKeyChoice(false); - BOOL enableButton = (cmd == kcNull) ? FALSE : TRUE; + BOOL enableButton = (cmd != kcNull) ? TRUE : FALSE; + BOOL enableCheckBoxes = (cmd != kcNull && m_localCmdSet->GetKeyListSize(cmd) > 0) ? TRUE : FALSE; GetDlgItem(IDC_BUTTON1)->EnableWindow(enableButton); GetDlgItem(IDC_DELETE)->EnableWindow(enableButton); GetDlgItem(IDC_RESTORE)->EnableWindow(enableButton); m_cmbKeyChoice.EnableWindow(enableButton); - m_bKeyDown.EnableWindow(enableButton); - m_bKeyHold.EnableWindow(enableButton); - m_bKeyUp.EnableWindow(enableButton); + m_bKeyDown.EnableWindow(enableCheckBoxes); + m_bKeyHold.EnableWindow(enableCheckBoxes); + m_bKeyUp.EnableWindow(enableCheckBoxes); //Separator if(cmd == kcNull) @@ -654,11 +662,16 @@ m_bKeyHold.SetCheck(BST_UNCHECKED); m_bKeyUp.SetCheck(BST_UNCHECKED); m_curCommand = kcNull; + + GetDlgItem(IDC_GROUPBOX_KEYSETUP)->SetWindowText(_T("&Key setup for selected command")); + UpdateWarning(); } //Fill "choice" list else if((cmd >= kcFirst && cmd != m_curCommand) || m_forceUpdate) // Have we changed command? { + GetDlgItem(IDC_GROUPBOX_KEYSETUP)->SetWindowText(_T("&Key setup for ") + m_localCmdSet->GetCommandText(cmd)); + m_forceUpdate = false; m_curCommand = cmd; @@ -681,6 +694,15 @@ } } + +void COptionsKeyboard::OnListenForKeysFromList(NMHDR *pNMHDR, LRESULT *) +{ + auto hdr = reinterpret_cast<const NMLISTVIEW *>(pNMHDR); + if(hdr->iSubItem == 1) + OnListenForKeys(); +} + + //Fills or clears key choice info void COptionsKeyboard::OnKeyChoiceSelect() { @@ -692,6 +714,7 @@ //If nothing there, clear if(cmd == kcNull || choice >= m_localCmdSet->GetKeyListSize(cmd) || choice < 0) { + UpdateWarning(); m_curKeyChoice = choice; m_forceUpdate = true; m_eCustHotKey.SetKey(ModNone, 0); @@ -712,6 +735,15 @@ m_bKeyDown.SetCheck((kc.EventType() & kKeyEventDown) ? BST_CHECKED : BST_UNCHECKED); m_bKeyHold.SetCheck((kc.EventType() & kKeyEventRepeat) ? BST_CHECKED : BST_UNCHECKED); m_bKeyUp.SetCheck((kc.EventType() & kKeyEventUp) ? BST_CHECKED : BST_UNCHECKED); + + if(auto conflictCmd = m_localCmdSet->IsConflicting(kc, cmd, true, false); conflictCmd.first != kcNull + && conflictCmd.first != cmd) + { + UpdateWarning(m_localCmdSet->FormatConflict(kc, conflictCmd.first, conflictCmd.second)); + } else + { + UpdateWarning(); + } } } @@ -759,7 +791,7 @@ // Restore current key combination choice for currently selected command. kc = ih->m_activeCommandSet->GetKey(cmd, m_curKeyChoice); m_localCmdSet->Remove(m_curKeyChoice, cmd); - m_localCmdSet->Add(kc, cmd, true, m_curKeyChoice); + UpdateWarning(m_localCmdSet->Add(kc, cmd, true, m_curKeyChoice)); } ForceUpdateGUI(); @@ -811,12 +843,32 @@ m_localCmdSet->Remove(m_curKeyChoice, cmd); ForceUpdateGUI(); - return; + UpdateWarning(); } -void COptionsKeyboard::OnSetKeyChoice() +void COptionsKeyboard::OnCancelKeyChoice(const CWnd *source) { + if(source == &m_eFindHotKey) + { + GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_SHOW); + GetDlgItem(IDC_FINDHOTKEY_LABEL)->ShowWindow(SW_HIDE); + GetDlgItem(IDC_FINDHOTKEY)->ShowWindow(SW_HIDE); + } else + { + EnableKeyChoice(false); + } +} + + +void COptionsKeyboard::OnSetKeyChoice(const CWnd *source) +{ + if(source == &m_eFindHotKey) + { + OnFindHotKey(); + return; + } + EnableKeyChoice(false); CommandID cmd = m_curCommand; @@ -849,9 +901,13 @@ bool add = true; std::pair<CommandID, KeyCombination> conflictCmd; - if((conflictCmd = m_localCmdSet->IsConflicting(kc, cmd)).first != kcNull - && conflictCmd.first != cmd - && !m_localCmdSet->IsCrossContextConflict(kc, conflictCmd.second)) + if(CCommandSet::MustBeModifierKey(cmd) && !kc.IsModifierCombination()) + { + KeyCombination origKc = m_localCmdSet->GetKey(cmd, m_curKeyChoice); + m_eCustHotKey.SetKey(origKc.Modifier(), origKc.KeyCode()); + UpdateWarning(m_localCmdSet->GetCommandText(cmd) + _T(" must be a modifier (Shift/Ctrl/Alt), but you chose ") + kc.GetKeyText(), true); + add = false; + } else if((conflictCmd = m_localCmdSet->IsConflicting(kc, cmd)).first != kcNull && conflictCmd.first != cmd && !m_localCmdSet->IsCrossContextConflict(kc, conflictCmd.second)) { ConfirmAnswer delOld = Reporting::Confirm(_T("New shortcut (") + kc.GetKeyText() + _T(") has the same key combination as ") + m_localCmdSet->GetCommandText(conflictCmd.first) + _T(" in ") + conflictCmd.second.GetContextText() + _T(".\nDo you want to delete the other shortcut, only keeping the new one?"), _T("Shortcut Conflict"), true, false, this); if(delOld == cnfYes) @@ -871,25 +927,63 @@ } } } - + if(add) { - CString report, reportHistory; //process valid input m_localCmdSet->Remove(m_curKeyChoice, cmd); - report = m_localCmdSet->Add(kc, cmd, true, m_curKeyChoice); - - //Update log - m_eReport.GetWindowText(reportHistory); - m_eReport.SetWindowText(report + reportHistory); + UpdateWarning(m_localCmdSet->Add(kc, cmd, true, m_curKeyChoice), true); ForceUpdateGUI(); } } +static HICON LoadScaledIcon(const TCHAR *resourceName, int iconSize) +{ + mpt::Library comctl32(mpt::LibraryPath::System(P_("Comctl32"))); + if(comctl32.IsValid()) + { + using PLOADICONWITHSCALEDOWN = HRESULT(WINAPI *)(HINSTANCE, PCWSTR, int, int, HICON *); + PLOADICONWITHSCALEDOWN LoadIconWithScaleDown = nullptr; + HICON icon = nullptr; + if(comctl32.Bind(LoadIconWithScaleDown, "LoadIconWithScaleDown")) + LoadIconWithScaleDown(NULL, MAKEINTRESOURCEW(reinterpret_cast<uintptr_t>(resourceName)), iconSize, iconSize, &icon); + if(icon) + return icon; + } + return static_cast<HICON>(::LoadImage(nullptr, resourceName, IMAGE_ICON, iconSize, iconSize, LR_SHARED)); +} + + +void COptionsKeyboard::UpdateWarning(CString text, bool notify) +{ + const int iconSize = HighDPISupport::ScalePixels(16, m_hWnd); + HICON icon = nullptr; + if(text.IsEmpty()) + { + m_warnText.SetWindowText(_T("No conflicts found.")); + if(!m_infoIcon) + m_infoIcon = LoadScaledIcon(IDI_INFORMATION, iconSize); + icon = m_infoIcon; + } else + { + if(notify) + ::MessageBeep(MB_ICONWARNING); + + m_warnText.SetWindowText(text); + if(!m_warnIcon) + m_warnIcon = LoadScaledIcon(IDI_EXCLAMATION, iconSize); + icon = m_warnIcon; + } + m_warnIconCtl.SetWindowPos(nullptr, 0, 0, iconSize, iconSize, SWP_SHOWWINDOW | SWP_NOZORDER | SWP_NOREDRAW | SWP_NOMOVE | SWP_NOACTIVATE); + m_warnIconCtl.SetIcon(icon); + m_lastWarning = std::move(text); +} + + void COptionsKeyboard::OnOK() { - CMainFrame::GetInputHandler()->SetNewCommandSet(m_localCmdSet.get()); + CMainFrame::GetInputHandler()->SetNewCommandSet(*m_localCmdSet); CString cs; m_eChordWaitTime.GetWindowText(cs); @@ -901,8 +995,18 @@ void COptionsKeyboard::OnDestroy() { + if(m_warnIcon) + { + DestroyIcon(m_warnIcon); + m_warnIcon = nullptr; + } + if(m_infoIcon) + { + DestroyIcon(m_infoIcon); + m_infoIcon = nullptr; + } CPropertyPage::OnDestroy(); - m_localCmdSet = nullptr; + m_localCmdSet.reset(); } @@ -919,7 +1023,8 @@ m_fullPathName = dlg.GetFirstFile(); m_localCmdSet->LoadFile(m_fullPathName); - ForceUpdateGUI(); + ForceUpdateGUI(true); + UpdateWarning(); } @@ -952,7 +1057,7 @@ } -void COptionsKeyboard::ForceUpdateGUI() +void COptionsKeyboard::ForceUpdateGUI(bool updateAllKeys) { m_forceUpdate = true; // m_nCurKeyChoice and m_nCurHotKey haven't changed, yet we still want to update. int ntmpChoice = m_curKeyChoice; // next call will overwrite m_nCurKeyChoice @@ -960,13 +1065,19 @@ m_cmbKeyChoice.SetCurSel(ntmpChoice); // select fresh keychoice (thus restoring m_nCurKeyChoice) OnKeyChoiceSelect(); // update key data OnSettingsChanged(); // Enable "apply" button -} - -void COptionsKeyboard::OnClearLog() -{ - m_eReport.SetWindowText(_T("")); - ForceUpdateGUI(); + if(updateAllKeys) + { + const int numItems = m_lbnCommandKeys.GetItemCount(); + for(int i = 0; i < numItems; i++) + { + if(const auto cmd = static_cast<CommandID>(m_lbnCommandKeys.GetItemData(i)); cmd != kcNull) + m_lbnCommandKeys.SetItemText(i, 1, m_localCmdSet->GetKeyTextFromCommand(cmd)); + } + } else if(m_curCommand != kcNull) + { + m_lbnCommandKeys.SetItemText(m_lbnCommandKeys.GetSelectionMark(), 1, m_localCmdSet->GetKeyTextFromCommand(m_curCommand)); + } } @@ -975,7 +1086,7 @@ if(Reporting::Confirm("Discard all custom changes and restore default key configuration?", false, true, this) == cnfYes) { m_localCmdSet->LoadDefaultKeymap(); - ForceUpdateGUI(); + ForceUpdateGUI(true); } } @@ -984,9 +1095,11 @@ { for(size_t cat = 0; cat < commandCategories.size(); cat++) { - const auto &cmds = commandCategories[cat].commands; - if(mpt::contains(cmds, command)) - return static_cast<int>(cat); + for(const auto &range : commandCategories[cat].commandRanges) + { + if(mpt::is_in_range(command, range.first, range.last)) + return static_cast<int>(cat); + } } return -1; } Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.h ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.h Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.h Fri Nov 15 22:52:54 2024 (r22192) @@ -11,31 +11,27 @@ #pragma once #include "openmpt/all/BuildSettings.hpp" +#include "CListCtrl.h" #include "InputHandler.h" OPENMPT_NAMESPACE_BEGIN class COptionsKeyboard; -// Might promote to class so we can add rules -// (eg automatically do note off stuff, generate chord keybindings from notes based just on modifier. -// Would need GUI rules too as options would be different for each category class CommandCategory { public: - CommandCategory(const TCHAR *n, InputTargetContext d) : name(n), id(d) { } + CommandCategory(const TCHAR *n, InputTargetContext ctx) : name{n}, id{ctx} {} - bool SeparatorAt(CommandID c) const + const CString name; + const InputTargetContext id; + + struct Range { - return mpt::contains(separators, c); - } - - void AddCommands(CommandID first, CommandID last, bool addSeparatorAtEnd = false); - - CString name; - InputTargetContext id; - std::vector<CommandID> separators; - std::vector<CommandID> commands; + const CommandID first, last; + const CString name; + }; + std::vector<Range> commandRanges; }; @@ -43,23 +39,16 @@ { protected: COptionsKeyboard *m_pOptKeyDlg = nullptr; - HWND m_hParent = nullptr; - UINT m_nCtrlId = 0; - bool m_isFocussed = false, m_isDummy = false; + bool m_isFocussed = false; bool m_bypassed = false; public: FlagSet<Modifiers> mod = ModNone; UINT code = 0; - explicit CCustEdit(bool dummyField) : m_isDummy(dummyField) { } - void SetParent(HWND h, UINT nID, COptionsKeyboard *pOKD) - { - m_hParent = h; - m_nCtrlId = nID; - m_pOptKeyDlg = pOKD; - } + void SetOwner(COptionsKeyboard &dlg) { m_pOptKeyDlg = &dlg; } void SetKey(FlagSet<Modifiers> mod, UINT code); + bool HasKey() const noexcept { return mod || code; } void Bypass(bool bypass) { m_bypassed = bypass; EnableWindow(bypass ? FALSE : TRUE); } bool IsBypassed() const { return m_bypassed; } @@ -80,15 +69,18 @@ protected: CListBox m_lbnHotKeys; - CListCtrl m_lbnCommandKeys; + CListCtrlEx m_lbnCommandKeys; CComboBox m_cmbKeyChoice; CComboBox m_cmbCategory; CButton m_bKeyDown, m_bKeyHold, m_bKeyUp; CButton m_bnReset; - CCustEdit m_eCustHotKey{false}, m_eFindHotKey{true}; + CCustEdit m_eCustHotKey, m_eFindHotKey; + CStatic m_warnIconCtl, m_warnText; CEdit m_eFind; - CEdit m_eReport, m_eChordWaitTime; + CEdit m_eChordWaitTime; + HICON m_infoIcon = nullptr, m_warnIcon = nullptr; + CString m_lastWarning; std::vector<CommandCategory> commandCategories; std::unique_ptr<CCommandSet> m_localCmdSet; mpt::PathString m_fullPathName; @@ -108,12 +100,13 @@ void DoDataExchange(CDataExchange* pDX) override; void DefineCommandCategories(); - void ForceUpdateGUI(); + void ForceUpdateGUI(bool updateAllKeys = false); void InsertGroup(const TCHAR *title, int groupId); void UpdateShortcutList(int category = -1); void UpdateCategory(); int GetCategoryFromCommandID(CommandID command) const; - void OnSetKeyChoice(); + void OnCancelKeyChoice(const CWnd *source); + void OnSetKeyChoice(const CWnd *source); void LockControls() { m_lockCount++; } void UnlockControls() { m_lockCount--; MPT_ASSERT(m_lockCount >= 0); } @@ -121,15 +114,19 @@ void EnableKeyChoice(bool enable); + void UpdateWarning(CString text = {}, bool notify = false); + + afx_msg LRESULT OnDPIChangedAfterParent(WPARAM, LPARAM); afx_msg void UpdateDialog(); afx_msg void OnKeyboardChanged(); afx_msg void OnKeyChoiceSelect(); afx_msg void OnCommandKeySelChanged(NMHDR *pNMHDR = nullptr, LRESULT *pResult = nullptr); + afx_msg void OnListenForKeysFromList(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnCategorySelChanged(); afx_msg void OnSearchTermChanged(); afx_msg void OnChordWaitTimeChanged(); afx_msg void OnSettingsChanged() { SetModified(TRUE); } - afx_msg void OnCheck() { OnSetKeyChoice(); }; + afx_msg void OnCheck() { OnSetKeyChoice(&m_eCustHotKey); }; afx_msg void OnNotesRepeat(); afx_msg void OnNoNotesRepeat(); afx_msg void OnListenForKeys(); @@ -137,9 +134,10 @@ afx_msg void OnRestoreKeyChoice(); afx_msg void OnLoad(); afx_msg void OnSave(); - afx_msg void OnClearLog(); afx_msg void OnRestoreDefaultKeymap(); afx_msg void OnClearHotKey(); + afx_msg void OnClearSearch(); + afx_msg void OnEnableFindHotKey(); afx_msg void OnFindHotKey(); afx_msg void OnLButtonDblClk(UINT flags, CPoint point); afx_msg void OnDestroy(); Modified: trunk/OpenMPT/mptrack/WelcomeDialog.cpp ============================================================================== --- trunk/OpenMPT/mptrack/WelcomeDialog.cpp Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/WelcomeDialog.cpp Fri Nov 15 22:52:54 2024 (r22192) @@ -121,7 +121,7 @@ // As this is presented as the default, load it right now, even if the user closes the dialog through the close button auto cmdSet = std::make_unique<CCommandSet>(); cmdSet->LoadFile(GetFullKeyPath(keyFile)); - CMainFrame::GetInputHandler()->SetNewCommandSet(cmdSet.get()); + CMainFrame::GetInputHandler()->SetNewCommandSet(*cmdSet); } } combo->SetItemDataPtr(combo->AddString(_T("Impulse Tracker")), (void*)("US_mpt-it2_classic")); @@ -185,7 +185,7 @@ cmdSet->LoadFile(GetFullKeyPath(keyFile)); else cmdSet->LoadDefaultKeymap(); - CMainFrame::GetInputHandler()->SetNewCommandSet(cmdSet.get()); + CMainFrame::GetInputHandler()->SetNewCommandSet(*cmdSet); #if defined(MPT_ENABLE_UPDATE) if(runUpdates) Modified: trunk/OpenMPT/mptrack/mptrack.rc ============================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/mptrack.rc Fri Nov 15 22:52:54 2024 (r22192) @@ -1245,36 +1245,35 @@ CAPTION "Keyboard" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Select category:",IDC_STATIC,7,5,131,11 - COMBOBOX IDC_KEYCATEGORY,5,16,139,204,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "",IDC_COMMAND_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,32,139,226 - GROUPBOX "Key setup for selected command ",IDC_STATIC,150,6,132,84 - COMBOBOX IDC_CHOICECOMBO,156,18,78,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Key:",IDC_STATIC,156,38,16,8 - EDITTEXT IDC_CUSTHOTKEY,174,36,60,13,ES_AUTOHSCROLL | ES_READONLY - PUSHBUTTON "&Set",IDC_BUTTON1,240,36,37,13 - PUSHBUTTON "&Restore",IDC_RESTORE,240,54,37,13 - PUSHBUTTON "&Delete",IDC_DELETE,240,18,37,13 - CONTROL "On Key Down",IDC_CHECKKEYDOWN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,54,66,8 - CONTROL "On Key Hold",IDC_CHECKKEYHOLD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,66,66,8 - CONTROL "On Key Up",IDC_CHECKKEYUP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,78,66,8 - GROUPBOX "Misc",IDC_STATIC,150,96,132,40 - LTEXT "Repeat notes on hold?",IDC_STATIC,156,108,84,8 - PUSHBUTTON "Yes",IDC_NOTESREPEAT,240,108,18,9 - PUSHBUTTON "No",IDC_NONOTESREPEAT,258,108,18,9 - LTEXT "Chord detect interval (ms):",IDC_STATIC,156,122,94,8 - EDITTEXT IDC_CHORDDETECTWAITTIME,250,120,26,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT - GROUPBOX "Keyboard Mapping",IDC_STATIC,150,144,132,48 - PUSHBUTTON "&Import Keys...",IDC_LOAD,156,156,54,13 - PUSHBUTTON "&Export Keys...",IDC_SAVE,222,156,54,13 - PUSHBUTTON "Restore default &configuration",IDC_RESTORE_KEYMAP,156,174,120,12 - LTEXT "Error Log:",IDC_STATIC,150,198,78,8 - PUSHBUTTON "Clear &Log",IDC_CLEARLOG,239,196,42,12 - EDITTEXT IDC_KEYREPORT,150,210,132,66,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL - EDITTEXT IDC_FIND,30,264,54,12,ES_AUTOHSCROLL - LTEXT "Find:",IDC_STATIC,6,266,24,8 - EDITTEXT IDC_FINDHOTKEY,108,264,36,12,ES_AUTOHSCROLL - LTEXT "Key:",IDC_STATIC,90,266,17,8 + LTEXT "Select c&ategory:",IDC_STATIC,7,8,83,8 + COMBOBOX IDC_KEYCATEGORY,90,6,192,204,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "",IDC_COMMAND_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,24,277,126 + LTEXT "&Find by Name:",IDC_STATIC,6,158,54,8 + EDITTEXT IDC_FIND,60,156,102,12,ES_AUTOHSCROLL + PUSHBUTTON "Find by Hotkey...",IDC_BUTTON2,168,156,66,13 + LTEXT "Key:",IDC_FINDHOTKEY_LABEL,174,158,17,8,NOT WS_VISIBLE + EDITTEXT IDC_FINDHOTKEY,192,156,42,12,ES_AUTOHSCROLL | NOT WS_VISIBLE + PUSHBUTTON "C&lear",IDC_BUTTON3,240,156,44,12 + GROUPBOX "&Key setup for selected command",IDC_GROUPBOX_KEYSETUP,6,174,276,66 + COMBOBOX IDC_CHOICECOMBO,12,186,84,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Key:",IDC_STATIC,102,188,16,8 + EDITTEXT IDC_CUSTHOTKEY,120,186,72,13,ES_AUTOHSCROLL | ES_READONLY + PUSHBUTTON "&Set",IDC_BUTTON1,198,186,37,13 + PUSHBUTTON "&Restore",IDC_RESTORE,240,186,37,13 + PUSHBUTTON "&Delete Choice",IDC_DELETE,198,204,79,13 + CONTROL "On Key Down",IDC_CHECKKEYDOWN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,206,66,8 + CONTROL "On Key Hold",IDC_CHECKKEYHOLD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,78,206,60,8 + CONTROL "On Key Up",IDC_CHECKKEYUP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,138,206,54,8 + ICON "",IDC_STATIC1,12,223,20,20,SS_CENTERIMAGE | SS_REALSIZEIMAGE | NOT WS_VISIBLE + LTEXT "No conflicts found.",IDC_KEYREPORT,26,224,254,13 + LTEXT "Repeat notes on hold?",IDC_STATIC,6,248,84,8 + PUSHBUTTON "Yes",IDC_NOTESREPEAT,90,246,24,12 + PUSHBUTTON "No",IDC_NONOTESREPEAT,120,246,24,12 + LTEXT "Chord detect interval (ms):",IDC_STATIC,156,248,94,8 + EDITTEXT IDC_CHORDDETECTWAITTIME,252,246,30,12,ES_AUTOHSCROLL | ES_NUMBER + PUSHBUTTON "&Import Key Map...",IDC_LOAD,6,264,72,13 + PUSHBUTTON "&Export Key Map...",IDC_SAVE,84,264,72,13 + PUSHBUTTON "Restore default &configuration",IDC_RESTORE_KEYMAP,162,264,120,12 END IDD_OPTIONS_COLORS DIALOGEX 0, 0, 286, 282 Modified: trunk/OpenMPT/mptrack/resource.h ============================================================================== --- trunk/OpenMPT/mptrack/resource.h Fri Nov 15 22:21:01 2024 (r22191) +++ trunk/OpenMPT/mptrack/resource.h Fri Nov 15 22:52:54 2024 (r22192) @@ -658,8 +658,8 @@ #define IDC_SAVE 2102 #define IDC_LOAD 2103 #define IDC_KEYREPORT 2105 -#define IDC_BROWSEKEYCONF 2107 -#define IDC_CLEARLOG 2107 +#define IDC_GROUPBOX_KEYSETUP 2106 +#define IDC_FINDHOTKEY_LABEL 2107 #define IDC_NOTESREPEAT 2108 #define IDC_REMCHANSLIST 2108 #define IDC_NOTESREPEAT2 2109 |
From: <sv...@op...> - 2024-11-15 21:21:15
|
Author: sagamusix Date: Fri Nov 15 22:21:01 2024 New Revision: 22191 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22191 Log: [Fix] File/Append shortcut didn't work. Modified: trunk/OpenMPT/mptrack/MainFrm.cpp Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Fri Nov 15 21:54:09 2024 (r22190) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Fri Nov 15 22:21:01 2024 (r22191) @@ -2613,6 +2613,7 @@ //D'oh!! moddoc isn't a CWnd so we have to handle its messages and pass them on. + case kcFileAppend: case kcFileSaveAs: case kcFileSaveCopy: case kcFileSaveAsWave: |
From: <sv...@op...> - 2024-11-15 20:54:22
|
Author: sagamusix Date: Fri Nov 15 21:54:09 2024 New Revision: 22190 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22190 Log: [Mod] Rename automatically-generated keyboard shortcuts to something more identifiable. These names are still shown in the conflict list and can thus be confusing. [Mod] Rearrange a few keyboard shortcuts to group them more logically. Modified: trunk/OpenMPT/mptrack/CommandSet.cpp trunk/OpenMPT/mptrack/CommandSet.h trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Modified: trunk/OpenMPT/mptrack/CommandSet.cpp ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp Fri Nov 15 21:01:14 2024 (r22189) +++ trunk/OpenMPT/mptrack/CommandSet.cpp Fri Nov 15 21:54:09 2024 (r22190) @@ -967,38 +967,38 @@ {KeyCommand::Hidden, kcSetFXDummy, _T("FX Dummy") }, {1294, kcSetFXmacroSlide, _T("Smooth MIDI Macro Slide")}, {1295, kcSetFXdelaycut, _T("Combined Note Delay and Note Cut")}, - {KeyCommand::Hidden, kcPatternJumpDownh1Select, _T("kcPatternJumpDownh1Select")}, - {KeyCommand::Hidden, kcPatternJumpUph1Select, _T("kcPatternJumpUph1Select")}, - {KeyCommand::Hidden, kcPatternSnapDownh1Select, _T("kcPatternSnapDownh1Select")}, - {KeyCommand::Hidden, kcPatternSnapUph1Select, _T("kcPatternSnapUph1Select")}, - {KeyCommand::Hidden, kcNavigateDownSelect, _T("kcNavigateDownSelect")}, - {KeyCommand::Hidden, kcNavigateUpSelect, _T("kcNavigateUpSelect")}, - {KeyCommand::Hidden, kcNavigateLeftSelect, _T("kcNavigateLeftSelect")}, - {KeyCommand::Hidden, kcNavigateRightSelect, _T("kcNavigateRightSelect")}, - {KeyCommand::Hidden, kcNavigateNextChanSelect, _T("kcNavigateNextChanSelect")}, - {KeyCommand::Hidden, kcNavigatePrevChanSelect, _T("kcNavigatePrevChanSelect")}, - {KeyCommand::Hidden, kcHomeHorizontalSelect, _T("kcHomeHorizontalSelect")}, - {KeyCommand::Hidden, kcHomeVerticalSelect, _T("kcHomeVerticalSelect")}, - {KeyCommand::Hidden, kcHomeAbsoluteSelect, _T("kcHomeAbsoluteSelect")}, - {KeyCommand::Hidden, kcEndHorizontalSelect, _T("kcEndHorizontalSelect")}, - {KeyCommand::Hidden, kcEndVerticalSelect, _T("kcEndVerticalSelect")}, - {KeyCommand::Hidden, kcEndAbsoluteSelect, _T("kcEndAbsoluteSelect")}, + {KeyCommand::Hidden, kcPatternJumpDownh1Select, _T("Jump down by measure select")}, + {KeyCommand::Hidden, kcPatternJumpUph1Select, _T("Jump up by measure select")}, + {KeyCommand::Hidden, kcPatternSnapDownh1Select, _T("Snap down to measure select")}, + {KeyCommand::Hidden, kcPatternSnapUph1Select, _T("Snap up to measure select")}, + {KeyCommand::Hidden, kcNavigateDownSelect, _T("Select to Down")}, + {KeyCommand::Hidden, kcNavigateUpSelect, _T("Select to Up")}, + {KeyCommand::Hidden, kcNavigateLeftSelect, _T("Select to Left")}, + {KeyCommand::Hidden, kcNavigateRightSelect, _T("Select to Right")}, + {KeyCommand::Hidden, kcNavigateNextChanSelect, _T("Select to Next Channel")}, + {KeyCommand::Hidden, kcNavigatePrevChanSelect, _T("Select to Previous Channel")}, + {KeyCommand::Hidden, kcHomeHorizontalSelect, _T("Select to First Channel")}, + {KeyCommand::Hidden, kcHomeVerticalSelect, _T("Select to First Row")}, + {KeyCommand::Hidden, kcHomeAbsoluteSelect, _T("Selecto to First Row / Channel")}, + {KeyCommand::Hidden, kcEndHorizontalSelect, _T("Select to Last Channel")}, + {KeyCommand::Hidden, kcEndVerticalSelect, _T("Select to Last Row")}, + {KeyCommand::Hidden, kcEndAbsoluteSelect, _T("Select to Last Row /channel")}, {KeyCommand::Hidden, kcSelectWithNav, _T("kcSelectWithNav")}, {KeyCommand::Hidden, kcSelectOffWithNav, _T("kcSelectOffWithNav")}, {KeyCommand::Hidden, kcCopySelectWithNav, _T("kcCopySelectWithNav")}, {KeyCommand::Hidden, kcCopySelectOffWithNav, _T("kcCopySelectOffWithNav")}, {1316 | KeyCommand::Dummy, kcChordModifier, _T("Chord Modifier")}, - {1317 | KeyCommand::Dummy, kcSetSpacing, _T("Set edit step on note entry")}, - {KeyCommand::Hidden, kcSetSpacing0, _T("")}, - {KeyCommand::Hidden, kcSetSpacing1, _T("")}, - {KeyCommand::Hidden, kcSetSpacing2, _T("")}, - {KeyCommand::Hidden, kcSetSpacing3, _T("")}, - {KeyCommand::Hidden, kcSetSpacing4, _T("")}, - {KeyCommand::Hidden, kcSetSpacing5, _T("")}, - {KeyCommand::Hidden, kcSetSpacing6, _T("")}, - {KeyCommand::Hidden, kcSetSpacing7, _T("")}, - {KeyCommand::Hidden, kcSetSpacing8, _T("")}, - {KeyCommand::Hidden, kcSetSpacing9, _T("")}, + {1317 | KeyCommand::Dummy, kcSetSpacing, _T("Edit Step Modifier")}, + {KeyCommand::Hidden, kcSetSpacing0, _T("Set Edit Step to 0")}, + {KeyCommand::Hidden, kcSetSpacing1, _T("Set Edit Step to 1")}, + {KeyCommand::Hidden, kcSetSpacing2, _T("Set Edit Step to 2")}, + {KeyCommand::Hidden, kcSetSpacing3, _T("Set Edit Step to 3")}, + {KeyCommand::Hidden, kcSetSpacing4, _T("Set Edit Step to 4")}, + {KeyCommand::Hidden, kcSetSpacing5, _T("Set Edit Step to 5")}, + {KeyCommand::Hidden, kcSetSpacing6, _T("Set Edit Step to 6")}, + {KeyCommand::Hidden, kcSetSpacing7, _T("Set Edit Step to 7")}, + {KeyCommand::Hidden, kcSetSpacing8, _T("Set Edit Step to 8")}, + {KeyCommand::Hidden, kcSetSpacing9, _T("Set Edit Step to 9")}, {KeyCommand::Hidden, kcCopySelectWithSelect, _T("kcCopySelectWithSelect")}, {KeyCommand::Hidden, kcCopySelectOffWithSelect, _T("kcCopySelectOffWithSelect")}, {KeyCommand::Hidden, kcSelectWithCopySelect, _T("kcSelectWithCopySelect")}, @@ -1015,10 +1015,10 @@ {1339, kcPatternJumpUph2, _T("Jump up by beat")}, {1340, kcPatternSnapDownh2, _T("Snap down to beat")}, {1341, kcPatternSnapUph2, _T("Snap up to beat")}, - {KeyCommand::Hidden, kcPatternJumpDownh2Select, _T("kcPatternJumpDownh2Select")}, - {KeyCommand::Hidden, kcPatternJumpUph2Select, _T("kcPatternJumpUph2Select")}, - {KeyCommand::Hidden, kcPatternSnapDownh2Select, _T("kcPatternSnapDownh2Select")}, - {KeyCommand::Hidden, kcPatternSnapUph2Select, _T("kcPatternSnapUph2Select")}, + {KeyCommand::Hidden, kcPatternJumpDownh2Select, _T("Jump down by beat select")}, + {KeyCommand::Hidden, kcPatternJumpUph2Select, _T("Jump up by beat select")}, + {KeyCommand::Hidden, kcPatternSnapDownh2Select, _T("Snap down to beat select")}, + {KeyCommand::Hidden, kcPatternSnapUph2Select, _T("Snap up to beat select")}, {1346, kcFileOpen, _T("File/Open")}, {1347, kcFileNew, _T("File/New")}, {1348, kcFileClose, _T("File/Close")}, @@ -1089,8 +1089,8 @@ {1685, kcSwitchToOrderList, _T("Switch to Order List")}, {1686, kcEditMixPasteITStyle, _T("Mix Paste (IT Style)")}, {1687, kcApproxRealBPM, _T("Show approx. real BPM")}, - {KeyCommand::Hidden, kcNavigateDownBySpacingSelect, _T("kcNavigateDownBySpacingSelect")}, - {KeyCommand::Hidden, kcNavigateUpBySpacingSelect, _T("kcNavigateUpBySpacingSelect")}, + {KeyCommand::Hidden, kcNavigateDownBySpacingSelect, _T("Up-By-Spacing-Select")}, + {KeyCommand::Hidden, kcNavigateUpBySpacingSelect, _T("Down-By-Spacing-Select")}, {1691, kcNavigateDownBySpacing, _T("Navigate down by spacing")}, {1692, kcNavigateUpBySpacing, _T("Navigate up by spacing")}, {1693, kcPrevDocument, _T("Previous Document")}, @@ -1113,12 +1113,12 @@ {1779, kcSoloChnOnPatTransition, _T("Solo channel on pattern transition")}, {1780, kcTimeAtRow, _T("Show playback time at current row")}, {1781, kcViewMIDImapping, _T("View MIDI Mapping")}, - {1782, kcVSTGUIPrevPresetJump, _T("Plugin preset backward jump")}, - {1783, kcVSTGUINextPresetJump, _T("Plugin preset forward jump")}, + {1782, kcVSTGUIPrevPresetJump, _T("Plugin Preset -10")}, + {1783, kcVSTGUINextPresetJump, _T("Plugin Preset +10")}, {1784, kcSampleInvert, _T("Invert Sample Phase")}, {1785, kcSampleSignUnsign, _T("Signed / Unsigned Conversion")}, {1786, kcChannelReset, _T("Reset Channel")}, - {1787, kcToggleOverflowPaste, _T("Toggle overflow paste")}, + {1787, kcToggleOverflowPaste, _T("Toggle Overflow Paste")}, {1788, kcNotePC, _T("Parameter Control")}, {1789, kcNotePCS, _T("Parameter Control (smooth)")}, {1790, kcSampleRemoveDCOffset, _T("Remove DC Offset")}, @@ -1129,10 +1129,10 @@ {1795, kcOrderlistNavigateRight, _T("Next Order")}, {1796, kcOrderlistNavigateFirst, _T("First Order")}, {1797, kcOrderlistNavigateLast, _T("Last Order")}, - {KeyCommand::Hidden, kcOrderlistNavigateLeftSelect, _T("kcOrderlistNavigateLeftSelect")}, - {KeyCommand::Hidden, kcOrderlistNavigateRightSelect, _T("kcOrderlistNavigateRightSelect")}, - {KeyCommand::Hidden, kcOrderlistNavigateFirstSelect, _T("kcOrderlistNavigateFirstSelect")}, - {KeyCommand::Hidden, kcOrderlistNavigateLastSelect, _T("kcOrderlistNavigateLastSelect")}, + {KeyCommand::Hidden, kcOrderlistNavigateLeftSelect, _T("Left-Select")}, + {KeyCommand::Hidden, kcOrderlistNavigateRightSelect, _T("Right-Select")}, + {KeyCommand::Hidden, kcOrderlistNavigateFirstSelect, _T("First-Select")}, + {KeyCommand::Hidden, kcOrderlistNavigateLastSelect, _T("Last-Select")}, {1802, kcOrderlistEditDelete, _T("Delete Order")}, {1803, kcOrderlistEditInsert, _T("Insert Order")}, {1804, kcOrderlistEditPattern, _T("Edit Pattern")}, @@ -1148,26 +1148,26 @@ {1814, kcOrderlistPat7, _T("Pattern index digit 7")}, {1815, kcOrderlistPat8, _T("Pattern index digit 8")}, {1816, kcOrderlistPat9, _T("Pattern index digit 9")}, - {1817, kcOrderlistPatPlus, _T("Increase pattern index ")}, - {1818, kcOrderlistPatMinus, _T("Decrease pattern index")}, + {1817, kcOrderlistPatPlus, _T("Increase Pattern Index")}, + {1818, kcOrderlistPatMinus, _T("Decrease Pattern Index")}, {1819, kcShowSplitKeyboardSettings, _T("Split Keyboard Settings dialog")}, {1820, kcEditPushForwardPaste, _T("Push Forward Paste (Insert)")}, - {1821, kcInstrumentEnvelopePointMoveLeft, _T("Move envelope point left")}, - {1822, kcInstrumentEnvelopePointMoveRight, _T("Move envelope point right")}, - {1823, kcInstrumentEnvelopePointMoveUp, _T("Move envelope point up")}, - {1824, kcInstrumentEnvelopePointMoveDown, _T("Move envelope point down")}, - {1825, kcInstrumentEnvelopePointPrev, _T("Select previous envelope point")}, - {1826, kcInstrumentEnvelopePointNext, _T("Select next envelope point")}, + {1821, kcInstrumentEnvelopePointMoveLeft, _T("Move Envelope Point Left")}, + {1822, kcInstrumentEnvelopePointMoveRight, _T("Move Envelope Point Right")}, + {1823, kcInstrumentEnvelopePointMoveUp, _T("Move envelope Point Up")}, + {1824, kcInstrumentEnvelopePointMoveDown, _T("Move Envelope Point Down")}, + {1825, kcInstrumentEnvelopePointPrev, _T("Select Previous Envelope Point")}, + {1826, kcInstrumentEnvelopePointNext, _T("Select Next Envelope Point")}, {1827, kcInstrumentEnvelopePointInsert, _T("Insert Envelope Point")}, {1828, kcInstrumentEnvelopePointRemove, _T("Remove Envelope Point")}, {1829, kcInstrumentEnvelopeSetLoopStart, _T("Set Loop Start")}, {1830, kcInstrumentEnvelopeSetLoopEnd, _T("Set Loop End")}, - {1831, kcInstrumentEnvelopeSetSustainLoopStart, _T("Set sustain loop start")}, - {1832, kcInstrumentEnvelopeSetSustainLoopEnd, _T("Set sustain loop end")}, - {1833, kcInstrumentEnvelopeToggleReleaseNode, _T("Toggle release node")}, - {1834, kcInstrumentEnvelopePointMoveUp8, _T("Move envelope point up (Coarse)")}, - {1835, kcInstrumentEnvelopePointMoveDown8, _T("Move envelope point down (Coarse)")}, - {1836, kcPatternEditPCNotePlugin, _T("Toggle PC Event/instrument plugin editor")}, + {1831, kcInstrumentEnvelopeSetSustainLoopStart, _T("Set Sustain Loop Start")}, + {1832, kcInstrumentEnvelopeSetSustainLoopEnd, _T("Set Sustain Loop End")}, + {1833, kcInstrumentEnvelopeToggleReleaseNode, _T("Toggle Release Mode")}, + {1834, kcInstrumentEnvelopePointMoveUp8, _T("Move Envelope Point Up (Coarse)")}, + {1835, kcInstrumentEnvelopePointMoveDown8, _T("Move Envelope Point Down (Coarse)")}, + {1836, kcPatternEditPCNotePlugin, _T("Toggle PC Event/Instrument Plugin Editor")}, {1837, kcInstrumentEnvelopeZoomIn, _T("Zoom In")}, {1838, kcInstrumentEnvelopeZoomOut, _T("Zoom Out")}, {1839, kcVSTGUIToggleRecordParams, _T("Toggle Parameter Recording")}, @@ -1196,16 +1196,16 @@ {1862, kcDecreaseSpacing, _T("Decrease Edit Step")}, {1863, kcSampleAutotune, _T("Tune Sample to given Note")}, {1864, kcFileCloseAll, _T("File/Close All")}, - {KeyCommand::Hidden, kcSetOctaveStop0, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop1, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop2, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop3, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop4, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop5, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop6, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop7, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop8, _T("")}, - {KeyCommand::Hidden, kcSetOctaveStop9, _T("")}, + {KeyCommand::Hidden, kcSetOctaveStop0, _T("Set Octave 0")}, + {KeyCommand::Hidden, kcSetOctaveStop1, _T("Set Octave 1")}, + {KeyCommand::Hidden, kcSetOctaveStop2, _T("Set Octave 2")}, + {KeyCommand::Hidden, kcSetOctaveStop3, _T("Set Octave 3")}, + {KeyCommand::Hidden, kcSetOctaveStop4, _T("Set Octave 4")}, + {KeyCommand::Hidden, kcSetOctaveStop5, _T("Set Octave 5")}, + {KeyCommand::Hidden, kcSetOctaveStop6, _T("Set Octave 6")}, + {KeyCommand::Hidden, kcSetOctaveStop7, _T("Set Octave 7")}, + {KeyCommand::Hidden, kcSetOctaveStop8, _T("Set Octave 8")}, + {KeyCommand::Hidden, kcSetOctaveStop9, _T("Set Octave 9")}, {1875, kcOrderlistLockPlayback, _T("Lock Playback to Selection")}, {1876, kcOrderlistUnlockPlayback, _T("Unlock Playback")}, {1877, kcChannelSettings, _T("Quick Channel Settings")}, @@ -1338,10 +1338,10 @@ {2029, kcViewToggle, _T("Toggle Between Upper / Lower View") }, {2030, kcFileSaveOPL, _T("File/Export OPL Register Dump") }, {2031, kcSampleLoadRaw, _T("Load Raw Sample")}, - {2032, kcTogglePatternPlayRow, _T("Toggle row playback when navigating")}, + {2032, kcTogglePatternPlayRow, _T("Toggle Row Playback when Navigating")}, {2033, kcInsNoteMapTransposeSamples, _T("Transpose Samples / Reset Map") }, - {KeyCommand::Hidden, kcPrevEntryInColumnSelect, _T("kcPrevEntryInColumnSelect")}, - {KeyCommand::Hidden, kcNextEntryInColumnSelect, _T("kcNextEntryInColumnSelect")}, + {KeyCommand::Hidden, kcPrevEntryInColumnSelect, _T("Select to previous entry in column")}, + {KeyCommand::Hidden, kcNextEntryInColumnSelect, _T("Select to next entry in column")}, {2034, kcTreeViewOpen, _T("Open / View Item")}, {2035, kcTreeViewPlay, _T("Play Item")}, {2036, kcTreeViewInsert, _T("Insert Item")}, @@ -1395,9 +1395,9 @@ {2100, kcGotoParamColumn, _T("Go to effect parameter column")}, {2101, kcContextMenu, _T("Open Context Menu")}, {2102, kcOrderlistStreamExport, _T("Stream Export")}, - {2103, kcToggleVisibilityInstrColumn, _T("Toggle instrument column visibility")}, - {2104, kcToggleVisibilityVolumeColumn, _T("Toggle volume column visibility")}, - {2105, kcToggleVisibilityEffectColumn, _T("Toggle effect column visibility")}, + {2103, kcToggleVisibilityInstrColumn, _T("Toggle Instrument Column Visibility")}, + {2104, kcToggleVisibilityVolumeColumn, _T("Toggle Volume Column Visibility")}, + {2105, kcToggleVisibilityEffectColumn, _T("Toggle Effect Column Visibility")}, {2106, kcFileOpenTemplate, _T("File/Open Template")}, }; // clang-format on Modified: trunk/OpenMPT/mptrack/CommandSet.h ============================================================================== --- trunk/OpenMPT/mptrack/CommandSet.h Fri Nov 15 21:01:14 2024 (r22189) +++ trunk/OpenMPT/mptrack/CommandSet.h Fri Nov 15 21:54:09 2024 (r22190) @@ -88,11 +88,11 @@ kcFileSaveMidi, kcFileSaveOPL, kcFileExportCompat, - kcPrevDocument, - kcNextDocument, kcFileImportMidiLib, kcFileAddSoundBank, - kcEndFile = kcFileAddSoundBank, + kcPrevDocument, + kcNextDocument, + kcEndFile = kcNextDocument, kcStartPlayCommands, kcPlayPauseSong = kcStartPlayCommands, @@ -286,7 +286,9 @@ kcEndSelect = kcCopyAndLoseSelection, kcStartPatternClipboard, - kcCutPatternChannel = kcStartPatternClipboard, + kcCursorCopy = kcStartPatternClipboard, + kcCursorPaste, + kcCutPatternChannel, kcCutPattern, kcCopyPatternChannel, kcCopyPattern, @@ -297,13 +299,13 @@ kcClipboardNext, kcEndPatternClipboard = kcClipboardNext, - kcStartPatternEditMisc, - kcToggleFollowSong = kcStartPatternEditMisc, - kcCursorCopy, - kcCursorPaste, + kcStartPatternMisc, + kcToggleFollowSong = kcStartPatternMisc, + kcChangeLoopStatus, + kcPatternPlayRow, + kcPatternGoto, kcFindInstrument, kcPatternRecord, - kcPatternPlayRow, kcSetSpacing, kcSetSpacing0, kcSetSpacing1, @@ -318,16 +320,14 @@ kcIncreaseSpacing, kcDecreaseSpacing, kcSwitchToOrderList, - kcNewPattern, - kcDuplicatePattern, - kcSplitPattern, kcPatternEditPCNotePlugin, kcTogglePluginEditor, kcShowNoteProperties, kcShowPatternProperties, kcShowSplitKeyboardSettings, + kcPatternVisualizeEffect, + kcPatternOpenRandomizer, kcChordEditor, - kcChangeLoopStatus, kcShowEditMenu, kcShowChannelCtxMenu, kcShowChannelPluginCtxMenu, @@ -341,7 +341,7 @@ kcToggleVisibilityInstrColumn, kcToggleVisibilityVolumeColumn, kcToggleVisibilityEffectColumn, - kcEndPatternEditMisc = kcToggleVisibilityEffectColumn, + kcEndPatternMisc = kcToggleVisibilityEffectColumn, kcStartChannelKeys, kcChannelMute = kcStartChannelKeys, @@ -362,6 +362,7 @@ kcChannelMoveRight, kcChannelSettings, kcEndChannelKeys = kcChannelSettings, + kcBeginTranspose, kcTransposeUp = kcBeginTranspose, kcTransposeDown, @@ -386,18 +387,22 @@ kcDataEntryUpCoarseStop, kcDataEntryDownCoarseStop, kcEndTransposeStop = kcDataEntryDownCoarseStop, + + kcStartPatternEditMisc, + kcNewPattern = kcStartPatternEditMisc, + kcDuplicatePattern, + kcSplitPattern, kcPatternAmplify, kcPatternInterpolateNote, kcPatternInterpolateInstr, kcPatternInterpolateVol, kcPatternInterpolateEffect, - kcPatternVisualizeEffect, - kcPatternOpenRandomizer, - kcPatternGoto, kcPatternSetInstrument, kcPatternSetInstrumentNotEmpty, kcPatternGrowSelection, kcPatternShrinkSelection, + kcEndPatternEditMisc = kcPatternShrinkSelection, + // kcClearSelection, kcClearRow, kcClearField, @@ -727,7 +732,8 @@ //Volume stuff kcSetVolumeStart, - kcSetVolume0 = kcSetVolumeStart, + kcStartVolumeDigits = kcSetVolumeStart, + kcSetVolume0 = kcStartVolumeDigits, kcSetVolume1, kcSetVolume2, kcSetVolume3, @@ -737,22 +743,25 @@ kcSetVolume7, kcSetVolume8, kcSetVolume9, - kcSetVolumeVol, //v - kcSetVolumePan, //p - kcSetVolumeVolSlideUp, //c - kcSetVolumeVolSlideDown, //d - kcSetVolumeFineVolUp, //a - kcSetVolumeFineVolDown, //b - kcSetVolumeVibratoSpd, //u - kcSetVolumeVibrato, //h - kcSetVolumeXMPanLeft, //l - kcSetVolumeXMPanRight, //r - kcSetVolumePortamento, //g - kcSetVolumeITPortaUp, //f - kcSetVolumeITPortaDown, //e - kcSetVolumeITUnused, //: - kcSetVolumeITOffset, //o - kcSetVolumeEnd = kcSetVolumeITOffset, + kcEndVolumeDigits = kcSetVolume9, + kcStartVolumeCommands, + kcSetVolumeVol = kcStartVolumeCommands, //v + kcSetVolumePan, //p + kcSetVolumeVolSlideUp, //c + kcSetVolumeVolSlideDown, //d + kcSetVolumeFineVolUp, //a + kcSetVolumeFineVolDown, //b + kcSetVolumeVibratoSpd, //u + kcSetVolumeVibrato, //h + kcSetVolumeXMPanLeft, //l + kcSetVolumeXMPanRight, //r + kcSetVolumePortamento, //g + kcSetVolumeITPortaUp, //f + kcSetVolumeITPortaDown, //e + kcSetVolumeITUnused, //: + kcSetVolumeITOffset, //o + kcEndVolumeCommands = kcSetVolumeITOffset, + kcSetVolumeEnd = kcEndVolumeCommands, //Effect params kcSetFXParam0, @@ -1039,11 +1048,10 @@ kcOrderlistPatIgnore, kcOrderlistPatInvalid, kcEndOrderlistNum = kcOrderlistPatInvalid, + kcStartOrderlistMisc, // Playback lock - kcStartOrderlistLock, - kcOrderlistLockPlayback = kcStartOrderlistLock, + kcOrderlistLockPlayback = kcStartOrderlistMisc, kcOrderlistUnlockPlayback, - kcEndOrderlistLock = kcOrderlistUnlockPlayback, kcStartOrderlistQueue, kcOrderlistQueueAtPatternEnd = kcStartOrderlistQueue, kcOrderlistQueueAtMeasureEnd, @@ -1051,7 +1059,8 @@ kcOrderlistQueueAtRowEnd, kcEndOrderlistQueue = kcOrderlistQueueAtRowEnd, kcOrderlistStreamExport, - kcEndOrderlistCommands = kcOrderlistStreamExport, + kcEndOrderlistMisc = kcOrderlistStreamExport, + kcEndOrderlistCommands = kcEndOrderlistMisc, kcStartChnSettingsCommands, kcChnSettingsPrev = kcStartChnSettingsCommands, Modified: trunk/OpenMPT/mptrack/KeyConfigDlg.cpp ============================================================================== --- trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Fri Nov 15 21:01:14 2024 (r22189) +++ trunk/OpenMPT/mptrack/KeyConfigDlg.cpp Fri Nov 15 21:54:09 2024 (r22190) @@ -276,8 +276,8 @@ newCat.AddCommands(kcClearRow, kcInsertWholeRowGlobal, true); newCat.AddCommands(kcStartChannelKeys, kcEndChannelKeys, true); newCat.AddCommands(kcBeginTranspose, kcEndTranspose, true); - newCat.AddCommands(kcPatternAmplify, kcPatternShrinkSelection, true); newCat.AddCommands(kcStartPatternEditMisc, kcEndPatternEditMisc, true); + newCat.AddCommands(kcStartPatternMisc, kcEndPatternMisc, true); commandCategories.push_back(newCat); } |
From: <sv...@op...> - 2024-11-15 20:01:22
|
Author: sagamusix Date: Fri Nov 15 21:01:14 2024 New Revision: 22189 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22189 Log: [Var] Recompress PNG assets with zopflipng. Modified: trunk/OpenMPT/mptrack/res/About.png trunk/OpenMPT/mptrack/res/Splash.png trunk/OpenMPT/mptrack/res/envelope_toolbar.png trunk/OpenMPT/mptrack/res/icons.png trunk/OpenMPT/mptrack/res/main_toolbar.png trunk/OpenMPT/mptrack/res/pattern_toolbar.png trunk/OpenMPT/mptrack/res/sample_toolbar.png Modified: trunk/OpenMPT/mptrack/res/About.png ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/OpenMPT/mptrack/res/Splash.png ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/OpenMPT/mptrack/res/envelope_toolbar.png ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/OpenMPT/mptrack/res/icons.png ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/OpenMPT/mptrack/res/main_toolbar.png ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/OpenMPT/mptrack/res/pattern_toolbar.png ============================================================================== Binary file (source and/or target). No diff available. Modified: trunk/OpenMPT/mptrack/res/sample_toolbar.png ============================================================================== Binary file (source and/or target). No diff available. |
From: <sv...@op...> - 2024-11-15 16:24:45
|
Author: manx Date: Fri Nov 15 17:24:30 2024 New Revision: 22188 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22188 Log: [Ref] build: Makefile: DJGPP: Small 3DNow cleanup. Modified: trunk/OpenMPT/build/make/config-djgpp.mk Modified: trunk/OpenMPT/build/make/config-djgpp.mk ============================================================================== --- trunk/OpenMPT/build/make/config-djgpp.mk Fri Nov 15 17:19:40 2024 (r22187) +++ trunk/OpenMPT/build/make/config-djgpp.mk Fri Nov 15 17:24:30 2024 (r22188) @@ -57,7 +57,10 @@ FPU_MMX := -m80387 -mmmx -mfpmath=387 FPU_3DNOW := -m80387 -mmmx -m3dnow -mfpmath=387 FPU_3DNOWA := -m80387 -mmmx -m3dnow -m3dnowa -mfpmath=387 - FPU_3DASSE := -m80387 -mmmx -m3dnow -m3dnowa -mfxsr -msse -mfpmath=sse,387 + FPU_3DSSE := -m80387 -mmmx -m3dnow -m3dnowa -mfxsr -msse -mfpmath=sse,387 + FPU_3DSSE2 := -m80387 -mmmx -m3dnow -m3dnowa -mfxsr -msse -msse2 -mfpmath=sse + FPU_3DSSE3 := -m80387 -mmmx -m3dnow -m3dnowa -mfxsr -msse -msse2 -msse3 -mfpmath=sse + FPU_3DSSE4 := -m80387 -mmmx -m3dnow -m3dnowa -mfxsr -msse -msse2 -msse3 -msse4a -mfpmath=sse FPU_SSE := -m80387 -mmmx -mfxsr -msse -mfpmath=sse,387 FPU_SSE2 := -m80387 -mmmx -mfxsr -msse -msse2 -mfpmath=sse FPU_SSE3 := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mfpmath=sse @@ -73,7 +76,10 @@ FPU_MMX := -m80387 -mmmx -mfpmath=387 FPU_3DNOW := -m80387 -mmmx -m3dnow -mfpmath=387 FPU_3DNOWA := -m80387 -mmmx -m3dnow -m3dnowa -mfpmath=387 - FPU_3DASSE := -mno-sse -mno-fxsr -m80387 -mmmx -m3dnow -m3dnowa -mfpmath=387 + FPU_3DSSE := -mno-sse -mno-fxsr -m80387 -mmmx -m3dnow -m3dnowa -mfpmath=387 + FPU_3DSSE2 := -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -m3dnow -m3dnowa -mfpmath=387 + FPU_3DSSE3 := -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -m3dnow -m3dnowa -mfpmath=387 + FPU_3DSSE4 := -mno-sse4a -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -m3dnow -m3dnowa -mfpmath=387 FPU_SSE := -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 FPU_SSE2 := -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 FPU_SSE3 := -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 @@ -288,18 +294,18 @@ amd/k6-2+ := $(___) -march=k6-3 $(FPU_3DNOW) -mtune=k6-3 $(OPT_UARCH_OOOE_64) --param l1-cache-size=32 --param l2-cache-size=128 amd/k6-3+ := $(___) -march=k6-3 $(FPU_3DNOW) -mtune=k6-3 $(OPT_UARCH_OOOE_64) --param l1-cache-size=32 --param l2-cache-size=256 amd/athlon := $(XX_) -march=athlon $(FPU_3DNOWA) -mtune=athlon $(OPT_UARCH_OOOE_64) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_ATHLON) -amd/athlon-xp := $(XXX) -march=athlon-xp $(FPU_3DASSE) -mtune=athlon-xp $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_ATHLONXP) -amd/athlon64 := $(X__) -march=k8 $(FPU_SSE2) -mtune=k8 $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_ATHLON64) -amd/athlon64-sse3 := $(___) -march=k8-sse3 $(FPU_SSE3) -mtune=k8-sse3 $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_ATHLON64) -amd/k10 := $(___) -march=amdfam10 $(FPU_SSE4A) -mtune=amdfam10 $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=512 +amd/athlon-xp := $(XXX) -march=athlon-xp $(FPU_3DSSE) -mtune=athlon-xp $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_ATHLONXP) +amd/athlon64 := $(X__) -march=k8 $(FPU_3DSSE2) -mtune=k8 $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_ATHLON64) +amd/athlon64-sse3 := $(___) -march=k8-sse3 $(FPU_3DSSE3) -mtune=k8-sse3 $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_ATHLON64) +amd/k10 := $(___) -march=amdfam10 $(FPU_3DSSE4) -mtune=amdfam10 $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=512 amd/duron := $(X__) -march=athlon $(FPU_3DNOWA) -mtune=athlon $(OPT_UARCH_OOOE_64) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_DURON) -amd/duron-xp := $(___) -march=athlon-xp $(FPU_3DASSE) -mtune=athlon-xp $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_DURONXP) -amd/sempron64 := $(___) -march=k8 $(FPU_SSE2) -mtune=k8 $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_SEMPRON64) +amd/duron-xp := $(___) -march=athlon-xp $(FPU_3DSSE) -mtune=athlon-xp $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_DURONXP) +amd/sempron64 := $(___) -march=k8 $(FPU_3DSSE2) -mtune=k8 $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=$(CACHE_SEMPRON64) amd/geode-gx := $(___) -march=geode $(FPU_3DNOWA) -mtune=geode $(OPT_UARCH_OOOE_64) --param l1-cache-size=16 --param l2-cache-size=0 amd/geode-lx := $(___) -march=geode $(FPU_3DNOWA) -mtune=geode $(OPT_UARCH_OOOE_64) --param l1-cache-size=64 --param l2-cache-size=128 -amd/geode-nx := $(___) -march=athlon-xp $(FPU_3DASSE) -mtune=athlon-xp $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=256 +amd/geode-nx := $(___) -march=athlon-xp $(FPU_3DSSE) -mtune=athlon-xp $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=256 amd/bobcat := $(X__) -march=btver1 $(FPU_SSSE4A) -mtune=btver1 $(OPT_UARCH_OOOE_128) --param l1-cache-size=32 --param l2-cache-size=512 amd/jaguar := $(___) -march=btver2 $(FPU_SSSE4A) -mtune=btver2 $(OPT_UARCH_OOOE_128) --param l1-cache-size=32 --param l2-cache-size=1024 |
From: <sv...@op...> - 2024-11-15 16:19:51
|
Author: manx Date: Fri Nov 15 17:19:40 2024 New Revision: 22187 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22187 Log: [Ref] build: premake: openmpt123: Add unfinished MSVC projects for UWP. Added: trunk/OpenMPT/build/vs2022win10uwp/ext/flac.vcxproj (contents, props changed) trunk/OpenMPT/build/vs2022win10uwp/ext/flac.vcxproj.filters (contents, props changed) trunk/OpenMPT/build/vs2022win10uwp/ext/portaudio.vcxproj (contents, props changed) trunk/OpenMPT/build/vs2022win10uwp/ext/portaudio.vcxproj.filters (contents, props changed) trunk/OpenMPT/build/vs2022win10uwp/libopenmpt_test.sln (contents, props changed) trunk/OpenMPT/build/vs2022win10uwp/libopenmpt_test.vcxproj (contents, props changed) trunk/OpenMPT/build/vs2022win10uwp/libopenmpt_test.vcxproj.filters (contents, props changed) trunk/OpenMPT/build/vs2022win10uwp/openmpt123.sln (contents, props changed) trunk/OpenMPT/build/vs2022win10uwp/openmpt123.vcxproj (contents, props changed) trunk/OpenMPT/build/vs2022win10uwp/openmpt123.vcxproj.filters (contents, props changed) Modified: trunk/OpenMPT/build/premake/mpt-openmpt123.lua trunk/OpenMPT/build/regenerate_vs_projects.cmd trunk/OpenMPT/build/regenerate_vs_projects.sh Modified: trunk/OpenMPT/build/premake/mpt-openmpt123.lua ============================================================================== --- trunk/OpenMPT/build/premake/mpt-openmpt123.lua Fri Nov 15 16:15:38 2024 (r22186) +++ trunk/OpenMPT/build/premake/mpt-openmpt123.lua Fri Nov 15 17:19:40 2024 (r22187) @@ -72,7 +72,9 @@ } filter {} - filter { "action:vs*" } - linkoptions { "wsetargv.obj" } - filter {} + if _OPTIONS["windows-family"] ~= "uwp" then + filter { "action:vs*" } + linkoptions { "wsetargv.obj" } + filter {} + end prebuildcommands { "..\\..\\build\\svn_version\\update_svn_version_vs_premake.cmd $(IntDir)" } Modified: trunk/OpenMPT/build/regenerate_vs_projects.cmd ============================================================================== --- trunk/OpenMPT/build/regenerate_vs_projects.cmd Fri Nov 15 16:15:38 2024 (r22186) +++ trunk/OpenMPT/build/regenerate_vs_projects.cmd Fri Nov 15 17:19:40 2024 (r22187) @@ -108,8 +108,10 @@ echo Done ^) ^|^| pause start cmd /c ^( ^ +%PREMAKE% --file=build/premake/premake.lua --group=libopenmpt_test vs2022 --windows-version=win10 --windows-family=uwp ^&^& ^ %PREMAKE% --file=build/premake/premake.lua --group=libopenmpt-small vs2022 --windows-version=win10 --windows-family=uwp ^&^& ^ %PREMAKE% --file=build/premake/premake.lua --group=libopenmpt vs2022 --windows-version=win10 --windows-family=uwp ^&^& ^ +%PREMAKE% --file=build/premake/premake.lua --group=openmpt123 vs2022 --windows-version=win10 --windows-family=uwp ^&^& ^ echo Done ^) ^|^| pause start cmd /c ^( ^ Modified: trunk/OpenMPT/build/regenerate_vs_projects.sh ============================================================================== --- trunk/OpenMPT/build/regenerate_vs_projects.sh Fri Nov 15 16:15:38 2024 (r22186) +++ trunk/OpenMPT/build/regenerate_vs_projects.sh Fri Nov 15 17:19:40 2024 (r22187) @@ -102,8 +102,10 @@ ${PREMAKE} --file=build/premake/premake.lua --group=OpenMPT vs2022 --clang --windows-version=win10 && \ echo ok & +${PREMAKE} --file=build/premake/premake.lua --group=libopenmpt_test vs2022 --windows-version=win10 --windows-family=uwp && \ ${PREMAKE} --file=build/premake/premake.lua --group=libopenmpt-small vs2022 --windows-version=win10 --windows-family=uwp && \ ${PREMAKE} --file=build/premake/premake.lua --group=libopenmpt vs2022 --windows-version=win10 --windows-family=uwp && \ +${PREMAKE} --file=build/premake/premake.lua --group=openmpt123 vs2022 --windows-version=win10 --windows-family=uwp && \ echo ok & ${PREMAKE} --file=build/premake-xcode/premake.lua --target=macosx xcode4 && \ Added: trunk/OpenMPT/build/vs2022win10uwp/ext/flac.vcxproj ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/OpenMPT/build/vs2022win10uwp/ext/flac.vcxproj Fri Nov 15 17:19:40 2024 (r22187) @@ -0,0 +1,1316 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|ARM"> + <Configuration>Debug</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|ARM64"> + <Configuration>Debug</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM"> + <Configuration>Release</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM64"> + <Configuration>Release</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Checked|Win32"> + <Configuration>Checked</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Checked|x64"> + <Configuration>Checked</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Checked|ARM"> + <Configuration>Checked</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Checked|ARM64"> + <Configuration>Checked</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="DebugShared|Win32"> + <Configuration>DebugShared</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="DebugShared|x64"> + <Configuration>DebugShared</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="DebugShared|ARM"> + <Configuration>DebugShared</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="DebugShared|ARM64"> + <Configuration>DebugShared</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="ReleaseShared|Win32"> + <Configuration>ReleaseShared</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="ReleaseShared|x64"> + <Configuration>ReleaseShared</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="ReleaseShared|ARM"> + <Configuration>ReleaseShared</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="ReleaseShared|ARM64"> + <Configuration>ReleaseShared</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="CheckedShared|Win32"> + <Configuration>CheckedShared</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="CheckedShared|x64"> + <Configuration>CheckedShared</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="CheckedShared|ARM"> + <Configuration>CheckedShared</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="CheckedShared|ARM64"> + <Configuration>CheckedShared</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{E599F5AA-F9A3-46CC-8DB0-C8DEFCEB90C5}</ProjectGuid> + <IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename> + <Keyword>Win32Proj</Keyword> + <RootNamespace>flac</RootNamespace> + <PreferredToolArchitecture>x64</PreferredToolArchitecture> + <DefaultLanguage>en-US</DefaultLanguage> + <MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion> + <AppContainerApplication>true</AppContainerApplication> + <ApplicationType>Windows Store</ApplicationType> + <ApplicationTypeRevision>10.0</ApplicationTypeRevision> + <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.22000.0</WindowsTargetPlatformVersion> + <WindowsTargetPlatformMinVersion>10.0.17134.0</WindowsTargetPlatformMinVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|ARM'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|ARM64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|ARM'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|ARM64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|ARM'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|ARM64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|ARM'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|ARM64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Checked|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Checked|ARM'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Checked|ARM64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DebugShared|ARM'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DebugShared|ARM64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|ARM'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|ARM64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='CheckedShared|ARM'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='CheckedShared|ARM64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <OutDir>..\..\lib\vs2022win10uwp\x86\Debug\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86\Debug\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <OutDir>..\..\lib\vs2022win10uwp\x86_64\Debug\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86_64\Debug\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> + <OutDir>..\..\lib\vs2022win10uwp\ARM\Debug\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm\Debug\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> + <OutDir>..\..\lib\vs2022win10uwp\ARM64\Debug\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm64\Debug\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>..\..\lib\vs2022win10uwp\x86\Release\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86\Release\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>..\..\lib\vs2022win10uwp\x86_64\Release\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86_64\Release\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> + <OutDir>..\..\lib\vs2022win10uwp\ARM\Release\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm\Release\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'"> + <OutDir>..\..\lib\vs2022win10uwp\ARM64\Release\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm64\Release\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'"> + <OutDir>..\..\lib\vs2022win10uwp\x86\Checked\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86\Checked\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'"> + <OutDir>..\..\lib\vs2022win10uwp\x86_64\Checked\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86_64\Checked\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|ARM'"> + <OutDir>..\..\lib\vs2022win10uwp\ARM\Checked\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm\Checked\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Checked|ARM64'"> + <OutDir>..\..\lib\vs2022win10uwp\ARM64\Checked\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm64\Checked\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.lib</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\debug\vs2022-win10uwp-shared\x86\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86\DebugShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\debug\vs2022-win10uwp-shared\amd64\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86_64\DebugShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|ARM'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\debug\vs2022-win10uwp-shared\arm\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm\DebugShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|ARM64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\debug\vs2022-win10uwp-shared\arm64\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm64\DebugShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\release\vs2022-win10uwp-shared\x86\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86\ReleaseShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\release\vs2022-win10uwp-shared\amd64\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86_64\ReleaseShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|ARM'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\release\vs2022-win10uwp-shared\arm\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm\ReleaseShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseShared|ARM64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\release\vs2022-win10uwp-shared\arm64\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm64\ReleaseShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\checked\vs2022-win10uwp-shared\x86\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86\CheckedShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\checked\vs2022-win10uwp-shared\amd64\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\x86_64\CheckedShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|ARM'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\checked\vs2022-win10uwp-shared\arm\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm\CheckedShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CheckedShared|ARM64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\checked\vs2022-win10uwp-shared\arm64\</OutDir> + <IntDir>..\..\obj\vs2022win10uwp\flac\arm64\CheckedShared\</IntDir> + <TargetName>openmpt-flac</TargetName> + <TargetExt>.dll</TargetExt> + <IgnoreImportLibrary>false</IgnoreImportLibrary> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_DEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <MinimalRebuild>false</MinimalRebuild> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <FullProgramDatabaseFile>true</FullProgramDatabaseFile> + <GenerateDebugInformation>DebugFastLink</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_DEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <MinimalRebuild>false</MinimalRebuild> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <FullProgramDatabaseFile>true</FullProgramDatabaseFile> + <GenerateDebugInformation>DebugFastLink</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_DEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <MinimalRebuild>false</MinimalRebuild> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_DEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <MinimalRebuild>false</MinimalRebuild> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/Gw /Zc:checkGwOdr /wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/Gw /Zc:checkGwOdr /wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/Gw /Zc:checkGwOdr /wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>NDEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/Gw /Zc:checkGwOdr /wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_CHECKED;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <OmitFramePointers>false</OmitFramePointers> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/Gw /Zc:checkGwOdr /wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_CHECKED;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <OmitFramePointers>false</OmitFramePointers> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/Gw /Zc:checkGwOdr /wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|ARM'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_CHECKED;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <OmitFramePointers>false</OmitFramePointers> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/Gw /Zc:checkGwOdr /wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Checked|ARM64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_CHECKED;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC__NO_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <Optimization>Full</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <MinimalRebuild>false</MinimalRebuild> + <OmitFramePointers>false</OmitFramePointers> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/Gw /Zc:checkGwOdr /wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|Win32'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_DEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC_API_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <MinimalRebuild>false</MinimalRebuild> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <AdditionalOptions>/wd4101 /wd4244 /wd4267 /wd4334 /wd6001 /wd6011 /wd6031 /wd6297 /wd6386 /wd28182 %(AdditionalOptions)</AdditionalOptions> + <LanguageStandard_C>stdc17</LanguageStandard_C> + <ConformanceMode>true</ConformanceMode> + <ExternalWarningLevel>Level3</ExternalWarningLevel> + <UseStandardPreprocessor>true</UseStandardPreprocessor> + <CompileAsWinRT>false</CompileAsWinRT> + <ForcedUsingFiles /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ImportLibrary>..\..\..\bin\debug\vs2022-win10uwp-shared\x86\openmpt-flac.lib</ImportLibrary> + <LargeAddressAware>true</LargeAddressAware> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugShared|x64'"> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <PreprocessorDefinitions>DEBUG;MPT_BUILD_DEBUG;MPT_BUILD_MSVC;WIN32;NOMINMAX;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_WIN32_WINNT=0x0A00;NTDDI_VERSION=0x0A00000C;FLAC__HAS_OGG=1;PACKAGE_VERSION="1.4.3";FLAC_API_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include\ogg\include;..\..\..\include\flac\include;..\..\..\include\flac\src\libFLAC\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <Optimization>Disabled</Optimization> + <MinimalRebuild>false</MinimalRebuild> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + <Additional... [truncated message content] |
From: <sv...@op...> - 2024-11-15 15:16:00
|
Author: manx Date: Fri Nov 15 16:15:38 2024 New Revision: 22186 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22186 Log: Merged revision(s) 22185 from trunk/OpenMPT: [Fix] build: Makefile: DJGPP: AMD K10 does not support SSSE3. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/build/make/config-djgpp.mk Modified: branches/OpenMPT-1.31/build/make/config-djgpp.mk ============================================================================== --- branches/OpenMPT-1.31/build/make/config-djgpp.mk Fri Nov 15 16:14:00 2024 (r22185) +++ branches/OpenMPT-1.31/build/make/config-djgpp.mk Fri Nov 15 16:15:38 2024 (r22186) @@ -53,7 +53,8 @@ FPU_SSSE3 := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -mfpmath=sse FPU_SSE4_1 := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -msse4.1 -mfpmath=sse FPU_SSE4_2 := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mfpmath=sse - FPU_SSE4A := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -msse4a -mfpmath=sse + FPU_SSE4A := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -msse4a -mfpmath=sse + FPU_SSSE4A := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -msse4a -mfpmath=sse else FPU_NONE := -mno-80387 FPU_287 := -m80387 -mfpmath=387 -mno-fancy-math-387 @@ -68,7 +69,8 @@ FPU_SSSE3 := -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 FPU_SSE4_1 := -mno-sse4.1 -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 FPU_SSE4_2 := -mno-sse4.2 -mno-sse4.1 -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 - FPU_SSE4A := -mno-sse4a -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 + FPU_SSE4A := -mno-sse4a -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 + FPU_SSSE4A := -mno-sse4a -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 endif OPT_DEF := -Os @@ -202,11 +204,11 @@ amd/geode-gx := $(___) -march=geode $(FPU_3DNOW) -mtune=geode $(OPT_SIMD) --param l1-cache-size=16 --param l2-cache-size=0 amd/geode-lx := $(___) -march=geode $(FPU_3DNOW) -mtune=geode $(OPT_SIMD) --param l1-cache-size=64 --param l2-cache-size=128 amd/geode-nx := $(___) -march=athlon-xp $(FPU_3DASSE) -mtune=athlon-xp $(OPT_SIMD) --param l1-cache-size=64 --param l2-cache-size=256 -amd/bobcat := $(___) -march=btver1 $(FPU_SSE4A) -mtune=btver1 $(OPT_SIMD) --param l1-cache-size=32 --param l2-cache-size=512 -amd/jaguar := $(___) -march=btver2 $(FPU_SSE4A) -mtune=btver2 $(OPT_SIMD) --param l1-cache-size=32 --param l2-cache-size=1024 +amd/bobcat := $(___) -march=btver1 $(FPU_SSSE4A) -mtune=btver1 $(OPT_SIMD) --param l1-cache-size=32 --param l2-cache-size=512 +amd/jaguar := $(___) -march=btver2 $(FPU_SSSE4A) -mtune=btver2 $(OPT_SIMD) --param l1-cache-size=32 --param l2-cache-size=1024 amd/late-3dnow := $(XX_) -march=athlon-xp $(FPU_3DASSE) -mtune=athlon-xp $(OPT_SIMD) --param l1-cache-size=64 --param l2-cache-size=512 -amd/late := $(XX_) -march=i686 $(FPU_SSE4A) -mtune=generic $(OPT_SIMD) +amd/late := $(XX_) -march=i686 $(FPU_SSSE4A) -mtune=generic $(OPT_SIMD) |
From: <sv...@op...> - 2024-11-15 15:14:12
|
Author: manx Date: Fri Nov 15 16:14:00 2024 New Revision: 22185 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22185 Log: [Fix] build: Makefile: DJGPP: AMD K10 does not support SSSE3. Modified: trunk/OpenMPT/build/make/config-djgpp.mk Modified: trunk/OpenMPT/build/make/config-djgpp.mk ============================================================================== --- trunk/OpenMPT/build/make/config-djgpp.mk Thu Nov 14 21:50:24 2024 (r22184) +++ trunk/OpenMPT/build/make/config-djgpp.mk Fri Nov 15 16:14:00 2024 (r22185) @@ -64,7 +64,8 @@ FPU_SSSE3 := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -mfpmath=sse FPU_SSE4_1 := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -msse4.1 -mfpmath=sse FPU_SSE4_2 := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mfpmath=sse - FPU_SSE4A := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -msse4a -mfpmath=sse + FPU_SSE4A := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -msse4a -mfpmath=sse + FPU_SSSE4A := -m80387 -mmmx -mfxsr -msse -msse2 -msse3 -mssse3 -msse4a -mfpmath=sse else FPU_NONE := -mno-80387 FPU_287 := -m80387 -mfpmath=387 -mno-fancy-math-387 @@ -79,7 +80,8 @@ FPU_SSSE3 := -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 FPU_SSE4_1 := -mno-sse4.1 -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 FPU_SSE4_2 := -mno-sse4.2 -mno-sse4.1 -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 - FPU_SSE4A := -mno-sse4a -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 + FPU_SSE4A := -mno-sse4a -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 + FPU_SSSE4A := -mno-sse4a -mno-ssse3 -mno-sse3 -mno-sse2 -mno-sse -mno-fxsr -m80387 -mmmx -mfpmath=387 endif @@ -298,10 +300,10 @@ amd/geode-gx := $(___) -march=geode $(FPU_3DNOWA) -mtune=geode $(OPT_UARCH_OOOE_64) --param l1-cache-size=16 --param l2-cache-size=0 amd/geode-lx := $(___) -march=geode $(FPU_3DNOWA) -mtune=geode $(OPT_UARCH_OOOE_64) --param l1-cache-size=64 --param l2-cache-size=128 amd/geode-nx := $(___) -march=athlon-xp $(FPU_3DASSE) -mtune=athlon-xp $(OPT_UARCH_OOOE_128) --param l1-cache-size=64 --param l2-cache-size=256 -amd/bobcat := $(X__) -march=btver1 $(FPU_SSE4A) -mtune=btver1 $(OPT_UARCH_OOOE_128) --param l1-cache-size=32 --param l2-cache-size=512 -amd/jaguar := $(___) -march=btver2 $(FPU_SSE4A) -mtune=btver2 $(OPT_UARCH_OOOE_128) --param l1-cache-size=32 --param l2-cache-size=1024 +amd/bobcat := $(X__) -march=btver1 $(FPU_SSSE4A) -mtune=btver1 $(OPT_UARCH_OOOE_128) --param l1-cache-size=32 --param l2-cache-size=512 +amd/jaguar := $(___) -march=btver2 $(FPU_SSSE4A) -mtune=btver2 $(OPT_UARCH_OOOE_128) --param l1-cache-size=32 --param l2-cache-size=1024 -amd/late := $(XX_) -march=i686 $(FPU_SSE4A) -mtune=generic $(OPT_UARCH_OOOE_128) +amd/late := $(XX_) -march=i686 $(FPU_SSSE4A) -mtune=generic $(OPT_UARCH_OOOE_128) |
From: <sv...@op...> - 2024-11-14 20:50:36
|
Author: sagamusix Date: Thu Nov 14 21:50:24 2024 New Revision: 22184 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22184 Log: [Fix] Hidden items in the main toolbar could still sometimes show up when restarting playback (https://bugs.openmpt.org/view.php?id=1839). Modified: trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/mptrack/TrackerSettings.h Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Thu Nov 14 00:07:07 2024 (r22183) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Thu Nov 14 21:50:24 2024 (r22184) @@ -535,6 +535,7 @@ // Update Info m_updating = true; const CWnd *focus = GetFocus(); + const FlagSet<MainToolBarItem> visibleItems = TrackerSettings::Instance().mainToolBarVisibleItems.Get(); if(pSndFile) { // Update play/pause button @@ -542,7 +543,7 @@ SetButtonInfo(PLAYCMD_INDEX, ID_PLAYER_PAUSE, TBBS_BUTTON, TOOLBAR_IMAGE_PAUSE); // Update Speed int nSpeed = pSndFile->m_PlayState.m_nMusicSpeed; - if(nSpeed != m_currentSpeed && focus != &m_EditSpeed) + if(nSpeed != m_currentSpeed && focus != &m_EditSpeed && visibleItems[MainToolBarItem::Speed]) { if(m_currentSpeed < 0) EnableEdit(m_EditSpeed, m_SpinSpeed, true); @@ -551,7 +552,7 @@ SetDlgItemInt(IDC_EDIT_CURRENTSPEED, m_currentSpeed, FALSE); } TEMPO nTempo = pSndFile->m_PlayState.m_nMusicTempo; - if(nTempo != m_currentTempo && focus != &m_EditTempo) + if(nTempo != m_currentTempo && focus != &m_EditTempo && visibleItems[MainToolBarItem::Tempo]) { if(m_currentTempo <= TEMPO(0, 0)) EnableEdit(m_EditTempo, m_SpinTempo, true); @@ -560,7 +561,7 @@ m_EditTempo.SetTempoValue(m_currentTempo); } int nRowsPerBeat = pSndFile->m_PlayState.m_nCurrentRowsPerBeat; - if(nRowsPerBeat != m_currentRowsPerBeat && focus != &m_EditRowsPerBeat) + if(nRowsPerBeat != m_currentRowsPerBeat && focus != &m_EditRowsPerBeat && visibleItems[MainToolBarItem::RowsPerBeat]) { if(m_currentRowsPerBeat < 0) EnableEdit(m_EditRowsPerBeat, m_SpinRowsPerBeat, true); @@ -569,7 +570,7 @@ SetDlgItemInt(IDC_EDIT_RPB, m_currentRowsPerBeat, FALSE); } int globalVol = pSndFile->m_PlayState.m_nGlobalVolume; - if(globalVol != m_currentGlobalVolume && focus != &m_EditGlobalVolume) + if(globalVol != m_currentGlobalVolume && focus != &m_EditGlobalVolume && visibleItems[MainToolBarItem::GlobalVolume]) { if(m_currentGlobalVolume < 0) EnableEdit(m_EditGlobalVolume, m_SpinGlobalVolume, true); Modified: trunk/OpenMPT/mptrack/TrackerSettings.h ============================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h Thu Nov 14 00:07:07 2024 (r22183) +++ trunk/OpenMPT/mptrack/TrackerSettings.h Thu Nov 14 21:50:24 2024 (r22184) @@ -715,7 +715,7 @@ Setting<FontSetting> commentsFont; - Setting<MainToolBarItem> mainToolBarVisibleItems; + CachedSetting<MainToolBarItem> mainToolBarVisibleItems; Setting<bool> treeViewOnLeft; // Misc |
From: <sv...@op...> - 2024-11-13 23:07:20
|
Author: sagamusix Date: Thu Nov 14 00:07:07 2024 New Revision: 22183 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22183 Log: [Mod] Main toolbar: Hide separator before VU Meters when VU Meters are not displayed. Modified: trunk/OpenMPT/mptrack/Mainbar.cpp Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Wed Nov 13 22:38:47 2024 (r22182) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Thu Nov 14 00:07:07 2024 (r22183) @@ -169,7 +169,8 @@ EDITGLOBALVOL_INDEX = GLOBALVOLTEXT_INDEX + 1, // Edit Speed SPINGLOBALVOL_INDEX = EDITGLOBALVOL_INDEX + 1, // Spin Speed DIVGLOBALVOL_INDEX = SPINGLOBALVOL_INDEX + 1, // Divider at end - VUMETER_INDEX = SPINGLOBALVOL_INDEX + 6, // VU Meters + DIVVUMETER_INDEX = SPINGLOBALVOL_INDEX + 5, // Divider before VU Meters + VUMETER_INDEX = DIVVUMETER_INDEX + 1, // VU Meters }; #define TOOLBAR_IMAGE_PAUSE 8 @@ -441,6 +442,7 @@ UpdateControl(visibleItems[MainToolBarItem::GlobalVolume], m_SpinGlobalVolume, SPINGLOBALVOL_INDEX, IDC_SPIN_GLOBALVOL); SetButtonVisibility(DIVGLOBALVOL_INDEX, visibleItems.test_any_except(MainToolBarItem::VUMeter)); + SetButtonVisibility(DIVVUMETER_INDEX, visibleItems[MainToolBarItem::VUMeter]); m_VuMeter.SetOrientation(!m_bVertical); if(m_bVertical) m_VuMeter.SetWindowPos(nullptr, 0, 0, VUMETER_HEIGHT, VUMETER_HEIGHT, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); |
From: <sv...@op...> - 2024-11-13 21:38:58
|
Author: sagamusix Date: Wed Nov 13 22:38:47 2024 New Revision: 22182 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22182 Log: [Imp] Reduce flicker in main toolbar when toggling playback. Modified: trunk/OpenMPT/mptrack/Mainbar.cpp Modified: trunk/OpenMPT/mptrack/Mainbar.cpp ============================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp Wed Nov 13 21:31:04 2024 (r22181) +++ trunk/OpenMPT/mptrack/Mainbar.cpp Wed Nov 13 22:38:47 2024 (r22182) @@ -293,6 +293,8 @@ m_EditTempo.AllowNegative(false); m_EditTempo.SetLimitText(9); + static_assert(MAX_GLOBAL_VOLUME <= 999); + m_EditGlobalVolume.SetLimitText(3); // Display everything SetWindowText(_T("Main")); @@ -513,6 +515,19 @@ } +static void EnableEdit(CEdit &edit, CSpinButtonCtrl &spin, bool enable) +{ + edit.SetRedraw(FALSE); + if(!enable) + edit.SetWindowText(_T("---")); + edit.EnableWindow(enable ? TRUE : FALSE); + edit.SetReadOnly(enable ? FALSE : TRUE); + edit.SetRedraw(TRUE); + edit.Invalidate(FALSE); + spin.EnableWindow(enable ? TRUE : FALSE); +} + + void CMainToolBar::SetCurrentSong(CSoundFile *pSndFile) { // Update Info @@ -528,11 +543,8 @@ if(nSpeed != m_currentSpeed && focus != &m_EditSpeed) { if(m_currentSpeed < 0) - { - m_EditSpeed.SetReadOnly(FALSE); - m_EditSpeed.EnableWindow(TRUE); - m_SpinSpeed.EnableWindow(TRUE); - } + EnableEdit(m_EditSpeed, m_SpinSpeed, true); + m_currentSpeed = nSpeed; SetDlgItemInt(IDC_EDIT_CURRENTSPEED, m_currentSpeed, FALSE); } @@ -540,11 +552,7 @@ if(nTempo != m_currentTempo && focus != &m_EditTempo) { if(m_currentTempo <= TEMPO(0, 0)) - { - m_EditTempo.SetReadOnly(FALSE); - m_EditTempo.EnableWindow(TRUE); - m_SpinTempo.EnableWindow(TRUE); - } + EnableEdit(m_EditTempo, m_SpinTempo, true); m_currentTempo = nTempo; m_EditTempo.SetTempoValue(m_currentTempo); @@ -553,11 +561,7 @@ if(nRowsPerBeat != m_currentRowsPerBeat && focus != &m_EditRowsPerBeat) { if(m_currentRowsPerBeat < 0) - { - m_EditRowsPerBeat.SetReadOnly(FALSE); - m_EditRowsPerBeat.EnableWindow(TRUE); - m_SpinRowsPerBeat.EnableWindow(TRUE); - } + EnableEdit(m_EditRowsPerBeat, m_SpinRowsPerBeat, true); m_currentRowsPerBeat = nRowsPerBeat; SetDlgItemInt(IDC_EDIT_RPB, m_currentRowsPerBeat, FALSE); @@ -566,13 +570,7 @@ if(globalVol != m_currentGlobalVolume && focus != &m_EditGlobalVolume) { if(m_currentGlobalVolume < 0) - { - static_assert(MAX_GLOBAL_VOLUME <= 999); - m_EditGlobalVolume.SetLimitText(3); - m_EditGlobalVolume.SetReadOnly(FALSE); - m_EditGlobalVolume.EnableWindow(TRUE); - m_SpinGlobalVolume.EnableWindow(TRUE); - } + EnableEdit(m_EditGlobalVolume, m_SpinGlobalVolume, true); m_currentGlobalVolume = globalVol; uint32 displayVolume = Util::muldivr_unsigned(m_currentGlobalVolume, pSndFile->GlobalVolumeRange(), MAX_GLOBAL_VOLUME); @@ -582,37 +580,20 @@ { if(m_currentTempo > TEMPO(0, 0)) { - m_currentTempo.Set(0); - m_EditTempo.SetWindowText(_T("---")); - m_EditTempo.SetReadOnly(); - m_EditTempo.EnableWindow(FALSE); - m_SpinTempo.EnableWindow(FALSE); + EnableEdit(m_EditTempo, m_SpinTempo, false); SetButtonInfo(PLAYCMD_INDEX, ID_PLAYER_PLAY, TBBS_BUTTON, TOOLBAR_IMAGE_PLAY); } if(m_currentSpeed != -1) - { - m_currentSpeed = -1; - m_EditSpeed.SetWindowText(_T("---")); - m_EditSpeed.SetReadOnly(); - m_EditSpeed.EnableWindow(FALSE); - m_SpinSpeed.EnableWindow(FALSE); - } + EnableEdit(m_EditSpeed, m_SpinSpeed, false); if(m_currentRowsPerBeat != -1) - { - m_currentRowsPerBeat = -1; - m_EditRowsPerBeat.SetWindowText(_T("---")); - m_EditRowsPerBeat.SetReadOnly(); - m_EditRowsPerBeat.EnableWindow(FALSE); - m_SpinRowsPerBeat.EnableWindow(FALSE); - } + EnableEdit(m_EditRowsPerBeat, m_SpinRowsPerBeat, false); if(m_currentGlobalVolume != -1) - { - m_currentGlobalVolume = -1; - m_EditGlobalVolume.SetWindowText(_T("---")); - m_EditGlobalVolume.SetReadOnly(); - m_EditGlobalVolume.EnableWindow(FALSE); - m_SpinGlobalVolume.EnableWindow(FALSE); - } + EnableEdit(m_EditGlobalVolume, m_SpinGlobalVolume, false); + + m_currentTempo.Set(0); + m_currentSpeed = -1; + m_currentRowsPerBeat = -1; + m_currentGlobalVolume = -1; } // If focus was on a now-disabled input field, move it somewhere else if(focus && !focus->IsWindowEnabled() && focus->GetParent() == this) |