From 04c8407bc97488e16cf81b10e5eb3f36ebc677c0 Mon Sep 17 00:00:00 2001 From: Xerus <27jf@web.de> Date: Thu, 20 Dec 2018 21:36:14 +0100 Subject: Fix HID output on Windows --- res/controllers/common-controller-scripts.js | 54 +++++++++++++++++++++------- 1 file changed, 41 insertions(+), 13 deletions(-) (limited to 'res/controllers/common-controller-scripts.js') diff --git a/res/controllers/common-controller-scripts.js b/res/controllers/common-controller-scripts.js index 687f422b14..13f54b3ea0 100644 --- a/res/controllers/common-controller-scripts.js +++ b/res/controllers/common-controller-scripts.js @@ -1,7 +1,5 @@ // Functions common to all controllers go in this file -nop = function () {} // Only here so you don't get a syntax error on load if the file was otherwise empty - // ----------------- Prototype enhancements --------------------- // Returns an ASCII byte array for the string @@ -16,18 +14,50 @@ String.prototype.toInt = function() { // ----------------- Function overloads --------------------- // Causes script print() calls to appear in the log file as well -print = function(string) { +function print(string) { engine.log(string); } -var printObject = function (object) { - print(JSON.stringify(object, null, 2)); -}; +function printObject(obj, maxdepth) { + print(stringifyObject(obj, maxdepth)); +} + +function stringifyObject(obj, maxdepth, checked, prefix) { + if (!maxdepth) + maxdepth = 2; + try { + return JSON.stringify(obj, null, maxdepth); + } catch(e) { + if (!checked) + checked = []; + if (!prefix) + prefix = ""; + if (maxdepth > 0 && typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) !== '' && !arrayContains(checked, obj)) { + checked.push(obj); + var output = '{\n'; + for (var property in obj) { + const value = obj[property]; + if(typeof value === 'function') + continue; + output += prefix + property + ': ' + stringifyObject(value, maxdepth - 1, checked, prefix + ' ') + '\n'; + } + return output + prefix.substr(2) + '}'; + } + } + return obj; +} + +function arrayContains(array, elem) { + for (var i = 0; i < array.length; i++) { + if (array[i] === elem) + return true; + } + return false; +} // ----------------- Generic functions --------------------- -function secondstominutes(secs) -{ +function secondstominutes(secs) { var m = (secs / 60) | 0; return (m < 10 ? "0" + m : m) @@ -35,16 +65,14 @@ function secondstominutes(secs) + ( ( secs %= 60 ) < 10 ? "0" + secs : secs); } -function msecondstominutes(msecs) -{ +function msecondstominutes(msecs) { var m = (msecs / 60000) | 0; msecs %= 60000; var secs = (msecs / 1000) | 0; msecs %= 1000; msecs = Math.round(msecs * 100 / 1000); - if (msecs==100) msecs=99; - -// print("secs="+secs+", msecs="+msecs); + if (msecs===100) + msecs=99; return (m < 10 ? "0" + m : m) + ":" -- cgit v1.2.3 From 12106699111f04bd5995b05e1548088b9e671596 Mon Sep 17 00:00:00 2001 From: Xerus <27jf@web.de> Date: Thu, 20 Dec 2018 21:41:41 +0100 Subject: Remove Packet object --- res/controllers/common-controller-scripts.js | 13 ------------- 1 file changed, 13 deletions(-) (limited to 'res/controllers/common-controller-scripts.js') diff --git a/res/controllers/common-controller-scripts.js b/res/controllers/common-controller-scripts.js index 13f54b3ea0..799803ff9e 100644 --- a/res/controllers/common-controller-scripts.js +++ b/res/controllers/common-controller-scripts.js @@ -534,17 +534,4 @@ Deck = function (deckNumber, group) { Deck.prototype.setControlValue = Controller.prototype.setControlValue; Deck.prototype.addButton = Controller.prototype.addButton; -// Data packet -function Packet(length, initialValue) { - this.length = length; - this.data = new Array(length); // Size the array - - if (!initialValue) initialValue=0; - - // Initialize data values - for (i=0; i Date: Tue, 22 Jan 2019 18:40:10 +0100 Subject: Revert function syntax --- res/controllers/common-controller-scripts.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'res/controllers/common-controller-scripts.js') diff --git a/res/controllers/common-controller-scripts.js b/res/controllers/common-controller-scripts.js index 799803ff9e..f5dfdbab31 100644 --- a/res/controllers/common-controller-scripts.js +++ b/res/controllers/common-controller-scripts.js @@ -14,15 +14,15 @@ String.prototype.toInt = function() { // ----------------- Function overloads --------------------- // Causes script print() calls to appear in the log file as well -function print(string) { +print = function(string) { engine.log(string); } -function printObject(obj, maxdepth) { +printObject = function(obj, maxdepth) { print(stringifyObject(obj, maxdepth)); } -function stringifyObject(obj, maxdepth, checked, prefix) { +stringifyObject = function(obj, maxdepth, checked, prefix) { if (!maxdepth) maxdepth = 2; try { @@ -47,7 +47,7 @@ function stringifyObject(obj, maxdepth, checked, prefix) { return obj; } -function arrayContains(array, elem) { +arrayContains = function(array, elem) { for (var i = 0; i < array.length; i++) { if (array[i] === elem) return true; @@ -57,7 +57,7 @@ function arrayContains(array, elem) { // ----------------- Generic functions --------------------- -function secondstominutes(secs) { +secondstominutes = function(secs) { var m = (secs / 60) | 0; return (m < 10 ? "0" + m : m) @@ -65,7 +65,7 @@ function secondstominutes(secs) { + ( ( secs %= 60 ) < 10 ? "0" + secs : secs); } -function msecondstominutes(msecs) { +msecondstominutes = function(msecs) { var m = (msecs / 60000) | 0; msecs %= 60000; var secs = (msecs / 1000) | 0; @@ -81,7 +81,7 @@ function msecondstominutes(msecs) { + ( msecs < 10 ? "0" + msecs : msecs); } -function script() {} +script = function() {} // DEPRECATED -- use script.midiDebug() instead script.debug = function (channel, control, value, status, group) { @@ -401,7 +401,7 @@ script.softStart = function(channel, control, value, status, group, factor) { } // bpm - Used for tapping the desired BPM for a deck -function bpm() {} +bpm = function() {} bpm.tapTime = 0.0; bpm.tap = []; // Tap sample values @@ -464,7 +464,7 @@ function Controller () { Controller.prototype.addButton = function(buttonName, button, eventHandler) { if(eventHandler) { var executionEnvironment = this; - function handler(value) { + handler = function(value) { button.state = value; executionEnvironment[eventHandler](value); } @@ -478,7 +478,7 @@ Controller.prototype.setControlValue = function(control, value) { } //Button -function Button(controlId) { +Button = function(controlId) { this.controlId = controlId; this.state = ButtonState.released; } @@ -487,7 +487,7 @@ Button.prototype.handleEvent = function(value) { }; //Control -function Control(mappedFunction, softMode) { +Control = function(mappedFunction, softMode) { // These defaults are for MIDI controllers this.minInput = 0; this.midInput = 0x3F; -- cgit v1.2.3 From 275eccb47472c8aad67874336813d29e8c050351 Mon Sep 17 00:00:00 2001 From: Xerus <27jf@web.de> Date: Tue, 22 Jan 2019 18:43:42 +0100 Subject: Remove all the semicolons --- res/controllers/common-controller-scripts.js | 436 ++++++++++++++------------- 1 file changed, 219 insertions(+), 217 deletions(-) (limited to 'res/controllers/common-controller-scripts.js') diff --git a/res/controllers/common-controller-scripts.js b/res/controllers/common-controller-scripts.js index f5dfdbab31..c1d2d09f58 100644 --- a/res/controllers/common-controller-scripts.js +++ b/res/controllers/common-controller-scripts.js @@ -4,123 +4,124 @@ // Returns an ASCII byte array for the string String.prototype.toInt = function() { - var a = new Array(); + var a = new Array() for (var i = 0; i < this.length; i++) { - a[i] = this.charCodeAt(i); + a[i] = this.charCodeAt(i) } - return a; + return a } // ----------------- Function overloads --------------------- // Causes script print() calls to appear in the log file as well print = function(string) { - engine.log(string); + engine.log(string) } printObject = function(obj, maxdepth) { - print(stringifyObject(obj, maxdepth)); + print(stringifyObject(obj, maxdepth)) } stringifyObject = function(obj, maxdepth, checked, prefix) { if (!maxdepth) - maxdepth = 2; + maxdepth = 2 try { - return JSON.stringify(obj, null, maxdepth); - } catch(e) { + return JSON.stringify(obj, null, maxdepth) + } catch (e) { if (!checked) - checked = []; + checked = [] if (!prefix) - prefix = ""; - if (maxdepth > 0 && typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) !== '' && !arrayContains(checked, obj)) { - checked.push(obj); - var output = '{\n'; + prefix = "" + if (maxdepth > 0 && typeof obj === "object" && obj !== null && Object.getPrototypeOf(obj) !== "" && !arrayContains(checked, obj)) { + checked.push(obj) + var output = "{\n" for (var property in obj) { - const value = obj[property]; - if(typeof value === 'function') - continue; - output += prefix + property + ': ' + stringifyObject(value, maxdepth - 1, checked, prefix + ' ') + '\n'; + var value = obj[property] + if (typeof value === "function") + continue + output += prefix + property + ": " + stringifyObject(value, maxdepth - 1, checked, prefix + " ") + "\n" } - return output + prefix.substr(2) + '}'; + return output + prefix.substr(2) + "}" } } - return obj; + return obj } arrayContains = function(array, elem) { for (var i = 0; i < array.length; i++) { if (array[i] === elem) - return true; + return true } - return false; + return false } // ----------------- Generic functions --------------------- secondstominutes = function(secs) { - var m = (secs / 60) | 0; + var m = (secs / 60) | 0 - return (m < 10 ? "0" + m : m) - + ":" - + ( ( secs %= 60 ) < 10 ? "0" + secs : secs); + return (m < 10 ? "0" + m : m) + + ":" + + ((secs %= 60) < 10 ? "0" + secs : secs) } msecondstominutes = function(msecs) { - var m = (msecs / 60000) | 0; - msecs %= 60000; - var secs = (msecs / 1000) | 0; - msecs %= 1000; - msecs = Math.round(msecs * 100 / 1000); - if (msecs===100) - msecs=99; + var m = (msecs / 60000) | 0 + msecs %= 60000 + var secs = (msecs / 1000) | 0 + msecs %= 1000 + msecs = Math.round(msecs * 100 / 1000) + if (msecs === 100) + msecs = 99 return (m < 10 ? "0" + m : m) + ":" - + ( secs < 10 ? "0" + secs : secs ) + + (secs < 10 ? "0" + secs : secs) + "." - + ( msecs < 10 ? "0" + msecs : msecs); + + (msecs < 10 ? "0" + msecs : msecs) } -script = function() {} +script = function() { +} // DEPRECATED -- use script.midiDebug() instead -script.debug = function (channel, control, value, status, group) { - print("Warning: script.debug() is deprecated. Use script.midiDebug() instead."); - script.midiDebug(channel, control, value, status, group); +script.debug = function(channel, control, value, status, group) { + print("Warning: script.debug() is deprecated. Use script.midiDebug() instead.") + script.midiDebug(channel, control, value, status, group) } // DEPRECATED -- use script.midiPitch() instead -script.pitch = function (LSB, MSB, status) { - print("Warning: script.pitch() is deprecated. Use script.midiPitch() instead."); - return script.midiPitch(LSB, MSB, status); +script.pitch = function(LSB, MSB, status) { + print("Warning: script.pitch() is deprecated. Use script.midiPitch() instead.") + return script.midiPitch(LSB, MSB, status) } // DEPRECATED -- use script.absoluteLin() instead -script.absoluteSlider = function (group, key, value, low, high, min, max) { - print("Warning: script.absoluteSlider() is deprecated. Use engine.setValue(group, key, script.absoluteLin(...)) instead."); - engine.setValue(group, key, script.absoluteLin(value, low, high, min, max)); +script.absoluteSlider = function(group, key, value, low, high, min, max) { + print("Warning: script.absoluteSlider() is deprecated. Use engine.setValue(group, key, script.absoluteLin(...)) instead.") + engine.setValue(group, key, script.absoluteLin(value, low, high, min, max)) } -script.midiDebug = function (channel, control, value, status, group) { +script.midiDebug = function(channel, control, value, status, group) { print("Script.midiDebug - channel: 0x" + channel.toString(16) + - " control: 0x" + control.toString(16) + " value: 0x" + value.toString(16) + - " status: 0x" + status.toString(16) + " group: " + group); + " control: 0x" + control.toString(16) + " value: 0x" + value.toString(16) + + " status: 0x" + status.toString(16) + " group: " + group) } // Returns the deck number of a "ChannelN" or "SamplerN" group -script.deckFromGroup = function (group) { - var deck = 0; - if (group.substring(2,8)=="hannel") { +script.deckFromGroup = function(group) { + var deck = 0 + if (group.substring(2, 8) == "hannel") { // Extract deck number from the group text - deck = group.substring(8,group.length-1); + deck = group.substring(8, group.length - 1) } -/* - else if (group.substring(2,8)=="ampler") { - // Extract sampler number from the group text - deck = group.substring(8,group.length-1); - } -*/ - return parseInt(deck); + /* + else if (group.substring(2,8)=="ampler") { + // Extract sampler number from the group text + deck = group.substring(8,group.length-1); + } + */ + return parseInt(deck) } /* -------- ------------------------------------------------------ @@ -132,14 +133,14 @@ script.deckFromGroup = function (group) { controls will be bound to. Output: none -------- ------------------------------------------------------ */ -script.bindConnections = function (group, controlsToFunctions, remove) { - var control; - remove = (remove === undefined) ? false : remove; +script.bindConnections = function(group, controlsToFunctions, remove) { + var control + remove = (remove === undefined) ? false : remove for (control in controlsToFunctions) { - engine.connectControl(group, control, controlsToFunctions[control], remove); + engine.connectControl(group, control, controlsToFunctions[control], remove) if (!remove) { - engine.trigger(group, control); + engine.trigger(group, control) } } } @@ -150,8 +151,8 @@ script.bindConnections = function (group, controlsToFunctions, remove) { Input: Group and control names Output: none -------- ------------------------------------------------------ */ -script.toggleControl = function (group, control) { - engine.setValue(group, control, !(engine.getValue(group, control))); +script.toggleControl = function(group, control) { + engine.setValue(group, control, !(engine.getValue(group, control))) } /* -------- ------------------------------------------------------ @@ -163,14 +164,14 @@ script.toggleControl = function (group, control) { Input: Group and control names, delay in milliseconds (optional) Output: none -------- ------------------------------------------------------ */ -script.triggerControl = function (group, control, delay) { - if (typeof delay !== 'number') { - delay = 200; +script.triggerControl = function(group, control, delay) { + if (typeof delay !== "number") { + delay = 200 } - engine.setValue(group, control, 1); - engine.beginTimer(delay, function () { - engine.setValue(group, control, 0); - }, true); + engine.setValue(group, control, 1) + engine.beginTimer(delay, function() { + engine.setValue(group, control, 0) + }, true) } /* -------- ------------------------------------------------------ @@ -182,20 +183,20 @@ script.triggerControl = function (group, control, delay) { (Default knob values are standard MIDI 0..127) Output: MixxxControl value corresponding to the knob position -------- ------------------------------------------------------ */ -script.absoluteLin = function (value, low, high, min, max) { +script.absoluteLin = function(value, low, high, min, max) { if (!min) { - min = 0; + min = 0 } if (!max) { - max = 127; + max = 127 } - + if (value <= min) { - return low; + return low } else if (value >= max) { - return high; + return high } else { - return ((((high - low) / (max-min)) * (value-min)) + low); + return ((((high - low) / (max - min)) * (value - min)) + low) } } @@ -208,20 +209,20 @@ script.absoluteLin = function (value, low, high, min, max) { (Default knob values are standard MIDI 0..127) Output: Linear value corresponding to the knob position -------- ------------------------------------------------------ */ -script.absoluteLinInverse = function (value, low, high, min, max) { +script.absoluteLinInverse = function(value, low, high, min, max) { if (!min) { - min = 0; + min = 0 } if (!max) { - max = 127; + max = 127 } - var result = (((value-low)*(max-min))/(high-low)) + min + var result = (((value - low) * (max - min)) / (high - low)) + min if (result < min) { - return min; + return min } else if (result > max) { - return max; + return max } else { - return result; + return result } } @@ -235,20 +236,20 @@ script.absoluteLinInverse = function (value, low, high, min, max) { (Default knob values are standard MIDI 0..127) Output: MixxxControl value corresponding to the knob position -------- ------------------------------------------------------ */ -script.absoluteNonLin = function (value, low, mid, high, min, max) { +script.absoluteNonLin = function(value, low, mid, high, min, max) { if (!min) { - min = 0; + min = 0 } if (!max) { - max = 127; + max = 127 } - var center = (max-min)/2; - if (value==center || value==Math.round(center)) { - return mid; - } else if (value max) { - return max; + return max } else { - return result; + return result } } @@ -293,13 +294,13 @@ script.absoluteNonLinInverse = function (value, low, mid, high, min, max) { Input: Current value of the hardware control, min and max values for that control Output: none -------- ------------------------------------------------------ */ -script.crossfaderCurve = function (value, min, max) { - if (engine.getValue("[Mixer Profile]", "xFaderMode")==1) { +script.crossfaderCurve = function(value, min, max) { + if (engine.getValue("[Mixer Profile]", "xFaderMode") == 1) { // Constant Power - engine.setValue("[Mixer Profile]", "xFaderCalibration", script.absoluteLin(value, 0.5, 0.962, min, max)); + engine.setValue("[Mixer Profile]", "xFaderCalibration", script.absoluteLin(value, 0.5, 0.962, min, max)) } else { // Additive - engine.setValue("[Mixer Profile]", "xFaderCurve", script.absoluteLin(value, 1, 2, min, max)); + engine.setValue("[Mixer Profile]", "xFaderCurve", script.absoluteLin(value, 1, 2, min, max)) } } @@ -312,13 +313,13 @@ script.crossfaderCurve = function (value, min, max) { Input: MixxxControl group, direction to move, number of beats to move Output: none -------- ------------------------------------------------------ */ -script.loopMove = function (group,direction,numberOfBeats) { - if (!numberOfBeats || numberOfBeats==0) numberOfBeats = 0.5; +script.loopMove = function(group, direction, numberOfBeats) { + if (!numberOfBeats || numberOfBeats == 0) numberOfBeats = 0.5 if (direction < 0) { - engine.setValue(group, "loop_move", -numberOfBeats); + engine.setValue(group, "loop_move", -numberOfBeats) } else { - engine.setValue(group, "loop_move", numberOfBeats); + engine.setValue(group, "loop_move", numberOfBeats) } } @@ -332,16 +333,16 @@ script.loopMove = function (group,direction,numberOfBeats) { message was not a Pitch message (0xE#) -------- ------------------------------------------------------ */ // TODO: Is this still useful now that MidiController.cpp properly handles these? -script.midiPitch = function (LSB, MSB, status) { +script.midiPitch = function(LSB, MSB, status) { if ((status & 0xF0) !== 0xE0) { // Mask the upper nybble so we can check the opcode regardless of the channel - print("Script.midiPitch: Error, not a MIDI pitch (0xEn) message: "+status); - return false; + print("Script.midiPitch: Error, not a MIDI pitch (0xEn) message: " + status) + return false } - var value = (MSB << 7) | LSB; // Construct the 14-bit number + var value = (MSB << 7) | LSB // Construct the 14-bit number // Range is 0x0000..0x3FFF center @ 0x2000, i.e. 0..16383 center @ 8192 - var rate = (value-8192)/8191; + var rate = (value - 8192) / 8191 // print("Script.Pitch: MSB="+MSB+", LSB="+LSB+", value="+value+", rate="+rate); - return rate; + return rate } /* -------- ------------------------------------------------------ @@ -355,14 +356,14 @@ script.midiPitch = function (LSB, MSB, status) { script.spinback = function(channel, control, value, status, group, factor, rate) { // if brake is called without defined factor and rate, reset to defaults if (factor === undefined) { - factor = 1; + factor = 1 } // if brake is called without defined rate, reset to default if (rate === undefined) { - rate = -10; + rate = -10 } // disable on note-off or zero value note/cc - engine.spinback(parseInt(group.substring(8,9)), ((status & 0xF0) !== 0x80 && value > 0), factor, rate); + engine.spinback(parseInt(group.substring(8, 9)), ((status & 0xF0) !== 0x80 && value > 0), factor, rate) } /* -------- ------------------------------------------------------ @@ -376,10 +377,10 @@ script.spinback = function(channel, control, value, status, group, factor, rate) script.brake = function(channel, control, value, status, group, factor) { // if brake is called without factor defined, reset to default if (factor === undefined) { - factor = 1; + factor = 1 } // disable on note-off or zero value note/cc, use default decay rate '1' - engine.brake(parseInt(group.substring(8,9)), ((status & 0xF0) !== 0x80 && value > 0), factor); + engine.brake(parseInt(group.substring(8, 9)), ((status & 0xF0) !== 0x80 && value > 0), factor) } /* -------- ------------------------------------------------------ @@ -394,17 +395,18 @@ script.brake = function(channel, control, value, status, group, factor) { script.softStart = function(channel, control, value, status, group, factor) { // if softStart is called without factor defined, reset to default if (factor === undefined) { - factor = 1; + factor = 1 } // disable on note-off or zero value note/cc, use default increase rate '1' - engine.softStart(parseInt(group.substring(8,9)), ((status & 0xF0) !== 0x80 && value > 0), factor); + engine.softStart(parseInt(group.substring(8, 9)), ((status & 0xF0) !== 0x80 && value > 0), factor) } // bpm - Used for tapping the desired BPM for a deck -bpm = function() {} +bpm = function() { +} -bpm.tapTime = 0.0; -bpm.tap = []; // Tap sample values +bpm.tapTime = 0.0 +bpm.tap = [] // Tap sample values /* -------- ------------------------------------------------------ bpm.tapButton @@ -416,122 +418,122 @@ bpm.tap = []; // Tap sample values Output: - -------- ------------------------------------------------------ */ bpm.tapButton = function(deck) { - var now = new Date()/1000; // Current time in seconds - var tapDelta = now - bpm.tapTime; - bpm.tapTime=now; - if (tapDelta>2.0) { // reset if longer than two seconds between taps - bpm.tap=[]; - return; + var now = new Date() / 1000 // Current time in seconds + var tapDelta = now - bpm.tapTime + bpm.tapTime = now + if (tapDelta > 2.0) { // reset if longer than two seconds between taps + bpm.tap = [] + return } - bpm.tap.push(60/tapDelta); - if (bpm.tap.length>8) bpm.tap.shift(); // Keep the last 8 samples for averaging - var sum = 0; - for (i=0; i 8) bpm.tap.shift() // Keep the last 8 samples for averaging + var sum = 0 + for (i = 0; i < bpm.tap.length; i++) { + sum += bpm.tap[i] } - var average = sum/bpm.tap.length; + var average = sum / bpm.tap.length - var fRateScale = average/engine.getValue("[Channel"+deck+"]","bpm"); + var fRateScale = average / engine.getValue("[Channel" + deck + "]", "bpm") // Adjust the rate: - fRateScale = (fRateScale-1.)/engine.getValue("[Channel"+deck+"]","rateRange"); + fRateScale = (fRateScale - 1.) / engine.getValue("[Channel" + deck + "]", "rateRange") - engine.setValue("[Channel"+deck+"]","rate",fRateScale * engine.getValue("[Channel"+deck+"]","rate_dir")); + engine.setValue("[Channel" + deck + "]", "rate", fRateScale * engine.getValue("[Channel" + deck + "]", "rate_dir")) // print("Script: BPM="+average+" setting to "+fRateScale); } // ----------------- Common regular expressions -------------------------- -script.samplerRegEx = /^\[Sampler(\d+)\]$/ ; -script.channelRegEx = /^\[Channel(\d+)\]$/ ; -script.eqRegEx = /^\[EqualizerRack1_(\[.*\])_Effect1\]$/ ; -script.quickEffectRegEx = /^\[QuickEffectRack1_(\[.*\])\]$/ ; -script.effectUnitRegEx = /^\[EffectRack1_EffectUnit(\d+)\]$/ ; -script.individualEffectRegEx = /^\[EffectRack1_EffectUnit(\d+)_Effect(\d+)\]$/ ; +script.samplerRegEx = /^\[Sampler(\d+)\]$/ +script.channelRegEx = /^\[Channel(\d+)\]$/ +script.eqRegEx = /^\[EqualizerRack1_(\[.*\])_Effect1\]$/ +script.quickEffectRegEx = /^\[QuickEffectRack1_(\[.*\])\]$/ +script.effectUnitRegEx = /^\[EffectRack1_EffectUnit(\d+)\]$/ +script.individualEffectRegEx = /^\[EffectRack1_EffectUnit(\d+)_Effect(\d+)\]$/ // ----------------- Object definitions -------------------------- -ButtonState = {"released":0x00, "pressed":0x7F}; -LedState = {"off": 0x00, "on": 0x7F}; +ButtonState = {"released": 0x00, "pressed": 0x7F} +LedState = {"off": 0x00, "on": 0x7F} //Controller -function Controller () { - this.group = "[Master]"; - this.Controls = []; - this.Buttons = []; -}; +function Controller() { + this.group = "[Master]" + this.Controls = [] + this.Buttons = [] +} Controller.prototype.addButton = function(buttonName, button, eventHandler) { - if(eventHandler) { - var executionEnvironment = this; - handler = function(value) { - button.state = value; - executionEnvironment[eventHandler](value); - } - button.handler = handler; - } - this.Buttons[buttonName] = button; + if (eventHandler) { + var executionEnvironment = this + handler = function(value) { + button.state = value + executionEnvironment[eventHandler](value) + } + button.handler = handler + } + this.Buttons[buttonName] = button } Controller.prototype.setControlValue = function(control, value) { - this.Controls[control].setValue(this.group, value); + this.Controls[control].setValue(this.group, value) } //Button Button = function(controlId) { - this.controlId = controlId; - this.state = ButtonState.released; + this.controlId = controlId + this.state = ButtonState.released } Button.prototype.handleEvent = function(value) { - this.handler(value); -}; + this.handler(value) +} //Control Control = function(mappedFunction, softMode) { - // These defaults are for MIDI controllers - this.minInput = 0; - this.midInput = 0x3F; - this.maxInput = 0x7F; - // ---- - - this.minOutput = -1.0; - this.midOutput = 0.0; - this.maxOutput = 1.0; - this.mappedFunction = mappedFunction; - this.softMode = softMode; - this.maxJump = 10; -} - -Control.prototype.setValue = function(group, inputValue){ - var outputValue = 0; - if(inputValue <= this.midInput){ - outputValue = this.minOutput + ((inputValue - this.minInput) / (this.midInput - this.minInput)) * (this.midOutput - this.minOutput); - } else { - outputValue = this.midOutput + ((inputValue - this.midInput) / (this.maxInput - this.midInput)) * (this.maxOutput - this.midOutput); - } - if(this.softMode){ - var currentValue = engine.getValue(group, this.mappedFunction); - var currentRelative = 0.0; - if(currentValue <= this.midOutput){ - currentRelative = this.minInput + ((currentValue - this.minOutput) / (this.midOutput - this.minOutput)) * (this.midInput - this.minInput); - } else { - currentRelative = this.midInput + ((currentValue - this.midOutput) / (this.maxOutput - this.midOutput)) * (this.maxInput - this.midInput); - } - if(inputValue > currentRelative - this.maxJump && inputValue < currentRelative + this.maxJump) { - engine.setValue(group, this.mappedFunction, outputValue); - } - } else { - engine.setValue(group, this.mappedFunction, outputValue); - } + // These defaults are for MIDI controllers + this.minInput = 0 + this.midInput = 0x3F + this.maxInput = 0x7F + // ---- + + this.minOutput = -1.0 + this.midOutput = 0.0 + this.maxOutput = 1.0 + this.mappedFunction = mappedFunction + this.softMode = softMode + this.maxJump = 10 +} + +Control.prototype.setValue = function(group, inputValue) { + var outputValue = 0 + if (inputValue <= this.midInput) { + outputValue = this.minOutput + ((inputValue - this.minInput) / (this.midInput - this.minInput)) * (this.midOutput - this.minOutput) + } else { + outputValue = this.midOutput + ((inputValue - this.midInput) / (this.maxInput - this.midInput)) * (this.maxOutput - this.midOutput) + } + if (this.softMode) { + var currentValue = engine.getValue(group, this.mappedFunction) + var currentRelative = 0.0 + if (currentValue <= this.midOutput) { + currentRelative = this.minInput + ((currentValue - this.minOutput) / (this.midOutput - this.minOutput)) * (this.midInput - this.minInput) + } else { + currentRelative = this.midInput + ((currentValue - this.midOutput) / (this.maxOutput - this.midOutput)) * (this.maxInput - this.midInput) + } + if (inputValue > currentRelative - this.maxJump && inputValue < currentRelative + this.maxJump) { + engine.setValue(group, this.mappedFunction, outputValue) + } + } else { + engine.setValue(group, this.mappedFunction, outputValue) + } } //Deck -Deck = function (deckNumber, group) { - this.deckNumber = deckNumber; - this.group = group; - this.Buttons = []; +Deck = function(deckNumber, group) { + this.deckNumber = deckNumber + this.group = group + this.Buttons = [] } -Deck.prototype.setControlValue = Controller.prototype.setControlValue; -Deck.prototype.addButton = Controller.prototype.addButton; +Deck.prototype.setControlValue = Controller.prototype.setControlValue +Deck.prototype.addButton = Controller.prototype.addButton // ----------------- END Object definitions ---------------------- -- cgit v1.2.3