home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September (Special) / Chip-Special_2002-09_Digitalni-Video.bin / servis / wm9 / mpsetupXP.exe / RCDATA / CABINET / wmploc.DLL / 256 / 142 < prev    next >
Text File  |  2002-08-19  |  21KB  |  819 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/RT_STRING/#2099");
  16. var g_strPlayTooltip = "";
  17.  
  18. var g_SetPlayPauseFocus=false;
  19.  
  20. var g_kPositionFormatString = null;
  21. var g_kSeekTooltip = theme.loadString("res://wmploc/RT_STRING/#1809");
  22.  
  23. var g_strPlayIcon="res://wmploc/RT_IMAGE/#1784";
  24. function ResetPlayIcon()
  25. {
  26.     g_strPlayIcon="res://wmploc/RT_IMAGE/#1784";
  27.  
  28. function InitMiniControls()
  29. {
  30.     g_bufferingProgress = player.network.bufferingProgress;
  31.     player.settings.enableErrorDialogs = false;
  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.     OnOpenStateChangeTransport(player.openState);
  41.     OnPlayStateChangeTransport(player.playState);
  42.     OnStatusChangeTransport(player.status);
  43. }
  44.  
  45.  
  46. function InitBuyMe()
  47. {
  48.     var BuyBMP = mediacenter.getNamedString("BuyMusicButton");
  49.     var BuyURL = mediacenter.getNamedString("BuyMusicURL");
  50.  
  51.     if (BuyBMP != "" && BuyURL != "")
  52.     {
  53.         buyme.Image     = 'BuyMusicButton';
  54.         g_fShowingBuyMe = true;
  55.         ShowBuyMe();
  56.     }
  57. }
  58.  
  59. function ShowBuyMe()
  60. {
  61.     if (g_fShowingBuyMe == true)
  62.     {
  63.         buyme.visible = (buyme.left > (bgSeekCtls.left + bgSeekCtls.width + 15));
  64.     }
  65. }
  66.  
  67. /*
  68. function LaunchBuy()
  69. {
  70.     var BuyURL = 'http://go.microsoft.com/fwlink?prd=766&pver=9.0&plcid=0x' + mediacenter.getNamedString("PLCID") + '&ar=BuyNow&sar=' + mediacenter.getNamedString("BuyMusicURL");
  71.  
  72.     player.launchURL( BuyURL );
  73. }
  74. */
  75.  
  76. function MetaDataObject( formatStringID, dataCode, fEvalEveryTime, urlCode, tooltipCode )
  77. {
  78.     this.formatString = getFormatString(formatStringID);
  79.     this.dataCode = dataCode;
  80.     this.fEvalEveryTime = (fEvalEveryTime==true);
  81.     this.urlCode = urlCode ? urlCode : '""';
  82.     this.tooltipCode= tooltipCode ? tooltipCode : '""';
  83.     this.str = "";
  84.     this.url = "";
  85.     this.toolTip = "";
  86.  
  87.     this.getDataString = getDataString;
  88.     this.init = initMetaDataObject;
  89. }
  90.  
  91. function getDataString()
  92. {
  93.     if (false==this.fEvalEveryTime)
  94.     {
  95.         return this.str;
  96.     }
  97.     else
  98.     {
  99.         return getFormattedDataString(this.formatString, this.dataCode);
  100.     }
  101. }
  102. function initMetaDataObject()
  103. {
  104.     this.str = getFormattedDataString(this.formatString,this.dataCode);
  105.     this.url = eval(this.urlCode);
  106.     this.toolTip = eval(this.tooltipCode);
  107. }
  108.  
  109. function MetaDataDefinitionSet ( arrayOfMetaDataObjects, testCode)
  110. {
  111.     this.arrayOfMetaDataObjects = arrayOfMetaDataObjects;
  112.     this.testCode = testCode;
  113. }
  114.  
  115. function getMInfo(itemName)
  116. {
  117.     if (player.openState==osMediaOpen)
  118.     {
  119.         return player.currentMedia.getItemInfo(itemName);
  120.     }
  121. }
  122.  
  123. function getPInfo(itemName)
  124. {
  125.     return player.currentPlaylist.getItemInfo(itemName);
  126. }
  127.  
  128. var g_sAudioMetaData = new Array
  129. (            //formatStringID,  script to get data 
  130.     new MetaDataObject ( "",     "player.status", true ),
  131.     new MetaDataObject ( "2070", "getMInfo('album')", true, "getMInfo('moreinforef')", "getMInfo('abstract')" ),
  132.     new MetaDataObject ( "2071", "if(player.openState==osMediaOpen)player.currentMedia.name; else '';", true, "getPInfo('moreinforef')", "getPInfo('abstract')" ),
  133.     new MetaDataObject ( "2072", "getMInfo('author')",true ),
  134.     new MetaDataObject ( "2076", "getMInfo('copyright')",true ),
  135.     new MetaDataObject ( "", "GetDRMString(player.currentMedia)" )
  136. );
  137.  
  138. var g_sVideoMetaData = new Array
  139. (            //formatStringID,  script to get data 
  140.     new MetaDataObject ( "",      "player.status", true),
  141.     new MetaDataObject ( "2073",  "getPInfo('title')", true, "getPInfo('moreinforef')", "getPInfo('abstract')" ),
  142.     new MetaDataObject ( "2074",  "if(player.openState==osMediaOpen)player.currentMedia.name; else '';", true, "getMInfo('moreinforef')", "getMInfo('abstract')" ),
  143.     new MetaDataObject ( "2075",  "getMInfo('author')", true ),
  144.     new MetaDataObject ( "2076",  "getMInfo('copyright')", true ),
  145.     new MetaDataObject ( "",  "GetDRMString(player.currentMedia)")
  146. );
  147.  
  148.  
  149. var g_sDVDMetaData = new Array
  150. (           //formatStringID,  script to get data 
  151.     new MetaDataObject ( "",      "player.status", true),
  152.     new MetaDataObject ( "2082",  "getMInfo('Author')", true),
  153.     new MetaDataObject ( "2083",  "getMInfo('Studio')", true ),
  154.     new MetaDataObject ( "",      "GetChapterTitleString()", true)
  155. );
  156.  
  157.  
  158. var g_sMetaDataDefinitionSets = new Array 
  159. (
  160.     new MetaDataDefinitionSet ( g_sAudioMetaData, "(player.dvd.isAvailable('dvd')==false) && (player.currentMedia.imageSourceHeight==0)"),
  161.     new MetaDataDefinitionSet ( g_sVideoMetaData, "(player.dvd.isAvailable('dvd')==false) && (player.currentMedia.imageSourceHeight>0)" ),
  162.     new MetaDataDefinitionSet ( g_sDVDMetaData,   "player.dvd.isAvailable('dvd')==true" )
  163. );
  164.  
  165. function getNextMetaDataObject()
  166. {
  167.     this.currentIndex = (this.currentIndex + 1) % this.metaDataCollection.length;
  168.     return this.metaDataCollection[this.currentIndex];
  169. }
  170.  
  171. function clear()
  172. {
  173.     this.metaDataCollection.length=0;
  174.     this.currentIndex = 0;    
  175. }
  176.  
  177. function append(mdObject)
  178. {
  179.     this.metaDataCollection[this.metaDataCollection.length] = mdObject;
  180. }
  181.  
  182. function getItem(index)
  183. {
  184.     this.currentIndex = index-1;
  185.     return this.getNextMetaDataObject();
  186. }
  187.  
  188. function MetaDataCollectionManager()
  189. {
  190.     this.metaDataCollection = new Array();
  191.     this.currentIndex = 0;
  192.     this.getNextMetaDataObject = getNextMetaDataObject;
  193.     this.clear = clear;
  194.     this.append = append;
  195.     this.getItem = getItem;
  196. }
  197.  
  198. var g_MetaDataCollectionManager = new MetaDataCollectionManager();
  199.  
  200. function InitMetaDataCollection()
  201. {
  202.     g_MetaDataCollectionManager.clear();
  203.     var CurrentSet;
  204.     for (var mdList in g_sMetaDataDefinitionSets)
  205.     {
  206.         CurrentSet = g_sMetaDataDefinitionSets[mdList];
  207.         if ( eval(CurrentSet.testCode) )
  208.         {
  209.             break;
  210.         }
  211.     }
  212.     var allTypes = CurrentSet.arrayOfMetaDataObjects;
  213.     for (var index in allTypes)
  214.     {
  215.         var mdObject = allTypes[index];
  216.         mdObject.init();
  217.         if ( (mdObject.str!="") || mdObject.fEvalEveryTime )
  218.         {
  219.             g_MetaDataCollectionManager.append(mdObject);
  220.         }
  221.     }
  222.     ShowStatus(player.status);
  223. }
  224.  
  225. function getFormatString(formatStringID)
  226. {
  227.     if (""==formatStringID)
  228.     {
  229.         return "";
  230.     }
  231.     
  232.     return theme.loadString("res://wmploc/RT_STRING/#" + formatStringID);
  233. }
  234.  
  235. function getFormattedDataString(formatString, dataCode)
  236. {
  237.     var data = eval(dataCode);
  238.     if (data=="")
  239.     {
  240.         return "";
  241.     }
  242.     if (""!=formatString)
  243.     {
  244.         data=data.sprintf(formatString,data);
  245.     }
  246.     return data;
  247. }
  248.  
  249. function GetChapterTitleString()
  250. {
  251.     if (player.openState!=osMediaOpen)
  252.     {
  253.         return "";
  254.     }
  255.     var DVDChapterANDTitleFormatString = theme.loadString("res://wmploc/RT_STRING/#2086");
  256.  
  257.     var title = player.currentPlaylist.name;
  258.     var chapter = player.currentMedia.name;
  259.     
  260.     //jcain - DON'T CHANGE THE ORDER OF THESE ARGUMENTS!!! (title, chapter)
  261.     //their order is vital to sprintf formattting them properly for localization
  262.     var arguments = new Array (title,chapter);
  263.     var TitleAndChapter = "";
  264.     TitleAndChapter = TitleAndChapter.sprintf(DVDChapterANDTitleFormatString, arguments);
  265.     return TitleAndChapter;    
  266. }
  267.  
  268. function sprintf(str,s)
  269. {
  270.     if (typeof(s)=="string")
  271.     {
  272.         var re;
  273.         re = /%s/i;
  274.         str = str.replace(re, s);
  275.     }
  276.     else
  277.     {
  278.         var index =1;
  279.         for (var replaceStrings in s)
  280.         {
  281.             var re;
  282.             re = eval("/%" + index + "/i");
  283.             str = str.replace(re, s[replaceStrings]);
  284.             index++;            
  285.         }
  286.     }
  287.     return str;
  288. }
  289.  
  290. String.prototype.sprintf = sprintf;
  291.  
  292. function GetDRMString(obj)
  293. {
  294.     var str = "";
  295.     if ("true" == obj.getItemInfo("Is_Protected"))
  296.     {
  297.         if ("true" == obj.getItemInfo("Is_Trusted"))
  298.         {
  299.             str = theme.loadString("res://wmploc/RT_STRING/#2078");
  300.             var signame = obj.getItemInfo("Signature_Name");
  301.             str = str.sprintf(str,signame);
  302.         }
  303.         else
  304.         {
  305.             str = theme.loadString("res://wmploc/RT_STRING/#2077");
  306.         }
  307.     }
  308.     return str;
  309. }
  310. var g_metaDataInfo;
  311. function ShowMetaData(mdObject)
  312. {
  313.     if (mdObject)
  314.     {
  315.         g_metaDataInfo = mdObject;
  316.         var str = mdObject.getDataString();
  317.         if ("" != str)
  318.         {
  319.             metadata.value = str;
  320.             metadata.tooltip = mdObject.tooltip;
  321.  
  322.             if ("" != mdObject.url)
  323.             {
  324.                 metadata.hoverFontStyle = metadata.fontStyle + " underline";
  325.                 metadata.enabled = true;
  326.             }
  327.             else
  328.             {
  329.                 metadata.hoverFontStyle = metadata.fontStyle;
  330.                 metadata.enabled = false;
  331.             }
  332.             
  333.             metadata.toolTip = mdObject.toolTip;
  334.         }
  335.     }
  336.     else
  337.     {
  338.         ShowStatus(player.status);
  339.     }
  340. }
  341.  
  342. function ShowStatus(sStr)
  343. {
  344.     metadata.value = sStr;
  345.     metadata.hoverFontStyle = "normal";
  346.     metadata.tooltip = "";
  347.     metadata.enabled = false;
  348. }
  349.  
  350. function RotateMetaData()
  351. {
  352.     var currentMetaDataObject = g_MetaDataCollectionManager.getNextMetaDataObject();
  353.     ShowMetaData(currentMetaDataObject);
  354. }
  355.  
  356. function ForceMetaData(itemIndex)
  357. {
  358.     var meta = g_MetaDataCollectionManager.getItem(itemIndex);
  359.     ShowMetaData(meta);
  360. }
  361.  
  362. function OnClickMetaData()
  363. {
  364.     if ("" != g_metaDataInfo.url)
  365.         player.launchURL(g_metaDataInfo.url);
  366. }
  367.  
  368. function UpdateReceptionQuality(nReceptionQuality)
  369. {
  370.     if ( player.network.bufferingProgress < 100 )
  371.     {
  372.         return;
  373.     }
  374.     
  375.     var protocol = player.network.sourceProtocol;
  376.     if ( (protocol=="file") || (protocol=="") )
  377.     {
  378.         return;
  379.     }   
  380.  
  381.     if ( (g_strPlayIcon == "WMPImage_PlaybackIcon")&&
  382.          (player.network.maxBitrate==player.network.bitRate)&&
  383.          (nReceptionQuality == 100) )
  384.     {
  385.         return;
  386.     }
  387.     
  388.     var IDIM_OLDSTRIMG_T1_14_NORMAL=1776;
  389.     var IDIM_OLDSTRIMG_T1_14_PACKETLOSS=1777;
  390.     var IDIM_OLDSTRIMG_T1_56_NORMAL=1778;
  391.     var IDIM_OLDSTRIMG_T1_56_PACKETLOSS=1779;
  392.     var IDIM_OLDSTRIMG_T1_T1_NORMAL=1780;
  393.     var IDIM_OLDSTRIMG_T1_T1_PACKETLOSS=1781;
  394.     var IDIM_OLDSTRIMG_PACKETLOSS10=1772;
  395.     
  396.     
  397.     
  398.     var imagename = "res://wmploc/RT_IMAGE/#";
  399.     
  400.     var maxBitrate = player.network.maxBitrate;
  401.     var currentBitrate = player.network.bitRate;    
  402.     var imageId=0;
  403.     if (currentBitrate==maxBitrate) 
  404.     {
  405.         imageId=IDIM_OLDSTRIMG_T1_T1_NORMAL;
  406.     }
  407.     else
  408.     {
  409.         if (currentBitrate >= (maxBitrate/2))
  410.         {
  411.             imageId=IDIM_OLDSTRIMG_T1_56_NORMAL;
  412.         }
  413.         else
  414.         {
  415.             imageId=IDIM_OLDSTRIMG_T1_14_NORMAL;
  416.         }   
  417.     }
  418.     if (nReceptionQuality > 0)
  419.     {
  420.         if(nReceptionQuality == 100)
  421.         {            
  422.             if (currentBitrate==maxBitrate)
  423.             {
  424.                 QualityIcon.upToolTip="res://wmploc/RT_STRING/#2079";
  425.             }
  426.             else
  427.             {
  428.                 QualityIcon.upToolTip="res://wmploc/RT_STRING/#2092";
  429.             }                  
  430.         }
  431.         else if( nReceptionQuality >= 95 )
  432.         {            
  433.             imageId +=1; //packet loss is one more the normal
  434.             QualityIcon.upToolTip="res://wmploc/RT_STRING/#2080";
  435.         }
  436.         else if(nReceptionQuality < 95)
  437.         {
  438.             imageId = IDIM_OLDSTRIMG_PACKETLOSS10;            
  439.             QualityIcon.upToolTip="res://wmploc/RT_STRING/#2081";
  440.         }
  441.         imagename += imageId;
  442.         QualityIcon.image = imagename;
  443.         QualityIcon.visible=true;
  444.     }
  445. }
  446.  
  447. function OnTimerTransport()
  448. {
  449.     if (osMediaOpen != g_osOpenState)
  450.         return;
  451.     
  452.     switch(g_psPlayState)
  453.     {
  454.         case psPlaying:
  455.             RotateMetaData();        
  456.             break;
  457.     }
  458. }
  459.  
  460. function OnStatusChangeTransport()
  461. {
  462.     ShowStatus(player.status);
  463. }
  464.  
  465.  
  466. function OnBufferingChangeTransport(nProgress)
  467. {
  468.     if ( nProgress!=g_bufferingProgress)
  469.     {
  470.         g_bufferingProgress=nProgress;
  471.     }
  472.     else
  473.     {
  474.         return;
  475.     }
  476.     
  477.     if (nProgress == 100)
  478.     {
  479.         QualityIcon.image = "res://wmploc/RT_IMAGE/#1776";
  480.         QualityIcon.upToolTip="";
  481.         return;
  482.     }
  483.     if (nProgress > 50)
  484.     {
  485.         if (nProgress > 75)
  486.         {
  487.             QualityIcon.image = "res://wmploc/RT_IMAGE/#1774";
  488.         }
  489.         else
  490.         {
  491.             QualityIcon.image = "res://wmploc/RT_IMAGE/#1773";
  492.         }
  493.     }
  494.     else
  495.     {
  496.         if (nProgress>25)
  497.         {
  498.             QualityIcon.image = "res://wmploc/RT_IMAGE/#1771";
  499.         }
  500.         else
  501.         {
  502.             QualityIcon.image = "res://wmploc/RT_IMAGE/#1770";
  503.         }    
  504.     }    
  505.     var toolTip = "";
  506.     toolTip = toolTip.sprintf(g_bufferingToolTipFormatString, nProgress.toString());
  507.     QualityIcon.upToolTip=toolTip;
  508.     ShowStatus(player.status);
  509. }
  510.  
  511. function OnDisconnectTransport()
  512. {
  513.     ShowStatus(theme.loadString("res://wmploc/RT_STRING/#2063"));
  514. }
  515.  
  516. function playOnClick()
  517. {
  518.     if (player.PlayState == psPlaying)
  519.     {
  520.         player.controls.pause();
  521.     }
  522.     else
  523.     {
  524.         player.controls.play();
  525.     }
  526. }
  527.  
  528. function OnFFWD()
  529. {
  530.     if (player.PlayState == psScanForward)
  531.     {
  532.         player.controls.play();
  533.     }
  534.     else
  535.     {
  536.         player.controls.FastForward();
  537.     }
  538. }
  539.         
  540. function OnREW()
  541. {
  542.     if (player.PlayState == psScanReverse)
  543.     {
  544.         player.controls.play();
  545.     }
  546.     else
  547.     {
  548.         player.controls.FastReverse();
  549.     }
  550. }
  551.  
  552. function volumeOnChange()
  553. {
  554.     player.settings.mute=false;
  555. }
  556.  
  557. function muteOnClick()
  558. {
  559.     player.settings.mute = (player.settings.mute == true) ? false : true;
  560. }
  561.  
  562.  
  563. function ShowPlaybackIcon()
  564. {
  565.     g_strPlayIcon   = "WMPImage_PlaybackIcon";
  566.     g_strPlayTooltip="";
  567.     if (player.playState==psPlaying)
  568.     {
  569.         QualityIcon.image = g_strPlayIcon;
  570.         QualityIcon.upToolTip = g_strPlayTooltip;
  571.         QualityIcon.visible=true;
  572.     }
  573. }
  574.  
  575. var g_IconURL="";
  576.  
  577. function CheckForDecodingIcons()
  578. {
  579.     var HDCDMode = parseInt(player.currentPlaylist.getItemInfo("HDCDMode"));
  580.     if (HDCDMode==1)
  581.     {
  582.         g_strPlayIcon = "res://wmploc/RT_IMAGE/#1787";
  583.         g_strPlayTooltip = theme.loadString("res://wmploc/RT_STRING/#2098");
  584.         g_IconURL = mediacenter.getNamedString("HDCD_URL");
  585.         return;
  586.     }
  587.     else if (HDCDMode==2)
  588.     {
  589.         g_strPlayIcon = "res://wmploc/RT_IMAGE/#2030";
  590.         g_strPlayTooltip = theme.loadString("res://wmploc/RT_STRING/#2097");
  591.         g_IconURL = mediacenter.getNamedString("HDCD_URL");
  592.         return;
  593.     }
  594.     if (g_strPlayIcon != "WMPImage_PlaybackIcon")
  595.     {
  596.         g_strPlayIcon = "res://wmploc/RT_IMAGE/#1784";
  597.         g_strPlayTooltip = "";
  598.         g_IconURL = "";
  599.     }
  600. }
  601.  
  602.  
  603. function OnPlayStateChangeTransport(NewState)
  604. {
  605.     g_psPlayState=NewState;
  606.     
  607.     switch (NewState)
  608.     {
  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=="") || (g_strPlayIcon == "WMPImage_PlaybackIcon") )
  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.         ResetPlayIcon();
  726.         break;
  727.  
  728.     case osMediaLocating:
  729.         QualityIcon.visible=true;
  730.         QualityIcon.image = "res://wmploc/RT_IMAGE/#1783";
  731.         QualityIcon.upToolTip="";
  732.         break;
  733.  
  734.     case osMediaConnecting:
  735.         QualityIcon.visible=true;
  736.         QualityIcon.image = "res://wmploc/RT_IMAGE/#1783"; // uses same image as Locating
  737.         QualityIcon.upToolTip="";
  738.         break;
  739.  
  740.     case osMediaLoading:
  741.         break;
  742.  
  743.     case osMediaWaiting:
  744.         g_fIsLiveBroadcast = (player.currentMedia.getItemInfo("Type") == "broadcast");
  745.         seek.enabled = !g_fIsLiveBroadcast;
  746.         break;
  747.  
  748.     case osMediaOpening:
  749.         QualityIcon.visible=true;
  750.         QualityIcon.image = "res://wmploc/RT_IMAGE/#2020";
  751.         QualityIcon.upToolTip="";
  752.         g_strPlayIcon = "res://wmploc/RT_IMAGE/#1784";
  753.         g_strPlayTooltip = "";        
  754.         break;
  755.  
  756.     case osMediaOpen: 
  757.         tracktime.visible=true;
  758.         g_fIsLiveBroadcast = (player.currentmedia.getiteminfo("Type") == "broadcast");
  759.         seek.enabled = !g_fIsLiveBroadcast;
  760.         InitMetaDataCollection();
  761.         break;
  762.  
  763.     case osBeginLicenseAcquisition:
  764.         break;
  765.  
  766.     case osEndLicenseAcquisition:
  767.         break;
  768.  
  769.     case osBeginIndividualization:
  770.         break;
  771.  
  772.     case osEndIndividualization:
  773.         break;
  774.  
  775.     default:
  776.         break;
  777.     }    
  778. }
  779.  
  780. function getFormattedValue(value)
  781. {
  782.     if (player.openState!=osMediaOpen)
  783.     {
  784.         return g_kSeekTooltip;
  785.     }
  786.  
  787.     if (!g_kPositionFormatString)
  788.     {
  789.         g_kPositionFormatString = theme.loadString("res://wmploc/RT_STRING/#2091");
  790.     }
  791.     var currentValue;
  792.     try
  793.     {
  794.         currentValue = app.getTimeString(value);
  795.     }
  796.     catch(err)
  797.     {
  798.         currentValue = helper.getTimeString(value);
  799.     }
  800.         
  801.     var totalTime = player.currentMedia.durationString; 
  802.     var format = g_kPositionFormatString;
  803.   
  804.     format = format.replace(/%1/i, currentValue);
  805.     format = format.replace(/%2/i, totalTime);
  806.  
  807.     return format;
  808. }
  809.  
  810. function getDarkTextColor()
  811. {
  812.     return mediacenter.appColorDark;
  813. }
  814.  
  815. function getHighlightTextColor()
  816. {
  817.     return mediacenter.itemPlayingColor;
  818. }