ab3093b625129c921f4c26202a14367b8c58b017
[reactos.git] / reactos / dll / win32 / wdmaud.drv / wdmaud.h
1 #ifndef WDMAUD_H__
2 #define WDMAUD_H__
3
4 #include <windows.h>
5 #include <ntddsnd.h>
6 #include <sndtypes.h>
7 #include <setupapi.h>
8 #include <mmddk.h>
9 #include <mmebuddy.h>
10
11 #include <ks.h>
12 #include <ksmedia.h>
13 #include "interface.h"
14 #include "mmixer.h"
15 #include <debug.h>
16
17 BOOL
18 WdmAudInitUserModeMixer(VOID);
19
20 ULONG
21 WdmAudGetWaveOutCount(VOID);
22
23 ULONG
24 WdmAudGetWaveInCount(VOID);
25
26 ULONG
27 WdmAudGetMixerCount(VOID);
28
29 MMRESULT
30 WdmAudOpenSoundDeviceByLegacy(VOID);
31
32 MMRESULT
33 WdmAudGetNumWdmDevsByMMixer(
34 IN MMDEVICE_TYPE DeviceType,
35 OUT DWORD* DeviceCount);
36
37 MMRESULT
38 WdmAudCommitWaveBufferByLegacy(
39 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
40 IN PVOID OffsetPtr,
41 IN DWORD Length,
42 IN PSOUND_OVERLAPPED Overlap,
43 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
44
45 MMRESULT
46 WriteFileEx_Remixer(
47 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
48 IN PVOID OffsetPtr,
49 IN DWORD Length,
50 IN PSOUND_OVERLAPPED Overlap,
51 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
52
53 MMRESULT
54 WdmAudGetCapabilitiesByMMixer(
55 IN PSOUND_DEVICE SoundDevice,
56 IN DWORD DeviceId,
57 OUT PVOID Capabilities,
58 IN DWORD CapabilitiesSize);
59
60 MMRESULT
61 WdmAudOpenSoundDeviceByMMixer(
62 IN struct _SOUND_DEVICE* SoundDevice,
63 OUT PVOID* Handle);
64
65 MMRESULT
66 WdmAudCloseSoundDeviceByMMixer(
67 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
68 IN PVOID Handle);
69
70 MMRESULT
71 WdmAudGetLineInfo(
72 IN HANDLE hMixer,
73 IN DWORD MixerId,
74 IN LPMIXERLINEW MixLine,
75 IN ULONG Flags);
76
77 MMRESULT
78 WdmAudGetLineControls(
79 IN HANDLE hMixer,
80 IN DWORD MixerId,
81 IN LPMIXERLINECONTROLSW MixControls,
82 IN ULONG Flags);
83
84 MMRESULT
85 WdmAudSetControlDetails(
86 IN HANDLE hMixer,
87 IN DWORD MixerId,
88 IN LPMIXERCONTROLDETAILS MixDetails,
89 IN ULONG Flags);
90
91 MMRESULT
92 WdmAudGetControlDetails(
93 IN HANDLE hMixer,
94 IN DWORD MixerId,
95 IN LPMIXERCONTROLDETAILS MixDetails,
96 IN ULONG Flags);
97
98 MMRESULT
99 WdmAudSetWaveDeviceFormatByMMixer(
100 IN PSOUND_DEVICE_INSTANCE Instance,
101 IN DWORD DeviceId,
102 IN PWAVEFORMATEX WaveFormat,
103 IN DWORD WaveFormatSize);
104
105 MMRESULT
106 WdmAudGetDeviceInterfaceStringByMMixer(
107 IN MMDEVICE_TYPE DeviceType,
108 IN DWORD DeviceId,
109 IN LPWSTR Interface,
110 IN DWORD InterfaceLength,
111 OUT DWORD * InterfaceSize);
112
113 MMRESULT
114 WdmAudSetMixerDeviceFormatByMMixer(
115 IN PSOUND_DEVICE_INSTANCE Instance,
116 IN DWORD DeviceId,
117 IN PWAVEFORMATEX WaveFormat,
118 IN DWORD WaveFormatSize);
119
120 MMRESULT
121 WdmAudQueryMixerInfoByMMixer(
122 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
123 IN DWORD DeviceId,
124 IN UINT uMsg,
125 IN LPVOID Parameter,
126 IN DWORD Flags);
127
128 MMRESULT
129 WdmAudSetWaveStateByMMixer(
130 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
131 IN BOOL bStart);
132
133 MMRESULT
134 WdmAudResetStreamByMMixer(
135 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
136 IN MMDEVICE_TYPE DeviceType,
137 IN BOOLEAN bStartReset);
138
139 MMRESULT
140 WdmAudGetWavePositionByMMixer(
141 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
142 IN MMTIME* Time);
143
144 MMRESULT
145 WdmAudCommitWaveBufferByMMixer(
146 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
147 IN PVOID OffsetPtr,
148 IN DWORD Length,
149 IN PSOUND_OVERLAPPED Overlap,
150 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
151
152 MMRESULT
153 WdmAudCleanupByMMixer(VOID);
154
155 /* legacy.c */
156
157 MMRESULT
158 WdmAudCleanupByLegacy(VOID);
159
160 MMRESULT
161 WdmAudGetCapabilitiesByLegacy(
162 IN PSOUND_DEVICE SoundDevice,
163 IN DWORD DeviceId,
164 OUT PVOID Capabilities,
165 IN DWORD CapabilitiesSize);
166
167 MMRESULT
168 WdmAudOpenSoundDeviceByLegacy(VOID);
169
170 MMRESULT
171 WdmAudCloseSoundDeviceByLegacy(
172 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
173 IN PVOID Handle);
174
175 MMRESULT
176 WdmAudGetDeviceInterfaceStringByLegacy(
177 IN MMDEVICE_TYPE DeviceType,
178 IN DWORD DeviceId,
179 IN LPWSTR Interface,
180 IN DWORD InterfaceLength,
181 OUT DWORD * InterfaceSize);
182
183 MMRESULT
184 WdmAudSetMixerDeviceFormatByLegacy(
185 IN PSOUND_DEVICE_INSTANCE Instance,
186 IN DWORD DeviceId,
187 IN PWAVEFORMATEX WaveFormat,
188 IN DWORD WaveFormatSize);
189
190 MMRESULT
191 WdmAudQueryMixerInfoByLegacy(
192 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
193 IN DWORD DeviceId,
194 IN UINT uMsg,
195 IN LPVOID Parameter,
196 IN DWORD Flags);
197
198 MMRESULT
199 WdmAudSetWaveDeviceFormatByLegacy(
200 IN PSOUND_DEVICE_INSTANCE Instance,
201 IN DWORD DeviceId,
202 IN PWAVEFORMATEX WaveFormat,
203 IN DWORD WaveFormatSize);
204
205 MMRESULT
206 WdmAudSetWaveStateByLegacy(
207 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
208 IN BOOL bStart);
209
210 MMRESULT
211 WdmAudResetStreamByLegacy(
212 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
213 IN MMDEVICE_TYPE DeviceType,
214 IN BOOLEAN bStartReset);
215
216 MMRESULT
217 WdmAudGetWavePositionByLegacy(
218 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
219 IN MMTIME* Time);
220
221 MMRESULT
222 WriteFileEx_Committer2(
223 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
224 IN PVOID OffsetPtr,
225 IN DWORD Length,
226 IN PSOUND_OVERLAPPED Overlap,
227 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
228
229 MMRESULT
230 WdmAudGetNumWdmDevsByLegacy(
231 IN MMDEVICE_TYPE DeviceType,
232 OUT DWORD* DeviceCount);
233
234 DWORD
235 WINAPI
236 MixerEventThreadRoutine(
237 LPVOID Parameter);
238
239 #endif