Improve menu structure

unison
probonopd 1 week ago
parent c55fa12135
commit 5b66c8dd70
  1. 16
      src/uimenu.cpp
  2. 20
      src/uimenu.h

@ -81,9 +81,7 @@ const CUIMenu::TMenuItem CUIMenu::s_TGMenu[] =
{"Detune", EditTGParameter, 0, CMiniDexed::TGParameterMasterTune},
{"Cutoff", EditTGParameter, 0, CMiniDexed::TGParameterCutoff},
{"Resonance", EditTGParameter, 0, CMiniDexed::TGParameterResonance},
{"Unison Voices", EditTGParameter, 0, CMiniDexed::TGParameterUnisonVoices},
{"Unison Detune", EditTGParameter, 0, CMiniDexed::TGParameterUnisonDetune},
{"Unison Spread", EditTGParameter, 0, CMiniDexed::TGParameterUnisonSpread},
{"Unison", MenuHandler, s_UnisonMenu},
{"Pitch Bend", MenuHandler, s_EditPitchBendMenu},
{"Portamento", MenuHandler, s_EditPortamentoMenu},
{"Poly/Mono", EditTGParameter, 0, CMiniDexed::TGParameterMonoMode},
@ -93,6 +91,14 @@ const CUIMenu::TMenuItem CUIMenu::s_TGMenu[] =
{0}
};
const CUIMenu::TMenuItem CUIMenu::s_UnisonMenu[] =
{
{"Voices", EditTGParameter, 0, CMiniDexed::TGParameterUnisonVoices},
{"Detune", EditTGParameter, 0, CMiniDexed::TGParameterUnisonDetune},
{"Spread", EditTGParameter, 0, CMiniDexed::TGParameterUnisonSpread},
{0}
};
const CUIMenu::TMenuItem CUIMenu::s_EffectsMenu[] =
{
{"Compress", EditGlobalParameter, 0, CMiniDexed::ParameterCompressorEnable},
@ -1104,7 +1110,7 @@ string CUIMenu::GetOPValueString (unsigned nOPParameter, int nValue)
string CUIMenu::ToVolume (int nValue)
{
static const size_t MaxChars = CConfig::LCDColumns-2;
static const std::size_t MaxChars = CConfig::LCDColumns-2;
char VolumeBar[MaxChars+1];
memset (VolumeBar, 0xFF, sizeof VolumeBar); // 0xFF is the block character
VolumeBar[nValue * MaxChars / 127] = '\0';
@ -1115,7 +1121,7 @@ string CUIMenu::ToVolume (int nValue)
string CUIMenu::ToPan (int nValue)
{
assert (CConfig::LCDColumns == 16);
static const size_t MaxChars = CConfig::LCDColumns-3;
static const std::size_t MaxChars = CConfig::LCDColumns-3;
char PanMarker[MaxChars+1] = "......:......";
unsigned nIndex = nValue * MaxChars / 127;
if (nIndex == MaxChars)

@ -57,11 +57,6 @@ public:
};
public:
CUIMenu (CUserInterface *pUI, CMiniDexed *pMiniDexed, CConfig *pConfig);
void EventHandler (TMenuEvent Event);
private:
typedef void TMenuHandler (CUIMenu *pUIMenu, TMenuEvent Event);
struct TMenuItem
@ -72,6 +67,17 @@ private:
unsigned Parameter;
};
static const TMenuItem s_UnisonMenu[];
static void EditTGParameter(CUIMenu *pUIMenu, TMenuEvent Event);
static void EditVoiceParameter(CUIMenu *pUIMenu, TMenuEvent Event);
static void EditOPParameter(CUIMenu *pUIMenu, TMenuEvent Event);
static void SavePerformance(CUIMenu *pUIMenu, TMenuEvent Event);
public:
CUIMenu(CUserInterface *pUI, CMiniDexed *pMiniDexed, CConfig *pConfig);
void EventHandler(TMenuEvent Event);
private:
typedef std::string TToString (int nValue);
struct TParameter
@ -87,10 +93,6 @@ private:
static void EditGlobalParameter (CUIMenu *pUIMenu, TMenuEvent Event);
static void EditVoiceBankNumber (CUIMenu *pUIMenu, TMenuEvent Event);
static void EditProgramNumber (CUIMenu *pUIMenu, TMenuEvent Event);
static void EditTGParameter (CUIMenu *pUIMenu, TMenuEvent Event);
static void EditVoiceParameter (CUIMenu *pUIMenu, TMenuEvent Event);
static void EditOPParameter (CUIMenu *pUIMenu, TMenuEvent Event);
static void SavePerformance (CUIMenu *pUIMenu, TMenuEvent Event);
static void EditTGParameter2 (CUIMenu *pUIMenu, TMenuEvent Event);
static void EditTGParameterModulation (CUIMenu *pUIMenu, TMenuEvent Event);
static void PerformanceMenu (CUIMenu *pUIMenu, TMenuEvent Event);

Loading…
Cancel
Save