summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webaudio/the-audio-api/the-audioworklet-interface/processors/param-size-processor.js
blob: d7ce83650073043ed338306a9f51b491c0d4ec04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
 * @class ParamSizeProcessor
 * @extends AudioWorkletProcessor
 *
 * This processor is a source node which basically outputs the size of the
 * AudioParam array for each render quantum.
 */

class ParamSizeProcessor extends AudioWorkletProcessor {
  static get parameterDescriptors() {
    return [{name: 'param'}];
  }

  constructor() {
    super();
  }

  process(inputs, outputs, parameters) {
    let output = outputs[0];
    let param = parameters.param;

    for (let channel = 0; channel < output.length; ++channel) {
      output[channel].fill(param.length);
    }

    return true;
  }
}

registerProcessor('param-size', ParamSizeProcessor);