1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use shared
::basetsd
::{DWORD_PTR, UINT_PTR}
;
7 use shared
::minwindef
::{DWORD, LPBYTE, LPDWORD, LPWORD, PDWORD, UINT}
;
10 HMIDI
, HMIDIIN
, HMIDIOUT
, HMIDISTRM
, HWAVEIN
, HWAVEOUT
, LPCWAVEFORMATEX
, LPHMIDIIN
, LPHMIDIOUT
,
11 LPHMIDISTRM
, LPHWAVEIN
, LPHWAVEOUT
, LPMIDIHDR
, LPMIDIINCAPSW
, LPMIDIOUTCAPSW
, LPMMTIME
,
12 LPWAVEHDR
, LPWAVEINCAPSW
, LPWAVEOUTCAPSW
, MMRESULT
14 use um
::winnt
::{LPWSTR, PVOID}
;
16 pub fn waveOutGetNumDevs() -> UINT
;
17 // pub fn waveOutGetDevCapsA();
18 pub fn waveOutGetDevCapsW(
23 pub fn waveOutGetVolume(
27 pub fn waveOutSetVolume(
31 // pub fn waveOutGetErrorTextA();
32 pub fn waveOutGetErrorTextW(
40 pwfx
: LPCWAVEFORMATEX
,
41 dwCallback
: DWORD_PTR
,
42 dwInstance
: DWORD_PTR
,
48 pub fn waveOutPrepareHeader(
53 pub fn waveOutUnprepareHeader(
66 pub fn waveOutRestart(
72 pub fn waveOutBreakLoop(
75 pub fn waveOutGetPosition(
80 pub fn waveOutGetPitch(
84 pub fn waveOutSetPitch(
88 pub fn waveOutGetPlaybackRate(
92 pub fn waveOutSetPlaybackRate(
96 // pub fn waveOutGetID();
97 pub fn waveOutMessage(
103 pub fn waveInGetNumDevs() -> UINT
;
104 // pub fn waveInGetDevCapsA();
105 pub fn waveInGetDevCapsW(
110 // pub fn waveInGetErrorTextA();
111 pub fn waveInGetErrorTextW(
119 pwfx
: LPCWAVEFORMATEX
,
120 dwCallback
: DWORD_PTR
,
121 dwInstance
: DWORD_PTR
,
127 pub fn waveInPrepareHeader(
132 pub fn waveInUnprepareHeader(
137 pub fn waveInAddBuffer(
151 pub fn waveInGetPosition(
156 // pub fn waveInGetID();
157 pub fn waveInMessage(
163 pub fn midiOutGetNumDevs() -> UINT
;
164 pub fn midiStreamOpen(
165 lphStream
: LPHMIDISTRM
,
168 dwCallback
: DWORD_PTR
,
169 dwInstance
: DWORD_PTR
,
172 pub fn midiStreamClose(
175 pub fn midiStreamProperty(
180 pub fn midiStreamPosition(
185 pub fn midiStreamOut(
186 hMidiStream
: HMIDISTRM
,
187 lpMidiHdr
: LPMIDIHDR
,
190 pub fn midiStreamPause(
193 pub fn midiStreamRestart(
196 pub fn midiStreamStop(
204 pub fn midiDisconnect(
209 pub fn midiOutGetDevCapsW(
211 lpMidiOutCaps
: LPMIDIOUTCAPSW
,
214 pub fn midiOutGetVolume(
218 pub fn midiOutSetVolume(
222 pub fn midiOutGetErrorTextW(
230 dwCallback
: DWORD_PTR
,
231 dwCallbackInstance
: DWORD_PTR
,
237 pub fn midiOutPrepareHeader(
239 lpMidiOutHdr
: LPMIDIHDR
,
242 pub fn midiOutUnprepareHeader(
244 lpMidiOutHdr
: LPMIDIHDR
,
247 pub fn midiOutShortMsg(
251 pub fn midiOutLongMsg(
253 lpMidiOutHdr
: LPMIDIHDR
,
259 pub fn midiOutCachePatches(
262 lpPatchArray
: LPWORD
,
265 pub fn midiOutCacheDrumPatches(
275 pub fn midiOutMessage(
281 pub fn midiInGetNumDevs() -> UINT
;
282 pub fn midiInGetDevCapsW(
284 lpMidiInCaps
: LPMIDIINCAPSW
,
287 pub fn midiInGetErrorTextW(
293 lphMidiIn
: LPHMIDIIN
,
295 dwCallback
: DWORD_PTR
,
296 dwCallbackInstance
: DWORD_PTR
,
302 pub fn midiInPrepareHeader(
304 lpMidiInHdr
: LPMIDIHDR
,
307 pub fn midiInUnprepareHeader(
309 lpMidiInHdr
: LPMIDIHDR
,
312 pub fn midiInAddBuffer(
314 lpMidiInHdr
: LPMIDIHDR
,
330 pub fn midiInMessage(