From 2f4e77da2a6e8eda6a174e067ffbb981e1acd142 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Sun, 13 May 2018 14:14:04 +0200 Subject: [PATCH] make WASAPI instantiation errors non-fatal for older Windows --- RtAudio.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/RtAudio.cpp b/RtAudio.cpp index b091e15..34e3961 100644 --- a/RtAudio.cpp +++ b/RtAudio.cpp @@ -3899,10 +3899,9 @@ RtApiWasapi::RtApiWasapi() CLSCTX_ALL, __uuidof( IMMDeviceEnumerator ), ( void** ) &deviceEnumerator_ ); - if ( FAILED( hr ) ) { - errorText_ = "RtApiWasapi::RtApiWasapi: Unable to instantiate device enumerator"; - error( RtAudioError::DRIVER_ERROR ); - } + // If this runs on an old Windows, it will fail. Ignore and proceed. + if ( FAILED( hr ) ) + deviceEnumerator_ = NULL; } //----------------------------------------------------------------------------- @@ -3929,6 +3928,9 @@ unsigned int RtApiWasapi::getDeviceCount( void ) IMMDeviceCollection* captureDevices = NULL; IMMDeviceCollection* renderDevices = NULL; + if ( !deviceEnumerator_ ) + return 0; + // Count capture devices errorText_.clear(); HRESULT hr = deviceEnumerator_->EnumAudioEndpoints( eCapture, DEVICE_STATE_ACTIVE, &captureDevices ); -- 2.30.2