72 lines
1.4 KiB
C++
72 lines
1.4 KiB
C++
#include "input.h"
|
|
#include "buzzer.h"
|
|
#include "screen.h"
|
|
#include "characters.h"
|
|
#include "customize.h"
|
|
|
|
uint8_t menuPos = 0;
|
|
#define MENU_ITEMS 2
|
|
|
|
void menu_setup();
|
|
void menu_update();
|
|
void help();
|
|
|
|
void menu() {
|
|
menu_setup();
|
|
while (true) {
|
|
auto input = handleInput();
|
|
if (input.encoderEvent) {
|
|
tick();
|
|
menuPos = (menuPos + input.encoderEvent) % MENU_ITEMS;
|
|
if (menuPos == 255) {
|
|
menuPos = MENU_ITEMS - 1;
|
|
}
|
|
menu_update();
|
|
} else if (input.switchEvent == SWITCH_RELEASED) {
|
|
switch (menuPos) {
|
|
case 0:
|
|
customize();
|
|
break;
|
|
case 1:
|
|
help();
|
|
break;
|
|
}
|
|
menu_setup();
|
|
} else if (input.hasInput && input.switchEvent != SWITCH_PRESSED) {
|
|
beep();
|
|
}
|
|
}
|
|
}
|
|
|
|
void menu_setup() {
|
|
menuPos = 0;
|
|
lcd.clear();
|
|
lcd.print(" Wind coils");
|
|
lcd.setCursor(0, 1);
|
|
lcd.print(" Help");
|
|
menu_update();
|
|
}
|
|
|
|
void menu_update() {
|
|
lcd.setCursor(0, 0);
|
|
lcd.write(menuPos == 0 ? CHAR_SELECTION : ' ');
|
|
lcd.setCursor(0, 1);
|
|
lcd.write(menuPos == 1 ? CHAR_SELECTION : ' ');
|
|
}
|
|
|
|
void help() {
|
|
lcd.clear();
|
|
lcd.print("Use the source");
|
|
lcd.setCursor(0, 1);
|
|
lcd.print("code, Luke ;^)");
|
|
beep();
|
|
|
|
while (true) {
|
|
auto input = handleInput();
|
|
if (input.hasInput && input.switchEvent != SWITCH_PRESSED) {
|
|
tick();
|
|
break;
|
|
}
|
|
}
|
|
}
|