From 77fb55329e601037ed6a59898c0090cd191161d1 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Tue, 1 Sep 2015 15:33:44 +0200 Subject: [PATCH] Better error handling in format detection --- src/wasapi/mod.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/wasapi/mod.rs b/src/wasapi/mod.rs index ad4334b..b5035d2 100644 --- a/src/wasapi/mod.rs +++ b/src/wasapi/mod.rs @@ -110,7 +110,13 @@ impl Endpoint { unsafe { let mut format_ptr = mem::uninitialized(); - check_result((*client).GetMixFormat(&mut format_ptr)).unwrap(); // FIXME: don't unwrap + match check_result((*client).GetMixFormat(&mut format_ptr)) { + Err(ref e) if e.raw_os_error() == Some(winapi::AUDCLNT_E_DEVICE_INVALIDATED) => { + return Err(FormatsEnumerationError::DeviceNotAvailable); + }, + Err(e) => panic!("{:?}", e), + Ok(()) => (), + }; let format = { let data_type = match (*format_ptr).wFormatTag {