Hallo!
Hier habe ich meine Version des TonUINO vorgestellt und möchte gerne meine Erweiterung zum Einschlaf-Timer mit euch teilen, vielleicht hat ja jemand Interesse an der Funktion.
Erstellt habe ich das vor ca. 3 Wochen, basiert also auf der vorherigen DEV-Branch.
Langes Drücken der Leiser-Taste im 5-Button-Modus schaltet zwichen 30min, 60min und aus.
Nach der angegebenen Zeit wird auf Pause gestellt, wird nun manuell weitergespielt, wird automatisch ein neuer 30-Minuten-Timer aktiviert.
- Variablen und Funktionen:
/// Sleep-Timer: Stop Playing
unsigned long sleepTimer = 0;
bool isSleepPause = false;
void setSleepTimer() {
unsigned long time;
unsigned long playId;
unsigned long curMillis = millis();
if (sleepTimer == 0 ) {
time = 30;
}
else {
if (sleepTimer<(curMillis+(29*60000))) time = 30;
else if (sleepTimer<(curMillis+(59*60000))) time = 60;
else time = 0;
}
switch (time){
case 0: playId = 965; break;
case 30: playId = 963; break;
case 60: playId = 964; break;
}
if(isPlaying()) {mp3.playAdvertisement(playId);}
else {mp3.playMp3FolderTrack(playId);}
Serial.print(F("=== setSleepTimer() "));
if(time > 0) sleepTimer = curMillis + (time * 60 * 1000);
else sleepTimer = 0;
Serial.println(sleepTimer);
}
void checkSleepTimer() {
if(sleepTimer != 0 && millis() > sleepTimer) {
if (isPlaying() ) {
Serial.println(F(" --- Sleep-Timer -> PAUSE"));
sleepTimer = 0;
isSleepPause = true;
mp3.pause();
setstandbyTimer();
delay(500);
}
}
else if(isSleepPause && isPlaying()) {
isSleepPause = false;
setSleepTimer();
}
}
- im Loop hinter checkStandbyAtMillis();
checkSleepTimer();
- Erweiterung Abfrage Button 5:
if (buttonFive.pressedFor(LONG_PRESS) && !ignoreButtonFive) {
setSleepTimer();
ignoreButtonFive = true;
}
if (buttonFive.wasReleased()) {
if(!ignoreButtonFive) {
if (isPlaying()) {
if (!mySettings.invertVolumeButtons) {
volumeDownButton();
}
else {
previousButton();
}
}
else {
playShortCut(2);
}
}
else
ignoreButtonFive = false;
}
- Für die Ansagen:
Hier habe ich einfach die Admin-Menü-Ansagen (963-965) für das Auschalten von mp3 ins advert-Verzeichnis dupliziert.