Hi wine-devs, I have sent this patch to wine-patches, but it appears to have been dropped. I have resent it with some additional explanantion (below).
Is there anything I've done wrong / anything I should do in order to get this patch accepted? Any advice would be appreciated, Thanks Davin PS. How long should I wait for a patch to be accepted before I assume it's been dropped? ---- Hi, This is my first ever wine patch. I have been doing work on DSound as discussed on wine-devel with some very promising results (see the discussion there). As a result I have a large number of changes which I intend to provide a series of patches for. This is one is probably the most trivial fix and is largely unrelated to the other fixes. But if you look at the code for a while as I have you can see that it's obviously correct - the existing implementation of PhaseCancel inverts the original waveform; with this patch it doesn't. Please consider accepting. Thanks, - Davin Changelog: DSound: PhaseCancel subtracts secondary buffer from primary buffer, not the other way around. Davin McCall [EMAIL PROTECTED]
--- wine-0.9-orig/dlls/dsound/mixer.c Mon Oct 17 19:24:50 2005 +++ wine-0.9/dlls/dsound/mixer.c Mon Oct 31 00:11:53 2005 @@ -536,8 +536,8 @@ for (i = 0; i < todo; i++) { /* 8-bit WAV is unsigned */ - field = (*ibuf++ - 128); - field -= (*obuf - 128); + field = (*obuf - 128); + field -= (*ibuf++ - 128); if (field > 127) field = 127; else if (field < -128) field = -128; *obuf++ = field + 128; @@ -549,8 +549,8 @@ for (i = 0; i < todo; i++) { /* 8-bit WAV is unsigned */ - field = (*ibuf++ - 128); - field -= (*obuf - 128); + field = (*obuf - 128); + field -= (*ibuf++ - 128); if (field > 127) field = 127; else if (field < -128) field = -128; *obuf++ = field + 128; @@ -569,8 +569,8 @@ for (i = 0; i < todo; i++) { /* 16-bit WAV is signed */ - field = *ibufs++; - field -= *obufs; + field = *obufs; + field -= *ibufs++; if (field > 32767) field = 32767; else if (field < -32768) field = -32768; *obufs++ = field; @@ -582,8 +582,8 @@ for (i = 0; i < todo; i++) { /* 16-bit WAV is signed */ - field = *ibufs++; - field -= *obufs; + field = *obufs; + field -= *ibufs++; if (field > 32767) field = 32767; else if (field < -32768) field = -32768; *obufs++ = field;