[AUDIO-BRINGUP]
[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 "mmixer.h"
14 #include <debug.h>
15
16 BOOL
17 WdmAudInitUserModeMixer();
18
19 ULONG
20 WdmAudGetWaveOutCount();
21
22 ULONG
23 WdmAudGetWaveInCount();
24
25 ULONG
26 WdmAudGetMixerCount();
27
28 MMRESULT
29 WdmAudOpenSoundDeviceByLegacy();
30
31 MMRESULT
32 WdmAudGetNumWdmDevsByMMixer(
33 IN MMDEVICE_TYPE DeviceType,
34 OUT DWORD* DeviceCount);
35
36 MMRESULT
37 WdmAudCommitWaveBufferByLegacy(
38 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
39 IN PVOID OffsetPtr,
40 IN DWORD Length,
41 IN PSOUND_OVERLAPPED Overlap,
42 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
43
44 MMRESULT
45 WriteFileEx_Remixer(
46 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
47 IN PVOID OffsetPtr,
48 IN DWORD Length,
49 IN PSOUND_OVERLAPPED Overlap,
50 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
51
52 MMRESULT
53 WdmAudGetCapabilitiesByMMixer(
54 IN PSOUND_DEVICE SoundDevice,
55 IN DWORD DeviceId,
56 OUT PVOID Capabilities,
57 IN DWORD CapabilitiesSize);
58
59 MMRESULT
60 WdmAudOpenSoundDeviceByMMixer();
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 MixerId,
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();
151
152 #endif