OscillatorNode detune param

This commit is contained in:
Fernando Jiménez Moreno 2018-06-29 18:07:23 +02:00
parent 0e92efbb79
commit 93990d437e
2 changed files with 10 additions and 6 deletions

View file

@ -26,14 +26,14 @@ use std::f32;
use std::rc::Rc; use std::rc::Rc;
audio_param_impl!(Frequency, OscillatorNode, OscillatorNodeMessage, SetFrequency); audio_param_impl!(Frequency, OscillatorNode, OscillatorNodeMessage, SetFrequency);
//XXX audio_param_impl!(Detune, OscillatorNode, OscillatorNodeMessage, SetDetune); audio_param_impl!(Detune, OscillatorNode, OscillatorNodeMessage, SetDetune);
#[dom_struct] #[dom_struct]
pub struct OscillatorNode { pub struct OscillatorNode {
node: AudioScheduledSourceNode, node: AudioScheduledSourceNode,
oscillator_type: OscillatorType, oscillator_type: OscillatorType,
frequency: DomRoot<AudioParam>, frequency: DomRoot<AudioParam>,
//XXX detune: DomRoot<AudioParam>, detune: DomRoot<AudioParam>,
} }
impl OscillatorNode { impl OscillatorNode {
@ -60,17 +60,17 @@ impl OscillatorNode {
Box::new(frequency), Box::new(frequency),
AutomationRate::A_rate, AutomationRate::A_rate,
440., f32::MIN, f32::MAX); 440., f32::MIN, f32::MAX);
/*XXX let detune = Detune::new(context.audio_context_impl(), node.node_id()); let detune = Detune::new(context.audio_context_impl(), node.node_id());
let detune = AudioParam::new(window, let detune = AudioParam::new(window,
Box::new(detune), Box::new(detune),
AutomationRate::A_rate, AutomationRate::A_rate,
0., -440. / 2., 440. / 2.);*/ 0., -440. / 2., 440. / 2.);
OscillatorNode { OscillatorNode {
node, node,
oscillator_type: oscillator_options.type_, oscillator_type: oscillator_options.type_,
frequency, frequency,
//XXX detune, detune,
} }
} }
@ -97,6 +97,10 @@ impl OscillatorNodeMethods for OscillatorNode {
fn Frequency(&self) -> DomRoot<AudioParam> { fn Frequency(&self) -> DomRoot<AudioParam> {
DomRoot::from_ref(&self.frequency) DomRoot::from_ref(&self.frequency)
} }
fn Detune(&self) -> DomRoot<AudioParam> {
DomRoot::from_ref(&self.detune)
}
} }
impl<'a> From<&'a OscillatorOptions> for ServoMediaOscillatorOptions { impl<'a> From<&'a OscillatorOptions> for ServoMediaOscillatorOptions {

View file

@ -28,7 +28,7 @@ interface OscillatorNode : AudioScheduledSourceNode {
// attribute OscillatorType type; // attribute OscillatorType type;
readonly attribute AudioParam frequency; readonly attribute AudioParam frequency;
// readonly attribute AudioParam detune; readonly attribute AudioParam detune;
// void setPeriodicWave (PeriodicWave periodicWave); // void setPeriodicWave (PeriodicWave periodicWave);
}; };