Sequences can be different length now

This commit is contained in:
Oleksiy
2025-03-11 14:58:42 +02:00
parent 9840f23f77
commit f7b2150acf
4 changed files with 100 additions and 184 deletions

View File

@ -13,39 +13,7 @@ void checkInputs() {
if (!insideTab && displayScreen == 0) {
insideTab = true;
} else if (insideTab && channels[displayTab - 1].mode == 2 && menuItem == 2 && displayScreen == 0) { //enter the pattern editor
if (channels[displayTab - 1].seqPattern == 0) {
patternToEdit = seqA1;
} else if (channels[displayTab - 1].seqPattern == 1) {
patternToEdit = seqA2;
} else if (channels[displayTab - 1].seqPattern == 2) {
patternToEdit = seqA3;
} else if (channels[displayTab - 1].seqPattern == 3) {
patternToEdit = seqA4;
} else if (channels[displayTab - 1].seqPattern == 4) {
patternToEdit = seqA5;
} else if (channels[displayTab - 1].seqPattern == 5) {
patternToEdit = seqA6;
} else if (channels[displayTab - 1].seqPattern == 6) {
patternToEdit = seqA7;
} else if (channels[displayTab - 1].seqPattern == 7) {
patternToEdit = seqA8;
} else if (channels[displayTab - 1].seqPattern == 8) {
patternToEdit = seqB1;
} else if (channels[displayTab - 1].seqPattern == 9) {
patternToEdit = seqB2;
} else if (channels[displayTab - 1].seqPattern == 10) {
patternToEdit = seqB3;
} else if (channels[displayTab - 1].seqPattern == 11) {
patternToEdit = seqB4;
} else if (channels[displayTab - 1].seqPattern == 12) {
patternToEdit = seqB5;
} else if (channels[displayTab - 1].seqPattern == 13) {
patternToEdit = seqB6;
} else if (channels[displayTab - 1].seqPattern == 14) {
patternToEdit = seqB7;
} else if (channels[displayTab - 1].seqPattern == 15) {
patternToEdit = seqB8;
}
patternToEdit = channels[displayTab - 1].seqPattern;
displayScreen = 1;
isRecording = 0;
} else if (insideTab && displayScreen == 0) {
@ -377,9 +345,9 @@ void checkInputs() {
}
} else if (displayScreen == 1 && !isRecording) {
stepNumSelected = stepNumSelected + change;
if (stepNumSelected > 100) {
stepNumSelected = 15;
} else if (stepNumSelected > 15) {
if (stepNumSelected > sequences[channels[displayTab - 1].seqPattern].length + 1) {
stepNumSelected = sequences[channels[displayTab - 1].seqPattern].length;
} else if (stepNumSelected > sequences[channels[displayTab - 1].seqPattern].length) {
stepNumSelected = 0;
}
} else if (displayScreen == 2 && !shiftBtnPushed) {
@ -432,13 +400,13 @@ void checkInputs() {
digitalWrite(outsPins[displayTab - 1], HIGH);
}
if (displayScreen == 1 && !isRecording) {
patternToEdit[stepNumSelected] = !patternToEdit[stepNumSelected];
sequences[patternToEdit].sequence = bitFlip(sequences[patternToEdit].sequence, stepNumSelected);
} else if (displayScreen == 1 && isRecording && !recordToNextStep) { //Recording
patternToEdit[currentStep] = 1;
bitSet(sequences[patternToEdit].sequence, currentStep[displayTab - 1]);
} else if (displayScreen == 1 && isRecording && recordToNextStep && currentStep != 15) {
patternToEdit[currentStep+1] = 1;
bitSet(sequences[patternToEdit].sequence, currentStep[displayTab - 1] + 1);
} else if (displayScreen == 1 && isRecording && recordToNextStep && currentStep == 15) {
patternToEdit[0] = 1;
bitSet(sequences[patternToEdit].sequence, 0);
}
saveState();
updateScreen();
@ -446,9 +414,7 @@ void checkInputs() {
shiftBtnPushed = false;
shiftReleasedTime = millis();
if (displayScreen == 1 && shiftReleasedTime - shiftPressedTime > 500 && !encBtnPushed) { //&& shiftReleasedTime - shiftPressedTime < 2000 //Clear the sequence
for (byte i = 0; i < 16; i++) {
patternToEdit[i] = 0;
}
sequences[patternToEdit].sequence = 0b000000000000000000000000000000000;
} else if (shiftReleasedTime - shiftPressedTime > 2000 && encBtnPushed) {
displayScreen = 2;
menuItemSelected = 1; //hack to prevent from going back when the encoder is released