Changes up to 1.6.0
This commit is contained in:
parent
c8bd07799a
commit
1a543a6734
11 changed files with 507 additions and 196 deletions
339
NuEVI/menu.cpp
339
NuEVI/menu.cpp
|
@ -19,6 +19,9 @@ enum CursorIdx {
|
|||
ERotator,
|
||||
EVibrato,
|
||||
EExtras,
|
||||
ERotSubA,
|
||||
ERotSubB,
|
||||
ERotSubC,
|
||||
// NEVER ADD ANYTHING AFTER THIS, ONLY ABOVE
|
||||
NUM_CURSORS
|
||||
};
|
||||
|
@ -59,69 +62,69 @@ byte subVibSquelch = 0; //extern
|
|||
#define LOGO16_GLCD_HEIGHT 64
|
||||
#if defined(NURAD)
|
||||
static const unsigned char PROGMEM nurad_logo_bmp[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x00, 0x00, 0x03, 0xf9, 0xff, 0xff, 0xfc, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xf9, 0xff, 0xff, 0xfe, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x01, 0xc0, 0x00, 0x0e, 0x19, 0x80, 0x00, 0x07, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xfc, 0xc0, 0x00, 0x1d, 0xd9, 0xbf, 0xff, 0xf3, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xfe, 0xc0, 0x00, 0x3b, 0xd9, 0xbf, 0xff, 0xfb, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x06, 0xc0, 0x00, 0x77, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x06, 0xc0, 0x00, 0xee, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x06, 0xc0, 0x01, 0xdc, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x08, 0x00, 0x00, 0x6c, 0x00, 0x06, 0xc0, 0x03, 0xb8, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x18, 0x00, 0x00, 0x6f, 0xff, 0xfe, 0xc0, 0x07, 0x7f, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x18, 0x00, 0x00, 0x6f, 0xff, 0xfc, 0xc0, 0x0e, 0xff, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0xc0, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0xc0, 0x1c, 0x00, 0x19, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0xc0, 0x38, 0x00, 0x00, 0x6f, 0xfb, 0xff, 0x80, 0x3b, 0xff, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0xc0, 0x30, 0x00, 0x00, 0x6f, 0xfd, 0xff, 0x00, 0x77, 0xff, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0xe0, 0x30, 0x00, 0x00, 0x6c, 0x0e, 0xe0, 0x00, 0xee, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0xe0, 0x30, 0x00, 0x00, 0x6c, 0x07, 0x70, 0x01, 0xdc, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0xb0, 0x30, 0x00, 0x00, 0x6c, 0x03, 0xb8, 0x03, 0xb8, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0xb0, 0x30, 0x00, 0x00, 0x6c, 0x01, 0xdc, 0x07, 0x70, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0x98, 0x20, 0xc0, 0x40, 0x6c, 0x00, 0xee, 0x0e, 0xe0, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x03, 0x0c, 0x20, 0xc0, 0xc0, 0x6c, 0x00, 0x77, 0x1d, 0xc0, 0x00, 0xd9, 0xbf, 0xff, 0xfb, 0x00,
|
||||
0x03, 0x0c, 0x20, 0xc0, 0xc0, 0x6c, 0x00, 0x3b, 0xbb, 0x80, 0x00, 0xd9, 0xbf, 0xff, 0xf3, 0x00,
|
||||
0x03, 0x06, 0x20, 0xc1, 0xc0, 0x6c, 0x00, 0x1d, 0xf7, 0x00, 0x00, 0xd9, 0x80, 0x00, 0x07, 0x00,
|
||||
0x03, 0x03, 0x20, 0x83, 0x80, 0x6c, 0x00, 0x0e, 0xee, 0x00, 0x00, 0xd9, 0xff, 0xff, 0xfe, 0x00,
|
||||
0x03, 0x03, 0xb1, 0x83, 0x80, 0x6c, 0x00, 0x07, 0x5c, 0x00, 0x00, 0xd9, 0xff, 0xff, 0xfc, 0x00,
|
||||
0x03, 0x01, 0xf1, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0xf1, 0x8d, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x71, 0xb9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x31, 0xf1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x00, 0x00, 0x03, 0xf9, 0xff, 0xff, 0xfc, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x80, 0x00, 0x07, 0xf9, 0xff, 0xff, 0xfe, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x01, 0xc0, 0x00, 0x0e, 0x19, 0x80, 0x00, 0x07, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xfc, 0xc0, 0x00, 0x1d, 0xd9, 0xbf, 0xff, 0xf3, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xfe, 0xc0, 0x00, 0x3b, 0xd9, 0xbf, 0xff, 0xfb, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x06, 0xc0, 0x00, 0x77, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x06, 0xc0, 0x00, 0xee, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x06, 0xc0, 0x01, 0xdc, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x08, 0x00, 0x00, 0x6c, 0x00, 0x06, 0xc0, 0x03, 0xb8, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x18, 0x00, 0x00, 0x6f, 0xff, 0xfe, 0xc0, 0x07, 0x7f, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0x00, 0x18, 0x00, 0x00, 0x6f, 0xff, 0xfc, 0xc0, 0x0e, 0xff, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0xc0, 0x18, 0x00, 0x00, 0x60, 0x00, 0x01, 0xc0, 0x1c, 0x00, 0x19, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0xc0, 0x38, 0x00, 0x00, 0x6f, 0xfb, 0xff, 0x80, 0x3b, 0xff, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x00, 0xc0, 0x30, 0x00, 0x00, 0x6f, 0xfd, 0xff, 0x00, 0x77, 0xff, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0xe0, 0x30, 0x00, 0x00, 0x6c, 0x0e, 0xe0, 0x00, 0xee, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0xe0, 0x30, 0x00, 0x00, 0x6c, 0x07, 0x70, 0x01, 0xdc, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0xb0, 0x30, 0x00, 0x00, 0x6c, 0x03, 0xb8, 0x03, 0xb8, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0xb0, 0x30, 0x00, 0x00, 0x6c, 0x01, 0xdc, 0x07, 0x70, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x01, 0x98, 0x20, 0xc0, 0x40, 0x6c, 0x00, 0xee, 0x0e, 0xe0, 0x00, 0xd9, 0xb0, 0x00, 0x1b, 0x00,
|
||||
0x03, 0x0c, 0x20, 0xc0, 0xc0, 0x6c, 0x00, 0x77, 0x1d, 0xc0, 0x00, 0xd9, 0xbf, 0xff, 0xfb, 0x00,
|
||||
0x03, 0x0c, 0x20, 0xc0, 0xc0, 0x6c, 0x00, 0x3b, 0xbb, 0x80, 0x00, 0xd9, 0xbf, 0xff, 0xf3, 0x00,
|
||||
0x03, 0x06, 0x20, 0xc1, 0xc0, 0x6c, 0x00, 0x1d, 0xf7, 0x00, 0x00, 0xd9, 0x80, 0x00, 0x07, 0x00,
|
||||
0x03, 0x03, 0x20, 0x83, 0x80, 0x6c, 0x00, 0x0e, 0xee, 0x00, 0x00, 0xd9, 0xff, 0xff, 0xfe, 0x00,
|
||||
0x03, 0x03, 0xb1, 0x83, 0x80, 0x6c, 0x00, 0x07, 0x5c, 0x00, 0x00, 0xd9, 0xff, 0xff, 0xfc, 0x00,
|
||||
0x03, 0x01, 0xf1, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0xf1, 0x8d, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x71, 0xb9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x31, 0xf1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0xc1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
#else
|
||||
|
@ -272,7 +275,7 @@ void i2cScanDisplay(){
|
|||
{
|
||||
Wire.beginTransmission(target); // slave addr
|
||||
error = Wire.endTransmission();
|
||||
delay(500);
|
||||
delay(500);
|
||||
display.print("Addr 0x");
|
||||
display.print(target,HEX);
|
||||
if (error)
|
||||
|
@ -347,7 +350,7 @@ static bool drawSubMenu(const MenuPage *page) {
|
|||
const MenuEntrySub* sub = (const MenuEntrySub*)subEntry;
|
||||
sub->getSubTextFunc(*sub, buffer, &labelPtr);
|
||||
|
||||
// If EMenuEntryCustom flag is set, we assume that the getSubTextFunc
|
||||
// If EMenuEntryCustom flag is set, we assume that the getSubTextFunc
|
||||
// rendered by it self.
|
||||
if( !(sub->flags & EMenuEntryCustom)) {
|
||||
plotSubOption(buffer, labelPtr);
|
||||
|
@ -398,7 +401,7 @@ static void plotMenuEntries(const MenuPage *page, bool clear = false) {
|
|||
display.setCursor(0,rowPixel);
|
||||
display.println(lineText);
|
||||
}
|
||||
|
||||
|
||||
if(offset)
|
||||
display.drawTriangle(58, MENU_HEADER_OFFSET, 57, MENU_HEADER_OFFSET+3, 59, MENU_HEADER_OFFSET+3, WHITE);
|
||||
|
||||
|
@ -447,7 +450,7 @@ static void mainTitleGetStr(char* out) {
|
|||
case 2:
|
||||
vLowLimit = LIP_BAT_LOW;
|
||||
}
|
||||
if (vMeterReading <= vLowLimit) { //2300 alkaline, 2250 lipo, 2200 nimh
|
||||
if (vMeterReading <= vLowLimit) { //2300 alkaline, 2250 lipo, 2200 nimh
|
||||
memcpy(splice2, "LOW ", 4);
|
||||
} else {
|
||||
int voltage = map(vMeterReading,2200,3060,36,50);
|
||||
|
@ -546,6 +549,10 @@ static void clearFPS(int trills) {
|
|||
//***********************************************************
|
||||
// Poly Play menu
|
||||
|
||||
const MenuEntryStateCh rotSubAMenu = { MenuType::EStateChange, "ROTATOR A", ROTA_MENU };
|
||||
const MenuEntryStateCh rotSubBMenu = { MenuType::EStateChange, "ROTATOR B", ROTB_MENU };
|
||||
const MenuEntryStateCh rotSubCMenu = { MenuType::EStateChange, "ROTATOR C", ROTC_MENU };
|
||||
|
||||
static void rotatorSave(const MenuEntrySub& __unused sub) {
|
||||
int16_t stored;
|
||||
for(int i = 0; i < 4; ++i) {
|
||||
|
@ -687,7 +694,7 @@ static void rotatorPrioSave(SubMenuRef __unused) {
|
|||
}
|
||||
|
||||
const MenuEntrySub rotatorPrioMenu = {
|
||||
MenuType::ESub, "PRIORITY", "MONO PRIO", &priority, 0,1, MenuEntryFlags::EMenuEntryWrap,
|
||||
MenuType::ESub, "PRIORITY", "MONO PRIO", &priority, 0,1, MenuEntryFlags::EMenuEntryWrap,
|
||||
rotatorPrioOptionGet, rotatorPrioSave, nullptr,
|
||||
};
|
||||
|
||||
|
@ -713,7 +720,7 @@ static void fwcTypeSave(SubMenuRef __unused) {
|
|||
}
|
||||
|
||||
const MenuEntrySub fwcTypeMenu = {
|
||||
MenuType::ESub, "FWC TYPE", "CHORD", &fwcType, 0,3, MenuEntryFlags::EMenuEntryWrap,
|
||||
MenuType::ESub, "FWC TYPE", "CHORD", &fwcType, 0,3, MenuEntryFlags::EMenuEntryWrap,
|
||||
fwcTypeOptionGet, fwcTypeSave, nullptr,
|
||||
};
|
||||
|
||||
|
@ -727,7 +734,7 @@ static void fwcLockHSave(SubMenuRef __unused) {
|
|||
}
|
||||
|
||||
const MenuEntrySub fwcLockHMenu = {
|
||||
MenuType::ESub, "FWC LOCKH", "LH MELODY", &fwcLockH, 0,1, MenuEntryFlags::EMenuEntryWrap,
|
||||
MenuType::ESub, "FWC LOCKH", "LH MELODY", &fwcLockH, 0,1, MenuEntryFlags::EMenuEntryWrap,
|
||||
fwcLockHOptionGet, fwcLockHSave, nullptr,
|
||||
};
|
||||
|
||||
|
@ -741,7 +748,7 @@ static void fwcDrop2Save(SubMenuRef __unused) {
|
|||
}
|
||||
|
||||
const MenuEntrySub fwcDrop2Menu = {
|
||||
MenuType::ESub, "FWC DROP2", "DROP 2", &fwcDrop2, 0,1, MenuEntryFlags::EMenuEntryWrap,
|
||||
MenuType::ESub, "FWC DROP2", "DROP 2", &fwcDrop2, 0,1, MenuEntryFlags::EMenuEntryWrap,
|
||||
fwcDrop2OptionGet, fwcDrop2Save, nullptr,
|
||||
};
|
||||
|
||||
|
@ -791,7 +798,7 @@ static void hmzKeySave(SubMenuRef __unused) {
|
|||
}
|
||||
|
||||
const MenuEntrySub hmzKeyMenu = {
|
||||
MenuType::ESub, "HMZ KEY", "KEY PLAYED", &hmzKey, 0,11, MenuEntryFlags::EMenuEntryWrap,
|
||||
MenuType::ESub, "HMZ KEY", "KEY PLAYED", &hmzKey, 0,11, MenuEntryFlags::EMenuEntryWrap,
|
||||
hmzKeyOptionGet, hmzKeySave, nullptr,
|
||||
};
|
||||
|
||||
|
@ -839,7 +846,7 @@ static void polySelectSave(SubMenuRef __unused) {
|
|||
}
|
||||
|
||||
const MenuEntrySub polySelectMenu = {
|
||||
MenuType::ESub, "POLY MODE", "SELECT", &polySelect, 0,10, MenuEntryFlags::EMenuEntryWrap,
|
||||
MenuType::ESub, "POLY MODE", "SELECT", &polySelect, 0,10, MenuEntryFlags::EMenuEntryWrap,
|
||||
polySelectOptionGet, polySelectSave, nullptr,
|
||||
};
|
||||
|
||||
|
@ -852,7 +859,7 @@ static void hmzLimitSave(SubMenuRef __unused) {
|
|||
}
|
||||
|
||||
const MenuEntrySub hmzLimitMenu = {
|
||||
MenuType::ESub, "HMZ LIMIT", "VOICES", &hmzLimit, 2,5, MenuEntryFlags::EMenuEntryWrap,
|
||||
MenuType::ESub, "HMZ LIMIT", "VOICES", &hmzLimit, 2,5, MenuEntryFlags::EMenuEntryWrap,
|
||||
hmzLimitOptionGet, hmzLimitSave, nullptr,
|
||||
};
|
||||
|
||||
|
@ -866,11 +873,48 @@ static void otfKeySave(SubMenuRef __unused) {
|
|||
}
|
||||
|
||||
const MenuEntrySub otfKeyMenu = {
|
||||
MenuType::ESub, "OTF KEY", "OTF KEYSW", &otfKey, 0,1, MenuEntryFlags::EMenuEntryWrap,
|
||||
MenuType::ESub, "OTF KEY", "OTF KEYSW", &otfKey, 0,1, MenuEntryFlags::EMenuEntryWrap,
|
||||
otfKeyOptionGet, otfKeySave, nullptr,
|
||||
};
|
||||
|
||||
|
||||
const MenuEntry* rotSubAMenuEntries[] = {
|
||||
(MenuEntry*)&rotatorParaMenu,
|
||||
(MenuEntry*)&rotator1Menu,
|
||||
(MenuEntry*)&rotator2Menu,
|
||||
(MenuEntry*)&rotator3Menu,
|
||||
(MenuEntry*)&rotator4Menu
|
||||
};
|
||||
|
||||
const MenuPage rotSubAMenuPage = {
|
||||
"ROTATOR A", 0, CursorIdx::ERotSubA, ROTATOR_MENU, ARR_LEN(rotSubAMenuEntries), rotSubAMenuEntries
|
||||
};
|
||||
|
||||
const MenuEntry* rotSubBMenuEntries[] = {
|
||||
(MenuEntry*)&rotatorParaBMenu,
|
||||
(MenuEntry*)&rotatorB1Menu,
|
||||
(MenuEntry*)&rotatorB2Menu,
|
||||
(MenuEntry*)&rotatorB3Menu,
|
||||
(MenuEntry*)&rotatorB4Menu
|
||||
};
|
||||
|
||||
const MenuPage rotSubBMenuPage = {
|
||||
"ROTATOR B", 0, CursorIdx::ERotSubB, ROTATOR_MENU, ARR_LEN(rotSubBMenuEntries), rotSubBMenuEntries
|
||||
};
|
||||
|
||||
const MenuEntry* rotSubCMenuEntries[] = {
|
||||
(MenuEntry*)&rotatorParaCMenu,
|
||||
(MenuEntry*)&rotatorC1Menu,
|
||||
(MenuEntry*)&rotatorC2Menu,
|
||||
(MenuEntry*)&rotatorC3Menu,
|
||||
(MenuEntry*)&rotatorC4Menu
|
||||
};
|
||||
|
||||
const MenuPage rotSubCMenuPage = {
|
||||
"ROTATOR C", 0, CursorIdx::ERotSubC, ROTATOR_MENU, ARR_LEN(rotSubCMenuEntries), rotSubCMenuEntries
|
||||
};
|
||||
|
||||
|
||||
|
||||
const MenuEntry* rotatorMenuEntries[] = {
|
||||
(MenuEntry*)&polySelectMenu,
|
||||
|
@ -881,7 +925,7 @@ const MenuEntry* rotatorMenuEntries[] = {
|
|||
(MenuEntry*)&fwcLockHMenu,
|
||||
(MenuEntry*)&fwcDrop2Menu,
|
||||
(MenuEntry*)&rotatorPrioMenu,
|
||||
(MenuEntry*)&rotatorParaMenu,
|
||||
/*(MenuEntry*)&rotatorParaMenu,
|
||||
(MenuEntry*)&rotator1Menu,
|
||||
(MenuEntry*)&rotator2Menu,
|
||||
(MenuEntry*)&rotator3Menu,
|
||||
|
@ -895,7 +939,10 @@ const MenuEntry* rotatorMenuEntries[] = {
|
|||
(MenuEntry*)&rotatorC1Menu,
|
||||
(MenuEntry*)&rotatorC2Menu,
|
||||
(MenuEntry*)&rotatorC3Menu,
|
||||
(MenuEntry*)&rotatorC4Menu
|
||||
(MenuEntry*)&rotatorC4Menu */
|
||||
(MenuEntry*)&rotSubAMenu,
|
||||
(MenuEntry*)&rotSubBMenu,
|
||||
(MenuEntry*)&rotSubCMenu
|
||||
};
|
||||
/*
|
||||
const MenuPage rotatorMenuPage = {
|
||||
|
@ -912,22 +959,116 @@ const MenuPage rotatorMenuPage = {
|
|||
CursorIdx::ERotator,
|
||||
MAIN_MENU,
|
||||
ARR_LEN(rotatorMenuEntries), rotatorMenuEntries
|
||||
};
|
||||
};
|
||||
|
||||
//***********************************************************
|
||||
|
||||
// Main menu
|
||||
/*
|
||||
const MenuEntrySub transposeMenu = {
|
||||
MenuType::ESub, "TRANSPOSE", "TRANSPOSE", &transpose, 0, 24, MenuEntryFlags::ENone,
|
||||
MenuType::ESub, "TRANSPOSE", "TRANSPOSE", &transpose, 0, 24, MenuEntryFlags::ENone,
|
||||
[](SubMenuRef __unused, char* out, const char** __unused unit) {
|
||||
numToString(transpose - 12, out, true);
|
||||
},
|
||||
[](const MenuEntrySub &sub) { writeSetting(TRANSP_ADDR,*sub.valuePtr); }
|
||||
, nullptr
|
||||
};
|
||||
*/
|
||||
static void transposeOptionGet(SubMenuRef __unused, char* out, const char** __unused) {
|
||||
switch (transpose){
|
||||
case 0:
|
||||
strncpy(out, "C>", 4);
|
||||
break;
|
||||
case 1:
|
||||
strncpy(out, "C#>", 4);
|
||||
break;
|
||||
case 2:
|
||||
strncpy(out, "D>", 4);
|
||||
break;
|
||||
case 3:
|
||||
strncpy(out, "D#>", 4);
|
||||
break;
|
||||
case 4:
|
||||
strncpy(out, "E>", 4);
|
||||
break;
|
||||
case 5:
|
||||
strncpy(out, "F>", 4);
|
||||
break;
|
||||
case 6:
|
||||
strncpy(out, "F#>", 4);
|
||||
break;
|
||||
case 7:
|
||||
strncpy(out, "G>", 4);
|
||||
break;
|
||||
case 8:
|
||||
strncpy(out, "G#>", 4);
|
||||
break;
|
||||
case 9:
|
||||
strncpy(out, "A>", 4);
|
||||
break;
|
||||
case 10:
|
||||
strncpy(out, "Bb>", 4);
|
||||
break;
|
||||
case 11:
|
||||
strncpy(out, "B>", 4);
|
||||
break;
|
||||
case 12:
|
||||
strncpy(out, ">C<", 4);
|
||||
break;
|
||||
case 13:
|
||||
strncpy(out, "<C#", 4);
|
||||
break;
|
||||
case 14:
|
||||
strncpy(out, "<D", 4);
|
||||
break;
|
||||
case 15:
|
||||
strncpy(out, "<D#", 4);
|
||||
break;
|
||||
case 16:
|
||||
strncpy(out, "<E", 4);
|
||||
break;
|
||||
case 17:
|
||||
strncpy(out, "<F", 4);
|
||||
break;
|
||||
case 18:
|
||||
strncpy(out, "<F#", 4);
|
||||
break;
|
||||
case 19:
|
||||
strncpy(out, "<G", 4);
|
||||
break;
|
||||
case 20:
|
||||
strncpy(out, "<G#", 4);
|
||||
break;
|
||||
case 21:
|
||||
strncpy(out, "<A", 4);
|
||||
break;
|
||||
case 22:
|
||||
strncpy(out, "<Bb", 4);
|
||||
break;
|
||||
case 23:
|
||||
strncpy(out, "<B", 4);
|
||||
break;
|
||||
case 24:
|
||||
strncpy(out, "<C", 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void transposeSave(SubMenuRef __unused) {
|
||||
writeSetting(TRANSP_ADDR,transpose);
|
||||
}
|
||||
|
||||
const MenuEntrySub transposeMenu = {
|
||||
MenuType::ESub, "TRANSPOSE", "TRANSPOSE", &transpose, 0,24, MenuEntryFlags::ENone,
|
||||
transposeOptionGet, transposeSave, nullptr,
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const MenuEntrySub octaveMenu = {
|
||||
MenuType::ESub, "OCTAVE", "OCTAVE", &octave, 0, 6, MenuEntryFlags::ENone,
|
||||
MenuType::ESub, "OCTAVE", "OCTAVE", &octave, 0, 6, MenuEntryFlags::ENone,
|
||||
[](SubMenuRef __unused, char* out, const char** __unused unit) {
|
||||
numToString(octave-3, out, true);
|
||||
},
|
||||
|
@ -1039,7 +1180,7 @@ const MenuEntrySub fastBootMenu = {
|
|||
};
|
||||
|
||||
const MenuEntrySub cvTuneMenu = {
|
||||
MenuType::ESub, "CV TUNE", "TUNING", &cvTune, 1, 199, MenuEntryFlags::ENone,
|
||||
MenuType::ESub, "CV TUNE", "TUNING", &cvTune, 1, 199, MenuEntryFlags::ENone,
|
||||
[](SubMenuRef __unused, char* out, const char** __unused unit) {
|
||||
numToString(cvTune-100, out, true);
|
||||
},
|
||||
|
@ -1048,7 +1189,7 @@ const MenuEntrySub cvTuneMenu = {
|
|||
};
|
||||
|
||||
const MenuEntrySub cvScaleMenu = {
|
||||
MenuType::ESub, "CV SCALE", "SCALING", &cvScale, 1, 199, MenuEntryFlags::ENone,
|
||||
MenuType::ESub, "CV SCALE", "SCALING", &cvScale, 1, 199, MenuEntryFlags::ENone,
|
||||
[](SubMenuRef __unused, char* out, const char** __unused unit) {
|
||||
numToString(cvScale-100, out, true);
|
||||
},
|
||||
|
@ -1144,10 +1285,10 @@ const MenuPage extrasMenuPage = {
|
|||
CursorIdx::EExtras,
|
||||
MAIN_MENU,
|
||||
ARR_LEN(extrasMenuEntries), extrasMenuEntries
|
||||
};
|
||||
};
|
||||
|
||||
static bool midiEnterHandlerFunc() {
|
||||
|
||||
|
||||
//this switching is removed due to new breathInterval setting
|
||||
readSwitches();
|
||||
if (pinkyKey && widiJumper){
|
||||
|
@ -1160,13 +1301,13 @@ static bool midiEnterHandlerFunc() {
|
|||
writeSetting(MIDI_ADDR, MIDIchannel);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//writeSetting(MIDI_ADDR, MIDIchannel);
|
||||
//return true;
|
||||
}
|
||||
|
||||
const MenuEntrySub midiMenu = {
|
||||
MenuType::ESub, "MIDI CH", "MIDI CHNL", &MIDIchannel, 1, 16, EMenuEntryCustom | EMenuEntryEnterHandler,
|
||||
MenuType::ESub, "MIDI CH", "MIDI CHNL", &MIDIchannel, 1, 16, EMenuEntryCustom | EMenuEntryEnterHandler,
|
||||
midiCustomDrawFunc, midiSaveFunc, midiEnterHandlerFunc
|
||||
};
|
||||
|
||||
|
@ -1350,7 +1491,7 @@ const MenuEntry* breathMenuEntries[] = {
|
|||
(MenuEntry*)&velocityMenu,
|
||||
(MenuEntry*)&curveMenu,
|
||||
(MenuEntry*)&velSmpDlMenu,
|
||||
(MenuEntry*)&velBiasMenu,
|
||||
(MenuEntry*)&velBiasMenu,
|
||||
//(MenuEntry*)&brHarmonicsMenu,
|
||||
//(MenuEntry*)&brHarmSelectMenu,
|
||||
(MenuEntry*)&breathIntervalMenu
|
||||
|
@ -1561,6 +1702,14 @@ const MenuEntrySub fingeringMenu = {
|
|||
};
|
||||
#endif
|
||||
|
||||
const MenuEntrySub rollerMenu = {
|
||||
MenuType::ESub, "ROLLRMODE", "ROLLRMODE", &rollerMode, 0, 3, MenuEntryFlags::EMenuEntryWrap,
|
||||
[](SubMenuRef __unused, char* out, const char** __unused unit) {
|
||||
numToString(rollerMode+1, out);
|
||||
},
|
||||
[](const MenuEntrySub & __unused sub) { writeSetting(ROLLER_ADDR,rollerMode); }
|
||||
, nullptr
|
||||
};
|
||||
|
||||
|
||||
const MenuEntrySub lpinky3Menu = {
|
||||
|
@ -1595,6 +1744,7 @@ const MenuEntry* controlMenuEntries[] = {
|
|||
(MenuEntry*)&lvlCtrlCCMenu,
|
||||
(MenuEntry*)&lpinky3Menu,
|
||||
(MenuEntry*)&fingeringMenu,
|
||||
(MenuEntry*)&rollerMenu,
|
||||
(MenuEntry*)&pitchBendMenu
|
||||
};
|
||||
#else
|
||||
|
@ -1614,6 +1764,7 @@ const MenuEntry* controlMenuEntries[] = {
|
|||
(MenuEntry*)&pinkyMenu,
|
||||
(MenuEntry*)&lvlCtrlCCMenu,
|
||||
(MenuEntry*)&fingeringMenu,
|
||||
(MenuEntry*)&rollerMenu,
|
||||
(MenuEntry*)&pitchBendMenu
|
||||
};
|
||||
#endif
|
||||
|
@ -1644,7 +1795,7 @@ static void vibStore(const MenuEntrySub & __unused sub) {
|
|||
|
||||
const MenuEntrySub vibDepthMenu = {
|
||||
MenuType::ESub, "DEPTH", "LEVEL", &vibrato, 0, 9, MenuEntryFlags::ENone,
|
||||
vibGetStr,
|
||||
vibGetStr,
|
||||
vibStore,
|
||||
nullptr
|
||||
};
|
||||
|
@ -1805,7 +1956,7 @@ const MenuPageCustom aboutMenuPage = { nullptr, EMenuPageCustom,
|
|||
display.print("v");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
} else {
|
||||
|
@ -2154,7 +2305,7 @@ static bool idlePageUpdate(KeyState& __unused input, uint32_t __unused timeNow)
|
|||
case BTN_DOWN:
|
||||
if (!trills) {
|
||||
patch = (((patch-1u) + ((input.current == BTN_UP)?1u:-1u))&127u) + 1u;
|
||||
}
|
||||
}
|
||||
// fallthrough
|
||||
case BTN_ENTER:
|
||||
if (trills && (fastPatch[trills-1] > 0)){
|
||||
|
@ -2182,7 +2333,7 @@ static bool idlePageUpdate(KeyState& __unused input, uint32_t __unused timeNow)
|
|||
} else if (pinkyKey && !specialKey){ //hold pinky key for rotator menu, and if too high touch sensing blocks regular menu, touching special key helps
|
||||
display.ssd1306_command(SSD1306_DISPLAYON);
|
||||
menuState= ROTATOR_MENU;
|
||||
stateFirstRun = 1;
|
||||
stateFirstRun = 1;
|
||||
} else {
|
||||
display.ssd1306_command(SSD1306_DISPLAYON);
|
||||
menuState = MAIN_MENU;
|
||||
|
@ -2291,6 +2442,12 @@ void menu() {
|
|||
redraw |= updatePage((const MenuPage*)&aboutMenuPage, input, timeNow);
|
||||
} else if (menuState == EXTRAS_MENU) {
|
||||
redraw |= updatePage((const MenuPage*)&extrasMenuPage, input, timeNow);
|
||||
} else if (menuState == ROTA_MENU) {
|
||||
redraw |= updatePage((const MenuPage*)&rotSubAMenuPage, input, timeNow);
|
||||
} else if (menuState == ROTB_MENU) {
|
||||
redraw |= updatePage((const MenuPage*)&rotSubBMenuPage, input, timeNow);
|
||||
} else if (menuState == ROTC_MENU) {
|
||||
redraw |= updatePage((const MenuPage*)&rotSubCMenuPage, input, timeNow);
|
||||
}
|
||||
|
||||
if(redraw) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue