#[rustfmt::skip]
use euphony_node::{BoxProcessor, Error, ParameterValue as Value};
#[rustfmt::skip]
#[inline]
pub fn load(processor: u64) -> Option<BoxProcessor> {
match processor {
1 => Some(crate::unary::Abs::spawn()),
2 => Some(crate::unary::Acos::spawn()),
3 => Some(crate::unary::Acosh::spawn()),
4 => Some(crate::unary::Asin::spawn()),
5 => Some(crate::unary::Asinh::spawn()),
6 => Some(crate::unary::Atan::spawn()),
7 => Some(crate::unary::Atanh::spawn()),
8 => Some(crate::unary::Cbrt::spawn()),
9 => Some(crate::unary::Ceil::spawn()),
10 => Some(crate::unary::Cos::spawn()),
11 => Some(crate::unary::Cosh::spawn()),
12 => Some(crate::unary::Exp::spawn()),
13 => Some(crate::unary::Exp2::spawn()),
14 => Some(crate::unary::ExpM1::spawn()),
15 => Some(crate::unary::Floor::spawn()),
16 => Some(crate::unary::Fract::spawn()),
17 => Some(crate::unary::Ln::spawn()),
18 => Some(crate::unary::Ln1p::spawn()),
19 => Some(crate::unary::Log10::spawn()),
20 => Some(crate::unary::Log2::spawn()),
21 => Some(crate::unary::Norm::spawn()),
22 => Some(crate::unary::Recip::spawn()),
23 => Some(crate::unary::Round::spawn()),
24 => Some(crate::unary::Signum::spawn()),
25 => Some(crate::unary::Sin::spawn()),
26 => Some(crate::unary::Sinh::spawn()),
27 => Some(crate::unary::Sqrt::spawn()),
28 => Some(crate::unary::Tan::spawn()),
29 => Some(crate::unary::Tanh::spawn()),
30 => Some(crate::unary::ToDegrees::spawn()),
31 => Some(crate::unary::ToRadians::spawn()),
32 => Some(crate::unary::Trunc::spawn()),
33 => Some(crate::unary::Neg::spawn()),
34 => Some(crate::unary::Pass::spawn()),
50 => Some(crate::binary::Add::spawn()),
51 => Some(crate::binary::Atan2::spawn()),
52 => Some(crate::binary::Copysign::spawn()),
53 => Some(crate::binary::Div::spawn()),
54 => Some(crate::binary::DivEuclid::spawn()),
55 => Some(crate::binary::Hypot::spawn()),
56 => Some(crate::binary::Log::spawn()),
57 => Some(crate::binary::Max::spawn()),
58 => Some(crate::binary::Min::spawn()),
59 => Some(crate::binary::Mul::spawn()),
60 => Some(crate::binary::Powf::spawn()),
61 => Some(crate::binary::Powi::spawn()),
62 => Some(crate::binary::Rem::spawn()),
63 => Some(crate::binary::RemEuclid::spawn()),
64 => Some(crate::binary::Sub::spawn()),
75 => Some(crate::tertiary::AddMul::spawn()),
76 => Some(crate::tertiary::Clamp::spawn()),
77 => Some(crate::tertiary::MulAdd::spawn()),
78 => Some(crate::tertiary::Select::spawn()),
100 => Some(crate::osc::Sine::spawn()),
101 => Some(crate::osc::SineFast::spawn()),
102 => Some(crate::osc::SineFaster::spawn()),
103 => Some(crate::osc::Pulse::spawn()),
104 => Some(crate::osc::Sawtooth::spawn()),
105 => Some(crate::osc::Triangle::spawn()),
106 => Some(crate::osc::Silence::spawn()),
107 => Some(crate::osc::Phase::spawn()),
108 => Some(crate::osc::nes::Pulse::spawn()),
109 => Some(crate::osc::nes::Triangle::spawn()),
110 => Some(crate::osc::noise::White::spawn()),
111 => Some(crate::osc::noise::Mls::spawn()),
112 => Some(crate::osc::noise::Pink::spawn()),
113 => Some(crate::osc::noise::Brown::spawn()),
114 => Some(crate::osc::wave::Wave::spawn()),
115 => Some(crate::osc::wave::Morph::spawn()),
200 => Some(crate::env::Linear::spawn()),
300 => Some(crate::filter::Butterpass::spawn()),
301 => Some(crate::filter::Lowpole::spawn()),
302 => Some(crate::filter::Allpole::spawn()),
303 => Some(crate::filter::Highpole::spawn()),
304 => Some(crate::filter::Resonator::spawn()),
305 => Some(crate::filter::Moog::spawn()),
306 => Some(crate::filter::Morph::spawn()),
307 => Some(crate::filter::Pinkpass::spawn()),
308 => Some(crate::filter::Lowpass::spawn()),
309 => Some(crate::filter::Highpass::spawn()),
310 => Some(crate::filter::Bandpass::spawn()),
311 => Some(crate::filter::Notch::spawn()),
312 => Some(crate::filter::Peak::spawn()),
313 => Some(crate::filter::Allpass::spawn()),
314 => Some(crate::filter::Bell::spawn()),
315 => Some(crate::filter::Lowshelf::spawn()),
316 => Some(crate::filter::Highshelf::spawn()),
317 => Some(crate::osc::wave::Shaper::spawn()),
500 => Some(crate::buffer::Play::spawn()),
_ => None,
}
}
#[rustfmt::skip]
#[inline]
pub fn name(processor: u64) -> Option<&'static str> {
match processor {
1 => Some("Abs"),
2 => Some("Acos"),
3 => Some("Acosh"),
4 => Some("Asin"),
5 => Some("Asinh"),
6 => Some("Atan"),
7 => Some("Atanh"),
8 => Some("Cbrt"),
9 => Some("Ceil"),
10 => Some("Cos"),
11 => Some("Cosh"),
12 => Some("Exp"),
13 => Some("Exp2"),
14 => Some("ExpM1"),
15 => Some("Floor"),
16 => Some("Fract"),
17 => Some("Ln"),
18 => Some("Ln1p"),
19 => Some("Log10"),
20 => Some("Log2"),
21 => Some("Norm"),
22 => Some("Recip"),
23 => Some("Round"),
24 => Some("Signum"),
25 => Some("Sin"),
26 => Some("Sinh"),
27 => Some("Sqrt"),
28 => Some("Tan"),
29 => Some("Tanh"),
30 => Some("ToDegrees"),
31 => Some("ToRadians"),
32 => Some("Trunc"),
33 => Some("Neg"),
34 => Some("Pass"),
50 => Some("Add"),
51 => Some("Atan2"),
52 => Some("Copysign"),
53 => Some("Div"),
54 => Some("DivEuclid"),
55 => Some("Hypot"),
56 => Some("Log"),
57 => Some("Max"),
58 => Some("Min"),
59 => Some("Mul"),
60 => Some("Powf"),
61 => Some("Powi"),
62 => Some("Rem"),
63 => Some("RemEuclid"),
64 => Some("Sub"),
75 => Some("AddMul"),
76 => Some("Clamp"),
77 => Some("MulAdd"),
78 => Some("Select"),
100 => Some("Sine"),
101 => Some("SineFast"),
102 => Some("SineFaster"),
103 => Some("Pulse"),
104 => Some("Sawtooth"),
105 => Some("Triangle"),
106 => Some("Silence"),
107 => Some("Phase"),
108 => Some("Pulse"),
109 => Some("Triangle"),
110 => Some("White"),
111 => Some("Mls"),
112 => Some("Pink"),
113 => Some("Brown"),
114 => Some("Wave"),
115 => Some("Morph"),
200 => Some("Linear"),
300 => Some("Butterpass"),
301 => Some("Lowpole"),
302 => Some("Allpole"),
303 => Some("Highpole"),
304 => Some("Resonator"),
305 => Some("Moog"),
306 => Some("Morph"),
307 => Some("Pinkpass"),
308 => Some("Lowpass"),
309 => Some("Highpass"),
310 => Some("Bandpass"),
311 => Some("Notch"),
312 => Some("Peak"),
313 => Some("Allpass"),
314 => Some("Bell"),
315 => Some("Lowshelf"),
316 => Some("Highshelf"),
317 => Some("Shaper"),
500 => Some("Play"),
_ => None,
}
}
#[rustfmt::skip]
#[inline]
pub fn validate_parameter(processor: u64, parameter: u64, value: Value) -> Result<(), Error> {
match processor {
1 => crate::unary::Abs::validate_parameter(parameter, value),
2 => crate::unary::Acos::validate_parameter(parameter, value),
3 => crate::unary::Acosh::validate_parameter(parameter, value),
4 => crate::unary::Asin::validate_parameter(parameter, value),
5 => crate::unary::Asinh::validate_parameter(parameter, value),
6 => crate::unary::Atan::validate_parameter(parameter, value),
7 => crate::unary::Atanh::validate_parameter(parameter, value),
8 => crate::unary::Cbrt::validate_parameter(parameter, value),
9 => crate::unary::Ceil::validate_parameter(parameter, value),
10 => crate::unary::Cos::validate_parameter(parameter, value),
11 => crate::unary::Cosh::validate_parameter(parameter, value),
12 => crate::unary::Exp::validate_parameter(parameter, value),
13 => crate::unary::Exp2::validate_parameter(parameter, value),
14 => crate::unary::ExpM1::validate_parameter(parameter, value),
15 => crate::unary::Floor::validate_parameter(parameter, value),
16 => crate::unary::Fract::validate_parameter(parameter, value),
17 => crate::unary::Ln::validate_parameter(parameter, value),
18 => crate::unary::Ln1p::validate_parameter(parameter, value),
19 => crate::unary::Log10::validate_parameter(parameter, value),
20 => crate::unary::Log2::validate_parameter(parameter, value),
21 => crate::unary::Norm::validate_parameter(parameter, value),
22 => crate::unary::Recip::validate_parameter(parameter, value),
23 => crate::unary::Round::validate_parameter(parameter, value),
24 => crate::unary::Signum::validate_parameter(parameter, value),
25 => crate::unary::Sin::validate_parameter(parameter, value),
26 => crate::unary::Sinh::validate_parameter(parameter, value),
27 => crate::unary::Sqrt::validate_parameter(parameter, value),
28 => crate::unary::Tan::validate_parameter(parameter, value),
29 => crate::unary::Tanh::validate_parameter(parameter, value),
30 => crate::unary::ToDegrees::validate_parameter(parameter, value),
31 => crate::unary::ToRadians::validate_parameter(parameter, value),
32 => crate::unary::Trunc::validate_parameter(parameter, value),
33 => crate::unary::Neg::validate_parameter(parameter, value),
34 => crate::unary::Pass::validate_parameter(parameter, value),
50 => crate::binary::Add::validate_parameter(parameter, value),
51 => crate::binary::Atan2::validate_parameter(parameter, value),
52 => crate::binary::Copysign::validate_parameter(parameter, value),
53 => crate::binary::Div::validate_parameter(parameter, value),
54 => crate::binary::DivEuclid::validate_parameter(parameter, value),
55 => crate::binary::Hypot::validate_parameter(parameter, value),
56 => crate::binary::Log::validate_parameter(parameter, value),
57 => crate::binary::Max::validate_parameter(parameter, value),
58 => crate::binary::Min::validate_parameter(parameter, value),
59 => crate::binary::Mul::validate_parameter(parameter, value),
60 => crate::binary::Powf::validate_parameter(parameter, value),
61 => crate::binary::Powi::validate_parameter(parameter, value),
62 => crate::binary::Rem::validate_parameter(parameter, value),
63 => crate::binary::RemEuclid::validate_parameter(parameter, value),
64 => crate::binary::Sub::validate_parameter(parameter, value),
75 => crate::tertiary::AddMul::validate_parameter(parameter, value),
76 => crate::tertiary::Clamp::validate_parameter(parameter, value),
77 => crate::tertiary::MulAdd::validate_parameter(parameter, value),
78 => crate::tertiary::Select::validate_parameter(parameter, value),
100 => crate::osc::Sine::validate_parameter(parameter, value),
101 => crate::osc::SineFast::validate_parameter(parameter, value),
102 => crate::osc::SineFaster::validate_parameter(parameter, value),
103 => crate::osc::Pulse::validate_parameter(parameter, value),
104 => crate::osc::Sawtooth::validate_parameter(parameter, value),
105 => crate::osc::Triangle::validate_parameter(parameter, value),
106 => crate::osc::Silence::validate_parameter(parameter, value),
107 => crate::osc::Phase::validate_parameter(parameter, value),
108 => crate::osc::nes::Pulse::validate_parameter(parameter, value),
109 => crate::osc::nes::Triangle::validate_parameter(parameter, value),
110 => crate::osc::noise::White::validate_parameter(parameter, value),
111 => crate::osc::noise::Mls::validate_parameter(parameter, value),
112 => crate::osc::noise::Pink::validate_parameter(parameter, value),
113 => crate::osc::noise::Brown::validate_parameter(parameter, value),
114 => crate::osc::wave::Wave::validate_parameter(parameter, value),
115 => crate::osc::wave::Morph::validate_parameter(parameter, value),
200 => crate::env::Linear::validate_parameter(parameter, value),
300 => crate::filter::Butterpass::validate_parameter(parameter, value),
301 => crate::filter::Lowpole::validate_parameter(parameter, value),
302 => crate::filter::Allpole::validate_parameter(parameter, value),
303 => crate::filter::Highpole::validate_parameter(parameter, value),
304 => crate::filter::Resonator::validate_parameter(parameter, value),
305 => crate::filter::Moog::validate_parameter(parameter, value),
306 => crate::filter::Morph::validate_parameter(parameter, value),
307 => crate::filter::Pinkpass::validate_parameter(parameter, value),
308 => crate::filter::Lowpass::validate_parameter(parameter, value),
309 => crate::filter::Highpass::validate_parameter(parameter, value),
310 => crate::filter::Bandpass::validate_parameter(parameter, value),
311 => crate::filter::Notch::validate_parameter(parameter, value),
312 => crate::filter::Peak::validate_parameter(parameter, value),
313 => crate::filter::Allpass::validate_parameter(parameter, value),
314 => crate::filter::Bell::validate_parameter(parameter, value),
315 => crate::filter::Lowshelf::validate_parameter(parameter, value),
316 => crate::filter::Highshelf::validate_parameter(parameter, value),
317 => crate::osc::wave::Shaper::validate_parameter(parameter, value),
500 => crate::buffer::Play::validate_parameter(parameter, value),
_ => unreachable!("processor ({}) param ({}) doesn't exist", processor, parameter)
}
}