// 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;
