zig/lib/std / os/windows/winmm.zig

const std = @import("../../std.zig");
const windows = std.os.windows;
const WINAPI = windows.WINAPI;
const UINT = windows.UINT;
const BYTE = windows.BYTE;
const DWORD = windows.DWORD;

MMRESULT


pub const MMRESULT = UINT;

MMSYSERR_BASE

pub const MMSYSERR_BASE = 0;

TIMERR_BASE

pub const TIMERR_BASE = 96;

MMSYSERR_ERROR

pub const MMSYSERR_ERROR = MMSYSERR_BASE + 1;

MMSYSERR_BADDEVICEID

pub const MMSYSERR_BADDEVICEID = MMSYSERR_BASE + 2;

MMSYSERR_NOTENABLED

pub const MMSYSERR_NOTENABLED = MMSYSERR_BASE + 3;

MMSYSERR_ALLOCATED

pub const MMSYSERR_ALLOCATED = MMSYSERR_BASE + 4;

MMSYSERR_INVALHANDLE

pub const MMSYSERR_INVALHANDLE = MMSYSERR_BASE + 5;

MMSYSERR_NODRIVER

pub const MMSYSERR_NODRIVER = MMSYSERR_BASE + 6;

MMSYSERR_NOMEM

pub const MMSYSERR_NOMEM = MMSYSERR_BASE + 7;

MMSYSERR_NOTSUPPORTED

pub const MMSYSERR_NOTSUPPORTED = MMSYSERR_BASE + 8;

MMSYSERR_BADERRNUM

pub const MMSYSERR_BADERRNUM = MMSYSERR_BASE + 9;

MMSYSERR_INVALFLAG

pub const MMSYSERR_INVALFLAG = MMSYSERR_BASE + 10;

MMSYSERR_INVALPARAM

pub const MMSYSERR_INVALPARAM = MMSYSERR_BASE + 11;

MMSYSERR_HANDLEBUSY

pub const MMSYSERR_HANDLEBUSY = MMSYSERR_BASE + 12;

MMSYSERR_INVALIDALIAS

pub const MMSYSERR_INVALIDALIAS = MMSYSERR_BASE + 13;

MMSYSERR_BADDB

pub const MMSYSERR_BADDB = MMSYSERR_BASE + 14;

MMSYSERR_KEYNOTFOUND

pub const MMSYSERR_KEYNOTFOUND = MMSYSERR_BASE + 15;

MMSYSERR_READERROR

pub const MMSYSERR_READERROR = MMSYSERR_BASE + 16;

MMSYSERR_WRITEERROR

pub const MMSYSERR_WRITEERROR = MMSYSERR_BASE + 17;

MMSYSERR_DELETEERROR

pub const MMSYSERR_DELETEERROR = MMSYSERR_BASE + 18;

MMSYSERR_VALNOTFOUND

pub const MMSYSERR_VALNOTFOUND = MMSYSERR_BASE + 19;

MMSYSERR_NODRIVERCB

pub const MMSYSERR_NODRIVERCB = MMSYSERR_BASE + 20;

MMSYSERR_MOREDATA

pub const MMSYSERR_MOREDATA = MMSYSERR_BASE + 21;

MMSYSERR_LASTERROR

pub const MMSYSERR_LASTERROR = MMSYSERR_BASE + 21;

MMTIME


pub const MMTIME = extern struct {
    wType: UINT,
    u: extern union {
        ms: DWORD,
        sample: DWORD,
        cb: DWORD,
        ticks: DWORD,
        smpte: extern struct {
            hour: BYTE,
            min: BYTE,
            sec: BYTE,
            frame: BYTE,
            fps: BYTE,
            dummy: BYTE,
            pad: [2]BYTE,
        },
        midi: extern struct {
            songptrpos: DWORD,
        },
    },

TIMECAPS

};
pub const LPMMTIME = *MMTIME;

TIME_MS

pub const TIME_MS = 0x0001;

TIME_SAMPLES

pub const TIME_SAMPLES = 0x0002;

TIME_BYTES

pub const TIME_BYTES = 0x0004;

TIME_SMPTE

pub const TIME_SMPTE = 0x0008;

TIME_MIDI

pub const TIME_MIDI = 0x0010;

TIME_TICKS

pub const TIME_TICKS = 0x0020;

TIMECAPS


// timeapi.h
pub const TIMECAPS = extern struct { wPeriodMin: UINT, wPeriodMax: UINT };

LPTIMECAPS

pub const LPTIMECAPS = *TIMECAPS;

TIMERR_NOERROR

pub const TIMERR_NOERROR = 0;

TIMERR_NOCANDO

pub const TIMERR_NOCANDO = TIMERR_BASE + 1;

TIMERR_STRUCT

pub const TIMERR_STRUCT = TIMERR_BASE + 33;
pub extern "winmm" fn timeBeginPeriod(uPeriod: UINT) callconv(WINAPI) MMRESULT;
pub extern "winmm" fn timeEndPeriod(uPeriod: UINT) callconv(WINAPI) MMRESULT;
pub extern "winmm" fn timeGetDevCaps(ptc: LPTIMECAPS, cbtc: UINT) callconv(WINAPI) MMRESULT;
pub extern "winmm" fn timeGetSystemTime(pmmt: LPMMTIME, cbmmt: UINT) callconv(WINAPI) MMRESULT;
pub extern "winmm" fn timeGetTime() callconv(WINAPI) DWORD;