goto error;\r
}\r
if (value.pwszVal)\r
- wcstombs(deviceName, value.pwszVal, MAX_STR_LEN-1);\r
+ WideCharToMultiByte(CP_UTF8, 0, value.pwszVal, (int)wcslen(value.pwszVal), deviceName, MAX_STR_LEN-1, 0, 0);\r
else\r
_snprintf(deviceName, MAX_STR_LEN-1, "baddev%d", i);\r
deviceInfo->name = deviceName;\r
if (framesPerLatency == 0)\r
framesPerLatency = MakeFramesFromHns(pInfo->DefaultDevicePeriod, pSub->wavex.Format.nSamplesPerSec);\r
\r
- //! Exclusive Input stream renders data in 6 packets, we must set then the size of\r
- //! single packet, total buffer size, e.g. required latency will be PacketSize * 6\r
+ // Exclusive Input stream renders data in 6 packets, we must set then the size of\r
+ // single packet, total buffer size, e.g. required latency will be PacketSize * 6\r
if (!output && (pSub->shareMode == AUDCLNT_SHAREMODE_EXCLUSIVE))\r
{\r
- framesPerLatency /= WASAPI_PACKETS_PER_INPUT_BUFFER;\r
+ // Do it only for Polling mode\r
+ if ((pSub->streamFlags & AUDCLNT_STREAMFLAGS_EVENTCALLBACK) == 0)\r
+ {\r
+ framesPerLatency /= WASAPI_PACKETS_PER_INPUT_BUFFER;\r
+ }\r
}\r
\r
// Calculate aligned period\r
\r
// Limit desired to amount of requested frames\r
desired = available;\r
- if (desired > frames)\r
+ if ((UINT32)desired > frames)\r
desired = frames;\r
\r
// Get pointers to read regions\r