diff --git a/Tonuino.ino b/Tonuino.ino index 06a46e38..ecee58bd 100644 --- a/Tonuino.ino +++ b/Tonuino.ino @@ -1344,101 +1344,161 @@ uint8_t voiceMenu(int numberOfOptions, int startMessage, int messageOffset, bool preview = false, int previewFromFolder = 0, int defaultValue = 0, bool exitWithLongPress = false) { uint8_t returnValue = defaultValue; if (startMessage != 0) - mp3.playMp3FolderTrack(startMessage); - Serial.print(F("=== voiceMenu() (")); - Serial.print(numberOfOptions); - Serial.println(F(" Options)")); - do { - if (Serial.available() > 0) { - int optionSerial = Serial.parseInt(); - if (optionSerial != 0 && optionSerial <= numberOfOptions) - return optionSerial; - } - readButtons(); - mp3.loop(); - if (pauseButton.pressedFor(LONG_PRESS)) { - mp3.playMp3FolderTrack(802); - ignorePauseButton = true; - checkStandbyAtMillis(); - return defaultValue; - } - if (pauseButton.wasReleased()) { - if (returnValue != 0) { - Serial.print(F("=== ")); - Serial.print(returnValue); - Serial.println(F(" ===")); - return returnValue; - } - delay(1000); - } + mp3.playMp3FolderTrack(startMessage); + Serial.print(F("=== voiceMenu() (")); + Serial.print(numberOfOptions); + Serial.println(F(" Options)")); + + unsigned long AdmTimeOut = 0; + unsigned long SollAdmTimeOut = 1*60000; // Vorgabe der AdmTimeOut Zeit in millisekunden , Die 5 ist dieZeit in Minuten + AdmTimeOut = millis(); + Serial.print(F("AdmTimeOut :")); + Serial.println(SollAdmTimeOut); + do + { + //Serial.println((millis() - AdmTimeOut)); + if((millis() - AdmTimeOut) >= SollAdmTimeOut) + { + Serial.println(F("TimeOut")); + mp3.playMp3FolderTrack(802); //802- "OK, ich habe den Vorgang abgebrochen. + //ignorePauseButton = true; + setstandbyTimer(); + return defaultValue; + } + + + if (Serial.available() > 0) + { + int optionSerial = Serial.parseInt(); + if (optionSerial != 0 && optionSerial <= numberOfOptions) + return optionSerial; + } + + + readButtons(); +mp3.loop(); + + if (pauseButton.pressedFor(LONG_PRESS)) // Abbruch + { + mp3.playMp3FolderTrack(802); //802- "OK, ich habe den Vorgang abgebrochen. + ignorePauseButton = true; + setstandbyTimer(); + return defaultValue; + } + if (pauseButton.wasReleased()) + { + if (returnValue != 0) + { + AdmTimeOut = millis(); + Serial.print(F("=== ")); + Serial.print(returnValue); + Serial.println(F(" ===")); + return returnValue; + } + delay(1000); + } - if (upButton.pressedFor(LONG_PRESS)) { - returnValue = min(returnValue + 10, numberOfOptions); + if (upButton.pressedFor(LONG_PRESS)) + { + AdmTimeOut = millis(); + returnValue = min(returnValue + 10, numberOfOptions); // 10 Schritte hoch Serial.println(returnValue); - //mp3.pause(); + mp3.pause(); mp3.playMp3FolderTrack(messageOffset + returnValue); waitForTrackToFinish(); - /*if (preview) { + + //************preview 10-er Schritt** vorwärts ************** + + if (preview) + { if (previewFromFolder == 0) mp3.playFolderTrack(returnValue, 1); else mp3.playFolderTrack(previewFromFolder, returnValue); - }*/ + } + ignoreUpButton = true; - } else if (upButton.wasReleased()) { - if (!ignoreUpButton) { + } + else if (upButton.wasReleased()) + { + AdmTimeOut = millis(); + if (!ignoreUpButton) + { returnValue = min(returnValue + 1, numberOfOptions); Serial.println(returnValue); - //mp3.pause(); + mp3.pause(); mp3.playMp3FolderTrack(messageOffset + returnValue); - if (preview) { + if (preview) + { waitForTrackToFinish(); - if (previewFromFolder == 0) { + if (previewFromFolder == 0) + { mp3.playFolderTrack(returnValue, 1); - } else { - mp3.playFolderTrack(previewFromFolder, returnValue); + } + else + { + mp3.playFolderTrack(previewFromFolder, returnValue); + } + delay(1000); } - delay(1000); - } - } else { + } + else + { ignoreUpButton = false; - } + } } - if (downButton.pressedFor(LONG_PRESS)) { - returnValue = max(returnValue - 10, 1); + if (downButton.pressedFor(LONG_PRESS)) + { + AdmTimeOut = millis(); + returnValue = max(returnValue - 10, 1); // 10 Schritte zurück Serial.println(returnValue); - //mp3.pause(); + mp3.pause(); mp3.playMp3FolderTrack(messageOffset + returnValue); waitForTrackToFinish(); - /*if (preview) { + + //************preview 10-er Schritt* zurück *************** + + if (preview) + { if (previewFromFolder == 0) mp3.playFolderTrack(returnValue, 1); else mp3.playFolderTrack(previewFromFolder, returnValue); - }*/ + } + + ignoreDownButton = true; - } else if (downButton.wasReleased()) { - if (!ignoreDownButton) { - returnValue = max(returnValue - 1, 1); - Serial.println(returnValue); - //mp3.pause(); - mp3.playMp3FolderTrack(messageOffset + returnValue); - if (preview) { - waitForTrackToFinish(); - if (previewFromFolder == 0) { - mp3.playFolderTrack(returnValue, 1); - } - else { + } + else if (downButton.wasReleased()) + { + AdmTimeOut = millis(); + if (!ignoreDownButton) + { + returnValue = max(returnValue - 1, 1); + Serial.println(returnValue); + mp3.pause(); + mp3.playMp3FolderTrack(messageOffset + returnValue); + if (preview) + { + waitForTrackToFinish(); + if (previewFromFolder == 0) + { + mp3.playFolderTrack(returnValue, 1); + } + else + { mp3.playFolderTrack(previewFromFolder, returnValue); - } + } delay(1000); - } - } else { - ignoreDownButton = false; + } + } + else + { + ignoreDownButton = false; + } } - } - } while (true); + } while (true); } void resetCard() {