http://bugs.winehq.org/show_bug.cgi?id=28109
--- Comment #6 from Austin English austinenglish@gmail.com 2012-10-31 13:35:55 CDT --- (In reply to comment #5)
Please apply at least [PATCH 1/3] winmm: Prefer using MMSYSERR_* over AUDCLNT_E_* from mmdevapi. [PATCH 2/3] winmm: Avoid generic MMSYSERR_ERROR during initialisation. [and optionally patch 3] starting with http://www.winehq.org/pipermail/wine-patches/2012-October/119353.html and report back.
The cause is always the same. Scanning all devices causes side effects as some devices (PulseAudio) block access to other ones (hw:0) for some time.
The patch does not preventthat, but now winmm yields error codes such as MMSYSERR_ALLOCATED compatible with native. The test suite knows such "normal" error codes and won't complain like about MMSYSERR_ERROR.
austin@debian53:~/wine-git/dlls/winmm/tests$ make test ../../../tools/runtest -q -P wine -M winmm.dll -T ../../.. -p winmm_test.exe.so capture.c && touch capture.ok capture.c:150: Test failed: waveInOpen(2): format=11025x 8x1 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=11025x 8x2 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=11025x16x1 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=11025x16x2 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=22050x 8x1 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=22050x 8x2 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=22050x16x1 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=22050x16x2 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=44100x 8x1 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=44100x 8x2 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) capture.c:150: Test failed: waveInOpen(2): format=44100x16x1 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT(The specified format is not supported or cannot be translated. Use the Capabilities function to determine the supported formats.) fixme:adpcm:ADPCM_StreamOpen We don't support encoding yet make: *** [capture.ok] Error 11