Comment 175 for bug 371897

Revision history for this message
In , Vitaliy-bugzilla (vitaliy-bugzilla) wrote :

This is a point about inclusion of this driver into Wine. It's been stated why it's a bad idea. I've explained AGAIN why. Unless person comparing apples to apples any arguments like "gee it works better then broken ALSA driver" are not going to cut it.

As for the patches themselves:
One of the core functions is not properly implemented (not sure how anything really works for you especially in games where timing of audio events is really critical):

+static HRESULT WINAPI IDsDriverBufferImpl_GetPosition(PIDSDRIVERBUFFER iface,
+ /* These values are fake, and must remain so */
+ if (lpdwPlay)
+ *lpdwPlay = (This->buffer_read_offset + This->buffer_length - This->fraglen * 5) % This->buffer_length;
+ if (lpdwWrite)
+ *lpdwWrite = This->buffer_read_offset;

This is wrong (obviously needs more work):
+static HRESULT WINAPI IDsDriverImpl_CreateSoundBuffer(PIDSDRIVER iface,
+ That->buffer = pa_xmalloc0(That->buffer_length);

+ if (That->buffer)
+ HeapFree(GetProcessHeap(), 0, That->buffer);
+ if (*ippdsdb)
+ HeapFree(GetProcessHeap(), 0, That);