mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Use new params impl (#4)
* AudioNodeType -> AudioNodeInit * Use new param type system, clean up
This commit is contained in:
parent
8f9a081ff0
commit
f0d04249f9
9 changed files with 113 additions and 146 deletions
|
@ -628,77 +628,4 @@ macro_rules! handle_potential_webgl_error {
|
|||
($context:expr, $call:expr) => {
|
||||
handle_potential_webgl_error!($context, $call, ());
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! audio_param_impl(
|
||||
($struct:ident, $node_type:ident, $message_type:ident, $setter:ident) => (
|
||||
#[derive(JSTraceable, MallocSizeOf)]
|
||||
struct $struct {
|
||||
#[ignore_malloc_size_of = "Rc"]
|
||||
context: Rc<AudioContext>,
|
||||
#[ignore_malloc_size_of = "servo_media"]
|
||||
node: NodeId,
|
||||
}
|
||||
|
||||
impl $struct {
|
||||
pub fn new(context: Rc<AudioContext>,
|
||||
node: NodeId) -> Self {
|
||||
Self {
|
||||
context,
|
||||
node,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl AudioParamImpl for $struct {
|
||||
fn set_value(&self, value: f32) {
|
||||
self.set_value_at_time(value, self.context.current_time());
|
||||
}
|
||||
|
||||
fn set_value_at_time(&self, value: f32, start_time: f64) {
|
||||
self.context.message_node(
|
||||
self.node,
|
||||
AudioNodeMessage::$node_type($message_type::$setter(
|
||||
UserAutomationEvent::SetValueAtTime(value, start_time),
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
||||
fn ramp_to_value_at_time(&self, ramp_kind: RampKind, value: f32, end_time: f64) {
|
||||
self.context.message_node(
|
||||
self.node,
|
||||
AudioNodeMessage::$node_type($message_type::$setter(
|
||||
UserAutomationEvent::RampToValueAtTime(ramp_kind, value, end_time),
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
||||
fn set_target_at_time(&self, target: f32, start_time: f64, time_constant: f32) {
|
||||
self.context.message_node(
|
||||
self.node,
|
||||
AudioNodeMessage::$node_type($message_type::$setter(
|
||||
UserAutomationEvent::SetTargetAtTime(target, start_time, time_constant.into()),
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
||||
fn cancel_scheduled_values(&self, cancel_time: f64) {
|
||||
self.context.message_node(
|
||||
self.node,
|
||||
AudioNodeMessage::$node_type($message_type::$setter(
|
||||
UserAutomationEvent::CancelScheduledValues(cancel_time),
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
||||
fn cancel_and_hold_at_time(&self, cancel_time: f64) {
|
||||
self.context.message_node(
|
||||
self.node,
|
||||
AudioNodeMessage::$node_type($message_type::$setter(
|
||||
UserAutomationEvent::CancelAndHoldAtTime(cancel_time),
|
||||
)),
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue