#include <lib/std.mi> #include "attribs.m" Function setObjects(); Global Group frameGroup,beatdisplay; Global Layer beatOverlay,DisplayRight,DisplayRightOverlay,DisplaySongtickerBG,VisOverlay; Global Timer refreshEQ; Global AnimatedLayer beatbarLeft,beatbarRight; Global int lastBeatLeft,lastBeatRight; Global Button Toggler,Toggler2; Global Int dobeat2; System.onScriptLoaded() { initAttribs(); frameGroup = getScriptGroup(); beatdisplay = frameGroup.findObject("player.normal.display.beatvisualization"); beatOverlay = frameGroup.findObject("beatdisplayoverlay"); beatbarLeft = frameGroup.findObject("beatleft"); beatbarRight = frameGroup.findObject("beatright"); Toggler = frameGroup.findObject("beatvisualization"); Toggler2 = frameGroup.findObject("beatvisualization2"); DisplayRight = frameGroup.findObject("display.right"); DisplayRightOverlay = frameGroup.findObject("display.right.overlay2"); DisplaySongtickerBG = frameGroup.findObject("display.st.right"); VisOverlay = frameGroup.findObject("visualization.overlay"); lastBeatLeft = 0; lastBeatRight = 0; refreshEQ = new Timer; refreshEQ.setDelay(10); } System.onscriptunloading() { delete refreshEQ; } setObjects() { int group_width = frameGroup.getWidth(); if ( group_width % 2 !=0 ) { DisplayRight.setXmlParam("image","player.display.right"); DisplayRightOverlay.setXmlParam("image","player.display.right"); DisplaySongtickerBG.setXmlParam("image","player.display.songticker.bg.right"); VisOverlay.setXmlParam("image","player.visualization.overlay"); } else { DisplayRight.setXmlParam("image","player.display.right2"); DisplayRightOverlay.setXmlParam("image","player.display.right2"); DisplaySongtickerBG.setXmlParam("image","player.display.songticker.bg.right2"); VisOverlay.setXmlParam("image","player.visualization.overlay2"); } if ( group_width > 480 ) { int newXpos = (group_width-60)/2; beatdisplay.setXmlParam("x", IntegerToString(newXpos)); beatdisplay.show(); if ( beatvisualization_attrib.getData()=="1" ) { refreshEQ.stop(); refreshEQ.start(); } else { refreshEQ.stop(); beatbarLeft.gotoframe(0); beatbarRight.gotoframe(0); } } else { beatdisplay.hide(); refreshEQ.stop(); } } frameGroup.onResize(int x, int y, int w, int h) { setObjects(); } refreshEQ.onTimer() { int beatLeft= System.getLeftVuMeter(); int beatRight= System.getRightVuMeter(); int frameLeft=beatLeft/16; int frameRight=beatRight/16; if (frameLeft>14) frameLeft=14; if (frameRight>14) frameRight=14; if (frameLeft<lastBeatLeft) { frameLeft=lastBeatLeft-1; if (frameLeft<0) frameLeft=0; } if (frameRight<lastBeatRight) { frameRight=lastBeatRight-1; if (frameRight<0) frameRight=0; } lastBeatLeft=frameLeft; lastBeatRight=frameRight; beatbarLeft.gotoframe(frameLeft); beatbarRight.gotoframe(frameRight); } beatvisualization_attrib.onDataChanged() { setObjects(); } System.onKeyDown(String key) { if (key == "shift+ctrl+alt") { dobeat2 = 1; complete; } else dobeat2 = 0; } Toggler.onLeftClick() { if ( beatvisualization_attrib.getData()=="1" ) { beatvisualization_attrib.setData("0"); } else { beatvisualization_attrib.setData("1"); } } Toggler2.onActivate(boolean on) { if (!dobeat2) { Toggler.leftClick(); return; } refreshEQ.stop(); if (on) { beatbarLeft.setXMLParam("image","player.display.beat.left2"); beatbarRight.setXMLParam("image","player.display.beat.right2"); beatOverlay.hide(); } else { beatbarLeft.setXMLParam("image","player.display.beat.left"); beatbarRight.setXMLParam("image","player.display.beat.right"); beatOverlay.show(); } setObjects(); }