From 858b2b30b2db7b16b7fa09ebfc6eaa11e92848f4 Mon Sep 17 00:00:00 2001 From: LargeModGames Date: Sat, 21 Mar 2026 15:12:00 +0100 Subject: [PATCH] Fix panic hook to handle audio backend errors and improve error messaging --- src/main.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index f28a3c1c..2c697ceb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -737,12 +737,15 @@ fn setup_logging() -> anyhow::Result<()> { fn install_panic_hook() { let default_hook = panic::take_hook(); panic::set_hook(Box::new(move |info| { - let is_portaudio_panic = info + let is_audio_backend_panic = info .location() - .map(|location| location.file().contains("audio_backend/portaudio.rs")) + .map(|location| { + let file = location.file(); + file.contains("audio_backend/portaudio.rs") || file.contains("audio_backend/rodio.rs") + }) .unwrap_or(false); - if is_portaudio_panic { + if is_audio_backend_panic { eprintln!( "Recoverable audio backend panic detected. Playback may pause while the output device changes." ); @@ -2084,9 +2087,7 @@ async fn disconnect_streaming_player( status_message: &str, ) -> Option { let mut app_lock = app.lock().await; - let Some(current_player) = app_lock.streaming_player.as_ref() else { - return None; - }; + let current_player = app_lock.streaming_player.as_ref()?; if !Arc::ptr_eq(current_player, player) { return None; }