From a26a9f533775621c045cb147a0cf17fef8a126b0 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Wed, 16 Nov 2016 08:17:11 +0100 Subject: [PATCH] Fix compilation on windows --- src/wasapi/mod.rs | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/wasapi/mod.rs b/src/wasapi/mod.rs index 2dd85f4..d6138d1 100644 --- a/src/wasapi/mod.rs +++ b/src/wasapi/mod.rs @@ -185,10 +185,23 @@ impl Endpoint { channels }; - let format = match (*format_ptr).SubFormat { - winapi::KSDATAFORMAT_SUBTYPE_IEEE_FLOAT => SampleFormat::F32, - winapi::KSDATAFORMAT_SUBTYPE_PCM => SampleFormat::I16, - g => panic!("Unknown SubFormat GUID returned by GetMixFormat: {:?}", g) + let format = { + fn cmp_guid(a: &winapi::GUID, b: &winapi::GUID) -> bool { + a.Data1 == b.Data1 && a.Data2 == b.Data2 && + a.Data3 == b.Data3 && a.Data4 == b.Data4 + } + if cmp_guid(&(*format_ptr).SubFormat, + &winapi::KSDATAFORMAT_SUBTYPE_IEEE_FLOAT) + { + SampleFormat::F32 + } else if cmp_guid(&(*format_ptr).SubFormat, + &winapi::KSDATAFORMAT_SUBTYPE_PCM) + { + SampleFormat::I16 + } else { + panic!("Unknown SubFormat GUID returned by GetMixFormat: {:?}", + (*format_ptr).SubFormat) + } }; (channels, format)