Moved some of the strings to PROGMEM. added "Done" message when the encoder is reversed
This commit is contained in:
@ -154,7 +154,7 @@ U8G2_SSD1306_128X64_NONAME_2_HW_I2C u8g2(U8G2_R2, SCL, SDA, U8X8_PIN_NONE);
|
||||
RotaryEncoder encoder(ENC_D1_PIN, ENC_D2_PIN, RotaryEncoder::LatchMode::TWO03);
|
||||
|
||||
//Font
|
||||
const uint8_t velvetscreen[437] U8G2_FONT_SECTION("velvetscreen") =
|
||||
const PROGMEM uint8_t velvetscreen[437] U8G2_FONT_SECTION("velvetscreen") =
|
||||
"\64\0\2\2\3\3\2\3\4\5\5\0\0\5\0\5\0\0\221\0\0\1\230 \4\200\134%\11\255tT"
|
||||
"R\271RI(\6\252\334T\31)\7\252\134bJ\12+\7\233\345\322J\0,\5\221T\4-\5\213"
|
||||
"f\6.\5\211T\2/\6\244\354c\33\60\10\254\354T\64\223\2\61\7\353\354\222\254\6\62\11\254l"
|
||||
@ -170,7 +170,7 @@ const uint8_t velvetscreen[437] U8G2_FONT_SECTION("velvetscreen") =
|
||||
"\7p\10\255\364V\266\323\2q\7\255\364\216\257\5r\10\253d\242\32*\2t\6\255t\376#w\11"
|
||||
"\255\364V\245FN\13x\6\233dR\7\0\0\0\4\377\377\0";
|
||||
|
||||
const uint8_t stkL[569] U8G2_FONT_SECTION("stk-l") =
|
||||
const PROGMEM uint8_t stkL[569] U8G2_FONT_SECTION("stk-l") =
|
||||
"\25\0\4\4\4\5\2\1\6\17\27\1\0\27\0\0\0\1\77\0\0\2\34%'\17\37\313\330R#&"
|
||||
"\32!F\14\211I\310\24!\65\204(MF\21)Cd\304\10\62b\14\215\60Vb\334\20\0/\14"
|
||||
"\272\336\336d\244\350\263q\343\0\60\37|\377\12\32\25\17\2\35\263\253ChD\30\21bB\14\242S"
|
||||
@ -649,8 +649,7 @@ void loadState() {
|
||||
addr = addr + sizeof(extClockPPQN);
|
||||
EEPROM.get(addr, reverseEnc);
|
||||
} else {
|
||||
//calibrateCVs();
|
||||
saveState();
|
||||
saveState(); //write default values to EEPROM
|
||||
EEPROM.write(1023, memCode);
|
||||
}
|
||||
}
|
||||
@ -663,6 +662,7 @@ void reboot() {
|
||||
void calibrateCVs() {
|
||||
CV1Calibration = analogRead(ANALOGUE_INPUT_1_PIN);
|
||||
CV2Calibration = analogRead(ANALOGUE_INPUT_2_PIN);
|
||||
//saveState();
|
||||
showDone = true;
|
||||
updateScreen();
|
||||
}
|
||||
|
||||
@ -64,6 +64,8 @@ void checkInputs() {
|
||||
} else if (displayScreen == 2 && menuItem == 2) {
|
||||
reverseEnc = !reverseEnc;
|
||||
saveState();
|
||||
showDone = true;
|
||||
updateScreen();
|
||||
} else if (displayScreen == 2 && menuItem == 3) {
|
||||
EEPROM.put(1023, memCode - 1);
|
||||
reboot();
|
||||
|
||||
@ -6,7 +6,7 @@ void updateScreen() {
|
||||
byte width;
|
||||
//String textToShow;
|
||||
String valueStr;
|
||||
char valueChar[16];
|
||||
//char valueChar[16];
|
||||
u8g2.setDrawColor(1);
|
||||
|
||||
if (displayScreen == 0) {
|
||||
@ -39,11 +39,11 @@ void updateScreen() {
|
||||
} else if (i == 3 && masterClockMode == 0) {
|
||||
valueStr = "RANGE:";
|
||||
}
|
||||
valueStr.toCharArray(valueChar, 16);
|
||||
//valueStr.toCharArray(valueChar, 16);
|
||||
if (menuItem == i && insideTab) {
|
||||
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueStr.c_str() );
|
||||
} else {
|
||||
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW0, width, 1, 2, valueChar);
|
||||
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW0, width, 1, 2, valueStr.c_str());
|
||||
}
|
||||
}
|
||||
if (masterClockMode != 0 && menuItem == 0) { //to make main param non selectable for external clock
|
||||
@ -72,14 +72,14 @@ void updateScreen() {
|
||||
valueStr = String(bpmModulationRange * 10);
|
||||
}
|
||||
|
||||
valueStr.toCharArray(valueChar, 16);
|
||||
//valueStr.toCharArray(valueChar, 16);
|
||||
|
||||
if (menuItem == i && insideTab && (menuItemSelected || shiftBtnPushed)) {
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueStr.c_str() );
|
||||
} else if (menuItem == i && insideTab && (!menuItemSelected || !shiftBtnPushed)) {
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, 26, 2, 2, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, 26, 2, 2, valueStr.c_str() );
|
||||
} else {
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW0, 26, 2, 2, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW0, 26, 2, 2, valueStr.c_str() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -141,11 +141,11 @@ void updateScreen() {
|
||||
} else if (i == 3) {
|
||||
valueStr = "MOD:";
|
||||
}
|
||||
valueStr.toCharArray(valueChar, 16);
|
||||
//valueStr.toCharArray(valueChar, 16);
|
||||
if (menuItem == i && insideTab) {
|
||||
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueStr.c_str() );
|
||||
} else {
|
||||
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW0, width, 1, 2, valueChar);
|
||||
u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW0, width, 1, 2, valueStr.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@ -178,18 +178,18 @@ void updateScreen() {
|
||||
valueStr = "CV2";
|
||||
}
|
||||
|
||||
valueStr.toCharArray(valueChar, 16);
|
||||
//valueStr.toCharArray(valueChar, 16);
|
||||
if (i == 2 && channels[displayTab - 1].mode == 2) { //EDIT PATTERN thing
|
||||
if (menuItem == i && insideTab) {
|
||||
u8g2.drawBox(leftOffset + 54, ((i-1) * 11), 11, 11);
|
||||
}
|
||||
} else {
|
||||
if (menuItem == i && insideTab && (menuItemSelected || shiftBtnPushed)) {
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueStr.c_str() );
|
||||
} else if (menuItem == i && insideTab && (!menuItemSelected || !shiftBtnPushed)) {
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, 26, 2, 2, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, 26, 2, 2, valueStr.c_str() );
|
||||
} else {
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW0, 26, 2, 2, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW0, 26, 2, 2, valueStr.c_str() );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -198,17 +198,17 @@ void updateScreen() {
|
||||
leftOffset = 29;
|
||||
width = 55;
|
||||
if (channels[displayTab - 1].mode == 0) {
|
||||
valueStr = "SUBDIVISION";
|
||||
valueStr = F("SUBDIVISION");
|
||||
} else if (channels[displayTab - 1].mode == 1) {
|
||||
valueStr = "SKIP CHANCE";
|
||||
valueStr = F("SKIP CHANCE");
|
||||
} else if (channels[displayTab - 1].mode == 2) {
|
||||
valueStr = "PATTERN";
|
||||
valueStr = F("PATTERN");
|
||||
}
|
||||
valueStr.toCharArray(valueChar, 16);
|
||||
//valueStr.toCharArray(valueChar, 16);
|
||||
if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0)) {
|
||||
u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() );
|
||||
} else {
|
||||
u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 1, 2, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 1, 2, valueStr.c_str() );
|
||||
}
|
||||
|
||||
if (channels[displayTab - 1].mode == 0) {
|
||||
@ -226,14 +226,14 @@ void updateScreen() {
|
||||
valueStr = "B" + String(channels[displayTab - 1].seqPattern - 7);
|
||||
}
|
||||
}
|
||||
valueStr.toCharArray(valueChar, 16);
|
||||
//valueStr.toCharArray(valueChar, 16);
|
||||
u8g2.setFont(stkL);
|
||||
if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0 && (menuItemSelected || shiftBtnPushed))) {
|
||||
u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_HCENTER, width, 0, 3, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() );
|
||||
} else if (insideTab && menuItem == 0 && !menuItemSelected) {
|
||||
u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() );
|
||||
} else {
|
||||
u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 3, valueChar );
|
||||
u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -317,7 +317,7 @@ void updateScreen() {
|
||||
|
||||
//Settings Screen
|
||||
else if (displayScreen == 2) {
|
||||
u8g2.drawStr(8, 5,"SETTINGS" );
|
||||
u8g2.drawStr(8, 5, "SETTINGS");
|
||||
u8g2.drawStr(102, 5, version );
|
||||
u8g2.drawHLine(0, 8, 128);
|
||||
lastMenuItem = 3;
|
||||
@ -325,23 +325,23 @@ void updateScreen() {
|
||||
for (byte i = 0; i <= lastMenuItem; i++) {
|
||||
switch(i) {
|
||||
case 0:
|
||||
valueStr = "CALIBRATE CV";
|
||||
valueStr = F("CALIBRATE CV");
|
||||
break;
|
||||
case 1:
|
||||
valueStr = "ROTATE SCREEN";
|
||||
valueStr = F("ROTATE SCREEN");
|
||||
break;
|
||||
case 2:
|
||||
valueStr = "REVERSE ENC";
|
||||
valueStr = F("REVERSE ENCODER");//"REVERSE ENC";
|
||||
break;
|
||||
case 3:
|
||||
valueStr = "FULL RESET";
|
||||
valueStr = F("FULL RESET");
|
||||
break;
|
||||
};
|
||||
valueStr.toCharArray(valueChar, 16);
|
||||
//valueStr.toCharArray(valueChar, 16);
|
||||
if (menuItem == i) {
|
||||
u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0|U8G2_BTN_INV, width, 2, 3, valueChar );
|
||||
u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0|U8G2_BTN_INV, width, 2, 3, valueStr.c_str() );
|
||||
} else {
|
||||
u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0, width, 2, 3, valueChar );
|
||||
u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0, width, 2, 3, valueStr.c_str() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user