import Effect from '../Effect';
import NumberSetting from '../Settings/NumberSetting';

type AmplifierSettings = { gain: NumberSetting };

export default class Amplifier extends Effect<AmplifierSettings> {
  getDefaultSettings() {
    return {
      gain: new NumberSetting(1)
    }
  }

  updateOutputSamples(inputSamples: Float32Array) {
    for (let i = 0; i < this.numberOfChannels; i ++) {
      this.outputSamples[i] = inputSamples[i] * this.settings.gain.value;
    }
  }
}
