Notifying Clients from Audio Drivers
User-mode drivers are responsible for notifying clients upon the completion of various audio operations. Clients indicate the type of notification, if any, they expect when they open a driver instance for waveform, MIDI, or mixer operations. (Refer to MIDM_OPEN, MODM_OPEN, MXDM_OPEN, WIDM_OPEN, and WODM_OPEN messages.) Clients that request notification can specify any of the following notification targets:
·A callback function
·A window handle
·An event handle
·A thread identifier
Mixer drivers accept only window handles.
User-mode drivers notify clients by calling the DriverCallback function in winmm.dll. This function delivers a message to the client’s notification target. The function also delivers message parameters, if the target type accepts parameters.
Following are the messages user-mode drivers must send to a client if the client has requested notification:
Operations | Messages |
Waveform Input | WIM_CLOSE WIM_DATA WIM_OPEN |
Waveform Output | WOM_CLOSE WOM_DONE WOM_OPEN |
MIDI Input | MIM_CLOSE MIM_DATA MIM_ERROR MIM_LONGDATA MIM_LONGERROR MIM_MOREDATA MIM_OPEN |
MIDI Output | MOM_CLOSE MOM_DONE MOM_OPENMOM_POSITIONCB |
Mixer | MM_MIXM_LINE_CHANGE MM_MIXM_CONTROL_CHANGE |