Tone.js/Tone/signal/SignalBase.js
Yotam Mann f0bcd68812 renamed Tone.Signal.Units to Tone.Type
also renamed Tone.Source.State to Tone.State
2015-05-23 18:57:05 -04:00

46 lines
No EOL
1.2 KiB
JavaScript

define(["Tone/core/Tone"], function(Tone){
"use strict";
/**
* @class Base class for all Signals
*
* @constructor
* @extends {Tone}
*/
Tone.SignalBase = function(){
};
Tone.extend(Tone.SignalBase);
/**
* When signals connect to other signals or AudioParams,
* they take over the output value of that signal or AudioParam.
* For all other nodes, the behavior is the same as a normal `connect`.
*
* @override
* @param {AudioParam|AudioNode|Tone.Signal|Tone} node
* @param {number} [outputNumber=0]
* @param {number} [inputNumber=0]
* @returns {Tone.SignalBase} `this`
*/
Tone.SignalBase.prototype.connect = function(node, outputNumber, inputNumber){
//zero it out so that the signal can have full control
if (node.constructor === Tone.Signal){
//cancel changes
node._value.cancelScheduledValues(0);
//reset the value
node._value.value = 0;
//mark the value as overridden
node.overridden = true;
} else if (node instanceof AudioParam){
node.cancelScheduledValues(0);
node.value = 0;
}
Tone.prototype.connect.call(this, node, outputNumber, inputNumber);
return this;
};
return Tone.SignalBase;
});