mirror of
https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
synced 2023-10-19 17:58:31 +02:00
321 lines
21 KiB
XML
321 lines
21 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE displaychannel SYSTEM "../../../dtd/displaychannel.dtd">
|
|
|
|
<displaychannel x="0" y="0" width="100%" height="100%" fadetime="{fadetime}">
|
|
<background>
|
|
<!-- background infobar -->
|
|
<area x="0" y="80%" width="100%" height="20%" layer="1">
|
|
<fill color="{clrTransBlack}" />
|
|
</area>
|
|
<!-- background datetime -->
|
|
<area x="70%" y="0" width="30%" height="13%" layer="1">
|
|
<fill color="{clrTransBlack}" />
|
|
<drawrectangle x="0" y="0" width="45%" height="100%" color="{clrTransBlueLight}" />
|
|
</area>
|
|
<!-- background weather -->
|
|
<area x="70%" y="15%" width="30%" height="13%" layer="1">
|
|
<fill color="{clrTransBlack}" />
|
|
<drawrectangle x="0" y="0" width="45%" height="100%" color="{clrTransBlueLight}" />
|
|
</area>
|
|
<!-- background channellogo -->
|
|
<area x="0" y="80%" width="20%" height="20%" layer="2">
|
|
<fill color="{clrTransBlueLight}" />
|
|
</area>
|
|
</background>
|
|
|
|
<!-- Available Variables channelinfo:
|
|
{channelnumber} Number of Channel, with "-" in case of channel switching
|
|
{channelname} Name of current Channel
|
|
{channellogoexists} true if a channel logo exists
|
|
{channelid} ChannelID as path to display channel logo
|
|
{switching} true if a number is pressed on the remote to switch to a dedicated channel
|
|
-->
|
|
<channelinfo>
|
|
<area x="22%" y="80%" width="76%" height="7%" layer="2">
|
|
<fill condition="not{switching}" color="{clrTransparent}" />
|
|
<drawtext condition="{switching}" x="0" y="-10" font="{light}" fontsize="99%" color="{clrWhite}" text="{channelnumber}: {channelname}" />
|
|
</area>
|
|
<area x="0" y="80%" width="20%" height="20%" layer="3">
|
|
<drawimage cache="true" condition="{channellogoexists}" imagetype="channellogo" path="{channelid}" width="98%" height="98%" align="center" valign="center" />
|
|
<drawtext condition="not{channellogoexists}" x="5" valign="center" font="{light}" fontsize="40%" color="{clrWhite}" text="{channelnumber}: {channelname}" />
|
|
</area>
|
|
</channelinfo>
|
|
<!-- Available Variables epginfo:
|
|
{currenttitle} Title of the current Schedule
|
|
{currentsubtitle} Subtitle of the current Schedule
|
|
{currentstart} Start of current Schedule in hh:mm
|
|
{currentstop} End of current Schedule in hh:mm
|
|
{currentduration} Duration of current Schedule in min
|
|
{currentdurationhours} Duration, full hours
|
|
{currentdurationminutes} Duration, rest of minutes
|
|
{currentelapsed} Elapsed time of current Schedule in min
|
|
{currentremaining} Remaining time of current Schedule in min
|
|
{currentrecording} true if current Schedule is recorded
|
|
{hasVPS} true if current Schedule has VPS
|
|
{nexttitle} Title of next Schedule
|
|
{nextsubtitle} Subtitle of next Schedule
|
|
{nextstart} Start of next Schedule in hh:mm
|
|
{nextstop} Stop of next Schedule in hh:mm
|
|
{nextduration} Duration of next Schedule in min
|
|
{nextdurationhours} Duration, full hours
|
|
{nextdurationminutes} Duration, rest of minutes
|
|
{nextrecording} true if next Schedule will be recorded
|
|
-->
|
|
<epginfo>
|
|
<area x="22%" y="80%" width="76%" height="7%" layer="2">
|
|
<drawtext name="title" x="0" valign="center" font="{light}" fontsize="99%" color="{clrWhite}" text="{currenttitle}" width="{areawidth} - {width(startstop)}"/>
|
|
<drawtext name="startstop" align="right" y="0" font="{light}" fontsize="60%" color="{clrWhite}" text="{currentstart} - {currentstop}" />
|
|
<drawtext align="right" y="45%" font="{light}" fontsize="60%" color="{clrWhite}" text="+ {currentremaining} min" />
|
|
</area>
|
|
<area x="22%" y="87%" width="76%" height="7%" layer="2">
|
|
<drawtext x="0" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{nexttitle}" width="{areawidth} - {width(startstop)}"/>
|
|
<drawtext name="startstop" align="right" y="0" font="{light}" fontsize="60%" color="{clrWhite}" text="{nextstart} - {nextstop}" />
|
|
<drawtext align="right" y="45%" font="{light}" fontsize="60%" color="{clrWhite}" text="{nextduration} min" />
|
|
</area>
|
|
</epginfo>
|
|
|
|
<!-- Available Variables progressbar:
|
|
{start} Start of current Schedule in hh:mm
|
|
{stop} End of current Schedule in hh:mm
|
|
{duration} Total Duration of current Schedule in seconds
|
|
{elapsed} Elapsed time of current Schedule in seconds
|
|
{remaining} Remaining time of current Schedule in seconds
|
|
-->
|
|
<progressbar>
|
|
<area x="22%" y="87%" width="76%" height="3" layer="2">
|
|
<drawrectangle x="0" y="1" width="100%" height="1" color="{clrWhite}" />
|
|
<drawrectangle x="0" y="0" width="{elapsed}/{duration}*{areawidth}" height="3" color="{clrTransBlueLight}" />
|
|
</area>
|
|
</progressbar>
|
|
|
|
<!-- Available Variables statusinfo:
|
|
{isRadio} true if channel is a radio channel
|
|
{hasVT} true if channel has video text
|
|
{isStereo} true if a stereo audio trac is available
|
|
{isDolby} true if a dolby audio track is available
|
|
{isEncrypted} true if channel is encrypted
|
|
{isRecording} true if currently a recording is running on this channel
|
|
{newmails} true if mailbox plugin is installed and new mails are available
|
|
-->
|
|
<statusinfo>
|
|
<area x="22%" y="94%" width="76%" height="6%" layer="2">
|
|
<!-- encrypted / decrypted icon -->
|
|
<drawimage name="enc" condition="{isEncrypted}" imagetype="icon" path="ico_crypt_on" x="{areawidth} - {width(enc)}" valign="center" width="{areaheight}*0.8*1.76" height="{areaheight}*0.8"/>
|
|
<drawimage condition="not{isEncrypted}" imagetype="icon" path="ico_crypt_off" x="{areawidth} - {width(enc)}" valign="center" width="{areaheight}*0.8*1.76" height="{areaheight}*0.8"/>
|
|
<!-- dolby icon -->
|
|
<drawimage name="dolby" condition="{isDolby}" imagetype="icon" path="ico_dolby_on" x="{posx(enc)} - 15 - {width(dolby)}" valign="center" width="{areaheight}*0.8*1.48" height="{areaheight}*0.8"/>
|
|
<drawimage condition="not{isDolby}" imagetype="icon" path="ico_dolby_off" x="{posx(enc)} - 15 - {width(dolby)}" valign="center" width="{areaheight}*0.8*1.48" height="{areaheight}*0.8"/>
|
|
<!-- videotext icon -->
|
|
<drawimage name="txt" condition="{hasVT}" imagetype="icon" path="ico_txt_on" x="{posx(dolby)} - 15 - {width(txt)}" valign="center" width="{areaheight}*0.8*1.3" height="{areaheight}*0.8"/>
|
|
<drawimage condition="not{hasVT}" imagetype="icon" path="ico_txt_off" x="{posx(dolby)} - 15 - {width(txt)}" valign="center" width="{areaheight}*0.8*1.3" height="{areaheight}*0.8"/>
|
|
<!-- recording icon -->
|
|
<drawimage name="rec" condition="{isRecording}" imagetype="icon" path="ico_rec_on" x="{posx(txt)} - 15 - {width(rec)}" valign="center" width="{areaheight}*0.8*1.96" height="{areaheight}*0.8"/>
|
|
<drawimage condition="not{isRecording}" imagetype="icon" path="ico_rec_off" x="{posx(txt)} - 15 - {width(rec)}" valign="center" width="{areaheight}*0.8*1.96" height="{areaheight}*0.8"/>
|
|
</area>
|
|
</statusinfo>
|
|
|
|
<!-- Available Variables audioinfo:
|
|
{numaudiotracks} number of available audio tracks for current channel
|
|
{audiochannel} 0 if current channel is stereo, 1 for left chanel only, 2 for right channel only
|
|
{trackdesc} description of the current audio track
|
|
{tracklang} language of the current audio track
|
|
-->
|
|
<audioinfo>
|
|
</audioinfo>
|
|
|
|
<!-- Available Variables screenresolution:
|
|
{screenwidth} width of currently displayed channel in px
|
|
{screenheight} height of currently displayed channel in px
|
|
{resolution} resolution: hd1080i, hd720p, sd576i
|
|
{aspect} screen aspect, each 4:3, 16:9 or 21:9
|
|
{isHD} true for hd1080i and hd720p
|
|
{isWideScreen} true if aspect is 16:9 or 21:9
|
|
-->
|
|
<screenresolution>
|
|
<area x="22%" y="94%" width="76%" height="6%" layer="2">
|
|
<!-- widescreen icon -->
|
|
<drawimage name="widescreen" condition="{isWideScreen}" imagetype="icon" path="ico_widescreen_on" x="{areawidth} - {areaheight}*0.8*1.76 - 15 - {areaheight}*0.8*1.48 - 15 - {areaheight}*0.8*1.3 - 15 - {areaheight}*0.8*1.96 - 15 - {width(widescreen)}" valign="center" width="{areaheight}*0.8*1.87" height="{areaheight}*0.8"/>
|
|
<drawimage condition="not{isWideScreen}" imagetype="icon" path="ico_widescreen_off" x="{areawidth} - {areaheight}*0.8*1.76 - 15 - {areaheight}*0.8*1.48 - 15 - {areaheight}*0.8*1.3 - 15 - {areaheight}*0.8*1.96 - 15 - {width(widescreen)}" valign="center" width="{areaheight}*0.8*1.87" height="{areaheight}*0.8"/>
|
|
<!-- hd/sd icon -->
|
|
<drawimage name="hd" condition="{isHD}" imagetype="icon" path="ico_hd_on" x="{posx(widescreen)} - 15 - {width(hd)}" valign="center" width="{areaheight}*0.8*2.04" height="{areaheight}*0.8"/>
|
|
<drawimage condition="not{isHD}" imagetype="icon" path="ico_hd_off" x="{posx(widescreen)} - 15 - {width(hd)}" valign="center" width="{areaheight}*0.8*2.04" height="{areaheight}*0.8"/>
|
|
<!-- screenresolution text -->
|
|
<drawtext name="reslabel" x="{posx(hd)} - 30 - {width(reslabel)}" valign="center" font="{light}" fontsize="70%" color="{clrWhite}" text="{screenwidth}x{screenheight}" />
|
|
</area>
|
|
</screenresolution>
|
|
|
|
<!-- Available Variables dvbdeviceinfo:
|
|
{prevAvailable} true if previous Channel Group is avaialble
|
|
{nextAvailable} true if next Channel Group is avaialble
|
|
{group} Name of current Channel Group
|
|
{nextgroup} Name of next Channel Group
|
|
{prevgroup} Name of prev Channel Group
|
|
{sepexists} true if a channel separator logo exists
|
|
{seppath} path for separator logo to use in imagetype "seplogo"
|
|
-->
|
|
<channelgroup>
|
|
<area x="0" y="80%" width="20%" height="20%" layer="2">
|
|
<drawimage condition="{sepexists}" imagetype="seplogo" path="{seppath}" width="98%" height="98%" align="center" valign="center" />
|
|
<drawimage condition="not{sepexists}" imagetype="icon" path="ico_channelsep" align="center" valign="center" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
|
</area>
|
|
<area x="22%" y="85%" width="76%" height="10%" layer="2">
|
|
<drawtext x="0" width="30%" valign="center" font="{light}" fontsize="60%" color="{clrWhite}" text="{prevgroup}" />
|
|
<drawtext x="30%" width="40%" valign="center" font="{semibold}" fontsize="80%" color="{clrWhite}" text="{group}" />
|
|
<drawtext align="right" width="30%" valign="center" font="{light}" fontsize="60%" color="{clrWhite}" text="{nextgroup}" />
|
|
</area>
|
|
</channelgroup>
|
|
|
|
<!-- Available Variables signalquality:
|
|
{signalstrength} STR value of currently displayed channel
|
|
{signalquality} SNR value of currently displayed channel
|
|
-->
|
|
<signalquality>
|
|
<area x="22%" y="94%" width="76%" height="6%" layer="3">
|
|
<drawtext x="0" valign="center" font="{light}" fontsize="70%" color="{clrWhite}" text="STR: {signalstrength}% SNR: {signalquality}%" />
|
|
</area>
|
|
</signalquality>
|
|
|
|
<!-- background of signalmeter, will only be drawn if signalquality was deleted -->
|
|
<signalqualityback>
|
|
</signalqualityback>
|
|
|
|
<!-- Available Variables devices:
|
|
{numdevices} number of available devices
|
|
{devices[]} array with available devices
|
|
{devices[num]} number of current device
|
|
{devices[type]} type of device (DVB-S, DVB-C, ...)
|
|
{devices[istuned]} true if device is currently tuned to a transponder
|
|
{devices[livetv]} true if device is currently playing livetv
|
|
{devices[recording]} true if device is currently recording
|
|
{devices[hascam]} true if device has a CAM
|
|
{devices[cam]} number of CAM
|
|
{devices[signalstrength]} signalstrength of devcie
|
|
{devices[signalquality]} signalstrength of devcie
|
|
{devices[channelnumber]} number of the currently tuned channel
|
|
{devices[channelname]} name of the currently tuned channel
|
|
{devices[channelid]} ID of the currently tuned channel
|
|
{devices[source]} source of the currently tuned channel
|
|
-->
|
|
<devices detached="true" delay="100" fadetime="300">
|
|
<area condition="{showdevices}" x="70%" y="30%" width="30%" height="{areaheight}/12 * {numdevices}" layer="1">
|
|
<fill color="{clrTransBlack}"/>
|
|
</area>
|
|
<area condition="{showdevices}" x="70%" y="30%" width="30%" height="{areaheight}/12 * {numdevices}" layer="2">
|
|
<loop name="devices" x="0" y="0" orientation="vertical" columnwidth="{areawidth}" rowheight="{areaheight} / {numdevices}" overflow="cut">
|
|
<drawtext name="label" x="5" y="0" font="{light}" fontsize="{rowheight}*0.35" color="{clrWhite}" text="{devices[num]}: {devices[type]}" />
|
|
<drawtext condition="{devices[hascam]}" x="{width(label)} + 15" y="0" font="{light}" fontsize="{rowheight}*0.35" color="{clrWhite}" text="(CAM {devices[cam]})" />
|
|
<drawtext condition="{devices[recording]} ++ {devices[livetv]}" align="right" y="0" font="{light}" fontsize="{rowheight}*0.35" color="{clrRed}" text="LiveTV, Recording ({devices[channelname]}) " />
|
|
<drawtext condition="{devices[recording]} ++ not{devices[livetv]}" align="right" y="0" font="{light}" fontsize="{rowheight}*0.35" color="{clrRed}" text="Recording ({devices[channelname]}) " />
|
|
<drawtext condition="not{devices[recording]} ++ {devices[livetv]}" align="right" y="0" font="{light}" fontsize="{rowheight}*0.35" color="{clrWhite}" text="LiveTV ({devices[channelname]}) " />
|
|
<drawrectangle condition="{devices[istuned]}" x="5" y="{rowheight}/3 + 5" width="{areawidth} * {devices[signalstrength]} / 100 - 10 * {devices[signalstrength]} / 100" height="{rowheight}/3 - 10" color="{clrTransWhite}" />
|
|
<drawrectangle condition="{devices[istuned]}" x="5" y="2*{rowheight}/3 + 5" width="{areawidth} * {devices[signalquality]} / 100 - 10 * {devices[signalquality]} / 100" height="{rowheight}/3 - 10" color="{clrTransWhite}" />
|
|
<drawtext condition="not{devices[istuned]}" align="center" y="{rowheight}/2" font="{light}" fontsize="{rowheight}*0.40" color="{clrWhite}" text="not tuned" />
|
|
</loop>
|
|
</area>
|
|
</devices>
|
|
|
|
<!-- Available Variables currentweather:
|
|
{timestamp} timestamp of forecast in dd.mm hh:mm
|
|
{temperature} current temperature in °C
|
|
{apparenttemperature} apparent (feeled) temperature
|
|
{mintemperature} minimum temperature this day
|
|
{maxtemperature} maximum temperature this day
|
|
{summary} short weather summary
|
|
{icon} weather icon
|
|
{precipitationintensity} precipitation intensity in l/m2
|
|
{precipitationprobability} precipitation probability in %
|
|
{precipitationtype} precipitation type
|
|
{humidity} humidity in %
|
|
{windspeed} windspeed in km/h
|
|
{windbearing} wind bearing in °
|
|
{windbearingstring} wind bearing (N, NE, ...)
|
|
{visibility} visibility in km
|
|
{cloudcover} cloud cover in %
|
|
{pressure} pressure in HPo
|
|
{ozone} ozone value in DU
|
|
-->
|
|
<currentweather>
|
|
<area x="70%" y="15%" width="13%" height="13%" layer="2">
|
|
<drawimage imagetype="icon" path="{icon}" align="center" valign="center" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
|
</area>
|
|
<area x="85%" y="15%" width="13%" height="13%" layer="2">
|
|
<drawtext x="0" y="0" font="{light}" fontsize="25%" color="{clrWhite}" text="{mintemperature}°C" />
|
|
<drawtext x="0" y="75%" font="{light}" fontsize="25%" color="{clrWhite}" text="{maxtemperature}°C" />
|
|
</area>
|
|
<area x="85%" y="15%" width="13%" height="13%" layer="3">
|
|
<drawtext align="right" valign="center" font="{light}" fontsize="60%" color="{clrWhite}" text="{temperature}°C" />
|
|
</area>
|
|
</currentweather>
|
|
|
|
<!-- Available Variables scrapercontent:
|
|
{posterpath} Full Path of Poster to use in image path attribute
|
|
{posterwidth} width of poster in pixel
|
|
{posterheight} height of poster in pixel
|
|
{hasPoster} true if poster is available
|
|
{bannerpath} Full Path of banner to use in image path attribute
|
|
{bannerwidth} width of banner in pixel
|
|
{bannerheight} height of banner in pixel
|
|
{hasBanner} true if banner is available
|
|
|
|
Use this tokens if you want to display a banner for series and a poster for movies:
|
|
{mediapath} Full Path of Poster or Banner to use in image path attribute
|
|
{mediawidth} width of image in pixel
|
|
{mediaheight} height of image in pixel
|
|
{isbanner} true if image is a banner, false if it is a poster
|
|
-->
|
|
<scrapercontent>
|
|
<area condition="{isbanner}" x="0" y="0" width="{areaheight}*0.13*{mediawidth}/{mediaheight}" height="13%" layer="2">
|
|
<drawimage imagetype="image" path="{mediapath}" align="center" valign="center" width="{areawidth}" height="{areaheight}"/>
|
|
</area>
|
|
<area condition="not{isbanner}" x="0" y="0" width="{areaheight}*0.5*{mediawidth}/{mediaheight}" height="50%" layer="2">
|
|
<drawimage imagetype="image" path="{mediapath}" x="5" y="5" width="{areawidth}-10" height="{areaheight}-10"/>
|
|
</area>
|
|
</scrapercontent>
|
|
|
|
<!-- Available Variables datetime:
|
|
{time} time in hh:mm
|
|
{day} day in digits
|
|
{dayleadingzero} day in digits with leading 0
|
|
{dayname} Full name of the day
|
|
{daynameshort} Short 3 char name of the day
|
|
{month} month in digits with leading 0
|
|
{monthname} Full name of the month
|
|
{monthnameshort} 3 letter abbrivation of month name
|
|
{year} year in yyyy
|
|
-->
|
|
<datetime>
|
|
<area x="70%" y="0" width="13%" height="13%" layer="2">
|
|
<drawtext align="right" y="0" font="{light}" fontsize="50%" color="{clrWhite}" text="{dayname}" />
|
|
<drawtext align="right" y="48%" font="{light}" fontsize="50%" color="{clrWhite}" text="{day}. {monthnameshort}" />
|
|
</area>
|
|
<area x="85%" y="0" width="13%" height="13%" layer="2">
|
|
<drawtext align="center" valign="center" font="{light}" fontsize="90%" color="{clrWhite}" text="{time}" />
|
|
</area>
|
|
</datetime>
|
|
<!-- Available Variables message:
|
|
{text} message text
|
|
{status} true if message is a status message
|
|
{info} true if message is a info message
|
|
{warning} true if message is a warn message
|
|
{error} true if message is a error message
|
|
-->
|
|
<message>
|
|
<area x="10%" y="45%" width="80%" height="10%" layer="1">
|
|
<fill color="{clrTransBlack}" />
|
|
<drawrectangle condition="{status}" x="20" y="0" width="20" height="100%" color="{clrGreen}" />
|
|
<drawrectangle condition="{info}" x="20" y="0" width="20" height="100%" color="{clrBlue}" />
|
|
<drawrectangle condition="{warning}" x="20" y="0" width="20" height="100%" color="{clrYellow}" />
|
|
<drawrectangle condition="{error}" x="20" y="0" width="20" height="100%" color="{clrRed}" />
|
|
<drawtext align="center" valign="center" width="{areawidth} - 80" font="{light}" fontsize="40%" color="{clrWhite}" text="{text}" />
|
|
</area>
|
|
</message>
|
|
|
|
<!-- Available Variables customtokens:
|
|
all custom tokens set by the svdrp command SCTK are available in this viewelement
|
|
For instance, use an appropriate script which runs periodically as cronjob and
|
|
sets these custom tokens with svdrpsend or dbus2vdr
|
|
-->
|
|
<customtokens>
|
|
</customtokens>
|
|
</displaychannel>
|