| 149 | } |
| 150 | |
| 151 | pub fn add_node(&mut self, node_type: NodeType) -> GuiAudioNode { |
| 152 | let id = match node_type { |
| 153 | NodeType::BeepTest => self.cx.add_node(BeepTestNode::default(), None), |
| 154 | NodeType::WhiteNoiseGen => self.cx.add_node(WhiteNoiseGenNode::default(), None), |
| 155 | NodeType::PinkNoiseGen => self.cx.add_node(PinkNoiseGenNode::default(), None), |
| 156 | NodeType::StereoToMono => self.cx.add_node(StereoToMonoNode, None), |
| 157 | NodeType::VolumeMono => self.cx.add_node( |
| 158 | VolumeNode::default(), |
| 159 | Some(VolumeNodeConfig { |
| 160 | channels: NonZeroChannelCount::MONO, |
| 161 | }), |
| 162 | ), |
| 163 | NodeType::VolumeStereo => self.cx.add_node( |
| 164 | VolumeNode::default(), |
| 165 | Some(VolumeNodeConfig { |
| 166 | channels: NonZeroChannelCount::STEREO, |
| 167 | }), |
| 168 | ), |
| 169 | NodeType::VolumePan => self.cx.add_node(VolumePanNode::default(), None), |
| 170 | NodeType::FastLowpass => self.cx.add_node(FastLowpassNode::<2>::default(), None), |
| 171 | NodeType::FastHighpass => self.cx.add_node(FastHighpassNode::<2>::default(), None), |
| 172 | NodeType::FastBandpass => self.cx.add_node(FastBandpassNode::<2>::default(), None), |
| 173 | NodeType::Svf => self.cx.add_node(SvfNode::<2>::default(), None), |
| 174 | NodeType::MixMono => self.cx.add_node( |
| 175 | MixNode::default(), |
| 176 | Some(MixNodeConfig { |
| 177 | channels: NonZeroChannelCount::MONO, |
| 178 | }), |
| 179 | ), |
| 180 | NodeType::MixStereo => self.cx.add_node( |
| 181 | MixNode::default(), |
| 182 | Some(MixNodeConfig { |
| 183 | channels: NonZeroChannelCount::STEREO, |
| 184 | }), |
| 185 | ), |
| 186 | NodeType::Sampler => self.cx.add_node(SamplerNode::default(), None), |
| 187 | NodeType::Freeverb => self.cx.add_node(FreeverbNode::default(), None), |
| 188 | NodeType::ConvolutionMono => self.cx.add_node( |
| 189 | ConvolutionNode::default(), |
| 190 | Some(ConvolutionNodeConfig { |
| 191 | channels: NonZeroChannelCount::MONO, |
| 192 | ..Default::default() |
| 193 | }), |
| 194 | ), |
| 195 | NodeType::ConvolutionStereo => self.cx.add_node(ConvolutionNode::default(), None), |
| 196 | } |
| 197 | .expect("Failed to add node"); |
| 198 | |
| 199 | let node = match node_type { |
| 200 | NodeType::BeepTest => GuiAudioNodeType::BeepTest { |
| 201 | params: Default::default(), |
| 202 | }, |
| 203 | NodeType::WhiteNoiseGen => GuiAudioNodeType::WhiteNoiseGen { |
| 204 | params: Default::default(), |
| 205 | }, |
| 206 | NodeType::PinkNoiseGen => GuiAudioNodeType::PinkNoiseGen { |
| 207 | params: Default::default(), |
| 208 | }, |