From 43d323fa088153082a33966b19d81e9169cc7bf2 Mon Sep 17 00:00:00 2001
From: undisclosed
Date: Sat, 21 Jan 2023 16:25:28 +0000
Subject: [PATCH] Experimentell: m3u

---
 src/de/uhilger/tango/api/ListFileHandler.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 50 insertions(+), 6 deletions(-)

diff --git a/src/de/uhilger/tango/api/ListFileHandler.java b/src/de/uhilger/tango/api/ListFileHandler.java
index 3aed9e0..ed3e0fe 100644
--- a/src/de/uhilger/tango/api/ListFileHandler.java
+++ b/src/de/uhilger/tango/api/ListFileHandler.java
@@ -43,10 +43,51 @@
 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 {
+  
+  public static final String RB_AUDIOEXTS = "audioexts";
+  public static final String RB_VIDEOEXTS = "videoexts";
+  public static final String RB_FOTOEXTS = "imageexts";
   
   /* Der Logger fuer diesen ListFileHandler */
   private static final Logger logger = Logger.getLogger(ListFileHandler.class.getName());
@@ -58,7 +99,9 @@
   
   Map extMap = new HashMap();
   
-  public ListFileHandler(String absoluteDirectoryPathAndName) {
+  private String conf;
+  
+  public ListFileHandler(String absoluteDirectoryPathAndName, String conf) {
     super(absoluteDirectoryPathAndName);
     /*
       Ermittlung von Dateifiltern. 
@@ -66,9 +109,10 @@
       jeweils als Dateierweiterungen mit Komma getrennt
       z.B. "mp4,m4v"
     */
-    FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
-    initMap(fs, App.getRs(App.RB_AUDIOEXTS), StorageFile.TYP_AUDIO);
-    initMap(fs, App.getRs(App.RB_VIDEOEXTS), StorageFile.TYP_VIDEO);
+    FileStorage fs = new FileStorage(conf);
+    initMap(fs, getResString(RB_AUDIOEXTS), StorageFile.TYP_AUDIO);
+    initMap(fs, getResString(RB_VIDEOEXTS), StorageFile.TYP_VIDEO);
+    initMap(fs, getResString(RB_FOTOEXTS), StorageFile.TYP_FOTO);
   }
 
   private void initMap(Storage s, String key, String typ) {

--
Gitblit v1.9.3