mirror of
https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
synced 2023-10-19 17:58:31 +02:00
299 lines
18 KiB
XML
299 lines
18 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>
|
|
<!-- global background -->
|
|
<area x="0" y="70%" width="100%" height="30%" layer="1">
|
|
<drawimage imagetype="skinpart" path="displaychannelback" x="0" y="0" width="100%" height="100%"/>
|
|
</area>
|
|
<!-- epg background -->
|
|
<area x="17%" y="80%" width="67%" height="14%" layer="2">
|
|
<drawimage imagetype="skinpart" path="displaychannelbackepg" x="0" y="0" width="100%" height="100%"/>
|
|
</area>
|
|
<!-- channel logo background -->
|
|
<area x="1%" y="77%" width="14%" height="20%" layer="2">
|
|
<drawimage imagetype="skinpart" path="displaychannellogoback" x="0" y="0" width="100%" height="100%"/>
|
|
</area>
|
|
<!-- watch background -->
|
|
<area x="86%" y="77%" width="{areaheight}*0.18" height="{areaheight}*0.18" layer="2">
|
|
<drawimage imagetype="skinpart" path="watchback" x="0" y="0" width="100%" height="100%"/>
|
|
</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="17%" y="74%" width="67%" height="6%" layer="2">
|
|
<drawtext x="0" y="0" font="{semibold}" fontsize="100%" color="{clrWhite}" text="{channelnumber} {channelname}" />
|
|
</area>
|
|
<area x="2%" y="78%" width="12%" height="18%" layer="3">
|
|
<drawimage cache="true" imagetype="channellogo" path="{channelid}" width="100%" height="100%" align="center" valign="center"/>
|
|
</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="17%" y="80%" width="66%" height="7%" layer="3">
|
|
<drawtext name="starttime" x="1%" valign="center" font="{regular}" fontsize="80%" color="{clrWhite}" text="{currentstart}" />
|
|
<drawtext align="right" name="elapsed" valign="center" font="{regular}" fontsize="75%" color="{clrWhite}" text="{currentelapsed}/{currentduration}min" />
|
|
<drawtext x="{width(starttime)} + 40" y="0" width="{areawidth} - {width(starttime)} - {width(elapsed)} - 45" font="{regular}" fontsize="70%" color="{clrWhite}" text="{currenttitle}" />
|
|
<drawtext x="{width(starttime)} + 40" y="56%" width="{areawidth} - {width(starttime)} - {width(elapsed)} - 45" font="{regular}" fontsize="45%" color="{clrWhite}" text="{currentsubtitle}" />
|
|
</area>
|
|
<area x="17%" y="87%" width="66%" height="7%" layer="3">
|
|
<drawtext name="starttime" x="1%" valign="center" font="{regular}" fontsize="80%" color="{clrGray}" text="{nextstart}" />
|
|
<drawtext align="right" name="duration" valign="center" font="{regular}" fontsize="75%" color="{clrGray}" text="{nextduration}min" />
|
|
<drawtext x="{width(starttime)} + 40" y="0" width="{areawidth} - {width(starttime)} - {width(duration)} - 45" font="{regular}" fontsize="70%" color="{clrGray}" text="{nexttitle}" />
|
|
<drawtext x="{width(starttime)} + 40" y="55%" width="{areawidth} - {width(starttime)} - {width(duration)} - 45" font="{regular}" fontsize="40%" color="{clrGray}" text="{nextsubtitle}" />
|
|
</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="67%" y="72%" width="30%" height="2%" layer="4">
|
|
<drawimage imagetype="skinpart" path="progressbar" x="{areaheight}/2" y="0" width="{elapsed}/{duration}*{areawidth} - {elapsed}/{duration}*{areaheight}" height="100%"/>
|
|
</area>
|
|
<area x="67%" y="72%" width="30%" height="2%" layer="5">
|
|
<drawimage imagetype="skinpart" path="progressbarend" x="{areaheight}/2 + {elapsed}/{duration}*{areawidth} - {elapsed}/{duration}*{areaheight} - 1" y="0" width="{areaheight}/2" height="100%"/>
|
|
</area>
|
|
</progressbar>
|
|
|
|
<progressbarback>
|
|
<area x="67%" y="72%" width="30%" height="2%" layer="3">
|
|
<drawimage imagetype="skinpart" path="progressbarback" x="0" y="0" width="100%" height="100%"/>
|
|
</area>
|
|
</progressbarback>
|
|
|
|
<!-- 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="17%" y="95%" width="67%" height="4%" layer="3">
|
|
<drawimage condition="{isDolby}" imagetype="icon" path="ico_dolby" x="{areaheight}*6 + 20" y="0" width="{areaheight}*3" height="{areaheight}"/>
|
|
<drawimage condition="{hasVT}" imagetype="icon" path="ico_videotext" x="{areaheight}*9 + 30" y="0" width="{areaheight}" height="{areaheight}"/>
|
|
<drawimage condition="{isEncrypted}" imagetype="icon" path="ico_crypted" x="{areaheight}*10 + 40" y="0" width="{areaheight}*2" height="{areaheight}"/>
|
|
<drawimage condition="{isRecording}" imagetype="icon" path="ico_rec_on" x="{areaheight}*12 + 50" y="0" width="{areaheight}" height="{areaheight}"/>
|
|
</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="17%" y="95%" width="67%" height="4%" layer="4">
|
|
<drawimage imagetype="icon" path="ico_{resolution}" x="0" y="0" width="{areaheight}*3" height="{areaheight}"/>
|
|
<drawimage condition="{isWideScreen}" imagetype="icon" path="ico_widescreen" x="{areaheight}*3 + 10" y="0" width="{areaheight}*3" height="{areaheight}"/>
|
|
</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="17%" y="82%" width="66%" height="10%" layer="3">
|
|
<drawtext x="1%" width="24%" valign="center" font="{semibold}" fontsize="40%" color="{clrWhite}" text="{prevgroup}" />
|
|
<drawtext x="30%" width="40%" valign="center" font="{semibold}" fontsize="60%" color="{clrWhite}" text="{group}" />
|
|
<drawtext align="right" width="25%" valign="center" font="{semibold}" fontsize="40%" color="{clrWhite}" text="{nextgroup}" />
|
|
</area>
|
|
</channelgroup>
|
|
|
|
<!-- Available Variables signalquality:
|
|
{signalstrength} STR value of currently displayed channel
|
|
{signalquality} SNR value of currently displayed channel
|
|
-->
|
|
<signalquality>
|
|
</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[channellogoexists]} true if a channel logo exists
|
|
{devices[channelid]} ID of the currently tuned channel
|
|
{devices[source]} source of the currently tuned channel
|
|
-->
|
|
<devices>
|
|
<area condition="{showdevices}" x="56%" y="94%" width="28%" height="6%" layer="2">
|
|
<loop name="devices" x="0" y="0" orientation="horizontal" columnwidth="{areawidth}/{numdevices}" rowheight="{areaheight}">
|
|
<drawtext x="0" y="0" font="{regular}" fontsize="40%" color="{clrWhite}" text="{devices[num]}: {devices[type]}" />
|
|
<drawtext condition="{devices[hascam]}" align="right" y="0" font="{regular}" fontsize="40%" color="{clrWhite}" text="(CAM {devices[cam]})" />
|
|
<drawtext condition="{devices[recording]} ++ {devices[livetv]}" x="0" y="35%" font="{regular}" fontsize="30%" width="100%" color="{clrRed}" text="LiveTV, Recording ({devices[channelname]}) " />
|
|
<drawtext condition="{devices[recording]} ++ not{devices[livetv]}" x="0" y="35%" font="{regular}" fontsize="30%" width="100%" color="{clrRed}" text="Recording ({devices[channelname]}) " />
|
|
<drawtext condition="not{devices[recording]} ++ {devices[livetv]}" x="0" y="35%" font="{regular}" fontsize="30%" width="100%" color="{clrWhite}" text="LiveTV ({devices[channelname]}) " />
|
|
<drawrectangle x="0" y="70%" width="{columnwidth} * {devices[signalstrength]} / 100 - 10 * {devices[signalstrength]} / 100" height="{rowheight}/15" color="{clrWhite}" />
|
|
<drawrectangle x="0" y="85%" width="{columnwidth} * {devices[signalquality]} / 100 - 10 * {devices[signalquality]} / 100" height="{rowheight}/15" color="{clrWhite}" />
|
|
</loop>
|
|
</area>
|
|
</devices>
|
|
|
|
<!-- 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="{showposter}++{isbanner}" x="1%" y="3%" width="{areaheight}*0.13*{mediawidth}/{mediaheight}" height="13%" layer="7">
|
|
<drawimage imagetype="image" path="{mediapath}" align="center" valign="center" width="{areawidth}" height="{areaheight}"/>
|
|
</area>
|
|
<area condition="{showposter}++not{isbanner}" x="0" y="3%" width="{areaheight}*0.5*{mediawidth}/{mediaheight}" height="40%" layer="7">
|
|
<drawimage imagetype="image" path="{mediapath}" align="center" valign="center" width="{areawidth}" height="{areaheight}"/>
|
|
</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="17%" y="74%" width="67%" height="6%" layer="3">
|
|
<drawtext align="right" valign="center" font="{semibold}" fontsize="90%" color="{clrWhite}" text="{dayname} {day}.{month}" />
|
|
</area>
|
|
<area x="86%" y="95%" width="{areaheight}*0.18" height="5%" layer="3">
|
|
<drawtext align="center" y="0" font="{digital}" fontsize="100%" color="{clrWhite}" text="{time}" />
|
|
</area>
|
|
</datetime>
|
|
|
|
<!-- Available Variables time:
|
|
{sec} current seconds
|
|
{min} current minutes
|
|
{hour} current hours
|
|
{hmins} current "hourminutes" to display an hour hand
|
|
-->
|
|
<time>
|
|
<area x="86%" y="77%" width="{areaheight}*0.18" height="{areaheight}*0.18" layer="5">
|
|
<drawimage imagetype="skinpart" path="watchhands/s_{sec}" x="0" y="0" width="100%" height="100%"/>
|
|
</area>
|
|
<area x="86%" y="77%" width="{areaheight}*0.18" height="{areaheight}*0.18" layer="4">
|
|
<drawimage imagetype="skinpart" path="watchhands/m_{min}" x="0" y="0" width="100%" height="100%"/>
|
|
</area>
|
|
<area x="86%" y="77%" width="{areaheight}*0.18" height="{areaheight}*0.18" layer="3">
|
|
<drawimage imagetype="skinpart" path="watchhands/h_{hmins}" x="0" y="0" width="100%" height="100%"/>
|
|
</area>
|
|
</time>
|
|
|
|
<currentweather>
|
|
<area x="0" y="70%" width="11%" height="5%" layer="3">
|
|
<drawimage name="weathericon" imagetype="icon" path="{icon}" x="{areawidth}/2 + {width(temperature)}/2 - {width(weathericon)}/2 + 5" valign="center" width="{areaheight}*0.8" height="{areaheight}*0.8"/>
|
|
<drawtext name="temperature" x="{areawidth}/2 - {width(temperature)}/2 - {width(weathericon)}/2" valign="center" font="{light}" fontsize="80%" color="{clrWhite}" text="{temperature}°C" />
|
|
</area>
|
|
</currentweather>
|
|
|
|
<!-- 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="5%" y="80%" width="90%" height="15%" layer="6">
|
|
<drawimage condition="{status}" imagetype="skinpart" path="messageblue" x="0" y="0" width="100%" height="100%" />
|
|
<drawimage condition="{info}" imagetype="skinpart" path="messagegreen" x="0" y="0" width="100%" height="100%" />
|
|
<drawimage condition="{warning}" imagetype="skinpart" path="messageyellow" x="0" y="0" width="100%" height="100%" />
|
|
<drawimage condition="{error}" imagetype="skinpart" path="messagered" x="0" y="0" width="100%" height="100%" />
|
|
</area>
|
|
<area x="5%" y="80%" width="90%" height="15%" layer="6">
|
|
<drawtext align="center" valign="center" font="{regular}" 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>
|