| <!DOCTYPE html> |
| <html class="a"> |
| <head> |
| <title>AudioBuffer IDL Test</title> |
| <script src="/resources/testharness.js"></script><script src="/resources/testharnessreport.js"></script><script src="/resources/idlharness.js"></script><script src="/resources/WebIDLParser.js"></script><script src="/webaudio/js/lodash.js"></script><script src="/webaudio/js/vendor-prefixes.js"></script><script src="/webaudio/js/helpers.js"></script><style type="text/css"> |
| #event-target-idl, |
| #audio-context-idl |
| { visibility:hidden; height: 0px;} |
| </style> |
| </head> |
| <body class="a"> |
| |
| <pre id="event-target-idl">interface EventTarget { |
| void addEventListener(DOMString type, EventListener? callback, optional boolean capture = false); |
| void removeEventListener(DOMString type, EventListener? callback, optional boolean capture = false); |
| boolean dispatchEvent(Event event); |
| }; |
| |
| /* |
| callback interface EventListener { |
| void handleEvent(Event event); |
| }; |
| */ |
| // Callback interfaces are not supported yet, but that's ok |
| interface EventListener {}; |
| </pre> |
| |
| <pre id="audio-context-idl">callback DecodeSuccessCallback = void (AudioBuffer decodedData); |
| callback DecodeErrorCallback = void (); |
| |
| [Constructor] |
| interface AudioContext : EventTarget { |
| |
| readonly attribute AudioDestinationNode destination; |
| readonly attribute float sampleRate; |
| readonly attribute double currentTime; |
| readonly attribute AudioListener listener; |
| |
| AudioBuffer createBuffer(unsigned long numberOfChannels, unsigned long length, float sampleRate); |
| |
| void decodeAudioData(ArrayBuffer audioData, |
| DecodeSuccessCallback successCallback, |
| optional DecodeErrorCallback errorCallback); |
| |
| |
| // AudioNode creation |
| AudioBufferSourceNode createBufferSource(); |
| |
| MediaElementAudioSourceNode createMediaElementSource(HTMLMediaElement mediaElement); |
| |
| MediaStreamAudioSourceNode createMediaStreamSource(MediaStream mediaStream); |
| MediaStreamAudioDestinationNode createMediaStreamDestination(); |
| |
| 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.0); |
| BiquadFilterNode createBiquadFilter(); |
| WaveShaperNode createWaveShaper(); |
| PannerNode createPanner(); |
| ConvolverNode createConvolver(); |
| |
| ChannelSplitterNode createChannelSplitter(optional unsigned long numberOfOutputs = 6); |
| ChannelMergerNode createChannelMerger(optional unsigned long numberOfInputs = 6); |
| |
| DynamicsCompressorNode createDynamicsCompressor(); |
| |
| OscillatorNode createOscillator(); |
| PeriodicWave createPeriodicWave(Float32Array real, Float32Array imag); |
| |
| };</pre> |
| |
| <pre id="audio-buffer-idl">interface AudioBuffer { |
| |
| readonly attribute float sampleRate; |
| readonly attribute long length; |
| |
| // in seconds |
| readonly attribute double duration; |
| |
| readonly attribute long numberOfChannels; |
| |
| Float32Array getChannelData(unsigned long channel); |
| |
| };</pre> |
| |
| <div id="log"></div> |
| |
| <script> |
| (function() { |
| var idl_array = new IdlArray(); |
| idl_array.add_untested_idls(document.getElementById("event-target-idl").textContent); |
| idl_array.add_untested_idls(document.getElementById("audio-context-idl").textContent); |
| idl_array.add_idls(document.getElementById("audio-buffer-idl").textContent); |
| |
| // For these tests the value of the arguments is unimportant. |
| audio_buffer = (new AudioContext).createBuffer(numberOfChannels = 1, length = 256, sampleRate = 44100); |
| |
| idl_array.add_objects({AudioBuffer: ["audio_buffer"]}); |
| idl_array.test(); |
| })(); |
| </script> |
| </body> |
| </html> |