diff options
Diffstat (limited to 'testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html')
-rw-r--r-- | testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html b/testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html new file mode 100644 index 000000000..72ed88d3c --- /dev/null +++ b/testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html @@ -0,0 +1,107 @@ +<!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> |