home *** CD-ROM | disk | FTP | other *** search
/ Freelog 52 / Freelog052.iso / Extra / Multimedia / WMPXP / MPSetupXP.exe / 1033 / RCDATA / CABINET / 9SeriesDefault.wmz / metadata.js < prev    next >
Text File  |  2002-10-08  |  21KB  |  776 lines

  1. // Windows Media Player  - Copyright 2001 Microsoft Corporation.
  2.  
  3. var g_strPlayImage="";
  4. var g_strPlayHover="";
  5. var g_strPlayDown="";
  6. var g_strPauseHover="";
  7. var g_strPauseDown="";
  8. var g_strPauseUp="";
  9.  
  10. var g_psPlayState=0;
  11. var g_osOpenState=0;
  12. var g_fIsLiveBroadcast=false;
  13. var g_fShowingBuyMe=false;
  14. var g_bufferingProgress=100;
  15. var g_bufferingToolTipFormatString = theme.loadString("res://wmploc.dll/RT_STRING/#2099");
  16. var g_strPlayTooltip = "";
  17.  
  18. var g_strPlayIcon="res://wmploc/RT_IMAGE/#1784";
  19.  
  20. function InitMiniControls()
  21. {
  22.     g_bufferingProgress = player.network.bufferingProgress;
  23.     g_strPlayImage="res://wmploc.dll/RT_BITMAP/#373";
  24.     g_strPlayHover="res://wmploc.dll/RT_BITMAP/#374";
  25.     g_strPlayDown="res://wmploc.dll/RT_BITMAP/#375";
  26.     g_strPauseUp="res://wmploc.dll/RT_BITMAP/#427";
  27.     g_strPauseHover="res://wmploc.dll/RT_BITMAP/#423";
  28.     g_strPauseDown="res://wmploc.dll/RT_BITMAP/#424";
  29.  
  30.     player.settings.enableErrorDialogs = false;
  31.  
  32.     OnOpenStateChangeTransport(player.openState);
  33.     OnPlayStateChangeTransport(player.playState);
  34.     OnStatusChangeTransport(player.status);
  35. }
  36.  
  37. function InitControls()
  38. {
  39.     g_bufferingProgress = player.network.bufferingProgress;
  40.     if (mediacenter.contrastMode == "BW")
  41.     {
  42.         g_strPlayImage    = "res://wmploc/#1691";
  43.         g_strPlayHover    = "res://wmploc/#1691";
  44.         g_strPlayDown    = "res://wmploc/#1691";
  45.         g_strPauseUp    = "res://wmploc/#1686";
  46.         g_strPauseHover    = "res://wmploc/#1686";
  47.         g_strPauseDown    = "res://wmploc/#1686";
  48.     }
  49.  
  50.     else if (mediacenter.contrastMode == "WB")
  51.     {
  52.         g_strPlayImage    = "res://wmploc/#1698";
  53.         g_strPlayHover    = "res://wmploc/#1698";
  54.         g_strPlayDown    = "res://wmploc/#1698";
  55.         g_strPauseUp    = "res://wmploc/#1685";
  56.         g_strPauseHover    = "res://wmploc/#1685";
  57.         g_strPauseDown    = "res://wmploc/#1685";
  58.     }
  59.  
  60.     else
  61.     {
  62.         g_strPlayImage    = "res://wmploc.dll/RT_BITMAP/#294";
  63.         g_strPlayHover    = "res://wmploc.dll/RT_BITMAP/#293";
  64.         g_strPlayDown    = "res://wmploc.dll/RT_BITMAP/#292";
  65.         g_strPauseUp    = "res://wmploc.dll/RT_BITMAP/#288";
  66.         g_strPauseHover    = "res://wmploc.dll/RT_BITMAP/#289";
  67.         g_strPauseDown    = "res://wmploc.dll/RT_BITMAP/#290";
  68.     }
  69.     
  70.     OnOpenStateChangeTransport(player.openState);
  71.     OnPlayStateChangeTransport(player.playState);
  72.     OnStatusChangeTransport(player.status);
  73. }
  74.  
  75. function MetaDataObject( formatStringID, dataCode, fEvalEveryTime, urlCode, tooltipCode )
  76. {
  77.     this.formatString    = getFormatString(formatStringID);
  78.     this.dataCode        = dataCode;
  79.     this.fEvalEveryTime    = (fEvalEveryTime==true);
  80.     this.urlCode        = urlCode ? urlCode : '""';
  81.     this.tooltipCode    = tooltipCode ? tooltipCode : '""';
  82.     this.str            = "";
  83.     this.url            = "";
  84.     this.toolTip        = "";
  85.  
  86.     this.getDataString    = getDataString;
  87.     this.init            = initMetaDataObject;
  88. }
  89.  
  90. function getDataString()
  91. {
  92.     if (false==this.fEvalEveryTime)
  93.     {
  94.         return this.str;
  95.     }
  96.     else
  97.     {
  98.         return getFormattedDataString(this.formatString, this.dataCode);
  99.     }
  100. }
  101. function initMetaDataObject()
  102. {
  103.     this.str = getFormattedDataString(this.formatString,this.dataCode);
  104.     this.url = eval(this.urlCode);
  105.     this.toolTip = eval(this.tooltipCode);
  106. }
  107.  
  108. function MetaDataDefinitionSet ( arrayOfMetaDataObjects, testCode)
  109. {
  110.     this.arrayOfMetaDataObjects = arrayOfMetaDataObjects;
  111.     this.testCode = testCode;
  112. }
  113.  
  114. function getMInfo(itemName)
  115. {
  116.     if (player.openState == osMediaOpen)
  117.     {
  118.         return player.currentMedia.getItemInfo(itemName);
  119.     }
  120. }
  121.  
  122. function getPInfo(itemName)
  123. {
  124.     return player.currentPlaylist.getItemInfo(itemName);
  125. }
  126.  
  127. var g_sAudioMetaData = new Array
  128. (            //formatStringID,  script to get data 
  129.     new MetaDataObject ( "",     "player.status", true ),
  130.     new MetaDataObject ( "2070", "getMInfo('album')", true, "getMInfo('moreinforef')", "getMInfo('abstract')" ),
  131.     new MetaDataObject ( "2071", "if(player.openState==osMediaOpen)player.currentMedia.name; else '';", true, "getPInfo('moreinforef')", "getPInfo('abstract')" ),
  132.     new MetaDataObject ( "2072", "getMInfo('author')",true ),
  133.     new MetaDataObject ( "2076", "getMInfo('copyright')",true ),
  134.     new MetaDataObject ( "", "GetDRMString(player.currentMedia)" )
  135. );
  136.  
  137. var g_sVideoMetaData = new Array
  138. (            //formatStringID,  script to get data 
  139.     new MetaDataObject ( "",      "player.status", true),
  140.     new MetaDataObject ( "2073",  "getPInfo('title')", true, "getPInfo('moreinforef')", "getPInfo('abstract')" ),
  141.     new MetaDataObject ( "2074",  "if(player.openState==osMediaOpen)player.currentMedia.name; else '';", true, "getMInfo('moreinforef')", "getMInfo('abstract')" ),
  142.     new MetaDataObject ( "2075",  "getMInfo('author')", true ),
  143.     new MetaDataObject ( "2076",  "getMInfo('copyright')", true ),
  144.     new MetaDataObject ( "",  "GetDRMString(player.currentMedia)")
  145. );
  146.  
  147.  
  148. var g_sDVDMetaData = new Array
  149. (           //formatStringID,  script to get data 
  150.     new MetaDataObject ( "",      "player.status", true),
  151.     new MetaDataObject ( "2082",  "getMInfo('Author')", true),
  152.     new MetaDataObject ( "2083",  "getMInfo('Studio')", true ),
  153.     new MetaDataObject ( "",      "GetChapterTitleString()", true)
  154. );
  155.  
  156.  
  157. var g_sMetaDataDefinitionSets = new Array 
  158. (
  159.     new MetaDataDefinitionSet ( g_sAudioMetaData, "(player.dvd.isAvailable('dvd')==false) && (player.currentMedia.imageSourceHeight==0)"),
  160.     new MetaDataDefinitionSet ( g_sVideoMetaData, "(player.dvd.isAvailable('dvd')==false) && (player.currentMedia.imageSourceHeight>0)" ),
  161.     new MetaDataDefinitionSet ( g_sDVDMetaData,   "player.dvd.isAvailable('dvd')==true" )
  162. );
  163.  
  164. function getNextMetaDataObject()
  165. {
  166.     this.currentIndex = (this.currentIndex + 1) % this.metaDataCollection.length;
  167.     return this.metaDataCollection[this.currentIndex];
  168. }
  169.  
  170. function clear()
  171. {
  172.     this.metaDataCollection.length=0;
  173.     this.currentIndex = 0;    
  174. }
  175.  
  176. function append(mdObject)
  177. {
  178.     this.metaDataCollection[this.metaDataCollection.length] = mdObject;
  179. }
  180.  
  181. function getItem(index)
  182. {
  183.     this.currentIndex = index-1;
  184.     return this.getNextMetaDataObject();
  185. }
  186.  
  187. function MetaDataCollectionManager()
  188. {
  189.     this.metaDataCollection = new Array();
  190.     this.currentIndex = 0;
  191.     this.getNextMetaDataObject = getNextMetaDataObject;
  192.     this.clear = clear;
  193.     this.append = append;
  194.     this.getItem = getItem;
  195. }
  196.  
  197. var g_MetaDataCollectionManager = new MetaDataCollectionManager();
  198.  
  199. function InitMetaDataCollection()
  200. {
  201.     g_MetaDataCollectionManager.clear();
  202.     var CurrentSet;
  203.     for (var mdList in g_sMetaDataDefinitionSets)
  204.     {
  205.         CurrentSet = g_sMetaDataDefinitionSets[mdList];
  206.         if ( eval(CurrentSet.testCode) )
  207.         {
  208.             break;
  209.         }
  210.     }
  211.     var allTypes = CurrentSet.arrayOfMetaDataObjects;
  212.     for (var index in allTypes)
  213.     {
  214.         var mdObject = allTypes[index];
  215.         mdObject.init();
  216.         if ( (mdObject.str!="") || mdObject.fEvalEveryTime )
  217.         {
  218.             g_MetaDataCollectionManager.append(mdObject);
  219.         }
  220.     }
  221.     ShowStatus(player.status);
  222. }
  223.  
  224. function getFormatString(formatStringID)
  225. {
  226.     if (""==formatStringID)
  227.     {
  228.         return "";
  229.     }
  230.     
  231.     return theme.loadString("res://wmploc/RT_STRING/#" + formatStringID);
  232. }
  233.  
  234. function getFormattedDataString(formatString, dataCode)
  235. {
  236.     var data = eval(dataCode);
  237.     if (data=="")
  238.     {
  239.         return "";
  240.     }
  241.     if (""!=formatString)
  242.     {
  243.         data=data.sprintf(formatString,data);
  244.     }
  245.     return data;
  246. }
  247.  
  248. function GetChapterTitleString()
  249. {
  250.     if (player.openState!=osMediaOpen)
  251.     {
  252.         return "";
  253.     }
  254.     var DVDChapterANDTitleFormatString = theme.loadString("res://wmploc/RT_STRING/#2086");
  255.  
  256.     var title = player.currentPlaylist.name;
  257.     var chapter = player.currentMedia.name;
  258.     
  259.     //jcain - DON'T CHANGE THE ORDER OF THESE ARGUMENTS!!! (title, chapter)
  260.     //their order is vital to sprintf formattting them properly for localization
  261.     var arguments = new Array (title,chapter);
  262.     var TitleAndChapter = "";
  263.     TitleAndChapter = TitleAndChapter.sprintf(DVDChapterANDTitleFormatString, arguments);
  264.     return TitleAndChapter;    
  265. }
  266.  
  267. function sprintf(str,s)
  268. {
  269.     if (typeof(s)=="string")
  270.     {
  271.         var re;
  272.         re = /%s/i;
  273.         str = str.replace(re, s);
  274.     }
  275.     else
  276.     {
  277.         var index =1;
  278.         for (var replaceStrings in s)
  279.         {
  280.             var re;
  281.             re = eval("/%" + index + "/i");
  282.             str = str.replace(re, s[replaceStrings]);
  283.             index++;            
  284.         }
  285.     }
  286.     return str;
  287. }
  288.  
  289. String.prototype.sprintf = sprintf;
  290.  
  291. function GetDRMString(obj)
  292. {
  293.     var str = "";
  294.     if ("true" == obj.getItemInfo("Is_Protected"))
  295.     {
  296.         if ("true" == obj.getItemInfo("Is_Trusted"))
  297.         {
  298.             str = theme.loadString("res://wmploc.dll/RT_STRING/#2078");
  299.             var signame = obj.getItemInfo("Signature_Name");
  300.             str = str.sprintf(str,signame);
  301.         }
  302.         else
  303.         {
  304.             str = theme.loadString("res://wmploc.dll/RT_STRING/#2077");
  305.         }
  306.     }
  307.     return str;
  308. }
  309. var g_metaDataInfo;
  310. function ShowMetaData(mdObject)
  311. {
  312.     if (mdObject)
  313.     {
  314.         g_metaDataInfo = mdObject;
  315.         var str = mdObject.getDataString();
  316.         if ("" != str)
  317.         {
  318.             metadata.value = str;
  319.             metadata.tooltip = mdObject.tooltip;
  320.  
  321.             if ("" != mdObject.url)
  322.             {
  323.                 metadata.hoverFontStyle = metadata.fontStyle + " underline";
  324.                 metadata.enabled = true;
  325.             }
  326.             else
  327.             {
  328.                 metadata.hoverFontStyle = metadata.fontStyle;
  329.                 metadata.enabled = false;
  330.             }
  331.             
  332.             metadata.toolTip = mdObject.toolTip;
  333.         }
  334.     }
  335.     else
  336.     {
  337.         ShowStatus(player.status);
  338.     }
  339. }
  340.  
  341. function ShowStatus(sStr)
  342. {
  343.     metadata.value = sStr;
  344.     metadata.hoverFontStyle = "normal";
  345.     metadata.tooltip = "";
  346.     metadata.enabled = false;
  347. }
  348.  
  349. function RotateMetaData()
  350. {
  351.     var currentMetaDataObject = g_MetaDataCollectionManager.getNextMetaDataObject();
  352.     ShowMetaData(currentMetaDataObject);
  353. }
  354.  
  355. function ForceMetaData(itemIndex)
  356. {
  357.     var meta = g_MetaDataCollectionManager.getItem(itemIndex);
  358.     ShowMetaData(meta);
  359. }
  360.  
  361. function OnClickMetaData()
  362. {
  363.     if ("" != g_metaDataInfo.url)
  364.         player.launchURL(g_metaDataInfo.url);
  365. }
  366.  
  367. function UpdateReceptionQuality(nReceptionQuality)
  368. {
  369.     if ( player.network.bufferingProgress < 100 )
  370.     {
  371.         return;
  372.     }
  373.     
  374.     var protocol = player.network.sourceProtocol;
  375.     if ( (protocol=="file") || (protocol==""))
  376.     {
  377.         return;
  378.     }   
  379.     
  380.     var IDIM_OLDSTRIMG_T1_14_NORMAL=1776;
  381.     var IDIM_OLDSTRIMG_T1_14_PACKETLOSS=1777;
  382.     var IDIM_OLDSTRIMG_T1_56_NORMAL=1778;
  383.     var IDIM_OLDSTRIMG_T1_56_PACKETLOSS=1779;
  384.     var IDIM_OLDSTRIMG_T1_T1_NORMAL=1780;
  385.     var IDIM_OLDSTRIMG_T1_T1_PACKETLOSS=1781;
  386.     var IDIM_OLDSTRIMG_PACKETLOSS10=1772;
  387.     
  388.     
  389.     
  390.     var imagename = "res://wmploc.dll/RT_IMAGE/#";
  391.     
  392.     var maxBitrate = player.network.maxBitrate;
  393.     var currentBitrate = player.network.bitRate;    
  394.     var imageId=0;
  395.     if (currentBitrate==maxBitrate) 
  396.     {
  397.         imageId=IDIM_OLDSTRIMG_T1_T1_NORMAL;
  398.     }
  399.     else
  400.     {
  401.         if (currentBitrate >= (maxBitrate/2))
  402.         {
  403.             imageId=IDIM_OLDSTRIMG_T1_56_NORMAL;
  404.         }
  405.         else
  406.         {
  407.             imageId=IDIM_OLDSTRIMG_T1_14_NORMAL;
  408.         }   
  409.     }
  410.     if (nReceptionQuality > 0)
  411.     {
  412.         if(nReceptionQuality == 100)
  413.         {            
  414.             if (currentBitrate==maxBitrate)
  415.             {
  416.                 QualityIcon.upToolTip="res://wmploc/RT_STRING/#2079";
  417.             }
  418.             else
  419.             {
  420.                 QualityIcon.upToolTip="res://wmploc/RT_STRING/#2092";
  421.             }                  
  422.         }
  423.         else if( nReceptionQuality >= 95 )
  424.         {            
  425.             imageId +=1; //packet loss is one more the normal
  426.             QualityIcon.upToolTip="res://wmploc.dll/RT_STRING/#2080";
  427.         }
  428.         else if(nReceptionQuality < 95)
  429.         {
  430.             imageId = IDIM_OLDSTRIMG_PACKETLOSS10;            
  431.             QualityIcon.upToolTip="res://wmploc.dll/RT_STRING/#2081";
  432.         }
  433.         imagename += imageId;
  434.         QualityIcon.image = imagename;
  435.         QualityIcon.visible=true;
  436.     }
  437. }
  438.  
  439. function OnTimerTransport()
  440. {
  441.     if (osMediaOpen != g_osOpenState)
  442.        return;
  443.     
  444.     switch(g_psPlayState)
  445.     {
  446.         case psPlaying:
  447.             RotateMetaData();        
  448.             break;
  449.     }
  450. }
  451.  
  452. function OnStatusChangeTransport()
  453. {
  454.     ShowStatus(player.status);
  455. }
  456.  
  457.  
  458. function OnBufferingChangeTransport(nProgress)
  459. {
  460.     if ( nProgress!=g_bufferingProgress)
  461.     {
  462.         g_bufferingProgress=nProgress;
  463.     }
  464.     else
  465.     {
  466.         return;
  467.     }
  468.     
  469.     if (nProgress == 100)
  470.     {
  471.         QualityIcon.image = "res://wmploc/RT_IMAGE/#1776";
  472.         QualityIcon.upToolTip="";
  473.         return;
  474.     }
  475.     if (nProgress > 50)
  476.     {
  477.         if (nProgress > 75)
  478.         {
  479.             QualityIcon.image = "res://wmploc/RT_IMAGE/#1774";
  480.         }
  481.         else
  482.         {
  483.             QualityIcon.image = "res://wmploc/RT_IMAGE/#1773";
  484.         }
  485.     }
  486.     else
  487.     {
  488.         if (nProgress>25)
  489.         {
  490.             QualityIcon.image = "res://wmploc/RT_IMAGE/#1771";
  491.         }
  492.         else
  493.         {
  494.             QualityIcon.image = "res://wmploc/RT_IMAGE/#1770";
  495.         }    
  496.     }    
  497.     var toolTip = "";
  498.     toolTip = toolTip.sprintf(g_bufferingToolTipFormatString, nProgress.toString());
  499.     QualityIcon.upToolTip=toolTip;
  500.     ShowStatus(player.status);
  501. }
  502.  
  503. function OnDisconnectTransport()
  504. {
  505.     ShowStatus(theme.loadString("res://wmploc.dll/RT_STRING/#2063"));
  506. }
  507.  
  508. function playOnClick()
  509. {
  510.     if (player.PlayState == psPlaying)
  511.     {
  512.         player.controls.pause();
  513.     }
  514.     else
  515.     {
  516.         player.controls.play();
  517.     }
  518. }
  519.  
  520. function OnFFWD()
  521. {
  522.     if (player.PlayState == psScanForward)
  523.     {
  524.         player.controls.play();
  525.     }
  526.     else
  527.     {
  528.         player.controls.FastForward();
  529.     }
  530. }
  531.         
  532. function OnREW()
  533. {
  534.     if (player.PlayState == psScanReverse)
  535.     {
  536.         player.controls.play();
  537.     }
  538.     else
  539.     {
  540.         player.controls.FastReverse();
  541.     }
  542. }
  543.  
  544. function volumeOnChange()
  545. {
  546.     player.settings.mute=false;
  547. }
  548.  
  549. function muteOnClick()
  550. {
  551.     player.settings.mute = (player.settings.mute == true) ? false : true;
  552. }
  553.  
  554. function CheckForDecodingIcons()
  555. {
  556.     var IconPaths = player.currentPlaylist.getItemInfo("IconPaths");
  557.     if (IconPaths=="")
  558.     {
  559.         var HDCDMode = parseInt(player.currentPlaylist.getItemInfo("HDCDMode"));
  560.         if (HDCDMode==1)
  561.         {
  562.             g_strPlayIcon = "res://wmploc/RT_IMAGE/#1787";
  563.             g_strPlayTooltip = theme.loadString("res://wmploc.dll/RT_STRING/#2098");
  564.             return;
  565.         }
  566.         else if (HDCDMode==2)
  567.         {
  568.             g_strPlayIcon = "res://wmploc/RT_IMAGE/#2030";
  569.             g_strPlayTooltip = theme.loadString("res://wmploc.dll/RT_STRING/#2097");
  570.             return;
  571.         }
  572.     }
  573.     else
  574.     {
  575.         //IconPaths can be a pipe-delimited set of image paths
  576.         var IconArray = IconPaths.split("|");
  577.         if (IconArray[0].indexOf("res://wmploc")==0)
  578.         {
  579.             //currently we're not handling multiple icons, so we just use
  580.             //the zeroth one.  Furthermore, we don't yet support normal paths,
  581.             //only res://wmploc/#RESOURCE_ID
  582.             g_strPlayIcon = IconArray[0];
  583.             g_strPlayTooltip = "";
  584.             return;
  585.         }
  586.     }
  587.     g_strPlayIcon = "res://wmploc/RT_IMAGE/#1784";
  588.     g_strPlayTooltip = "";    
  589. }
  590.  
  591.  
  592. function OnPlayStateChangeTransport(NewState)
  593. {
  594.     g_psPlayState = NewState;
  595.     /*
  596.     if ( (NewState == psPlaying) || (NewState == psWaiting) )
  597.     {
  598.         switchToPlayButton(false);
  599.     }
  600.     else
  601.     {
  602.         switchToPlayButton(true);
  603.     }
  604.     */
  605.     
  606.     switch (NewState)
  607.     {
  608.     default:
  609.     case psUndefined:
  610.             seek.foregroundProgress = 0;
  611.             rew.down        = false;
  612.             ffwd.down        = false;
  613.         break;
  614.  
  615.     case psTransitioning:
  616.             rew.down        = false;
  617.             ffwd.down        = false;
  618.         break;            
  619.         
  620.     case psReady:
  621.             QualityIcon.visible        =false;
  622.             QualityIcon.upToolTip    = "";
  623.             seek.foregroundProgress = 0;
  624.             rew.down                = false;
  625.             ffwd.down                = false;
  626.         break;
  627.  
  628.     case psStopped:
  629.             QualityIcon.visible        = true;
  630.             QualityIcon.image        = "res://wmploc/RT_IMAGE/#2024";
  631.             QualityIcon.upToolTip    = "";
  632.             ffwd.down                = false;
  633.             rew.down                = false;
  634.         break;
  635.         
  636.     case psPaused:
  637.             QualityIcon.visible        = true;
  638.             QualityIcon.image        = "res://wmploc/RT_IMAGE/#2023";
  639.             QualityIcon.upToolTip    = "";
  640.             ffwd.down                = false;
  641.             rew.down                = false;
  642.         break;
  643.         
  644.     case psPlaying:
  645.             ShowPlayingIcon();
  646.             ShowStatus(player.status);
  647.             ffwd.down                = false;
  648.             rew.down                = false;
  649.         break;
  650.         
  651.     case psWaiting:
  652.             rew.down                = false;
  653.             ffwd.down                = false;
  654.         break;
  655.         
  656.     case psScanForward:
  657.             ShowPlayingIcon();
  658.             rew.down                = false;
  659.             ffwd.down                = true;
  660.         break;
  661.         
  662.     case psScanReverse:
  663.             ShowPlayingIcon();
  664.             rew.down                = true;
  665.             ffwd.down                = false;
  666.         break;
  667.         
  668.     case psBuffering:
  669.         break;
  670.  
  671.     case psReconnecting:
  672.         break;
  673.     }
  674. }
  675.  
  676. function ShowPlayingIcon()
  677. {
  678.     var sp = player.network.sourceProtocol;
  679.     if ( (sp=="file") || (sp=="") )
  680.     {
  681.         CheckForDecodingIcons();
  682.         QualityIcon.image        = g_strPlayIcon;
  683.         QualityIcon.upToolTip    = g_strPlayTooltip;
  684.         QualityIcon.visible        = true;
  685.     }
  686.     else
  687.     {
  688.         UpdateReceptionQuality(player.network.receptionQuality);
  689.     }
  690. }
  691.  
  692. function OnOpenStateChangeTransport(NewState)
  693. {
  694.     g_osOpenState=NewState;
  695.     switch (NewState)
  696.     {
  697.     case osUndefined:
  698.         tracktime.visible    = false;
  699.         g_fIsLiveBroadcast    = false;
  700.         break;
  701.         
  702.     case osPlaylistChanging:
  703.         break;
  704.  
  705.     case osPlaylistLocating:
  706.         break;
  707.  
  708.     case osPlaylistConnecting:
  709.         break;
  710.  
  711.     case osPlaylistLoading:
  712.         break;
  713.  
  714.     case osPlaylistOpening:
  715.         break;
  716.  
  717.     case osPlaylistOpenNoMedia:
  718.         break;
  719.  
  720.     case osPlaylistChanged:
  721.         break;
  722.  
  723.     case osMediaChanging:
  724.         QualityIcon.visible = false;
  725.         break;
  726.  
  727.     case osMediaLocating:
  728.         QualityIcon.visible        = true;
  729.         QualityIcon.image        = "res://wmploc/RT_IMAGE/#1783";
  730.         QualityIcon.upToolTip    = "";
  731.         break;
  732.  
  733.     case osMediaConnecting:
  734.         QualityIcon.visible        = true;
  735.         QualityIcon.image        = "res://wmploc/RT_IMAGE/#1783"; // uses same image as Locating
  736.         QualityIcon.upToolTip    = "";
  737.         break;
  738.  
  739.     case osMediaLoading:
  740.         break;
  741.  
  742.     case osMediaWaiting:
  743.         g_fIsLiveBroadcast        = (player.currentMedia.getItemInfo("Type") == "broadcast");
  744.         seek.enabled            = !g_fIsLiveBroadcast;
  745.         break;
  746.  
  747.     case osMediaOpening:
  748.         QualityIcon.visible        = true;
  749.         QualityIcon.image        = "res://wmploc/RT_IMAGE/#1782";
  750.         QualityIcon.upToolTip    = "";
  751.         break;
  752.  
  753.     case osMediaOpen: 
  754.         tracktime.visible        = true;
  755.         g_fIsLiveBroadcast        = (player.currentmedia.getiteminfo("Type") == "broadcast");
  756.         seek.enabled            = !g_fIsLiveBroadcast;
  757.         InitMetaDataCollection();
  758.         break;
  759.  
  760.     case osBeginLicenseAcquisition:
  761.         break;
  762.  
  763.     case osEndLicenseAcquisition:
  764.         break;
  765.  
  766.     case osBeginIndividualization:
  767.         break;
  768.  
  769.     case osEndIndividualization:
  770.         break;
  771.  
  772.     default:
  773.         break;
  774.     }    
  775. }
  776.