From e917876912dca070c4e19c54f7492be98d70e9ca Mon Sep 17 00:00:00 2001 From: Gergo Koteles Date: Tue, 8 Jul 2025 02:20:26 +0200 Subject: [PATCH] Add shortcut for changing the Bank in performance load In the performance load menu, the current Bank can be changed by pressing the switch and turning the knob left or right. --- src/uimenu.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/uimenu.cpp b/src/uimenu.cpp index 730f320..e8342c8 100644 --- a/src/uimenu.cpp +++ b/src/uimenu.cpp @@ -1566,6 +1566,11 @@ void CUIMenu::PerformanceMenu (CUIMenu *pUIMenu, TMenuEvent Event) unsigned nLastPerformance = pUIMenu->m_pMiniDexed->GetLastPerformance(); unsigned nValue = pUIMenu->m_nSelectedPerformanceID; unsigned nStart = nValue; + + unsigned nLastPerformanceBank = pUIMenu->m_pMiniDexed->GetLastPerformanceBank(); + unsigned nBankValue = pUIMenu->m_nSelectedPerformanceBankID; + unsigned nBankStart = nValue; + if (pUIMenu->m_pMiniDexed->IsValidPerformance(nValue) != true) { // A bank change has left the selected performance out of sync @@ -1633,6 +1638,42 @@ void CUIMenu::PerformanceMenu (CUIMenu *pUIMenu, TMenuEvent Event) } break; + case MenuEventPressAndStepDown: + do + { + if (nBankValue == 0) + { + // Wrap around + nBankValue = nLastPerformanceBank; + } + else if (nBankValue > 0) + { + --nBankValue; + } + } while ((pUIMenu->m_pMiniDexed->IsValidPerformanceBank(nBankValue) != true) && (nBankValue != nBankStart)); + pUIMenu->m_nSelectedPerformanceBankID = nBankValue; + pUIMenu->m_pMiniDexed->SetParameter (CMiniDexed::ParameterPerformanceBank, nBankValue); + pUIMenu->m_pMiniDexed->SetFirstPerformance(); + break; + + case MenuEventPressAndStepUp: + do + { + if (nBankValue == nLastPerformanceBank) + { + // Wrap around + nBankValue = 0; + } + else if (nBankValue < nLastPerformanceBank) + { + ++nBankValue; + } + } while ((pUIMenu->m_pMiniDexed->IsValidPerformanceBank(nBankValue) != true) && (nBankValue != nBankStart)); + pUIMenu->m_nSelectedPerformanceBankID = nBankValue; + pUIMenu->m_pMiniDexed->SetParameter (CMiniDexed::ParameterPerformanceBank, nBankValue); + pUIMenu->m_pMiniDexed->SetFirstPerformance(); + break; + case MenuEventSelect: switch (pUIMenu->m_nCurrentParameter) {