RFC: implementation of driver functionality in msacm (RESEND)

Alex Villací­s Lasso a_villacis at palosanto.com
Tue Jan 10 12:45:22 CST 2006

(resent because previous attempt never appeared in wine-devel)

This patch is the preliminary result of some work I have been doing in 
order to add missing functionality to builtin msacm32.dll. I am 
submitting this to wine-devel rather than wine-patches, and in one big 
patch rather than several because I would like comments on some choices 
I made while adding features. The following is the list of features 
added by the patch:

* Implementation of acmDriverAddW(), and delegation of acmDriverAddA() 
to acmDriverAddW()
* Working implementation of modes of operation of acmDriverAdd[AW]: add 
driver by new registry entry (ACM_DRIVERADDF_NAME), add (local) driver 
by combination of hModule/acmDriverProc (ACM_DRIVERADDF_FUNCTION), add 
notification window for event broadcasts (ACM_DRIVERADDF_NOTIFYHWND)
* Implementation of broadcasts to notification windows on driver 
add/remove, enabling/disabling, and priority changes
* Fix for implementation quirks of acmDriverMessage() in order to allow 
native codecs to display configuration dialogs
* Working implementation of acmDriverPriority(), with support of delayed 
notification broadcasts (for one process only). Includes saving new 
priorities and enabled status to registry
* Loading of codec priorities and enabled status from registry
* Support for ACM_METRIC_DRIVER_SUPPORT in acmMetrics()

I must note that in order to provide support for acmDriverAddW() in 
ACM_DRIVERADDF_FUNCTION mode, it is necessary to treat an 
application-supplied module with an application-supplied driverProc as a 
full-blown winmm driver. Therefore, the patch includes a new procedure 
in winmm called wineAddDriver(), that instructs winmm to build a hDrvr 
from a supplied hModule/driverProc pair, rather than loading both from a 
DLL, as OpenDriver() does. This allows the rest of the code to continue 
using SendDriverMessage() as usual.

Alex Villacís Lasso
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wine-msacm-acmDriver.patch.gz
Type: application/x-gzip
Size: 10280 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20060110/cbfa41f8/wine-msacm-acmDriver.patch.bin

More information about the wine-devel mailing list