// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[
    ImplementedAs=DOMWindowWebAudio,
] partial interface Window {
    [MeasureAs=AudioContext] attribute AudioContextConstructor AudioContext;
    [MeasureAs=OfflineAudioContext] attribute OfflineAudioContextConstructor OfflineAudioContext;
    [DeprecateAs=PrefixedAudioContext] attribute AudioContextConstructor webkitAudioContext;
    [DeprecateAs=PrefixedOfflineAudioContext] attribute OfflineAudioContextConstructor webkitOfflineAudioContext;

    // The individual constructible AudioNodes.
    [MeasureAs=WebAudioAnalyserNode] attribute AnalyserNodeConstructor AnalyserNode;
    [MeasureAs=WebAudioAudioBuffer] attribute AudioBufferConstructor AudioBuffer;
    [MeasureAs=WebAudioAudioBufferSourceNode] attribute AudioBufferSourceNodeConstructor AudioBufferSourceNode;
    [MeasureAs=WebAudioBiquadFilterNode] attribute BiquadFilterNodeConstructor BiquadFilterNode;
    [MeasureAs=WebAudioChannelMergerNode] attribute ChannelMergerNodeConstructor ChannelMergerNode;
    [MeasureAs=WebAudioChannelSplitterNode] attribute ChannelSplitterNodeConstructor ChannelSplitterNode;
    [MeasureAs=WebAudioConstantSourceNode] attribute ConstantSourceNodeConstructor ConstantSourceNode;
    [MeasureAs=WebAudioConvolverNode] attribute ConvolverNodeConstructor ConvolverNode;
    [MeasureAs=WebAudioDelayNode] attribute DelayNodeConstructor DelayNode;
    [MeasureAs=WebAudioDynamicsCompressorNode] attribute DynamicsCompressorNodeConstructor DynamicsCompressorNode;
    [MeasureAs=WebAudioGainNode] attribute GainNodeConstructor GainNode;
    [MeasureAs=WebAudioIIRFilterNode] attribute IIRFilterNodeConstructor IIRFilterNode;
    [MeasureAs=WebAudioMediaElementAudioSourceNode] attribute MediaElementAudioSourceNodeConstructor MediaElementAudioSourceNode;
    [MeasureAs=WebAudioOscillatorNode] attribute OscillatorNodeConstructor OscillatorNode;
    [MeasureAs=WebAudioPannerNode] attribute PannerNodeConstructor PannerNode;
    [MeasureAs=WebAudioPeriodicWave] attribute PeriodicWaveConstructor PeriodicWave;
    [MeasureAs=WebAudioStereoPannerNode] attribute StereoPannerNodeConstructor StereoPannerNode;
    [MeasureAs=WebAudioWaveShaperNode] attribute WaveShaperNodeConstructor WaveShaperNode;
};
