From cee7eb31ec63fda352c3ced0f961625782e3dbd5 Mon Sep 17 00:00:00 2001 From: soyer Date: Tue, 8 Jul 2025 19:15:35 +0200 Subject: [PATCH] Add shortcut for changing the Bank in performance load (#948) 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) {