home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 November / CDVD1105.ISO / Util / Winamp / Skins / Anime_Shogo.wal / scripts / vuscrpt.m < prev    next >
Text File  |  2004-08-15  |  5KB  |  200 lines

  1. #include "../../../lib/std.mi" 
  2.  
  3. Function UpdateVU(Int LeftFrame, Int RightFrame);
  4.  
  5. Global Layer LeftVu, RightVu, VuTrap, BackLight;
  6. Global Timer VUTimer;
  7. Global Double LeftLevel, RightLevel;
  8. Global PopupMenu BeatMenu;
  9. Global Int BeatMode, BeatState;
  10. Global Boolean BackLightState;
  11.  
  12. System.onScriptLoaded() { 
  13.  
  14.     Group VUGrp = System.getScriptGroup();
  15.  
  16.     LeftVu = VUGrp.findObject("LeftVu");
  17.     RightVu = VUGrp.findObject("RightVu");
  18.  
  19.     BackLight = VUGrp.findObject("BackLight");
  20.  
  21.     VuTrap = VUGrp.findObject("VuTrap");
  22.  
  23.     BeatMode = getPrivateInt(getSkinName(), "BeatMode", 1);
  24.     BeatState = getPrivateInt(getSkinName(), "BeatState", 1);
  25.     BackLightState = getPrivateInt(getSkinName(), "BackLightState", 0);
  26.  
  27.     if (BeatMode==3) UpdateVU(255, 255);
  28.  
  29.     VUTimer = new Timer;
  30.     VUTimer.setDelay(30);
  31.  
  32.     VUTimer.start();
  33. }
  34.  
  35. System.onScriptUnloading() {
  36.     VUTimer.stop();
  37.     delete VUTimer;
  38.     setPrivateInt(getSkinName(), "BeatMode", BeatMode);
  39.     setPrivateInt(getSkinName(), "BeatState", BeatState);
  40.     setPrivateInt(getSkinName(), "BackLightState", BackLightState);
  41. }
  42.  
  43. VUTimer.onTimer() {
  44.  
  45.     int x;
  46.  
  47. // BeatState:    Vu Beat: 1
  48. //        Bass Beat: 2
  49. //        Treble Beat: 3
  50.  
  51.     if (BeatState == 1) {
  52.  
  53.         LeftLevel = (System.getLeftVuMeter());
  54.         RightLevel = (System.getRightVuMeter());
  55.  
  56.     } else if (BeatState == 2) {
  57.         LeftLevel = 0;
  58.         RightLevel = 0;
  59.  
  60.         for (x=0; x<=4; x++) {
  61.             LeftLevel = LeftLevel+getVisBand(0,x);
  62.             RightLevel = RightLevel+getVisBand(0,x);
  63.         }
  64.  
  65.         LeftLevel = LeftLevel/5;
  66.         RightLevel = RightLevel/5;
  67.  
  68.     } else if (BeatState == 3) {
  69.  
  70.         LeftLevel = 0;
  71.         RightLevel = 0;
  72.  
  73.         for (x=0; x<=5; x++) {
  74.             LeftLevel = LeftLevel+getVisBand(0,75-x*2);
  75.             RightLevel = RightLevel+getVisBand(0,75-x*2);
  76.         }
  77.  
  78.         LeftLevel = LeftLevel/5;
  79.         RightLevel = RightLevel/5;
  80.     }
  81.  
  82. // BeatMode:    Beat off: 0
  83. //        Beat on: 1
  84. //        Beat rev: 2
  85. //        Beat static: 3
  86.  
  87.     if (BeatMode == 1) {
  88.         UpdateVU(LeftLevel, RightLevel);
  89.     } else if (BeatMode == 2) {
  90.         UpdateVU(255-LeftLevel, 255-RightLevel);
  91.     }
  92.  
  93.  
  94. }
  95.  
  96. UpdateVU(Int LeftFrame, Int RightFrame){
  97.  
  98.     LeftVu.setTargetA(LeftFrame);
  99.     LeftVu.setTargetSpeed(0.05);
  100.     LeftVu.gotoTarget();
  101.  
  102.     RightVu.setTargetA(RightFrame);
  103.     RightVu.setTargetSpeed(0.05);
  104.     RightVu.gotoTarget();
  105.  
  106.     if(!getPrivateInt(getSkinName(), "BackLightMode", 0) && BackLightState) {
  107.         if(BeatMode==0) BackLight.setTargetA(0);
  108.         else if(LeftFrame+RightFrame/2>200) BackLight.setTargetA(200);
  109.         else if(LeftFrame+RightFrame/2<100) BackLight.setTargetA(100);
  110.         else BackLight.setTargetA(LeftFrame+RightFrame/2);
  111.         BackLight.setTargetSpeed(0.05);
  112.         BackLight.gotoTarget();
  113.     }
  114. }
  115.  
  116. VuTrap.onRightButtonDown(int x, int y) {
  117.     boolean DisableMenu;
  118.     boolean DisableMenu2;
  119.  
  120.     BeatMenu = new popUpMenu;
  121.     BeatMenu.addCommand("Lights Control", -1, 0, 1);
  122.     BeatMenu.addCommand("Off", 0, BeatMode==0, 0);
  123.     BeatMenu.addCommand("Stay On", 1, BeatMode==3, 0);
  124.     BeatMenu.addCommand("Beat", 2, BeatMode==1, 0);
  125.     BeatMenu.addCommand("Reversed Beat", 3, BeatMode==2, 0);
  126.  
  127.     disablemenu = ((BeatMode==0) || (BeatMode==3));
  128.     BeatMenu.addSeparator();
  129.     BeatMenu.addCommand("Beat Source", -1, 0, 1);
  130.  
  131.     BeatMenu.addCommand("VU Meter", 10, BeatState==1, DisableMenu);
  132.     BeatMenu.addCommand("Bass", 11, BeatState==2, DisableMenu);
  133.     BeatMenu.addCommand("Treble", 12, BeatState==3, DisableMenu);
  134.  
  135.     disablemenu2 = (BeatMode==0 || getPrivateInt(getSkinName(), "BackLightMode", 1));
  136.     BeatMenu.addSeparator();
  137.     BeatMenu.addCommand("BackLight Beat", -1, 0, 1);
  138.  
  139.     BeatMenu.addCommand("On", 20, BackLightState, DisableMenu2);
  140.     BeatMenu.addCommand("Off", 21, !BackLightState, DisableMenu2);
  141.  
  142.     int res = BeatMenu.popAtMouse();
  143.     delete BeatMenu;
  144.  
  145.     if (res<0) return;
  146.  
  147.     if (res==0) {
  148.         BeatMode=0;
  149.         UpdateVU(0, 0);
  150.         VUTimer.stop();
  151.     } else if (res==1) {
  152.         BeatMode=3;
  153.         UpdateVU(255, 255);
  154.         VUTimer.stop();
  155.     } else if (res==2) {
  156.         BeatMode=1;
  157.         VUTimer.start();
  158.     } else if (res==3) {
  159.         BeatMode=2;
  160.  
  161.         VUTimer.start();
  162.     }
  163.  
  164.     if (res==10) BeatState=1;
  165.     if (res==11) BeatState=2;
  166.     if (res==12) BeatState=3;
  167.  
  168.     if (res==20) {
  169.         BackLightState=1;
  170.         if(BeatMode==3){
  171.             BackLight.setTargetA(200);
  172.             BackLight.setTargetSpeed(0.5);
  173.             BackLight.gotoTarget();
  174.         }
  175.     } else if (res==21) {
  176.         BackLightState=0;
  177.         BackLight.setTargetA(0);
  178.         BackLight.setTargetSpeed(0.5);
  179.         BackLight.gotoTarget();
  180.     }
  181.  
  182.     complete;
  183. }
  184.  
  185. VuTrap.onLeftButtonUp(int x, int y) {
  186.  
  187.     if (BeatMode==3) {
  188.         BeatMode=1;
  189.         VUTimer.start();
  190.     } else if (BeatMode==0) {
  191.         BeatMode=3;
  192.         UpdateVU(255, 255);
  193.     } else if (BeatMode==1) {
  194.         BeatMode=2;
  195.     } else if (BeatMode==2) {
  196.         BeatMode=0;
  197.         UpdateVU(0, 0);
  198.         VUTimer.stop();
  199.     }
  200. }