Hörbuchmodus - reset/zurücksetzen?

Außerhalb der Void loop?
Ich befinde mich innerhalb der loop.

Leider immer noch der gleich Fehler auch mit readButtons();
request for member ‚pressedFor‘ in ‚previousButton‘, which is of non-class type ‚void()‘

Versuche es mal mit buttonFour.pressed…. die Buttons heißen pauseButton, upButton, downButton, buttonFour, buttonFive. Du müsstest also four oder five nehmen es sei denn du hast die umbenannt

1 „Gefällt mir“

Hatte ich schon versucht. Ging nicht. Grade nochmal und festgestellt das ich es heute nachmittag klein geschrieben hatte. (buttonfour anstatt buttonFour)
Ich übertrage morgen nachmittag. Denke aber das es geht, weil ich keine Kopilierungsfehler mehr erhalte.

Danke sehr.

Hallo zusammen!

Den fehlenden Reset des Hörbuchs fiel mir schon auf, als ich zum ersten Mal auf dieses Forum gestoßen bin…

Jetzt ist die Box fertig und ich hab es aus einem Mix von vorigen Beiträgen gelöst. Danke euch allen.
Eckpunkte:

  • DEV / 5 Button
  • Trackansage soll erhalten bleiben
  • LONG_PRESS auf Button 4 und 5 will ich frei lassen, für ggf. eine ±10-Vor-Funktion u.a.
    ==>Lösung: LongPress auf Button 4 UND 5 setzt im Hörbuch-Modus auf Start zurück
    //>>==Mod_Ralf==>> Hörbuch von Anfang Starten, wenn Button 4 und 5 gemeinsam betätigt werden
#ifdef FIVEBUTTONS
    if (buttonFour.pressedFor(LONG_PRESS) && buttonFive.pressedFor(LONG_PRESS)) {
       do {
        readButtons();
      } while (buttonFour.isPressed() || buttonFive.isPressed());
      readButtons();
      if (myFolder->mode == 5) {
          Serial.print(F("Hörbuch wird von vorne abgespielt"));
          currentTrack = 1;
          EEPROM.update(myFolder->folder, currentTrack);
          mp3.playFolderTrack(myFolder->folder, currentTrack);
        }
      else
       {
             Serial.print(F("Rücksetzen nur im Hörbuchmodus!"));
       }
    }
#endif
    //<<==Mod_Ralf==<<
4 „Gefällt mir“

In Zeile 1035 hast du auch noch einen Tippfehler:
Es muss #ifdef FIVEBUTTONS heißen. Da hat sich bei dir ein n eingeschlichen…

Edit: Da @stephan mich korrigiert hat, habe ich meinen Text durchgestrichen, nicht dass jemand den Fehler macht…

Nee, das muss so! Das ist ein Abschnitt aus dem Original:

1 „Gefällt mir“

Hallo zusammen.
Heute endlich dazu gekommen.
So funktioniert es.

Das #ifndef FIVEBUTTONS bedeutet, wenn FIVEBUTTONS nicht definiert, also der folgende Programmabschnitt bis #endif gilt nur für den 3-Tastenmodus.

Hallo zusammen,

nun hat sich bei uns ebenfalls genau die Frage unserer Tochter ergeben, die in diesem Beitrag behandelt wird. „Wie starte ich mein Hörbuch von vorne.“

Tatsächlich habe ich für meine Kinder die 5-Buttons-Variante gebastelt.
Es gibt also reichlich kreative Kombinationsmöglichkeiten mit Buttons, die noch nicht vergeben sind.

Die Verwendung von „Button“-Kombinationen empfinde ich aber nicht so sprechend - insbesondere für kleine Kinder.

Daher kam mir die Idee, dass man dafür eine „Admin-Fuktion“ bzw. „Modifier-Karte“ machen kann.

Und es klappt auch. Aber noch nicht gut, zugegeben (ich hätte mir Euren letzten Codeschnipsel besser anschauen sollen). Es sind meine ersten Schritte im TonuINO-Code.

Die RFID-Karte habe ich mit der TonuINO-App von Marc Walter (TonUINO NFC Tools) codiert. Und dort den Modus „99“ raufgeschrieben (unter „Erweitert“).
Anstelle einer richtigen „Modifier“-Klasse habe ich dann direkt den Case-Verteiler um den Code-Schnipsel ergänzt.

(ab Zeile 1674; m.E. die DEV-Version)

case 99:
            Serial.println(F("Modifier-Card 99: Hörbuch zurücksetzen"));
            if (myFolder->mode == 5) {
              EEPROM.update(myFolder->folder, 1);
            }
            break;

Richtig vollständig wäre es natürlich erst, wenn man eine solche Karte auch über das Admin-Menü einrichten kann - soweit bin ich aber nicht gekommen. Auch, dass das Hörbuch sofort mit Track 1 wieder startet wäre sinnig. Bei mir muss man die Hörbuch-Karte anschließend nochmal auflegen, damit es losgeht.

Ich wollte hauptsächlich die Idee „Karte statt Button-Kombination“ mit Euch teilen. Vielleicht freut sich ja der ein oder andere darüber.

Das Projekt ist auf jeden Fall großartig! Vielen Dank dafür! Sowohl an Thorsten als auch alle anderen dieser Community!

Viele Grüße
HeikINO

1 „Gefällt mir“

Moin!

Zum direkten Neustart des Hörbuches, sollte es reichen Deinen Code vor der schließenden geschweiften Klammer um ein
playFolder();
zu erweitern.
So oder so ähnlich wären die Änderungen in der DEV um Deinen Modifier auch übers Admin-Menü einrichten zu können:

Zeile 1202 (tempCard.nfcFolderSettings.mode = voiceMenu(6, 970, 970, false, false, 0, true);) ersetzen mit:

tempCard.nfcFolderSettings.mode = voiceMenu(7, 970, 970, false, false, 0, true);

unter Zeile 1212 (vor: mp3.playMp3FolderTrack(800);) einfügen:

  if (tempCard.nfcFolderSettings.mode == 7) {
    tempCard.nfcFolderSettings.mode = 99;
  }

und im Ordner mp3 eine neue Datei erstellen:
0977_modifier_Audiobook_reset.mp3 „Fortschritt des laufenden Hörbuches zurücksetzen.“

1 „Gefällt mir“

Cool. Danke für die Hinweise. Das probiere ich mal aus!
Vielen Dank für die Tipps!

Kompilieren tut es auf jeden Fall schon mit Deinen Anpassungen. :slight_smile:

1 „Gefällt mir“

Freut mich, wenn ich helfen konnte :blush:

Ich danke dir…Habe zwar etwas gebraucht aber es klappt nun
gruß Ralph

Oh danke dir :slight_smile: Hab mir den Hack grad für die 3 Tasten Version mit „Zurück+Pause gedrückt“ eingebaut.
Meine Frau hat schon nach der Funktion gefragt.

Hack Hörspiel
if ((pauseButton.pressedFor(LONG_PRESS) || downButton.pressedFor(LONG_PRESS)) && pauseButton.isPressed() && downButton.isPressed()) {
  #ifndef FIVEBUTTONS
   if (myFolder->mode == 5) {
      Serial.print(F("Hörbuch wird von vorne abgespielt"));
      currentTrack = 1;
      EEPROM.update(myFolder->folder, currentTrack);
      mp3.playFolderTrack(myFolder->folder, currentTrack);
    }
  else
   {
         Serial.print(F("Rücksetzen nur im Hörbuchmodus!"));
   }
   #endif
}
1 „Gefällt mir“