[CSRSS]
[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 WdmAudGetNumDevsByMMixer(
31 IN MMDEVICE_TYPE DeviceType,
32 OUT DWORD* DeviceCount);
33
34 MMRESULT
35 WriteFileEx_Remixer(
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 WdmAudGetCapabilitiesByMMixer(
44 IN PSOUND_DEVICE SoundDevice,
45 IN DWORD DeviceId,
46 OUT PVOID Capabilities,
47 IN DWORD CapabilitiesSize);
48
49 MMRESULT
50 WdmAudOpenSoundDeviceByMMixer(
51 IN struct _SOUND_DEVICE* SoundDevice,
52 OUT PVOID* Handle);
53
54 MMRESULT
55 WdmAudCloseSoundDeviceByMMixer(
56 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
57 IN PVOID Handle);
58
59 MMRESULT
60 WdmAudGetLineInfo(
61 IN HANDLE hMixer,
62 IN LPMIXERLINEW MixLine,
63 IN ULONG Flags);
64
65 MMRESULT
66 WdmAudGetLineControls(
67 IN HANDLE hMixer,
68 IN LPMIXERLINECONTROLSW MixControls,
69 IN ULONG Flags);
70
71 MMRESULT
72 WdmAudSetControlDetails(
73 IN HANDLE hMixer,
74 IN LPMIXERCONTROLDETAILS MixDetails,
75 IN ULONG Flags);
76
77 MMRESULT
78 WdmAudGetControlDetails(
79 IN HANDLE hMixer,
80 IN LPMIXERCONTROLDETAILS MixDetails,
81 IN ULONG Flags);
82
83 MMRESULT
84 WdmAudSetWdmWaveDeviceFormatByMMixer(
85 IN PSOUND_DEVICE_INSTANCE Instance,
86 IN DWORD DeviceId,
87 IN PWAVEFORMATEX WaveFormat,
88 IN DWORD WaveFormatSize);
89
90 MMRESULT
91 WdmAudGetDeviceInterfaceStringByMMixer(
92 IN MMDEVICE_TYPE DeviceType,
93 IN DWORD DeviceId,
94 IN LPWSTR Interface,
95 IN DWORD InterfaceLength,
96 OUT DWORD * InterfaceSize);
97
98 MMRESULT
99 WdmAudSetMixerDeviceFormatByMMixer(
100 IN PSOUND_DEVICE_INSTANCE Instance,
101 IN DWORD DeviceId,
102 IN PWAVEFORMATEX WaveFormat,
103 IN DWORD WaveFormatSize);
104
105 MMRESULT
106 WdmAudQueryMixerInfoByMMixer(
107 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
108 IN UINT uMsg,
109 IN LPVOID Parameter,
110 IN DWORD Flags);
111
112 MMRESULT
113 WdmAudSetWdmWaveStateByMMixer(
114 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
115 IN BOOL bStart);
116
117 MMRESULT
118 WdmAudResetStreamByMMixer(
119 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
120 IN MMDEVICE_TYPE DeviceType,
121 IN BOOLEAN bStartReset);
122
123 MMRESULT
124 WdmAudGetWdmPositionByMMixer(
125 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
126 IN MMTIME* Time);
127
128 MMRESULT
129 WdmAudCommitWaveBufferByMMixer(
130 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
131 IN PVOID OffsetPtr,
132 IN DWORD Length,
133 IN PSOUND_OVERLAPPED Overlap,
134 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
135
136 VOID
137 WdmAudCleanupMMixer();
138
139 /* legacy.c */
140
141 VOID
142 WdmAudCleanupLegacy();
143
144 MMRESULT
145 WdmAudGetCapabilitiesByLegacy(
146 IN PSOUND_DEVICE SoundDevice,
147 IN DWORD DeviceId,
148 OUT PVOID Capabilities,
149 IN DWORD CapabilitiesSize);
150
151 MMRESULT
152 WdmAudOpenSoundDeviceByLegacy();
153
154 MMRESULT
155 WdmAudCloseSoundDeviceByLegacy(
156 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
157 IN PVOID Handle);
158
159 MMRESULT
160 WdmAudGetDeviceInterfaceStringByLegacy(
161 IN MMDEVICE_TYPE DeviceType,
162 IN DWORD DeviceId,
163 IN LPWSTR Interface,
164 IN DWORD InterfaceLength,
165 OUT DWORD * InterfaceSize);
166
167 MMRESULT
168 WdmAudSetMixerDeviceFormatByLegacy(
169 IN PSOUND_DEVICE_INSTANCE Instance,
170 IN DWORD DeviceId,
171 IN PWAVEFORMATEX WaveFormat,
172 IN DWORD WaveFormatSize);
173
174 MMRESULT
175 WdmAudQueryMixerInfoByLegacy(
176 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
177 IN UINT uMsg,
178 IN LPVOID Parameter,
179 IN DWORD Flags);
180
181 MMRESULT
182 WdmAudSetWaveDeviceFormatByLegacy(
183 IN PSOUND_DEVICE_INSTANCE Instance,
184 IN DWORD DeviceId,
185 IN PWAVEFORMATEX WaveFormat,
186 IN DWORD WaveFormatSize);
187
188 MMRESULT
189 WdmAudSetWaveStateByLegacy(
190 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
191 IN BOOL bStart);
192
193 MMRESULT
194 WdmAudResetStreamByLegacy(
195 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
196 IN MMDEVICE_TYPE DeviceType,
197 IN BOOLEAN bStartReset);
198
199 MMRESULT
200 WdmAudGetWavePositionByLegacy(
201 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
202 IN MMTIME* Time);
203
204 MMRESULT
205 WriteFileEx_Committer2(
206 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
207 IN PVOID OffsetPtr,
208 IN DWORD Length,
209 IN PSOUND_OVERLAPPED Overlap,
210 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
211
212 MMRESULT
213 WdmAudGetNumWdmDevsByLegacy(
214 IN MMDEVICE_TYPE DeviceType,
215 OUT DWORD* DeviceCount);
216
217 DWORD
218 WINAPI
219 MixerEventThreadRoutine(
220 LPVOID Parameter);
221
222 #endif