From: Ross Bencina Date: Thu, 4 Feb 2021 01:17:29 +0000 (+1100) Subject: Clean up whitespace in src/hostapi/wasapi in preparation for .editorconfig. Indent... X-Git-Tag: v19.7.0~26 X-Git-Url: https://andrewgundersen.net/repos?a=commitdiff_plain;h=d36033d5daeafe59ad715ffdb4d2a4028ed1f6c0;p=portaudio Clean up whitespace in src/hostapi/wasapi in preparation for .editorconfig. Indent by 4 spaces. Strip trailing whitespace. (#477) --- diff --git a/src/hostapi/wasapi/pa_win_wasapi.c b/src/hostapi/wasapi/pa_win_wasapi.c index 533dcac..34fb52b 100644 --- a/src/hostapi/wasapi/pa_win_wasapi.c +++ b/src/hostapi/wasapi/pa_win_wasapi.c @@ -54,10 +54,10 @@ #define PA_WASAPI_MAX_CONST_DEVICE_COUNT 0 // Force basic behavior by defining 0 if not defined by user #endif -// Fallback from Event to the Polling method in case if latency is higher than 21.33ms, as it allows to use +// Fallback from Event to the Polling method in case if latency is higher than 21.33ms, as it allows to use // 100% of CPU inside the PA's callback. -// Note: Some USB DAC drivers are buggy when Polling method is forced in Exclusive mode, audio output becomes -// unstable with a lot of interruptions, therefore this define is optional. The default behavior is to +// Note: Some USB DAC drivers are buggy when Polling method is forced in Exclusive mode, audio output becomes +// unstable with a lot of interruptions, therefore this define is optional. The default behavior is to // not change the Event mode to Polling and use the mode which user provided. //#define PA_WASAPI_FORCE_POLL_IF_LARGE_BUFFER @@ -108,7 +108,7 @@ #include "pa_win_coinitialize.h" #if !defined(NTDDI_VERSION) || (defined(__GNUC__) && (__GNUC__ <= 6) && !defined(__MINGW64__)) - + #undef WINVER #undef _WIN32_WINNT #define WINVER 0x0600 // VISTA @@ -121,7 +121,7 @@ #ifndef __unaligned #define __unaligned #endif - + #ifndef __C89_NAMELESS #define __C89_NAMELESS #endif @@ -167,7 +167,7 @@ #define FASTCALL #include #include - #else + #else typedef struct _BYTE_BLOB { unsigned long clSize; @@ -181,18 +181,18 @@ #ifndef NT_SUCCESS typedef LONG NTSTATUS; #endif - + #ifndef WAVE_FORMAT_IEEE_FLOAT #define WAVE_FORMAT_IEEE_FLOAT 0x0003 // 32-bit floating-point - #endif - + #endif + #ifndef __MINGW_EXTENSION #if defined(__GNUC__) || defined(__GNUG__) #define __MINGW_EXTENSION __extension__ #else #define __MINGW_EXTENSION #endif - #endif + #endif #include #include @@ -213,7 +213,7 @@ #define DEVICE_STATE_ACTIVE 0x00000001 typedef enum _EDataFlow - { + { eRender = 0, eCapture = ( eRender + 1 ) , eAll = ( eCapture + 1 ) , @@ -222,7 +222,7 @@ EDataFlow; typedef enum _EndpointFormFactor - { + { RemoteNetworkDevice = 0, Speakers = ( RemoteNetworkDevice + 1 ) , LineLevel = ( Speakers + 1 ) , @@ -233,8 +233,8 @@ UnknownDigitalPassthrough = ( Handset + 1 ) , SPDIF = ( UnknownDigitalPassthrough + 1 ) , HDMI = ( SPDIF + 1 ) , - UnknownFormFactor = ( HDMI + 1 ) - } + UnknownFormFactor = ( HDMI + 1 ) + } EndpointFormFactor; #endif @@ -280,7 +280,7 @@ __DEFINE_GUID(pa_KSDATAFORMAT_SUBTYPE_ADPCM, 0x00000002, 0x0000, 0x0010, 0x __DEFINE_GUID(pa_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT, 0x00000003, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 ); #ifdef __IAudioClient2_INTERFACE_DEFINED__ -typedef enum _pa_AUDCLNT_STREAMOPTIONS { +typedef enum _pa_AUDCLNT_STREAMOPTIONS { pa_AUDCLNT_STREAMOPTIONS_NONE = 0x00, pa_AUDCLNT_STREAMOPTIONS_RAW = 0x01, pa_AUDCLNT_STREAMOPTIONS_MATCH_FORMAT = 0x02 @@ -678,7 +678,7 @@ typedef struct PaWasapiWinrtDeviceListContextEntry PaWasapiWinrtDeviceListContextEntry; typedef struct PaWasapiWinrtDeviceListContext { - PaWasapiWinrtDeviceListContextEntry devices[PA_WASAPI_DEVICE_MAX_COUNT * 2]; + PaWasapiWinrtDeviceListContextEntry devices[PA_WASAPI_DEVICE_MAX_COUNT * 2]; } PaWasapiWinrtDeviceListContext; #endif @@ -855,7 +855,7 @@ static BOOL SystemTimer_SetGranularity(SystemTimer *timer, UINT32 granularity) #else (void)granularity; - // UWP does not support increase of the timer precision change and thus calling WaitForSingleObject with anything + // UWP does not support increase of the timer precision change and thus calling WaitForSingleObject with anything // below 10 milliseconds will cause underruns for input and output stream. timer->granularity = 10; #endif @@ -974,7 +974,7 @@ static WORD PaSampleFormatToBitsPerSample(PaSampleFormat format_id) // Note: paCustomFormat stands for 8.24 format (24-bits inside 32-bit containers) static PaSampleFormat GetSampleFormatForIO(PaSampleFormat format_id) { - return ((format_id & ~paNonInterleaved) == paCustomFormat ? + return ((format_id & ~paNonInterleaved) == paCustomFormat ? (paInt32 | (format_id & paNonInterleaved ? paNonInterleaved : 0)) : format_id); } @@ -1210,8 +1210,8 @@ static EWindowsVersion GetWindowsVersion() if (version == WINDOWS_UNKNOWN) { DWORD dwMajorVersion = 0xFFFFFFFFU, dwMinorVersion = 0, dwBuild = 0; - - // RTL_OSVERSIONINFOW equals OSVERSIONINFOW but it is missing inb MinGW winnt.h header, + + // RTL_OSVERSIONINFOW equals OSVERSIONINFOW but it is missing inb MinGW winnt.h header, // thus use OSVERSIONINFOW for greater portability typedef NTSTATUS (WINAPI *LPFN_RTLGETVERSION)(POSVERSIONINFOW lpVersionInformation); LPFN_RTLGETVERSION fnRtlGetVersion; @@ -1370,11 +1370,11 @@ static const IID *GetAudioClientIID() // ------------------------------------------------------------------------------------------ typedef enum EMixDirection -{ +{ MIX_DIR__1TO2, //!< mix one channel to L and R MIX_DIR__2TO1, //!< mix L and R channels to one channel MIX_DIR__2TO1_L //!< mix only L channel (of total 2 channels) to one channel -} +} EMixDirection; // ------------------------------------------------------------------------------------------ @@ -1438,7 +1438,7 @@ static void _MixMonoToStereo_1TO2_16(void *__to, const void *__from, UINT32 coun static void _MixMonoToStereo_1TO2_8_24(void *__to, const void *__from, UINT32 count) { _WASAPI_MONO_TO_STEREO_MIXER_1_TO_2(int); /* !!! int24 data is contained in 32-bit containers*/ } static void _MixMonoToStereo_1TO2_32(void *__to, const void *__from, UINT32 count) { _WASAPI_MONO_TO_STEREO_MIXER_1_TO_2(int); } static void _MixMonoToStereo_1TO2_32f(void *__to, const void *__from, UINT32 count) { _WASAPI_MONO_TO_STEREO_MIXER_1_TO_2(float); } -static void _MixMonoToStereo_1TO2_24(void *__to, const void *__from, UINT32 count) +static void _MixMonoToStereo_1TO2_24(void *__to, const void *__from, UINT32 count) { const UCHAR * __restrict from = (const UCHAR *)__from; UCHAR * __restrict to = (UCHAR *)__to; @@ -1461,7 +1461,7 @@ static void _MixMonoToStereo_2TO1_16(void *__to, const void *__from, UINT32 coun static void _MixMonoToStereo_2TO1_8_24(void *__to, const void *__from, UINT32 count) { _WASAPI_MONO_TO_STEREO_MIXER_2_TO_1_INT32(int); /* !!! int24 data is contained in 32-bit containers*/ } static void _MixMonoToStereo_2TO1_32(void *__to, const void *__from, UINT32 count) { _WASAPI_MONO_TO_STEREO_MIXER_2_TO_1_INT64(int); } static void _MixMonoToStereo_2TO1_32f(void *__to, const void *__from, UINT32 count) { _WASAPI_MONO_TO_STEREO_MIXER_2_TO_1_FLT32(float); } -static void _MixMonoToStereo_2TO1_24(void *__to, const void *__from, UINT32 count) +static void _MixMonoToStereo_2TO1_24(void *__to, const void *__from, UINT32 count) { const UCHAR * __restrict from = (const UCHAR *)__from; UCHAR * __restrict to = (UCHAR *)__to; @@ -1470,11 +1470,11 @@ static void _MixMonoToStereo_2TO1_24(void *__to, const void *__from, UINT32 coun while (to != end) { - tempL = (((PaInt32)from[0]) << 8); + tempL = (((PaInt32)from[0]) << 8); tempL = tempL | (((PaInt32)from[1]) << 16); tempL = tempL | (((PaInt32)from[2]) << 24); - tempR = (((PaInt32)from[3]) << 8); + tempR = (((PaInt32)from[3]) << 8); tempR = tempR | (((PaInt32)from[4]) << 16); tempR = tempR | (((PaInt32)from[5]) << 24); @@ -1495,7 +1495,7 @@ static void _MixMonoToStereo_2TO1_16_L(void *__to, const void *__from, UINT32 co static void _MixMonoToStereo_2TO1_8_24_L(void *__to, const void *__from, UINT32 count) { _WASAPI_MONO_TO_STEREO_MIXER_2_TO_1_L(int); /* !!! int24 data is contained in 32-bit containers*/ } static void _MixMonoToStereo_2TO1_32_L(void *__to, const void *__from, UINT32 count) { _WASAPI_MONO_TO_STEREO_MIXER_2_TO_1_L(int); } static void _MixMonoToStereo_2TO1_32f_L(void *__to, const void *__from, UINT32 count) { _WASAPI_MONO_TO_STEREO_MIXER_2_TO_1_L(float); } -static void _MixMonoToStereo_2TO1_24_L(void *__to, const void *__from, UINT32 count) +static void _MixMonoToStereo_2TO1_24_L(void *__to, const void *__from, UINT32 count) { const UCHAR * __restrict from = (const UCHAR *)__from; UCHAR * __restrict to = (UCHAR *)__to; @@ -1516,7 +1516,7 @@ static void _MixMonoToStereo_2TO1_24_L(void *__to, const void *__from, UINT32 co static MixMonoToStereoF GetMonoToStereoMixer(const WAVEFORMATEXTENSIBLE *fmtext, EMixDirection dir) { PaSampleFormat format = WaveToPaFormat(fmtext); - + switch (dir) { case MIX_DIR__1TO2: @@ -1577,15 +1577,15 @@ typedef struct PaActivateAudioInterfaceCompletionHandler } PaActivateAudioInterfaceCompletionHandler; -static HRESULT (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_QueryInterface)( +static HRESULT (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_QueryInterface)( IActivateAudioInterfaceCompletionHandler *This, REFIID riid, void **ppvObject) { PaActivateAudioInterfaceCompletionHandler *handler = (PaActivateAudioInterfaceCompletionHandler *)This; // From MSDN: - // "The IAgileObject interface is a marker interface that indicates that an object + // "The IAgileObject interface is a marker interface that indicates that an object // is free threaded and can be called from any apartment." - if (IsEqualIID(riid, &IID_IUnknown) || + if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAgileObject)) { IActivateAudioInterfaceCompletionHandler_AddRef((IActivateAudioInterfaceCompletionHandler *)handler); @@ -1595,16 +1595,16 @@ static HRESULT (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_Quer return E_NOINTERFACE; } - -static ULONG (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_AddRef)( + +static ULONG (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_AddRef)( IActivateAudioInterfaceCompletionHandler *This) { PaActivateAudioInterfaceCompletionHandler *handler = (PaActivateAudioInterfaceCompletionHandler *)This; return InterlockedIncrement(&handler->refs); } - -static ULONG (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_Release)( + +static ULONG (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_Release)( IActivateAudioInterfaceCompletionHandler *This) { PaActivateAudioInterfaceCompletionHandler *handler = (PaActivateAudioInterfaceCompletionHandler *)This; @@ -1618,8 +1618,8 @@ static ULONG (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_Releas return refs; } - -static HRESULT (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_ActivateCompleted)( + +static HRESULT (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_ActivateCompleted)( IActivateAudioInterfaceCompletionHandler *This, IActivateAudioInterfaceAsyncOperation *activateOperation) { PaActivateAudioInterfaceCompletionHandler *handler = (PaActivateAudioInterfaceCompletionHandler *)This; @@ -1627,7 +1627,7 @@ static HRESULT (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_Acti HRESULT hr = S_OK; HRESULT hrActivateResult = S_OK; IUnknown *punkAudioInterface = NULL; - + // Check for a successful activation result hr = IActivateAudioInterfaceAsyncOperation_GetActivateResult(activateOperation, &hrActivateResult, &punkAudioInterface); if (SUCCEEDED(hr) && SUCCEEDED(hrActivateResult)) @@ -1643,7 +1643,7 @@ static HRESULT (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_Acti handler->out.hr = hrActivateResult; else handler->out.hr = hr; - + // Got client object, stop busy waiting in ActivateAudioInterface InterlockedExchange(&handler->done, TRUE); @@ -1653,9 +1653,9 @@ static HRESULT (STDMETHODCALLTYPE PaActivateAudioInterfaceCompletionHandler_Acti static IActivateAudioInterfaceCompletionHandler *CreateActivateAudioInterfaceCompletionHandler(const IID *iid, void **client) { PaActivateAudioInterfaceCompletionHandler *handler = PaUtil_AllocateMemory(sizeof(PaActivateAudioInterfaceCompletionHandler)); - + memset(handler, 0, sizeof(*handler)); - + handler->parent.lpVtbl = PaUtil_AllocateMemory(sizeof(*handler->parent.lpVtbl)); handler->parent.lpVtbl->QueryInterface = &PaActivateAudioInterfaceCompletionHandler_QueryInterface; handler->parent.lpVtbl->AddRef = &PaActivateAudioInterfaceCompletionHandler_AddRef; @@ -1664,7 +1664,7 @@ static IActivateAudioInterfaceCompletionHandler *CreateActivateAudioInterfaceCom handler->refs = 1; handler->in.iid = iid; handler->in.obj = client; - + return (IActivateAudioInterfaceCompletionHandler *)handler; } #endif @@ -1689,7 +1689,7 @@ static HRESULT WinRT_GetDefaultDeviceId(WCHAR *deviceId, UINT32 deviceIdMax, EDa break; default: return S_FALSE; - } + } return S_OK; } @@ -1698,15 +1698,15 @@ static HRESULT WinRT_GetDefaultDeviceId(WCHAR *deviceId, UINT32 deviceIdMax, EDa // ------------------------------------------------------------------------------------------ #ifdef PA_WINRT static HRESULT WinRT_ActivateAudioInterface(const WCHAR *deviceId, const IID *iid, void **client) -{ +{ PaError result = paNoError; HRESULT hr = S_OK; IActivateAudioInterfaceAsyncOperation *asyncOp = NULL; IActivateAudioInterfaceCompletionHandler *handler = CreateActivateAudioInterfaceCompletionHandler(iid, client); PaActivateAudioInterfaceCompletionHandler *handlerImpl = (PaActivateAudioInterfaceCompletionHandler *)handler; UINT32 sleepToggle = 0; - - // Async operation will call back to IActivateAudioInterfaceCompletionHandler::ActivateCompleted + + // Async operation will call back to IActivateAudioInterfaceCompletionHandler::ActivateCompleted // which must be an agile interface implementation hr = ActivateAudioInterfaceAsync(deviceId, iid, NULL, handler, &asyncOp); IF_FAILED_INTERNAL_ERROR_JUMP(hr, result, error); @@ -1730,7 +1730,7 @@ error: #endif // ------------------------------------------------------------------------------------------ -static HRESULT ActivateAudioInterface(const PaWasapiDeviceInfo *deviceInfo, const PaWasapiStreamInfo *streamInfo, +static HRESULT ActivateAudioInterface(const PaWasapiDeviceInfo *deviceInfo, const PaWasapiStreamInfo *streamInfo, IAudioClient **client) { HRESULT hr; @@ -1783,7 +1783,7 @@ static HRESULT ActivateAudioInterface(const PaWasapiDeviceInfo *deviceInfo, cons // ------------------------------------------------------------------------------------------ #ifdef PA_WINRT // Windows 10 SDK 10.0.15063.0 has SignalObjectAndWait defined again (unlike in 10.0.14393.0 and lower) -#if !defined(WDK_NTDDI_VERSION) || (WDK_NTDDI_VERSION < NTDDI_WIN10_RS2) +#if !defined(WDK_NTDDI_VERSION) || (WDK_NTDDI_VERSION < NTDDI_WIN10_RS2) static DWORD SignalObjectAndWait(HANDLE hObjectToSignal, HANDLE hObjectToWaitOn, DWORD dwMilliseconds, BOOL bAlertable) { SetEvent(hObjectToSignal); @@ -1800,7 +1800,7 @@ static void NotifyStateChanged(PaWasapiStream *stream, UINT32 flags, HRESULT hr) if (FAILED(hr)) flags |= paWasapiStreamStateError; - + stream->fnStateHandler((PaStream *)stream, flags, hr, stream->pStateHandlerUserData); } @@ -1828,7 +1828,7 @@ static PaError FillInactiveDeviceInfo(PaWasapiHostApiRepresentation *paWasapi, P } // ------------------------------------------------------------------------------------------ -static PaError FillDeviceInfo(PaWasapiHostApiRepresentation *paWasapi, void *pEndPoints, INT32 index, const WCHAR *defaultRenderId, +static PaError FillDeviceInfo(PaWasapiHostApiRepresentation *paWasapi, void *pEndPoints, INT32 index, const WCHAR *defaultRenderId, const WCHAR *defaultCaptureId, PaDeviceInfo *deviceInfo, PaWasapiDeviceInfo *wasapiDeviceInfo #ifdef PA_WINRT , PaWasapiWinrtDeviceListContext *deviceListContext @@ -1894,7 +1894,7 @@ static PaError FillDeviceInfo(PaWasapiHostApiRepresentation *paWasapi, void *pEn WideCharToMultiByte(CP_UTF8, 0, value.pwszVal, (INT32)wcslen(value.pwszVal), (char *)deviceInfo->name, PA_WASAPI_DEVICE_NAME_LEN - 1, 0, 0); else _snprintf((char *)deviceInfo->name, PA_WASAPI_DEVICE_NAME_LEN - 1, "baddev%d", index); - + PropVariantClear(&value); PA_DEBUG(("WASAPI:%d| name[%s]\n", index, deviceInfo->name)); @@ -1908,7 +1908,7 @@ static PaError FillDeviceInfo(PaWasapiHostApiRepresentation *paWasapi, void *pEn IF_FAILED_INTERNAL_ERROR_JUMP(hr, result, error); memcpy(&wasapiDeviceInfo->DefaultFormat, value.blob.pBlobData, min(sizeof(wasapiDeviceInfo->DefaultFormat), value.blob.cbSize)); - + PropVariantClear(&value); } @@ -1969,7 +1969,7 @@ static PaError FillDeviceInfo(PaWasapiHostApiRepresentation *paWasapi, void *pEn // Set default Output/Input devices if ((defaultRenderId != NULL) && (wcsncmp(wasapiDeviceInfo->deviceId, defaultRenderId, PA_WASAPI_DEVICE_NAME_LEN - 1) == 0)) - hostApi->info.defaultOutputDevice = hostApi->info.deviceCount; + hostApi->info.defaultOutputDevice = hostApi->info.deviceCount; if ((defaultCaptureId != NULL) && (wcsncmp(wasapiDeviceInfo->deviceId, defaultCaptureId, PA_WASAPI_DEVICE_NAME_LEN - 1) == 0)) hostApi->info.defaultInputDevice = hostApi->info.deviceCount; @@ -1994,7 +1994,7 @@ static PaError FillDeviceInfo(PaWasapiHostApiRepresentation *paWasapi, void *pEn // ignore error, let continue further without failing with paInternalError hr = S_OK; } - + // Get mix format hr = IAudioClient_GetMixFormat(tmpClient, &mixFormat); if (SUCCEEDED(hr)) @@ -2028,7 +2028,7 @@ static PaError FillDeviceInfo(PaWasapiHostApiRepresentation *paWasapi, void *pEn goto error; } } - + // Fill basic device data deviceInfo->maxInputChannels = 0; deviceInfo->maxOutputChannels = 0; @@ -2070,7 +2070,7 @@ static PaDeviceInfo *AllocateDeviceListMemory(PaWasapiHostApiRepresentation *paW PaUtilHostApiRepresentation *hostApi = (PaUtilHostApiRepresentation *)paWasapi; PaDeviceInfo *deviceInfoArray = NULL; - if ((paWasapi->devInfo = (PaWasapiDeviceInfo *)PaUtil_GroupAllocateMemory(paWasapi->allocations, + if ((paWasapi->devInfo = (PaWasapiDeviceInfo *)PaUtil_GroupAllocateMemory(paWasapi->allocations, sizeof(PaWasapiDeviceInfo) * paWasapi->deviceCount)) == NULL) { return NULL; @@ -2085,7 +2085,7 @@ static PaDeviceInfo *AllocateDeviceListMemory(PaWasapiHostApiRepresentation *paW deviceCount = PA_WASAPI_MAX_CONST_DEVICE_COUNT; #endif - if ((hostApi->deviceInfos = (PaDeviceInfo **)PaUtil_GroupAllocateMemory(paWasapi->allocations, + if ((hostApi->deviceInfos = (PaDeviceInfo **)PaUtil_GroupAllocateMemory(paWasapi->allocations, sizeof(PaDeviceInfo *) * deviceCount)) == NULL) { return NULL; @@ -2094,7 +2094,7 @@ static PaDeviceInfo *AllocateDeviceListMemory(PaWasapiHostApiRepresentation *paW hostApi->deviceInfos[i] = NULL; // Allocate all device info structs in a contiguous block - if ((deviceInfoArray = (PaDeviceInfo *)PaUtil_GroupAllocateMemory(paWasapi->allocations, + if ((deviceInfoArray = (PaDeviceInfo *)PaUtil_GroupAllocateMemory(paWasapi->allocations, sizeof(PaDeviceInfo) * deviceCount)) == NULL) { return NULL; @@ -2131,7 +2131,7 @@ static PaError CreateDeviceList(PaWasapiHostApiRepresentation *paWasapi, PaHostA return paInternalError; #ifndef PA_WINRT - hr = CoCreateInstance(&pa_CLSID_IMMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, + hr = CoCreateInstance(&pa_CLSID_IMMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, &pa_IID_IMMDeviceEnumerator, (void **)&pEnumerator); IF_FAILED_INTERNAL_ERROR_JUMP(hr, result, error); @@ -2142,7 +2142,7 @@ static PaError CreateDeviceList(PaWasapiHostApiRepresentation *paWasapi, PaHostA hr = IMMDeviceEnumerator_GetDefaultAudioEndpoint(pEnumerator, eRender, eMultimedia, &device); if (hr != S_OK) { - if (hr != E_NOTFOUND) + if (hr != E_NOTFOUND) { IF_FAILED_INTERNAL_ERROR_JUMP(hr, result, error); } @@ -2157,7 +2157,7 @@ static PaError CreateDeviceList(PaWasapiHostApiRepresentation *paWasapi, PaHostA hr = IMMDeviceEnumerator_GetDefaultAudioEndpoint(pEnumerator, eCapture, eMultimedia, &device); if (hr != S_OK) { - if (hr != E_NOTFOUND) + if (hr != E_NOTFOUND) { IF_FAILED_INTERNAL_ERROR_JUMP(hr, result, error); } @@ -2202,7 +2202,7 @@ static PaError CreateDeviceList(PaWasapiHostApiRepresentation *paWasapi, PaHostA deviceListContext.devices[paWasapi->deviceCount].info = &g_DeviceListInfo.render.devices[i]; deviceListContext.devices[paWasapi->deviceCount].flow = eRender; paWasapi->deviceCount++; - } + } } if (g_DeviceListInfo.capture.deviceCount == 0) @@ -2212,7 +2212,7 @@ static PaError CreateDeviceList(PaWasapiHostApiRepresentation *paWasapi, PaHostA deviceListContext.devices[paWasapi->deviceCount].info = &defaultCapture; deviceListContext.devices[paWasapi->deviceCount].flow = eCapture; paWasapi->deviceCount++; - + SAFE_RELEASE(tmpClient); } } @@ -2223,7 +2223,7 @@ static PaError CreateDeviceList(PaWasapiHostApiRepresentation *paWasapi, PaHostA deviceListContext.devices[paWasapi->deviceCount].info = &g_DeviceListInfo.capture.devices[i]; deviceListContext.devices[paWasapi->deviceCount].flow = eCapture; paWasapi->deviceCount++; - } + } } #endif @@ -2244,11 +2244,11 @@ static PaError CreateDeviceList(PaWasapiHostApiRepresentation *paWasapi, PaHostA FillBaseDeviceInfo(deviceInfo, hostApiIndex); - if ((result = FillDeviceInfo(paWasapi, pEndPoints, i, defaultRenderId, defaultCaptureId, + if ((result = FillDeviceInfo(paWasapi, pEndPoints, i, defaultRenderId, defaultCaptureId, deviceInfo, &paWasapi->devInfo[i] #ifdef PA_WINRT , &deviceListContext - #endif + #endif )) != paNoError) { // Faulty device is made inactive @@ -2263,7 +2263,7 @@ static PaError CreateDeviceList(PaWasapiHostApiRepresentation *paWasapi, PaHostA // Fill the remaining slots with inactive device info #if defined(PA_WASAPI_MAX_CONST_DEVICE_COUNT) && (PA_WASAPI_MAX_CONST_DEVICE_COUNT > 0) if ((hostApi->info.deviceCount != 0) && (hostApi->info.deviceCount < PA_WASAPI_MAX_CONST_DEVICE_COUNT)) - { + { for (i = hostApi->info.deviceCount; i < PA_WASAPI_MAX_CONST_DEVICE_COUNT; ++i) { PaDeviceInfo *deviceInfo = &deviceInfoArray[i]; @@ -2296,7 +2296,7 @@ done: return result; error: - + // Safety if error was not set so that we do not think initialize was a success if (result == paNoError) result = paInternalError; @@ -2325,7 +2325,7 @@ PaError PaWasapi_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiInd { result = paInsufficientMemory; goto error; - } + } memset(paWasapi, 0, sizeof(PaWasapiHostApiRepresentation)); /* ensure all fields are zeroed. especially paWasapi->allocations */ // Initialize COM subsystem @@ -2516,7 +2516,7 @@ int PaWasapi_GetDeviceCurrentFormat( PaStream *pStream, void *pFormat, unsigned PaWasapiStream *stream = (PaWasapiStream *)pStream; if (stream == NULL) return paBadStreamPtr; - + format = (bOutput == TRUE ? &stream->out.wavex : &stream->in.wavex); size = min(formatSize, (UINT32)sizeof(*format)); @@ -2551,7 +2551,7 @@ int PaWasapi_GetDeviceDefaultFormat( void *pFormat, unsigned int formatSize, PaD // Validate index if ((UINT32)index >= paWasapi->deviceCount) return paInvalidDevice; - + size = min(formatSize, (UINT32)sizeof(paWasapi->devInfo[ index ].DefaultFormat)); memcpy(pFormat, &paWasapi->devInfo[ index ].DefaultFormat, size); @@ -2584,7 +2584,7 @@ int PaWasapi_GetDeviceMixFormat( void *pFormat, unsigned int formatSize, PaDevic // Validate index if ((UINT32)index >= paWasapi->deviceCount) return paInvalidDevice; - + size = min(formatSize, (UINT32)sizeof(paWasapi->devInfo[ index ].MixFormat)); memcpy(pFormat, &paWasapi->devInfo[ index ].MixFormat, size); @@ -2671,7 +2671,7 @@ static void LogWAVEFORMATEXTENSIBLE(const WAVEFORMATEXTENSIBLE *in) case WAVE_FORMAT_PCM: PRINT(("wFormatTag =WAVE_FORMAT_PCM\n")); break; case WAVE_FORMAT_IEEE_FLOAT: PRINT(("wFormatTag =WAVE_FORMAT_IEEE_FLOAT\n")); break; - default: + default: PRINT(("wFormatTag =UNKNOWN(%d)\n",old->wFormatTag)); break; } @@ -2805,7 +2805,7 @@ static PaError MakeWaveFormatFromParams(WAVEFORMATEXTENSIBLE *wavex, const PaStr case 7: wavex->dwChannelMask = PAWIN_SPEAKER_5POINT1_SURROUND|SPEAKER_BACK_CENTER; break; #else case 7: wavex->dwChannelMask = PAWIN_SPEAKER_5POINT1|SPEAKER_BACK_CENTER; break; -#endif +#endif #ifdef PAWIN_SPEAKER_7POINT1_SURROUND case 8: wavex->dwChannelMask = PAWIN_SPEAKER_7POINT1_SURROUND; break; #else @@ -2824,7 +2824,7 @@ static PaError MakeWaveFormatFromParams(WAVEFORMATEXTENSIBLE *wavex, const PaStr } // ------------------------------------------------------------------------------------------ -static HRESULT GetAlternativeSampleFormatExclusive(IAudioClient *client, double sampleRate, +static HRESULT GetAlternativeSampleFormatExclusive(IAudioClient *client, double sampleRate, const PaStreamParameters *params, WAVEFORMATEXTENSIBLE *outWavex, BOOL packedSampleFormatOnly) { HRESULT hr = !S_OK; @@ -2880,12 +2880,12 @@ static HRESULT GetAlternativeSampleFormatExclusive(IAudioClient *client, double } } } - + return hr; } // ------------------------------------------------------------------------------------------ -static PaError GetClosestFormat(IAudioClient *client, double sampleRate, const PaStreamParameters *_params, +static PaError GetClosestFormat(IAudioClient *client, double sampleRate, const PaStreamParameters *_params, AUDCLNT_SHAREMODE shareMode, WAVEFORMATEXTENSIBLE *outWavex, BOOL output) { PaWasapiStreamInfo *streamInfo = (PaWasapiStreamInfo *)_params->hostApiSpecificStreamInfo; @@ -2905,21 +2905,21 @@ static PaError GetClosestFormat(IAudioClient *client, double sampleRate, const P // Try standard approach, e.g. if data is > 16 bits it will be packed into 32-bit containers MakeWaveFormatFromParams(outWavex, ¶ms, sampleRate, FALSE); - + // If built-in PCM converter requested then shared mode format will always succeed - if ((GetWindowsVersion() >= WINDOWS_7_SERVER2008R2) && - (shareMode == AUDCLNT_SHAREMODE_SHARED) && + if ((GetWindowsVersion() >= WINDOWS_7_SERVER2008R2) && + (shareMode == AUDCLNT_SHAREMODE_SHARED) && ((streamInfo != NULL) && (streamInfo->flags & paWinWasapiAutoConvert))) return paFormatIsSupported; hr = IAudioClient_IsFormatSupported(client, shareMode, &outWavex->Format, (shareMode == AUDCLNT_SHAREMODE_SHARED ? &sharedClosestMatch : NULL)); - + // Exclusive mode can require packed format for some devices if ((hr != S_OK) && (shareMode == AUDCLNT_SHAREMODE_EXCLUSIVE)) { // Enforce packed only format, e.g. data bits will not be packed into 32-bit containers in any case MakeWaveFormatFromParams(outWavex, ¶ms, sampleRate, TRUE); - hr = IAudioClient_IsFormatSupported(client, shareMode, &outWavex->Format, NULL); + hr = IAudioClient_IsFormatSupported(client, shareMode, &outWavex->Format, NULL); } if (hr == S_OK) @@ -3185,7 +3185,7 @@ static void _CalculateAlignedPeriod(PaWasapiSubStream *pSub, UINT32 *nFramesPerL static void _CalculatePeriodicity(PaWasapiSubStream *pSub, BOOL output, REFERENCE_TIME *periodicity) { // Note: according Microsoft docs for IAudioClient::Initialize we can set periodicity of the buffer - // only for Exclusive mode. By setting periodicity almost equal to the user buffer frames we can + // only for Exclusive mode. By setting periodicity almost equal to the user buffer frames we can // achieve high quality (less glitchy) low-latency audio. if (pSub->shareMode == AUDCLNT_SHAREMODE_EXCLUSIVE) { @@ -3195,14 +3195,14 @@ static void _CalculatePeriodicity(PaWasapiSubStream *pSub, BOOL output, REFERENC (*periodicity) = pSub->period; // Try make buffer ready for I/O once we request the buffer readiness for it. Only Polling mode - // because for Event mode buffer size and periodicity must be equal according Microsoft + // because for Event mode buffer size and periodicity must be equal according Microsoft // documentation for IAudioClient::Initialize. - // + // // TO-DO: try spread to capture and full-duplex cases (not tested and therefore disabled) // - if (((pSub->streamFlags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK) == 0) && + if (((pSub->streamFlags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK) == 0) && (output && !pSub->params.full_duplex)) - { + { UINT32 alignedFrames; REFERENCE_TIME userPeriodicity; @@ -3220,7 +3220,7 @@ static void _CalculatePeriodicity(PaWasapiSubStream *pSub, BOOL output, REFERENC // Must not be smaller than minimum supported by the device if (userPeriodicity < pInfo->MinimumDevicePeriod) userPeriodicity = pInfo->MinimumDevicePeriod; - + (*periodicity) = userPeriodicity; } } @@ -3410,7 +3410,7 @@ static HRESULT CreateAudioClient(PaWasapiStream *pStream, PaWasapiSubStream *pSu // Set device scheduling period (always 0 in Shared mode according Microsoft docs) _CalculatePeriodicity(pSub, output, &eventPeriodicity); - + // Open the stream and associate it with an audio session hr = IAudioClient_Initialize(audioClient, pSub->shareMode, @@ -3419,9 +3419,9 @@ static HRESULT CreateAudioClient(PaWasapiStream *pStream, PaWasapiSubStream *pSu eventPeriodicity, &pSub->wavex.Format, NULL); - - // [Output only] Check if buffer size is the one we requested in Exclusive mode, for UAC1 USB DACs WASAPI - // can allocate internal buffer equal to 8 times of pSub->period that has to be corrected in order to match + + // [Output only] Check if buffer size is the one we requested in Exclusive mode, for UAC1 USB DACs WASAPI + // can allocate internal buffer equal to 8 times of pSub->period that has to be corrected in order to match // the requested latency if (output && SUCCEEDED(hr) && (pSub->shareMode == AUDCLNT_SHAREMODE_EXCLUSIVE)) { @@ -3442,7 +3442,7 @@ static HRESULT CreateAudioClient(PaWasapiStream *pStream, PaWasapiSubStream *pSu UINT32 ratio = maxBufferFrames / framesPerLatency; PRINT(("WASAPI: CreateAudioClient: detected %d times larger buffer than requested, correct to match user latency\n", ratio)); - + // Get new aligned frames lowered by calculated ratio framesPerLatency = MakeFramesFromHns(pSub->period / ratio, pSub->wavex.Format.nSamplesPerSec); _CalculateAlignedPeriod(pSub, &framesPerLatency, ALIGN_BWD); @@ -3450,7 +3450,7 @@ static HRESULT CreateAudioClient(PaWasapiStream *pStream, PaWasapiSubStream *pSu // Make sure we are not below the minimum period if (pSub->period < pInfo->MinimumDevicePeriod) pSub->period = pInfo->MinimumDevicePeriod; - + // Release previous client SAFE_RELEASE(audioClient); @@ -3549,7 +3549,7 @@ static HRESULT CreateAudioClient(PaWasapiStream *pStream, PaWasapiSubStream *pSu } // Error has no workaround, fail completely - if (FAILED(hr)) + if (FAILED(hr)) { (*pa_error) = paInvalidDevice; LogHostError(hr); @@ -3832,8 +3832,8 @@ static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi, stream->in.streamFlags = 0; // polling interface is implemented for full-duplex mode also // Use built-in PCM converter (channel count and sample rate) if requested - if ((GetWindowsVersion() >= WINDOWS_7_SERVER2008R2) && - (stream->in.shareMode == AUDCLNT_SHAREMODE_SHARED) && + if ((GetWindowsVersion() >= WINDOWS_7_SERVER2008R2) && + (stream->in.shareMode == AUDCLNT_SHAREMODE_SHARED) && ((inputStreamInfo != NULL) && (inputStreamInfo->flags & paWinWasapiAutoConvert))) stream->in.streamFlags |= (AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY); @@ -3966,8 +3966,8 @@ static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi, stream->out.streamFlags = 0; // polling interface is implemented for full-duplex mode also // Use built-in PCM converter (channel count and sample rate) if requested - if ((GetWindowsVersion() >= WINDOWS_7_SERVER2008R2) && - (stream->out.shareMode == AUDCLNT_SHAREMODE_SHARED) && + if ((GetWindowsVersion() >= WINDOWS_7_SERVER2008R2) && + (stream->out.shareMode == AUDCLNT_SHAREMODE_SHARED) && ((outputStreamInfo != NULL) && (outputStreamInfo->flags & paWinWasapiAutoConvert))) stream->out.streamFlags |= (AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY); @@ -4183,7 +4183,7 @@ static PaError CloseStream( PaStream* s ) } // ------------------------------------------------------------------------------------------ -HRESULT UnmarshalSubStreamComPointers(PaWasapiSubStream *substream) +HRESULT UnmarshalSubStreamComPointers(PaWasapiSubStream *substream) { #ifndef PA_WINRT HRESULT hResult = S_OK; @@ -4193,7 +4193,7 @@ HRESULT UnmarshalSubStreamComPointers(PaWasapiSubStream *substream) // IAudioClient hResult = CoGetInterfaceAndReleaseStream(substream->clientStream, GetAudioClientIID(), (LPVOID*)&substream->clientProc); substream->clientStream = NULL; - if (hResult != S_OK) + if (hResult != S_OK) { hFirstBadResult = (hFirstBadResult == S_OK) ? hResult : hFirstBadResult; } @@ -4207,7 +4207,7 @@ HRESULT UnmarshalSubStreamComPointers(PaWasapiSubStream *substream) } // ------------------------------------------------------------------------------------------ -HRESULT UnmarshalStreamComPointers(PaWasapiStream *stream) +HRESULT UnmarshalStreamComPointers(PaWasapiStream *stream) { #ifndef PA_WINRT HRESULT hResult = S_OK; @@ -4217,11 +4217,11 @@ HRESULT UnmarshalStreamComPointers(PaWasapiStream *stream) stream->in.clientProc = NULL; stream->out.clientProc = NULL; - if (NULL != stream->in.clientParent) + if (NULL != stream->in.clientParent) { // SubStream pointers hResult = UnmarshalSubStreamComPointers(&stream->in); - if (hResult != S_OK) + if (hResult != S_OK) { hFirstBadResult = (hFirstBadResult == S_OK) ? hResult : hFirstBadResult; } @@ -4229,17 +4229,17 @@ HRESULT UnmarshalStreamComPointers(PaWasapiStream *stream) // IAudioCaptureClient hResult = CoGetInterfaceAndReleaseStream(stream->captureClientStream, &pa_IID_IAudioCaptureClient, (LPVOID*)&stream->captureClient); stream->captureClientStream = NULL; - if (hResult != S_OK) + if (hResult != S_OK) { hFirstBadResult = (hFirstBadResult == S_OK) ? hResult : hFirstBadResult; } } - if (NULL != stream->out.clientParent) + if (NULL != stream->out.clientParent) { // SubStream pointers hResult = UnmarshalSubStreamComPointers(&stream->out); - if (hResult != S_OK) + if (hResult != S_OK) { hFirstBadResult = (hFirstBadResult == S_OK) ? hResult : hFirstBadResult; } @@ -4247,7 +4247,7 @@ HRESULT UnmarshalStreamComPointers(PaWasapiStream *stream) // IAudioRenderClient hResult = CoGetInterfaceAndReleaseStream(stream->renderClientStream, &pa_IID_IAudioRenderClient, (LPVOID*)&stream->renderClient); stream->renderClientStream = NULL; - if (hResult != S_OK) + if (hResult != S_OK) { hFirstBadResult = (hFirstBadResult == S_OK) ? hResult : hFirstBadResult; } @@ -4284,13 +4284,13 @@ HRESULT UnmarshalStreamComPointers(PaWasapiStream *stream) } // ----------------------------------------------------------------------------------------- -void ReleaseUnmarshaledSubComPointers(PaWasapiSubStream *substream) +void ReleaseUnmarshaledSubComPointers(PaWasapiSubStream *substream) { SAFE_RELEASE(substream->clientProc); } // ----------------------------------------------------------------------------------------- -void ReleaseUnmarshaledComPointers(PaWasapiStream *stream) +void ReleaseUnmarshaledComPointers(PaWasapiStream *stream) { // Release AudioClient services first SAFE_RELEASE(stream->captureClient); @@ -4302,7 +4302,7 @@ void ReleaseUnmarshaledComPointers(PaWasapiStream *stream) } // ------------------------------------------------------------------------------------------ -HRESULT MarshalSubStreamComPointers(PaWasapiSubStream *substream) +HRESULT MarshalSubStreamComPointers(PaWasapiSubStream *substream) { #ifndef PA_WINRT HRESULT hResult; @@ -4328,7 +4328,7 @@ marshal_sub_error: } // ------------------------------------------------------------------------------------------ -HRESULT MarshalStreamComPointers(PaWasapiStream *stream) +HRESULT MarshalStreamComPointers(PaWasapiStream *stream) { #ifndef PA_WINRT HRESULT hResult = S_OK; @@ -4337,29 +4337,29 @@ HRESULT MarshalStreamComPointers(PaWasapiStream *stream) stream->renderClientStream = NULL; stream->out.clientStream = NULL; - if (NULL != stream->in.clientParent) + if (NULL != stream->in.clientParent) { // SubStream pointers hResult = MarshalSubStreamComPointers(&stream->in); - if (hResult != S_OK) + if (hResult != S_OK) goto marshal_error; // IAudioCaptureClient hResult = CoMarshalInterThreadInterfaceInStream(&pa_IID_IAudioCaptureClient, (LPUNKNOWN)stream->captureClientParent, &stream->captureClientStream); - if (hResult != S_OK) + if (hResult != S_OK) goto marshal_error; } - if (NULL != stream->out.clientParent) + if (NULL != stream->out.clientParent) { // SubStream pointers hResult = MarshalSubStreamComPointers(&stream->out); - if (hResult != S_OK) + if (hResult != S_OK) goto marshal_error; // IAudioRenderClient hResult = CoMarshalInterThreadInterfaceInStream(&pa_IID_IAudioRenderClient, (LPUNKNOWN)stream->renderClientParent, &stream->renderClientStream); - if (hResult != S_OK) + if (hResult != S_OK) goto marshal_error; } @@ -4394,7 +4394,7 @@ static PaError StartStream( PaStream *s ) _StreamCleanup(stream); // Create close event - if ((stream->hCloseRequest = CreateEvent(NULL, TRUE, FALSE, NULL)) == NULL) + if ((stream->hCloseRequest = CreateEvent(NULL, TRUE, FALSE, NULL)) == NULL) { result = paInsufficientMemory; goto start_error; @@ -4413,7 +4413,7 @@ static PaError StartStream( PaStream *s ) } // Marshal WASAPI interface pointers for safe use in thread created below. - if ((hr = MarshalStreamComPointers(stream)) != S_OK) + if ((hr = MarshalStreamComPointers(stream)) != S_OK) { PRINT(("Failed marshaling stream COM pointers.")); result = paUnanticipatedHostError; @@ -4423,7 +4423,7 @@ static PaError StartStream( PaStream *s ) if ((stream->in.clientParent && (stream->in.streamFlags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK)) || (stream->out.clientParent && (stream->out.streamFlags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK))) { - if ((stream->hThread = CREATE_THREAD(ProcThreadEvent)) == NULL) + if ((stream->hThread = CREATE_THREAD(ProcThreadEvent)) == NULL) { PRINT(("Failed creating thread: ProcThreadEvent.")); result = paUnanticipatedHostError; @@ -4432,7 +4432,7 @@ static PaError StartStream( PaStream *s ) } else { - if ((stream->hThread = CREATE_THREAD(ProcThreadPoll)) == NULL) + if ((stream->hThread = CREATE_THREAD(ProcThreadPoll)) == NULL) { PRINT(("Failed creating thread: ProcThreadPoll.")); result = paUnanticipatedHostError; @@ -4441,7 +4441,7 @@ static PaError StartStream( PaStream *s ) } // Wait for thread to start - if (WaitForSingleObject(stream->hThreadStart, 60*1000) == WAIT_TIMEOUT) + if (WaitForSingleObject(stream->hThreadStart, 60*1000) == WAIT_TIMEOUT) { PRINT(("Failed starting thread: timeout.")); result = paUnanticipatedHostError; @@ -4451,17 +4451,17 @@ static PaError StartStream( PaStream *s ) else { // Create blocking operation events (non-signaled event means - blocking operation is pending) - if (stream->out.clientParent != NULL) + if (stream->out.clientParent != NULL) { - if ((stream->hBlockingOpStreamWR = CreateEvent(NULL, TRUE, TRUE, NULL)) == NULL) + if ((stream->hBlockingOpStreamWR = CreateEvent(NULL, TRUE, TRUE, NULL)) == NULL) { result = paInsufficientMemory; goto start_error; } } - if (stream->in.clientParent != NULL) + if (stream->in.clientParent != NULL) { - if ((stream->hBlockingOpStreamRD = CreateEvent(NULL, TRUE, TRUE, NULL)) == NULL) + if ((stream->hBlockingOpStreamRD = CreateEvent(NULL, TRUE, TRUE, NULL)) == NULL) { result = paInsufficientMemory; goto start_error; @@ -4648,7 +4648,7 @@ static PaError ReadStream( PaStream* s, void *_buffer, unsigned long frames ) desired = available; if ((UINT32)desired > frames) desired = frames; - + // Get pointers to read regions read = PaUtil_GetRingBufferReadRegions(stream->in.tailBuffer, desired, &buf1, &buf1_size, &buf2, &buf2_size); @@ -4861,7 +4861,7 @@ static PaError WriteStream( PaStream* s, const void *_buffer, unsigned long fram goto end; } - // Keep waiting again (on Vista it was noticed that WASAPI could SOMETIMES return NULL pointer + // Keep waiting again (on Vista it was noticed that WASAPI could SOMETIMES return NULL pointer // to buffer without returning AUDCLNT_E_BUFFER_TOO_LARGE instead) if (wasapi_buffer == NULL) continue; @@ -5074,10 +5074,10 @@ static PaError MMCSS_activate(PaWasapiThreadPriority nPriorityClass, HANDLE *ret DWORD task_idx = 0; HANDLE hTask; - + if ((UINT32)nPriorityClass >= STATIC_ARRAY_SIZE(mmcs_name)) return paUnanticipatedHostError; - + if ((hTask = pAvSetMmThreadCharacteristics(mmcs_name[nPriorityClass], &task_idx)) == NULL) { PRINT(("WASAPI: AvSetMmThreadCharacteristics failed: error[%d]\n", GetLastError())); @@ -5498,7 +5498,7 @@ PaError PaWasapiWinrt_SetDefaultDeviceId( const unsigned short *pId, int bOutput } // ------------------------------------------------------------------------------------------ -PaError PaWasapiWinrt_PopulateDeviceList( const unsigned short **pId, const unsigned short **pName, +PaError PaWasapiWinrt_PopulateDeviceList( const unsigned short **pId, const unsigned short **pName, const PaWasapiDeviceRole *pRole, unsigned int count, int bOutput ) { #ifdef PA_WINRT @@ -5595,7 +5595,7 @@ HRESULT _PollGetInputFramesAvailable(PaWasapiStream *stream, UINT32 *available) (*available) = 0; - // GetCurrentPadding() has opposite meaning to Output stream + // GetCurrentPadding() has opposite meaning to Output stream if ((hr = IAudioClient_GetCurrentPadding(stream->in.clientProc, available)) != S_OK) return LogHostError(hr); @@ -5763,14 +5763,14 @@ static HRESULT ProcessInputBuffer(PaWasapiStream *stream, PaWasapiHostProcessor void _StreamOnStop(PaWasapiStream *stream) { // Stop INPUT/OUTPUT clients - if (!stream->bBlocking) + if (!stream->bBlocking) { if (stream->in.clientProc != NULL) IAudioClient_Stop(stream->in.clientProc); if (stream->out.clientProc != NULL) IAudioClient_Stop(stream->out.clientProc); - } - else + } + else { if (stream->in.clientParent != NULL) IAudioClient_Stop(stream->in.clientParent); @@ -5799,7 +5799,7 @@ static BOOL PrepareComPointers(PaWasapiStream *stream, BOOL *threadComInitialize If COM is already initialized CoInitialize will either return FALSE, or RPC_E_CHANGED_MODE if it was initialized in a different threading mode. In either case we shouldn't consider it an error - but we need to be careful to not call CoUninitialize() if + but we need to be careful to not call CoUninitialize() if RPC_E_CHANGED_MODE was returned. */ hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); @@ -6035,7 +6035,7 @@ static UINT32 GetSleepTime(PaWasapiStream *stream, UINT32 sleepTimeIn, UINT32 sl UINT32 sleepTime; // According to the issue [https://github.com/PortAudio/portaudio/issues/303] glitches may occur when user frames - // equal to 1/2 of the host buffer frames, therefore the empirical workaround for this problem is to lower + // equal to 1/2 of the host buffer frames, therefore the empirical workaround for this problem is to lower // the sleep time by 2 if (userFramesOut != 0) { @@ -6067,7 +6067,7 @@ static UINT32 ConfigureLoopSleepTimeAndScheduler(PaWasapiStream *stream, ThreadI // polled according its packet length if (stream->bufferMode != paUtilFixedHostBufferSize) { - userFramesOut = (stream->bufferProcessor.framesPerUserBuffer ? stream->bufferProcessor.framesPerUserBuffer : + userFramesOut = (stream->bufferProcessor.framesPerUserBuffer ? stream->bufferProcessor.framesPerUserBuffer : stream->out.params.frames_per_buffer); } @@ -6099,7 +6099,7 @@ static UINT32 ConfigureLoopSleepTimeAndScheduler(PaWasapiStream *stream, ThreadI } // ------------------------------------------------------------------------------------------ -static inline INT32 GetNextSleepTime(SystemTimer *timer, ThreadIdleScheduler *scheduler, LONGLONG startTime, +static inline INT32 GetNextSleepTime(SystemTimer *timer, ThreadIdleScheduler *scheduler, LONGLONG startTime, UINT32 sleepTime) { INT32 nextSleepTime; @@ -6302,8 +6302,8 @@ PA_THREAD_FUNC ProcThreadPoll(void *param) UINT32 framesProc = stream->out.framesPerBuffer; // If we got less frames avoid sleeping again as it might be the corner case and buffer - // has sufficient number of frames now, in case 'out.framesPerBuffer' is 1/2 of the host - // buffer sleeping again may cause underruns. Do short busy waiting (normally might take + // has sufficient number of frames now, in case 'out.framesPerBuffer' is 1/2 of the host + // buffer sleeping again may cause underruns. Do short busy waiting (normally might take // 1-2 iterations) if (framesAvail < framesProc) { @@ -6352,7 +6352,7 @@ PA_THREAD_FUNC ProcThreadPoll(void *param) UINT32 i_frames = 0, i_processed = 0, o_frames = 0; BYTE *i_data = NULL, *o_data = NULL, *o_data_host = NULL; DWORD i_flags = 0; - + startTime = SystemTimer_GetTime(&timer); #ifdef PA_WASAPI_LOG_TIME_SLOTS