| <!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> |