winemmaudio.drv: Add support for wavein

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Fri May 7 10:11:27 CDT 2010


Maarten,

I looked at part of these two patches about winmm->mmdevapi bridge
and they looked very clean to me.

+    caps.dwSupport = WAVECAPS_SAMPLEACCURATE|WAVECAPS_LRVOLUME|WAVECAPS_DIRECTSOUND;
AFAIK WAVECAPS_LRVOLUME never occurs alone, _VOLUME is missing.

+    if (wfx->wFormatTag == WAVE_FORMAT_EXTENSIBLE)
+        extra = sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX);
+    else
+        extra = 0;
This seems to depend on some assumption that IAudioClient_IsFormatSupported
will reject anything but WAVE_FORMAT_EXTENSIBLE and WAVE_FORMAT_PCM.
You may not want to not depend on this.

+        wwo->wfx->nBlockAlign = wfx->nChannels*wfx->wBitsPerSample/8;
+        wwo->wfx->nAvgBytesPerSec = wfx->nSamplesPerSec*wfx->nBlockAlign;
This only applies to WAVE_FORMAT_PCM (and PCM encapsulated in EXTENSIBLE).


I've attached tests that you may want to try out.  I've never
submitted them because they cause weird behaviour in Wine
(both incorrect duration and frequencies).
On native, they work fine, which shows that native ignores broken
nAvgBytesPerSec and nBlockAlign.

How does your OpenAL bridge behave with them?
You need WINETEST_INTERACTIVE=1 because it's essential to hear the sound.

Regards,
	Jörg Höhle


-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-winmm-tests-test-some-inconsistent-WAVEFORMAT-descr.patch
Type: application/octet-stream
Size: 5003 bytes
Desc: 0001-winmm-tests-test-some-inconsistent-WAVEFORMAT-descr.patch
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20100507/d6d226a8/attachment-0001.obj>


More information about the wine-devel mailing list