2020-01-05 23:34:22 +00:00
|
|
|
import { optionsFromArguments } from "../core/util/Defaults";
|
2019-07-11 21:13:58 +00:00
|
|
|
import { InputNode, ToneAudioNode, ToneAudioNodeOptions } from "../core/context/ToneAudioNode";
|
2019-07-17 17:46:48 +00:00
|
|
|
import { connectSignal } from "./Signal";
|
2019-11-14 00:34:55 +00:00
|
|
|
|
|
|
|
export type SignalOperatorOptions = ToneAudioNodeOptions;
|
|
|
|
|
2019-07-11 21:13:58 +00:00
|
|
|
/**
|
|
|
|
* A signal operator has an input and output and modifies the signal.
|
|
|
|
*/
|
2019-11-14 00:34:55 +00:00
|
|
|
export abstract class SignalOperator<Options extends SignalOperatorOptions> extends ToneAudioNode<Options> {
|
2019-07-11 21:13:58 +00:00
|
|
|
|
|
|
|
constructor(options?: Partial<Options>);
|
|
|
|
constructor() {
|
|
|
|
super(Object.assign(optionsFromArguments(SignalOperator.getDefaults(), arguments, ["context"])));
|
|
|
|
}
|
|
|
|
|
2019-11-17 18:09:19 +00:00
|
|
|
connect(destination: InputNode, outputNum = 0, inputNum = 0): this {
|
2019-07-17 17:46:48 +00:00
|
|
|
connectSignal(this, destination, outputNum, inputNum);
|
2019-07-11 21:13:58 +00:00
|
|
|
return this;
|
|
|
|
}
|
|
|
|
}
|