Playmodus für Ordner mit mehreren Folgen (z. B. Drei ? Kids)

So, ich habe das Feature endlich (hatte nur ab und zu Lust/Zeit dran zu arbeiten) soweit fertig, dass es getestet werden kann in einem neuen Branch:

Was nicht geht, das ist der rekursive Playmode als Hörbuch. @Joe91 oder @tueddy könnt ihr vielleicht mal einen Blick drauf werfen? Ich habe jetzt 3h gesucht und finde den Fehler einfach nicht. Also man kann eine Karte mit diesem Playmode anlernen und auch den Abspielvorgang starten. Jedoch bleibt der Led-Ring im IDLE-Mode und darüber hinaus lässt sich die Abspielposition nicht speichern, da der Playmode wohl offenbar wieder auf 0 gesetzt wird. Ich verstehe aber bislang nicht, wo oder wann das passiert. Initial ist er 16 (aka AUDIOBOOK_RECURSIVE).

Die Tiefe der Rekursion ist in den allgemeinen Einstellungen einstellbar (nicht in der settings.h) und wird standardmäßig auf 2 gesetzt. Die Tiefen 1 bis 4 sind im Webinterface einstellbar. Die Ordner-Sprungfunktionen kann man auf beliebige Tasten legen (z. B. via Webinterface).

Nochmal zur Funktionsweise:
Rekursionstiefe 0 heißt, dass keine Unterordner einbezogen werden in die Playlist-Generierung. Entsprechend ist Rekursionstiefe 1 der Einbezug von Unterordnern in der ersten Ebene. Und so geht’s dann halt entsprechend weiter mit mehr Rekursionstiefe.

Beispiel: Gegeben sei folgende Struktur

# Aktion Ergebnis
1 Man lernt eine Karte mit Rekursionstiefe 0 auf der Ebene root an Es werden gar keine Titel abgespielt, da sich in /root keine Titel befinden sondern nur Ordner befinden.
2 Man lernt eine Karte mit Rekursionstiefe 1 auf der Ebene root an. Benutzt wird alphabetische Sortierung. Aufgrund der Rekursionstiefe 1 werden die Unterordner Audiobook1, Audiobook2 und Audiobook3 einbezogen; Subaudiobook3 jedoch nicht.

Es wird eine Playlist mit sechs Titeln generiert und alphabetisch sortiert.

Wird ein Titel aus Audiobook1 abgespielt und man springt einen Ordner nach vorne, so wird als nächstes A2_Track01.mp3 abgespielt.

Wird ein Titel aus Audiobook2 abgespielt und man springt einen Ordner nach vorne, so wird als nächstes A3_Track01.mp3 abgespielt.

Wird ein Titel aus Audiobook3 abgespielt und man springt einen Ordner nach vorne, so wird eine Fehlermeldung angezeigt, dass es bereits der letzte Ordner ist.

Wird ein Titel aus Audiobook3 abgespielt und man springt einen Ordner zurück, so wird als nächstes A2_Track01.mp3 abgespielt.

Wird ein Titel aus Audiobook2 abgespielt und man springt einen Ordner zurück, so wird als nächstes A1_Track01.mp3 abgespielt.

Wird ein Titel aus Audiobook1 abgespielt und man springt einen Ordner zurück, so startet A1_Track01.mp3 von vorne (keine Fehlermeldung).
3 Man lernt eine Karte mit Rekursionstiefe 2 auf der Ebene root an. Benutzt wird alphabetische Sortierung. Aufgrund der Rekursionstiefe 2 werden alle Unterordner einbezogen.

Es wird eine Playlist mit acht Titeln generiert und alphabetisch sortiert.

Ansonsten gleich zu Fall2, jedoch eben ein Unterordner mehr.
4 Man führt Fall 2 bzw. 3 aus, verwendet jedoch eine zufällige Sortierung. Die Playlist ist gleich groß wie bei Fall 2 oder 3.

Wann in den nächsten Ordner gesprungen wird hängt davon ab, wie zufällig die Playlist gewürfelt wurde.

War jetzt alles in allem doch umfangreicher, als ich dachte.
Auf dem Weg ist mir auch noch aufgefallen, dass es beim Speichern der allg. Einstellungen zu Neustarts kommen kann, die offenbar an einem Stack-Overflow des LED-Rings hängen. Ich habe daher den Speicher um 1k vergrößert.

3 „Gefällt mir“