Fixed bug (when PAWIN_USE_WDMKS_DEVICE_INFO is defined) where wmme device channel count would be incorrect for default device resulting in distorted sound if user tries to open device with more channels than device can handle. Thanks to Dmitry Kostjuchenko for the patch.

This commit is contained in:
rossb 2009-12-09 01:31:44 +00:00
commit 61d1252b34

View file

@ -820,6 +820,7 @@ static PaError InitializeOutputDeviceInfo( PaWinMmeHostApiRepresentation *winMme
MMRESULT mmresult;
WAVEOUTCAPS woc;
PaDeviceInfo *deviceInfo = &winMmeDeviceInfo->inheritedDeviceInfo;
int wdmksDeviceOutputChannelCountIsKnown;
*success = 0;
@ -885,8 +886,10 @@ static PaError InitializeOutputDeviceInfo( PaWinMmeHostApiRepresentation *winMme
}
#ifdef PAWIN_USE_WDMKS_DEVICE_INFO
winMmeDeviceInfo->deviceOutputChannelCountIsKnown =
QueryWaveOutKSFilterMaxChannels( winMmeOutputDeviceId, &deviceInfo->maxOutputChannels );
wdmksDeviceOutputChannelCountIsKnown = QueryWaveOutKSFilterMaxChannels(
winMmeOutputDeviceId, &deviceInfo->maxOutputChannels );
if( wdmksDeviceOutputChannelCountIsKnown && !winMmeDeviceInfo->deviceOutputChannelCountIsKnown )
winMmeDeviceInfo->deviceOutputChannelCountIsKnown = 1;
#endif /* PAWIN_USE_WDMKS_DEVICE_INFO */
winMmeDeviceInfo->dwFormats = woc.dwFormats;