| 57 | } |
| 58 | |
| 59 | fn construct_processor( |
| 60 | &self, |
| 61 | config: &Self::Configuration, |
| 62 | _cx: ConstructProcessorContext, |
| 63 | ) -> Result<impl AudioNodeProcessor, NodeError> { |
| 64 | let channels = config.channels.get().get() as usize; |
| 65 | let buffer_len = channels * config.delay_frames; |
| 66 | |
| 67 | let mut buffer: Vec<f32> = Vec::new(); |
| 68 | buffer.reserve_exact(buffer_len); |
| 69 | buffer.resize(buffer_len, 0.0); |
| 70 | |
| 71 | Ok(Processor { |
| 72 | buffer, |
| 73 | delay_frames: config.delay_frames, |
| 74 | ptr: 0, |
| 75 | num_silent_frames_per_channel: smallvec![config.delay_frames; channels], |
| 76 | }) |
| 77 | } |
| 78 | } |
| 79 | |
| 80 | struct Processor { |