[WDMAUD.DRV]
[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();
19
20 ULONG
21 WdmAudGetWaveOutCount();
22
23 ULONG
24 WdmAudGetWaveInCount();
25
26 ULONG
27 WdmAudGetMixerCount();
28
29 MMRESULT
30 WdmAudOpenSoundDeviceByLegacy();
31
32 MMRESULT
33 WdmAudGetNumDevsByMMixer(
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 LPMIXERLINEW MixLine,
74 IN ULONG Flags);
75
76 MMRESULT
77 WdmAudGetLineControls(
78 IN HANDLE hMixer,
79 IN LPMIXERLINECONTROLSW MixControls,
80 IN ULONG Flags);
81
82 MMRESULT
83 WdmAudSetControlDetails(
84 IN HANDLE hMixer,
85 IN LPMIXERCONTROLDETAILS MixDetails,
86 IN ULONG Flags);
87
88 MMRESULT
89 WdmAudGetControlDetails(
90 IN HANDLE hMixer,
91 IN LPMIXERCONTROLDETAILS MixDetails,
92 IN ULONG Flags);
93
94 MMRESULT
95 WdmAudSetWdmWaveDeviceFormatByMMixer(
96 IN PSOUND_DEVICE_INSTANCE Instance,
97 IN DWORD DeviceId,
98 IN PWAVEFORMATEX WaveFormat,
99 IN DWORD WaveFormatSize);
100
101 MMRESULT
102 WdmAudGetDeviceInterfaceStringByMMixer(
103 IN MMDEVICE_TYPE DeviceType,
104 IN DWORD DeviceId,
105 IN LPWSTR Interface,
106 IN DWORD InterfaceLength,
107 OUT DWORD * InterfaceSize);
108
109 MMRESULT
110 WdmAudSetMixerDeviceFormatByMMixer(
111 IN PSOUND_DEVICE_INSTANCE Instance,
112 IN DWORD DeviceId,
113 IN PWAVEFORMATEX WaveFormat,
114 IN DWORD WaveFormatSize);
115
116 MMRESULT
117 WdmAudQueryMixerInfoByMMixer(
118 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
119 IN UINT uMsg,
120 IN LPVOID Parameter,
121 IN DWORD Flags);
122
123 MMRESULT
124 WdmAudSetWdmWaveStateByMMixer(
125 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
126 IN BOOL bStart);
127
128 MMRESULT
129 WdmAudResetStreamByMMixer(
130 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
131 IN MMDEVICE_TYPE DeviceType,
132 IN BOOLEAN bStartReset);
133
134 MMRESULT
135 WdmAudGetWdmPositionByMMixer(
136 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
137 IN MMTIME* Time);
138
139 MMRESULT
140 WdmAudCommitWaveBufferByMMixer(
141 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
142 IN PVOID OffsetPtr,
143 IN DWORD Length,
144 IN PSOUND_OVERLAPPED Overlap,
145 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
146
147 MMRESULT
148 WdmAudCleanupByMMixer();
149
150 /* legacy.c */
151
152 MMRESULT
153 WdmAudCleanupByLegacy();
154
155 MMRESULT
156 WdmAudGetCapabilitiesByLegacy(
157 IN PSOUND_DEVICE SoundDevice,
158 IN DWORD DeviceId,
159 OUT PVOID Capabilities,
160 IN DWORD CapabilitiesSize);
161
162 MMRESULT
163 WdmAudOpenSoundDeviceByLegacy();
164
165 MMRESULT
166 WdmAudCloseSoundDeviceByLegacy(
167 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
168 IN PVOID Handle);
169
170 MMRESULT
171 WdmAudGetDeviceInterfaceStringByLegacy(
172 IN MMDEVICE_TYPE DeviceType,
173 IN DWORD DeviceId,
174 IN LPWSTR Interface,
175 IN DWORD InterfaceLength,
176 OUT DWORD * InterfaceSize);
177
178 MMRESULT
179 WdmAudSetMixerDeviceFormatByLegacy(
180 IN PSOUND_DEVICE_INSTANCE Instance,
181 IN DWORD DeviceId,
182 IN PWAVEFORMATEX WaveFormat,
183 IN DWORD WaveFormatSize);
184
185 MMRESULT
186 WdmAudQueryMixerInfoByLegacy(
187 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
188 IN UINT uMsg,
189 IN LPVOID Parameter,
190 IN DWORD Flags);
191
192 MMRESULT
193 WdmAudSetWaveDeviceFormatByLegacy(
194 IN PSOUND_DEVICE_INSTANCE Instance,
195 IN DWORD DeviceId,
196 IN PWAVEFORMATEX WaveFormat,
197 IN DWORD WaveFormatSize);
198
199 MMRESULT
200 WdmAudSetWaveStateByLegacy(
201 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
202 IN BOOL bStart);
203
204 MMRESULT
205 WdmAudResetStreamByLegacy(
206 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
207 IN MMDEVICE_TYPE DeviceType,
208 IN BOOLEAN bStartReset);
209
210 MMRESULT
211 WdmAudGetWavePositionByLegacy(
212 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
213 IN MMTIME* Time);
214
215 MMRESULT
216 WriteFileEx_Committer2(
217 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
218 IN PVOID OffsetPtr,
219 IN DWORD Length,
220 IN PSOUND_OVERLAPPED Overlap,
221 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
222
223 MMRESULT
224 WdmAudGetNumWdmDevsByLegacy(
225 IN MMDEVICE_TYPE DeviceType,
226 OUT DWORD* DeviceCount);
227
228 DWORD
229 WINAPI
230 MixerEventThreadRoutine(
231 LPVOID Parameter);
232
233 #endif