mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-14 16:33:44 +00:00
260 lines
9.7 KiB
Rust
260 lines
9.7 KiB
Rust
// Copyright © 2015, Peter Atashian
|
|
// Licensed under the MIT License <LICENSE.md>
|
|
//! MM procedure declarations, constant definitions and macros
|
|
//109 (Win 7 SDK)
|
|
pub type MMVERSION = ::UINT;
|
|
pub type MMRESULT = ::UINT;
|
|
STRUCT!{struct MMTIME {
|
|
wType: ::UINT,
|
|
u: MMTIME_u,
|
|
}}
|
|
pub type PMMTIME = *mut MMTIME;
|
|
pub type NPMMTIME = *mut MMTIME;
|
|
pub type LPMMTIME = *mut MMTIME;
|
|
STRUCT!{struct MMTIME_u {
|
|
data: [u8; 8],
|
|
}}
|
|
UNION!(MMTIME_u, data, ms, ms_mut, ::DWORD);
|
|
UNION!(MMTIME_u, data, sample, sample_mut, ::DWORD);
|
|
UNION!(MMTIME_u, data, cb, cb_mut, ::DWORD);
|
|
UNION!(MMTIME_u, data, ticks, ticks_mut, ::DWORD);
|
|
UNION!(MMTIME_u, data, smpte, smpte_mut, MMTIME_smpte);
|
|
UNION!(MMTIME_u, data, midi, midi_mut, MMTIME_midi);
|
|
STRUCT!{struct MMTIME_smpte {
|
|
hour: ::BYTE,
|
|
min: ::BYTE,
|
|
sec: ::BYTE,
|
|
frame: ::BYTE,
|
|
fps: ::BYTE,
|
|
dummy: ::BYTE,
|
|
pad: [::BYTE; 2],
|
|
}}
|
|
STRUCT!{struct MMTIME_midi {
|
|
songptrpos: ::DWORD,
|
|
}}
|
|
pub const TIME_MS: ::UINT = 0x0001;
|
|
pub const TIME_SAMPLES: ::UINT = 0x0002;
|
|
pub const TIME_BYTES: ::UINT = 0x0004;
|
|
pub const TIME_SMPTE: ::UINT = 0x0008;
|
|
pub const TIME_MIDI: ::UINT = 0x0010;
|
|
pub const TIME_TICKS: ::UINT = 0x0020;
|
|
pub const MM_JOY1MOVE: ::UINT = 0x3A0;
|
|
pub const MM_JOY2MOVE: ::UINT = 0x3A1;
|
|
pub const MM_JOY1ZMOVE: ::UINT = 0x3A2;
|
|
pub const MM_JOY2ZMOVE: ::UINT = 0x3A3;
|
|
pub const MM_JOY1BUTTONDOWN: ::UINT = 0x3B5;
|
|
pub const MM_JOY2BUTTONDOWN: ::UINT = 0x3B6;
|
|
pub const MM_JOY1BUTTONUP: ::UINT = 0x3B7;
|
|
pub const MM_JOY2BUTTONUP: ::UINT = 0x3B8;
|
|
pub const MM_MCINOTIFY: ::UINT = 0x3B9;
|
|
pub const MM_WOM_OPEN: ::UINT = 0x3BB;
|
|
pub const MM_WOM_CLOSE: ::UINT = 0x3BC;
|
|
pub const MM_WOM_DONE: ::UINT = 0x3BD;
|
|
pub const MM_WIM_OPEN: ::UINT = 0x3BE;
|
|
pub const MM_WIM_CLOSE: ::UINT = 0x3BF;
|
|
pub const MM_WIM_DATA: ::UINT = 0x3C0;
|
|
pub const MM_MIM_OPEN: ::UINT = 0x3C1;
|
|
pub const MM_MIM_CLOSE: ::UINT = 0x3C2;
|
|
pub const MM_MIM_DATA: ::UINT = 0x3C3;
|
|
pub const MM_MIM_LONGDATA: ::UINT = 0x3C4;
|
|
pub const MM_MIM_ERROR: ::UINT = 0x3C5;
|
|
pub const MM_MIM_LONGERROR: ::UINT = 0x3C6;
|
|
pub const MM_MOM_OPEN: ::UINT = 0x3C7;
|
|
pub const MM_MOM_CLOSE: ::UINT = 0x3C8;
|
|
pub const MM_MOM_DONE: ::UINT = 0x3C9;
|
|
pub const MMSYSERR_BASE: MMRESULT = 0;
|
|
pub const WAVERR_BASE: MMRESULT = 32;
|
|
pub const MIDIERR_BASE: MMRESULT = 64;
|
|
pub const TIMERR_BASE: MMRESULT = 96;
|
|
pub const JOYERR_BASE: MMRESULT = 160;
|
|
pub const MCIERR_BASE: MMRESULT = 256;
|
|
pub const MIXERR_BASE: MMRESULT = 1024;
|
|
pub const MMSYSERR_NOERROR: MMRESULT = 0;
|
|
pub const MMSYSERR_ERROR: MMRESULT = MMSYSERR_BASE + 1;
|
|
pub const MMSYSERR_BADDEVICEID: MMRESULT = MMSYSERR_BASE + 2;
|
|
pub const MMSYSERR_NOTENABLED: MMRESULT = MMSYSERR_BASE + 3;
|
|
pub const MMSYSERR_ALLOCATED: MMRESULT = MMSYSERR_BASE + 4;
|
|
pub const MMSYSERR_INVALHANDLE: MMRESULT = MMSYSERR_BASE + 5;
|
|
pub const MMSYSERR_NODRIVER: MMRESULT = MMSYSERR_BASE + 6;
|
|
pub const MMSYSERR_NOMEM: MMRESULT = MMSYSERR_BASE + 7;
|
|
pub const MMSYSERR_NOTSUPPORTED: MMRESULT = MMSYSERR_BASE + 8;
|
|
pub const MMSYSERR_BADERRNUM: MMRESULT = MMSYSERR_BASE + 9;
|
|
pub const MMSYSERR_INVALFLAG: MMRESULT = MMSYSERR_BASE + 10;
|
|
pub const MMSYSERR_INVALPARAM: MMRESULT = MMSYSERR_BASE + 11;
|
|
pub const MMSYSERR_HANDLEBUSY: MMRESULT = MMSYSERR_BASE + 12;
|
|
pub const MMSYSERR_INVALIDALIAS: MMRESULT = MMSYSERR_BASE + 13;
|
|
pub const MMSYSERR_BADDB: MMRESULT = MMSYSERR_BASE + 14;
|
|
pub const MMSYSERR_KEYNOTFOUND: MMRESULT = MMSYSERR_BASE + 15;
|
|
pub const MMSYSERR_READERROR: MMRESULT = MMSYSERR_BASE + 16;
|
|
pub const MMSYSERR_WRITEERROR: MMRESULT = MMSYSERR_BASE + 17;
|
|
pub const MMSYSERR_DELETEERROR: MMRESULT = MMSYSERR_BASE + 18;
|
|
pub const MMSYSERR_VALNOTFOUND: MMRESULT = MMSYSERR_BASE + 19;
|
|
pub const MMSYSERR_NODRIVERCB: MMRESULT = MMSYSERR_BASE + 20;
|
|
pub const MMSYSERR_MOREDATA: MMRESULT = MMSYSERR_BASE + 21;
|
|
pub const MMSYSERR_LASTERROR: MMRESULT = MMSYSERR_BASE + 21;
|
|
pub const MIDIERR_UNPREPARED: MMRESULT = MIDIERR_BASE + 0;
|
|
pub const MIDIERR_STILLPLAYING: MMRESULT = MIDIERR_BASE + 1;
|
|
pub const MIDIERR_NOMAP: MMRESULT = MIDIERR_BASE + 2;
|
|
pub const MIDIERR_NOTREADY: MMRESULT = MIDIERR_BASE + 3;
|
|
pub const MIDIERR_NODEVICE: MMRESULT = MIDIERR_BASE + 4;
|
|
pub const MIDIERR_INVALIDSETUP: MMRESULT = MIDIERR_BASE + 5;
|
|
pub const MIDIERR_BADOPENMODE: MMRESULT = MIDIERR_BASE + 6;
|
|
pub const MIDIERR_DONT_CONTINUE: MMRESULT = MIDIERR_BASE + 7;
|
|
pub const MIDIERR_LASTERROR: MMRESULT = MIDIERR_BASE + 7;
|
|
pub const CALLBACK_TYPEMASK: ::DWORD = 0x00070000;
|
|
pub const CALLBACK_NULL: ::DWORD = 0x00000000;
|
|
pub const CALLBACK_WINDOW: ::DWORD = 0x00010000;
|
|
pub const CALLBACK_TASK: ::DWORD = 0x00020000;
|
|
pub const CALLBACK_FUNCTION: ::DWORD = 0x00030000;
|
|
pub const CALLBACK_THREAD: ::DWORD = CALLBACK_TASK;
|
|
pub const CALLBACK_EVENT: ::DWORD = 0x00050000;
|
|
//497 (Win 7 SDK)
|
|
pub const WAVERR_BADFORMAT: MMRESULT = WAVERR_BASE + 0;
|
|
pub const WAVERR_STILLPLAYING: MMRESULT = WAVERR_BASE + 1;
|
|
pub const WAVERR_UNPREPARED: MMRESULT = WAVERR_BASE + 2;
|
|
pub const WAVERR_SYNC: MMRESULT = WAVERR_BASE + 3;
|
|
pub const WAVERR_LASTERROR: MMRESULT = WAVERR_BASE + 3;
|
|
DECLARE_HANDLE!(HWAVEIN, HWAVEIN__);
|
|
DECLARE_HANDLE!(HWAVEOUT, HWAVEOUT__);
|
|
pub type LPHWAVEIN = *mut HWAVEIN;
|
|
pub type LPHWAVEOUT = *mut HWAVEOUT;
|
|
pub const WOM_OPEN: ::UINT = MM_WOM_OPEN;
|
|
pub const WOM_CLOSE: ::UINT = MM_WOM_CLOSE;
|
|
pub const WOM_DONE: ::UINT = MM_WOM_DONE;
|
|
pub const WIM_OPEN: ::UINT = MM_WIM_OPEN;
|
|
pub const WIM_CLOSE: ::UINT = MM_WIM_CLOSE;
|
|
pub const WIM_DATA: ::UINT = MM_WIM_DATA;
|
|
pub const WAVE_MAPPER: ::UINT = 0xFFFFFFFF;
|
|
pub const WAVE_FORMAT_QUERY: ::DWORD = 0x0001;
|
|
pub const WAVE_ALLOWSYNC: ::DWORD = 0x0002;
|
|
pub const WAVE_MAPPED: ::DWORD = 0x0004;
|
|
pub const WAVE_FORMAT_DIRECT: ::DWORD = 0x0008;
|
|
pub const WAVE_FORMAT_DIRECT_QUERY: ::DWORD = WAVE_FORMAT_QUERY | WAVE_FORMAT_DIRECT;
|
|
pub const WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE: ::DWORD = 0x0010;
|
|
STRUCT!{struct WAVEHDR {
|
|
lpData: ::LPSTR,
|
|
dwBufferLength: ::DWORD,
|
|
dwBytesRecorded: ::DWORD,
|
|
dwUser: ::DWORD_PTR,
|
|
dwFlags: ::DWORD,
|
|
dwLoops: ::DWORD,
|
|
lpNext: *mut WAVEHDR,
|
|
reserved: ::DWORD_PTR,
|
|
}}
|
|
pub type PWAVEHDR = *mut WAVEHDR;
|
|
pub type NPWAVEHDR = *mut WAVEHDR;
|
|
pub type LPWAVEHDR = *mut WAVEHDR;
|
|
STRUCT!{struct WAVEOUTCAPSW {
|
|
wMid: ::WORD,
|
|
wPid: ::WORD,
|
|
vDriverVersion: MMVERSION,
|
|
szPname: [::WCHAR; 32],
|
|
dwFormats: ::DWORD,
|
|
wChannels: ::WORD,
|
|
wReserved1: ::WORD,
|
|
dwSupport: ::DWORD,
|
|
}}
|
|
pub type PWAVEOUTCAPSW = *mut WAVEOUTCAPSW;
|
|
pub type NPWAVEOUTCAPSW = *mut WAVEOUTCAPSW;
|
|
pub type LPWAVEOUTCAPSW = *mut WAVEOUTCAPSW;
|
|
STRUCT!{struct WAVEINCAPSW {
|
|
wMid: ::WORD,
|
|
wPid: ::WORD,
|
|
vDriverVersion: MMVERSION,
|
|
szPname: [::WCHAR; 32],
|
|
dwFormats: ::DWORD,
|
|
wChannels: ::WORD,
|
|
wReserved1: ::WORD,
|
|
}}
|
|
pub type PWAVEINCAPSW = *mut WAVEINCAPSW;
|
|
pub type NPWAVEINCAPSW = *mut WAVEINCAPSW;
|
|
pub type LPWAVEINCAPSW = *mut WAVEINCAPSW;
|
|
pub const WAVE_INVALIDFORMAT: ::DWORD = 0x00000000;
|
|
pub const WAVE_FORMAT_1M08: ::DWORD = 0x00000001;
|
|
pub const WAVE_FORMAT_1S08: ::DWORD = 0x00000002;
|
|
pub const WAVE_FORMAT_1M16: ::DWORD = 0x00000004;
|
|
pub const WAVE_FORMAT_1S16: ::DWORD = 0x00000008;
|
|
pub const WAVE_FORMAT_2M08: ::DWORD = 0x00000010;
|
|
pub const WAVE_FORMAT_2S08: ::DWORD = 0x00000020;
|
|
pub const WAVE_FORMAT_2M16: ::DWORD = 0x00000040;
|
|
pub const WAVE_FORMAT_2S16: ::DWORD = 0x00000080;
|
|
pub const WAVE_FORMAT_4M08: ::DWORD = 0x00000100;
|
|
pub const WAVE_FORMAT_4S08: ::DWORD = 0x00000200;
|
|
pub const WAVE_FORMAT_4M16: ::DWORD = 0x00000400;
|
|
pub const WAVE_FORMAT_4S16: ::DWORD = 0x00000800;
|
|
pub const WAVE_FORMAT_44M08: ::DWORD = 0x00000100;
|
|
pub const WAVE_FORMAT_44S08: ::DWORD = 0x00000200;
|
|
pub const WAVE_FORMAT_44M16: ::DWORD = 0x00000400;
|
|
pub const WAVE_FORMAT_44S16: ::DWORD = 0x00000800;
|
|
pub const WAVE_FORMAT_48M08: ::DWORD = 0x00001000;
|
|
pub const WAVE_FORMAT_48S08: ::DWORD = 0x00002000;
|
|
pub const WAVE_FORMAT_48M16: ::DWORD = 0x00004000;
|
|
pub const WAVE_FORMAT_48S16: ::DWORD = 0x00008000;
|
|
pub const WAVE_FORMAT_96M08: ::DWORD = 0x00010000;
|
|
pub const WAVE_FORMAT_96S08: ::DWORD = 0x00020000;
|
|
pub const WAVE_FORMAT_96M16: ::DWORD = 0x00040000;
|
|
pub const WAVE_FORMAT_96S16: ::DWORD = 0x00080000;
|
|
//782 (Win 7 SDK)
|
|
pub type PWAVEFORMATEX = *mut ::WAVEFORMATEX;
|
|
pub type NPWAVEFORMATEX = *mut ::WAVEFORMATEX;
|
|
pub type LPWAVEFORMATEX = *mut ::WAVEFORMATEX;
|
|
pub type LPCWAVEFORMATEX = *const ::WAVEFORMATEX;
|
|
//2170 (Win 7 SDK)
|
|
pub const TIMERR_NOERROR: ::MMRESULT = 0;
|
|
pub const TIMERR_NOCANDO: ::MMRESULT = TIMERR_BASE + 1;
|
|
pub const TIMERR_STRUCT: ::MMRESULT = TIMERR_BASE + 33;
|
|
//2198 (Win 7 SDK)
|
|
STRUCT!{struct TIMECAPS {
|
|
wPeriodMin: ::UINT,
|
|
wPeriodMax: ::UINT,
|
|
}}
|
|
pub type PTIMECAPS = *mut TIMECAPS;
|
|
pub type NPTIMECAPS = *mut TIMECAPS;
|
|
pub type LPTIMECAPS = *mut TIMECAPS;
|
|
STRUCT!{struct MIDIHDR {
|
|
lpData: ::LPSTR,
|
|
dwBufferLength: ::DWORD,
|
|
dwBytesRecorded: ::DWORD,
|
|
dwUser: ::DWORD_PTR,
|
|
dwFlags: ::DWORD,
|
|
lpNext: *mut MIDIHDR,
|
|
reserved: ::DWORD_PTR,
|
|
dwOffset: ::DWORD,
|
|
dwReserved: [::DWORD_PTR; 4],
|
|
}}
|
|
pub type PMIDIHDR = *mut MIDIHDR;
|
|
pub type NPMIDIHDR = *mut MIDIHDR;
|
|
pub type LPMIDIHDR = *mut MIDIHDR;
|
|
STRUCT!{struct MIDIINCAPSW {
|
|
wMid: ::WORD,
|
|
wPid: ::WORD,
|
|
vDriverVersion: MMVERSION,
|
|
szPname: [::WCHAR; 32],
|
|
dwSupport: ::DWORD,
|
|
}}
|
|
pub type PMIDIINCAPSW = *mut MIDIINCAPSW;
|
|
pub type NPMIDIINCAPSW = *mut MIDIINCAPSW;
|
|
pub type LPMIDIINCAPSW = *mut MIDIINCAPSW;
|
|
STRUCT!{struct MIDIOUTCAPSW {
|
|
wMid: ::WORD,
|
|
wPid: ::WORD,
|
|
vDriverVersion: ::MMVERSION,
|
|
szPname: [::WCHAR; 32],
|
|
wTechnology: ::WORD,
|
|
wVoices: ::WORD,
|
|
wNotes: ::WORD,
|
|
wChannelMask: ::WORD,
|
|
dwSupport: ::DWORD,
|
|
}}
|
|
pub type PMIDIOUTCAPSW = *mut MIDIOUTCAPSW;
|
|
pub type NPMIDIOUTCAPSW = *mut MIDIOUTCAPSW;
|
|
pub type LPMIDIOUTCAPSW = *mut MIDIOUTCAPSW;
|
|
DECLARE_HANDLE!(HMIDIIN, HMIDIIN__);
|
|
DECLARE_HANDLE!(HMIDIOUT, HMIDIOUT__);
|
|
pub type LPHMIDIIN = *mut HMIDIIN;
|
|
pub type LPHMIDIOUT = *mut HMIDIOUT;
|
|
DECLARE_HANDLE!(HMIDISTRM, HMIDISTRM__);
|
|
DECLARE_HANDLE!(HMIDI, HMIDI__);
|
|
pub type LPHMIDISTRM = *mut HMIDISTRM;
|
|
pub type LPHMIDI = *mut HMIDI;
|