Text2skin-Skin Referenz

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Allgemein)
 
(52 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Box Hinweis|
 
Diese Dokumentation gilt für die "1.0" Version des [[text2skin-plugin]]s.
 
}}
 
 
Dies ist eine Kurzreferenz des auf XML-basierenden Skin-Formates des [[text2skin-plugin|text2skin]] Plugins.
 
Dies ist eine Kurzreferenz des auf XML-basierenden Skin-Formates des [[text2skin-plugin|text2skin]] Plugins.
  
Zeile 20: Zeile 17:
 
* relative
 
* relative
 
* absolute  
 
* absolute  
| Kennzeichnet, ob das Skin relativ (relative) zum VDR-Setup oder absolut (absolute) auf einer Fläche von 720x576 zeichnen soll
+
| Kennzeichnet, ob das Skin relativ (relative) zum VDR-Setup (OSD links, oben, Breite, Höhe) oder absolut (absolute) auf eine Fläche von 720x576 gezeichnet werden soll
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
 
!Beispiel
 
!Beispiel
Zeile 51: Zeile 48:
 
* replaySmall
 
* replaySmall
 
* menu
 
* menu
 +
* audioTracks
 
| Bezeichnet den Typ der OSD-Darstellung
 
| Bezeichnet den Typ der OSD-Darstellung
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
Zeile 69: Zeile 67:
  
 
===<window>===
 
===<window>===
Jeder Display-Container beginnt mit der Vorgabe von Zeichenflächen, auf denen dann die Elemente plaziert werden können.
+
Jeder Display-Container beginnt mit der Vorgabe von Zeichenflächen, auf denen dann die Elemente platziert werden können.
 
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
 
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
Zeile 84: Zeile 82:
 
| y2  || ZAHL || Position der unteren Kante  
 
| y2  || ZAHL || Position der unteren Kante  
 
|-
 
|-
| bpp || ZAHL || Farbtiefe des Zeichenfläche
+
| bpp || ZAHL || Farbtiefe des Zeichenfläche, 4 = 16Farben, 8 = 256Farben
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
 
!Beispiel
 
!Beispiel
Zeile 121: Zeile 119:
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
|-
 
