\r
PaWasapiDeviceInfo *devInfo;\r
\r
- // Is true when WOW64 Vista Workaround is needed\r
- BOOL useVistaWOW64Workaround;\r
+ // Is true when WOW64 Vista/7 Workaround is needed\r
+ BOOL useWOW64Workaround;\r
}\r
PaWasapiHostApiRepresentation;\r
\r
}\r
\r
// ------------------------------------------------------------------------------------------\r
-static BOOL UseWOW64VistaWorkaround()\r
+static BOOL UseWOW64Workaround()\r
{\r
- return (IsWow64() && (GetWindowsVersion() & WINDOWS_VISTA_SERVER2008));\r
+ // note: Excluded OS version check as it is reported that event-driven mode \r
+ // fails under Windows 7 as well. Now let's assume any WOW64 process \r
+ // requires a wokaround.\r
+\r
+ return (IsWow64()/* && (GetWindowsVersion() & WINDOWS_VISTA_SERVER2008)*/);\r
}\r
\r
// ------------------------------------------------------------------------------------------\r
\r
\r
// findout if platform workaround is required\r
- paWasapi->useVistaWOW64Workaround = UseWOW64VistaWorkaround();\r
+ paWasapi->useWOW64Workaround = UseWOW64Workaround();\r
\r
SAFE_RELEASE(pEndPoints);\r
\r
\r
// Choose processing mode\r
stream->in.streamFlags = AUDCLNT_STREAMFLAGS_EVENTCALLBACK;\r
- if (paWasapi->useVistaWOW64Workaround)\r
+ if (paWasapi->useWOW64Workaround)\r
stream->in.streamFlags = 0; // polling interface\r
if (streamCallback == NULL)\r
stream->in.streamFlags = 0; // polling interface\r
// Append buffer latency to interface latency in shared mode (see GetStreamLatency notes)\r
stream->in.latency_seconds += buffer_latency;\r
\r
- PRINT(("PaWASAPIOpenStream(input): framesPerHostCallback[ %d ] latency[ %.02fms ] exclusive[ %s ] wow64_fix[ %s ]\n", (UINT32)stream->in.framesPerHostCallback, (float)(stream->in.latency_seconds*1000.0f), (stream->in.shareMode == AUDCLNT_SHAREMODE_EXCLUSIVE ? "YES" : "NO"), (paWasapi->useVistaWOW64Workaround ? "YES" : "NO")));\r
+ PRINT(("PaWASAPIOpenStream(input): framesPerHostCallback[ %d ] latency[ %.02fms ] exclusive[ %s ] wow64_fix[ %s ]\n", (UINT32)stream->in.framesPerHostCallback, (float)(stream->in.latency_seconds*1000.0f), (stream->in.shareMode == AUDCLNT_SHAREMODE_EXCLUSIVE ? "YES" : "NO"), (paWasapi->useWOW64Workaround ? "YES" : "NO")));\r
}\r
else\r
{\r
\r
// Choose processing mode\r
stream->out.streamFlags = AUDCLNT_STREAMFLAGS_EVENTCALLBACK;\r
- if (paWasapi->useVistaWOW64Workaround)\r
+ if (paWasapi->useWOW64Workaround)\r
stream->out.streamFlags = 0; // polling interface\r
if (streamCallback == NULL)\r
stream->out.streamFlags = 0; // polling interface\r
// Append buffer latency to interface latency in shared mode (see GetStreamLatency notes)\r
stream->out.latency_seconds += buffer_latency;\r
\r
- PRINT(("PaWASAPIOpenStream(output): framesPerHostCallback[ %d ] latency[ %.02fms ] exclusive[ %s ] wow64_fix[ %s ]\n", (UINT32)stream->out.framesPerHostCallback, (float)(stream->out.latency_seconds*1000.0f), (stream->out.shareMode == AUDCLNT_SHAREMODE_EXCLUSIVE ? "YES" : "NO"), (paWasapi->useVistaWOW64Workaround ? "YES" : "NO")));\r
+ PRINT(("PaWASAPIOpenStream(output): framesPerHostCallback[ %d ] latency[ %.02fms ] exclusive[ %s ] wow64_fix[ %s ]\n", (UINT32)stream->out.framesPerHostCallback, (float)(stream->out.latency_seconds*1000.0f), (stream->out.shareMode == AUDCLNT_SHAREMODE_EXCLUSIVE ? "YES" : "NO"), (paWasapi->useWOW64Workaround ? "YES" : "NO")));\r
}\r
else\r
{\r