Warning, /multimedia/kmplayer/tests/arte.smil is written in an unsupported language. File is not indexed.

0001 <smil xmlns="http://www.w3.org/ns/SMIL" version="3.0" baseProfile="Language">
0002   <head>
0003     <layout>
0004       <root-layout width="400" height="240"/>
0005       <region background-color="SlateGray" z-index="1">
0006         <region top="2" left="20" width="27" height="18">
0007           <region background-color="red">
0008             <region height="33.3%" background-color="black"/>
0009             <region top="66%" background-color="yellow"/>
0010           </region>
0011           <region id="de"/>
0012         </region>
0013         <region top="2" left="50" width="27" height="18">
0014           <region background-color="white">
0015             <region width="33.3%" background-color="red"/>
0016             <region left="66%" background-color="blue"/>
0017           </region>
0018           <region id="fr"/>
0019         </region>
0020         <region id="count" top="2" left="140" width="120" height="18"
0021                 background-color="#475360"/>
0022         <region id="previous" top="2" left="280" width="30" height="18"
0023                 background-color="#475360" showBackground="whenActive"/>
0024         <region id="index" top="2" left="320" width="20" height="18"
0025                 background-color="#475360" showBackground="whenActive"/>
0026         <region id="next" top="2" left="350" width="30" height="18"
0027                 background-color="#475360" showBackground="whenActive"/>
0028         <region top="25" left="20" width="360">
0029           <region id="title" height="20" background-color="#475360"/>
0030           <region id="play" right="0" width="40" height="20"
0031                   background-color="white" showBackground="whenActive"/>
0032           <region top="25" background-color="SlateGray">
0033             <region height="140">
0034               <region id="description" width="175"
0035                       background-color="#475360" fit="scroll"/>
0036               <region id="image" right="0" width="175"
0037                       background-color="#475360" fit="meet"/>
0038             </region>
0039             <region id="status" bottom="0" height="40"
0040                     background-color="black" fit="scroll"/>
0041           </region>
0042         </region>
0043       </region>
0044       <region id="glass" z-index="0" background-color="black"
0045               backgroundOpacity="80" sensitivity="transparent">
0046         <region id="video" top="22" left="17" width="366" height="206"
0047                 showBackground="whenActive" background-color="black"/>
0048       </region>
0049     </layout>
0050     <state id="mystate" language="http://www.w3.org/TR/1999/REC-xpath-19991116">
0051      <data xmlns="">
0052       <message/>
0053       <language/>
0054       <feed>
0055        <index/>
0056        <count/>
0057        <rss/>
0058       </feed>
0059       <page>
0060        <uri/>
0061        <html/>
0062       </page>
0063       <vref>
0064        <uri/>
0065        <videoref/>
0066       </vref>
0067       <vlink>
0068        <uri/>
0069        <video/>
0070       </vlink>
0071       <json>
0072        <uri/>
0073        <value/>
0074        <streamer/>
0075        <url/>
0076        <tmp/>
0077       </json>
0078       <guide>
0079        <html/>
0080       </guide>
0081       <image/>
0082       <swf-player/>
0083       <movie-sd/>
0084       <video-uri/>
0085      </data>
0086     </state>
0087     <paramGroup id="centered-text">
0088       <param name="fontColor" value="white"/>
0089       <param name="regPoint" value="center"/>
0090       <param name="regAlign" value="center"/>
0091     </paramGroup>
0092   </head>
0093   <body>
0094     <par dur="indefinite">
0095       <text region="de" src="data:,DE" regPoint="center" regAlign="center"/>
0096       <text region="fr" src="data:,FR" regPoint="center" regAlign="center"/>
0097 
0098       <text begin="mystate.stateChange(/data/message)"
0099             region="status" src="data:,{escape-uri(/data/message)}">
0100         <param name="fontColor" value="grey"/>
0101         <param name="fontSize" value="-2"/>
0102       </text>
0103 
0104       <set targetElement="de" attributeName="background-color" to="red"
0105            begin="de.activateEvent" dur="0.1"/>
0106 
0107       <setvalue begin="de.activateEvent" ref="language" value="'de'"/>
0108       <setvalue begin="fr.activateEvent" ref="language" value="'fr'"/>
0109 
0110       <seq begin="mystate.stateChange(language)">
0111         <setvalue ref="/data/feed/count" value="-1"/>
0112         <setvalue ref="/data/feed/index" value="0"/>
0113         <setvalue ref="/data/feed/rss" value="'empty'"/>
0114         <setvalue ref="/data/message" value="'Clearing data'"/>
0115         <par dur="indefinite">
0116           <switch>
0117             <send expr="language = 'de'"
0118                   action="http://videos.arte.tv/de/do_delegate/videos/index-3188626,view,rss.xml" method="get"
0119                   replace="instance" target="/data/feed/rss"/>
0120             <send action="http://videos.arte.tv/fr/do_delegate/videos/index-3188626,view,rss.xml" method="get"
0121                   replace="instance" target="/data/feed/rss"/>
0122           </switch>
0123           <seq begin="mystate.stateChange(/data/feed/rss)">
0124             <setvalue ref="/data/feed/count"
0125                       value="count(/data/feed/rss/channel/item)"/>
0126             <switch>
0127               <setvalue expr="/data/feed/count &gt; 0"
0128                         ref="/data/feed/index" value="1"/>
0129               <setvalue ref="/data/message" value="'No items found'"/>
0130             </switch>
0131           </seq>
0132           <seq begin="mystate.stateChange(/data/feed/index)">
0133             <setvalue ref="/data/page/uri" value="'invalid'"/>
0134             <setvalue ref="/data/page/html" value="'empty'"/>
0135             <setvalue ref="/data/vref/uri" value="'invalid'"/>
0136             <setvalue ref="/data/vref/videoref" value="'empty'"/>
0137             <setvalue ref="/data/vlink/uri" value="'invalid'"/>
0138             <setvalue ref="/data/vlink/video" value="'empty'"/>
0139             <setvalue ref="/data/movie-sd" value="'invalid'"/>
0140             <setvalue ref="/data/json/value" value="'empty'"/>
0141             <setvalue ref="/data/image" value="'invalid'"/>
0142             <setvalue ref="/data/swf-player" value="'invalid'"/>
0143             <setvalue ref="/data/video-uri" value="'invalid'"/>
0144             <seq/>
0145             <par>
0146               <setvalue ref="/data/page/uri"
0147                         value="/data/feed/rss/channel/item[number(/data/feed/index)]/link"/>
0148               <switch begin="mystate.stateChange(/data/page/uri)">
0149                 <seq expr="starts-with(/data/page/uri, 'http://')">
0150                   <setvalue ref="/data/message"
0151                             value="concat('Get ', /data/page/uri)"/>
0152                   <send action="{/data/page/uri}"
0153                         method="get" replace="instance" target="/data/page/html"/>
0154                 </seq>
0155                 <setvalue ref="/data/message"
0156                           value="concat('Could not get HTML ', /data/page/uri)"/>
0157               </switch>
0158               <switch begin="mystate.stateChange(/data/page/html)">
0159                 <setvalue ref="/data/json/uri"
0160                           expr="count(/data/page/html//div[@arte_vp_url]) &gt; 0"
0161                           value="/data/page/html//div[@arte_vp_url][1]/@arte_vp_url"/>
0162                 <seq>
0163                   <setvalue ref="/data/vref/uri"
0164                             value="substring-before(substring-after(tokenize(/data/page/html, 'vars_player.videorefFileUrl *= *&quot;[^&quot;]+&quot;')[1], '&quot;'), '&quot;')"/>
0165                   <setvalue ref="/data/swf-player"
0166                             value="substring-before(substring-after(tokenize(/data/page/html, 'url_player *= *&quot;[^&quot;]+&quot;')[1], '&quot;'), '&quot;')"/>
0167                 </seq>
0168               </switch>
0169               <switch begin="mystate.stateChange(/data/vref/uri)">
0170                 <seq expr="starts-with(/data/vref/uri, 'http://')">
0171                   <setvalue ref="/data/message"
0172                             value="concat('Get ', /data/vref/uri)"/>
0173                   <send action="{/data/vref/uri}"
0174                       method="get" replace="instance" target="/data/vref/videoref"/>
0175                 </seq>
0176                 <setvalue ref="/data/message"
0177                           value="concat('Could not get flash var ', /data/vref/uri)"/>
0178               </switch>
0179               <setvalue begin="mystate.stateChange(/data/vref/videoref)"
0180                         ref="/data/vlink/uri"
0181                         value="/data/vref/videoref/videos/video[@lang = /data/language]/@ref"/>
0182               <switch begin="mystate.stateChange(/data/vlink/uri)">
0183                 <send expr="starts-with(/data/vlink/uri, 'http://')"
0184                       action="{/data/vlink/uri}"
0185                       method="get" replace="instance" target="/data/vlink/video"/>
0186                 <setvalue ref="/data/message"
0187                           value="concat('Could not get ', /data/vlink/uri)"/>
0188               </switch>
0189               <setvalue begin="mystate.stateChange(/data/vlink/video)"
0190                         ref="/data/movie-sd"
0191                         value="/data/vlink/video/urls/url[@quality = 'hd']"/>
0192               <setvalue begin="mystate.stateChange(/data/vlink/video)"
0193                         expr="count(/data/vlink/video/firstThumbnailUrl) &gt; 0"
0194                         ref="/data/image"
0195                         value="/data/vlink/video/firstThumbnailUrl[1]"/>
0196               <switch begin="mystate.stateChange(/data/movie-sd)">
0197                 <seq expr="starts-with(/data/movie-sd, 'rtmp://')">
0198                   <setvalue ref="/data/message"
0199                             value="concat('Found URL ', /data/movie-sd)"/>
0200                   <setvalue ref="/data/video-uri"
0201                   value="concat(/data/movie-sd, ' swfVfy=1 swfUrl=', /data/swf-player)"/>
0202                 </seq>
0203                 <seq expr="string-length(/data/movie-sd) &gt; 0">
0204                   <setvalue ref="/data/message"
0205                             value="concat('Found URL ', /data/movie-sd)"/>
0206                   <setvalue ref="/data/video-uri" value="/data/movie-sd"/>
0207                 </seq>
0208                 <setvalue ref="/data/message" value="'Video not available'"/>
0209               </switch>
0210               <switch begin="mystate.stateChange(/data/json/uri)">
0211                 <seq expr="starts-with(/data/json/uri, 'http')">
0212                   <setvalue ref="/data/message"
0213                             value="concat('Get ', /data/json/uri)"/>
0214                   <send action="{/data/json/uri}"
0215                         method="get" replace="instance" target="/data/json/value/*[1]"/>
0216                 </seq>
0217                 <setvalue ref="/data/message"
0218                           value="concat('Could not get JSON ', /data/json/uri)"/>
0219               </switch>
0220 
0221               <seq begin="mystate.stateChange(/data/json/value/*[1])">
0222                 <setvalue ref="/data/json/tmp"
0223                           value="substring-after(/data/json/value, '&quot;programImage&quot;')"/>
0224                 <setvalue ref="/data/image"
0225                           value="substring-before(substring-after(/data/json/tmp, '&quot;'), '&quot;')"/>
0226                 <setvalue ref="/data/json/value"
0227                           value="substring-after(/data/json/value, 'RTMP_SQ_1')"/>
0228                 <setvalue ref="/data/json/tmp"
0229                           value="substring-after(/data/json/value, '&quot;url&quot;')"/>
0230                 <setvalue ref="/data/json/url"
0231                           value="substring-before(substring-after(/data/json/tmp, '&quot;'), '&quot;')"/>
0232                 <setvalue ref="/data/json/tmp"
0233                           value="substring-after(/data/json/value, '&quot;streamer&quot;')"/>
0234                 <setvalue ref="/data/json/streamer"
0235                           value="substring-before(substring-after(/data/json/tmp, '&quot;'), '&quot;')"/>
0236                 <switch>
0237                   <seq expr="starts-with(/data/json/streamer, 'rtmp://')">
0238                     <setvalue ref="/data/message"
0239                               value="concat('Found URL ', /data/json/streamer, 'mp4:', /data/json/url)"/>
0240                     <send action="{concat('http://player.arte.tv/v2/index.php?json_url=', /data/json/uri, '&amp;config=arte_tvguide')}"
0241                           method="get" replace="instance" target="/data/guide/html"/>
0242                   </seq>
0243                   <seq expr="string-length(/data/json/streamer) &gt; 0">
0244                     <setvalue ref="/data/message"
0245                               value="concat('Found URL ', /data/json/streamer)"/>
0246                     <setvalue ref="/data/video-uri" value="/data/json/streamer"/>
0247                   </seq>
0248                   <setvalue ref="/data/message" value="'Video not available'"/>
0249                 </switch>
0250               </seq>
0251               <seq begin="mystate.stateChange(/data/guide/html)">
0252                 <setvalue ref="/data/swf-player"
0253                           value="/data/guide/html/head/meta[@property=&quot;og:video&quot;]/@content"/>
0254                 <switch>
0255                   <setvalue ref="/data/swf-player"
0256                             expr="string-length(/data/swf-player) &gt; 1"
0257                             value="concat(substring-before(/data/swf-player, 'swf'), 'swf')"/>
0258                   <setvalue ref="/data/swf-player"
0259                             value="http://www.arte.tv/playerv2/jwplayer5/mediaplayer.5.7.1894.swf"/>
0260                 </switch>
0261                 <setvalue ref="/data/video-uri"
0262                           value="concat(/data/json/streamer, 'mp4:', /data/json/url, ' swfVfy=1 swfUrl=', /data/swf-player)"/>
0263               </seq>
0264 
0265               <text region="title"
0266                     src="data:,{escape-uri(/data/feed/rss/channel/item[number(/data/feed/index)]/title)}"
0267                     paramGroup="centered-text"/>
0268               <text region="description"
0269                     src="data:,{escape-uri(/data/feed/rss/channel/item[number(/data/feed/index)]/description)}">
0270                 <param name="fontColor" value="white"/>
0271                 <param name="fontSize" value="-1"/>
0272               </text>
0273               <par begin="mystate.stateChange(/data/video-uri)" dur="indefinite">
0274                 <text id="playbutton" end="activateEvent"
0275                       region="play" src="data:,Play" fontColor="green"/>
0276                 <par begin="playbutton.activateEvent">
0277                   <video id="movie" region="video" src="{/data/video-uri}"/>
0278                   <set end="movie.end"
0279                        target="glass" attribute="z-index" to="2"/>
0280                 </par>
0281               </par>
0282               <img begin="mystate.stateChange(/data/image)"
0283                    expr="string-length(/data/image) &gt; 0"
0284                    src="{/data/image}"
0285                    region="image"/>
0286               <text region="index" src="data:,{escape-uri(/data/feed/index)}"
0287                     paramGroup="centered-text"/>
0288               <par expr="/data/feed/index &gt; 1">
0289                 <text region="previous" src="data:,%3C%3C" paramGroup="centered-text"/>
0290                 <setvalue begin="previous.activateEvent"
0291                           ref="/data/feed/index" value="/data/feed/index - 1"/>
0292               </par>
0293               <par expr="/data/feed/index &lt; /data/feed/count">
0294                 <text region="next" src="data:,%3E%3E"
0295                       paramGroup="centered-text"/>
0296                 <set targetElement="next" attributeName="background-color"
0297                      to="SlateGray" begin="de.activateEvent" dur="0.1"/>
0298                 <setvalue begin="next.activateEvent"
0299                           ref="/data/feed/index" value="/data/feed/index + 1"/>
0300               </par>
0301             </par>
0302           </seq>
0303 
0304           <text region="count" begin="mystate.stateChange(/data/feed/count)"
0305                 src="data:,{escape-uri(/data/feed/count)}%20items%20found"
0306                 paramGroup="centered-text"/>
0307         </par>
0308       </seq>
0309     </par>
0310   </body>
0311 </smil>
0312