Text2skin-Skin Referenz
(→<rectangle>) |
Wirbel (Diskussion | Beiträge) |
||
| (102 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
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. | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
==Elemente== | ==Elemente== | ||
===<skin>=== | ===<skin>=== | ||
| − | + | Dies ist das Wurzelelement des Skins. Alle weiteren Elemente liegen verschachtelt in diesem. | |
{| 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 52: | Zeile 10: | ||
!Beschreibung | !Beschreibung | ||
|- | |- | ||
| − | | version || VERSION || Version des Skin-Formates | + | | version || VERSION || Version des Skin-Formates (fester Wert, aktuell "1.0") |
|- | |- | ||
| name || NAME || Name der im VDR-OSD erscheinen soll | | name || NAME || Name der im VDR-OSD erscheinen soll | ||
| Zeile 59: | Zeile 17: | ||
* relative | * relative | ||
* absolute | * absolute | ||
| − | | Kennzeichnet, ob das Skin relativ (relative) zum VDR-Setup oder absolut (absolute) auf | + | | 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 80: | Zeile 38: | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| id || | | id || | ||
| Zeile 90: | Zeile 48: | ||
* replaySmall | * replaySmall | ||
* menu | * menu | ||
| + | * audioTracks | ||
| Bezeichnet den Typ der OSD-Darstellung | | Bezeichnet den Typ der OSD-Darstellung | ||
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
| Zeile 108: | Zeile 67: | ||
===<window>=== | ===<window>=== | ||
| − | Jeder Display-Container beginnt mit der Vorgabe von Zeichenflächen, auf denen dann die Elemente | + | 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 | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| x1 || ZAHL || Position der linken Kante | | x1 || ZAHL || Position der linken Kante | ||
| Zeile 123: | 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 148: | Zeile 107: | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | | x1 | + | | x1 || ZAHL || Position der linken Kante |
|- | |- | ||
| − | | y1 | + | | y1 || ZAHL || Position der oberen Kante |
|- | |- | ||
| − | | x2 | + | | x2 || ZAHL || Position der rechten Kante |
|- | |- | ||
| − | | y2 | + | | y2 || ZAHL || Position der unteren Kante |
|- | |- | ||
| − | | condition || FUNKTION || Komplexe Bedingung | + | | condition || FUNKTION/TOKEN || Komplexe Bedingung |
|- | |- | ||
| − | | color | + | | color || STRING || Füllfarbe des Rechtecks |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 170: | Zeile 129: | ||
|} | |} | ||
| − | ===< | + | ===<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 | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | | x1 | + | | x1 || ZAHL || Position der linken Kante |
|- | |- | ||
| − | | y1 | + | | y1 || ZAHL || Position der oberen Kante |
|- | |- | ||
| − | | | + | | x2 || ZAHL || Position der rechten Kante |
|- | |- | ||
| − | | | + | | y2 || ZAHL || Position der unteren Kante |
|- | |- | ||
| − | | condition || FUNKTION || Komplexe Bedingung | + | | condition || FUNKTION/TOKEN || Komplexe Bedingung |
|- | |- | ||
| − | | color | + | | color || STRING || Füllfarbe der Ellipse |
|- | |- | ||
| − | | | + | | arc || ZAHL || Kreisbogen |
| − | + | |- bgcolor=#efefef | |
| − | + | !Beispiel | |
| − | + | | | |
| − | | | + | | |
| + | |- | ||
| + | |colspan=3| | ||
| + | <ellipse x1="5" y1="7" x2="14" y2="15" color="GraphLight" condition="{IsMenuCurrent}"/> | ||
| + | |} | ||
| + | |||
| + | ===<slope>=== | ||
| + | Eine Kurve. | ||
| + | {| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;" | ||
| + | |- bgcolor=#efefef | ||
| + | !width=20%|Attribut | ||
| + | !width=20%|Wert | ||
| + | !width=80%|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 |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 203: | Zeile 186: | ||
|- | |- | ||
|colspan=3| | |colspan=3| | ||
| − | + | <slope x1="10" x2="100" y1="10" y2="100" arc="1" color="#CC000066" /> | |
|} | |} | ||
| Zeile 212: | Zeile 195: | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | | x | + | | x || ZAHL || Position der linken Kante (keine Skalierung) |
|- | |- | ||
| − | | y | + | | y || ZAHL || Position der oberen Kante (keine Skalierung) |
|- | |- | ||
| − | | condition || FUNKTION || Komplexe Bedingung | + | | 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 | + | | path || STRING/TOKEN || Pfad zur Bilddatei |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 237: | Zeile 232: | ||
|} | |} | ||
| − | ===< | + | ===<text>=== |
| − | + | Ein statischer oder zusammengesetzter Text. | |
{| 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 | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | | x1 | + | | x1 || ZAHL || Position der linken Kante |
|- | |- | ||
| − | | y1 | + | | y1 || ZAHL || Position der oberen Kante |
|- | |- | ||
| − | | | + | | x2 || ZAHL || Position der rechten Kante |
|- | |- | ||
| − | | | + | | y2 || ZAHL || Position der unteren Kante |
|- | |- | ||
| − | | condition || FUNKTION || Komplexe Bedingung | + | | condition || FUNKTION/TOKEN || Komplexe Bedingung |
|- | |- | ||
| − | | color | + | | color || STRING || Textfarbe |
| + | |- | ||
| + | | align || | ||
| + | * center | ||
| + | * right | ||
| + | * left | ||
| + | | Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig) | ||
|- | |- | ||
| − | | | + | | [[Text2skin-Skin_Referenz#font|font]] || STRING || Name des Fonts |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 264: | Zeile 265: | ||
|- | |- | ||
|colspan=3| | |colspan=3| | ||
| − | + | <text x1="42" x2="571" y1="-113" y2="-86" color="#FF000000" font="Osd">{ReplayTitle}</text> | |
|} | |} | ||
| − | ===< | + | ===<marquee>=== |
| − | + | Alternative zu [[#<text>|<text>]]. Scrollt überlange Texte hin und her. | |
{| 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 | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | | x1 | + | | x1 || ZAHL || Position der linken Kante |
|- | |- | ||
| − | | y1 | + | | y1 || ZAHL || Position der oberen Kante |
|- | |- | ||
| − | | y2 | + | | y2 || ZAHL || Position der rechten Kante |
|- | |- | ||
| − | | x2 | + | | x2 || ZAHL || Position der unteren Kante |
|- | |- | ||
| − | | condition || FUNKTION || Komplexe Bedingung | + | | condition || FUNKTION/TOKEN || Komplexe Bedingung |
|- | |- | ||
| − | | color | + | | [[Text2skin-Skin_Referenz#color|color]] || STRING || Textfarbe |
| + | |- | ||
| + | | delay || ZAHL || Verzögerung des Scrollens in ms (Laufgeschwindigkeit) | ||
| + | |- | ||
| + | | align || | ||
| + | * center | ||
| + | * right | ||
| + | * left | ||
| + | | Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig) | ||
|- | |- | ||
| − | | | + | | [[Text2skin-Skin_Referenz#font|font]] || STRING || Name des Fonts |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 294: | Zeile 303: | ||
|- | |- | ||
|colspan=3| | |colspan=3| | ||
| − | + | <marquee x1="130" x2="480" y1="423" y2="445" color="Text" font="Sml">{ReplayTitle}</marquee> | |
|} | |} | ||
| − | ===< | + | ===<blink>=== |
| − | + | Alternative zu [[#<text>|<text>]]. Stellt Text blinkend dar. | |
{| 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 | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | | x1 | + | | x1 || ZAHL || Position der linken Kante |
|- | |- | ||
| − | | y1 | + | | y1 || ZAHL || Position der oberen Kante |
|- | |- | ||
| − | | y2 | + | | y2 || ZAHL || Position der rechten Kante |
|- | |- | ||
| − | | x2 | + | | x2 || ZAHL || Position der unteren Kante |
| + | |- | ||
| + | | condition || FUNKTION/TOKEN || Komplexe Bedingung | ||
|- | |- | ||
| − | | | + | | [[Text2skin-Skin_Referenz#color|color]] || STRING || Textfarbe |
|- | |- | ||
| − | | color | + | | [[Text2skin-Skin_Referenz#color|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) |
| − | + | ||
| − | + | ||
|- | |- | ||
| − | | | + | | [[Text2skin-Skin_Referenz#font|font]] || STRING || Name des Fonts |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 334: | 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 343: | Zeile 353: | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | | x1 | + | | x1 || ZAHL || Position der linken Kante |
| + | |- | ||
| + | | y1 || ZAHL || Position der oberen Kante | ||
|- | |- | ||
| − | | | + | | x2 || ZAHL || Position der rechten Kante |
|- | |- | ||
| − | | y2 | + | | y2 || ZAHL || Position der unteren Kante |
|- | |- | ||
| − | | | + | | condition || FUNKTION/TOKEN || Komplexe Bedingung |
|- | |- | ||
| − | + | | color || STRING || Farbe des Textes | |
| − | + | ||
| − | | color | + | |
|- | |- | ||
| − | | align | + | | align || |
* center | * center | ||
* right | * right | ||
* left | * left | ||
| − | | Ausrichtung des Textes ( | + | | Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig) |
|- | |- | ||
| − | | font | + | | font || STRING || Name des Fonts |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 382: | Zeile 392: | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | | x1 | + | | x1 || ZAHL || Position der linken Kante |
|- | |- | ||
| − | | y1 | + | | y1 || ZAHL || Position der oberen Kante |
|- | |- | ||
| − | | | + | | x2 || ZAHL || Position der rechten Kante |
|- | |- | ||
| − | | | + | | y2 || ZAHL || Position der unteren Kante |
|- | |- | ||
| − | | condition || FUNKTION || Komplexe Bedingung | + | | condition || FUNKTION/TOKEN || Komplexe Bedingung |
|- | |- | ||
| − | | color | + | | [[Text2skin-Skin_Referenz#color|color]] || STRING || Farbe des Balkens |
|- | |- | ||
| − | | bgColor | + | | [[Text2skin-Skin_Referenz#color|bgColor]] || STRING || Farbe des Hintergrunds |
| + | |- bgcolor=#efefef | ||
| + | !Beispiel | ||
| + | | | ||
| + | | | ||
|- | |- | ||
| − | | | + | |colspan=3| |
| + | <scrollbar x1="585" x2="608" y1="162" y2="-110" color="#AFFFFF00" bgColor="#8F2B1B9E" /> | ||
| + | |} | ||
| + | |||
| + | ===<progress>=== | ||
| + | Eine Fortschrittsanzeige | ||
| + | {| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;" | ||
| + | |- bgcolor=#efefef | ||
| + | !width=20%|Attribut | ||
| + | !width=20%|Wert | ||
| + | !width=80%|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 | ||
| + | |- | ||
| + | | [[Text2skin-Skin_Referenz#color|color]] || STRING || Farbe des Balkens | ||
| + | |- | ||
| + | | [[Text2skin-Skin_Referenz#color|bgColor]] || STRING || Farbe des Hintergrunds | ||
| + | |- | ||
| + | | [[Text2skin-Skin_Referenz#color|mark]] || STRING || Farbe der Schnittmarkierungen | ||
| + | |- | ||
| + | | [[Text2skin-Skin_Referenz#color|active]] || STRING || Farbe des aktiven Bereiches | ||
| + | |- | ||
| + | | [[Text2skin-Skin_Referenz#color|keep]] || STRING || Farbe des Bereiches der nicht herausgeschnitten wird | ||
| + | |- | ||
| + | | current || ZAHL/TOKEN || Aktueller Indexwert | ||
| + | |- | ||
| + | | total || ZAHL/TOKEN || Maximaler Indexwert | ||
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 413: | Zeile 453: | ||
|- | |- | ||
|colspan=3| | |colspan=3| | ||
| − | < | + | <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}"/> | ||
|} | |} | ||
| Zeile 422: | Zeile 463: | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
|- | |- | ||
| condition || FUNKTION || Komplexe Bedingung | | condition || FUNKTION || Komplexe Bedingung | ||
| Zeile 440: | Zeile 473: | ||
|colspan=3| | |colspan=3| | ||
<block condition="file('logos/{ChannelName}.mng')"> | <block condition="file('logos/{ChannelName}.mng')"> | ||
| − | <rectangle x1="4" x2="67" y1="4" y2="51" color="#AF000000"/> | + | <rectangle x1="4" x2="67" y1="4" y2="51" color="#AF000000" /> |
| − | <image x="0" y="0" path="logos/{ChannelName}.mng"/> | + | <image x="0" y="0" path="logos/{ChannelName}.mng" /> |
</block> | </block> | ||
|} | |} | ||
| Zeile 451: | Zeile 484: | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | | x1 || ZAHL | + | | x1 || ZAHL || Position der linken Kante |
|- | |- | ||
| − | | y1 || ZAHL | + | | y1 || ZAHL || Position der oberen Kante |
|- | |- | ||
| − | | | + | | x2 || ZAHL || Position der rechten Kante |
|- | |- | ||
| − | | | + | | y2 || ZAHL || Position der unteren Kante |
|- | |- | ||
| − | | condition || FUNKTION || Komplexe Bedingung | + | | condition || FUNKTION/TOKEN || Komplexe Bedingung (möglich, macht aber wenig Sinn) |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 484: | Zeile 517: | ||
!width=20%|Attribut | !width=20%|Attribut | ||
!width=20%|Wert | !width=20%|Wert | ||
| − | !Beschreibung | + | !width=80%|Beschreibung |
|- | |- | ||
| − | + | | condition || FUNKTION/TOKEN || Komplexe Bedingung (möglich, macht aber wenig Sinn) | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | | condition || FUNKTION || Komplexe Bedingung | + | |
|- | |- | ||
| − | | height || ZAHL | + | | height || ZAHL || Höhe eines Listeneintrags |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
| Zeile 507: | Zeile 532: | ||
<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="#AF00FFFF" font="Sml">{MenuGroup}</text> | ||
<text x1="25" x2="569" y1="3" y2="27" color="#AFFFFFFF" font="Sml">{MenuItem}</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}"/> | + | <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="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> | <text x1="0" x2="25" y1="0" y2="27" color="#AFFFFFFF" font="Osd">-></text> | ||
| Zeile 518: | Zeile 543: | ||
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!width=20%|Token | !width=20%|Token | ||
| − | !Beschreibung | + | !width=20%|Bemerkung |
| + | !width=80%|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<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 |
|} | |} | ||
| Zeile 527: | Zeile 559: | ||
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!width=20%|Token | !width=20%|Token | ||
| − | !Beschreibung | + | !width=20%|Bemerkung |
| + | !width=80%|Beschreibung | ||
|- | |- | ||
| − | | ChannelNumber || | + | | ChannelNumber || || Kanalnummer ("Kanalnummer-" wenn gerade eine Eingabe stattfindet) |
|- | |- | ||
| − | | ChannelName || | + | | ChannelName || || Kanalname oder Gruppenname |
|- | |- | ||
| − | | ChannelShortName || | + | | ChannelShortName || || Kurzname des Kanals, wenn vorhanden |
|- | |- | ||
| − | | ChannelBouquet || | + | | 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 | ||
|} | |} | ||
| Zeile 592: | Zeile 645: | ||
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!width=20%|Token | !width=20%|Token | ||
| − | !Beschreibung | + | !width=20%|Bemerkung |
| + | !width=80%|Beschreibung | ||
|- | |- | ||
| − | | VolumeCurrent || | + | | VolumeCurrent || || Aktueller Lautstärkewert (0-VolumeTotal) (numerisch) |
|- | |- | ||
| − | | VolumeTotal | + | | VolumeTotal || || Maximaler Lautstärkewert |
|- | |- | ||
| − | | IsMute | + | | VolumeIsMute (alt: IsMute)|| || Wahr wenn Stummschaltung aktiv ist |
|} | |} | ||
| Zeile 605: | Zeile 659: | ||
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!width=20%|Token | !width=20%|Token | ||
| − | !Beschreibung | + | !width=20%|Bemerkung |
| + | !width=80%|Beschreibung | ||
|- | |- | ||
| − | | Message | + | | Message || (* auch in allen anderen Displays) || Text der aktuellen Nachricht (Typ egal), wenn vorhanden |
|- | |- | ||
| − | | MessageStatus | + | | MessageStatus || (* auch in allen anderen Displays) || Text der aktuellen Nachricht, wenn vorhanden und vom Typ Statusnachricht |
|- | |- | ||
| − | | MessageInfo | + | | MessageInfo || (* auch in allen anderen Displays) || Text der aktuellen Nachricht, wenn vorhanden und vom Typ Information |
|- | |- | ||
| − | | MessageWarning || | + | | MessageWarning || (* auch in allen anderen Displays) || Text der aktuellen Nachricht, wenn vorhanden und vom Typ Warnung |
|- | |- | ||
| − | | MessageError | + | | MessageError || (* auch in allen anderen Displays) || Text der aktuellen Nachricht, wenn vorhanden und vom Typ Fehler |
|} | |} | ||
| Zeile 622: | Zeile 677: | ||
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!width=20%|Token | !width=20%|Token | ||
| − | !Beschreibung | + | !width=20%|Bemerkung |
| + | !width=80%|Beschreibung | ||
|- | |- | ||
| − | | ReplayTitle | + | | ReplayTitle || Attribut: clean || Titel der aktuell laufenden Wiedergabe |
|- | |- | ||
| − | | ReplayPositionIndex || | + | | ReplayPositionIndex || || Position in der Wiedergabe (numerisch, analog zu PresentProgress) |
|- | |- | ||
| − | | ReplayDurationIndex || | + | | 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 |
|- | |- | ||
| − | | ReplayMode | + | | 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) | ||
|} | |} | ||
| − | ===Menu | + | ===Menu Display=== |
{| 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 | ||
!width=20%|Token | !width=20%|Token | ||
| − | !Beschreibung | + | !width=20%|Bemerkung |
| + | !width=80%|Beschreibung | ||
|- | |- | ||
| − | | MenuTitle | + | | MenuTitle || Attribut: "clean", "rest" || Titelzeile der Menüseite oder gefilterter Titel mit "clean", oder Rest des gefilterten Titels mit "rest" |
|- | |- | ||
| − | | MenuGroup | + | | MenuGroup || || Text des aktuellen Listeneintrags, wenn es sich um eine Gruppe/Trenner handelt |
|- | |- | ||
| − | | IsMenuGroup | + | | IsMenuGroup || || Wahr wenn aktuell gezeichneter Eintrag eine Gruppe/Trenner ist |
|- | |- | ||
| − | | MenuItem | + | | MenuItem || || Text des aktuellen Listeneintrags, wenn es sich um einen normalen Eintrag handelt |
|- | |- | ||
| − | | IsMenuItem | + | | IsMenuItem || || Wahr wenn der aktuell gezeichnete Eintrag ein normaler Eintrag ist |
|- | |- | ||
| − | | MenuCurrent | + | | MenuCurrent || Attribut: "clean" || Text des aktuellen Listeneintrags, wenn es sich um den ausgewählten Eintrag handelt |
|- | |- | ||
| − | | IsMenuCurrent || | + | | IsMenuCurrent || || Wahr wenn der aktuell gezeichnete Eintrag der zur Zeit ausgewählte ist |
|- | |- | ||
| − | | MenuText | + | | MenuText || || Textseite, die statt der Liste angezeigt werden soll (z.B. Ausgabe im Befehle-Menü) |
|- | |- | ||
| − | | ButtonRed | + | | ButtonRed || (* auch in [[#Channel Display]], [[#Replay Display]]) || |
|- | |- | ||
| − | | ButtonGreen | + | | ButtonGreen || (* auch in [[#Channel Display]], [[#Replay Display]]) || |
|- | |- | ||
| − | | ButtonYellow | + | | ButtonYellow || (* auch in [[#Channel Display]], [[#Replay Display]]) || |
|- | |- | ||
| − | | ButtonBlue | + | | ButtonBlue || (* auch in [[#Channel Display]], [[#Replay Display]]) || |
|- | |- | ||
| − | | CanScrollUp | + | | CanScrollUp || || Wahr wenn ein Scrolltext angezeigt wird, der aktuell nach oben gescrollt werden kann |
|- | |- | ||
| − | | CanScrollDown || | + | | 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]]) || | ||
| + | |} | ||
| + | |||
| + | ===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") | ||
|} | |} | ||
==Funktionen== | ==Funktionen== | ||
===not=== | ===not=== | ||
| + | Negierung einer Funktion. | ||
| + | not(equal({PresentStartDateTime},{PresentVPSDateTime})) | ||
===and=== | ===and=== | ||
| + | Wahr, wenn alle Parameter wahr sind. | ||
| + | and({CanScrollUp},{CanScrollDown}) | ||
===or=== | ===or=== | ||
| + | Wahr, wenn mindestens ein Parameter wahr ist. | ||
| + | or({CanScrollUp},{CanScrollDown}) | ||
===equal=== | ===equal=== | ||
| + | Wahr, wenn beide Parameter gleich sind. | ||
| + | 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=== | ||
| + | Liefert den Parameter zurück, wenn die dort angegebene Datei existiert. | ||
| + | file('logos/{ChannelName}.png') | ||
===trans=== | ===trans=== | ||
| + | Liefert die Übersetzung (nach i18n) des Parameters; falsch, wenn keine Übersetzung gefunden wurde. | ||
| + | equal('Kanäle', trans('Channels')) | ||
| + | |||
| + | ==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=== | ||
| + | {| border=1 cellpadding=2 cellspacing=0 width=100% style="border-collapse:collapse;" | ||
| + | |- bgcolor=#efefef | ||
| + | !width=10%|Attribut | ||
| + | !width=10%|Wert | ||
| + | !width=40%|Bedeutung | ||
| + | !width=40%| | ||
| + | |- | ||
| + | | 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 || | ||
| + | |} | ||
| + | [[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=== | ||
| + | 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. | ||
| + | |||
| + | ===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. | ||
| + | |||
| + | [[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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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.
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 |
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.