*******************************************
* DMXControl 3 DDFs fuer rpi-beamertool   *
*******************************************

Seit der DDF-Vereinfachung gibt es drei eigenstaendige Geraete-DDFs statt
vorher 15 Dateien (1-5 Layer x xml/list/numeric). Jede Datei wird in
DMXControl als eigenes Geraet gepatcht, an einer eigenen DMX-Adresse:

  rpi-beamertool-laser.xml       ein einzelner Laser-Layer, 20 Kanaele
                                  (Kanal 0-19). Mehrfach patchen fuer
                                  mehrere Laser (ANZAHL in config.txt) -
                                  DMXControl haengt dabei automatisch
                                  fortlaufende Kanalbloecke an.

  rpi-beamertool-ModeMedia.xml    Laser-Simulation/Media-Player-Umschaltung,
                                  1 Kanal (Kanal 0 = "Media Scene").

  rpi-beamertool-overlays.xml     Nebel, Laserstrahl-Tunnel, Kachel-Effekt,
                                  Farbverlauf-Raster - 13 zusammenhaengende
                                  Kanaele (Kanal 0-12), in drei <functions>-
                                  Bloecken gruppiert.

-----------------------------
Warum drei Dateien statt einer grossen?
-----------------------------
Vorher wurden alle Zusatz-Effekte (Media Player, Nebel, Kacheln, Farb-
verlauf) als "nackte" Kanaele RELATIV zur Start-Adresse des ersten Lasers
(DMX_START) mitgefuehrt - das fuehrte zu unuebersichtlich vielen Layer-
Varianten (1-5 Layer je 3 Formate = 15 Dateien) und einer wachsenden
Kanalzahl, sobald neue Effekte dazukamen. Die drei eigenstaendigen Geraete
sind unabhaengig von der Laser-Anzahl und lassen sich in DMXControl frei
an beliebigen Adressen patchen - Media-Umschaltung und Effekte muessen
z.B. nicht mehr hinter dem letzten Laser-Kanalblock liegen.

-----------------------------
Passende config.txt-Angaben
-----------------------------
    ANZAHL=5                     # Anzahl gepatchter rpi-beamertool-laser.xml
    DMX_START=340                # Start-Adresse des ERSTEN Lasers in DMXControl
    MEDIA_PLAYER_CHANNEL=100     # Patch-Adresse von rpi-beamertool-ModeMedia.xml (ABSOLUT!)
    FOG_DENSITY_CHANNEL=101      # Patch-Adresse von rpi-beamertool-overlays.xml (ABSOLUT!)

WICHTIG: MEDIA_PLAYER_CHANNEL und FOG_DENSITY_CHANNEL sind seit dieser
Vereinfachung ABSOLUTE DMX-Kanaele (nicht mehr relativ zu DMX_START wie
in frueheren Versionen!) - sie entsprechen genau der Adresse, an der du
das jeweilige DDF in DMXControl patchst. Die Adressbereiche duerfen sich
nicht ueberschneiden:

  Laser 1-5:  340-439 (5 x 20 Kanaele)
  ModeMedia:  100     (1 Kanal)
  Overlays:   101-113 (13 Kanaele)

-----------------------------
rpi-beamertool-laser.xml (Kanal 0-19)
-----------------------------
Siehe Hauptprojekt-README "DMX-Kanallayout" fuer die vollstaendige Tabelle
aller 20 Kanaele (Gobo, Dimmer, Position, Groesse, Rotation, Farbe,
Shutter, Laserstrahl-Faecher, ...).

-----------------------------
rpi-beamertool-ModeMedia.xml (Kanal 0)
-----------------------------
    Kanal 0: "Media Scene"
      Wert 0        = Laser Simulation
      Wert 1-255    = Media Player, waehlt Datei aus ./media/ (alphabetisch
                       sortiert, Einerschritte, Wraparound bei weniger
                       Dateien als DMX-Werten)

