MCPcopy Create free account
hub / github.com/BillyDM/Firewheel / process_block

Method process_block

crates/firewheel-graph/src/processor/process.rs:261–678  ·  view source on GitHub ↗
(
        &mut self,
        block_frames: usize,
        sample_rate: NonZeroU32,
        sample_rate_recip: f64,
        clock_samples: InstantSamples,
        total_cpu_seconds_recip: f64,
        

Source from the content-addressed store, hash-verified

259
260 #[expect(clippy::too_many_arguments, reason = "Function needs many arguments")]
261 fn process_block(
262 &mut self,
263 block_frames: usize,
264 sample_rate: NonZeroU32,
265 sample_rate_recip: f64,
266 clock_samples: InstantSamples,
267 total_cpu_seconds_recip: f64,
268 duration_since_stream_start: Duration,
269 stream_status: StreamStatus,
270 dropped_frames: u32,
271 process_to_playback_delay: Option<Duration>,
272 #[cfg(feature = "musical_transport")] proc_transport_info: &ProcTransportInfo,
273 ) {
274 if self.schedule_data.is_none() {
275 return;
276 }
277 let schedule_data = self.schedule_data.as_mut().unwrap();
278
279 // -- Prepare process info ------------------------------------------------------------
280
281 #[cfg(feature = "musical_transport")]
282 let transport_info = self
283 .proc_transport_state
284 .transport_info(proc_transport_info);
285
286 let mut info = ProcInfo {
287 frames: block_frames,
288 in_silence_mask: SilenceMask::default(),
289 out_silence_mask: SilenceMask::default(),
290 in_constant_mask: ConstantMask::default(),
291 out_constant_mask: ConstantMask::default(),
292 in_connected_mask: ConnectedMask::default(),
293 out_connected_mask: ConnectedMask::default(),
294 sample_rate,
295 sample_rate_recip,
296 clock_samples,
297 total_cpu_seconds_recip,
298 duration_since_stream_start,
299 stream_status,
300 dropped_frames,
301 process_to_playback_delay,
302 did_just_unbypass: false,
303 #[cfg(feature = "scheduled_events")]
304 last_marker_instant: InstantSamples(0),
305 #[cfg(feature = "musical_transport")]
306 transport_info,
307 };
308
309 let force_clear_buffers = self.flags.contains(FirewheelBitFlags::FORCE_CLEAR_BUFFERS);
310
311 // -- Find scheduled events that have elapsed this block ------------------------------
312
313 #[cfg(feature = "scheduled_events")]
314 self.event_scheduler
315 .prepare_process_block(&info, &mut self.nodes);
316
317 // -- Audio graph node processing closure ---------------------------------------------
318

Callers 1

processMethod · 0.45

Calls 15

as_mutMethod · 0.80
transport_infoMethod · 0.80
containsMethod · 0.80
prepare_process_blockMethod · 0.80
begin_node_profilingMethod · 0.80
process_nodeMethod · 0.80
fade_to_0Method · 0.80
fade_to_1Method · 0.80
process_crossfadeMethod · 0.80
all_channels_silentMethod · 0.80
union_withMethod · 0.80

Tested by

no test coverage detected