BaseAudioContext.idl 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #import <DOM/EventTarget.idl>
  2. #import <DOM/EventHandler.idl>
  3. #import <WebAudio/AudioBuffer.idl>
  4. #import <WebAudio/AudioBufferSourceNode.idl>
  5. #import <WebAudio/AudioDestinationNode.idl>
  6. #import <WebAudio/DynamicsCompressorNode.idl>
  7. #import <WebAudio/GainNode.idl>
  8. #import <WebAudio/OscillatorNode.idl>
  9. // https://www.w3.org/TR/webaudio/#enumdef-audiocontextstate
  10. enum AudioContextState { "suspended", "running", "closed" };
  11. // FIXME: callback DecodeErrorCallback = undefined (DOMException error);
  12. // FIXME: callback DecodeSuccessCallback = undefined (AudioBuffer decodedData);
  13. // https://webaudio.github.io/web-audio-api/#BaseAudioContext
  14. [Exposed=Window]
  15. interface BaseAudioContext : EventTarget {
  16. readonly attribute AudioDestinationNode destination;
  17. readonly attribute float sampleRate;
  18. readonly attribute double currentTime;
  19. [FIXME] readonly attribute AudioListener listener;
  20. readonly attribute AudioContextState state;
  21. // FIXME: [SameObject, SecureContext]
  22. [FIXME] readonly attribute AudioWorklet audioWorklet;
  23. attribute EventHandler onstatechange;
  24. [FIXME] AnalyserNode createAnalyser ();
  25. BiquadFilterNode createBiquadFilter ();
  26. AudioBuffer createBuffer(unsigned long numberOfChannels, unsigned long length, float sampleRate);
  27. AudioBufferSourceNode createBufferSource ();
  28. [FIXME] ChannelMergerNode createChannelMerger (optional unsigned long numberOfInputs = 6);
  29. [FIXME] ChannelSplitterNode createChannelSplitter (optional unsigned long numberOfOutputs = 6);
  30. [FIXME] ConstantSourceNode createConstantSource ();
  31. [FIXME] ConvolverNode createConvolver ();
  32. [FIXME] DelayNode createDelay (optional double maxDelayTime = 1.0);
  33. DynamicsCompressorNode createDynamicsCompressor();
  34. GainNode createGain();
  35. [FIXME] IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback);
  36. OscillatorNode createOscillator();
  37. [FIXME] PannerNode createPanner ();
  38. [FIXME] PeriodicWave createPeriodicWave (sequence<float> real, sequence<float> imag, optional PeriodicWaveConstraints constraints = {});
  39. [FIXME] ScriptProcessorNode createScriptProcessor(optional unsigned long bufferSize = 0, optional unsigned long numberOfInputChannels = 2, optional unsigned long numberOfOutputChannels = 2);
  40. [FIXME] StereoPannerNode createStereoPanner ();
  41. [FIXME] WaveShaperNode createWaveShaper ();
  42. [FIXME] Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, optional DecodeSuccessCallback? successCallback, optional DecodeErrorCallback? errorCallback);
  43. };