INNER CODE UNIT · Rust
get_worker_fn
Rikorose/DeepFilterNet · ladspa/src/lib.rs:106
fn get_worker_fn(
inqueue: SampleQueue,
outqueue: SampleQueue,
controls: ControlRecv,
sleep_duration: Duration,
id: String,
) -> impl FnMut() {
move || {
let mut df = unsafe { MODEL.clone().unwrap() };
let mut inframe = Array2::zeros((df.ch, df.hop_size));
let mut outframe = Array2::zeros((df.ch, df.hop_size));
let t_audio_ms = df.hop_size as f32 / df.sr as f32 * 1000.;
loop {
if let Ok((c, v)) = controls.try_recv() {
log::info!("DF {} | Setting '{}' to {:.1}", id, c, v);
match c {
DfControl::AttenLim => df.set_atten_lim(v),
DfControl::PfBeta => df.set_pf_beta(v),