Custom font and some progress on the menu

This commit is contained in:
2023-08-01 14:30:48 +03:00
parent 21e67180ec
commit dbf6cfe85a
2 changed files with 155 additions and 38 deletions

View File

@ -6,7 +6,9 @@ void updateScreen() {
//BPM Tab
if (displayTab == 0) { //BPM
u8g2.setFont(u8g2_font_5x7_tr);
u8g2.setFont(velvetscreen);
//Menu items
if (masterClockMode == 0 && bpmModulationRange == 0) {
lastMenuItem = 1;
@ -16,74 +18,165 @@ void updateScreen() {
lastMenuItem = 0;
}
if (menuItem == 0 && insideTab) {
u8g2.drawButtonUTF8(4, 8, U8G2_BTN_BW0|U8G2_BTN_INV, 20, 3, 2, "CLK:" );
u8g2.drawButtonUTF8(59, 6, U8G2_BTN_BW0|U8G2_BTN_INV, 20, 3, 2, "MODE:" );
} else {
u8g2.drawButtonUTF8(4, 8, U8G2_BTN_BW0, 20, 3, 2, "CLK:" );
u8g2.drawButtonUTF8(59, 6, U8G2_BTN_BW0, 20, 3, 2, "MODE:" );
}
if (masterClockMode == 0) {
if (menuItem == 1) {
u8g2.drawButtonUTF8(4, 20, U8G2_BTN_BW0|U8G2_BTN_INV, 20, 3, 2, "MOD:" );
u8g2.drawButtonUTF8(59, 16, U8G2_BTN_BW0|U8G2_BTN_INV, 20, 3, 2, "MODUL:" );
} else {
u8g2.drawButtonUTF8(4, 20, U8G2_BTN_BW0, 20, 3, 2, "MOD:" );
u8g2.drawButtonUTF8(59, 16, U8G2_BTN_BW0, 20, 3, 2, "MODUL:" );
}
if (bpmModulationRange != 0) {
if (menuItem == 2) {
u8g2.drawButtonUTF8(4, 32, U8G2_BTN_BW0|U8G2_BTN_INV, 20, 3, 2, "RNG:" );
u8g2.drawButtonUTF8(59, 26, U8G2_BTN_BW0|U8G2_BTN_INV, 20, 3, 2, "RANGE:" );
} else {
u8g2.drawButtonUTF8(4, 32, U8G2_BTN_BW0, 20, 3, 2, "RNG:" );
u8g2.drawButtonUTF8(59, 26, U8G2_BTN_BW0, 20, 3, 2, "RANGE:" );
}
}
}
//Values
if (menuItem == 0 && insideTab && masterClockMode == 0) {
u8g2.drawButtonUTF8(31, 8, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "INT" );
u8g2.drawButtonUTF8(91, 6, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "INT" );
} else if ((menuItem != 0 || !insideTab) && masterClockMode == 0) {
u8g2.drawButtonUTF8(31, 8, U8G2_BTN_BW0, 30, 4, 2, "INT" );
u8g2.drawButtonUTF8(91, 6, U8G2_BTN_BW0, 30, 4, 2, "INT" );
}
if (menuItem == 0 && masterClockMode == 1) {
u8g2.drawButtonUTF8(31, 8, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "EXT" );
u8g2.drawButtonUTF8(91, 6, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "EXT" );
} else if (menuItem != 0 && masterClockMode == 1) {
u8g2.drawButtonUTF8(31, 8, U8G2_BTN_BW0, 30, 4, 2, "EXT" );
u8g2.drawButtonUTF8(91, 6, U8G2_BTN_BW0, 30, 4, 2, "EXT" );
}
if (masterClockMode == 0) {
if (menuItem == 1 && bpmModulationRange != 0 && bpmModulationChannel == 0) {
u8g2.drawButtonUTF8(31, 20, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "CV1" );
u8g2.drawButtonUTF8(91, 16, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "CV1" );
} else if (menuItem != 1 && bpmModulationRange != 0 && bpmModulationChannel == 0) {
u8g2.drawButtonUTF8(31, 20, U8G2_BTN_BW0, 30, 3, 2, "CV1" );
u8g2.drawButtonUTF8(91, 16, U8G2_BTN_BW0, 30, 3, 2, "CV1" );
}
if (menuItem == 1 && bpmModulationRange != 0 && bpmModulationChannel == 1) {
u8g2.drawButtonUTF8(31, 20, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "CV2" );
u8g2.drawButtonUTF8(91, 16, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "CV2" );
} else if (menuItem != 1 && bpmModulationRange != 0 && bpmModulationChannel == 1){
u8g2.drawButtonUTF8(31, 20, U8G2_BTN_BW0, 30, 3, 2, "CV2" );
u8g2.drawButtonUTF8(91, 16, U8G2_BTN_BW0, 30, 3, 2, "CV2" );
}
if (menuItem == 1 && bpmModulationRange == 0) {
u8g2.drawButtonUTF8(31, 20, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "OFF" );
u8g2.drawButtonUTF8(91, 16, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, "OFF" );
} else if (menuItem != 1 && bpmModulationRange == 0) {
u8g2.drawButtonUTF8(31, 20, U8G2_BTN_BW0, 30, 4, 2, "OFF" );
u8g2.drawButtonUTF8(91, 16, U8G2_BTN_BW0, 30, 4, 2, "OFF" );
}
String bpmModStr = String(bpmModulationRange * 10);
char bpmModChar[3];
bpmModStr.toCharArray(bpmModChar, 3);
if (menuItem == 2 && bpmModulationRange != 0) {
u8g2.drawButtonUTF8(31, 32, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, bpmModChar );
u8g2.drawButtonUTF8(91, 26, U8G2_BTN_BW0|U8G2_BTN_INV, 30, 4, 2, bpmModChar );
} else if (menuItem != 2 && bpmModulationRange != 0) {
u8g2.drawButtonUTF8(31, 32, U8G2_BTN_BW0, 30, 4, 2, bpmModChar );
u8g2.drawButtonUTF8(91, 26, U8G2_BTN_BW0, 30, 4, 2, bpmModChar );
}
}
String bpmStr = String(bpm);
char bpmChar[5];
bpmStr.toCharArray(bpmChar, 5);
u8g2.setFont(u8g2_font_logisoso26_tn);
u8g2.setFont(u8g2_font_logisoso24_tn);
if (!insideTab && shiftBtnPushed) {
u8g2.drawButtonUTF8(96, 28, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, 62, 0, 0, bpmChar );
u8g2.setFont(u8g2_font_7x13B_mr);
u8g2.drawButtonUTF8(96, 44, U8G2_BTN_BW1|U8G2_BTN_HCENTER, 62, 0, 0, "BPM" );
} else if (menuItem != 2 && bpmModulationRange != 0) {
u8g2.drawButtonUTF8(96, 28, U8G2_BTN_BW0|U8G2_BTN_HCENTER, 64, 0, 0, bpmChar );
u8g2.setFont(u8g2_font_7x13B_mr);
u8g2.drawButtonUTF8(96, 44, U8G2_BTN_BW0|U8G2_BTN_HCENTER, 64, 0, 0, "BPM" );
u8g2.drawButtonUTF8(28, 26, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, 56, 0, 0, bpmChar );
u8g2.setFont(velvetscreen);
u8g2.drawButtonUTF8(29, 40, U8G2_BTN_BW1|U8G2_BTN_HCENTER, 55, 0, 2, "BPM" );
} else {
u8g2.drawButtonUTF8(28, 26, U8G2_BTN_BW0|U8G2_BTN_HCENTER, 56, 0, 0, bpmChar );
u8g2.setFont(velvetscreen);
u8g2.drawButtonUTF8(29, 40, U8G2_BTN_BW0|U8G2_BTN_HCENTER, 55, 0, 2, "BPM" );
}
}
//Channel Tabs
else {
//Menu items
lastMenuItem = 3;
byte menuItemWidth = 32;
if (menuItem == 0 && insideTab) {
u8g2.drawButtonUTF8(2, 6, U8G2_BTN_BW0|U8G2_BTN_INV, menuItemWidth, 2, 2, "MODE:" );
} else {
u8g2.drawButtonUTF8(2, 6, U8G2_BTN_BW0, menuItemWidth, 2, 2, "MODE:" );
}
if (menuItem == 1 && insideTab && channels[displayTab - 1].mode == 0) {
u8g2.drawButtonUTF8(2, 16, U8G2_BTN_BW0|U8G2_BTN_INV, menuItemWidth, 2, 2, "OFFSET:" );
} else if ((menuItem != 1 || insideTab) && channels[displayTab - 1].mode == 0) {
u8g2.drawButtonUTF8(2, 16, U8G2_BTN_BW0, menuItemWidth, 2, 2, "OFFSET:" );
}
if (menuItem == 1 && insideTab && channels[displayTab - 1].mode == 1) {
u8g2.drawButtonUTF8(2, 16, U8G2_BTN_BW0|U8G2_BTN_INV, menuItemWidth, 2, 2, "SUBDIV:" );
} else if ((menuItem != 1 || insideTab) && channels[displayTab - 1].mode == 1) {
u8g2.drawButtonUTF8(2, 16, U8G2_BTN_BW0, menuItemWidth, 2, 2, "SUBDIV:" );
}
if (menuItem == 1 && insideTab && channels[displayTab - 1].mode == 2) {
u8g2.drawButtonUTF8(2, 16, U8G2_BTN_BW0|U8G2_BTN_INV, menuItemWidth, 2, 2, "EDIT" );
} else if ((menuItem != 1 || insideTab) && channels[displayTab - 1].mode == 2) {
u8g2.drawButtonUTF8(2, 16, U8G2_BTN_BW0, menuItemWidth, 2, 2, "EDIT" );
}
if (menuItem == 2 && insideTab) {
u8g2.drawButtonUTF8(2, 26, U8G2_BTN_BW0|U8G2_BTN_INV, menuItemWidth, 2, 2, "CV1:" );
} else {
u8g2.drawButtonUTF8(2, 26, U8G2_BTN_BW0, menuItemWidth, 2, 2, "CV1:" );
}
if (menuItem == 3 && insideTab) {
u8g2.drawButtonUTF8(2, 36, U8G2_BTN_BW0|U8G2_BTN_INV, menuItemWidth, 2, 2, "CV2:" );
} else {
u8g2.drawButtonUTF8(2, 36, U8G2_BTN_BW0, menuItemWidth, 2, 2, "CV2:" );
}
String valueStr;
char valueChar[8];
//Values
byte valueWidth = 28;
if (menuItem == 0 && insideTab && channels[displayTab - 1].mode == 0) {
u8g2.drawButtonUTF8(menuItemWidth+6, 6, U8G2_BTN_BW0|U8G2_BTN_INV, valueWidth, 2, 2, "CLOCK" );
} else if ((menuItem != 0 || !insideTab) && channels[displayTab - 1].mode == 0) {
u8g2.drawButtonUTF8(menuItemWidth+6, 6, U8G2_BTN_BW0, valueWidth, 3, 2, "CLOCK" );
} else if (menuItem == 0 && insideTab && channels[displayTab - 1].mode == 1) {
u8g2.drawButtonUTF8(menuItemWidth+6, 6, U8G2_BTN_BW0|U8G2_BTN_INV, valueWidth, 2, 2, "RAND" );
} else if ((menuItem != 0 || !insideTab) && channels[displayTab - 1].mode == 1) {
u8g2.drawButtonUTF8(menuItemWidth+6, 6, U8G2_BTN_BW0, valueWidth, 3, 2, "RAND" );
} else if (menuItem == 0 && insideTab && channels[displayTab - 1].mode == 2) {
u8g2.drawButtonUTF8(menuItemWidth+6, 6, U8G2_BTN_BW0|U8G2_BTN_INV, valueWidth, 2, 2, "SEQ" );
} else if ((menuItem != 0 || !insideTab) && channels[displayTab - 1].mode == 2) {
u8g2.drawButtonUTF8(menuItemWidth+6, 6, U8G2_BTN_BW0, valueWidth, 3, 2, "SEQ" );
}
if (channels[displayTab - 1].mode == 0) {
valueStr = String(channels[displayTab - 1].offset) + "/";
valueStr = valueStr + String(channelPulsesPerCycle[displayTab-1]+1);
} else if (channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] > 0) {
valueStr = "/" + String(subDivs[channels[displayTab - 1].subDiv]);
} else if (channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] < 0) {
valueStr = "x" + String(abs(subDivs[channels[displayTab - 1].subDiv]));
}
valueStr.toCharArray(valueChar, 8);
if (menuItem == 1 && insideTab && channels[displayTab - 1].mode == 0) {
u8g2.drawButtonUTF8(menuItemWidth+6, 16, U8G2_BTN_BW0|U8G2_BTN_INV, valueWidth, 2, 2, valueChar );
} else if ((menuItem != 1 || !insideTab) && channels[displayTab - 1].mode == 0) {
u8g2.drawButtonUTF8(menuItemWidth+6, 16, U8G2_BTN_BW0, valueWidth, 3, 2, valueChar );
}
if (channels[displayTab - 1].mode == 0 && subDivs[channels[displayTab - 1].subDiv] > 0) {
valueStr = "/" + String(subDivs[channels[displayTab - 1].subDiv]);
} else if (channels[displayTab - 1].mode == 0 && subDivs[channels[displayTab - 1].subDiv] < 0) {
valueStr = "x" + String(abs(subDivs[channels[displayTab - 1].subDiv]));
} else if (channels[displayTab - 1].mode == 1) {
valueStr = String(channels[displayTab - 1].random) + "0%";
} else if (channels[displayTab - 1].mode == 2) {
valueStr = "A" + String(channels[displayTab - 1].random + 1);
}
valueStr.toCharArray(valueChar, 8);
u8g2.setFont(u8g2_font_logisoso24_tr);
if (!insideTab && shiftBtnPushed) {
u8g2.drawButtonUTF8(96, 26, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, 56, 0, 0, valueChar );
} else {
u8g2.drawButtonUTF8(96, 26, U8G2_BTN_BW0|U8G2_BTN_HCENTER, 56, 0, 0, valueChar );
}
}
@ -239,32 +332,35 @@ void updateScreen() {
*/
//Tabs
u8g2.drawHLine(0, 51, 128);
u8g2.setFont(u8g2_font_5x7_tr);
u8g2.drawHLine(0, 53, 128);
u8g2.setFont(velvetscreen);
byte yPos = 61;
byte xWidth = 12;
if (displayTab == 0) {
if (insideTab == true || shiftBtnPushed == true) {
u8g2.drawButtonUTF8(4, 60, U8G2_BTN_BW1, 0, 3, 2, "BPM" );
u8g2.drawButtonUTF8(xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_HCENTER, xWidth-2, 0, 2, "w" );
} else {
u8g2.drawButtonUTF8(4, 60, U8G2_BTN_BW1|U8G2_BTN_INV, 0, 3, 2, "BPM" );
u8g2.drawButtonUTF8(xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, xWidth-2, 0, 2, "w" );
}
} else {
u8g2.drawButtonUTF8(4, 60, U8G2_BTN_BW0, 0, 3, 2, "BPM" );
u8g2.drawButtonUTF8(xWidth/2, yPos, U8G2_BTN_BW0|U8G2_BTN_HCENTER, xWidth, 0, 2, "w" );
}
for (int i = 1; i <= 6; i++) {
String tabNameStr = String(i);
char tabNameChar[3];
tabNameStr.toCharArray(tabNameChar, 3);
if (displayTab == i) {
if (insideTab == true || shiftBtnPushed == true) { //hot mess, but for some reason it didn't want to take string/char variables
u8g2.drawButtonUTF8(i*13 + 13, 60, U8G2_BTN_BW1, 0, 3, 2, (i == 1) ? "1" : (i == 2) ? "2" : (i == 3) ? "3" : (i == 4) ? "4" : (i == 5) ? "5" : (i == 5) ? "5" : (i == 6) ? "6" : "0");
if (insideTab == true || shiftBtnPushed == true) {
u8g2.drawButtonUTF8(i*xWidth + xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_HCENTER, xWidth-2, 0, 2, tabNameChar);
} else {
u8g2.drawButtonUTF8(i*13 + 13, 60, U8G2_BTN_BW1|U8G2_BTN_INV, 0, 3, 2, (i == 1) ? "1" : (i == 2) ? "2" : (i == 3) ? "3" : (i == 4) ? "4" : (i == 5) ? "5" : (i == 5) ? "5" : (i == 6) ? "6" : "0");
u8g2.drawButtonUTF8(i*xWidth + xWidth/2, yPos, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, xWidth-2, 0, 2, tabNameChar);
}
} else {
u8g2.drawButtonUTF8(i*13 + 13, 60, U8G2_BTN_BW0, 0, 3, 2, (i == 1) ? "1" : (i == 2) ? "2" : (i == 3) ? "3" : (i == 4) ? "4" : (i == 5) ? "5" : (i == 5) ? "5" : (i == 6) ? "6" : "0");
u8g2.drawButtonUTF8(i*xWidth + xWidth/2, yPos, U8G2_BTN_BW0|U8G2_BTN_HCENTER, xWidth, 0, 2, tabNameChar);
}
}
//u8g2.sendBuffer();
} while ( u8g2.nextPage() );
}