72 lines
2.8 KiB
JavaScript
72 lines
2.8 KiB
JavaScript
// META: script=/resources/WebIDLParser.js
|
|
// META: script=/resources/idlharness.js
|
|
// META: timeout=long
|
|
|
|
// https://webaudio.github.io/web-audio-api/
|
|
|
|
'use strict';
|
|
|
|
idl_test(
|
|
['webaudio'],
|
|
['cssom', 'uievents', 'mediacapture-streams', 'html', 'dom'],
|
|
async idl_array => {
|
|
idl_array.add_untested_idls('interface SVGElement {};');
|
|
|
|
idl_array.add_objects({
|
|
BaseAudioContext: [],
|
|
AudioContext: ['context'],
|
|
OfflineAudioContext: ['new OfflineAudioContext(1, 1, sample_rate)'],
|
|
OfflineAudioCompletionEvent: [
|
|
'new OfflineAudioCompletionEvent("", {renderedBuffer: buffer})'
|
|
],
|
|
AudioBuffer: ['buffer'],
|
|
AudioNode: [],
|
|
AudioParam: ['new AudioBufferSourceNode(context).playbackRate'],
|
|
AudioScheduledSourceNode: [],
|
|
AnalyserNode: ['new AnalyserNode(context)'],
|
|
AudioBufferSourceNode: ['new AudioBufferSourceNode(context)'],
|
|
AudioDestinationNode: ['context.destination'],
|
|
AudioListener: ['context.listener'],
|
|
AudioProcessingEvent: [`new AudioProcessingEvent('', {
|
|
playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer
|
|
})`],
|
|
BiquadFilterNode: ['new BiquadFilterNode(context)'],
|
|
ChannelMergerNode: ['new ChannelMergerNode(context)'],
|
|
ChannelSplitterNode: ['new ChannelSplitterNode(context)'],
|
|
ConstantSourceNode: ['new ConstantSourceNode(context)'],
|
|
ConvolverNode: ['new ConvolverNode(context)'],
|
|
DelayNode: ['new DelayNode(context)'],
|
|
DynamicsCompressorNode: ['new DynamicsCompressorNode(context)'],
|
|
GainNode: ['new GainNode(context)'],
|
|
IIRFilterNode: [
|
|
'new IIRFilterNode(context, {feedforward: [1], feedback: [1]})'
|
|
],
|
|
MediaElementAudioSourceNode: [
|
|
'new MediaElementAudioSourceNode(context, {mediaElement: new Audio})'
|
|
],
|
|
MediaStreamAudioDestinationNode: [
|
|
'new MediaStreamAudioDestinationNode(context)'
|
|
],
|
|
MediaStreamAudioSourceNode: [],
|
|
MediaStreamTrackAudioSourceNode: [],
|
|
OscillatorNode: ['new OscillatorNode(context)'],
|
|
PannerNode: ['new PannerNode(context)'],
|
|
PeriodicWave: ['new PeriodicWave(context)'],
|
|
ScriptProcessorNode: ['context.createScriptProcessor()'],
|
|
StereoPannerNode: ['new StereoPannerNode(context)'],
|
|
WaveShaperNode: ['new WaveShaperNode(context)'],
|
|
AudioWorklet: ['context.audioWorklet'],
|
|
AudioWorkletGlobalScope: [],
|
|
AudioParamMap: ['worklet_node.parameters'],
|
|
AudioWorkletNode: ['worklet_node'],
|
|
AudioWorkletProcessor: [],
|
|
});
|
|
|
|
self.sample_rate = 44100;
|
|
self.context = new AudioContext;
|
|
self.buffer = new AudioBuffer({length: 1, sampleRate: sample_rate});
|
|
await context.audioWorklet.addModule(
|
|
'the-audio-api/the-audioworklet-interface/processors/dummy-processor.js');
|
|
self.worklet_node = new AudioWorkletNode(context, 'dummy');
|
|
}
|
|
);
|