rust_audio_api/nodes/
mod.rs1use crate::types::AudioUnit;
2
3pub mod convolver;
4pub mod delay;
5pub mod file;
6pub mod filter;
7pub mod gain;
8pub mod microphone;
9pub mod mixer;
10pub mod oscillator;
11pub mod resampler;
12
13pub use convolver::{ConvolverConfig, ConvolverNode};
14pub use delay::DelayNode;
15pub use file::FileNode;
16pub use filter::{FilterNode, FilterType};
17pub use gain::GainNode;
18pub use microphone::MicrophoneNode;
19pub use mixer::MixerNode;
20pub use oscillator::OscillatorNode;
21
22pub enum NodeType {
26 Gain(GainNode),
28 Oscillator(OscillatorNode),
30 Microphone(MicrophoneNode),
32 File(FileNode),
34 Mixer(MixerNode),
36 Delay(DelayNode),
38 Convolver(ConvolverNode),
40 Filter(FilterNode),
42}
43
44impl NodeType {
45 #[inline(always)]
49 pub fn process(&mut self, input: Option<&AudioUnit>, output: &mut AudioUnit) {
50 match self {
51 NodeType::Gain(node) => node.process(input, output),
52 NodeType::Oscillator(node) => node.process(input, output),
53 NodeType::Microphone(node) => node.process(input, output),
54 NodeType::File(node) => node.process(input, output),
55 NodeType::Mixer(node) => node.process(input, output),
56 NodeType::Delay(node) => node.process(input, output),
57 NodeType::Convolver(node) => node.process(input, output),
58 NodeType::Filter(node) => node.process(input, output),
59 }
60 }
61}