|-
| [[Text2skin-Skin_Referenz#color|color]] || STRING        || Farbe des Rechtecks
+
| color                                   || STRING        || Füllfarbe des Rechtecks
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
 
!Beispiel
 
!Beispiel
Zeile 132: Zeile 130:
  
 
===<ellipse>===
 
===<ellipse>===
Zeichnet einen (Teil-)Kreis, oder eine Ellipse.
+
Zeichnet einen gefüllten Kreis, eine Ellipse oder Teile davon.
 
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
 
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
Zeile 143: Zeile 141:
 
| y1                                      || ZAHL          || Position der oberen Kante
 
| y1                                      || ZAHL          || Position der oberen Kante
 
|-
 
|-
| y2                                     || ZAHL          || Position der rechten Kante
+
| x2                                     || ZAHL          || Position der rechten Kante
 
|-
 
|-
| x2                                     || ZAHL          || Position der unteren Kante
+
| y2                                     || ZAHL          || Position der unteren Kante
 
|-
 
|-
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
|-
 
|-
| [[Text2skin-Skin_Referenz#color|color]] || STRING        || Farbe der Ellipse
+
| color                                   || STRING        || Füllfarbe der Ellipse
 
|-
 
|-
| [[Text2skin-Skin_Referenz#arc|arc]]    || ZAHL          || Kreisbogen
+
| arc                                     || ZAHL          || Kreisbogen
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
 
!Beispiel
 
!Beispiel
Zeile 179: Zeile 177:
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
|-
 
|-
| [[Text2skin-Skin_Referenz#color|color]] || STRING        || Farbe der Kurve
+
| color                                   || STRING        || Farbe der Kurve
 
|-
 
|-
| [[Text2skin-Skin_Referenz#arc|arc]]    || ZAHL          || Richtung
+
| arc                                     || ZAHL          || Richtung
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
 
!Beispiel
 
!Beispiel
Zeile 188: Zeile 186:
 
|-
 
|-
 
|colspan=3|
 
|colspan=3|
;-(
+
  <slope x1="10" x2="100" y1="10" y2="100" arc="1" color="#CC000066" />
 
|}
 
|}
  
Zeile 213: Zeile 211:
 
| condition                                || FUNKTION/TOKEN || Komplexe Bedingung
 
| condition                                || FUNKTION/TOKEN || Komplexe Bedingung
 
|-
 
|-
| alpha                                    || ZAHL          || Überlagerte [[Text2skin-Skin_Referenz#color|Transparenz]] von 0-255
+
| alpha                                    || ZAHL          || Überlagerte Transparenz von 0-255
 
|-
 
|-
 
| colors                                    || ZAHL          || Maximale Anzahl der Farben im Ergebnisbild (wenn skaliert werden soll)
 
| colors                                    || ZAHL          || Maximale Anzahl der Farben im Ergebnisbild (wenn skaliert werden soll)
 
|-
 
|-
| [[Text2skin-Skin_Referenz#color|color]]  || STRING        || Austauschfarbe für Farbe 1 des Bildes
+
| color                                     || STRING        || Austauschfarbe für Farbe 1 des Bildes
 
|-
 
|-
| [[Text2skin-Skin_Referenz#color|bgColor]] || STRING        || Austauschfarbe für Farbe 0 des Bildes
+
| bgColor                                   || STRING        || Austauschfarbe für Farbe 0 des Bildes
 +
|-
 +
| maskColor                                || STRING        || Maskenfarbe (wird beim Zeichnen ausgelassen)
 
|-
 
|-
 
| path                                      || STRING/TOKEN  || Pfad zur Bilddatei
 
| path                                      || STRING/TOKEN  || Pfad zur Bilddatei
Zeile 244: Zeile 244:
 
| y1                                      || ZAHL          || Position der oberen Kante
 
| y1                                      || ZAHL          || Position der oberen Kante
 
|-
 
|-
| y2                                     || ZAHL          || Position der rechten Kante
+
| x2                                     || ZAHL          || Position der rechten Kante
 
|-
 
|-
| x2                                     || ZAHL          || Position der unteren Kante
+
| y2                                     || ZAHL          || Position der unteren Kante
 
|-
 
|-
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
|-
 
|-
| [[Text2skin-Skin_Referenz#color|color]] || STRING        || Textfarbe
+
| color                                   || STRING        || Textfarbe
 
|-
 
|-
 
| align                                  ||  
 
| align                                  ||  
Zeile 326: Zeile 326:
 
| [[Text2skin-Skin_Referenz#color|color]]      || STRING        || Textfarbe
 
| [[Text2skin-Skin_Referenz#color|color]]      || STRING        || Textfarbe
 
|-
 
|-
| [[Text2skin-Skin_Referenz#color|blinkColor]] || STRING        || Highlightfarbe
+
| [[Text2skin-Skin_Referenz#color|blinkColor]] || STRING        || Highlightfarbe (Optional: Ansonsten wird an/aus geblinkt)
 
|-
 
|-
 
| delay                                        || ZAHL          || Pause zwischen Umschalten
 
| delay                                        || ZAHL          || Pause zwischen Umschalten
Zeile 343: Zeile 343:
 
|-
 
|-
 
|colspan=3|
 
|colspan=3|
  ;-(
+
  <blink x1="30" x2="80" y1="90" y2="80" color="Text" blinkColor="Green" delay="800" font="Sml"
 +
        condition="{IsRunning}">{PresentStartDateTime:%H\:%M}</blink>
 
|}
 
|}
  
Zeile 358: Zeile 359:
 
| y1                                      || ZAHL          || Position der oberen Kante
 
| y1                                      || ZAHL          || Position der oberen Kante
 
|-
 
|-
| y2                                     || ZAHL          || Position der rechten Kante
+
| x2                                     || ZAHL          || Position der rechten Kante
 
|-
 
|-
| x2                                     || ZAHL          || Position der unteren Kante
+
| y2                                     || ZAHL          || Position der unteren Kante
 
|-
 
|-
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
| condition                              || FUNKTION/TOKEN || Komplexe Bedingung
 
|-
 
|-
| [[Text2skin-Skin_Referenz#color|color]] || STRING        || Farbe des Textes
+
| color                                   || STRING        || Farbe des Textes
 
|-
 
|-
 
| align                                  ||  
 
| align                                  ||  
Zeile 372: Zeile 373:
 
| Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig)
 
| Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig)
 
|-
 
|-
| [[Text2skin-Skin_Referenz#font|font]]  || STRING        || Name des Fonts
+
| font                                   || STRING        || Name des Fonts
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
 
!Beispiel
 
!Beispiel
Zeile 397: Zeile 398:
 
| y1                                        || ZAHL          || Position der oberen Kante
 
| y1                                        || ZAHL          || Position der oberen Kante
 
|-
 
|-
| y2                                       || ZAHL          || Position der rechten Kante
+
| x2                                       || ZAHL          || Position der rechten Kante
 
|-
 
|-
| x2                                       || ZAHL          || Position der unteren Kante
+
| y2                                       || ZAHL          || Position der unteren Kante
 
|-
 
|-
 
| condition                                || FUNKTION/TOKEN || Komplexe Bedingung
 
| condition                                || FUNKTION/TOKEN || Komplexe Bedingung
Zeile 427: Zeile 428:
 
| y1                                        || ZAHL          || Position der oberen Kante
 
| y1                                        || ZAHL          || Position der oberen Kante
 
|-
 
|-
| y2                                       || ZAHL          || Position der rechten Kante
+
| x2                                       || ZAHL          || Position der rechten Kante
 
|-
 
|-
| x2                                       || ZAHL          || Position der unteren Kante
+
| y2                                       || ZAHL          || Position der unteren Kante
 
|-
 
|-
 
| condition                                || FUNKTION/TOKEN || Komplexe Bedingung
 
| condition                                || FUNKTION/TOKEN || Komplexe Bedingung
Zeile 457: Zeile 458:
  
 
===<block>===
 
===<block>===
Ein '''<block></block>''' fasst mehrere Objekte zusammen (nicht rekursiv möglich!)
+
Ein '''<block></block>''' fasst mehrere Objekte zusammen
 
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
 
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
Zeile 489: Zeile 490:
 
| y1        || ZAHL          || Position der oberen Kante
 
| y1        || ZAHL          || Position der oberen Kante
 
|-     
 
|-     
| y2       || ZAHL          || Position der rechten Kante
+
| x2       || ZAHL          || Position der rechten Kante
 
|-
 
|-
| x2       || ZAHL          || Position der unteren Kante
+
| y2       || ZAHL          || Position der unteren Kante
 
|-
 
|-
 
| condition || FUNKTION/TOKEN || Komplexe Bedingung (möglich, macht aber wenig Sinn)
 
| condition || FUNKTION/TOKEN || Komplexe Bedingung (möglich, macht aber wenig Sinn)
Zeile 546: Zeile 547:
 
|-
 
|-
 
| DateTime              || (s.h. "man strftime")            || Aktuelles Datum/Uhrzeit
 
| DateTime              || (s.h. "man strftime")            || Aktuelles Datum/Uhrzeit
 +
|-
 +
| IsRecording            ||                                  || Wahr wenn eine Aufzeichnung stattfindet
 
|-
 
|-
 
| CurrentRecording      ||                                  || Liefert im Zwei-Sekunden-Takt alle aktuell laufenden Aufnahmen<br/>Attribut: Zahl, um n-te laufende Aufnahme zu wählen
 
| CurrentRecording      ||                                  || Liefert im Zwei-Sekunden-Takt alle aktuell laufenden Aufnahmen<br/>Attribut: Zahl, um n-te laufende Aufnahme zu wählen
 
|-
 
|-
 
| FreeDiskSpace          ||                                  || Aktueller Restspeicherplatz als Zahl in MB<br/>Attribut: Rückgabe als formatierte Zeit
 
| FreeDiskSpace          ||                                  || Aktueller Restspeicherplatz als Zahl in MB<br/>Attribut: Rückgabe als formatierte Zeit
|-
 
| AudioTrack            ||                                  || Bezeichnung des aktuell eingestellten Audio-Track
 
|-
 
| AudioChannel          ||                                  || Bezeichnung des geschalteten Kanals ("stereo", "left" oder "right")
 
 
|}
 
|}
  
Zeile 592: Zeile 591:
 
|-
 
|-
 
| PresentDescription    || (* auch in [[#Menu Display]])    || Beschreibung des aktuellen Titels
 
| PresentDescription    || (* auch in [[#Menu Display]])    || Beschreibung des aktuellen Titels
 +
|-
 +
| PresentHasTimer (alt: HasTimer)|| (* auch in [[#Menu Display]])|| Wahr wenn der aktuelle Titel von einem Timer erfasst wird
 +
|-
 +
| PresentIsRunning (alt: IsRunning)|| (* auch in [[#Menu Display]])|| Wahr wenn der aktuelle Titel den Status "running" hat
 +
|-
 +
| PresentHasVPS          || (* auch in [[#Menu Display]])    || Wahr wenn die Sendung eine eigene VPS-Zeit hat
 
|-
 
|-
 
| FollowingStartDateTime ||                                  || Startzeit des folgenden Titels
 
| FollowingStartDateTime ||                                  || Startzeit des folgenden Titels
Zeile 606: Zeile 611:
 
|-
 
|-
 
| FollowingDescription  ||                                  || Beschreibung des folgenden Titels
 
| FollowingDescription  ||                                  || Beschreibung des folgenden Titels
 +
|-
 +
| FollowingHasTimer      ||                                  || Wahr wenn der folgende Titel von einem Timer erfasst wird
 +
|-
 +
| FollowingIsRunning    ||                                  || Wahr wenn der folgende Titel den Status "running" hat
 +
|-
 +
| FollowingHasVPS        ||                                  || Wahr wenn der folgende Titel eine eigene VPS-Zeit hat
 
|-
 
|-
 
| ButtonRed              || (* auch in [[#Menu Display]], [[#Replay Display]])    ||  Beschriftung des roten Buttons, wenn vorhanden
 
| ButtonRed              || (* auch in [[#Menu Display]], [[#Replay Display]])    ||  Beschriftung des roten Buttons, wenn vorhanden
Zeile 617: Zeile 628:
 
| Language              ||                                  || Sprache (noch nur "Audio 1", "Audio 2" oder "Digital Audio")
 
| Language              ||                                  || Sprache (noch nur "Audio 1", "Audio 2" oder "Digital Audio")
 
|-
 
|-
| HasTeletext           ||                                 || Wahr wenn der Sender Videotext ausstrahlt
+
| ChannelHasTeletext (alt: HasTeletext)||                   || Wahr wenn der Sender Videotext ausstrahlt
 
|-
 
|-
| HasMultilang           ||                                 || Wahr wenn der Sender mehrere Tonspuren ausstrahlt
+
| ChannelHasMultilang (alt: HasMultilang)||                 || Wahr wenn der Sender mehrere Tonspuren ausstrahlt
|-
+
| HasDolby              ||                                  || Wahr wenn der Sender Mehrkanal-Digitalton ausstrahlt
+
|-
+
| IsEncrypted            ||                                  || Wahr wenn der Sender verschlüsselt ist
+
|-
+
| IsRadio                ||                                  || Wahr wenn der Sender ein Radiosender ist
+
|-
+
| IsRecording            ||                                  || Wahr wenn eine Aufzeichnung stattfindet
+
 
|-
 
|-
| HasVPS                || (* auch in [[#Menu Display]])   || Wahr wenn der Sender VPS ausstrahlen kann
+
| ChannelHasDolby (alt: HasDolby)||                          || Wahr wenn der Sender Mehrkanal-Digitalton ausstrahlt
 
|-
 
|-
| HasTimer              || (* auch in [[#Menu Display]])   || Wahr wenn der aktuelle Titel von einem Timer erfasst wird
+
| ChannelIsEncrypted (alt: IsEncrypted)||                    || Wahr wenn der Sender verschlüsselt ist
 
|-
 
|-
| IsRunning              || (* auch in [[#Menu Display]])   || Wahr wenn der aktuelle Titel den Status "running" hat
+
| ChannelIsRadio (alt: IsRadio)||                            || Wahr wenn der Sender ein Radiosender ist
 
|-
 
|-
| CurrentRecording      || (* auch in allen anderen Displays) || Liefert im Zwei-Sekunden-Takt alle aktuell laufenden Aufnahmen
+
| ChannelHasVPS (alt: HasVPS)||                             || Wahr wenn der Sender VPS ausstrahlen kann
 
|}
 
|}
  
Zeile 649: Zeile 652:
 
| VolumeTotal            ||                                  || Maximaler Lautstärkewert
 
| VolumeTotal            ||                                  || Maximaler Lautstärkewert
 
|-
 
|-
| IsMute                 ||                                 || Wahr wenn Stummschaltung aktiv ist
+
| VolumeIsMute (alt: IsMute)||                               || Wahr wenn Stummschaltung aktiv ist
 
|}
 
|}
  
Zeile 677: Zeile 680:
 
!width=80%|Beschreibung
 
!width=80%|Beschreibung
 
|-
 
|-
| ReplayTitle            ||                                 || Titel der aktuell laufenden Wiedergabe
+
| ReplayTitle            || Attribut: clean                  || Titel der aktuell laufenden Wiedergabe
 
|-
 
|-
 
| ReplayPositionIndex    ||                                  || Position in der Wiedergabe (numerisch, analog zu PresentProgress)
 
| ReplayPositionIndex    ||                                  || Position in der Wiedergabe (numerisch, analog zu PresentProgress)
Zeile 687: Zeile 690:
 
| ReplayPrompt          ||                                  || Eingabeaufforderung, wenn vorhanden (z.B. "Springen: --:--")
 
| ReplayPrompt          ||                                  || Eingabeaufforderung, wenn vorhanden (z.B. "Springen: --:--")
 
|-
 
|-
| IsPlaying             ||                                 || Wahr wenn die Wiedergabe normal abläuft
+
| ReplayIsPlaying (alt: IsPlaying)|| Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal || Wahr wenn die Wiedergabe normal abläuft
 
|-
 
|-
| IsFastForward         ||                                 || Wahr wenn schneller Vorlauf aktiv ist
+
| ReplayIsFastForward (alt: IsFastForward)|| Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal || Wahr wenn schneller Vorlauf aktiv ist
 
|-
 
|-
| IsFastRewind           ||                                 || Wahr wenn schneller Rücklauf aktiv ist
+
| ReplayIsFastRewind (alt: IsFastRewind)|| Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal || Wahr wenn schneller Rücklauf aktiv ist
 
|-
 
|-
| IsSlowForward         ||                                 || Wahr wenn Vorwärts-Zeitlupe aktiv ist
+
| ReplayIsSlowForward (alt: IsSlowForward)|| Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal || Wahr wenn Vorwärts-Zeitlupe aktiv ist
 
|-
 
|-
| IsSlowRewind           ||                                 || Wahr wenn Rückwärts-Zeitlupe aktiv ist
+
| ReplayIsSlowRewind (alt: IsSlowRewind)|| Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal || Wahr wenn Rückwärts-Zeitlupe aktiv ist
 
|-
 
|-
| IsPausing             ||                                 || Wahr wenn die Wiedergabe pausiert ist
+
| ReplayIsPausing (alt: IsPausing)||                         || Wahr wenn die Wiedergabe pausiert ist
 
|-
 
|-
 
| ReplayPosition        ||                                  || Position in der Wiedergabe, fertig formatiert, mit Frames auf Schnittmarken, sonst ohne Frames
 
| ReplayPosition        ||                                  || Position in der Wiedergabe, fertig formatiert, mit Frames auf Schnittmarken, sonst ohne Frames
Zeile 712: Zeile 715:
 
|-
 
|-
 
| ButtonBlue            || (* auch in [[#Channel Display]], [[#Menu Display]]) || Text des blauen Button, wenn vorhanden
 
| ButtonBlue            || (* auch in [[#Channel Display]], [[#Menu Display]]) || Text des blauen Button, wenn vorhanden
 +
|-
 +
| ReplayIsShuffle        ||                                  || Wahr wenn die Wiedergabe im Zufalls-Modus ist (derzeit nur MP3)
 +
|-
 +
| ReplayIsLoop          ||                                  || Wahr wenn die Wiedergabe im Wiederholungs-Modus ist (derzeit nur MP3)
 
|}
 
|}
  
Zeile 721: Zeile 728:
 
!width=80%|Beschreibung
 
!width=80%|Beschreibung
 
|-
 
|-
| MenuTitle              || Attribut: "clean"               || Titelzeile der Menüseite oder gefilterter Titel mit "clean"
+
| MenuTitle              || Attribut: "clean", "rest"        || Titelzeile der Menüseite oder gefilterter Titel mit "clean", oder Rest des gefilterten Titels mit "rest"
 
|-
 
|-
 
| MenuGroup              ||                                  || Text des aktuellen Listeneintrags, wenn es sich um eine Gruppe/Trenner handelt
 
| MenuGroup              ||                                  || Text des aktuellen Listeneintrags, wenn es sich um eine Gruppe/Trenner handelt
Zeile 767: Zeile 774:
 
| PresentDescription    || (* auch in [[#Channel Display]]) ||  
 
| PresentDescription    || (* auch in [[#Channel Display]]) ||  
 
|-
 
|-
| HasVPS                || (* auch in [[#Channel Display]]) ||  
+
| PresentHasVPS          || (* auch in [[#Channel Display]]) ||  
 
|-
 
|-
| HasTimer               || (* auch in [[#Channel Display]]) ||  
+
| PresentHasTimer (alt: HasTimer)|| (* auch in [[#Channel Display]]) ||  
 
|-
 
|-
| IsRunning             || (* auch in [[#Channel Display]]) ||  
+
| PresentIsRunning (alt: IsRunning)|| (* auch in [[#Channel Display]]) ||  
 +
|-
 +
| ChannelHasVPS (alt: HasVPS)|| (* auch in [[#Channel Display]]) ||
 +
|}
 +
 
 +
===Audio Tracks Display===
 +
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
 +
|- bgcolor=#efefef
 +
!width=20%|Token
 +
!width=20%|Bemerkung
 +
!width=80%|Beschreibung
 +
|-
 +
| MenuTitle              ||                                  || Titelzeile der Audiotrack-Liste
 +
|-
 +
| AudioTrack            || (* auch in allen anderen Displays)|| Bezeichnung des aktuell eingestellten Audio-Track
 +
|-
 +
| AudioChannel          || (* auch in allen anderen Displays)|| Bezeichnung des geschalteten Kanals ("stereo", "left" oder "right")
 
|}
 
|}
  
Zeile 790: Zeile 813:
 
Wahr, wenn beide Parameter gleich sind.
 
Wahr, wenn beide Parameter gleich sind.
 
  equal('Kanäle', trans('Channels'))
 
  equal('Kanäle', trans('Channels'))
 +
 +
===ne===
 +
Wahr, wenn beide Parameter ungleich (not equal) sind.
 +
ne({ReplayMode}, 'normal')
 +
 +
===gt===
 +
Wahr, wenn der erste Parameter größer als (greater than) der zweite ist.
 +
  gt({FreeDiskSpace},5000)
 +
 +
===ge===
 +
Wahr, wenn der erste Parameter größer oder gleich (greater/equal) dem zweiten ist.
 +
  ge({FreeDiskSpace},5000)
 +
 +
===lt===
 +
Wahr, wenn der erste Parameter kleiner als (less than) der zweite ist.
 +
  lt({FreeDiskSpace},5000)
 +
 +
===le===
 +
Wahr, wenn der erste Parameter kleiner oder gleich (less/equal) dem zweiten ist.
 +
  le({FreeDiskSpace},5000)
  
 
===file===
 
===file===
Zeile 800: Zeile 843:
  
 
==Attribute==
 
==Attribute==
 +
===x/y Koordinaten===
 +
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
 +
|- bgcolor=#efefef
 +
!width=10%|Attribut
 +
!width=10%|Wertebereich
 +
!width=40%|Bedeutung absolute Mode
 +
!width=40%|Bedeutung relative Mode
 +
|-
 +
| x1  || -720..-1, 0..+719  || links, bezogen auf Gesamtfläche || links, bezogen auf OSD Position
 +
|-
 +
| y1  || -576..-1, 0..+575  || oben,  bezogen auf Gesamtfläche || oben,  bezogen auf OSD Position
 +
|-
 +
| x2  || -720..-1, 0..+719  || rechts bezogen auf Gesamtfläche || links, bezogen auf OSD Position
 +
|-
 +
| y2  || -576..-1, 0..+575  || unten  bezogen auf Gesamtfläche || links, bezogen auf OSD Position
 +
|-
 +
| x    || -720..-1, 0..+719  || links (unscaliert), bezogen auf Gesamtfläche || links (unscaliert), bezogen auf OSD Position
 +
|-
 +
| y    || -576..-1, 0..+575  || oben  (unscaliert), bezogen auf Gesamtfläche || oben  (unscaliert), bezogen auf OSD Position
 +
|}
 +
 +
Die Koordinaten x1, y1, x2, y2, x, y beziehen sich im 'absolute' Mode auf die gesamte darstellbare Bildfläche von 720x576 Pixeln. Im 'relative' Mode beziehen sich alle Angaben stattdessen auf die OSD-Fläche, welche je nach Einstellungen im VDR-Setup (OSD Links, Rechts, Höhe, Breite, 4:3, 16:9) in Größe und Position variiert. Positive Werte (inklusive Null) für x{n} und y{n} sind als Offset zur linken oberen Ecke zu verstehen, negative Werte als Offset zur rechten unteren Ecke. x-Werte sind horizontale Angaben, y-Werte vertikale.
 +
 +
{{Box Hinweis|
 +
Wenn möglich sollten Skins im 'relative' Mode mit x1, y1, x, y als positiven Werten angegeben werden und x2, y2 als negativen Werten. So wird gewährleistet, dass das erstellte Skin immer vollständig dargestellt werden kann.
 +
}}
 +
 
===arc===
 
===arc===
 
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
 
{| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;"
Zeile 828: Zeile 898:
 
|      || -1..-8 || Bei ellipse: s.o., invertiert  ||  
 
|      || -1..-8 || Bei ellipse: s.o., invertiert  ||  
 
|}
 
|}
 +
[[Bild: Skin-ref-01.jpg|thumb|left|50px|]]
 +
[[Bild: Skin-ref-02.jpg|thumb|left|20px|]]
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
Abbildungen der Formen von Ellipse und Slope siehe Thumbnails.
  
 
===color===
 
===color===
Zeile 867: Zeile 950:
 
oder, bei Truetype-Fonts, den Font-Dateinamen und die gewünschte Größe und Breite (optional)
 
oder, bei Truetype-Fonts, den Font-Dateinamen und die gewünschte Größe und Breite (optional)
 
  font="helmetr.ttf:Größe[,Breite]"
 
  font="helmetr.ttf:Größe[,Breite]"
an
+
an.
 +
 
 +
[[Kategorie:XML-Skins]]
 +
[[Kategorie:Entwicklung]]

Aktuelle Version vom 29. August 2013, 21:22 Uhr

Dies ist eine Kurzreferenz des auf XML-basierenden Skin-Formates des text2skin Plugins.

Inhaltsverzeichnis

[Bearbeiten] Elemente

[Bearbeiten] <skin>

Dies ist das Wurzelelement des Skins. Alle weiteren Elemente liegen verschachtelt in diesem.

Attribut Wert Beschreibung
version VERSION Version des Skin-Formates (fester Wert, aktuell "1.0")
name NAME Name der im VDR-OSD erscheinen soll
screenBase
  • relative
  • absolute
Kennzeichnet, ob das Skin relativ (relative) zum VDR-Setup (OSD links, oben, Breite, Höhe) oder absolut (absolute) auf eine Fläche von 720x576 gezeichnet werden soll
Beispiel
<?xml version="1.0"?>
<skin version="1.0" name="brushed Aluminium" screenBase="relative">
  .
  .
  .
</skin>

[Bearbeiten] <display>

Das OSD von VDR hat mehrere "Darstellungen". Die wichtigsten wären das Hauptmenu und die Kanalinfo-Anzeige. Für jeden Bereich, der mit dem Skin gestaltet werden soll muss ein <display> Container erstellt werden.

Attribut Wert Beschreibung
id
  • channelInfo
  • channelSmall
  • volume
  • message
  • replayInfo
  • replaySmall
  • menu
  • audioTracks
Bezeichnet den Typ der OSD-Darstellung
Beispiel
<?xml version="1.0"?>
<skin version="1.0" name="brushed Aluminium" screenBase="relative">
  <display id="replayInfo">
   .
   .
   .
  </display>
</skin>

[Bearbeiten] <window>

Jeder Display-Container beginnt mit der Vorgabe von Zeichenflächen, auf denen dann die Elemente platziert werden können.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
x2 ZAHL Position der rechten Kante
y2 ZAHL Position der unteren Kante
bpp ZAHL Farbtiefe des Zeichenfläche, 4 = 16Farben, 8 = 256Farben
Beispiel
<?xml version="1.0"?>
<skin version="1.0" name="brushed Aluminium" screenBase="relative">
  <display id="replayInfo">
    <window x1="0" x2="619" y1="-113" y2="-84" bpp="4" />
    <window x1="20" x2="99" y1="-83" y2="-44" bpp="4" />
     .
     .
     .
  </display>
</skin>

[Bearbeiten] <rectangle>

Zeichnet ein gefülltes Rechteck.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
x2 ZAHL Position der rechten Kante
y2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung
color STRING Füllfarbe des Rechtecks
Beispiel
<rectangle x1="20" x2="99" y1="-83" y2="-44" color="#00000000" />

[Bearbeiten] <ellipse>

Zeichnet einen gefüllten Kreis, eine Ellipse oder Teile davon.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
x2 ZAHL Position der rechten Kante
y2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung
color STRING Füllfarbe der Ellipse
arc ZAHL Kreisbogen
Beispiel
<ellipse x1="5" y1="7" x2="14" y2="15" color="GraphLight" condition="{IsMenuCurrent}"/>

[Bearbeiten] <slope>

Eine Kurve.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
y2 ZAHL Position der rechten Kante
x2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung
color STRING Farbe der Kurve
arc ZAHL Richtung
Beispiel
 <slope x1="10" x2="100" y1="10" y2="100" arc="1" color="#CC000066" />

[Bearbeiten] <image>

Anzeige eines Bildes

Attribut Wert Beschreibung
x ZAHL Position der linken Kante (keine Skalierung)
y ZAHL Position der oberen Kante (keine Skalierung)
x1 ZAHL Position der linken Kante (wenn skaliert werden soll)
y1 ZAHL Position der oberen Kante (wenn skaliert werden soll)
x2 ZAHL Position der rechten Kante (wenn skaliert werden soll)
y2 ZAHL Position der unteren Kante (wenn skaliert werden soll)
condition FUNKTION/TOKEN Komplexe Bedingung
alpha ZAHL Überlagerte Transparenz von 0-255
colors ZAHL Maximale Anzahl der Farben im Ergebnisbild (wenn skaliert werden soll)
color STRING Austauschfarbe für Farbe 1 des Bildes
bgColor STRING Austauschfarbe für Farbe 0 des Bildes
maskColor STRING Maskenfarbe (wird beim Zeichnen ausgelassen)
path STRING/TOKEN Pfad zur Bilddatei
Beispiel
<image x="0" y="-70" path="Aluminium_volumebar.png" />
<image x="585" y="138" condition="{CanScrollUp}" path="symbols/arrowup.xpm" color="#AFFFFF00" />

[Bearbeiten] <text>

Ein statischer oder zusammengesetzter Text.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
x2 ZAHL Position der rechten Kante
y2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung
color STRING Textfarbe
align
  • center
  • right
  • left
Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig)
font STRING Name des Fonts
Beispiel
<text x1="42" x2="571" y1="-113" y2="-86" color="#FF000000" font="Osd">{ReplayTitle}</text>

[Bearbeiten] <marquee>

Alternative zu <text>. Scrollt überlange Texte hin und her.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
y2 ZAHL Position der rechten Kante
x2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung
color STRING Textfarbe
delay ZAHL Verzögerung des Scrollens in ms (Laufgeschwindigkeit)
align
  • center
  • right
  • left
Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig)
font STRING Name des Fonts
Beispiel
<marquee x1="130" x2="480" y1="423" y2="445" color="Text" font="Sml">{ReplayTitle}</marquee>

[Bearbeiten] <blink>

Alternative zu <text>. Stellt Text blinkend dar.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
y2 ZAHL Position der rechten Kante
x2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung
color STRING Textfarbe
blinkColor STRING Highlightfarbe (Optional: Ansonsten wird an/aus geblinkt)
delay ZAHL Pause zwischen Umschalten
align
  • center
  • right
  • left
Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig)
font STRING Name des Fonts
Beispiel
<blink x1="30" x2="80" y1="90" y2="80" color="Text" blinkColor="Green" delay="800" font="Sml"
       condition="{IsRunning}">{PresentStartDateTime:%H\:%M}</blink>

[Bearbeiten] <scrolltext>

Ein mehrzeiliger Text.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
x2 ZAHL Position der rechten Kante
y2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung
color STRING Farbe des Textes
align
  • center
  • right
  • left
Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig)
font STRING Name des Fonts
Beispiel
<scrolltext x1="24" y1="138" y2="-72" x2="583" font="helmetr.ttf:20" color="#AFFFFF00">
{PresentShortText}
{PresentDescription}
</scrolltext>

[Bearbeiten] <scrollbar>

Eine Scrollleiste.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
x2 ZAHL Position der rechten Kante
y2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung
color STRING Farbe des Balkens
bgColor STRING Farbe des Hintergrunds
Beispiel
<scrollbar x1="585" x2="608" y1="162" y2="-110" color="#AFFFFF00" bgColor="#8F2B1B9E" />

[Bearbeiten] <progress>

Eine Fortschrittsanzeige

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
x2 ZAHL Position der rechten Kante
y2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung
color STRING Farbe des Balkens
bgColor STRING Farbe des Hintergrunds
mark STRING Farbe der Schnittmarkierungen
active STRING Farbe des aktiven Bereiches
keep STRING Farbe des Bereiches der nicht herausgeschnitten wird
current ZAHL/TOKEN Aktueller Indexwert
total ZAHL/TOKEN Maximaler Indexwert
Beispiel
<progress x1="19" x2="556" y1="-17" y2="-7" color="#AF000000" current="{VolumeCurrent}" total="{VolumeTotal}" />
<progress x1="129" x2="478" y1="487" y2="502" color="#FFCE7B00" bgColor="Blue" mark="Black" active="Black" keep="Black" current="{ReplayPositionIndex}"  total="{ReplayDurationIndex}"/>

[Bearbeiten] <block>

Ein <block></block> fasst mehrere Objekte zusammen

Attribut Wert Beschreibung
condition FUNKTION Komplexe Bedingung
Beispiel
<block condition="file('logos/{ChannelName}.mng')"> 
 <rectangle x1="4" x2="67" y1="4" y2="51" color="#AF000000" />
 <image x="0" y="0" path="logos/{ChannelName}.mng" />
</block>

[Bearbeiten] <list>

Definiert die Liste im Menü.

Attribut Wert Beschreibung
x1 ZAHL Position der linken Kante
y1 ZAHL Position der oberen Kante
x2 ZAHL Position der rechten Kante
y2 ZAHL Position der unteren Kante
condition FUNKTION/TOKEN Komplexe Bedingung (möglich, macht aber wenig Sinn)
Beispiel
<list x1="24" y1="62" x2="569" y2="-82">
  <item height="28"/>
  <text x1="25" x2="569" y1="3" y2="27" color="#AF00FFFF" font="Sml">{MenuGroup}</text>
  <text x1="25" x2="569" y1="3" y2="27" color="#AFFFFFFF" font="Sml">{MenuItem}</text>
  <rectangle x1="0" x2="579" y1="0" y2="27" color="#FF2B1B9E" condition="{IsMenuCurrent}" />
  <text x1="22" x2="569" y1="0" y2="27" color="#AFFFFFFF" font="Osd">{MenuCurrent}</text>
  <text x1="0" x2="25" y1="0" y2="27" color="#AFFFFFFF" font="Osd">-></text>
</list>

[Bearbeiten] <item>

Definiert ein Item der Liste.

Attribut Wert Beschreibung
condition FUNKTION/TOKEN Komplexe Bedingung (möglich, macht aber wenig Sinn)
height ZAHL Höhe eines Listeneintrags
Beispiel
<list x1="24" y1="62" x2="569" y2="-82">
  <item height="28" />
  <text x1="25" x2="569" y1="3" y2="27" color="#AF00FFFF" font="Sml">{MenuGroup}</text>
  <text x1="25" x2="569" y1="3" y2="27" color="#AFFFFFFF" font="Sml">{MenuItem}</text>
  <rectangle x1="0" x2="579" y1="0" y2="27" color="#FF2B1B9E" condition="{IsMenuCurrent}" />
  <text x1="22" x2="569" y1="0" y2="27" color="#AFFFFFFF" font="Osd">{MenuCurrent}</text>
  <text x1="0" x2="25" y1="0" y2="27" color="#AFFFFFFF" font="Osd">-></text>
</list>

[Bearbeiten] Token

[Bearbeiten] Allgemein

Token Bemerkung Beschreibung
DateTime (s.h. "man strftime") Aktuelles Datum/Uhrzeit
IsRecording Wahr wenn eine Aufzeichnung stattfindet
CurrentRecording Liefert im Zwei-Sekunden-Takt alle aktuell laufenden Aufnahmen
Attribut: Zahl, um n-te laufende Aufnahme zu wählen
FreeDiskSpace Aktueller Restspeicherplatz als Zahl in MB
Attribut: Rückgabe als formatierte Zeit

[Bearbeiten] Channel Display

Token Bemerkung Beschreibung
ChannelNumber Kanalnummer ("Kanalnummer-" wenn gerade eine Eingabe stattfindet)
ChannelName Kanalname oder Gruppenname
ChannelShortName Kurzname des Kanals, wenn vorhanden
ChannelBouquet Provider/Bouquetname, wenn vorhanden
ChannelPortal Portalname, wenn vorhanden
ChannelSource Signalquelle (z.B. "S19.2E")
PresentStartDateTime (* auch in #Menu Display) Startzeit des aktuellen Titels
PresentVPSDateTime (* auch in #Menu Display) VPS-Startzeit des aktuellen Titels, wenn vorhanden
PresentEndDateTime (* auch in #Menu Display) Ende-Zeit des aktuellen Titels
PresentDuration (* auch in #Menu Display) Dauer des aktuellen Titels
PresentProgress (* auch in #Menu Display) Bisherige Laufzeit des aktuellen Titels
PresentRemaining (* auch in #Menu Display) Restzeit des aktuellen Titels
PresentTitle (* auch in #Menu Display) Titel/Überschrift des aktuellen Titels
PresentShortText (* auch in #Menu Display) Kurztext/Episode des aktuellen Titels
PresentDescription (* auch in #Menu Display) Beschreibung des aktuellen Titels
PresentHasTimer (alt: HasTimer) (* auch in #Menu Display) Wahr wenn der aktuelle Titel von einem Timer erfasst wird
PresentIsRunning (alt: IsRunning) (* auch in #Menu Display) Wahr wenn der aktuelle Titel den Status "running" hat
PresentHasVPS (* auch in #Menu Display) Wahr wenn die Sendung eine eigene VPS-Zeit hat
FollowingStartDateTime Startzeit des folgenden Titels
FollowingVPSDateTime VPS-Startzeit des folgenden Titels, wenn vorhanden
FollowingEndDateTime Ende-Zeit des folgenden Titels
FollowingDuration Dauer des folgenden Titels
FollowingTitle Titel/Überschrift des folgenden Titels
FollowingShortText Kurztext/Episode des folgenden Titels
FollowingDescription Beschreibung des folgenden Titels
FollowingHasTimer Wahr wenn der folgende Titel von einem Timer erfasst wird
FollowingIsRunning Wahr wenn der folgende Titel den Status "running" hat
FollowingHasVPS Wahr wenn der folgende Titel eine eigene VPS-Zeit hat
ButtonRed (* auch in #Menu Display, #Replay Display) Beschriftung des roten Buttons, wenn vorhanden
ButtonGreen (* auch in #Menu Display, #Replay Display) Beschriftung des grünen Buttons, wenn vorhanden
ButtonYellow (* auch in #Menu Display, #Replay Display) Beschriftung des gelben Buttons, wenn vorhanden
ButtonBlue (* auch in #Menu Display, #Replay Display) Beschriftung des blauen Buttons, wenn vorhanden
Language Sprache (noch nur "Audio 1", "Audio 2" oder "Digital Audio")
ChannelHasTeletext (alt: HasTeletext) Wahr wenn der Sender Videotext ausstrahlt
ChannelHasMultilang (alt: HasMultilang) Wahr wenn der Sender mehrere Tonspuren ausstrahlt
ChannelHasDolby (alt: HasDolby) Wahr wenn der Sender Mehrkanal-Digitalton ausstrahlt
ChannelIsEncrypted (alt: IsEncrypted) Wahr wenn der Sender verschlüsselt ist
ChannelIsRadio (alt: IsRadio) Wahr wenn der Sender ein Radiosender ist
ChannelHasVPS (alt: HasVPS) Wahr wenn der Sender VPS ausstrahlen kann

[Bearbeiten] Volume Display

Token Bemerkung Beschreibung
VolumeCurrent Aktueller Lautstärkewert (0-VolumeTotal) (numerisch)
VolumeTotal Maximaler Lautstärkewert
VolumeIsMute (alt: IsMute) Wahr wenn Stummschaltung aktiv ist

[Bearbeiten] Message Display

Token Bemerkung Beschreibung
Message (* auch in allen anderen Displays) Text der aktuellen Nachricht (Typ egal), wenn vorhanden
MessageStatus (* auch in allen anderen Displays) Text der aktuellen Nachricht, wenn vorhanden und vom Typ Statusnachricht
MessageInfo (* auch in allen anderen Displays) Text der aktuellen Nachricht, wenn vorhanden und vom Typ Information
MessageWarning (* auch in allen anderen Displays) Text der aktuellen Nachricht, wenn vorhanden und vom Typ Warnung
MessageError (* auch in allen anderen Displays) Text der aktuellen Nachricht, wenn vorhanden und vom Typ Fehler

[Bearbeiten] Replay Display

Token Bemerkung Beschreibung
ReplayTitle Attribut: clean Titel der aktuell laufenden Wiedergabe
ReplayPositionIndex Position in der Wiedergabe (numerisch, analog zu PresentProgress)
ReplayDurationIndex Dauer der Wiedergabe (numerisch, analog zu PresentDuration)
ReplayRemaining Restzeit der Wiedergabe (numerisch, analog zu PresentRemaining)
ReplayPrompt Eingabeaufforderung, wenn vorhanden (z.B. "Springen: --:--")
ReplayIsPlaying (alt: IsPlaying) Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal Wahr wenn die Wiedergabe normal abläuft
ReplayIsFastForward (alt: IsFastForward) Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal Wahr wenn schneller Vorlauf aktiv ist
ReplayIsFastRewind (alt: IsFastRewind) Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal Wahr wenn schneller Rücklauf aktiv ist
ReplayIsSlowForward (alt: IsSlowForward) Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal Wahr wenn Vorwärts-Zeitlupe aktiv ist
ReplayIsSlowRewind (alt: IsSlowRewind) Attribut: 0 = kein Multispeed, 1-3 = Multispeed, keines = egal Wahr wenn Rückwärts-Zeitlupe aktiv ist
ReplayIsPausing (alt: IsPausing) Wahr wenn die Wiedergabe pausiert ist
ReplayPosition Position in der Wiedergabe, fertig formatiert, mit Frames auf Schnittmarken, sonst ohne Frames
ReplayDuration Dauer der Wiedergabe, fertig formatiert
ReplayMode Art der Wiedergabe (z.B. "dvd", "vcd", "normal", ...)
ButtonRed (* auch in #Channel Display, #Menu Display) Text des roten Button, wenn vorhanden
ButtonGreen (* auch in #Channel Display, #Menu Display) Text des grünen Button, wenn vorhanden
ButtonYellow (* auch in #Channel Display, #Menu Display) Text des gelben Button, wenn vorhanden
ButtonBlue (* auch in #Channel Display, #Menu Display) Text des blauen Button, wenn vorhanden
ReplayIsShuffle Wahr wenn die Wiedergabe im Zufalls-Modus ist (derzeit nur MP3)
ReplayIsLoop Wahr wenn die Wiedergabe im Wiederholungs-Modus ist (derzeit nur MP3)

[Bearbeiten] Menu Display

Token Bemerkung Beschreibung
MenuTitle Attribut: "clean", "rest" Titelzeile der Menüseite oder gefilterter Titel mit "clean", oder Rest des gefilterten Titels mit "rest"
MenuGroup Text des aktuellen Listeneintrags, wenn es sich um eine Gruppe/Trenner handelt
IsMenuGroup Wahr wenn aktuell gezeichneter Eintrag eine Gruppe/Trenner ist
MenuItem Text des aktuellen Listeneintrags, wenn es sich um einen normalen Eintrag handelt
IsMenuItem Wahr wenn der aktuell gezeichnete Eintrag ein normaler Eintrag ist
MenuCurrent Attribut: "clean" Text des aktuellen Listeneintrags, wenn es sich um den ausgewählten Eintrag handelt
IsMenuCurrent Wahr wenn der aktuell gezeichnete Eintrag der zur Zeit ausgewählte ist
MenuText Textseite, die statt der Liste angezeigt werden soll (z.B. Ausgabe im Befehle-Menü)
ButtonRed (* auch in #Channel Display, #Replay Display)
ButtonGreen (* auch in #Channel Display, #Replay Display)
ButtonYellow (* auch in #Channel Display, #Replay Display)
ButtonBlue (* auch in #Channel Display, #Replay Display)
CanScrollUp Wahr wenn ein Scrolltext angezeigt wird, der aktuell nach oben gescrollt werden kann
CanScrollDown Wahr wenn ein Scrolltext angezeigt wird, der aktuell nach unten gescrollt werden kann
PresentStartDateTime (* auch in #Channel Display)
PresentVPSDateTime (* auch in #Channel Display)
PresentEndDateTime (* auch in #Channel Display)
PresentDuration (* auch in #Channel Display)
PresentProgress (* auch in #Channel Display)
PresentRemaining (* auch in #Channel Display)
PresentTitle (* auch in #Channel Display)
PresentShortText (* auch in #Channel Display)
PresentDescription (* auch in #Channel Display)
PresentHasVPS (* auch in #Channel Display)
PresentHasTimer (alt: HasTimer) (* auch in #Channel Display)
PresentIsRunning (alt: IsRunning) (* auch in #Channel Display)
ChannelHasVPS (alt: HasVPS) (* auch in #Channel Display)

[Bearbeiten] Audio Tracks Display

Token Bemerkung Beschreibung
MenuTitle Titelzeile der Audiotrack-Liste
AudioTrack (* auch in allen anderen Displays) Bezeichnung des aktuell eingestellten Audio-Track
AudioChannel (* auch in allen anderen Displays) Bezeichnung des geschalteten Kanals ("stereo", "left" oder "right")

[Bearbeiten] Funktionen

[Bearbeiten] not

Negierung einer Funktion.

not(equal({PresentStartDateTime},{PresentVPSDateTime}))

[Bearbeiten] and

Wahr, wenn alle Parameter wahr sind.

and({CanScrollUp},{CanScrollDown})

[Bearbeiten] or

Wahr, wenn mindestens ein Parameter wahr ist.

or({CanScrollUp},{CanScrollDown})

[Bearbeiten] equal

Wahr, wenn beide Parameter gleich sind.

equal('Kanäle', trans('Channels'))

[Bearbeiten] ne

Wahr, wenn beide Parameter ungleich (not equal) sind.

ne({ReplayMode}, 'normal')

[Bearbeiten] gt

Wahr, wenn der erste Parameter größer als (greater than) der zweite ist.

 gt({FreeDiskSpace},5000)

[Bearbeiten] ge

Wahr, wenn der erste Parameter größer oder gleich (greater/equal) dem zweiten ist.

 ge({FreeDiskSpace},5000)

[Bearbeiten] lt

Wahr, wenn der erste Parameter kleiner als (less than) der zweite ist.

 lt({FreeDiskSpace},5000)

[Bearbeiten] le

Wahr, wenn der erste Parameter kleiner oder gleich (less/equal) dem zweiten ist.

 le({FreeDiskSpace},5000)

[Bearbeiten] file

Liefert den Parameter zurück, wenn die dort angegebene Datei existiert.

file('logos/{ChannelName}.png')

[Bearbeiten] trans

Liefert die Übersetzung (nach i18n) des Parameters; falsch, wenn keine Übersetzung gefunden wurde.

equal('Kanäle', trans('Channels'))

[Bearbeiten] Attribute

[Bearbeiten] x/y Koordinaten

Attribut Wertebereich Bedeutung absolute Mode Bedeutung relative Mode
x1 -720..-1, 0..+719 links, bezogen auf Gesamtfläche links, bezogen auf OSD Position
y1 -576..-1, 0..+575 oben, bezogen auf Gesamtfläche oben, bezogen auf OSD Position
x2 -720..-1, 0..+719 rechts bezogen auf Gesamtfläche links, bezogen auf OSD Position
y2 -576..-1, 0..+575 unten bezogen auf Gesamtfläche links, bezogen auf OSD Position
x -720..-1, 0..+719 links (unscaliert), bezogen auf Gesamtfläche links (unscaliert), bezogen auf OSD Position
y -576..-1, 0..+575 oben (unscaliert), bezogen auf Gesamtfläche oben (unscaliert), bezogen auf OSD Position

Die Koordinaten x1, y1, x2, y2, x, y beziehen sich im 'absolute' Mode auf die gesamte darstellbare Bildfläche von 720x576 Pixeln. Im 'relative' Mode beziehen sich alle Angaben stattdessen auf die OSD-Fläche, welche je nach Einstellungen im VDR-Setup (OSD Links, Rechts, Höhe, Breite, 4:3, 16:9) in Größe und Position variiert. Positive Werte (inklusive Null) für x{n} und y{n} sind als Offset zur linken oberen Ecke zu verstehen, negative Werte als Offset zur rechten unteren Ecke. x-Werte sind horizontale Angaben, y-Werte vertikale.

Hinweis
Hinweis

Wenn möglich sollten Skins im 'relative' Mode mit x1, y1, x, y als positiven Werten angegeben werden und x2, y2 als negativen Werten. So wird gewährleistet, dass das erstellte Skin immer vollständig dargestellt werden kann.


[Bearbeiten] arc

Attribut Wert Bedeutung
arc 0 Bei ellipse: volle Ellipse Bei slope: horizontal, steigend, unten
1 Bei ellipse: erster Quadrant Bei slope: horizontal, steigend, oben
2 Bei ellipse: zweiter Quadrant Bei slope: horizontal, fallend, unten
3 Bei ellipse: dritter Quadrant Bei slope: horizontal, fallend, oben
4 Bei ellipse: vierter Quadrant Bei slope: vertikal, steigend, rechts
5 Bei ellipse: rechte Hälfte Bei slope: vertikal, steigend, links
6 Bei ellipse: obere Hälfte Bei slope: vertikal, fallend, rechts
7 Bei ellipse: linke Hälfte Bei slope: vertikal, fallend, links
8 Bei ellipse: untere Hälfte
-1..-8 Bei ellipse: s.o., invertiert
Skin-ref-01.jpg
Skin-ref-02.jpg






Abbildungen der Formen von Ellipse und Slope siehe Thumbnails.

[Bearbeiten] color

Betrifft auch: bgColor, blinkColor, mark, active, keep

Farben werden im RGB-Format mit Transparenz angegeben. Also etwa

color="#AARRGGBB"

Farben können auch als symbolischer Wert angegeben werden, welcher in der .colors-Datei des Skins aufgelöst wird. Z.B.

color="MenuTextFg"
  • A = Alphawert (eigentlich Deckkraft, oft auch Transparenz)
  • R = Rotwert
  • G = Grünwert
  • B = Blauwert

Ein paar Beispiele

        AARRGGBB
color="#00000000" = Schwarz, voll transparent (durchsichtig)
color="#FF000000" = Schwarz, volle Deckkraft
color="#7F000000" = Schwarz, halb durchscheinend
color="#7FFFFFFF" = Weiß, halb durchscheinend

und natürlich alle möglichen Zwischentöne und Transparenzen.

[Bearbeiten] font

Es gibt drei vorgegebene Fonts

  • Osd
  • Fix
  • Sml

Wenn man die Freetype-Bibliothek installiert hat und beim compilieren aktiviert hat, lässt sich zusätzlich jeder TrueType-Font verwenden, der unter

  • /etc/vdr/plugins/text2skin/fonts/

oder

  • /etc/vdr/plugins/text2skin/SkinName/

installiert ist.

In der Skindatei gibt man den Fontnamen,

font="Osd"

oder, bei Truetype-Fonts, den Font-Dateinamen und die gewünschte Größe und Breite (optional)

font="helmetr.ttf:Größe[,Breite]"

an.