From 63f264ad6f8ac27a5074e0a65696b0f3e976f1ce Mon Sep 17 00:00:00 2001 From: Yotam Mann Date: Wed, 2 Jul 2014 23:37:19 -0400 Subject: [PATCH] compare a signal to a number --- Tone/signal/Equal.js | 58 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Tone/signal/Equal.js diff --git a/Tone/signal/Equal.js b/Tone/signal/Equal.js new file mode 100644 index 00000000..93fd0c5c --- /dev/null +++ b/Tone/signal/Equal.js @@ -0,0 +1,58 @@ +define(["Tone/core/Tone", "Tone/signal/EqualZero", "Tone/signal/Add"], function(Tone){ + + /** + * Output 1 if the signal is equal to the value, otherwise outputs 0 + * + * @constructor + * @extends {Tone} + * @param {number} value the number to compare the incoming signal to + */ + Tone.Equal = function(value){ + + /** + * subtract the value from the incoming signal + * + * @type {Tone.Add} + * @private + */ + this._adder = new Tone.Add(-value); + /** + * @type {Tone.EqualZero} + * @private + */ + this._equals = new Tone.EqualZero(); + + /** + * @type {Tone.Add} + */ + this.input = this._adder; + + /** + * @type {Tone.EqualZero} + */ + this.output = this._equals; + + this._adder.connect(this._equals); + }; + + Tone.extend(Tone.Equal); + + /** + * @param {number} value set the comparison value + */ + Tone.Equal.prototype.setValue = function(value){ + this._adder.setValue(-value); + }; + + /** + * dispose method + */ + Tone.Equal.prototype.dispose = function(){ + this._equals.disconnect(); + this._adder.dispose(); + this._equals = null; + this._adder = null; + }; + + return Tone.Equal; +}); \ No newline at end of file