You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
0x40-web/orig.txt

1886 lines
69 KiB

//class HuesReloadedRe
package
{
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.geom.*;
import flash.media.*;
import flash.net.*;
import flash.ui.*;
import flash.utils.*;
public class HuesReloadedRe extends flash.display.MovieClip implements HuesCore
{
public function HuesReloadedRe()
{
this.currentColors = this.oldColors;
this.respackBytes = new flash.utils.ByteArray();
this.uiArray = [];
this.lastSongArray = [];
this.lastImageArray = [];
this.sampleTargetArray = new flash.utils.ByteArray();
super();
Logging.log("0x40 Hues " + this.versionText + " (" + this.versionDate + ") - start your engines!");
this._settings = new HuesSettings();
this.oldAutoSong = this.settings.autosong;
this.outputSound = new flash.media.Sound();
this.outputSound.addEventListener(flash.events.SampleDataEvent.SAMPLE_DATA, this.sampler);
this.resourceManager = new ResourceManager();
this.builtIn = new BuiltResourcePack();
this.builtIn.addEventListener(flash.events.Event.COMPLETE, this.respackLoaded);
this.blackOverlay = new flash.display.MovieClip();
this.blackOverlay.graphics.beginFill(0);
this.blackOverlay.graphics.drawRect(0, 0, 10, 10);
this.blackOverlay.graphics.endFill();
this.blackOverlay.width = 1280;
this.blackOverlay.height = 720;
this.blackOverlay.mouseEnabled = false;
this.blackOverlay.mouseChildren = false;
this.blackOverlay.alpha = 0;
this.blackOverlayColorTransform = new flash.geom.ColorTransform();
this.destBMD = new flash.display.BitmapData(1280, 720);
this.colorBMD = new flash.display.BitmapData(1280, 720, false, 4294967295);
this.destBM = new flash.display.Bitmap(this.destBMD);
this.destBM.smoothing = true;
this.colorBM = new flash.display.Bitmap(this.colorBMD);
this.colorBM.smoothing = false;
this.colorBM.alpha = 0.7;
this.colorBM.blendMode = flash.display.BlendMode.HARDLIGHT;
this.colorBM.width = 1280;
this.colorBM.height = 720;
this.imageHolder = new flash.display.MovieClip();
this.imageHolder.addChild(this.destBM);
this.imageHolder.addChild(this.colorBM);
addChildAt(this.imageHolder, 0);
addChildAt(this.blackOverlay, (this.numChildren - 1));
this.blurFilter = new flash.filters.BlurFilter(0, 0, 1);
this.userInterface = this.retroui as HuesUserInterface;
this.userInterface.connectCore(this);
this.window.connectCore(this);
this.uiArray.push(new RetroUI(), new WeedUI(), new ModernUI(), new XmasUI());
this.settings.addCallback(this.settingsUpdated);
this.addEventListener(flash.events.Event.ADDED_TO_STAGE, this.onAddedToStage);
this.window.hide();
this.builtIn.ready();
return;
}
public function loadLocal():void
{
this.loadLocalMulti();
return;
}
public function loadLocalMulti():void
{
trace("Opening multiple");
this.files = new flash.net.FileReferenceList();
var loc1:*=new flash.net.FileFilter("Resource pack (*.zip)", "*.zip");
this.files.addEventListener(flash.events.Event.SELECT, this.selectedMultipleFiles);
this.files.browse([loc1]);
return;
}
internal function selectedMultipleFiles(arg1:flash.events.Event=null):*
{
var loc1:*=undefined;
if (arg1)
{
arg1.target.removeEventListener(flash.events.Event.SELECT, this.selectedMultipleFiles);
}
if (this.loadedFiles < this.files.fileList.length)
{
loc1 = this.files.fileList[this.loadedFiles];
trace("@@@ Loading file", this.loadedFiles, "of", this.files.fileList.length, loc1.name);
loc1.addEventListener(flash.events.Event.COMPLETE, this.loadedFile);
loc1.load();
}
else
{
trace("@@@ All loaded!");
this.loadedFiles = 0;
this.files = null;
}
return;
}
internal function loadedFile(arg1:flash.events.Event):*
{
var loc2:*;
var loc3:*=((loc2 = this).loadedFiles + 1);
loc2.loadedFiles = loc3;
var loc1:*=new ResourcePack();
this.window.loadingLocal(loc1);
loc1.addEventListener(flash.events.Event.COMPLETE, this.respackLoaded);
loc1.loadFileReference(arg1.target);
arg1.target.removeEventListener(flash.events.Event.COMPLETE, this.loadedFile);
this.selectedMultipleFiles();
return;
}
public function getCurrentMode():String
{
return this.isFullAuto ? "FULL AUTO" : "NORMAL";
}
public function get colors():Array
{
return this.currentColors;
}
public function getColorNames():Array
{
return this.oldColorNames;
}
public function get version():String
{
return "5.11";
}
public function get flavor():String
{
return null;
}
public function get versionDate():String
{
return "14.03.2015";
}
public function get versionText():String
{
return this.flavor ? this.version + " " + this.flavor : this.version;
}
internal function increaseVolume():*
{
this.volumeMuted = false;
this.currentVolume = this.currentVolume + 4;
if (this.currentVolume > 100)
{
this.currentVolume = 100;
}
this.updateVolume();
return;
}
internal function toggleMute():*
{
this.volumeMuted = !this.volumeMuted;
this.updateVolume();
return;
}
internal function updateVolume():*
{
var loc1:*=undefined;
if (this.soundChannel)
{
loc1 = this.soundChannel.soundTransform;
loc1.volume = this.volumeMuted ? 0 : this.currentVolume / 100;
this.soundChannel.soundTransform = loc1;
}
return;
}
public function get settings():HuesSettings
{
return this._settings;
}
public function nextSong():void
{
this.lastSongArray = [];
var loc1:*=(this.songIndex + 1 + this.resourceManager.enabledSongCount) % this.resourceManager.enabledSongCount;
this.setSong(loc1);
return;
}
public function previousSong():void
{
this.lastSongArray = [];
var loc1:*=((this.songIndex - 1) + this.resourceManager.enabledSongCount) % this.resourceManager.enabledSongCount;
this.setSong(loc1);
return;
}
public function get resManager():ResourceManager
{
return this.resourceManager;
}
public function getSongIndex():Number
{
return this.songIndex;
}
public function setSong(arg1:Number):void
{
var loc1:*=undefined;
var loc2:*=undefined;
this.songIndex = arg1;
this.currentSong = this.resourceManager.enabledSongs[this.songIndex];
trace("Next song:", this.songIndex, this.currentSong, this.currentSong ? this.currentSong.name : "<null song>");
if (this.currentSong == undefined)
{
this.currentSong = {"name":"None", "title":"None", "rhythm":".", "source":null, "crc":"none", "sound":null, "enabled":true, "filename":"none"};
}
this.userInterface.setSongText();
this.loopCount = 0;
if (this.currentSong.buildup)
{
if (this.currentSong.force)
{
if (this.currentSong.force != "song")
{
this.currentSong.buildupPlayed = false;
this.doBuildup = true;
}
else
{
this.currentSong.buildupPlayed = true;
this.doBuildup = false;
}
this.currentSong.force = null;
}
else
{
var loc3:*=this.settings.buildups;
switch (loc3)
{
case "off":
{
this.currentSong.buildupPlayed = true;
this.doBuildup = false;
break;
}
case "on":
{
this.currentSong.buildupPlayed = false;
this.doBuildup = true;
break;
}
case "once":
{
this.doBuildup = !this.currentSong.buildupPlayed;
break;
}
}
}
loc1 = this.calculateSongLength(this.currentSong.sound) / this.currentSong.rhythm.length;
loc2 = int(this.calculateSongLength(this.currentSong.buildup) / loc1) + 1;
if (this.currentSong.buildupRhythm == null)
{
this.currentSong.buildupRhythm = "";
}
if (this.currentSong.buildupRhythm.length < loc2)
{
trace("Filling buildup beatmap");
while (this.currentSong.buildupRhythm.length < loc2)
{
this.currentSong.buildupRhythm = this.currentSong.buildupRhythm + ".";
}
}
trace("Buildup length:", loc2);
}
this.restartAudio();
return;
}
internal function decreaseVolume():*
{
this.volumeMuted = false;
this.currentVolume = this.currentVolume - 4;
if (this.currentVolume < 0)
{
this.currentVolume = 0;
}
this.updateVolume();
return;
}
public function randomSong():void
{
var loc2:*=undefined;
var loc1:*=int(Math.random() * this.resourceManager.enabledSongCount);
if (loc1 == this.songIndex && this.resourceManager.enabledSongCount > 1 || !(this.lastSongArray.indexOf(loc1) == -1))
{
this.randomSong();
}
else
{
trace("Randoming a song!");
this.setSong(loc1);
this.lastSongArray.push(loc1);
loc2 = Math.min(5, int(this.resourceManager.enabledSongCount / 2));
while (this.lastSongArray.length > loc2 && loc2 >= 0)
{
this.lastSongArray.shift();
}
}
return;
}
internal function onLoop():*
{
this.loopCount = this.loopCount + 1;
var loc1:*=this.settings.autosong;
switch (loc1)
{
case "loop":
{
trace("Checking loops");
if (this.loopCount >= this.settings.autosongDelay)
{
this.startSongChangeFade();
}
break;
}
case "time":
{
trace("Checking times");
if (this.currentSong.sound && this.calculateSongLength(this.currentSong.sound) / 1000 * this.loopCount >= this.settings.autosongDelay * 60)
{
this.startSongChangeFade();
}
break;
}
}
return;
}
public function startSongChangeFade():void
{
var loc1:*;
this.fadeDirection = loc1 = true;
this.fadeOut = loc1;
return;
}
public function restartAudio():*
{
this.resetAudio();
this.doBlackout = false;
this.soundChannel = this.outputSound.play();
this.updateVolume();
return;
}
public function songDataUpdated():void
{
if (this.currentSong)
{
this.samples = this.calculateSamples(this.currentSong.sound);
this.beatLength = this.calculateSongLength(this.currentSong.sound) / this.currentSong.rhythm.length;
this.userInterface.updateLists();
this.userInterface.updateTexts();
this.userInterface.setSongText();
this.userInterface.setImageText();
}
else
{
var loc1:*;
this.beatLength = loc1 = -1;
this.samples = loc1;
}
return;
}
public function resetAudio():*
{
this.samplePosition = 0;
this.lastBeat = -123;
this.position = 0;
this.testPosition = 0;
this.lastSC = 0;
this.buildupDiff = 0;
this.songDataUpdated();
if (this.soundChannel)
{
this.soundChannel.stop();
}
this.soundChannel = null;
return;
}
public function randomImage():void
{
var loc2:*=undefined;
var loc1:*=int(Math.random() * this.resourceManager.enabledBothCount);
if ((loc1 == this.imageIndex || !(this.lastImageArray.indexOf(loc1) == -1)) && this.resourceManager.enabledBothCount > 1)
{
this.randomImage();
}
else
{
this.setImage(loc1);
this.lastImageArray.push(loc1);
loc2 = Math.min(20, int(this.resourceManager.enabledBothCount / 2));
while (this.lastImageArray.length > loc2 && loc2 >= 0)
{
this.lastImageArray.shift();
}
}
return;
}
public function getImageIndex():Number
{
return this.imageIndex;
}
public function setImage(arg1:Number):void
{
this.imageIndex = arg1;
this.animationFrame = 0;
this.tmpFrame = 0;
var loc1:*=this.resourceManager.enabledBoth[this.imageIndex];
if (loc1 == this.currentImage && !(loc1 == null))
{
return;
}
if (loc1 != undefined)
{
this.currentImage = loc1;
}
else if (!this.currentImage || !(this.currentImage.crc == "none"))
{
this.currentImage = {"name":"None", "fullname":"None", "align":"center", "bitmap":new flash.display.BitmapData(1280, 720, true, 16777215), "crc":"none", "source":null, "enabled":true};
this.imageIndex = -1;
this.lastImageArray = [];
}
if (this.animTimeoutID)
{
flash.utils.clearTimeout(this.animTimeoutID);
}
if (this.currentImage.bitmaps)
{
this.animTimeoutID = flash.utils.setTimeout(this.animationTimeOut, this.currentImage.frameDurations[0]);
}
this.userInterface.setImageText();
this.drawImage();
return;
}
public function getCurrentSong():Object
{
return this.currentSong;
}
public function getCurrentImage():Object
{
return this.currentImage;
}
internal function alignImage():*
{
if (!stage)
{
return;
}
if (this.settings.smartAlign && !(this.currentImage == null))
{
var loc1:*=this.currentImage.align;
switch (loc1)
{
case "center":
{
this.destBM.x = (stage.stageWidth - this.destBM.width) / 2;
break;
}
case "left":
{
this.destBM.x = 0;
break;
}
case "right":
{
this.destBM.x = stage.stageWidth - this.destBM.width;
break;
}
}
}
else
{
this.destBM.x = (stage.stageWidth - this.destBM.width) / 2;
}
return;
}
public function nextImage():void
{
this.isFullAuto = false;
var loc1:*=(this.imageIndex + 1 + this.resourceManager.enabledBothCount) % this.resourceManager.enabledBothCount;
this.setImage(loc1);
this.lastImageArray = [];
return;
}
public function previousImage():void
{
this.isFullAuto = false;
var loc1:*=((this.imageIndex - 1) + this.resourceManager.enabledBothCount) % this.resourceManager.enabledBothCount;
this.setImage(loc1);
this.lastImageArray = [];
return;
}
internal function randomColorIndex():*
{
var loc1:*=int(Math.random() * 64);
var loc2:*=!(this.settings.blendMode == "hard") && this.colors[loc1].c == 0;
if (loc1 == this.colorIndex || loc2)
{
return this.randomColorIndex();
}
return loc1;
}
internal function randomColor():*
{
var loc1:*=this.randomColorIndex();
this.setColor(loc1);
return;
}
internal function setColor(arg1:Number):*
{
this.stopFade();
this.colorIndex = arg1;
var loc1:*=this.colors[this.colorIndex].c;
this.colorBMD.fillRect(this.colorBMD.rect, loc1);
return;
}
internal function startFade(arg1:*):*
{
trace("started fadde");
this.doColorFade = true;
this.colorFadeLength = int(arg1);
this.colorFadeStarted = flash.utils.getTimer();
this.oldColor = this.colors[this.colorIndex].c;
this.colorIndex = this.randomColorIndex();
return;
}
internal function stopFade():*
{
this.doColorFade = false;
this.oldColor = 16777215;
this.colorFadeStarted = 0;
this.colorFadeLength = 0;
return;
}
internal function fadeColor(arg1:Number):*
{
var loc1:*=this.mixColors(this.oldColor, this.colors[this.colorIndex].c, arg1);
this.colorBMD.fillRect(this.colorBMD.rect, loc1);
return;
}
internal function mixColors(arg1:*, arg2:*, arg3:*):*
{
arg3 = Math.min(1, Math.max(0, arg3));
var loc1:*=arg1 >> 16 & 255;
var loc2:*=arg1 >> 8 & 255;
var loc3:*=arg1 & 255;
var loc4:*=arg2 >> 16 & 255;
var loc5:*=arg2 >> 8 & 255;
var loc6:*=arg2 & 255;
var loc7:*=loc1 * (1 - arg3) + loc4 * arg3;
var loc8:*=loc2 * (1 - arg3) + loc5 * arg3;
var loc9:*=loc3 * (1 - arg3) + loc6 * arg3;
var loc10:*;
return loc10 = loc7 << 16 | loc8 << 8 | loc9;
}
public function getColorIndex():Number
{
return this.colorIndex;
}
public function getBlurFilter():flash.filters.BlurFilter
{
return this.blurFilter;
}
public function getLastBeat():Number
{
return Math.max(this.lastBeat, 0);
}
public function getCurrentBeat():Number
{
if (!this.currentSong || !this.soundChannel)
{
return 0;
}
var loc1:*=this.currentSong.buildup ? this.calculateSongLength(this.currentSong.buildup) : 0;
var loc2:*=this.soundChannel.position - (this.doBuildup ? loc1 : 0) < 0;
var loc3:*=loc2 ? this.soundChannel.position - (this.doBuildup ? loc1 : 0) : (this.soundChannel.position - (this.doBuildup ? loc1 : 0)) % this.calculateSongLength(this.currentSong.sound);
var loc4:*;
return loc4 = Math.floor(loc3 / this.beatLength);
}
public function getSoundPosition():Number
{
return this.soundChannel ? (this.soundChannel.position - this.buildupDiff) % (this.beatLength * this.currentSong.rhythm.length) : 0;
}
public function getRhythm():String
{
return this.currentSong.buildup && !this.currentSong.buildupPlayed ? this.currentSong.buildupRhythm : this.currentSong.rhythm;
}
internal function beater():*
{
var loc1:*=undefined;
var loc2:*=undefined;
var loc3:*=undefined;
var loc4:*=undefined;
var loc5:*=undefined;
var loc6:*=undefined;
var loc7:*=undefined;
var loc8:*=undefined;
var loc9:*=undefined;
var loc10:*=undefined;
var loc11:*=undefined;
var loc12:*=undefined;
if (this.soundChannel && this.currentSong && this.currentSong.sound)
{
loc1 = this.currentSong.buildup ? this.calculateSongLength(this.currentSong.buildup) : 0;
loc2 = this.soundChannel.position - (this.doBuildup ? loc1 : 0) < 0;
loc3 = loc2 ? this.soundChannel.position - (this.doBuildup ? loc1 : 0) : (this.soundChannel.position - (this.doBuildup ? loc1 : 0)) % this.calculateSongLength(this.currentSong.sound);
if ((loc4 = Math.floor(loc3 / this.beatLength)) != this.lastBeat)
{
loc5 = loc2 ? this.currentSong.buildupRhythm : this.currentSong.rhythm;
loc6 = loc2 ? loc5.length + loc4 : loc4;
this.userInterface.doBeat(loc4);
loc7 = loc5.charAt(loc6);
var loc13:*=loc7;
switch (loc13)
{
case "X":
case "x":
{
this.blurFilter.blurY = 96 * this.blurMultiplier;
break;
}
case "O":
case "o":
{
this.blurFilter.blurX = 96 * this.blurMultiplier;
break;
}
case "+":
{
this.blurFilter.blurX = 96 * this.blurMultiplier;
this.doBlackout = true;
this.recolorBlackout(false);
break;
}
case "<EFBFBD>":
{
this.blurFilter.blurX = 96 * this.blurMultiplier;
this.doBlackout = true;
this.recolorBlackout(true);
break;
}
case "|":
{
this.halfBeatBlackout();
break;
}
case ":":
{
this.randomColor();
break;
}
case "*":
{
if (this.isFullAuto)
{
this.randomImage();
}
break;
}
case "=":
{
if (this.isFullAuto)
{
this.randomImage();
}
}
case "~":
{
loc9 = loc5.substr(loc6);
loc10 = 1;
loc11 = false;
for (;;)
{
if (loc9.length <= loc10)
{
if (loc11)
{
break;
}
loc9 = loc9 + this.currentSong.rhythm;
loc11 = true;
}
if ((loc12 = loc9.charAt(loc10)) != ".")
{
break;
}
++loc10;
}
this.stopFade();
this.startFade(loc10 * this.beatLength);
break;
}
}
if ([".", "+", "|", "<EFBFBD>"].indexOf(loc7) == -1)
{
this.doBlackout = false;
}
if ((loc8 = [".", "+", ":", "*", "X", "O", "~", "="]).indexOf(loc7) == -1)
{
this.randomColor();
if (this.isFullAuto)
{
this.randomImage();
}
}
this.lastBeat = loc4;
}
}
return;
}
internal function halfBeatBlackout():*
{
this.doBlackout = true;
this.recolorBlackout(false);
flash.utils.setTimeout(this.stopBlackout, this.beatLength / 1.7);
return;
}
internal function recolorBlackout(arg1:Boolean=false):*
{
var loc1:*=arg1 ? 16777215 : 0;
if (this.blackOverlayColorTransform.color != loc1)
{
this.blackOverlayColorTransform.color = loc1;
this.blackOverlay.transform.colorTransform = this.blackOverlayColorTransform;
}
return;
}
public function get isFullAuto():Boolean
{
return this._isFullAuto;
}
public function set isFullAuto(arg1:Boolean):*
{
this._isFullAuto = arg1;
if (this.userInterface)
{
this.userInterface.modeUpdated();
}
return;
}
public function setModeAuto():void
{
this.isFullAuto = true;
return;
}
public function setModeNormal():void
{
this.isFullAuto = false;
return;
}
internal function stopBlackout():*
{
this.doBlackout = false;
return;
}
internal function animationTimeOut():*
{
this.animationFrame = this.animationFrame + 1;
if (this.animationFrame >= this.currentImage.bitmaps.length)
{
this.animationFrame = 0;
}
var loc1:*=this.currentImage.frameDurations[this.animationFrame];
this.animTimeoutID = flash.utils.setTimeout(this.animationTimeOut, loc1);
this.drawImage();
return;
}
public function setVolume(arg1:Number):void
{
this.currentVolume = Math.max(0, Math.min(100, arg1));
this.updateVolume();
return;
}
public function setMute(arg1:Boolean):void
{
this.volumeMuted = arg1;
this.updateVolume();
return;
}
public function getVolume():Number
{
return this.currentVolume;
}
public function getVolumeMuted():Boolean
{
return this.volumeMuted;
}
internal function enterFrame(arg1:flash.events.Event):*
{
var loc1:*=undefined;
var loc2:*=undefined;
var loc3:*=undefined;
var loc4:*=undefined;
var loc5:*=undefined;
var loc6:*=undefined;
this.doImageBlurring();
this.setTexts();
if (this.doColorFade)
{
loc1 = flash.utils.getTimer() - this.colorFadeStarted;
loc2 = loc1 / this.colorFadeLength;
if (loc2 >= 1)
{
this.stopFade();
}
else
{
this.fadeColor(loc2);
}
}
if (this.fadeOut)
{
loc3 = 0.02;
loc4 = this.fadeDirection ? -loc3 : loc3;
if (this.soundChannel)
{
loc5 = this.soundChannel.soundTransform;
loc6 = Math.max(0, Math.min(this.currentVolume / 100, loc5.volume + loc4));
loc5.volume = loc6;
this.soundChannel.soundTransform = loc5;
if (loc6 == 0)
{
var loc7:*;
this.fadeOut = loc7 = false;
this.fadeDirection = loc7;
if (this.settings.autosongShuffle)
{
this.randomSong();
}
else
{
this.nextSong();
}
}
}
}
if (this.doBlackout)
{
this.blackOverlay.alpha = this.blackOverlay.alpha + 0.4;
if (this.blackOverlay.alpha > 1)
{
this.blackOverlay.alpha = 1;
}
}
else
{
this.blackOverlay.alpha = 0;
}
return;
}
public function respackLoaded(arg1:flash.events.Event):void
{
var loc1:*=null;
if (arg1 && arg1.target && arg1.target is ResourcePackInterface)
{
loc1 = arg1.target as ResourcePackInterface;
this.resourceManager.addPack(loc1);
}
this.window.updateList(this.resManager);
this.init();
this.userInterface.updateLists();
if (this.doRandom && arg1 && arg1.target && flash.utils.getQualifiedClassName(arg1.target) == "BuiltResourcePack")
{
this.randomSong();
}
return;
}
public function get userInterface():HuesUserInterface
{
return this._userInterface;
}
public function set userInterface(arg1:HuesUserInterface):*
{
this._userInterface = arg1;
return;
}
internal function setTexts():*
{
this.userInterface.updateTexts();
return;
}
internal function doImageBlurring():*
{
var loc1:*=this.blurFilter.blurX;
var loc2:*=this.blurFilter.blurY;
var loc3:*=1 + this.blurDecayMultiplier;
if (this.blurFilter.blurX > 0)
{
this.blurFilter.blurX = this.blurFilter.blurX / loc3;
}
if (this.blurFilter.blurX <= 1)
{
this.blurFilter.blurX = 0;
}
if (this.blurFilter.blurY > 0)
{
this.blurFilter.blurY = this.blurFilter.blurY / loc3;
}
if (this.blurFilter.blurY <= 1)
{
this.blurFilter.blurY = 0;
}
if (!(this.blurFilter.blurX == loc1) || !(this.blurFilter.blurY == loc2))
{
this.drawImage();
}
return;
}
public function getWindow():flash.display.MovieClip
{
return this.window as flash.display.MovieClip;
}
internal function resizeBitmap(arg1:flash.display.BitmapData):*
{
var loc5:*=null;
var loc1:*=arg1.rect;
var loc2:*=this.destBMD.rect;
var loc3:*="[" + loc1.width + "," + loc1.height + "]";
var loc4:*="[" + loc2.width + "," + loc2.height + "]";
if (!(loc1.width == loc2.width) || !(loc1.height == loc2.height))
{
trace("Creating new BMD, since", loc3, "!=", loc4);
loc5 = new flash.display.BitmapData(loc1.width, loc1.height);
this.destBMD.dispose();
this.destBMD = loc5;
this.destBM.bitmapData = this.destBMD;
this.destBM.smoothing = this.settings.imageSmoothing;
this.resizeListener(null);
}
return;
}
internal function drawImage():*
{
var loc1:*=null;
if (this.currentImage.bitmap)
{
loc1 = this.currentImage.bitmap.clone();
this.resizeBitmap(loc1);
if (this.settings.blurEnabled)
{
this.destBMD.applyFilter(loc1, loc1.rect, new flash.geom.Point(0, 0), this.blurFilter);
}
else
{
this.destBMD.copyPixels(loc1, loc1.rect, new flash.geom.Point(0, 0));
}
}
else if (this.currentImage.bitmaps)
{
loc1 = this.currentImage.bitmaps[this.animationFrame].clone();
this.resizeBitmap(loc1);
this.destBMD.fillRect(this.destBMD.rect, 16777215);
if (this.settings.blurEnabled)
{
this.destBMD.applyFilter(loc1, loc1.rect, new flash.geom.Point(0, 0), this.blurFilter);
}
else
{
this.destBMD.copyPixels(loc1, loc1.rect, new flash.geom.Point(0, 0));
}
}
loc1.dispose();
loc1 = null;
this.alignImage();
return;
}
internal function toHex(arg1:Number, arg2:Number):*
{
var loc1:*=arg1.toString(16);
while (loc1.length < arg2)
{
loc1 = "0" + loc1;
}
return loc1;
}
internal function sampler(arg1:flash.events.SampleDataEvent):*
{
this.extractSamples(arg1.data, this.BUFFER_SIZE);
return;
}
internal function resizeListener(arg1:flash.events.Event):*
{
if (!stage)
{
trace("No stage!");
return;
}
var loc1:*=stage.stageWidth;
var loc2:*=stage.stageHeight;
var loc3:*;
var loc4:*=(loc3 = loc1 / loc2) >= 1280 / 720;
var loc6:*;
this.blackOverlay.width = loc6 = loc1;
this.colorBM.width = loc6;
this.blackOverlay.height = loc6 = loc2;
this.colorBM.height = loc6;
this.blackOverlay.y = loc6 = 0;
this.blackOverlay.x = loc6 = loc6;
this.colorBM.y = loc6 = loc6;
this.colorBM.x = loc6;
if (this.whiteOverlay)
{
this.whiteOverlay.width = loc1;
this.whiteOverlay.height = loc2;
}
this.window.relativePosition(loc1, loc2);
this.window.fitIntoView();
var loc5:*=1;
loc6 = this.settings.imagescaling;
switch (loc6)
{
case "on":
{
loc5 = loc2 / this.destBMD.height;
break;
}
case "semi":
{
loc5 = this.destBMD.height >= loc2 ? loc2 / this.destBMD.height : 1;
break;
}
}
this.destBM.scaleY = loc6 = loc5;
this.destBM.scaleX = loc6;
this.destBM.x = (loc1 - this.destBM.width) / 2;
this.destBM.y = (loc2 - this.destBM.height) / 2;
if (this.userInterface)
{
this.userInterface.resizeInterface(loc1, loc2);
}
this.alignImage();
return;
}
internal function onAddedToStage(arg1:flash.events.Event):*
{
var loc1:*=null;
var loc2:*=this;
while (loc2.parent != null)
{
loc2 = loc2.parent;
}
if (loc2)
{
loc1 = flash.display.LoaderInfo(loc2.loaderInfo).parameters;
}
else
{
loc1 = flash.display.LoaderInfo(this.root.loaderInfo).parameters;
}
this._settings.getSettingsFromParameters(loc1);
this.window.checkUpdates();
stage.addEventListener(flash.events.Event.RESIZE, this.resizeListener);
stage.scaleMode = flash.display.StageScaleMode.NO_SCALE;
stage.align = flash.display.StageAlign.TOP_LEFT;
stage.addEventListener(flash.events.KeyboardEvent.KEY_DOWN, this.keyboardListener);
stage.addEventListener(flash.events.KeyboardEvent.KEY_UP, this.keyboardListener);
stage.addEventListener(flash.events.MouseEvent.RIGHT_CLICK, this.rightClickListener);
stage.addEventListener(flash.events.MouseEvent.MOUSE_WHEEL, this.rightClickListener);
this.resizeListener(null);
if (this.whiteOverlay)
{
this.addEventListener(flash.events.Event.ENTER_FRAME, this.fadeInListener);
}
this.removeEventListener(flash.events.Event.ADDED_TO_STAGE, this.onAddedToStage);
return;
}
internal function rightClickListener(arg1:flash.events.MouseEvent):*
{
var loc1:*=arg1.type;
switch (loc1)
{
case flash.events.MouseEvent.RIGHT_CLICK:
{
this.toggleWindow();
break;
}
case flash.events.MouseEvent.MOUSE_WHEEL:
{
if (arg1.delta > 0)
{
this.increaseVolume();
}
else
{
this.decreaseVolume();
}
break;
}
}
return;
}
internal function fadeInListener(arg1:flash.events.Event):*
{
if (this.whiteOverlay.alpha == 0)
{
this.whiteOverlay.visible = false;
this.removeChild(this.whiteOverlay);
this.whiteOverlay = null;
this.removeEventListener(flash.events.Event.ENTER_FRAME, this.fadeInListener);
}
else
{
this.whiteOverlay.alpha = Math.max(0, this.whiteOverlay.alpha - 0.05);
}
return;
}
internal function calculateSamples(arg1:flash.media.Sound=null):Number
{
if (arg1)
{
return int(arg1.length * 44.1 - (arg1 is FakeSound ? 0 : this.LAME_DELAY_START + this.LAME_DELAY_END));
}
trace("Can\'t calculateSamples");
return -1;
}
internal function changeUI(arg1:Number):*
{
var loc1:*=undefined;
if (arg1 >= 0 && this.uiArray.length > arg1 && !(this.userInterface == this.uiArray[arg1]))
{
this.userInterface.disconnect();
loc1 = this.uiArray[arg1];
addChild(loc1 as flash.display.MovieClip);
swapChildren(loc1, this.userInterface as flash.display.MovieClip);
removeChild(this.userInterface as flash.display.MovieClip);
this.userInterface = loc1;
this.userInterface.connectCore(this);
this.userInterface.updateLists();
this.userInterface.updateTexts();
this.userInterface.resourcePackLoaded();
this.userInterface.setSongText();
this.userInterface.setImageText();
if (stage)
{
this.userInterface.resizeInterface(stage.stageWidth, stage.stageHeight);
}
this.currentUIIndex = arg1;
}
return;
}
internal function calculateSongLength(arg1:flash.media.Sound=null):Number
{
if (arg1)
{
return this.calculateSamples(arg1) / 44.1;
}
return -1;
}
internal function settingsUpdated():*
{
trace("Updating according to this.settings");
this.destBM.smoothing = this.settings.imageSmoothing;
if (stage)
{
stage.quality = this.settings.flashQuality;
}
this.blurMultiplier = {"low":0.5, "medium":1, "high":4}[this.settings.blurAmount];
this.blurDecayMultiplier = {"low":0.3, "medium":0.6, "high":1, "vhigh":1.6}[this.settings.blurDecay];
var loc1:*=new flash.media.SoundTransform();
var loc2:*=this.settings.channels;
switch (loc2)
{
case "stereo":
{
break;
}
case "left":
{
loc1.leftToRight = loc2 = 1;
loc1.leftToLeft = loc2;
loc1.rightToRight = loc2 = 0;
loc1.rightToLeft = loc2;
break;
}
case "right":
{
loc1.leftToRight = loc2 = 0;
loc1.leftToLeft = loc2;
loc1.rightToRight = loc2 = 1;
loc1.rightToLeft = loc2;
break;
}
case "mono":
{
loc1.leftToRight = loc2 = 0.6;
loc1.leftToLeft = loc2;
loc1.rightToRight = loc2 = 0.6;
loc1.rightToLeft = loc2;
break;
}
}
flash.media.SoundMixer.soundTransform = loc1;
loc2 = this.settings.blendMode;
switch (loc2)
{
case "plain":
{
this.imageHolder.removeChild(this.destBM);
this.imageHolder.removeChild(this.colorBM);
this.imageHolder.addChild(this.colorBM);
this.imageHolder.addChild(this.destBM);
this.colorBM.alpha = 1;
this.destBM.alpha = 1;
this.colorBM.blendMode = flash.display.BlendMode.NORMAL;
break;
}
case "alpha":
{
this.imageHolder.removeChild(this.destBM);
this.imageHolder.removeChild(this.colorBM);
this.imageHolder.addChild(this.colorBM);
this.imageHolder.addChild(this.destBM);
this.colorBM.alpha = 1;
this.destBM.alpha = 0.7;
this.colorBM.blendMode = flash.display.BlendMode.NORMAL;
break;
}
case "hard":
{
this.imageHolder.removeChild(this.destBM);
this.imageHolder.removeChild(this.colorBM);
this.imageHolder.addChild(this.destBM);
this.imageHolder.addChild(this.colorBM);
this.colorBM.alpha = 0.7;
this.destBM.alpha = 1;
this.colorBM.blendMode = flash.display.BlendMode.HARDLIGHT;
break;
}
}
loc2 = this.settings.blackoutUI;
switch (loc2)
{
case true:
{
removeChild(this.blackOverlay);
addChildAt(this.blackOverlay, getChildIndex(this.window));
break;
}
case false:
{
removeChild(this.blackOverlay);
addChildAt(this.blackOverlay, getChildIndex(this.userInterface as flash.display.MovieClip));
break;
}
}
loc2 = this.settings.colors;
switch (loc2)
{
case "normal":
{
this.currentColors = this.oldColors;
break;
}
case "pastel":
{
this.currentColors = this.pastelColors;
break;
}
case "gp":
{
this.currentColors = this.gpColors;
break;
}
}
loc2 = this.settings.ui;
switch (loc2)
{
case "retro":
{
this.changeUI(0);
break;
}
case "weed":
{
this.changeUI(1);
break;
}
case "modern":
{
this.changeUI(2);
break;
}
case "xmas":
{
this.changeUI(3);
break;
}
}
if (this.oldAutoSong == "off" && !(this.settings.autosong == "off"))
{
trace("Resetting loopCount since AutoSong was enabled");
this.loopCount = 0;
this.oldAutoSong = this.settings.autosong;
}
if (stage)
{
this.resizeListener(null);
this.alignImage();
}
return;
}
public function enabledChanged():void
{
this.resourceManager.rebuildEnabled();
this.userInterface.updateLists();
return;
}
internal function extractSamples(arg1:flash.utils.ByteArray, arg2:int):void
{
var loc2:*=0;
var loc3:*=0;
var loc4:*=undefined;
var loc5:*=undefined;
var loc6:*=undefined;
var loc7:*=undefined;
var loc8:*=undefined;
var loc9:*=undefined;
var loc1:*=arg2;
while (0 < arg2)
{
loc4 = this.currentSong.buildup && !this.currentSong.buildupPlayed;
loc5 = this.currentSong.sound is FakeSound ? 0 : this.LAME_DELAY_START;
loc6 = loc4 ? this.currentSong.buildup : this.currentSong.sound;
loc7 = loc4 && this.currentSong.buildupLength ? this.currentSong.buildupLength - loc5 : this.calculateSamples(loc6);
if (!(loc4 && this.currentSong.buildupLength))
{
};
if (loc7 <= 0 || !loc6)
{
while (loc9 < arg2)
{
arg1.writeFloat(0);
arg1.writeFloat(0);
++loc9;
}
return;
}
loc8 = this.samplePosition;
if (this.samplePosition + arg2 > loc7)
{
loc3 = loc7 - this.samplePosition;
loc2 = loc6.extract(arg1, loc3, this.samplePosition + loc5);
this.samplePosition = this.samplePosition + loc2;
arg2 = arg2 - loc2;
if (loc4)
{
trace("Buildup finished");
this.samplePosition = 0;
this.currentSong.buildupPlayed = true;
this.buildupDiff = loc7 / 44.1;
}
}
else
{
loc2 = loc6.extract(arg1, arg2, this.samplePosition + loc5);
this.samplePosition = this.samplePosition + loc2;
arg2 = arg2 - loc2;
}
if (!(this.samplePosition >= loc7))
{
continue;
}
this.samplePosition = 0;
if (loc4)
{
trace("Buildup finished 2");
this.currentSong.buildupPlayed = true;
this.buildupDiff = this.calculateSongLength(this.currentSong.buildup);
continue;
}
this.onLoop();
}
return;
}
internal function unload():*
{
trace("Unloading!");
this.resetAudio();
flash.utils.clearInterval(this.beaterId);
removeEventListener(flash.events.Event.ENTER_FRAME, this.enterFrame);
trace("Unloaded!");
return;
}
internal function variableExtractSampleData(arg1:flash.utils.ByteArray, arg2:int):void
{
var loc1:*=NaN;
var loc2:*=0;
var loc3:*=NaN;
var loc4:*=NaN;
var loc5:*=0;
var loc6:*=0;
var loc7:*=0;
var loc8:*=undefined;
var loc9:*=0;
var loc10:*=NaN;
var loc11:*=NaN;
var loc12:*=NaN;
var loc13:*=NaN;
var loc14:*=0;
while (0 < arg2)
{
this.sampleTargetArray.position = 0;
loc1 = arg2 * this.playbackRate / 100;
loc2 = this.position;
loc4 = loc3 = this.position - loc2;
loc5 = -1;
loc6 = Math.ceil(loc1) + 2;
if (loc2 + loc6 > this.samples)
{
trace("Over samples");
loc8 = this.samples - loc2;
loc7 = this.currentSong.sound.extract(this.sampleTargetArray, loc8, loc2 + this.LAME_DELAY_START);
}
else
{
loc8 = loc6;
loc7 = this.currentSong.sound.extract(this.sampleTargetArray, loc8, loc2 + this.LAME_DELAY_START);
}
loc9 = loc7 != loc6 ? loc7 / (this.playbackRate / 100) : arg2;
loc14 = 0;
while (loc14 < loc9)
{
if (int(loc4) != loc5)
{
loc5 = loc4;
this.sampleTargetArray.position = loc5 << 3;
loc10 = this.sampleTargetArray.readFloat();
loc11 = this.sampleTargetArray.readFloat();
loc12 = this.sampleTargetArray.readFloat();
loc13 = this.sampleTargetArray.readFloat();
}
arg1.writeFloat(loc10 + loc3 * (loc12 - loc10));
arg1.writeFloat(loc11 + loc3 * (loc13 - loc11));
loc4 = loc4 + this.playbackRate / 100;
loc3 = loc3 + this.playbackRate / 100;
while (loc3 >= 1)
{
--loc3;
}
++loc14;
}
arg2 = arg2 - loc9;
this.position = this.position + loc1;
if (!(this.position >= this.samples))
{
continue;
}
trace("resettomg", this.position, arg2, loc1);
this.position = 0;
}
return;
}
public function init():*
{
if (!this.initDone)
{
this.beaterId = flash.utils.setInterval(this.beater, 5);
addEventListener(flash.events.Event.ENTER_FRAME, this.enterFrame);
this.setSong(0);
this.setImage(0);
this.initDone = true;
}
return;
}
internal function openURL(arg1:String):void
{
flash.net.navigateToURL(new flash.net.URLRequest(arg1), "_blank");
return;
}
public function openSongSource():void
{
if (this.currentSong && this.currentSong.source)
{
this.openURL(this.currentSong.source);
}
return;
}
public function openImageSource():void
{
if (this.currentImage && this.currentImage.source)
{
this.openURL(this.currentImage.source);
}
return;
}
internal function keyboardListener(arg1:flash.events.KeyboardEvent):*
{
if (arg1.type != flash.events.KeyboardEvent.KEY_UP)
{
var loc1:*=arg1.keyCode;
switch (loc1)
{
case flash.ui.Keyboard.LEFT:
{
this.previousImage();
break;
}
case flash.ui.Keyboard.RIGHT:
{
this.nextImage();
break;
}
case flash.ui.Keyboard.UP:
{
this.nextSong();
break;
}
case flash.ui.Keyboard.DOWN:
{
this.previousSong();
break;
}
case flash.ui.Keyboard.F:
{
this.isFullAuto = !this.isFullAuto;
break;
}
case flash.ui.Keyboard.NUMPAD_SUBTRACT:
case flash.ui.Keyboard.MINUS:
{
this.decreaseVolume();
break;
}
case flash.ui.Keyboard.NUMPAD_ADD:
case flash.ui.Keyboard.EQUAL:
{
this.increaseVolume();
break;
}
case flash.ui.Keyboard.M:
{
this.toggleMute();
break;
}
case flash.ui.Keyboard.H:
{
this.userInterface.toggleHide();
break;
}
case flash.ui.Keyboard.R:
{
this.window.showRespacks();
break;
}
case flash.ui.Keyboard.E:
{
this.window.showEditor();
break;
}
case flash.ui.Keyboard.O:
{
this.window.showOptions();
break;
}
case flash.ui.Keyboard.I:
{
this.window.showInfo();
break;
}
case flash.ui.Keyboard.NUMBER_1:
{
this.settings.ui = "retro";
break;
}
case flash.ui.Keyboard.NUMBER_2:
{
this.settings.ui = "weed";
break;
}
case flash.ui.Keyboard.NUMBER_3:
{
this.settings.ui = "modern";
break;
}
case flash.ui.Keyboard.NUMBER_4:
{
this.settings.ui = "xmas";
break;
}
case flash.ui.Keyboard.L:
{
this.loadLocal();
break;
}
case flash.ui.Keyboard.C:
{
this.toggleImageList();
break;
}
case flash.ui.Keyboard.S:
{
this.toggleSongList();
break;
}
case flash.ui.Keyboard.W:
{
this.toggleWindow();
break;
}
case flash.ui.Keyboard.SHIFT:
{
if (!this.lastKeyEvent || !(this.lastKeyEvent.keyCode == arg1.keyCode) || !(this.lastKeyEvent.type == arg1.type))
{
this.randomSong();
}
break;
}
}
}
this.lastKeyEvent = arg1;
return;
}
public function toggleWindow():void
{
this.window.toggleHide();
this.hideLists();
return;
}
public function hideLists():void
{
this.userInterface.songList.hide();
this.userInterface.imageList.hide();
return;
}
public function toggleSongList():void
{
this.userInterface.songList.toggleHide();
this.userInterface.imageList.hide();
this.window.hide();
return;
}
public function toggleImageList():void
{
this.userInterface.imageList.toggleHide();
this.userInterface.songList.hide();
this.window.hide();
return;
}
internal const oldColorNames:Array=["black", "brick", "crimson", "red", "turtle", "sludge", "brown", "orange", "green", "grass", "maize", "citrus", "lime", "leaf", "chartreuse", "yellow", "midnight", "plum", "pomegranate", "rose", "swamp", "dust", "dirt", "blossom", "sea", "ill", "haze", "peach", "spring", "mantis", "brilliant", "canary", "navy", "grape", "mauve", "purple", "cornflower", "deep", "lilac", "lavender", "aqua", "steel", "grey", "pink", "bay", "marina", "tornado", "saltine", "blue", "twilight", "orchid", "magenta", "azure", "liberty", "royalty", "thistle", "ocean", "sky", "periwinkle", "carnation", "cyan", "turquoise", "powder", "white"];
internal const oldColors:Array=[{"n":"black", "c":0}, {"n":"brick", "c":5570560}, {"n":"crimson", "c":11141120}, {"n":"red", "c":16711680}, {"n":"turtle", "c":21760}, {"n":"sludge", "c":5592320}, {"n":"brown", "c":11162880}, {"n":"orange", "c":16733440}, {"n":"green", "c":43520}, {"n":"grass", "c":5614080}, {"n":"maize", "c":11184640}, {"n":"citrus", "c":16755200}, {"n":"lime", "c":65280}, {"n":"leaf", "c":5635840}, {"n":"chartreuse", "c":11206400}, {"n":"yellow", "c":16776960}, {"n":"midnight", "c":85}, {"n":"plum", "c":5570645}, {"n":"pomegranate", "c":11141205}, {"n":"rose", "c":16711765}, {"n":"swamp", "c":21845}, {"n":"dust", "c":5592405}, {"n":"dirt", "c":11162965}, {"n":"blossom", "c":16733525}, {"n":"sea", "c":43605}, {"n":"ill", "c":5614165}, {"n":"haze", "c":11184725}, {"n":"peach", "c":16755285}, {"n":"spring", "c":65365}, {"n":"mantis", "c":5635925}, {"n":"brilliant", "c":11206485}, {"n":"canary", "c":16777045}, {"n":"navy", "c":170}, {"n":"grape", "c":5570730}, {"n":"mauve", "c":11141290}, {"n":"purple", "c":16711850}, {"n":"cornflower", "c":21930}, {"n":"deep", "c":5592490}, {"n":"lilac", "c":11163050}, {"n":"lavender", "c":16733610}, {"n":"aqua", "c":43690}, {"n":"steel", "c":5614250}, {"n":"grey", "c":11184810}, {"n":"pink", "c":16755370}, {"n":"bay", "c":65450}, {"n":"marina", "c":5636010}, {"n":"tornado", "c":11206570}, {"n":"saltine", "c":16777130}, {"n":"blue", "c":255}, {"n":"twilight", "c":5570815}, {"n":"orchid", "c":11141375}, {"n":"magenta", "c":16711935}, {"n":"azure", "c":22015}, {"n":"liberty", "c":5592575}, {"n":"royalty", "c":11163135}, {"n":"thistle", "c":16733695}, {"n":"ocean", "c":43775}, {"n":"sky", "c":5614335}, {"n":"periwinkle", "c":11184895}, {"n":"carnation", "c":16755455}, {"n":"cyan", "c":65535}, {"n":"turquoise", "c":5636095}, {"n":"powder", "c":11206655}, {"n":"white", "c":16777215}];
internal const pastelColors:Array=[{"n":"Mahogany", "c":13453898}, {"n":"Banana Mania", "c":16443317}, {"n":"Beaver", "c":10453360}, {"n":"Black", "c":2302755}, {"n":"Chestnut", "c":12344664}, {"n":"Copper", "c":14521461}, {"n":"Cornflower", "c":10145515}, {"n":"Denim", "c":2845892}, {"n":"Desert Sand", "c":15715768}, {"n":"Eggplant", "c":7229792}, {"n":"Electric Lime", "c":1964308}, {"n":"Fern", "c":7453816}, {"n":"Goldenrod", "c":16570741}, {"n":"Granny Smith Apple", "c":11068576}, {"n":"Gray", "c":9802124}, {"n":"Green", "c":1879160}, {"n":"Hot Magenta", "c":16719310}, {"n":"Inch Worm", "c":11725917}, {"n":"Indigo", "c":6125259}, {"n":"Laser Lemon", "c":16645236}, {"n":"Lavender", "c":16561365}, {"n":"Macaroni and Cheese", "c":16760200}, {"n":"Manatee", "c":9935530}, {"n":"Mango Tango", "c":16745027}, {"n":"Melon", "c":16628916}, {"n":"Midnight Blue", "c":1722486}, {"n":"Neon Carrot", "c":16753475}, {"n":"Olive Green", "c":12236908}, {"n":"Orange", "c":16741688}, {"n":"Orchid", "c":15116503}, {"n":"Outer Space", "c":4278860}, {"n":"Outrageous Orange", "c":16739914}, {"n":"Pacific Blue", "c":1878473}, {"n":"Periwinkle", "c":12964070}, {"n":"Plum", "c":9323909}, {"n":"Purple Heart", "c":7619272}, {"n":"Raw Sienna", "c":14060121}, {"n":"Razzmatazz", "c":14886251}, {"n":"Red", "c":15605837}, {"n":"Robin Egg Blue", "c":2084555}, {"n":"Royal Purple", "c":7885225}, {"n":"Salmon", "c":16751530}, {"n":"Scarlet", "c":16525383}, {"n":"Sea Green", "c":10478271}, {"n":"Sepia", "c":10840399}, {"n":"Shadow", "c":9075037}, {"n":"Shamrock", "c":4574882}, {"n":"Shocking Pink", "c":16482045}, {"n":"Spring Green", "c":15526590}, {"n":"Sunset Orange", "c":16604755}, {"n":"Tan", "c":16426860}, {"n":"Tickle Me Pink", "c":16550316}, {"n":"Timberwolf", "c":14407634}, {"n":"Tropical Rain Forest", "c":1540205}, {"n":"Turquoise Blue", "c":7855591}, {"n":"Vivid Tangerine", "c":16752777}, {"n":"Vivid Violet", "c":9392285}, {"n":"White", "c":15592941}, {"n":"Wild Strawberry", "c":16728996}, {"n":"Wild Watermelon", "c":16542853}, {"n":"Wisteria", "c":13477086}, {"n":"Yellow", "c":16574595}, {"n":"Yellow Green", "c":12968836}, {"n":"Yellow Orange", "c":16758355}];
internal const gpColors:Array=[{"n":"Green", "c":65280}, {"n":"Lizard", "c":5923665}, {"n":"Cactus", "c":6516567}, {"n":"Kakapo", "c":4878371}, {"n":"Wet Moss", "c":4018729}, {"n":"Tree Moss", "c":6659378}, {"n":"Lime Rind", "c":3297047}, {"n":"Flight Jacket", "c":8357752}, {"n":"Green Mist", "c":12381585}, {"n":"Holly", "c":4751892}, {"n":"Mtn Dew Bottle", "c":5732922}, {"n":"Seaweed Roll", "c":7635561}, {"n":"Neon Green", "c":8647980}, {"n":"Lichen", "c":12638639}, {"n":"Guacamole", "c":10934149}, {"n":"Pond Scum", "c":6848090}, {"n":"Douglas Fir", "c":4153387}, {"n":"Royal Palm", "c":4155430}, {"n":"Seaweed", "c":6582110}, {"n":"Noble Fir", "c":4680244}, {"n":"Green Led", "c":6159370}, {"n":"Spinach", "c":4414774}, {"n":"Frog", "c":8699498}, {"n":"Emerald", "c":6003812}, {"n":"Circuit Board", "c":3827241}, {"n":"Sapgreen", "c":3178516}, {"n":"Pool Table", "c":3258701}, {"n":"Leaf", "c":5615162}, {"n":"Grass", "c":5094707}, {"n":"Snake", "c":5860438}, {"n":"100 Euro", "c":8832636}, {"n":"Night Vision", "c":8113264}, {"n":"Purple", "c":10494192}, {"n":"Purple", "c":10170623}, {"n":"Purple", "c":9514222}, {"n":"Purple", "c":8201933}, {"n":"Purple", "c":11141375}, {"n":"Purple", "c":8388736}, {"n":"Turnip", "c":10964139}, {"n":"Violet", "c":9395865}, {"n":"Eggplant", "c":8480391}, {"n":"Grape", "c":13369599}, {"n":"Wild Violet", "c":8522683}, {"n":"Concord Grape", "c":6685080}, {"n":"Garden Plum", "c":7431037}, {"n":"Purple Fish", "c":11694758}, {"n":"Ultramarine Violet", "c":6038638}, {"n":"Purple Rose", "c":6172025}, {"n":"Sea Urchin", "c":6830686}, {"n":"Cobalt Violet Deep", "c":9511326}, {"n":"Plum", "c":9135755}, {"n":"Dark Orchid", "c":10040013}, {"n":"Violet Flower", "c":12541951}, {"n":"Purple Candy", "c":12427467}, {"n":"Deep Purple", "c":5577355}, {"n":"Thistle", "c":11882652}, {"n":"Dark Purple", "c":8855416}, {"n":"Purple Ink", "c":10251160}, {"n":"Orchid", "c":14381275}, {"n":"True Purple", "c":10027161}, {"n":"Darkmagenta", "c":9109643}, {"n":"Harold\'s Crayon", "c":11935876}, {"n":"Purple Rain", "c":6898825}, {"n":"Gold", "c":16766720}];
internal const LAME_DELAY_START:Number=2258;
internal const LAME_DELAY_END:Number=1000;
internal const BUFFER_SIZE:int=4410;
internal var currentColors:*;
internal var respackBytes:flash.utils.ByteArray;
internal var respack:ResourcePack;
internal var _settings:HuesSettings;
internal var builtIn:BuiltResourcePack;
internal var resourceManager:ResourceManager;
internal var outputSound:flash.media.Sound;
internal var inputSound:flash.media.Sound;
internal var samplePosition:*=0;
internal var samples:*=-1;
internal var lastBeat:*=-123;
internal var beatLength:*=-1;
internal var currentSong:*;
internal var currentImage:*;
internal var destBMD:flash.display.BitmapData;
internal var colorBMD:flash.display.BitmapData;
internal var destBM:flash.display.Bitmap;
internal var colorBM:flash.display.Bitmap;
public var whiteOverlay:flash.display.MovieClip;
internal var blackOverlay:flash.display.MovieClip;
internal var blackOverlayColorTransform:flash.geom.ColorTransform;
internal var doBlackout:*=false;
internal var doWhiteout:*=false;
internal var imageHolder:flash.display.MovieClip;
internal var blurFilter:flash.filters.BlurFilter;
internal var blurMultiplier:Number=1;
internal var blurDecayMultiplier:Number=1;
internal var songIndex:*=-1;
internal var colorIndex:*=0;
internal var imageIndex:*=-1;
internal var animationFrame:*=0;
internal var _isFullAuto:*=true;
internal var currentVolume:*=70;
internal var volumeMuted:*=false;
internal var loopCount:*=0;
public var retroui:flash.display.MovieClip;
public var window:RetroWindow;
public var imageContainer:flash.display.MovieClip;
public var overlayContainer:flash.display.MovieClip;
internal var uiArray:Array;
internal var doRandom:Boolean=false;
internal var currentUIIndex:*=2;
internal var oldAutoSong:*=null;
internal var beaterId:*;
internal var lastSC:*=0;
internal var buildupDiff:*=0;
internal var soundChannel:flash.media.SoundChannel;
internal var _userInterface:HuesUserInterface;
internal var doColorFade:*=false;
internal var oldColor:*=16777215;
internal var colorFadeStarted:*=0;
internal var animTimeoutID:Number;
internal var colorFadeLength:*=0;
internal var tmpFrame:*=0;
internal var lastImageArray:*;
internal var lastSongArray:*;
internal var tmp_slowdown:*=false;
internal var fadeOut:*=false;
internal var fadeDirection:*=false;
internal var initDone:*=false;
internal var lastKeyEvent:*=null;
internal var files:flash.net.FileReferenceList;
internal var loadedFiles:*=0;
internal var testPosition:*=0;
internal var sampleTargetArray:flash.utils.ByteArray;
internal var position:Number=0;
internal var playbackRate:Number=100;
internal var doBuildup:*=false;
}
}