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.
pull/951/head
soyer 1 week ago committed by GitHub
parent 428b144979
commit cee7eb31ec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 41
      src/uimenu.cpp

@ -1566,6 +1566,11 @@ void CUIMenu::PerformanceMenu (CUIMenu *pUIMenu, TMenuEvent Event)
unsigned nLastPerformance = pUIMenu->m_pMiniDexed->GetLastPerformance(); unsigned nLastPerformance = pUIMenu->m_pMiniDexed->GetLastPerformance();
unsigned nValue = pUIMenu->m_nSelectedPerformanceID; unsigned nValue = pUIMenu->m_nSelectedPerformanceID;
unsigned nStart = nValue; unsigned nStart = nValue;
unsigned nLastPerformanceBank = pUIMenu->m_pMiniDexed->GetLastPerformanceBank();
unsigned nBankValue = pUIMenu->m_nSelectedPerformanceBankID;
unsigned nBankStart = nValue;
if (pUIMenu->m_pMiniDexed->IsValidPerformance(nValue) != true) if (pUIMenu->m_pMiniDexed->IsValidPerformance(nValue) != true)
{ {
// A bank change has left the selected performance out of sync // A bank change has left the selected performance out of sync
@ -1633,6 +1638,42 @@ void CUIMenu::PerformanceMenu (CUIMenu *pUIMenu, TMenuEvent Event)
} }
break; 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: case MenuEventSelect:
switch (pUIMenu->m_nCurrentParameter) switch (pUIMenu->m_nCurrentParameter)
{ {

Loading…
Cancel
Save