diff --git a/components/script/dom/baseaudiocontext.rs b/components/script/dom/baseaudiocontext.rs index c6b43fcee8e..9152fad8b3e 100644 --- a/components/script/dom/baseaudiocontext.rs +++ b/components/script/dom/baseaudiocontext.rs @@ -8,6 +8,7 @@ use dom::bindings::codegen::Bindings::AudioNodeBinding::AudioNodeOptions; use dom::bindings::codegen::Bindings::AudioNodeBinding::{ChannelCountMode, ChannelInterpretation}; use dom::bindings::codegen::Bindings::BaseAudioContextBinding::BaseAudioContextMethods; use dom::bindings::codegen::Bindings::BaseAudioContextBinding::AudioContextState; +use dom::bindings::codegen::Bindings::GainNodeBinding::GainOptions; use dom::bindings::codegen::Bindings::OscillatorNodeBinding::OscillatorOptions; use dom::bindings::error::{Error, ErrorResult}; use dom::bindings::inheritance::Castable; @@ -16,6 +17,7 @@ use dom::bindings::refcounted::Trusted; use dom::bindings::reflector::DomObject; use dom::bindings::root::DomRoot; use dom::eventtarget::EventTarget; +use dom::gainnode::GainNode; use dom::globalscope::GlobalScope; use dom::oscillatornode::OscillatorNode; use dom::promise::Promise; @@ -267,6 +269,14 @@ impl BaseAudioContextMethods for BaseAudioContext { let options = unsafe { OscillatorOptions::empty(window.get_cx()) }; OscillatorNode::new(&window, &self, &options) } + + #[allow(unsafe_code)] + fn CreateGain(&self) -> DomRoot { + let global = self.global(); + let window = global.as_window(); + let options = unsafe { GainOptions::empty(window.get_cx()) }; + GainNode::new(&window, &self, &options) + } } impl From for AudioContextState { diff --git a/components/script/dom/webidls/BaseAudioContext.webidl b/components/script/dom/webidls/BaseAudioContext.webidl index 81e0817c8cd..9adb5600fbb 100644 --- a/components/script/dom/webidls/BaseAudioContext.webidl +++ b/components/script/dom/webidls/BaseAudioContext.webidl @@ -36,7 +36,7 @@ interface BaseAudioContext : EventTarget { // optional unsigned long numberOfInputChannels = 2, // optional unsigned long numberOfOutputChannels = 2); // AnalyserNode createAnalyser(); - // GainNode createGain(); + GainNode createGain(); // DelayNode createDelay(optional double maxDelayTime = 1); // BiquadFilterNode createBiquadFilter(); // IIRFilterNode createIIRFilter(sequence feedforward,