von der MMSystem wird aktuell all Dieses verwendet
Delphi-Quellcode:
Type HMIDIOUT = Integer;
PHMIDIOUT = ^HMIDIOUT;
MMRESULT = UINT;
Const MIDI_MAPPER = UINT(-1);
MM_MOM_OPEN = $3C7;
MM_MOM_CLOSE = $3C8;
MM_MOM_DONE = $3C9;
MM_MOM_POSITIONCB = $3CA;
CALLBACK_FUNCTION = $00030000;
MMSYSERR_NOERROR = 0;
MMSYSERR_BADERRNUM = 9;
MMSYSERR_INVALPARAM = 11;
MAXERRORLENGTH = 128;
Function midiOutOpen(lphMidiOut: PHMIDIOUT; uDeviceID: UINT;
dwCallback, dwInstance, dwFlags: DWORD): MMRESULT; StdCall;
External 'winmm.dll' Name 'midiOutOpen';
Function midiOutClose(hMidiOut: HMIDIOUT): MMRESULT; StdCall;
External 'winmm.dll' Name 'midiOutClose';
Function midiOutShortMsg(hMidiOut: HMIDIOUT; dwMsg: DWORD): MMRESULT; StdCall;
External 'winmm.dll' Name 'midiOutShortMsg';
Function midiOutGetVolume(hmo: HMIDIOUT; lpdwVolume: PDWORD): MMRESULT; StdCall;
External 'winmm.dll' Name 'midiOutGetVolume';
Function midiOutGetErrorText(mmrError: MMRESULT; pszText: {PChar}PAnsiChar;
uSize: UINT): MMRESULT; StdCall;
External 'winmm.dll' Name 'midiOutGetErrorTextA';
Zum Testen der "alten" Funktionen kannst du ja auch erstmal die Klasse auskommentieren.
Die Funktionalität des MIDI wird ja durch die Soundkarte bereitgestellt, also dürfte es für Linux auch irgendeinen Weg ('ne
API) zur Soundkarte geben.
Ein Therapeut entspricht 1024 Gigapeut.