13 #include "interface.h"
18 WdmAudInitUserModeMixer();
21 WdmAudGetWaveOutCount();
24 WdmAudGetWaveInCount();
27 WdmAudGetMixerCount();
30 WdmAudOpenSoundDeviceByLegacy();
33 WdmAudGetNumDevsByMMixer(
34 IN MMDEVICE_TYPE DeviceType
,
35 OUT DWORD
* DeviceCount
);
38 WdmAudCommitWaveBufferByLegacy(
39 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
42 IN PSOUND_OVERLAPPED Overlap
,
43 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
47 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
50 IN PSOUND_OVERLAPPED Overlap
,
51 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
54 WdmAudGetCapabilitiesByMMixer(
55 IN PSOUND_DEVICE SoundDevice
,
57 OUT PVOID Capabilities
,
58 IN DWORD CapabilitiesSize
);
61 WdmAudOpenSoundDeviceByMMixer(
62 IN
struct _SOUND_DEVICE
* SoundDevice
,
66 WdmAudCloseSoundDeviceByMMixer(
67 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
73 IN LPMIXERLINEW MixLine
,
77 WdmAudGetLineControls(
79 IN LPMIXERLINECONTROLSW MixControls
,
83 WdmAudSetControlDetails(
85 IN LPMIXERCONTROLDETAILS MixDetails
,
89 WdmAudGetControlDetails(
91 IN LPMIXERCONTROLDETAILS MixDetails
,
95 WdmAudSetWdmWaveDeviceFormatByMMixer(
96 IN PSOUND_DEVICE_INSTANCE Instance
,
98 IN PWAVEFORMATEX WaveFormat
,
99 IN DWORD WaveFormatSize
);
102 WdmAudGetDeviceInterfaceStringByMMixer(
103 IN MMDEVICE_TYPE DeviceType
,
106 IN DWORD InterfaceLength
,
107 OUT DWORD
* InterfaceSize
);
110 WdmAudSetMixerDeviceFormatByMMixer(
111 IN PSOUND_DEVICE_INSTANCE Instance
,
113 IN PWAVEFORMATEX WaveFormat
,
114 IN DWORD WaveFormatSize
);
117 WdmAudQueryMixerInfoByMMixer(
118 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
124 WdmAudSetWdmWaveStateByMMixer(
125 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
129 WdmAudResetStreamByMMixer(
130 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
131 IN MMDEVICE_TYPE DeviceType
,
132 IN BOOLEAN bStartReset
);
135 WdmAudGetWdmPositionByMMixer(
136 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
140 WdmAudCommitWaveBufferByMMixer(
141 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
144 IN PSOUND_OVERLAPPED Overlap
,
145 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
148 WdmAudCleanupByMMixer();
153 WdmAudCleanupByLegacy();
156 WdmAudGetCapabilitiesByLegacy(
157 IN PSOUND_DEVICE SoundDevice
,
159 OUT PVOID Capabilities
,
160 IN DWORD CapabilitiesSize
);
163 WdmAudOpenSoundDeviceByLegacy();
166 WdmAudCloseSoundDeviceByLegacy(
167 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
171 WdmAudGetDeviceInterfaceStringByLegacy(
172 IN MMDEVICE_TYPE DeviceType
,
175 IN DWORD InterfaceLength
,
176 OUT DWORD
* InterfaceSize
);
179 WdmAudSetMixerDeviceFormatByLegacy(
180 IN PSOUND_DEVICE_INSTANCE Instance
,
182 IN PWAVEFORMATEX WaveFormat
,
183 IN DWORD WaveFormatSize
);
186 WdmAudQueryMixerInfoByLegacy(
187 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
193 WdmAudSetWaveDeviceFormatByLegacy(
194 IN PSOUND_DEVICE_INSTANCE Instance
,
196 IN PWAVEFORMATEX WaveFormat
,
197 IN DWORD WaveFormatSize
);
200 WdmAudSetWaveStateByLegacy(
201 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
205 WdmAudResetStreamByLegacy(
206 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
207 IN MMDEVICE_TYPE DeviceType
,
208 IN BOOLEAN bStartReset
);
211 WdmAudGetWavePositionByLegacy(
212 IN
struct _SOUND_DEVICE_INSTANCE
* SoundDeviceInstance
,
216 WriteFileEx_Committer2(
217 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance
,
220 IN PSOUND_OVERLAPPED Overlap
,
221 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
224 WdmAudGetNumWdmDevsByLegacy(
225 IN MMDEVICE_TYPE DeviceType
,
226 OUT DWORD
* DeviceCount
);
230 MixerEventThreadRoutine(