aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webidls/BaseAudioContext.webidl
blob: f00ec373667d92b8d774afe55a25cbccd7d81fad (plain) (blame)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*
 * The origin of this IDL file is
 * https://webaudio.github.io/web-audio-api/#BaseAudioContext
 */

enum AudioContextState {
  "suspended",
  "running",
  "closed"
};

callback DecodeErrorCallback = void (DOMException error);
callback DecodeSuccessCallback = void (AudioBuffer decodedData);

[Exposed=Window]
interface BaseAudioContext : EventTarget {
  readonly attribute AudioDestinationNode destination;
  readonly attribute float sampleRate;
  readonly attribute double currentTime;
  readonly attribute AudioListener listener;
  readonly attribute AudioContextState  state;
  Promise<void> resume();
  attribute EventHandler onstatechange;
  [Throws] AudioBuffer createBuffer(unsigned long numberOfChannels,
                                    unsigned long length,
                                    float sampleRate);
  Promise<AudioBuffer> decodeAudioData(ArrayBuffer audioData,
                                       optional DecodeSuccessCallback successCallback,
                                       optional DecodeErrorCallback errorCallback);
  AudioBufferSourceNode createBufferSource();
  // ConstantSourceNode createConstantSource();
  // ScriptProcessorNode createScriptProcessor(optional unsigned long bufferSize = 0,
  //                                           optional unsigned long numberOfInputChannels = 2,
  //                                           optional unsigned long numberOfOutputChannels = 2);
  // AnalyserNode createAnalyser();
  GainNode createGain();
  // DelayNode createDelay(optional double maxDelayTime = 1);
  // BiquadFilterNode createBiquadFilter();
  // IIRFilterNode createIIRFilter(sequence<double> feedforward,
  //                               sequence<double> feedback);
  // WaveShaperNode createWaveShaper();
  [Throws] PannerNode createPanner();
  // StereoPannerNode createStereoPanner();
  // ConvolverNode createConvolver();
  // ChannelSplitterNode createChannelSplitter(optional unsigned long numberOfOutputs = 6);
  // ChannelMergerNode createChannelMerger(optional unsigned long numberOfInputs = 6);
  // DynamicsCompressorNode createDynamicsCompressor();
  OscillatorNode createOscillator();
  // PeriodicWave createPeriodicWave(sequence<float> real,
  //                                 sequence<float> imag,
  //                                 optional PeriodicWaveConstraints constraints);
};