Wine PulseAudio Driver

Arthur Taylor art at ified.ca
Thu Oct 2 20:12:57 CDT 2008


Umm, disregard all of this... sorry for spam
> To wine developers: would it be useful to review dlls/winmm? Currently
> all mm-drivers (aux, mid, mod, wid, wod) functions are called using
> MDRV_Message calls. The arguments of a MDRV_Message are the device id
> (an array index), the message identifier, dwUser as the driver instance,
> and two parameters that depend upon the message. The driver instance
> DWORD seems useless to me, and it's value, while consistent, looks
> uninitialized (on my system is either 57 if I enable tracing, or random
> crazy large for a pointer if not.)
> 	My problem is that WaveIn / WaveOut devices are supposed to be able to
> support multiple streams if the hardware allows it, however it is
> impossible to support this currently as all MDRV_Message gives us is the
> device id the message is for (the only arguments to a WODM_PAUSE is the
> device id for instance.) This makes multiple streams impossible and
> therefor waveout drivers only support one stream per device. wineesd.drv
> gets around this by staticly making 10 waveout and 10 wavein devices,
> all effectively the same.
> 	If MDRV_Message were to pass in dwUser the device opening instance
> handle which winmm creates and apps use for the wave{out,in}* calls it
> would be possible to support multiple streams per device, and devices
> could represent hardware 1:1 like they are supposed to. So my questions
> are this: would changing the value of dwUser to the device instance
> handle be a good idea, and do any current mm-drivers depend upon dwUser
> being the seemingly uninitialized driver instance value?




More information about the wine-devel mailing list