195 lines
10 KiB
Perl
195 lines
10 KiB
Perl
|
package winmm;
|
||
|
|
||
|
use strict;
|
||
|
|
||
|
require Exporter;
|
||
|
|
||
|
use wine;
|
||
|
use vars qw(@ISA @EXPORT @EXPORT_OK);
|
||
|
|
||
|
@ISA = qw(Exporter);
|
||
|
@EXPORT = qw();
|
||
|
@EXPORT_OK = qw();
|
||
|
|
||
|
my $module_declarations = {
|
||
|
"CloseDriver" => ["long", ["long", "long", "long"]],
|
||
|
"DefDriverProc" => ["long", ["long", "long", "long", "long", "long"]],
|
||
|
"DriverCallback" => ["long", ["long", "long", "long", "long", "long", "long", "long"]],
|
||
|
"DrvClose" => ["long", ["long", "long", "long"]],
|
||
|
"DrvDefDriverProc" => ["long", ["long", "long", "long", "long", "long"]],
|
||
|
"DrvGetModuleHandle" => ["long", ["long"]],
|
||
|
"DrvOpen" => ["long", ["wstr", "wstr", "long"]],
|
||
|
"DrvOpenA" => ["long", ["str", "str", "long"]],
|
||
|
"DrvSendMessage" => ["long", ["long", "long", "long", "long"]],
|
||
|
"GetDriverFlags" => ["long", ["long"]],
|
||
|
"GetDriverModuleHandle" => ["long", ["long"]],
|
||
|
"OpenDriver" => ["long", ["wstr", "wstr", "long"]],
|
||
|
"OpenDriverA" => ["long", ["str", "str", "long"]],
|
||
|
"PlaySoundA" => ["long", ["str", "long", "long"]],
|
||
|
"PlaySoundW" => ["long", ["wstr", "long", "long"]],
|
||
|
"SendDriverMessage" => ["long", ["long", "long", "long", "long"]],
|
||
|
"auxGetDevCapsA" => ["long", ["long", "ptr", "long"]],
|
||
|
"auxGetDevCapsW" => ["long", ["long", "ptr", "long"]],
|
||
|
"auxGetNumDevs" => ["long", []],
|
||
|
"auxGetVolume" => ["long", ["long", "ptr"]],
|
||
|
"auxOutMessage" => ["long", ["long", "long", "long", "long"]],
|
||
|
"auxSetVolume" => ["long", ["long", "long"]],
|
||
|
"joyGetDevCapsA" => ["long", ["long", "ptr", "long"]],
|
||
|
"joyGetDevCapsW" => ["long", ["long", "ptr", "long"]],
|
||
|
"joyGetNumDevs" => ["long", []],
|
||
|
"joyGetPos" => ["long", ["long", "ptr"]],
|
||
|
"joyGetPosEx" => ["long", ["long", "ptr"]],
|
||
|
"joyGetThreshold" => ["long", ["long", "ptr"]],
|
||
|
"joyReleaseCapture" => ["long", ["long"]],
|
||
|
"joySetCapture" => ["long", ["long", "long", "long", "long"]],
|
||
|
"joySetThreshold" => ["long", ["long", "long"]],
|
||
|
"mciDriverNotify" => ["long", ["long", "long", "long"]],
|
||
|
"mciDriverYield" => ["long", ["long"]],
|
||
|
"mciExecute" => ["long", ["str"]],
|
||
|
"mciFreeCommandResource" => ["long", ["long"]],
|
||
|
"mciGetCreatorTask" => ["long", ["long"]],
|
||
|
"mciGetDeviceIDA" => ["long", ["str"]],
|
||
|
"mciGetDeviceIDFromElementIDW" => ["long", ["long", "wstr"]],
|
||
|
"mciGetDeviceIDW" => ["long", ["wstr"]],
|
||
|
"mciGetDriverData" => ["long", ["long"]],
|
||
|
"mciGetErrorStringA" => ["long", ["long", "str", "long"]],
|
||
|
"mciGetErrorStringW" => ["long", ["long", "wstr", "long"]],
|
||
|
"mciGetYieldProc" => ["ptr", ["long", "ptr"]],
|
||
|
"mciLoadCommandResource" => ["long", ["long", "wstr", "long"]],
|
||
|
"mciSendCommandA" => ["long", ["long", "long", "long", "long"]],
|
||
|
"mciSendCommandW" => ["long", ["long", "long", "long", "long"]],
|
||
|
"mciSendStringA" => ["long", ["str", "str", "long", "long"]],
|
||
|
"mciSendStringW" => ["long", ["wstr", "str", "long", "long"]],
|
||
|
"mciSetDriverData" => ["long", ["long", "long"]],
|
||
|
"mciSetYieldProc" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiInAddBuffer" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiInClose" => ["long", ["long"]],
|
||
|
"midiInGetDevCapsA" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiInGetDevCapsW" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiInGetErrorTextA" => ["long", ["long", "str", "long"]],
|
||
|
"midiInGetErrorTextW" => ["long", ["long", "wstr", "long"]],
|
||
|
"midiInGetID" => ["long", ["long", "ptr"]],
|
||
|
"midiInGetNumDevs" => ["long", []],
|
||
|
"midiInMessage" => ["long", ["long", "long", "long", "long"]],
|
||
|
"midiInOpen" => ["long", ["ptr", "long", "long", "long", "long"]],
|
||
|
"midiInPrepareHeader" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiInReset" => ["long", ["long"]],
|
||
|
"midiInStart" => ["long", ["long"]],
|
||
|
"midiInStop" => ["long", ["long"]],
|
||
|
"midiInUnprepareHeader" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiOutCacheDrumPatches" => ["long", ["long", "long", "ptr", "long"]],
|
||
|
"midiOutCachePatches" => ["long", ["long", "long", "ptr", "long"]],
|
||
|
"midiOutClose" => ["long", ["long"]],
|
||
|
"midiOutGetDevCapsA" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiOutGetDevCapsW" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiOutGetErrorTextA" => ["long", ["long", "str", "long"]],
|
||
|
"midiOutGetErrorTextW" => ["long", ["long", "wstr", "long"]],
|
||
|
"midiOutGetID" => ["long", ["long", "ptr"]],
|
||
|
"midiOutGetNumDevs" => ["long", []],
|
||
|
"midiOutGetVolume" => ["long", ["long", "ptr"]],
|
||
|
"midiOutLongMsg" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiOutMessage" => ["long", ["long", "long", "long", "long"]],
|
||
|
"midiOutOpen" => ["long", ["ptr", "long", "long", "long", "long"]],
|
||
|
"midiOutPrepareHeader" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiOutReset" => ["long", ["long"]],
|
||
|
"midiOutSetVolume" => ["long", ["long", "long"]],
|
||
|
"midiOutShortMsg" => ["long", ["long", "long"]],
|
||
|
"midiOutUnprepareHeader" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiStreamClose" => ["long", ["long"]],
|
||
|
"midiStreamOpen" => ["long", ["ptr", "ptr", "long", "long", "long", "long"]],
|
||
|
"midiStreamOut" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiStreamPause" => ["long", ["long"]],
|
||
|
"midiStreamPosition" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiStreamProperty" => ["long", ["long", "ptr", "long"]],
|
||
|
"midiStreamRestart" => ["long", ["long"]],
|
||
|
"midiStreamStop" => ["long", ["long"]],
|
||
|
"mixerClose" => ["long", ["long"]],
|
||
|
"mixerGetControlDetailsA" => ["long", ["long", "ptr", "long"]],
|
||
|
"mixerGetControlDetailsW" => ["long", ["long", "ptr", "long"]],
|
||
|
"mixerGetDevCapsA" => ["long", ["long", "ptr", "long"]],
|
||
|
"mixerGetDevCapsW" => ["long", ["long", "ptr", "long"]],
|
||
|
"mixerGetID" => ["long", ["long", "ptr", "long"]],
|
||
|
"mixerGetLineControlsA" => ["long", ["long", "ptr", "long"]],
|
||
|
"mixerGetLineControlsW" => ["long", ["long", "ptr", "long"]],
|
||
|
"mixerGetLineInfoA" => ["long", ["long", "ptr", "long"]],
|
||
|
"mixerGetLineInfoW" => ["long", ["long", "ptr", "long"]],
|
||
|
"mixerGetNumDevs" => ["long", []],
|
||
|
"mixerMessage" => ["long", ["long", "long", "long", "long"]],
|
||
|
"mixerOpen" => ["long", ["ptr", "long", "long", "long", "long"]],
|
||
|
"mixerSetControlDetails" => ["long", ["long", "ptr", "long"]],
|
||
|
"mmioAdvance" => ["long", ["long", "ptr", "long"]],
|
||
|
"mmioAscend" => ["long", ["long", "ptr", "long"]],
|
||
|
"mmioClose" => ["long", ["long", "long"]],
|
||
|
"mmioCreateChunk" => ["long", ["long", "ptr", "long"]],
|
||
|
"mmioDescend" => ["long", ["long", "ptr", "ptr", "long"]],
|
||
|
"mmioFlush" => ["long", ["long", "long"]],
|
||
|
"mmioGetInfo" => ["long", ["long", "ptr", "long"]],
|
||
|
"mmioInstallIOProcA" => ["ptr", ["long", "ptr", "long"]],
|
||
|
"mmioInstallIOProcW" => ["ptr", ["long", "ptr", "long"]],
|
||
|
"mmioOpenA" => ["long", ["str", "ptr", "long"]],
|
||
|
"mmioOpenW" => ["long", ["wstr", "ptr", "long"]],
|
||
|
"mmioRead" => ["long", ["long", "ptr", "long"]],
|
||
|
"mmioRenameA" => ["long", ["str", "str", "ptr", "long"]],
|
||
|
"mmioRenameW" => ["long", ["wstr", "wstr", "ptr", "long"]],
|
||
|
"mmioSeek" => ["long", ["long", "long", "long"]],
|
||
|
"mmioSendMessage" => ["long", ["long", "long", "long", "long"]],
|
||
|
"mmioSetBuffer" => ["long", ["long", "str", "long", "long"]],
|
||
|
"mmioSetInfo" => ["long", ["long", "ptr", "long"]],
|
||
|
"mmioStringToFOURCCA" => ["long", ["str", "long"]],
|
||
|
"mmioStringToFOURCCW" => ["long", ["wstr", "long"]],
|
||
|
"mmioWrite" => ["long", ["long", "ptr", "long"]],
|
||
|
"mmsystemGetVersion" => ["long", []],
|
||
|
"sndPlaySoundA" => ["long", ["str", "long"]],
|
||
|
"sndPlaySoundW" => ["long", ["wstr", "long"]],
|
||
|
"timeBeginPeriod" => ["long", ["long"]],
|
||
|
"timeEndPeriod" => ["long", ["long"]],
|
||
|
"timeGetDevCaps" => ["long", ["ptr", "long"]],
|
||
|
"timeGetSystemTime" => ["long", ["ptr", "long"]],
|
||
|
"timeGetTime" => ["long", []],
|
||
|
"timeKillEvent" => ["long", ["long"]],
|
||
|
"timeSetEvent" => ["long", ["long", "long", "ptr", "long", "long"]],
|
||
|
"waveInAddBuffer" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveInClose" => ["long", ["long"]],
|
||
|
"waveInGetDevCapsA" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveInGetDevCapsW" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveInGetErrorTextA" => ["long", ["long", "str", "long"]],
|
||
|
"waveInGetErrorTextW" => ["long", ["long", "wstr", "long"]],
|
||
|
"waveInGetID" => ["long", ["long", "ptr"]],
|
||
|
"waveInGetNumDevs" => ["long", []],
|
||
|
"waveInGetPosition" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveInMessage" => ["long", ["long", "long", "long", "long"]],
|
||
|
"waveInOpen" => ["long", ["ptr", "long", "ptr", "long", "long", "long"]],
|
||
|
"waveInPrepareHeader" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveInReset" => ["long", ["long"]],
|
||
|
"waveInStart" => ["long", ["long"]],
|
||
|
"waveInStop" => ["long", ["long"]],
|
||
|
"waveInUnprepareHeader" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveOutBreakLoop" => ["long", ["long"]],
|
||
|
"waveOutClose" => ["long", ["long"]],
|
||
|
"waveOutGetDevCapsA" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveOutGetDevCapsW" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveOutGetErrorTextA" => ["long", ["long", "str", "long"]],
|
||
|
"waveOutGetErrorTextW" => ["long", ["long", "wstr", "long"]],
|
||
|
"waveOutGetID" => ["long", ["long", "ptr"]],
|
||
|
"waveOutGetNumDevs" => ["long", []],
|
||
|
"waveOutGetPitch" => ["long", ["long", "ptr"]],
|
||
|
"waveOutGetPlaybackRate" => ["long", ["long", "ptr"]],
|
||
|
"waveOutGetPosition" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveOutGetVolume" => ["long", ["long", "ptr"]],
|
||
|
"waveOutMessage" => ["long", ["long", "long", "long", "long"]],
|
||
|
"waveOutOpen" => ["long", ["ptr", "long", "ptr", "long", "long", "long"]],
|
||
|
"waveOutPause" => ["long", ["long"]],
|
||
|
"waveOutPrepareHeader" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveOutReset" => ["long", ["long"]],
|
||
|
"waveOutRestart" => ["long", ["long"]],
|
||
|
"waveOutSetPitch" => ["long", ["long", "long"]],
|
||
|
"waveOutSetPlaybackRate" => ["long", ["long", "long"]],
|
||
|
"waveOutSetVolume" => ["long", ["long", "long"]],
|
||
|
"waveOutUnprepareHeader" => ["long", ["long", "ptr", "long"]],
|
||
|
"waveOutWrite" => ["long", ["long", "ptr", "long"]]
|
||
|
};
|
||
|
|
||
|
&wine::declare("winmm",%$module_declarations);
|
||
|
push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));
|
||
|
1;
|