Feat: integrating workshop fixes
All checks were successful
Deploy Website / deploy (push) Has been skipped

This commit is contained in:
2026-03-03 19:46:50 +01:00
parent 16d6d76422
commit e8cf8c506b
15 changed files with 119 additions and 8387 deletions

View File

@@ -309,6 +309,7 @@ pub fn build_stream(
audio_sample_pos: Arc<AtomicU64>,
error_tx: Sender<String>,
sample_paths: &[std::path::PathBuf],
device_lost: Arc<AtomicBool>,
) -> Result<BuildStreamResult, String> {
let device = match &config.output_device {
Some(name) => doux::audio::find_output_device(name)
@@ -410,7 +411,13 @@ pub fn build_stream(
drop(b.drain(..excess));
}
},
|err| eprintln!("input stream error: {err}"),
{
let device_lost = Arc::clone(&device_lost);
move |err| {
eprintln!("input stream error: {err}");
device_lost.store(true, Ordering::Release);
}
},
None,
)
.ok()?;
@@ -521,7 +528,10 @@ pub fn build_stream(
let _ = fft_producer.try_push(mono);
}
},
move |err| { let _ = error_tx.try_send(format!("stream error: {err}")); },
move |err| {
let _ = error_tx.try_send(format!("stream error: {err}"));
device_lost.store(true, Ordering::Release);
},
None,
)
.map_err(|e| format!("Failed to build stream: {e}"))?;