From 999fed1104a0d529b5654b12ef9c1f9d8e16411a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20Vo=C3=9F?= Date: Sun, 23 Dec 2018 18:08:38 +0100 Subject: [PATCH] =?UTF-8?q?Funktion=20der=20Up-/Down-Tasten=20kann=20jetzt?= =?UTF-8?q?=20im=20Adminmen=C3=BC=20(Punkt=2010)=20vertauscht=20werden=20(?= =?UTF-8?q?also=20lange=20f=C3=BCr=20Songwechsen=20und=20kurz=20f=C3=BCr?= =?UTF-8?q?=20Lautst=C3=A4rke)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tonuino.ino | 99 +++++++++++++++++++++++++++++++++----------- create-soundfiles.sh | 4 ++ 2 files changed, 78 insertions(+), 25 deletions(-) diff --git a/Tonuino.ino b/Tonuino.ino index 3ddc8d8..2f91690 100644 --- a/Tonuino.ino +++ b/Tonuino.ino @@ -41,7 +41,7 @@ struct adminSettings { bool locked; long standbyTimer; bool invertVolumeButtons; - folderSettings shortCuts[3]; + folderSettings shortCuts[4]; }; adminSettings mySettings; @@ -125,6 +125,7 @@ void resetSettings() { mySettings.shortCuts[0].folder = 0; mySettings.shortCuts[1].folder = 0; mySettings.shortCuts[2].folder = 0; + mySettings.shortCuts[3].folder = 0; writeSettingsToFlash(); } @@ -165,15 +166,19 @@ void loadSettingsFromFlash() { Serial.println(mySettings.invertVolumeButtons); } +/// Funktionen für den Standby Timer (z.B. über Pololu-Switch oder Mosfet) void setstandbyTimer() { + Serial.println(F("=== setstandbyTimer()")); if (mySettings.standbyTimer != 0 && !isPlaying()) sleepAtMillis = millis() + (mySettings.standbyTimer * 1000); else sleepAtMillis = 0; + Serial.println(sleepAtMillis); } void disablestandbyTimer() { + Serial.println(F("=== disablestandby()")); sleepAtMillis = 0; } @@ -254,10 +259,10 @@ static void nextTrack(uint16_t track) { static void previousTrack() { Serial.println(F("=== previousTrack()")); - if (myCard.mode == 1 || myCard.mode == 7) { - Serial.println(F("Hörspielmodus ist aktiv -> Track von vorne spielen")); - mp3.playFolderTrack(myCard.folder, currentTrack); - } + /* if (myCard.mode == 1 || myCard.mode == 7) { + Serial.println(F("Hörspielmodus ist aktiv -> Track von vorne spielen")); + mp3.playFolderTrack(myCard.folder, currentTrack); + }*/ if (myCard.mode == 2 || myCard.mode == 8) { Serial.println(F("Albummodus ist aktiv -> vorheriger Track")); if (currentTrack != firstTrack) { @@ -388,6 +393,34 @@ void readButtons() { downButton.read(); } +void volumeUpButton() { + Serial.println(F("=== volumeUp()")); + if (volume < mySettings.maxVolume) { + mp3.increaseVolume(); + volume++; + } + Serial.println(volume); +} + +void volumeDownButton() { + Serial.println(F("=== volumeUp()")); + if (volume > mySettings.minVolume) { + mp3.decreaseVolume(); + volume--; + } + Serial.println(volume); +} + +void nextButton() { + nextTrack(random(65536)); + delay(1000); +} + +void previousButton() { + previousTrack(); + delay(1000); +} + void loop() { do { mp3.loop(); @@ -397,8 +430,6 @@ void loop() { // admin menu if ((pauseButton.pressedFor(LONG_PRESS) || upButton.pressedFor(LONG_PRESS) || downButton.pressedFor(LONG_PRESS)) && pauseButton.isPressed() && upButton.isPressed() && downButton.isPressed()) { - Serial.println(F("ADMIN MENU")); - Serial.println(F("==========")); mp3.pause(); do { readButtons(); @@ -437,31 +468,33 @@ void loop() { } if (upButton.pressedFor(LONG_PRESS)) { - Serial.println(F("Volume Up")); - if (volume < mySettings.maxVolume) { - mp3.increaseVolume(); - volume++; - } + if (!mySettings.invertVolumeButtons) + volumeUpButton(); + else + nextButton(); ignoreUpButton = true; } else if (upButton.wasReleased()) { if (!ignoreUpButton) - nextTrack(random(65536)); - else - ignoreUpButton = false; + if (!mySettings.invertVolumeButtons) + nextButton(); + else + volumeUpButton(); + ignoreUpButton = false; } if (downButton.pressedFor(LONG_PRESS)) { - Serial.println(F("Volume Down")); - if (volume > mySettings.minVolume) { - mp3.decreaseVolume(); - volume--; - } + if (!mySettings.invertVolumeButtons) + volumeDownButton(); + else + previousButton(); ignoreDownButton = true; } else if (downButton.wasReleased()) { if (!ignoreDownButton) - previousTrack(); - else - ignoreDownButton = false; + if (!mySettings.invertVolumeButtons) + previousButton(); + else + volumeDownButton(); + ignoreDownButton = false; } // Ende der Buttons } while (!mfrc522.PICC_IsNewCardPresent()); @@ -516,7 +549,7 @@ void loop() { if (myCard.mode == 5) { Serial.println(F("Hörbuch Modus -> kompletten Ordner spielen und " "Fortschritt merken")); - currentTrack = EEPROM.read(myCard.folder); + currentTrack = max(1,EEPROM.read(myCard.folder)); mp3.playFolderTrack(myCard.folder, currentTrack); } // Spezialmodus Von-Bin: Hörspiel: eine zufällige Datei aus dem Ordner @@ -565,11 +598,12 @@ void loop() { } void adminMenu() { + disablestandbyTimer(); mp3.pause(); Serial.println(F("=== adminMenu()")); knownCard = false; - int subMenu = voiceMenu(9, 900, 900); + int subMenu = voiceMenu(10, 900, 900); if (subMenu == 1) { resetCard(); mfrc522.PICC_HaltA(); @@ -586,6 +620,12 @@ void adminMenu() { else if (subMenu == 6) { // create master card } + else if (subMenu == 7) { + // Tasten mit einem Shortcut konfigurieren + } + else if (subMenu == 8) { + // Den Standbytimer konfigurieren + } else if (subMenu == 9) { // Ordner abfragen nfcTagObject tempCard; @@ -617,7 +657,16 @@ void adminMenu() { waitForTrackToFinish(); } } + else if (subMenu == 10) { + // Funktion der Lautstärketasten umdrehen + int temp = voiceMenu(2, 933, 933, false); + if (temp == 2) + mySettings.invertVolumeButtons = true; + else + mySettings.invertVolumeButtons = false; + } writeSettingsToFlash(); + setstandbyTimer(); } int voiceMenu(int numberOfOptions, int startMessage, int messageOffset, diff --git a/create-soundfiles.sh b/create-soundfiles.sh index 9471bf6..f642d5a 100644 --- a/create-soundfiles.sh +++ b/create-soundfiles.sh @@ -136,6 +136,10 @@ say -v Anna "Einzelkarten für einen Ordner erstellen." -o 0909.aiff sox 0909.aiff 0909.wav pitch 800 lame -b 128 0909.wav 0909_batch_cards.mp3 +say -v Anna "Funktion der Lautstärke Tasten umdrehen." -o 0910.aiff +sox 0910.aiff 0910.wav pitch 800 +lame -b 128 0910.wav 0910_batch_cards.mp3 + say -v Anna "Bitte wähle eine Einstellung für den EQ mit den Lautstärke Tasten aus und bestätige sie mit der Pause Taste." -o 0920.aiff sox 0920.aiff 0920.wav pitch 800 lame -b 128 0920.wav 0920_eq_intro.mp3