home *** CD-ROM | disk | FTP | other *** search
/ Minami 79 / MINAMI79.iso / Extra / MPSetup.exe / 1033 / RCDATA / CABINET / wmploc.DLL / 256 / DVDCTRLS.JS < prev    next >
Text File  |  2002-12-14  |  7KB  |  269 lines

  1. // Windows Media Player - Copyright 2000 Microsoft Corporation.
  2. //<script>
  3.  
  4. var g_kMaxDVDRate=16;
  5. var g_currentSpeedFormatString  = theme.loadString("res://wmploc.dll/RT_STRING/#225");
  6. var g_slowSpeedFormatString     = theme.loadString("res://wmploc.dll/RT_STRING/#226");
  7. var g_fDraggingSlider = false;
  8.  
  9. var g_kSpeedFontSize = parseInt(theme.loadString("res://wmploc.dll/RT_STRING/#3023"));
  10.  
  11. var g_SigFigs = 1;
  12.  
  13. function UpdateRateUI(rate)
  14. {
  15.     g_SigFigs = SnapToTicks.down ? 1 : 3;
  16.     CurrentSpeedText.value = sprintf(g_currentSpeedFormatString,rate.SigFig(g_SigFigs));
  17.     SetSlider(rate);
  18. }
  19.  
  20. function isBetween(low,high,value)
  21. {
  22.     return ( (this>low) && (this<high) );
  23. }
  24.  
  25. function SigFig(numSigFigs)
  26. {
  27.     //add or subtract 0.5, 0.05, 0.005, etc before truncating to get a rounded value for the last digit
  28.     //ex 1)  1.39   + 0.05      gives you  1.44 which truncates to 1.4      (last digit rounds down)
  29.     //ex 2) -1.3549 - 0.0005    gives you -1.3554 which truncates to -1.355 (last digit rounds "up", actual value rounds down)
  30.     roundingValue = (numSigFigs > 0) ? ( 0.5 / ( Math.pow(10,numSigFigs)) ) : 0;
  31.     var valueToRound = (this > 0) ? (this + roundingValue) : (this - roundingValue);
  32.     var stringval = valueToRound.toString();
  33.     var decimalPosition = stringval.indexOf(".");
  34.     if (decimalPosition==-1)
  35.         decimalPosition = stringval.indexOf(",");
  36.     if(decimalPosition!=-1)
  37.     {
  38.         stringval = stringval.slice(0,decimalPosition+numSigFigs+1);
  39.     }
  40.     return stringval;     
  41. }
  42.  
  43. Number.prototype.isBetween = isBetween;
  44. Number.prototype.SigFig = SigFig;
  45.  
  46. function StartStopTimer(playstate)
  47. {
  48.     if ( (playstate>=psStopped) && (playstate<=psScanReverse) )
  49.     {
  50.         view.timerInterval=50;
  51.     }
  52.     else
  53.     {
  54.         view.timerInterval=0;
  55.     }
  56. }
  57.  
  58. var g_kSliderPos = new Array();
  59. g_kSliderPos[-16]   =0;
  60. g_kSliderPos[-8]    =1.684;
  61. g_kSliderPos[-6]    =3.368;
  62. g_kSliderPos[-4]    =5.053;
  63. g_kSliderPos[0]     =6.737;
  64. g_kSliderPos[0.5]   =8.421;
  65. g_kSliderPos[1]     =14.035;
  66. g_kSliderPos[1.4]   =18.526;
  67. g_kSliderPos[2]     =25.263;
  68. g_kSliderPos[4]     =26.947;
  69. g_kSliderPos[6]     =28.632;
  70. g_kSliderPos[8]     =30.316;
  71. g_kSliderPos[16]    =32;
  72.  
  73. function RescaleValue(scaleAMin, scaleAMax, Avalue, scaleBMin, scaleBMax )
  74. {
  75.     if (scaleAMax==scaleAMin) return 0;
  76.     var dA  = Avalue-scaleAMin;
  77.     var ddA = dA / (scaleAMax-scaleAMin);
  78.     return scaleBMin + ddA * (scaleBMax-scaleBMin);
  79. }
  80.  
  81. function GetSliderFromRate(rate)
  82. {
  83.     var rateScaleMin = 0;
  84.     var rateScaleMax = 0;
  85.     if ( (rate>=-16) && (rate<=-8) )
  86.     {
  87.         rateScaleMin=-16;
  88.         rateScaleMax=-8;
  89.     }
  90.     else if ( (rate>=-8) && (rate<=-4) )
  91.     {
  92.         rateScaleMin=-8;
  93.         rateScaleMax=-4;
  94.     }
  95.     else if ( (rate>=-4) && (rate<=0) )
  96.     {
  97.         rateScaleMin=-4;
  98.         rateScaleMax=0;
  99.     }
  100.     else if ( (rate>=0) && (rate<=0.5) )
  101.     {
  102.         rateScaleMin=0;
  103.         rateScaleMax=0.5;
  104.     }
  105.     else if ( (rate>=0.5) && (rate<1) )
  106.     {
  107.         rateScaleMin=0.5;
  108.         rateScaleMax=1;
  109.     }
  110.     else if ( (rate>=1) && (rate<=1.4) )
  111.     {
  112.         rateScaleMin=1;
  113.         rateScaleMax=1.4;
  114.     }
  115.     else if ( (rate>=1.4) && (rate<=2) )
  116.     {
  117.         rateScaleMin=1.4;
  118.         rateScaleMax=2;
  119.     }
  120.     else if ( (rate>=2) && (rate<=8) )
  121.     {
  122.         rateScaleMin=2;
  123.         rateScaleMax=8;
  124.     }
  125.     else if ( (rate>=8) && (rate<=16) )
  126.     {
  127.         rateScaleMin=8;
  128.         rateScaleMax=16;
  129.     }
  130.     
  131.     return RescaleValue(rateScaleMin, rateScaleMax, rate, g_kSliderPos[rateScaleMin], g_kSliderPos[rateScaleMax]);
  132. }
  133.  
  134. function GetRateFromSlider(sliderval)
  135. {
  136.     var rateScaleMin = 0;
  137.     var rateScaleMax = 0;
  138.     if ( (sliderval>=g_kSliderPos[-16]) && (sliderval<=g_kSliderPos[-8]) )
  139.     {
  140.         rateScaleMin=-16;
  141.         rateScaleMax=-8;
  142.     }
  143.     else if ( (sliderval>=g_kSliderPos[-8]) && (sliderval<=g_kSliderPos[-4]) )
  144.     {
  145.         rateScaleMin=-8;
  146.         rateScaleMax=-4;
  147.     }
  148.     else if ( (sliderval>=g_kSliderPos[-4]) && (sliderval<=g_kSliderPos[0]) )
  149.     {
  150.         rateScaleMin=-4;
  151.         rateScaleMax=0;
  152.     }
  153.     else if ( (sliderval>=g_kSliderPos[0]) && (sliderval<=g_kSliderPos[0.5]) )
  154.     {
  155.         rateScaleMin=0;
  156.         rateScaleMax=0.5;
  157.     }
  158.     else if ( (sliderval>=g_kSliderPos[0.5]) && (sliderval<g_kSliderPos[1]) )
  159.     {
  160.         rateScaleMin=0.5;
  161.         rateScaleMax=1;
  162.     }
  163.     else if ( (sliderval>=g_kSliderPos[1]) && (sliderval<=g_kSliderPos[1.4]) )
  164.     {
  165.         rateScaleMin=1;
  166.         rateScaleMax=1.4;
  167.     }
  168.     else if ( (sliderval>=g_kSliderPos[1.4]) && (sliderval<=g_kSliderPos[2]) )
  169.     {
  170.         rateScaleMin=1.4;
  171.         rateScaleMax=2;
  172.     }
  173.     else if ( (sliderval>=g_kSliderPos[2]) && (sliderval<=g_kSliderPos[8]) )
  174.     {
  175.         rateScaleMin=2;
  176.         rateScaleMax=8;
  177.     }
  178.     else if ( (sliderval>=g_kSliderPos[8]) && (sliderval<=g_kSliderPos[16]) )
  179.     {
  180.         rateScaleMin=8;
  181.         rateScaleMax=16;
  182.     }
  183.     
  184.     return RescaleValue(g_kSliderPos[rateScaleMin], g_kSliderPos[rateScaleMax], sliderval, rateScaleMin, rateScaleMax);
  185. }
  186.  
  187. function SetSlider(rate)
  188. {
  189.     PlaySpeedSlider.value = GetSliderFromRate(rate);
  190. }
  191.  
  192. function SetRate(slider)
  193. {
  194.     var newRate = GetRateFromSlider(slider);
  195.     if (SnapToTicks.down)
  196.     {
  197.         newRate = SnapToTickMark(newRate);
  198.     }
  199.     if (0!=newRate)
  200.     {
  201.         try
  202.         {
  203.             player.settings.rate = newRate;
  204.         }
  205.         catch(err)
  206.         {}
  207.     }
  208.     UpdateRateUI(player.settings.rate);
  209. }
  210.  
  211. function SnapToTickMark(newRate)
  212. {
  213.     if (newRate<-12)
  214.         newRate=-16;
  215.     else if ( newRate.isBetween(-10,-9) )
  216.         newRate=-8;
  217.     else if ( newRate.isBetween(-7,-5) )
  218.         newRate=-6;
  219.     else if ( newRate.isBetween(-5,-3) )
  220.         newRate=-4;
  221.     else if ( newRate.isBetween(0.0, 0.6) )
  222.         newRate=0.5;
  223.     else if ( newRate.isBetween(0.9, 1.1) )
  224.         newRate=1;
  225.     else if ( newRate.isBetween(1.3, 1.5) )
  226.         newRate=1.4;
  227.     else if ( newRate.isBetween(1.9, 3) )
  228.         newRate=2;
  229.     else if (newRate.isBetween(3, 5) )
  230.         newRate=4;
  231.     else if (newRate.isBetween(5, 7) )
  232.         newRate=6;
  233.     else if (newRate.isBetween(7, 10) )
  234.         newRate=8;
  235.     else if (newRate>12)
  236.         newRate=16;
  237.     else
  238.         newRate = newRate.SigFig(1);
  239.     return parseFloat(newRate);
  240. }
  241.  
  242. function GoSlow()
  243. {
  244.     player.settings.rate=mediacenter.slowRate;
  245. }
  246.  
  247. function GoNormal()
  248. {
  249.     player.settings.rate=1;
  250. }
  251.  
  252. function GoFast()
  253. {
  254.     player.settings.rate=mediacenter.fastRate;
  255. }
  256.  
  257. function UpdateSpeedView()
  258. {
  259.     if ( player.controls.isAvailable("timeCompression") )
  260.     {
  261.         SpeedSubview.backgroundImage="res://wmploc/#2151";
  262.     }
  263.     else
  264.     {
  265.         SpeedSubview.backgroundImage="res://wmploc/#2158";
  266.     }
  267. }
  268.  
  269.