| <!DOCTYPE html> | |
| <html class="a"> | |
| <head> | |
| <title>AudioDestinationNode 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, | |
| #audio-node-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-node-idl">enum ChannelCountMode { | |
| "max", | |
| "clamped-max", | |
| "explicit" | |
| }; | |
| enum ChannelInterpretation { | |
| "speakers", | |
| "discrete" | |
| }; | |
| interface AudioNode : EventTarget { | |
| void connect(AudioNode destination, optional unsigned long output = 0, optional unsigned long input = 0); | |
| void connect(AudioParam destination, optional unsigned long output = 0); | |
| void disconnect(optional unsigned long output = 0); | |
| readonly attribute AudioContext context; | |
| readonly attribute unsigned long numberOfInputs; | |
| readonly attribute unsigned long numberOfOutputs; | |
| // Channel up-mixing and down-mixing rules for all inputs. | |
| attribute unsigned long channelCount; | |
| attribute ChannelCountMode channelCountMode; | |
| attribute ChannelInterpretation channelInterpretation; | |
| };</pre> | |
| <pre id="audio-destination-node-idl">interface AudioDestinationNode : AudioNode { | |
| readonly attribute unsigned long maxChannelCount; | |
| };</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_untested_idls(document.getElementById("audio-node-idl").textContent); | |
| idl_array.add_idls(document.getElementById("audio-destination-node-idl").textContent); | |
| audio_destination_node = (new AudioContext).destination; | |
| idl_array.add_objects({AudioDestinationNode: ["audio_destination_node"]}); | |
| idl_array.test(); | |
| })(); | |
| </script> | |
| </body> | |
| </html> |