home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2005 November
/
CDVD1105.ISO
/
Util
/
Winamp
/
Skins
/
Anime_Shogo.wal
/
scripts
/
vuscrpt.m
< prev
next >
Wrap
Text File
|
2004-08-15
|
5KB
|
200 lines
#include "../../../lib/std.mi"
Function UpdateVU(Int LeftFrame, Int RightFrame);
Global Layer LeftVu, RightVu, VuTrap, BackLight;
Global Timer VUTimer;
Global Double LeftLevel, RightLevel;
Global PopupMenu BeatMenu;
Global Int BeatMode, BeatState;
Global Boolean BackLightState;
System.onScriptLoaded() {
Group VUGrp = System.getScriptGroup();
LeftVu = VUGrp.findObject("LeftVu");
RightVu = VUGrp.findObject("RightVu");
BackLight = VUGrp.findObject("BackLight");
VuTrap = VUGrp.findObject("VuTrap");
BeatMode = getPrivateInt(getSkinName(), "BeatMode", 1);
BeatState = getPrivateInt(getSkinName(), "BeatState", 1);
BackLightState = getPrivateInt(getSkinName(), "BackLightState", 0);
if (BeatMode==3) UpdateVU(255, 255);
VUTimer = new Timer;
VUTimer.setDelay(30);
VUTimer.start();
}
System.onScriptUnloading() {
VUTimer.stop();
delete VUTimer;
setPrivateInt(getSkinName(), "BeatMode", BeatMode);
setPrivateInt(getSkinName(), "BeatState", BeatState);
setPrivateInt(getSkinName(), "BackLightState", BackLightState);
}
VUTimer.onTimer() {
int x;
// BeatState: Vu Beat: 1
// Bass Beat: 2
// Treble Beat: 3
if (BeatState == 1) {
LeftLevel = (System.getLeftVuMeter());
RightLevel = (System.getRightVuMeter());
} else if (BeatState == 2) {
LeftLevel = 0;
RightLevel = 0;
for (x=0; x<=4; x++) {
LeftLevel = LeftLevel+getVisBand(0,x);
RightLevel = RightLevel+getVisBand(0,x);
}
LeftLevel = LeftLevel/5;
RightLevel = RightLevel/5;
} else if (BeatState == 3) {
LeftLevel = 0;
RightLevel = 0;
for (x=0; x<=5; x++) {
LeftLevel = LeftLevel+getVisBand(0,75-x*2);
RightLevel = RightLevel+getVisBand(0,75-x*2);
}
LeftLevel = LeftLevel/5;
RightLevel = RightLevel/5;
}
// BeatMode: Beat off: 0
// Beat on: 1
// Beat rev: 2
// Beat static: 3
if (BeatMode == 1) {
UpdateVU(LeftLevel, RightLevel);
} else if (BeatMode == 2) {
UpdateVU(255-LeftLevel, 255-RightLevel);
}
}
UpdateVU(Int LeftFrame, Int RightFrame){
LeftVu.setTargetA(LeftFrame);
LeftVu.setTargetSpeed(0.05);
LeftVu.gotoTarget();
RightVu.setTargetA(RightFrame);
RightVu.setTargetSpeed(0.05);
RightVu.gotoTarget();
if(!getPrivateInt(getSkinName(), "BackLightMode", 0) && BackLightState) {
if(BeatMode==0) BackLight.setTargetA(0);
else if(LeftFrame+RightFrame/2>200) BackLight.setTargetA(200);
else if(LeftFrame+RightFrame/2<100) BackLight.setTargetA(100);
else BackLight.setTargetA(LeftFrame+RightFrame/2);
BackLight.setTargetSpeed(0.05);
BackLight.gotoTarget();
}
}
VuTrap.onRightButtonDown(int x, int y) {
boolean DisableMenu;
boolean DisableMenu2;
BeatMenu = new popUpMenu;
BeatMenu.addCommand("Lights Control", -1, 0, 1);
BeatMenu.addCommand("Off", 0, BeatMode==0, 0);
BeatMenu.addCommand("Stay On", 1, BeatMode==3, 0);
BeatMenu.addCommand("Beat", 2, BeatMode==1, 0);
BeatMenu.addCommand("Reversed Beat", 3, BeatMode==2, 0);
disablemenu = ((BeatMode==0) || (BeatMode==3));
BeatMenu.addSeparator();
BeatMenu.addCommand("Beat Source", -1, 0, 1);
BeatMenu.addCommand("VU Meter", 10, BeatState==1, DisableMenu);
BeatMenu.addCommand("Bass", 11, BeatState==2, DisableMenu);
BeatMenu.addCommand("Treble", 12, BeatState==3, DisableMenu);
disablemenu2 = (BeatMode==0 || getPrivateInt(getSkinName(), "BackLightMode", 1));
BeatMenu.addSeparator();
BeatMenu.addCommand("BackLight Beat", -1, 0, 1);
BeatMenu.addCommand("On", 20, BackLightState, DisableMenu2);
BeatMenu.addCommand("Off", 21, !BackLightState, DisableMenu2);
int res = BeatMenu.popAtMouse();
delete BeatMenu;
if (res<0) return;
if (res==0) {
BeatMode=0;
UpdateVU(0, 0);
VUTimer.stop();
} else if (res==1) {
BeatMode=3;
UpdateVU(255, 255);
VUTimer.stop();
} else if (res==2) {
BeatMode=1;
VUTimer.start();
} else if (res==3) {
BeatMode=2;
VUTimer.start();
}
if (res==10) BeatState=1;
if (res==11) BeatState=2;
if (res==12) BeatState=3;
if (res==20) {
BackLightState=1;
if(BeatMode==3){
BackLight.setTargetA(200);
BackLight.setTargetSpeed(0.5);
BackLight.gotoTarget();
}
} else if (res==21) {
BackLightState=0;
BackLight.setTargetA(0);
BackLight.setTargetSpeed(0.5);
BackLight.gotoTarget();
}
complete;
}
VuTrap.onLeftButtonUp(int x, int y) {
if (BeatMode==3) {
BeatMode=1;
VUTimer.start();
} else if (BeatMode==0) {
BeatMode=3;
UpdateVU(255, 255);
} else if (BeatMode==1) {
BeatMode=2;
} else if (BeatMode==2) {
BeatMode=0;
UpdateVU(0, 0);
VUTimer.stop();
}
}