[CMAKE]
[reactos.git] / 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 WdmAudGetNumWdmDevsByMMixer(
31 IN MMDEVICE_TYPE DeviceType,
32 OUT DWORD* DeviceCount);
33
34 MMRESULT
35 WdmAudCommitWaveBufferByLegacy(
36 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
37 IN PVOID OffsetPtr,
38 IN DWORD Length,
39 IN PSOUND_OVERLAPPED Overlap,
40 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
41
42 MMRESULT
43 WriteFileEx_Remixer(
44 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
45 IN PVOID OffsetPtr,
46 IN DWORD Length,
47 IN PSOUND_OVERLAPPED Overlap,
48 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
49
50 MMRESULT
51 WdmAudGetCapabilitiesByMMixer(
52 IN PSOUND_DEVICE SoundDevice,
53 IN DWORD DeviceId,
54 OUT PVOID Capabilities,
55 IN DWORD CapabilitiesSize);
56
57 MMRESULT
58 WdmAudOpenSoundDeviceByMMixer(
59 IN struct _SOUND_DEVICE* SoundDevice,
60 OUT PVOID* Handle);
61
62 MMRESULT
63 WdmAudCloseSoundDeviceByMMixer(
64 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
65 IN PVOID Handle);
66
67 MMRESULT
68 WdmAudGetLineInfo(
69 IN HANDLE hMixer,
70 IN DWORD MixerId,
71 IN LPMIXERLINEW MixLine,
72 IN ULONG Flags);
73
74 MMRESULT
75 WdmAudGetLineControls(
76 IN HANDLE hMixer,
77 IN DWORD MixerId,
78 IN LPMIXERLINECONTROLSW MixControls,
79 IN ULONG Flags);
80
81 MMRESULT
82 WdmAudSetControlDetails(
83 IN HANDLE hMixer,
84 IN DWORD MixerId,
85 IN LPMIXERCONTROLDETAILS MixDetails,
86 IN ULONG Flags);
87
88 MMRESULT
89 WdmAudGetControlDetails(
90 IN HANDLE hMixer,
91 IN DWORD MixerId,
92 IN LPMIXERCONTROLDETAILS MixDetails,
93 IN ULONG Flags);
94
95 MMRESULT
96 WdmAudSetWaveDeviceFormatByMMixer(
97 IN PSOUND_DEVICE_INSTANCE Instance,
98 IN DWORD DeviceId,
99 IN PWAVEFORMATEX WaveFormat,
100 IN DWORD WaveFormatSize);
101
102 MMRESULT
103 WdmAudGetDeviceInterfaceStringByMMixer(
104 IN MMDEVICE_TYPE DeviceType,
105 IN DWORD DeviceId,
106 IN LPWSTR Interface,
107 IN DWORD InterfaceLength,
108 OUT DWORD * InterfaceSize);
109
110 MMRESULT
111 WdmAudSetMixerDeviceFormatByMMixer(
112 IN PSOUND_DEVICE_INSTANCE Instance,
113 IN DWORD DeviceId,
114 IN PWAVEFORMATEX WaveFormat,
115 IN DWORD WaveFormatSize);
116
117 MMRESULT
118 WdmAudQueryMixerInfoByMMixer(
119 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
120 IN DWORD DeviceId,
121 IN UINT uMsg,
122 IN LPVOID Parameter,
123 IN DWORD Flags);
124
125 MMRESULT
126 WdmAudSetWaveStateByMMixer(
127 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
128 IN BOOL bStart);
129
130 MMRESULT
131 WdmAudResetStreamByMMixer(
132 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
133 IN MMDEVICE_TYPE DeviceType,
134 IN BOOLEAN bStartReset);
135
136 MMRESULT
137 WdmAudGetWavePositionByMMixer(
138 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
139 IN MMTIME* Time);
140
141 MMRESULT
142 WdmAudCommitWaveBufferByMMixer(
143 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
144 IN PVOID OffsetPtr,
145 IN DWORD Length,
146 IN PSOUND_OVERLAPPED Overlap,
147 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
148
149 MMRESULT
150 WdmAudCleanupByMMixer(VOID);
151
152 /* legacy.c */
153
154 MMRESULT
155 WdmAudCleanupByLegacy(VOID);
156
157 MMRESULT
158 WdmAudGetCapabilitiesByLegacy(
159 IN PSOUND_DEVICE SoundDevice,
160 IN DWORD DeviceId,
161 OUT PVOID Capabilities,
162 IN DWORD CapabilitiesSize);
163
164 MMRESULT
165 WdmAudOpenSoundDeviceByLegacy(
166 IN PSOUND_DEVICE SoundDevice,
167 OUT PVOID *Handle
168 );
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