3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS Multimedia
5 * FILE: dll/win32/mmdrv/mme.c
6 * PURPOSE: Multimedia User Mode Driver (MME Interface)
7 * PROGRAMMER: Andrew Greenwood
10 * Jan 14, 2007: Rewritten and tidied up
16 Sends a message to the client (application), such as WOM_DONE. This
17 is just a wrapper around DriverCallback which translates the
18 parameters appropriately.
23 SessionInfo
* session_info
,
28 return DriverCallback(session_info
->callback
,
29 HIWORD(session_info
->flags
),
30 session_info
->mme_handle
,
32 session_info
->app_user_data
,
48 DWORD_PTR private_handle
,
54 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p80.htm */
55 case WODM_GETNUMDEVS
:
56 DPRINT("WODM_GETNUMDEVS\n");
57 return GetDeviceCount(WaveOutDevice
);
59 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p6h.htm */
60 case WODM_GETDEVCAPS
:
61 DPRINT("WODM_GETDEVCAPS\n");
62 return GetDeviceCapabilities(WaveOutDevice
,
67 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p85.htm */
70 WAVEOPENDESC
* open_desc
= (WAVEOPENDESC
*) parameter1
;
71 DPRINT("WODM_OPEN\n");
73 if ( parameter2
&& WAVE_FORMAT_QUERY
)
74 return QueryWaveFormat(WaveOutDevice
, open_desc
->lpFormat
);
76 return OpenDevice(WaveOutDevice
,
83 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p6g.htm */
86 DPRINT("WODM_CLOSE\n");
87 return CloseDevice(private_handle
);
90 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p9w.htm */
93 DPRINT("WODM_WRITE\n");
94 return WriteWaveBuffer(private_handle
,
95 (PWAVEHDR
) parameter1
,
99 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p86.htm */
102 DPRINT("WODM_PAUSE\n");
103 return HandleBySessionThread(private_handle
, message
, 0);
106 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p89.htm */
109 DPRINT("WODM_RESTART\n");
110 return HandleBySessionThread(private_handle
, message
, 0);
113 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p88.htm */
116 DPRINT("WODM_RESET\n");
117 return HandleBySessionThread(private_handle
, message
, 0);
120 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p83.htm */
124 DPRINT("WODM_GETPOS\n");
125 return GetPosition(private_handle
,
126 (PMMTIME
) parameter1
,
131 /* http://www.osronline.com/ddkx/w98ddk/mmedia_4p6f.htm */
132 case WODM_BREAKLOOP
:
134 DPRINT("WODM_BREAKLOOP\n");
135 return HandleBySessionThread(private_handle
, message
, 0);
141 DPRINT("Unsupported message\n");
142 return MMSYSERR_NOTSUPPORTED
;