Main Infobar im OE 2.0 DMM-Skin: Unterschied zwischen den Versionen
EgLe (Diskussion | Beiträge) |
EgLe (Diskussion | Beiträge) |
||
Zeile 1.166: | Zeile 1.166: | ||
* In den weiteren Widget wird die Schrift die erscheinen soll deklariert | * In den weiteren Widget wird die Schrift die erscheinen soll deklariert | ||
+ | |||
+ | |||
+ | Zurück zum [[#top | Inhaltsverzeichnis:]] | ||
+ | |||
+ | |||
+ | |||
[[Kategorie:Enigma2]] | [[Kategorie:Enigma2]] |
Version vom 9. Dezember 2012, 09:40 Uhr
An diesem Artikel wird derzeit gearbeitet. Achtung: Der Artikel kann unvollständig und fehlerhaft sein! |
Inhaltsverzeichnis
- 1 Einleitung
- 2 Main infoBar
- 3 Background
- 4 Service name
- 5 Service provider
- 6 Time
- 7 Date
- 8 Progressbar (current event duration)
- 9 Audio icon (is there multichannel audio?)
- 10 Videoformat icon (16:9?)
- 11 Teletext icon (is teletext available?)
- 12 HDTV icon
- 13 Crypt icon (encrypted service?)
- 14 tuners in use?
- 15 Channellogo (Picon)
- 16 Blinking pixmap (recording in progress?)
- 17 Event (now)
- 18 Event (next)
- 19 Signal Quality
- 20 Bit error rate
- 21 Signal Strength
- 22 Video Size (Width & Height)
- 23 Red button (is recording possible?)
- 24 Red button, Hbbtv (only if record is not on red, for now)
- 25 Green button (is subservices available?)
- 26 Yellow button (is timeshift possible?)
Einleitung
Der Screen name="InfoBar" ist die Grafische Darstellung der Infobar und stellt ein großes Element eines Skins dar.
Das Element der Infobar unterteilt sich in vielen Unterelemente (widget, pixmap, eLabel usw.)
Zurück zum Inhaltsverzeichnis:
Main infoBar
Wie beim Skin selbst beginnt der Screen 'name="InfoBar" mittels :
<!-- Main infobar --> <screen name="InfoBar" flags="wfNoBorder" position="135,360" size="770,190" title="InfoBar" backgroundColor="transparent" > <!-- Hier können etliche Unterelemente (widget, pixmap, eLabel usw.) eingebettet sein! --> </screen> <!-- und endet erst mit diesem Abschluss -->
In diesem Beispiel wurde die Grafik des Skins "BlackdreamHD" als Vorlage erstellt und verwendet.
Funktionen die Hier nicht vorgesehen sind werden ggf, auf Grundlage des Default-HD skins nachgestellt.
Erklärung skin.xml Main InfoBar
- Mit flags="wfNoBorder" wird festgelegt das man keinen Rahmen (Border) haben will. Alternative diesen Eintrag weglassen und es gibt einen Rahmen
- position="135,360" gibt an wo der Screen dargestellt werden soll in Bildpunkten, 135 = vom Rand Links in die Mitte, 360 = vom Rand oben nach unten
- size="770,190" gibt an wie Groß in Bildpunkten (Breite mal Höhe) der Screen sein soll
- title="InfoBar" wie erwartet der Name des des Titelfenster
- backgroundColor="transparent" hier wird die Farbe "transparent" als Hintergrundfarbe benutzt (Farbe muss im Element "color" definiert sein, sonst Crasht es). Alternativ können die Farben sonst auch im HTML-Code dargestellt werden
Zurück zum Inhaltsverzeichnis:
Background
Nun setzt man als Background seine InfoBar-Grafik ein. Hierzu nun die Infobar des BlackdreamHD-Skins. Der Screen-Code würde in diesem Beispiel so komplett aussehen:
<!-- Main infobar --> <screen name="InfoBar" flags="wfNoBorder" position="80,500" size="1130,190" title="InfoBar" > <!-- Background --> <ePixmap position="0,0" zPosition="-1" size="1130,190" pixmap="BlackDreamHD/infobar.png" /> </screen>
Erklärung skin.xml des Background
- Wert ePixmap ist zum einfügen von Grafiken.
- position="0,0" damit die Grafik den kompletten Screen auch ausfüllt, da die Größe (size) der Grafik und des Screens identisch sind
- Mittels pixmap= wird nun die Tatsächliche Grafik geladen
Zurück zum Inhaltsverzeichnis:
Service name
Die Definition des "Service name" bedeutet einfach nur der Programmnamen.
Innerhalb dieses "widget" geben wir nun an wo denn innerhalb der Infobar der Programmnamen erscheinen soll.
<!-- Service name --> <widget source="session.CurrentService" render="Label" position="150,6" size="440,36" font="Regular;25" valign="top" noWrap="1" backgroundColor="black" transparent="1"> <convert type="ServiceName">Name</convert> </widget>
Erklärung skin.xml des Service name
- Wie bekannt die Postion, den gewünschten Font incl. der Größe und der Farbe der Schrift
- neu ist valign="top" damit können wir die Schrift innerhalb dem Feld (size="440,36") also in der Höhe von 36 nach oben ausgerichtet darstellen lassen
- auch neu ist noWrap="1", (weiß ich im Moment nicht was das genau bedeutet...)
Ansicht der bisherigen kompletten skin.xml
<skin> <!-- Skin: BlackDreamHD for OE2.0 by EgLe (c)2012 --> <!-- This skin skin and all it's graphics are free. Everyone can modify and use it in other images. --> <!-- Spezial Thanks to Kerni and Vali for his great Skins, Renderer,Converter and Wonderfull Idea --> <!-- BUT DO NOT REMOVE OR CHANGE THE SECOND LINE !!! --> <!-- Head for Image resolution --> <output id="0"> <resolution xres="1280" yres="720" bpp="32" /> </output> <!-- Colors (#AARRGGBB) --> <colors> <color name="white" value="#ffffff" /> <color name="black" value="#000000" /> <color name="dark" value="#25062748" /> <color name="red" value="#f23d21" /> <color name="green" value="#5bac3f" /> <color name="blue" value="#21b0cf" /> <color name="grey" value="#90a0a0" /> <color name="yellow" value="#00e5b243" /> <color name="lightgrey" value="#8c8c93" /> <color name="darkgrey" value="#777777" /> <color name="transparent" value="#ffffffff" /> <color name="transpBlack" value="#80000000" /> <color name="transpWhite" value="#80ffffff" /> <color name="transpyellow" value="#33bab329" /> <color name="background" value="#25272d33" /> <color name="foreground" value="#ffffff" /> <color name="foreyellow" value="#cc9329" /> </colors> <!-- Fonts --> <fonts> <font filename="nmsbd.ttf" name="Regular" scale="95" /> <font filename="lcd.ttf" name="LCD" scale="100" /> <font filename="ae_AlMateen.ttf" name="Replacement" scale="95" replacement="1" /> <font filename="tuxtxt.ttf" name="Console" scale="100" /> </fonts> <!-- Main screen colors (id=0 Framebuffer) --> <windowstyle type="skinned" id="0"> <title offset="33,14" font="Regular;27" /> <color name="Background" color="#272d33" /> <color name="LabelForeground" color="#ffffff" /> <color name="ListboxBackground" color="#272d33" /> <color name="ListboxForeground" color="#ffffff" /> <color name="ListboxSelectedBackground" color="#8c8c93" /> <color name="ListboxSelectedForeground" color="#ffffff" /> <color name="ListboxMarkedBackground" color="#2a2d2f" /> <color name="ListboxMarkedForeground" color="#389416" /> <color name="ListboxMarkedAndSelectedBackground" color="#2a2d2f" /> <color name="ListboxMarkedAndSelectedForeground" color="#f23d21" /> <color name="WindowTitleForeground" color="#ffffff" /> <color name="WindowTitleBackground" color="#232a33" /> <!-- Main screen border png's --> <borderset name="bsWindow"> <pixmap pos="bpTopLeft" filename="BlackDreamHD/b_tl.png" /> <pixmap pos="bpTop" filename="BlackDreamHD/b_t.png" /> <pixmap pos="bpTopRight" filename="BlackDreamHD/b_tr.png" /> <pixmap pos="bpLeft" filename="BlackDreamHD/b_l.png" /> <pixmap pos="bpRight" filename="BlackDreamHD/b_r.png" /> <pixmap pos="bpBottomLeft" filename="BlackDreamHD/b_bl.png" /> <pixmap pos="bpBottom" filename="BlackDreamHD/b_b.png" /> <pixmap pos="bpBottomRight" filename="BlackDreamHD/b_br.png" /> </borderset> </windowstyle> <!-- Subtitle area --> <screen name="SubtitleDisplay" position="0,0" size="1280,720" zPosition="-1" flags="wfNoBorder" backgroundColor="transparent"/> <!-- Subtitle effects --> <subtitles> <sub name="Subtitle_TTX" font="Regular;35" shadowColor="#40101010" shadowOffset="3,3" /> <sub name="Subtitle_Regular" font="Regular;35" foregroundColor="#DCDCDC" shadowColor="#40101010" shadowOffset="3,3" /> <sub name="Subtitle_Bold" font="Replacement;35" foregroundColor="#DCDCDC" shadowColor="#40101010" shadowOffset="3,3" /> <sub name="Subtitle_Italic" font="Regular;35" foregroundColor="#DCAAAA" shadowColor="#40101010" shadowOffset="3,3" /> <!-- omitting foregroundColor attribute will enable auto-assignment of color --> </subtitles> <!-- Volumebar --> <screen name="Volume" position="center,60" size="280,70" title="Volume" zPosition="11" backgroundColor="transparent" flags="wfNoBorder"> <ePixmap pixmap="BlackDreamHD/icons/volume_bg.png" position="0,0" size="280,70" zPosition="12" alphatest="blend" transparent="1"/> <ePixmap pixmap="BlackDreamHD/icons/volumebar.png" position="55,55" size="160,6" zPosition="12" alphatest="blend" transparent="1"/> <widget name="Volume" pixmap="BlackDreamHD/icons/volume.png" position="55,10" size="160,45" zPosition="12" transparent="1" /> </screen> <!-- Mute --> <screen name="Mute" position="90,100" zPosition="10" size="128,128" backgroundColor="transparent" title="Mute" flags="wfNoBorder"> <ePixmap position="0,0" size="128,128" pixmap="BlackDreamHD/icons/mute.png" alphatest="on" /> </screen> <!-- unhandled key pressed --> <screen name="UnhandledKey" flags="wfNoBorder" position="center,50" size="128,128" title="UnhandledKey" zPosition="100" backgroundColor="background"> <widget name="UnhandledKeyPixmap" pixmap="BlackDreamHD/icons/unhandled-key.png" position="0,0" size="128,128" alphatest="on" backgroundColor="transparent" transparent="1" /> </screen> <!-- Main infobar --> <screen name="InfoBar" flags="wfNoBorder" position="80,500" size="1130,190" title="InfoBar" > <!-- Background --> <ePixmap position="0,0" zPosition="-1" size="1130,190" pixmap="BlackDreamHD/infobar.png" /> <!-- Service name --> <widget source="session.CurrentService" render="Label" position="150,6" size="440,36" font="Regular;25" valign="top" noWrap="1" backgroundColor="black" transparent="1"> <convert type="ServiceName">Name</convert> </widget> </screen> </skin>
Zurück zum Inhaltsverzeichnis:
Service provider
Die Definition des "Service provider" bedeutet einfach nur der Providernamen des Sendeveranstalters.
Innerhalb dieses "widget" geben wir nun an wo denn innerhalb der Infobar der Name des Sendeveranstalters erscheinen soll.
<!-- Service provider --> <widget source="session.CurrentService" render="Label" position="150,29" size="230,25" font="Regular;20" valign="left" noWrap="1" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-2,-2" transparent="1" > <convert type="ServiceName">Provider</convert> </widget>
Erklärung skin.xml des Service provider
- Wie bekannt die Postion, den gewünschten Font incl. der Größe und der Farbe der Schrift
- neu ist backgroundColor="background" damit können wir die Hintergrundfarbe der Schrift beeinflussen
- auch neu ist foregroundColor="foreyellow" damit können wir die Vordergrundgrundfarbe der Schrift beeinflussen
- Mit shadowColor="black" können wir der Schrift einen Schatten geben und diesen auch eine bestimmte Farbe zuweisen
- Mit shadowOffset="-2,-2" wird festgelegt wie stark der Schatten ausfallen soll. Hier sollte und kann man experimentieren was einem selbst liegt und oder ob man das haben will..
Zurück zum Inhaltsverzeichnis:
Time
Die Definition der "Zeit" wird auch wieder in einem eigenen "widget" dargestellt.
Im Skin Default-HD wird dies einfach dargestellt, dort ist ja nur die Stunden und die Minuten dann sichtbar mittels dem "Default" in der Zeile <convert type="ClockToText">Default</convert>
<!-- Time --> <widget source="global.CurrentTime" render="Label" position="50,54" size="70,24" font="Regular;22" foregroundColor="grey" backgroundColor="background" transparent="1"> <convert type="ClockToText">Default</convert> </widget>
Im Skin BlackdreamHD soll aber noch die Sekunden angezeigt werden, und diese aber etwas kleiner und hochgestellt sein.
Also müssen wir uns einem kleinen Trick einfallen lassen und der Code wurde dann so aussehen:
<!-- Time --> <widget source="global.CurrentTime" render="Label" position="980,7" size="75,30" font="Regular;24" halign="right" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="ClockToText">Default</convert> </widget> <eLabel text=":" position="1060,7" size="5,30" font="Regular;24" halign="right" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1"/> <widget source="global.CurrentTime" render="Label" position="1070,7" size="35,30" font="Regular;19" valign="top" halign="left" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="ClockToText">Format:%S</convert> </widget>
Erklärung skin.xml zum Widget "Time"
- <convert type="ClockToText">Default</convert> stellt die Uhrzeit in Stunden und Minuten dar
- mittels eLabel text=":" setzten wir nach der Uhrzeit manuell einen Doppelpunkt an die gewünschte Position
- <convert type="ClockToText">Format:%S</convert> stellt von der Uhrzeit nur die Sekunden dar
- Mittels valign="top" setzten wir die Sekunden nach oben im Textfeld der Größe size="35,30"
- Mittels halign="left" setzten wir die Sekunden nach links (zur Richtung des Doppelpunktes) im Textfeld der Größe size="35,30"
- Wer die Uhrzeit gerne einfach hätte aber mit den Sekunden, kann auch <convert type="ClockToText">WithSeconds</convert> benutzen!!
Zurück zum Inhaltsverzeichnis:
Date
Die Definition des "Datums" wird auch wieder wie alles in einem eigenen "widget" dargestellt.
Im Skin wird dies einfach dargestellt mittels der Zeile <convert type="ClockToText">Format:%d.%m.%Y</convert>
<!-- Date --> <widget source="global.CurrentTime" render="Label" position="925,29" size="170,25" font="Regular;20" backgroundColor="background" foregroundColor="foreyellow" halign="right" noWrap="1" transparent="1" > <convert type="ClockToText">Format:%d.%m.%Y</convert> </widget>
Wie einem Nun evtl. Auffällt ist die Anzeige des Datums ja fast Identisch wie die der Uhrzeit.
Auch diese Zeile <convert type="ClockToText">Format:%d.%m.%Y</convert> sieht bis auf die Formatausgabe ja fast gleich aus, das liegt daran das hier ein "Converter" verwendet wird.
Innerhalb des Converters haben wir die Möglichkeit mittels der Format-Ausgabe das gewünschte darstellen zu lassen solange es der Converter zulässt.
Erklärung skin.xml zum Widget "Date"
- <convert type="ClockToText">Format:%d.%m.%Y</convert> die Ausgabe bedeutet %d = Tag, %m = Monat, %Y = Jahr
- Der Convertor "ClockToText" selbst wäre zu finden in: /usr/lib/enigma2/python/Componetns/Converter
Zurück zum Inhaltsverzeichnis:
Progressbar (current event duration)
Die Progressbar ist die Grafische Anzeige wie lange eine Sendung schon läuft bzw. wie Lange diese noch bis zum Ende benötigt.
<!-- Progressbar (current event duration) --> <ePixmap pixmap="BlackDreamHD/icons/progress_bg.png" position="150,64" zPosition="0" size="780,8" transparent="1" alphatest="on" /> <widget source="session.Event_Now" render="Progress" position="150,64" size="780,8" pixmap="BlackDreamHD/icons/progress_fr.png" zPosition="1" transparent="1"> <convert type="EventTime">Progress</convert> </widget>
Erklärung skin.xml zur Progressbar
- Mittels der Ersten Zeile wird die Hintergrundgrafik geladen, incl. der zPosition="0"
- Mit der zweiten Zeile bzw. dem Widget wird nun die zweite Grafik auf die erste gelegt zPosition="1" der Fortschritt wird mittels eines Render ermittelt
- Der Render "Progress" ist zu finden in: /usr/lib/enigma2/python/Componetns/Renderer
Zurück zum Inhaltsverzeichnis:
Audio icon (is there multichannel audio?)
Mittles diesem Icon wollen wir in der Infobar uns Anzeigen lassen ob ein Sender seinen Ton in DolbyDigital bzw. AC3 (IsMultichannel) ausstrahlt.
Wird der Ton ausgestrahlt erscheint das entsprechende Icon, wird keiner ausgestrahlt ist es nur Schwach bzw. gar nicht zu sehen.
<!-- Audio icon (is there multichannel audio?) --> <ePixmap pixmap="BlackDreamHD/icons/icon_dolby_off.png" position="647,7" size="57,20" zPosition="1" alphatest="blend"/> <widget source="session.CurrentService" render="Pixmap" pixmap="BlackDreamHD/icons/icon_dolby_on.png" position="647,7" size="57,20" zPosition="2" alphatest="blend"> <convert type="ServiceInfo">IsMultichannel</convert> <convert type="ConditionalShowHide"/> </widget>
Erklärung skin.xml zur multichannel audio
- Mittels der zPosition="1" wird ein fast nicht Sichbares Icon (icon_dolby_off.png) dargestellt.
- alphatest="blend" bedeutet das sich das entsprechende Bild auch überblenden läßt
- Ist ein Audio-Multichannel vorhanden wird mittels zPosition="2" das gut sichtbare Icon (icon_dolby_on.png) über das erste eingeblendet
- Der Render "Pixmap" ist zu finden in: /usr/lib/enigma2/python/Componetns/Renderer
Zurück zum Inhaltsverzeichnis:
Videoformat icon (16:9?)
Die Grundfunktion ist eigentlich genau Identisch wie Audio-Icon, nur das wie hier nun Anzeigen wollen ob eine Sendung in 4:3 oder in 16:9 ausgestrahlt wird.
Wird in 16:9 ausgestrahlt erscheint das entsprechende Icon, wird in 4:3 ausgestrahlt ist es nur Schwach bzw. gar nicht zu sehen.
<!-- Videoformat icon (16:9?) --> <ePixmap pixmap="BlackDreamHD/icons/icon_format_off.png" position="717,7" size="36,20" zPosition="1" alphatest="blend"/> <widget source="session.CurrentService" render="Pixmap" pixmap="BlackDreamHD/icons/icon_format_on.png" position="717,7" size="36,20" zPosition="2" alphatest="blend"> <convert type="ServiceInfo">IsWidescreen</convert> <convert type="ConditionalShowHide"/> </widget>
Erklärung skin.xml zum Videoformat icon
- Der Aufbau und Ablauf ist eigentlich Identisch wie beim Audio-Element
- Ein zigster Haupt-Unterschied liegt hierbei "<convert type="ServiceInfo">IsWidescreen</convert>"
- Warum dieses Bild? Bei einem echten 16:9 Film ist dies ja am TV selbst recht gut zu erkennen (Breitbild), Doch leider bei den HD+ Sendern wo gerne skaliertes Material Verwendung findet kommt es doch recht oft vor das es als 16:9 ausgegeben wird und optisch doch nur ein 4.3 Bild ist. Da sieht man auch gleich wer schlechten Mist sendet :-)
Zurück zum Inhaltsverzeichnis:
Teletext icon (is teletext available?)
Mit diesem Icon wollen wir Anzeigen ob der Sender für die laufende Sendung auch einen Teletext mit ausstrahlt.
Wird ein Teletext ausgestrahlt erscheint das entsprechende Icon, wird in keines ausgestrahlt ist es nur Schwach bzw. gar nicht zu sehen.
<!-- Teletext icon (is teletext available?) --> <ePixmap pixmap="BlackDreamHD/icons/icon_txt_off.png" position="767,7" size="33,20" zPosition="1" alphatest="blend"/> <widget source="session.CurrentService" render="Pixmap" pixmap="BlackDreamHD/icons/icon_txt_on.png" position="767,7" size="33,20" zPosition="2" alphatest="blend"> <convert type="ServiceInfo">HasTelext</convert> <convert type="ConditionalShowHide"/> </widget>
Erklärung skin.xml zum Teletext
- Genau wie vorher gleich gestaltet, Unterschied liegt hier bei <convert type="ServiceInfo">HasTelext</convert>
Zurück zum Inhaltsverzeichnis:
HDTV icon
Mittels diesem Icon wollen wir uns Anzeigen lassen ob die Sendung in HD, oder besser gesagt in einer höheren Auflösung als 720 ausgestrahlt wird.
<!-- HDTV icon --> <widget source="session.CurrentService" render="Pixmap" pixmap="BlackDreamHD/icons/icon_hd_off.png" position="814,7" size="29,20" zPosition="1" alphatest="blend"> <convert type="ServiceInfo">VideoWidth</convert> <convert type="ValueRange">0,720</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.CurrentService" render="Pixmap" pixmap="BlackDreamHD/icons/icon_hd_on.png" position="814,7" size="29,20" zPosition="2" alphatest="blend"> <convert type="ServiceInfo">VideoWidth</convert> <convert type="ValueRange">721,1980</convert> <convert type="ConditionalShowHide" /> </widget>
Erklärung skin.xml zum HD icon
- Hier sind es zwei Widget die benötigt werden.
- Haupt-Unterschied liegt hier bei <convert type="ServiceInfo">VideoWidth</convert>
- Weiterhin wird im ersten Widget <convert type="ValueRange">0,720</convert> ob die Auflösung zwischen 0 - 720 ist (icon off)
- im zweiten Widget <convert type="ValueRange">721,1980</convert> wird gebrüft ob die Auflösung zwischen 721 und 1980 ist (icon on)
Zurück zum Inhaltsverzeichnis:
Crypt icon (encrypted service?)
Mittels diesen Icons wollen wir uns Anzeigen lassen ob ein Sender Verschlüsselt ausgestrahlt wird.
<!-- Crypt icon (encrypted service?) --> <ePixmap pixmap="BlackDreamHD/icons/icon_crypt_off.png" position="857,7" size="26,20" zPosition="1" alphatest="blend"/> <widget source="session.CurrentService" render="Pixmap" pixmap="BlackDreamHD/icons/icon_crypt_on.png" position="857,7" size="26,20" zPosition="2" alphatest="blend"> <convert type="ServiceInfo">IsCrypted</convert> <convert type="ConditionalShowHide"/> </widget>
Erklärung skin.xml zum Crypt icon
Auch hier ist der Aufbau wieder fast gleich wie schon bekannt sein sollte...
- Haupt Unterschied liegt hier nun bei <convert type="ServiceInfo">IsCrypted</convert>
Zurück zum Inhaltsverzeichnis:
tuners in use?
Die Dreambox verwaltet bis zu 4 Tuner die Sie mit den Buchstaben A, B, C, D deklariert
Im Defaultskin wie auch in den meisten anderen Skins sieht dieses große Element in etwa so aus:
<!-- tuners in use? --> <widget source="session.TunerInfo" render="FixedLabel" text="A" position="180,138" size="10,15" zPosition="2" font="Regular;15" foregroundColor="yellow" backgroundColor="#4e5a74" transparent="1"> <convert type="TunerInfo">TunerUseMask</convert> <convert type="ValueBitTest">1</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.TunerInfo" render="FixedLabel" text="B" position="200,138" size="10,15" zPosition="2" font="Regular;15" foregroundColor="yellow" backgroundColor="#4e5a74" transparent="1"> <convert type="TunerInfo">TunerUseMask</convert> <convert type="ValueBitTest">2</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.TunerInfo" render="FixedLabel" text="C" position="220,138" size="10,15" zPosition="2" font="Regular;15" foregroundColor="yellow" backgroundColor="#4e5a74" transparent="1"> <convert type="TunerInfo">TunerUseMask</convert> <convert type="ValueBitTest">4</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.TunerInfo" render="FixedLabel" text="D" position="240,138" size="10,15" zPosition="2" font="Regular;15" foregroundColor="yellow" backgroundColor="#4e5a74" transparent="1"> <convert type="TunerInfo">TunerUseMask</convert> <convert type="ValueBitTest">8</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="A" position="180,138" size="10,15" zPosition="3" font="Regular;15" foregroundColor="green" backgroundColor="#4e5a74" transparent="1"> <convert type="FrontendInfo">NUMBER</convert> <convert type="ValueRange">0,0</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="B" position="200,138" size="10,15" zPosition="3" font="Regular;15" foregroundColor="green" backgroundColor="#4e5a74" transparent="1"> <convert type="FrontendInfo">NUMBER</convert> <convert type="ValueRange">1,1</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="C" position="220,138" size="10,15" zPosition="3" font="Regular;15" foregroundColor="green" backgroundColor="#4e5a74" transparent="1"> <convert type="FrontendInfo">NUMBER</convert> <convert type="ValueRange">2,2</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="D" position="240,138" size="10,15" zPosition="3" font="Regular;15" foregroundColor="green" backgroundColor="#4e5a74" transparent="1"> <convert type="FrontendInfo">NUMBER</convert> <convert type="ValueRange">3,3</convert> <convert type="ConditionalShowHide" /> </widget>
Im Skin BlackdreamHD möchte ich aber das zusätzlich zu den Tunerbezeichnungen A,B,C,D auch mit angezeigt wird ob es sich hierbei um einen DVB-S, DVB-C oder DVB-T Tuner handelt.
Daher habe ich diese abgewandelte Darstellung gewählt:
<!-- tuners in use? --> <widget source="session.FrontendInfo" render="FixedLabel" text="DVB-S" position="780,29" size="60,25" font="Regular;19" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="FrontendInfo">TYPE</convert> <convert type="ValueRange">0,0</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="DVB-C" position="780,29" size="60,25" font="Regular;19" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="FrontendInfo">TYPE</convert> <convert type="ValueRange">1,1</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="DVB-T" position="780,29" size="60,25" font="Regular;19" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="FrontendInfo">TYPE</convert> <convert type="ValueRange">2,2</convert> <convert type="ConditionalShowHide" /> </widget> <eLabel text="A" position="850,29" zPosition="1" size="15,25" font="Regular;19" halign="center" foregroundColor="darkgrey" backgroundColor="transpBlack" transparent="1" /> <eLabel text="B" position="867,29" zPosition="1" size="15,25" font="Regular;19" halign="center" foregroundColor="darkgrey" backgroundColor="transpBlack" transparent="1" /> <eLabel text="C" position="883,29" zPosition="1" size="15,25" font="Regular;19" halign="center" foregroundColor="darkgrey" backgroundColor="transpBlack" transparent="1" /> <eLabel text="D" position="900,29" zPosition="1" size="15,25" font="Regular;19" halign="center" foregroundColor="darkgrey" backgroundColor="transpBlack" transparent="1" /> <widget source="session.TunerInfo" render="FixedLabel" text="A" position="850,29" zPosition="2" size="15,25" font="Regular;19" halign="center" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="TunerInfo">TunerUseMask</convert> <convert type="ValueBitTest">1</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.TunerInfo" render="FixedLabel" text="B" position="867,29" zPosition="2" size="15,25" font="Regular;19" halign="center" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="TunerInfo">TunerUseMask</convert> <convert type="ValueBitTest">2</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.TunerInfo" render="FixedLabel" text="C" position="883,29" zPosition="2" size="15,25" font="Regular;19" halign="center" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="TunerInfo">TunerUseMask</convert> <convert type="ValueBitTest">4</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.TunerInfo" render="FixedLabel" text="D" position="900,29" zPosition="2" size="15,25" font="Regular;19" halign="center" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="TunerInfo">TunerUseMask</convert> <convert type="ValueBitTest">8</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="A" position="850,29" zPosition="3" size="15,25" font="Regular;19" halign="center" backgroundColor="background" foregroundColor="green" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="FrontendInfo">NUMBER</convert> <convert type="ValueRange">0,0</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="B" position="867,29" zPosition="3" size="15,25" font="Regular;19" halign="center" backgroundColor="background" foregroundColor="green" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="FrontendInfo">NUMBER</convert> <convert type="ValueRange">1,1</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="C" position="883,29" zPosition="3" size="15,25" font="Regular;19" halign="center" backgroundColor="background" foregroundColor="green" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="FrontendInfo">NUMBER</convert> <convert type="ValueRange">2,2</convert> <convert type="ConditionalShowHide" /> </widget> <widget source="session.FrontendInfo" render="FixedLabel" text="D" position="900,29" zPosition="3" size="15,25" font="Regular;19" halign="center" backgroundColor="background" foregroundColor="green" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="FrontendInfo">NUMBER</convert> <convert type="ValueRange">3,3</convert> <convert type="ConditionalShowHide" /> </widget>
Erklärung skin.xml zur tuners in use?
- Im Default-Skin wird nur der jeweils aktive Tuner mittels des entsprechenden Buchstaben angezeigt.
- Im BlackdreamHD-Skin wird jeder der 4 möglichen Tuner grau angezeigt
- Der aktive Tuner selbst wird dann mit Grün angezeigt
- sollte ein weitere Tuner noch benutzt werden wird dieser mittels Gelb dargestellt (intressant für mehr Tuner Boxen)
Zurück zum Inhaltsverzeichnis:
Channellogo (Picon)
Wer sich Picon (Senderlogos) installiert kann sich diese auch in der Infobar anzeigen lassen
Dies geschieht mittels dem folgenden einfachen Widget:
<!-- Channellogo (Picon) --> <widget source="session.CurrentService" render="Picon" position="30,70" size="100,60" zPosition="1" alphatest="blend"> <convert type="ServiceName">Reference</convert> </widget>
Erklärung skin.xml zum Channellogo (Picon)
- wer wie hier ein eigenes "default icon" haben will (falls keine Picons installiert wurden) muss einfach ein picon_default.png Skinordner haben.
- Dieses wird Überblendet sobald Picons verwendet werden, dies ist möglich mitttles dem Renderer render="Picon"
Zurück zum Inhaltsverzeichnis:
Blinking pixmap (recording in progress?)
Hier soll nun eine Blinkende Grafik angezeigt werden, falls eine Aufnahme läuft. In diesem Falle ist es ein roter Punkt mit einem kleinen weisen "R" in der Mitte drinn
<!-- Blinking pixmap (recording in progress?) --> <widget source="session.RecordState" render="Pixmap" position="950,7" size="25,25" zPosition="1" pixmap="BlackDreamHD/icons/rec.png" alphatest="blend"> <convert type="ConditionalShowHide">Blink</convert> </widget>
Erklärung skin.xml zum Blinking pixmap
- der Renderer dafür ist wieder render="Pixmap"
- Mittels <convert type="ConditionalShowHide">Blink</convert> wird veranlasst das die Grafik an und aus geblendet wird
Zurück zum Inhaltsverzeichnis:
Event (now)
Hier soll nun dargestellt werden was gerade Läuft, und wie Lange die laufende Sendung noch in Minuten läuft bis diese beendet ist.
<!-- Event (now) --> <ePixmap pixmap="skin_default/icons/icon_event.png" position="150,89" zPosition="1" size="15,10" transparent="1" alphatest="on" /> <widget source="session.Event_Now" render="Label" position="177,80" size="70,22" font="Regular;24" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1" > <convert type="EventTime">StartTime</convert> <convert type="ClockToText">Default</convert> </widget> <eLabel text="-" position="240,80" size="20,40" font="Regular;24" halign="center" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1" /> <widget source="session.Event_Now" render="Label" position="263,80" size="70,22" font="Regular;24" halign="left" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="EventTime">EndTime</convert> <convert type="ClockToText">Default</convert> </widget> <widget source="session.Event_Now" render="Label" position="335,80" size="490,27" font="Regular;24" noWrap="1" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1" > <convert type="EventName">Name</convert> </widget> <eLabel text="(" position="835,80" size="10,22" font="Regular;24" halign="left" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1" /> <widget source="session.Event_Now" render="Label" position="845,80" size="110,22" font="Regular;24" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" halign="right" transparent="1" > <convert type="EventTime">Remaining</convert> <convert type="RemainingToText">InMinutes</convert> </widget> <eLabel text=")" position="960,80" size="10,22" font="Regular;24" halign="right" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1" />
Erklärung skin.xml zum Event (now)
- 1. Zeile (ePixmap) lädt die Grafik mit dem doppelten Pfeil
- 2. erstes Widget liest die Startzeit der Sendung aus
- 3. erstes (eLabel text) dort wird einfach ein Bindestrich gesetzt das nach der Startzeit erscheinen soll
- 4. zweites Widget liest die Endzeit der Laufende Sendung aus
- 5. drittes Widget liest den Namen der Sendung aus und stellt Ihn dar
- 6. zweites (eLabel text) wird einfach die erste Klammer gesetzt
- 7. viertes und letztes widget liest die verbleibenden Restlaufzeit der Sendung aus
- 8. Letzter (eLabel text) schliest die erste Klammer mit der End-Klammer
Zurück zum Inhaltsverzeichnis:
Event (next)
Hier soll nun dargestellt werden werden welche Sendung als nächstes kommt, und wie Lange die nächste Sendung in Minuten läuft.
<!-- Event (next) --> <ePixmap pixmap="BlackDreamHD/icons/icon_event-next.png" position="150,120" zPosition="1" size="15,10" transparent="1" alphatest="on" /> <widget source="session.Event_Next" render="Label" position="177,110" size="70,22" font="Regular;24" backgroundColor="background" foregroundColor="grey" transparent="1" > <convert type="EventTime">StartTime</convert> <convert type="ClockToText">Default</convert> </widget> <eLabel text="-" position="240,110" size="20,40" font="Regular;20" halign="center" backgroundColor="background" foregroundColor="grey" transparent="1" /> <widget source="session.Event_Next" render="Label" position="263,110" size="70,22" font="Regular;24" halign="left" backgroundColor="background" foregroundColor="grey" transparent="1"> <convert type="EventTime">EndTime</convert> <convert type="ClockToText">Default</convert> </widget> <widget source="session.Event_Next" render="Label" position="335,110" size="490,27" font="Regular;24" noWrap="1" backgroundColor="background" foregroundColor="grey" transparent="1" > <convert type="EventName">Name</convert> </widget> <eLabel text="(" position="835,110" size="10,22" font="Regular;24" halign="left" backgroundColor="background" foregroundColor="grey" transparent="1" /> <widget source="session.Event_Next" render="Label" position="845,110" size="110,22" font="Regular;24" backgroundColor="background" foregroundColor="grey" halign="right" transparent="1" > <convert type="EventTime">Duration</convert> <convert type="ClockToText">InMinutes</convert> </widget> <eLabel text=")" position="960,110" size="10,22" font="Regular;24" halign="right" backgroundColor="background" foregroundColor="grey" transparent="1" />
Erklärung skin.xml zum Event (next)
- 1. Zeile (ePixmap) lädt die Grafik mit dem doppelten Pfeil
- 2. erstes Widget liest die Startzeit der Sendung aus
- 3. erstes (eLabel text) dort wird einfach ein Bindestrich gesetzt das nach der Startzeit erscheinen soll
- 4. zweites Widget liest die Endzeit der nächsten Sendung aus
- 5. drittes Widget liest den Namen der Sendung aus und stellt Ihn dar
- 6. zweites (eLabel text) wird einfach die erste Klammer gesetzt
- 7. viertes und letztes widget liest die Laufzeit der Sendung in Minuten aus
- 8. Letzter (eLabel text) schlisst die erste Klammer mit der End-Klammer
Zurück zum Inhaltsverzeichnis:
Signal Quality
Die Signal Qualität wird meist in SNR (Signal to Noise -> Signal/Rauschabstand) angegeben, näheres dazu im Wikipedia.
Die Angabe des SNR-Wertes kann in Dezibel (db) und/oder in Prozent (%) erfolgen,
Der XML-Code hierzu ist recht einfach gestaltet:
<!-- Signal Quality --> <eLabel text="SNR:" position="990,70" size="50,20" font="Regular;19" backgroundColor="black" foregroundColor="grey" transparent="1" /> <widget source="session.FrontendStatus" render="Label" position="1040,70" size="90,20" font="Regular;19" backgroundColor="black" transparent="1"> <convert type="FrontendInfo">SNRdB</convert> </widget>
Erklärung skin.xml zur Signal Quality
- Wer in der Anzeige lieber die Angabe in Prozent haben will läßt bei der folgenden Zeile das "dB" weg: <convert type="FrontendInfo">SNR</convert>
- In der 1. Zeile eLabel text="SNR:" wird der Schriftzug SNR: gesetzt und Positioniert
- Mit dem Widget wird dann die Signal Qualität ausgegeben und Positioniert
Zurück zum Inhaltsverzeichnis:
Bit error rate
Dies gibt die Bitfehlerhäufigkeit an. Der Idealfall wäre ein Wert von 0, ab einem gewissen Wert reist das Bild ab!
Der Code ist soweit gleich zu dem der Signal-Qualität nur das eben der Wert "SNR" durch "BER" ersetzt wird.
<!-- Bit error rate --> <eLabel text="BER:" position="990,100" size="50,20" font="Regular;19" backgroundColor="black" foregroundColor="grey" transparent="1" noWrap="1" /> <widget source="session.FrontendStatus" render="Label" position="1040,100" size="120,20" font="Regular;19" backgroundColor="black" transparent="1" noWrap="1"> <convert type="FrontendInfo">BER</convert> </widget>
Erklärung skin.xml zur Bitfehlerhäufigkeit
- In der 1. Zeile eLabel text="BER:" wird der Schriftzug BER: gesetzt und Positioniert
- Mit dem Widget wird dann die "Bit error rate" ausgegeben und Positioniert
Zurück zum Inhaltsverzeichnis:
Signal Strength
Die Signal-Stärke oder besser Automatische Verstärkungsregelung wird mittels AGC und in % ausgegeben.
Der Code ist soweit gleich zu dem der Signal-Qualität nur das eben der Wert "SNR" durch "AGC" ersetzt wird.
<!-- Signal Strength --> <eLabel text="AGC:" position="990,130" size="50,20" font="Regular;19" backgroundColor="black" foregroundColor="grey" transparent="1" noWrap="1" /> <widget source="session.FrontendStatus" render="Label" position="1040,130" size="120,20" font="Regular;19" backgroundColor="black" transparent="1" noWrap="1"> <convert type="FrontendInfo">AGC</convert> </widget>
Erklärung skin.xml zur Automatische Verstärkungsregelung
- In der 1. Zeile eLabel text="AGC:" wird der Schriftzug AGC: gesetzt und Positioniert
- Mit dem Widget wird dann die "Signal Strength" ausgegeben und Positioniert
Zurück zum Inhaltsverzeichnis:
Video Size (Width & Height)
Mit dieser Ausgabe wollen wir uns nun die reale Video-Größe der Ausstrahlenden Sendung uns darstellen lassen. Ums gleich zu sehen in welcher Auflösung die Sendung wirklich ausgestrahlt wird.
<!-- Video Size (Width & Height) --> <widget source="session.CurrentService" render="Label" position="20,135" size="50,25" font="Regular;21" halign="right" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-1,-1" transparent="1"> <convert type="ServiceInfo">VideoWidth</convert> </widget> <eLabel text="x" position="75,135" size="13,25" font="Regular;20" halign="center" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-1,-1" transparent="1" /> <widget source="session.CurrentService" render="Label" position="94,135" size="50,25" font="Regular;21" backgroundColor="background" foregroundColor="foreyellow" shadowColor="black" shadowOffset="-1,-1" transparent="1"> <convert type="ServiceInfo">VideoHeight</convert> </widget>
Erklärung skin.xml zur Video Size (Width & Height)
- im ersten widget ( <convert type="ServiceInfo">VideoWidth</convert> ) lassen wir uns die Videobreite anzeigen
- Mittels dem eLabel text="x" setzetn wir uns einfach ein x zur Trennung
- im zweiten widget ( <convert type="ServiceInfo">VideoHeight</convert> ) lassen wir uns die Videohöhe nach dem x anzeigen
Zurück zum Inhaltsverzeichnis:
Red button (is recording possible?)
Diese Funktion im Skin funktioniert leider nicht bei der DM8000!
Bei den anderen Boxen wird diese auch nur aktiv, wenn eine Festplatte verbaut bzw. extern (USB, E-Sata) angeschlossen ist. Oder wenn wir zumindest unseren Aufzeichnungspfad übers Netzwerk auf eine andere Position verlegt haben.
- Sind also keine Aufnahmepfade gesetzt wird nur vom Defaultskin ein Transparentr Button angezeigt.
- Wurde die Aufnahmepfade gesetzt oder Speichermedin angeschlossen erscheint ein roter Button (vom Default-HD skin) und der Schriftzug "Aufnahme"
<!-- Red button (is recording possible?) --> <ePixmap pixmap="Default-HD/buttons/button_red_off.png" position="35,166" size="20,20" alphatest="on" /> <widget source="RecordingPossible" render="Pixmap" pixmap="Default-HD/buttons/button_red.png" position="35,166" size="20,20" zPosition="1" alphatest="on"> <convert type="ConditionalShowHide" /> </widget> <widget source="ShowRecordOnRed" render="FixedLabel" text="Record" position="60,166" size="160,22" zPosition="1" font="Regular;18" backgroundColor="background" foregroundColor="grey" transparent="1"> <convert type="ConditionalShowHide" /> </widget> <widget source="RecordingPossible" render="FixedLabel" text="Record" position="60,166" size="160,22" zPosition="1" font="Regular;18" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1" >> <convert type="ConditionalShowHide" /> </widget>
Erklärung skin.xml zum Red button (is recording possible?)
- im ersten ePixmap wird der Transparente Button vom SKin Default-HD geladen
- im ersten Widget wird der rote Botton über den Transparenten gelegt wenn aus der source="RecordingPossible" ermittelt wurde das diese Funktion aktiv ist
- In den weiteren Widget wird die Schrift die erscheinen soll deklariert
Zurück zum Inhaltsverzeichnis:
Red button, Hbbtv (only if record is not on red, for now)
Ist die Recordfunktion nicht vorhanden auf dem Roten Button, bzw. wurde auf einen andere verlegt wird in diesem falle hiermit die HbbTV Funktion auf dem roten Button gelegt.
Dies ist eine neue Funktion des OE 2.0, und ist in den alten OE 1.6 nicht enthalten bzw. würde wohl crashs produzieren! |
<!-- Red button, Hbbtv (only if record is not on red, for now) --> <widget source="HbbtvApplication" render="Pixmap" pixmap="Default-HD/buttons/button_red.png" position="35,166" size="20,20" zPosition="1" alphatest="on"> <convert type="ConditionalShowHide" /> </widget> <widget source="HbbtvApplication" render="Label" position="60,166" size="160,22" zPosition="1" font="Regular;18" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="HbbtvApplicationInfo">Name</convert> </widget>
Erklärung skin.xml zum Red button, Hbbtv (only if record is not on red, for now)
- im ersten Widget wird der rote Botton über den Transparenten gelegt aus dem EIntrag vorher Red button (is recording possible?)
- In den weiteren Widget wird die Schrift die erscheinen soll deklariert
Zurück zum Inhaltsverzeichnis:
Green button (is subservices available?)
Der Grüne Button wird angezeigt wenn man sich auf einem Sender befindet der weitere Unterkanäle besitzt.
So zum Beispiel das Sky Sport Portal, Sky Select oder das Sky Erotik Portal.
<!-- Green button (is subservices available?) --> <ePixmap pixmap="BlackDreamHD/buttons/grey.png" position="250,165" size="35,25" alphatest="on" /> <widget source="session.CurrentService" render="Pixmap" pixmap="BlackDreamHD/buttons/green.png" position="250,165" size="35,25" zPosition="1" alphatest="on"> <convert type="ServiceInfo">SubservicesAvailable</convert> <convert type="ConditionalShowHide" /> </widget> <eLabel text="Subservices" position="295,166" size="160,22" font="Regular;18" backgroundColor="background" foregroundColor="grey" transparent="1" /> <widget source="session.CurrentService" render="FixedLabel" text="Subservices" position="295,166" size="160,22" zPosition="1" font="Regular;18" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1"> <convert type="ServiceInfo">SubservicesAvailable</convert> <convert type="ConditionalShowHide" /> </widget>
Erklärung skin.xml zum Green button (is subservices available?)
- im ersten ePixmap wird der Graue (Transparente) Button positioniert
- Im nächsten Widget wird der grüne Button über den Grauen gelegt wenn Unterkanäle vorhanden sind
- Mittels dem eLabel wird der Text Unterkanäle "grau" dargestellt
- im letzten Widget wird der normale Text "Unterkanäle" über den "grauen" gelegt wenn Unterkanäle vorhanden sind
Zurück zum Inhaltsverzeichnis:
Yellow button (is timeshift possible?)
Hier geht es darum ob Timeshift Aufzeichnungen möglich sind, der Aufbau ist soweit Identisch wie zu "Red button (is recording possible?)"
<!-- Yellow button (is timeshift possible?) --> <ePixmap pixmap="BlackDreamHD/buttons/grey.png" position="450,165" size="35,25" alphatest="on" /> <widget source="TimeshiftPossible" render="Pixmap" pixmap="BlackDreamHD/buttons/yellow.png" position="450,165" size="35,25" zPosition="1" alphatest="on"> <convert type="ConditionalShowHide" /> </widget> <widget source="ShowTimeshiftOnYellow" render="FixedLabel" text="Timeshift" position="500,165" size="160,22" zPosition="1" font="Regular;18" backgroundColor="background" foregroundColor="grey" transparent="1"> <convert type="ConditionalShowHide" /> </widget> <widget source="TimeshiftPossible" render="FixedLabel" text="Timeshift" position="500,165" size="160,22" zPosition="1" font="Regular;18" backgroundColor="background" shadowColor="black" shadowOffset="-2,-2" transparent="1" > <convert type="ConditionalShowHide" /> </widget>
Erklärung skin.xml zum Yellow button (is timeshift possible?)
- im ersten ePixmap wird der Transparente Button vom SKin Default-HD geladen
- im ersten Widget wird der gelbe Botton über den Transparenten gelegt wenn aus der source="ShowTimeshiftOnYellow" ermittelt wurde das diese Funktion aktiv ist
- In den weiteren Widget wird die Schrift die erscheinen soll deklariert
Zurück zum Inhaltsverzeichnis: