[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 IN struct _SOUND_DEVICE* SoundDevice,
62 OUT PVOID* Handle);
63
64 MMRESULT
65 WdmAudCloseSoundDeviceByMMixer(
66 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
67 IN PVOID Handle);
68
69 MMRESULT
70 WdmAudGetLineInfo(
71 IN HANDLE hMixer,
72 IN DWORD MixerId,
73 IN LPMIXERLINEW MixLine,
74 IN ULONG Flags);
75
76 MMRESULT
77 WdmAudGetLineControls(
78 IN HANDLE hMixer,
79 IN DWORD MixerId,
80 IN LPMIXERLINECONTROLSW MixControls,
81 IN ULONG Flags);
82
83 MMRESULT
84 WdmAudSetControlDetails(
85 IN HANDLE hMixer,
86 IN DWORD MixerId,
87 IN LPMIXERCONTROLDETAILS MixDetails,
88 IN ULONG Flags);
89
90 MMRESULT
91 WdmAudGetControlDetails(
92 IN HANDLE hMixer,
93 IN DWORD MixerId,
94 IN LPMIXERCONTROLDETAILS MixDetails,
95 IN ULONG Flags);
96
97 MMRESULT
98 WdmAudSetWaveDeviceFormatByMMixer(
99 IN PSOUND_DEVICE_INSTANCE Instance,
100 IN DWORD DeviceId,
101 IN PWAVEFORMATEX WaveFormat,
102 IN DWORD WaveFormatSize);
103
104 MMRESULT
105 WdmAudGetDeviceInterfaceStringByMMixer(
106 IN MMDEVICE_TYPE DeviceType,
107 IN DWORD DeviceId,
108 IN LPWSTR Interface,
109 IN DWORD InterfaceLength,
110 OUT DWORD * InterfaceSize);
111
112 MMRESULT
113 WdmAudSetMixerDeviceFormatByMMixer(
114 IN PSOUND_DEVICE_INSTANCE Instance,
115 IN DWORD DeviceId,
116 IN PWAVEFORMATEX WaveFormat,
117 IN DWORD WaveFormatSize);
118
119 MMRESULT
120 WdmAudQueryMixerInfoByMMixer(
121 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
122 IN DWORD MixerId,
123 IN UINT uMsg,
124 IN LPVOID Parameter,
125 IN DWORD Flags);
126
127 MMRESULT
128 WdmAudSetWaveStateByMMixer(
129 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
130 IN BOOL bStart);
131
132 MMRESULT
133 WdmAudResetStreamByMMixer(
134 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
135 IN MMDEVICE_TYPE DeviceType,
136 IN BOOLEAN bStartReset);
137
138 MMRESULT
139 WdmAudGetWavePositionByMMixer(
140 IN struct _SOUND_DEVICE_INSTANCE* SoundDeviceInstance,
141 IN MMTIME* Time);
142
143 MMRESULT
144 WdmAudCommitWaveBufferByMMixer(
145 IN PSOUND_DEVICE_INSTANCE SoundDeviceInstance,
146 IN PVOID OffsetPtr,
147 IN DWORD Length,
148 IN PSOUND_OVERLAPPED Overlap,
149 IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
150
151 MMRESULT
152 WdmAudCleanupByMMixer();
153
154 #endif