http://bugs.winehq.org/show_bug.cgi?id=28109
--- Comment #7 from Jörg Höhle hoehle@users.sourceforge.net 2012-10-31 15:06:25 CDT --- WAVE_MAPPED -> WAVERR_BADFORMAT That is as good as it can get, I'm afraid. That case is not changed by my patch. The mapper is expected to return BADFORMAT when it cannot find anything suitable. And nothing suits because the underlying plughw device does not open (for some time).
Maybe a distinct work-around patch(hack) could observe that specific trouble with the underlying devices and remap (pass-through) the error, or wait some time and retry...
In your previous log, there were 3 kind of errors: capture.c:150: Test failed: waveInOpen(2): format=22050x16x2 flags=50004(CALLBACK_EVENT|WAVE_MAPPED) rc=WAVERR_BADFORMAT capture.c:150: Test failed: waveInOpen(2): format=44100x 8x1 flags=50000(CALLBACK_EVENT) rc=MMSYSERR_ERROR(Undefined external error.) capture.c:150: Test failed: waveInOpen(2): format=44100x 8x1 flags=50008(CALLBACK_EVENT|WAVE_FORMAT_DIRECT) rc=MMSYSERR_ERROR(Undefined external error.) Your test result shows that my patches silenced the ones not involving the wave mapper, because there winmm returns a a compatible MMSYSERR_* (e.g. ALLOCATED).