Erweiterung des Hörbuch Modes

Ich möchte euch ein neues Feature vorstellen, dass den Hörbuch Mode betrifft auf auf Anregung von Lucas Romero entstanden ist.

Motivation: Auf der Box sind sehr viele Hörbücher und man möchte eins davon hören. Wie wäre es, wenn man der Box die Auswahl überlassen könnte. Dann spart man sich auch die vielen Karten, eine Karte reicht dafür.

Lösung: Die Modi „Hörbuch“ und Hörbuch einzeln" werden erweitert. Beim Erstellen der Karte kann man zusätzlich zur Auswahl eines Folders noch einen „letzten“ Folder angeben. Beim Auflegen der Karte wird dann zufällig ein Folder in dem Bereich ausgewählt und abgespielt. Natürlich kann man unterbrechen und auch die Box ausschalten. Beim Wiederauflegen der Karte wird dann mit dem angefangenen Hörbuch an der richtigen Stelle fortgesetzt, solange bis das Hörbuch beendet ist. Dann wird wieder zufällig ein neues Hörbuch ausgewählt.

Der Mode ist rückwärts-kompatibel, d.h. die alten Karte funktionieren weiter und spielen nur das eine Hörbuch ab wie auch neu erstellte Karten, bei denen als letzter Folder gleich dem Ersten ist.

Wenn der Tonuino im Play State ist und die selbe Karte wieder aufgelegt wird, wird der Fortschritt für den aktuellen Folder gelöscht, so dass mit dem nächsten zufälligen Folder fortgeführt wird. In allen anderen States (Pause, Idle, …) wird mit der letzten Geschichte an der richtigen Stelle fortgefahren (Achtung: natürlich nur, wenn schon ein Fortschritt gespeichert wurde, also mindestens der zweite Track dran war.

Nun ist das mit dem Zufall so eine Sache, natürlich kann es sein, das ein Hörbuch zweimal oder sogar mehrmals hintereinander ausgewählt wird oder nach einem anderen Hörbuch sofort wieder kommt. Um das zu vermeiden gibt es das optionale Feature „Folder Queue“. Dies kann in der Datei constants.hpp mittels Define FOLDER_QUEUE_HOERBUCH eingeschaltet werden. Empfehlen kann ich das aber nicht für den Nano, da hier der RAM zu klein ist und es zu Stack-Overflows kommen kann. Mit diesem Feature wird am Anfang eine Folder Queue in zufälliger Reihenfolge erstellt, die dann abgearbeitet wird. Die Queue ist leider nicht persistent, d.h. nach einem Neustart der Box wir die Queue neu erstellt.

Das Ganze ist auf dem Branch issue_319 implementiert und wartet auf Interessierte und Tester. Achtung: im mp3 Folder auf der SD Karte ist eine neue Datei hinzugekommen.