Die mitgelieferte rpi-beamertool-ModeMedia.xml ist bewusst generisch: ein
einziger, durchgehender <raw>-Zahlenkanal (0-255), kein <step>-basiertes
Sonder-Label fuer "Laser Simulation" mehr (eine Mischung aus <step> und
<range> im selben Kanal fuehrte bei DMXControl dazu, dass nur der
<step>-Wert waehlbar war, der restliche Bereich blieb gesperrt). Der
Kanal-EDITOR zeigt daher nur eine Zahl 0-255, nicht die Beschriftung
"Laser Simulation" - funktioniert aber ohne Pflege sofort mit jedem
./media/-Inhalt. Wer stattdessen ausgeschriebene
Dateinamen im DMXControl-Kanal-Editor sehen moechte, generiert sich mit
tools/genddflist.sh eine passende, vollstaendige Alternativ-DDF - siehe
"Media-Dateiliste pflegen" unten.

-----------------------------
rpi-beamertool-overlays.xml (Kanal 0-12)
-----------------------------
Drei <functions>-Bloecke, in dieser Reihenfolge:

  Block 1 - Farbverlauf-Raster (Kaleidoskop-Hintergrund):
    Kanal 4  Farbverlauf-Sichtbarkeit       0-255 linear -> 0-100%
    Kanal 5  <matrix rows="2" columns="1"/> zwei Farbpicker (Anfang/Ende),
             belegt implizit Kanal 5-10 (2 x RGB)
    Kanal 11 Farbverlauf-Geschwindigkeit    0-255 linear
    Kanal 12 Farbverlauf-Modus              Schalter: 0-127=Zwei Farben,
                                             128-255=Regenbogen

  Block 2 - Kachel-Effekt (Kaleidoskop-Look):
    Kanal 2  Kachel-Anzahl    Schalter: 0-63=Aus, 64-127=4 (2x2),
                               128-191=16 (4x4), 192-255=64 (8x8)
    Kanal 3  Kachel-Spiegelung Schalter: 0-84=1:1, 85-169=vertikal
                               gespiegelt, 170-255=horizontal gespiegelt

  Block 3 - Nebel & Laserstrahl-Tunnel (Festival-Look):
    Kanal 0  Nebel-Dichte              0-255 linear -> 0-100%
    Kanal 1  Laserstrahl-Sichtbarkeit  0-255 linear -> 0-100%

Details zu allen drei Effekten: Hauptprojekt-README und docs/manual.md.

-----------------------------
Media-Dateiliste pflegen (tools/genprefix.sh, tools/genddflist.sh)
-----------------------------
Standardmaessig zeigt rpi-beamertool-ModeMedia.xml nur eine generische
0-255-Zahlenauswahl (kein Dateiname im DMXControl-Kanal-Editor) - so
lassen sich neue Mediendateien ohne DDF-Pflege sofort nutzen. Wer
stattdessen die ausgeschriebenen Dateinamen im Kanal-Editor sehen
moechte, kann sich mit tools/genddflist.sh eine passende, VOLLSTAENDIGE
DDF-Datei generieren lassen. Zwei Helferskripte (im Hauptprojekt unter
tools/) erleichtern das:

  tools/genprefix.sh
    Im media/-Verzeichnis ausfuehren: nummeriert alle Dateien fortlaufend
    mit einem dreistelligen Prefix (001_, 002_, ...). Neue, spaeter
    hinzugefuegte Dateien bekommen automatisch die naechste freie Nummer,
    ohne bereits vergebene Nummern/Praefixe zu aendern.

        cd /opt/rpi-beamertool/media
        /opt/rpi-beamertool/genprefix.sh

  tools/genddflist.sh [Kanal]
    Erzeugt aus dem aktuellen Inhalt von ./media/ eine komplette,
    eigenstaendig ladbare DDF-Datei "rpi-beamertool-ModeMedia-custom.xml"
    (mit ausgeschriebenen Dateinamen als <step>-Eintraege) im aktuellen
    Verzeichnis. Optionaler Parameter: DMX-Kanal (Standard 0, passend zu
    MEDIA_PLAYER_CHANNEL). Ersetzt rpi-beamertool-ModeMedia.xml
    komplett (nicht gleichzeitig beide DDFs patchen!).

        cd /opt/rpi-beamertool/media
        /opt/rpi-beamertool/genddflist.sh
        mv rpi-beamertool-ModeMedia-custom.xml ../ddf/
