From 1ff360777df36ba9980000823e1131d3e05fdeb7 Mon Sep 17 00:00:00 2001
From: undisclosed
Date: Thu, 05 Jan 2023 17:47:11 +0000
Subject: [PATCH] Baustelle begonnen: StreamHandler
---
src/de/uhilger/tango/api/MediaSteuerung.java | 9 ++++
src/de/uhilger/tango/api/StreamHandler.java | 22 +++++++++++
src/de/uhilger/tango/api/ListFileHandler.java | 41 +++++++++++++++++++-
3 files changed, 70 insertions(+), 2 deletions(-)
diff --git a/src/de/uhilger/tango/api/ListFileHandler.java b/src/de/uhilger/tango/api/ListFileHandler.java
index 2a3b45c..ed3e0fe 100644
--- a/src/de/uhilger/tango/api/ListFileHandler.java
+++ b/src/de/uhilger/tango/api/ListFileHandler.java
@@ -43,8 +43,45 @@
import org.farng.mp3.id3.ID3v1;
/**
- *
- * @author ulrich
+ * Die Klasse ListFileHandler gibt die Media-Inhalte eines Ablageortes
+ * als Liste aus. Audio-Inhalte werden dabei unter Verwendung von
+ * Informationen aus ID3-Tags dargestellt, z.B. Artist, Album, Titel,
+ * sofern solche vorhanden sind. Zudem werden nur diejenigen Inahlte
+ * ausgegeben, die Dateierweiterungen besitzen, wie sie in der FileStorage
+ * unter 'Einstellung' unter audioexts, videoexts und imageexts angegeben
+ * sind (die Namen der Einstellungen sind ueber das Resource Bundle von
+ * Tango ueber RB_AUDIOEXTS, RB_VIDEOEXTS und RB_FOTOEXTS veraenderbar).
+ *
+ * Ein ListFileHandler gibt dann fuer Ordner den Inhalt als Liste aus und
+ * Streamt den Inhalt von Dateien.
+ *
+ * Der ListFileHandler modelliert das Verhalten, das auf der Bedienoberflaeche
+ * von Tango in der Konfiguration als 'Kataloge' angelegt werden kann. Die
+ * HTTP Servicepunkte ergeben sich aus den Ablageort-Objekten die fuer
+ * Kataloge vom Benutzer in der Konfiguration angelegt werden.
+ *
+ * Der vom Benutzer gewaehlte URL eines Ablagortes wird vom ListFileHandler zu
+ * dem Pfad des Ablageortes hin verknuepft. So ergibt sich fuer jeden
+ * ListFileHandler der Endpunkt
+ *
+ * HTTP GET http://mein-server/tango/[Ablageort-URL]/
+ *
+ * Ist z.B. Audio und Video unter dem Pfad /media/extssd/mc abgelegt, kann
+ * ein Ablageort namens 'AV' den URL /media fuer diesen Pfad definieren. Dann verweist
+ *
+ * http://mein-server/tango/media/
+ *
+ * auf den Inhalt unter /media/extssd/mc
+ *
+ * Hierbei wird der Inhalt unter dem Katalognamen 'AV' in der Bedienoberflaeche von
+ * Tango dargestellt, d.h., die Auswahl von 'AV' an der Bedienoberflaeche bewirkt
+ * 'unter der Haube' den Abruf von http://mein-server/tango/media/
+ *
+ * Selbstverstaendlich kann aber dieser URL auch von ueberallher verwendet werden.
+ * Die Verknuepfung zwischen Katalogname und URL besteht nur an der Bedienoberflaeche
+ * von Tango.
+ *
+ * @author Ulrich Hilger
*/
public class ListFileHandler extends FileHandler {
diff --git a/src/de/uhilger/tango/api/MediaSteuerung.java b/src/de/uhilger/tango/api/MediaSteuerung.java
index 441eba7..7c0c3bd 100644
--- a/src/de/uhilger/tango/api/MediaSteuerung.java
+++ b/src/de/uhilger/tango/api/MediaSteuerung.java
@@ -58,6 +58,15 @@
* Faustregel: Anzahl Elemente eines URL plus 1 ist die Anzahl der Elemente des
* Ergebnisses von String.split.
*
+ * Mit der Funktion ende liefert die MediaSteuerung die Moeglichkeit, Titel aus
+ * einer Abspielliste gesteuert von Tango abzuspielen. Die Nutzung der Funktion wird
+ * ausgeloest vom Aufruf an abspieler/play/liste/[name]. Tango erwartet dann von einem
+ * Abspieler die Rueckmeldung, dass dieser den zuletzt von Tango an den
+ * Abspieler zum Abspielen uebermittelten Titel zuende abgespielt hat. Tango
+ * uebergibt dem Abspieler dann den naechsten Titel, bis die Abspielliste zuende ist.
+ *
+ * Diese Form unterscheidet sich vom Abspielen einer Abspielliste als einzelner
+ * Stream, wie es vom StreamHandler realisiert wird.
*
* @author Ulrich Hilger
* @version 1, 9.4.2021
diff --git a/src/de/uhilger/tango/api/StreamHandler.java b/src/de/uhilger/tango/api/StreamHandler.java
new file mode 100644
index 0000000..d19a82c
--- /dev/null
+++ b/src/de/uhilger/tango/api/StreamHandler.java
@@ -0,0 +1,22 @@
+package de.uhilger.tango.api;
+
+/**
+ * Der StreamHandler liefert ganze Abspiellisten als einzelnen Stream aus.
+ * Die in Tango mit dem ListHandler erstellen Abspiellisten werden als ein
+ * zusammenhaengender Stream ausgegeben.
+ *
+ * HTTP GET /tango/api/stream/play/liste/[name]
+ *
+ * HTTP GET /tango/api/stream/pause/liste/[name]
+ * HTTP GET /tango/api/stream/stop/liste/[name]
+ * HTTP GET /tango/api/stream/seek/liste/[name]/[sekunden]
+ *
+ * Die Funktionen des StreamHandlers ergaenzen so die Ausgabe
+ * einzelner Media-Dateien als Stream, wie sie mit dem FileHandler und
+ * seinen Subklassen sowie mit der MediaSteuerung erfolgen.
+ *
+ * @author Ulrich Hilger
+ */
+public class StreamHandler {
+
+}
--
Gitblit v1.9.3