Unified sub menu redraw
This commit is contained in:
parent
2ea76d96d3
commit
5aafab684e
1 changed files with 110 additions and 297 deletions
407
NuEVI/menu.cpp
407
NuEVI/menu.cpp
|
@ -222,18 +222,22 @@ void drawMenuCursor(byte itemNo, byte color){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static bool updateSubMenuCursor(const MenuPage &page, uint32_t timeNow)
|
static bool drawSubMenu(const MenuPage &page, int color) {
|
||||||
{
|
|
||||||
if ((timeNow - cursorBlinkTime) > cursorBlinkInterval) {
|
|
||||||
if (cursorNow == WHITE) cursorNow = BLACK; else cursorNow = WHITE;
|
|
||||||
|
|
||||||
int index = cursors[page.cursor];
|
int index = cursors[page.cursor];
|
||||||
// TODO: Make sure this is a MenuEntrySub
|
// TODO: Make sure this is a MenuEntrySub
|
||||||
// TODO: Handle MenuEntrySubRotator case
|
// TODO: Handle MenuEntrySubRotator case
|
||||||
// TODO: Null check subMenuFunc
|
// TODO: Null check subMenuFunc
|
||||||
((const MenuEntrySub*)page.entries[index])->subMenuFunc(cursorNow);
|
((const MenuEntrySub*)page.entries[index])->subMenuFunc(color);
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool updateSubMenuCursor(const MenuPage &page, uint32_t timeNow)
|
||||||
|
{
|
||||||
|
if ((timeNow - cursorBlinkTime) > cursorBlinkInterval) {
|
||||||
|
if (cursorNow == WHITE) cursorNow = BLACK;
|
||||||
|
else cursorNow = WHITE;
|
||||||
|
cursorBlinkTime = timeNow;
|
||||||
|
return drawSubMenu( page, cursorNow );
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1178,6 +1182,9 @@ static void checkForPatchView()
|
||||||
|
|
||||||
void menu() {
|
void menu() {
|
||||||
unsigned long timeNow = millis();
|
unsigned long timeNow = millis();
|
||||||
|
const MenuPage *currentPage = nullptr;
|
||||||
|
|
||||||
|
bool redrawSubValue = false;
|
||||||
bool redraw = stateFirstRun;
|
bool redraw = stateFirstRun;
|
||||||
// read the state of the switches
|
// read the state of the switches
|
||||||
uint8_t deumButtons = 0x0f ^(digitalRead(dPin) | (digitalRead(ePin) << 1) | (digitalRead(uPin) << 2) | (digitalRead(mPin)<<3));
|
uint8_t deumButtons = 0x0f ^(digitalRead(dPin) | (digitalRead(ePin) << 1) | (digitalRead(uPin) << 2) | (digitalRead(mPin)<<3));
|
||||||
|
@ -1411,42 +1418,29 @@ void menu() {
|
||||||
drawMenuScreen();
|
drawMenuScreen();
|
||||||
stateFirstRun = 0;
|
stateFirstRun = 0;
|
||||||
}
|
}
|
||||||
|
currentPage = &mainMenuPage;
|
||||||
if (subTranspose){
|
if (subTranspose){
|
||||||
redraw |= updateSubMenuCursor( mainMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( mainMenuPage, timeNow );
|
||||||
if (buttonPressedAndNotUsed){
|
if (buttonPressedAndNotUsed){
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
if (transpose > 0){
|
if (transpose > 0)
|
||||||
clearSubValue();
|
|
||||||
transpose--;
|
transpose--;
|
||||||
plotTranspose(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
if (transpose < 24)
|
||||||
if (transpose < 24){
|
|
||||||
clearSubValue();
|
|
||||||
transpose++;
|
transpose++;
|
||||||
plotTranspose(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotTranspose(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
subTranspose = 0;
|
subTranspose = 0;
|
||||||
writeSetting(TRANSP_ADDR,transpose);
|
writeSetting(TRANSP_ADDR,transpose);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
redrawSubValue = true;
|
||||||
}
|
}
|
||||||
} else if (subOctave){
|
} else if (subOctave){
|
||||||
redraw |= updateSubMenuCursor( mainMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( mainMenuPage, timeNow );
|
||||||
|
@ -1454,38 +1448,22 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
if (octave > 0){
|
if (octave > 0)
|
||||||
clearSubValue();
|
|
||||||
// plotOctave(BLACK);
|
|
||||||
octave--;
|
octave--;
|
||||||
plotOctave(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
if (octave < 6)
|
||||||
if (octave < 6){
|
|
||||||
clearSubValue();
|
|
||||||
// plotOctave(BLACK);
|
|
||||||
octave++;
|
octave++;
|
||||||
plotOctave(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotOctave(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
subOctave = 0;
|
subOctave = 0;
|
||||||
writeSetting(OCTAVE_ADDR,octave);
|
writeSetting(OCTAVE_ADDR,octave);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
redrawSubValue = true;
|
||||||
}
|
}
|
||||||
} else if (subMIDI) {
|
} else if (subMIDI) {
|
||||||
redraw |= updateSubMenuCursor( mainMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( mainMenuPage, timeNow );
|
||||||
|
@ -1493,53 +1471,33 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
if (MIDIchannel > 1){
|
if (MIDIchannel > 1)
|
||||||
clearSubValue();
|
|
||||||
MIDIchannel--;
|
MIDIchannel--;
|
||||||
plotMIDI(WHITE);
|
break;
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
case BTN_UP:
|
||||||
cursorBlinkTime = timeNow;
|
if (MIDIchannel < 16)
|
||||||
}
|
MIDIchannel++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER:
|
case BTN_ENTER:
|
||||||
readSwitches();
|
readSwitches();
|
||||||
if (pinkyKey){
|
if (pinkyKey){
|
||||||
slowMidi = !slowMidi;
|
slowMidi = !slowMidi;
|
||||||
plotMIDI(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
dipSwBits = dipSwBits ^ (1<<3);
|
dipSwBits = dipSwBits ^ (1<<3);
|
||||||
writeSetting(DIPSW_BITS_ADDR,dipSwBits);
|
writeSetting(DIPSW_BITS_ADDR,dipSwBits);
|
||||||
} else {
|
} else {
|
||||||
plotMIDI(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
subMIDI = 0;
|
subMIDI = 0;
|
||||||
writeSetting(MIDI_ADDR,MIDIchannel);
|
writeSetting(MIDI_ADDR,MIDIchannel);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
|
||||||
if (MIDIchannel < 16){
|
|
||||||
clearSubValue();
|
|
||||||
MIDIchannel++;
|
|
||||||
plotMIDI(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
plotMIDI(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
subMIDI = 0;
|
subMIDI = 0;
|
||||||
writeSetting(MIDI_ADDR,MIDIchannel);
|
writeSetting(MIDI_ADDR,MIDIchannel);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
redrawSubValue = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bool hadButtons = buttonPressedAndNotUsed;
|
bool hadButtons = buttonPressedAndNotUsed;
|
||||||
|
@ -1552,6 +1510,7 @@ void menu() {
|
||||||
drawMenu(rotatorMenuPage);
|
drawMenu(rotatorMenuPage);
|
||||||
stateFirstRun = 0;
|
stateFirstRun = 0;
|
||||||
}
|
}
|
||||||
|
currentPage = &rotatorMenuPage;
|
||||||
if (subParallel){
|
if (subParallel){
|
||||||
if (((timeNow - cursorBlinkTime) > cursorBlinkInterval) || forceRedraw) {
|
if (((timeNow - cursorBlinkTime) > cursorBlinkInterval) || forceRedraw) {
|
||||||
if (cursorNow == WHITE) cursorNow = BLACK; else cursorNow = WHITE;
|
if (cursorNow == WHITE) cursorNow = BLACK; else cursorNow = WHITE;
|
||||||
|
@ -1567,36 +1526,26 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
if (parallel > -24){
|
if (parallel > -24)
|
||||||
plotRotator(BLACK,parallel);
|
|
||||||
parallel--;
|
parallel--;
|
||||||
plotRotator(WHITE,parallel);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
if (parallel < 24)
|
||||||
if (parallel < 24){
|
|
||||||
plotRotator(BLACK,parallel);
|
|
||||||
parallel++;
|
parallel++;
|
||||||
plotRotator(WHITE,parallel);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotRotator(WHITE,parallel);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
subParallel = 0;
|
subParallel = 0;
|
||||||
writeSetting(PARAL_ADDR,(parallel + 24));
|
writeSetting(PARAL_ADDR,(parallel + 24));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
clearSubValue();
|
||||||
|
plotRotator(WHITE,parallel);
|
||||||
|
cursorNow = BLACK;
|
||||||
|
redraw = true;
|
||||||
|
cursorBlinkTime = timeNow;
|
||||||
}
|
}
|
||||||
} else if (subRotator){
|
} else if (subRotator){
|
||||||
if (((timeNow - cursorBlinkTime) > cursorBlinkInterval) || forceRedraw) {
|
if (((timeNow - cursorBlinkTime) > cursorBlinkInterval) || forceRedraw) {
|
||||||
|
@ -1613,51 +1562,35 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
if (rotations[subRotator-1] > -24){
|
if (rotations[subRotator-1] > -24)
|
||||||
clearSubValue();
|
|
||||||
rotations[subRotator-1]--;
|
rotations[subRotator-1]--;
|
||||||
plotRotator(WHITE,rotations[subRotator-1]);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
if (rotations[subRotator-1] < 24)
|
||||||
if (rotations[subRotator-1] < 24){
|
|
||||||
clearSubValue();
|
|
||||||
rotations[subRotator-1]++;
|
rotations[subRotator-1]++;
|
||||||
plotRotator(WHITE,rotations[subRotator-1]);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotRotator(WHITE,rotations[subRotator-1]);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
writeSetting(ROTN1_ADDR+2*(subRotator-1),(rotations[subRotator-1]+24));
|
writeSetting(ROTN1_ADDR+2*(subRotator-1),(rotations[subRotator-1]+24));
|
||||||
subRotator = 0;
|
subRotator = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
clearSubValue();
|
||||||
} else if (subPriority){
|
plotRotator(WHITE,rotations[subRotator-1]);
|
||||||
if ((timeNow - cursorBlinkTime) > cursorBlinkInterval) {
|
cursorNow = BLACK;
|
||||||
if (cursorNow == WHITE) cursorNow = BLACK; else cursorNow = WHITE;
|
|
||||||
plotPriority(cursorNow);
|
|
||||||
redraw = true;
|
redraw = true;
|
||||||
cursorBlinkTime = timeNow;
|
cursorBlinkTime = timeNow;
|
||||||
}
|
}
|
||||||
if (buttonPressedAndNotUsed){
|
} else if (subPriority){
|
||||||
|
updateSubMenuCursor( rotatorMenuPage, timeNow );
|
||||||
|
if (buttonPressedAndNotUsed) {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
// up
|
||||||
clearSubValue();
|
|
||||||
priority = !priority;
|
priority = !priority;
|
||||||
cursorBlinkTime = timeNow;
|
cursorBlinkTime = timeNow;
|
||||||
break;
|
break;
|
||||||
|
@ -1668,9 +1601,7 @@ void menu() {
|
||||||
writeSetting(PRIO_ADDR,priority);
|
writeSetting(PRIO_ADDR,priority);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
plotPriority(WHITE);
|
redrawSubValue = true;
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bool hadButtons = buttonPressedAndNotUsed;
|
bool hadButtons = buttonPressedAndNotUsed;
|
||||||
|
@ -1696,6 +1627,7 @@ void menu() {
|
||||||
drawMenu( breathMenuPage );
|
drawMenu( breathMenuPage );
|
||||||
stateFirstRun = 0;
|
stateFirstRun = 0;
|
||||||
}
|
}
|
||||||
|
currentPage = &breathMenuPage;
|
||||||
if (subBreathCC){
|
if (subBreathCC){
|
||||||
redraw |= updateSubMenuCursor( breathMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( breathMenuPage, timeNow );
|
||||||
if (buttonPressedAndNotUsed){
|
if (buttonPressedAndNotUsed){
|
||||||
|
@ -1707,7 +1639,6 @@ void menu() {
|
||||||
} else {
|
} else {
|
||||||
breathCC = 10;
|
breathCC = 10;
|
||||||
}
|
}
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
if (breathCC < 10){
|
if (breathCC < 10){
|
||||||
|
@ -1715,7 +1646,6 @@ void menu() {
|
||||||
} else {
|
} else {
|
||||||
breathCC = 0;
|
breathCC = 0;
|
||||||
}
|
}
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
|
@ -1727,10 +1657,7 @@ void menu() {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
clearSubValue();
|
redrawSubValue = true;
|
||||||
plotBreathCC(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
}
|
}
|
||||||
} else if (subBreathAT) {
|
} else if (subBreathAT) {
|
||||||
redraw |= updateSubMenuCursor( breathMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( breathMenuPage, timeNow );
|
||||||
|
@ -1738,15 +1665,11 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
clearSubValue();
|
breathAT = !breathAT;
|
||||||
breathAT=!breathAT;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
// up
|
||||||
clearSubValue();
|
breathAT = !breathAT;
|
||||||
breathAT=!breathAT;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
|
@ -1758,9 +1681,7 @@ void menu() {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
plotBreathAT(WHITE);
|
redrawSubValue = true;
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
}
|
}
|
||||||
} else if (subVelocity) {
|
} else if (subVelocity) {
|
||||||
redraw |= updateSubMenuCursor( breathMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( breathMenuPage, timeNow );
|
||||||
|
@ -1768,18 +1689,14 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
clearSubValue();
|
|
||||||
if (velocity > 0){
|
if (velocity > 0){
|
||||||
velocity--;
|
velocity--;
|
||||||
} else velocity = 127;
|
} else velocity = 127;
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
clearSubValue();
|
|
||||||
if (velocity < 127){
|
if (velocity < 127){
|
||||||
velocity++;
|
velocity++;
|
||||||
} else velocity = 0;
|
} else velocity = 0;
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
|
@ -1787,9 +1704,7 @@ void menu() {
|
||||||
writeSetting(VELOCITY_ADDR,velocity);
|
writeSetting(VELOCITY_ADDR,velocity);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
plotVelocity(WHITE);
|
redrawSubValue = true;
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (subCurve) {
|
} else if (subCurve) {
|
||||||
|
@ -1798,32 +1713,24 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
clearSubValue();
|
|
||||||
if (curve > 0){
|
if (curve > 0){
|
||||||
curve--;
|
curve--;
|
||||||
} else curve = 12;
|
} else curve = 12;
|
||||||
plotCurve(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
// up
|
||||||
clearSubValue();
|
|
||||||
if (curve < 12){
|
if (curve < 12){
|
||||||
curve++;
|
curve++;
|
||||||
} else curve = 0;
|
} else curve = 0;
|
||||||
plotCurve(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
// menu
|
||||||
plotCurve(WHITE);
|
|
||||||
subCurve = 0;
|
subCurve = 0;
|
||||||
writeSetting(BREATHCURVE_ADDR,curve);
|
writeSetting(BREATHCURVE_ADDR,curve);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cursorNow = BLACK;
|
redrawSubValue = true;
|
||||||
redraw = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (subVelSmpDl) {
|
} else if (subVelSmpDl) {
|
||||||
|
@ -1832,69 +1739,56 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
clearSubValue();
|
|
||||||
if (velSmpDl > 0){
|
if (velSmpDl > 0){
|
||||||
velSmpDl-=1;
|
velSmpDl-=1;
|
||||||
} else velSmpDl = 30;
|
} else velSmpDl = 30;
|
||||||
plotVelSmpDl(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
|
||||||
clearSubValue();
|
|
||||||
if (velSmpDl < 30){
|
if (velSmpDl < 30){
|
||||||
velSmpDl+=1;
|
velSmpDl+=1;
|
||||||
} else velSmpDl = 0;
|
} else velSmpDl = 0;
|
||||||
plotVelSmpDl(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotVelSmpDl(WHITE);
|
|
||||||
subVelSmpDl = 0;
|
subVelSmpDl = 0;
|
||||||
writeSetting(VEL_SMP_DL_ADDR,velSmpDl);
|
writeSetting(VEL_SMP_DL_ADDR,velSmpDl);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cursorNow = BLACK;
|
redrawSubValue = true;
|
||||||
redraw = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (subVelBias) {
|
} else if (subVelBias) {
|
||||||
redraw |= updateSubMenuCursor( breathMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( breathMenuPage, timeNow );
|
||||||
if (buttonPressedAndNotUsed){
|
if (buttonPressedAndNotUsed){
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState) {
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
clearSubValue();
|
|
||||||
if (velBias > 0){
|
if (velBias > 0){
|
||||||
velBias--;
|
velBias--;
|
||||||
} else velBias = 9;
|
} else velBias = 9;
|
||||||
plotVelBias(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER:
|
case BTN_ENTER:
|
||||||
// enter
|
|
||||||
plotVelBias(WHITE);
|
|
||||||
subVelBias = 0;
|
subVelBias = 0;
|
||||||
writeSetting(VEL_BIAS_ADDR,velBias);
|
writeSetting(VEL_BIAS_ADDR,velBias);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
|
||||||
clearSubValue();
|
|
||||||
if (velBias < 9){
|
if (velBias < 9){
|
||||||
velBias++;
|
velBias++;
|
||||||
} else velBias = 0;
|
} else velBias = 0;
|
||||||
plotVelBias(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotVelBias(WHITE);
|
|
||||||
subVelBias = 0;
|
subVelBias = 0;
|
||||||
writeSetting(VEL_BIAS_ADDR,velBias);
|
writeSetting(VEL_BIAS_ADDR,velBias);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
clearSubValue();
|
||||||
|
plotVelBias(WHITE);
|
||||||
|
cursorBlinkTime = timeNow;
|
||||||
cursorNow = BLACK;
|
cursorNow = BLACK;
|
||||||
redraw = true;
|
redraw = true;
|
||||||
}
|
}
|
||||||
|
@ -1909,40 +1803,31 @@ void menu() {
|
||||||
drawMenu( controlMenuPage );
|
drawMenu( controlMenuPage );
|
||||||
stateFirstRun = 0;
|
stateFirstRun = 0;
|
||||||
}
|
}
|
||||||
|
currentPage = &controlMenuPage;
|
||||||
if (subPort){
|
if (subPort){
|
||||||
|
|
||||||
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
||||||
|
|
||||||
if (buttonPressedAndNotUsed){
|
if (buttonPressedAndNotUsed){
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
clearSubValue();
|
|
||||||
if (portamento > 0){
|
if (portamento > 0){
|
||||||
portamento--;
|
portamento--;
|
||||||
} else portamento = 2;
|
} else portamento = 2;
|
||||||
plotPort(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
|
||||||
clearSubValue();
|
|
||||||
if (portamento < 2){
|
if (portamento < 2){
|
||||||
portamento++;
|
portamento++;
|
||||||
} else portamento = 0;
|
} else portamento = 0;
|
||||||
plotPort(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotPort(WHITE);
|
|
||||||
subPort = 0;
|
subPort = 0;
|
||||||
writeSetting(PORTAM_ADDR,portamento);
|
writeSetting(PORTAM_ADDR,portamento);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cursorNow = BLACK;
|
redrawSubValue = true;
|
||||||
redraw = true;
|
|
||||||
}
|
}
|
||||||
} else if (subPB) {
|
} else if (subPB) {
|
||||||
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
||||||
|
@ -1950,36 +1835,22 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
if (PBdepth > 0){
|
if (PBdepth > 0)
|
||||||
clearSubValue();
|
|
||||||
PBdepth--;
|
PBdepth--;
|
||||||
plotPB(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
if (PBdepth < 12)
|
||||||
if (PBdepth < 12){
|
|
||||||
clearSubValue();
|
|
||||||
PBdepth++;
|
PBdepth++;
|
||||||
plotPB(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotPB(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
subPB = 0;
|
subPB = 0;
|
||||||
writeSetting(PB_ADDR,PBdepth);
|
writeSetting(PB_ADDR,PBdepth);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
redrawSubValue = true;
|
||||||
}
|
}
|
||||||
} else if (subExtra) {
|
} else if (subExtra) {
|
||||||
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
||||||
|
@ -1987,36 +1858,24 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
clearSubValue();
|
|
||||||
if (extraCT > 0){
|
if (extraCT > 0){
|
||||||
extraCT--;
|
extraCT--;
|
||||||
} else extraCT = 4;
|
} else extraCT = 4;
|
||||||
plotExtra(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
|
||||||
clearSubValue();
|
|
||||||
if (extraCT < 4){
|
if (extraCT < 4){
|
||||||
extraCT++;
|
extraCT++;
|
||||||
} else extraCT = 0;
|
} else extraCT = 0;
|
||||||
plotExtra(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotExtra(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
subExtra = 0;
|
subExtra = 0;
|
||||||
writeSetting(EXTRA_ADDR,extraCT);
|
writeSetting(EXTRA_ADDR,extraCT);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
redrawSubValue = true;
|
||||||
}
|
}
|
||||||
} else if (subDeglitch) {
|
} else if (subDeglitch) {
|
||||||
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
||||||
|
@ -2024,36 +1883,23 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
if (deglitch > 0){
|
if (deglitch > 0)
|
||||||
clearSubValue();
|
|
||||||
deglitch-=1;
|
deglitch-=1;
|
||||||
plotDeglitch(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
|
||||||
if (deglitch < 70){
|
if (deglitch < 70){
|
||||||
clearSubValue();
|
|
||||||
deglitch+=1;
|
deglitch+=1;
|
||||||
plotDeglitch(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotDeglitch(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
subDeglitch = 0;
|
subDeglitch = 0;
|
||||||
writeSetting(DEGLITCH_ADDR,deglitch);
|
writeSetting(DEGLITCH_ADDR,deglitch);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
redrawSubValue = true;
|
||||||
}
|
}
|
||||||
} else if (subPinky) {
|
} else if (subPinky) {
|
||||||
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( controlMenuPage, timeNow );
|
||||||
|
@ -2061,36 +1907,22 @@ void menu() {
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
case BTN_DOWN:
|
||||||
if (pinkySetting > 0){
|
if (pinkySetting > 0)
|
||||||
clearSubValue();
|
|
||||||
pinkySetting-=1;
|
pinkySetting-=1;
|
||||||
plotPinkyKey(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
if (pinkySetting < 24)
|
||||||
if (pinkySetting < 24){
|
pinkySetting += 1;
|
||||||
clearSubValue();
|
|
||||||
pinkySetting+=1;
|
|
||||||
plotPinkyKey(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotPinkyKey(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
subPinky = 0;
|
subPinky = 0;
|
||||||
writeSetting(PINKY_KEY_ADDR,pinkySetting);
|
writeSetting(PINKY_KEY_ADDR,pinkySetting);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
redrawSubValue = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
redraw |= updateMenuPage( controlMenuPage, timeNow );
|
redraw |= updateMenuPage( controlMenuPage, timeNow );
|
||||||
|
@ -2101,11 +1933,9 @@ void menu() {
|
||||||
drawMenu(vibratoMenuPage);
|
drawMenu(vibratoMenuPage);
|
||||||
stateFirstRun = 0;
|
stateFirstRun = 0;
|
||||||
}
|
}
|
||||||
|
currentPage = &vibratoMenuPage;
|
||||||
if (subVibrato) {
|
if (subVibrato) {
|
||||||
|
|
||||||
redraw |= updateSubMenuCursor( vibratoMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( vibratoMenuPage, timeNow );
|
||||||
|
|
||||||
if (buttonPressedAndNotUsed){
|
if (buttonPressedAndNotUsed){
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
|
@ -2125,11 +1955,7 @@ void menu() {
|
||||||
writeSetting(VIBRATO_ADDR,vibrato);
|
writeSetting(VIBRATO_ADDR,vibrato);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
clearSubValue();
|
redrawSubValue = true;
|
||||||
plotVibrato(WHITE);
|
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
}
|
}
|
||||||
} else if (subVibSens) {
|
} else if (subVibSens) {
|
||||||
|
|
||||||
|
@ -2161,9 +1987,7 @@ void menu() {
|
||||||
cursorBlinkTime = timeNow;
|
cursorBlinkTime = timeNow;
|
||||||
}
|
}
|
||||||
} else if (subVibRetn) {
|
} else if (subVibRetn) {
|
||||||
|
|
||||||
redraw |= updateSubMenuCursor( vibratoMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( vibratoMenuPage, timeNow );
|
||||||
|
|
||||||
if (buttonPressedAndNotUsed){
|
if (buttonPressedAndNotUsed){
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
|
@ -2171,28 +1995,22 @@ void menu() {
|
||||||
if (vibRetn > 0)
|
if (vibRetn > 0)
|
||||||
vibRetn--;
|
vibRetn--;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
|
||||||
if (vibRetn < 4)
|
if (vibRetn < 4)
|
||||||
vibRetn++;
|
vibRetn++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
subVibRetn = 0;
|
subVibRetn = 0;
|
||||||
writeSetting(VIB_RETN_ADDR,vibRetn);
|
writeSetting(VIB_RETN_ADDR,vibRetn);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cursorBlinkTime = timeNow;
|
redrawSubValue = true;
|
||||||
cursorNow = BLACK;
|
|
||||||
redraw = true;
|
|
||||||
clearSubValue();
|
|
||||||
plotVibRetn(WHITE);
|
|
||||||
}
|
}
|
||||||
} else if (subVibSquelch) {
|
} else if (subVibSquelch) {
|
||||||
|
|
||||||
redraw |= updateSubMenuCursor( vibratoMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( vibratoMenuPage, timeNow );
|
||||||
|
|
||||||
if (buttonPressedAndNotUsed){
|
if (buttonPressedAndNotUsed){
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
|
@ -2212,48 +2030,43 @@ void menu() {
|
||||||
writeSetting(VIB_SQUELCH_ADDR,vibSquelch);
|
writeSetting(VIB_SQUELCH_ADDR,vibSquelch);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
clearSubValue();
|
||||||
|
plotVibSquelch(WHITE);
|
||||||
cursorBlinkTime = timeNow;
|
cursorBlinkTime = timeNow;
|
||||||
cursorNow = BLACK;
|
cursorNow = BLACK;
|
||||||
redraw = true;
|
redraw = true;
|
||||||
clearSubValue();
|
|
||||||
plotVibSquelch(WHITE);
|
|
||||||
}
|
}
|
||||||
} else if (subVibDirection) {
|
} else if (subVibDirection) {
|
||||||
|
|
||||||
redraw |= updateSubMenuCursor( vibratoMenuPage, timeNow );
|
redraw |= updateSubMenuCursor( vibratoMenuPage, timeNow );
|
||||||
|
|
||||||
if (buttonPressedAndNotUsed){
|
if (buttonPressedAndNotUsed){
|
||||||
buttonPressedAndNotUsed = 0;
|
buttonPressedAndNotUsed = 0;
|
||||||
switch (deumButtonState){
|
switch (deumButtonState){
|
||||||
case BTN_DOWN:
|
|
||||||
clearSubValue();
|
case BTN_DOWN: // fallthrough
|
||||||
vibDirection = !vibDirection;
|
|
||||||
plotVibDirection(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
|
||||||
case BTN_UP:
|
case BTN_UP:
|
||||||
// up
|
|
||||||
clearSubValue();
|
|
||||||
vibDirection = !vibDirection;
|
vibDirection = !vibDirection;
|
||||||
plotVibDirection(WHITE);
|
|
||||||
cursorBlinkTime = timeNow;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BTN_ENTER: // fallthrough
|
case BTN_ENTER: // fallthrough
|
||||||
case BTN_MENU:
|
case BTN_MENU:
|
||||||
// menu
|
|
||||||
plotVibDirection(WHITE);
|
|
||||||
subVibDirection = 0;
|
subVibDirection = 0;
|
||||||
writeSetting(VIB_DIRECTION_ADDR,vibDirection);
|
writeSetting(VIB_DIRECTION_ADDR,vibDirection);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cursorNow = BLACK;
|
redrawSubValue = true;
|
||||||
redraw = true;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
redraw |= updateMenuPage( vibratoMenuPage, timeNow );
|
redraw |= updateMenuPage( vibratoMenuPage, timeNow );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(redrawSubValue && currentPage) {
|
||||||
|
clearSubValue();
|
||||||
|
redraw |= drawSubMenu(*currentPage, WHITE);
|
||||||
|
cursorNow = BLACK;
|
||||||
|
cursorBlinkTime = timeNow;
|
||||||
|
}
|
||||||
|
|
||||||
if(redraw) {
|
if(redraw) {
|
||||||
display.display();
|
display.display();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue