BaseAudioContext.webidl (3511B)
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 4 * You can obtain one at http://mozilla.org/MPL/2.0/. 5 * 6 * The origin of this IDL file is 7 * https://webaudio.github.io/web-audio-api/#idl-def-BaseAudioContext 8 * 9 * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C 10 * liability, trademark and document use rules apply. 11 */ 12 13 callback DecodeSuccessCallback = undefined (AudioBuffer decodedData); 14 callback DecodeErrorCallback = undefined (DOMException error); 15 16 enum AudioContextState { 17 "suspended", 18 "running", 19 "closed" 20 }; 21 22 [Exposed=Window] 23 interface BaseAudioContext : EventTarget { 24 readonly attribute AudioDestinationNode destination; 25 readonly attribute float sampleRate; 26 readonly attribute double currentTime; 27 readonly attribute AudioListener listener; 28 readonly attribute AudioContextState state; 29 [Throws, SameObject, SecureContext] 30 readonly attribute AudioWorklet audioWorklet; 31 32 [NewObject] 33 Promise<undefined> resume(); 34 35 attribute EventHandler onstatechange; 36 37 [NewObject, Throws] 38 AudioBuffer createBuffer (unsigned long numberOfChannels, 39 unsigned long length, 40 float sampleRate); 41 42 [NewObject] 43 Promise<AudioBuffer> decodeAudioData(ArrayBuffer audioData, 44 optional DecodeSuccessCallback successCallback, 45 optional DecodeErrorCallback errorCallback); 46 47 // AudioNode creation 48 [NewObject] 49 AudioBufferSourceNode createBufferSource(); 50 51 [NewObject] 52 ConstantSourceNode createConstantSource(); 53 54 [NewObject, Throws] 55 ScriptProcessorNode createScriptProcessor(optional unsigned long bufferSize = 0, 56 optional unsigned long numberOfInputChannels = 2, 57 optional unsigned long numberOfOutputChannels = 2); 58 59 [NewObject, Throws] 60 AnalyserNode createAnalyser(); 61 62 [NewObject, Throws] 63 GainNode createGain(); 64 65 [NewObject, Throws] 66 DelayNode createDelay(optional double maxDelayTime = 1); // TODO: no = 1 67 68 [NewObject, Throws] 69 BiquadFilterNode createBiquadFilter(); 70 71 [NewObject, Throws] 72 IIRFilterNode createIIRFilter(sequence<double> feedforward, sequence<double> feedback); 73 74 [NewObject, Throws] 75 WaveShaperNode createWaveShaper(); 76 77 [NewObject, Throws] 78 PannerNode createPanner(); 79 80 [NewObject, Throws] 81 StereoPannerNode createStereoPanner(); 82 83 [NewObject, Throws] 84 ConvolverNode createConvolver(); 85 86 [NewObject, Throws] 87 ChannelSplitterNode createChannelSplitter(optional unsigned long numberOfOutputs = 6); 88 89 [NewObject, Throws] 90 ChannelMergerNode createChannelMerger(optional unsigned long numberOfInputs = 6); 91 92 [NewObject, Throws] 93 DynamicsCompressorNode createDynamicsCompressor(); 94 95 [NewObject, Throws] 96 OscillatorNode createOscillator(); 97 98 [NewObject, Throws] 99 PeriodicWave createPeriodicWave(sequence<float> real, 100 sequence<float> imag, 101 optional PeriodicWaveConstraints constraints = {}); 102 };