http://bugs.winehq.org/show_bug.cgi?id=22034
--- Comment #4 from Raymond superquad.vortex2@gmail.com 2010-12-05 19:54:56 CST --- The other problem is winealsa.drv hard coded to support KSDATAFORMAT_SUBTYPE_IEEE_FLOAT in ALSA_supportedFormat
ALSA_ComputeCaps() does not check whether the device support SND_PCM_FORMAT_FLOAT_LE when wine allow user to modify registry to use "hw" device which most of them does not support SND_PCM_FORMAT_FLOAT_LE
} else if ((wwo->format.Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE) && IsEqualGUID(&wwo->format.SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)){ format = (wwo->format.Format.wBitsPerSample == 32) ? SND_PCM_FORMAT_FLOAT_LE : -1; } else { ERR("invalid format: %0x04x\n", wwo->format.Format.wFormatTag); retcode = WAVERR_BADFORMAT; goto errexit; }
if ((err = snd_pcm_hw_params_set_format(pcm, hw_params, format)) < 0) { WARN("unable to set required format: %s\n", snd_pcm_format_name(format)); EXIT_ON_ERROR( snd_pcm_hw_params_set_format(pcm, hw_params, format), WAVERR_BADFORMAT, "unable to set required format" ); }