home *** CD-ROM | disk | FTP | other *** search
- {
- ════════════════════════════════════════════════════════════════════════════
-
- Visionix Music Instrument Digital Interface (VMIDI)
- Copyright 1991,92,93 Visionix
- ALL RIGHTS RESERVED
-
- ────────────────────────────────────────────────────────────────────────────
-
- Revision history in reverse chronological order:
-
- Initials Date Comment
- ──────── ──────── ────────────────────────────────────────────────────────
-
- lpg 03/16/93 Added Source Documentation
-
- mep 02/11/93 Cleaned up code for beta release
-
- jrt 02/08/93 Sync with beta 0.12 release
-
- jrt 11/21/92 Sync with beta 0.08
-
- jrt 09/01/92 First logged revision.
-
- ════════════════════════════════════════════════════════════════════════════
- }
-
-
- Unit VMidi;
-
-
- {────────────────────────────────────────────────────────────────────────────}
-
- Type
-
- TError = WORD;
-
- TMidiMessage = RECORD
-
- Status : BYTE;
- Data1 : BYTE;
- Data2 : BYTE;
-
- END;
-
- TMidiHandle = WORD;
-
- {----}
-
- TMidiCaps = RECORD
-
- ManufacturerID : WORD;
- ProductID : WORD;
- DriverVersion : WORD;
- Name : String[20];
- Technology : WORD;
- Voices : WORD;
- Notes : WORD;
- ChannelMask : WORD;
- Support : WORD;
-
- END;
-
- PMidiCaps = ^TMidiCaps;
-
- {----}
-
- PMidiBuffHeader = ^TMidiBuffHeader;
-
- TMidiBuffHeader = RECORD
-
- Data : Pointer;
- BufferLength : WORD;
- BytesRecorded : WORD;
- User : Pointer;
- Flags : LONGINT;
- Next : PMidiBuffHeader;
- Reserved : LONGINT;
-
- END;
-
- {----}
-
- TMidiCallBack = Procedure( Signal : WORD;
- Param1 : Longint;
- Param2 : Longint );
-
-
-
- {-----------}
- { - - - - - }
- { Driver }
- { - - - - - }
- {-----------}
-
-
- Const
-
- MDS_Changed = 1;
- MDS_Install = 2;
-
- MDF_DriverNew = 1;
- MDF_MidiInOpen = 2;
- MDF_MidiInAddBuffer = 3;
- MDF_MidiInReset = 4;
- MDF_MidiInStart = 5;
- MDF_MidiInStop = 6;
- MDF_MidiInClose = 7;
-
-
- Type
-
- TMPU401DriverInfo = RECORD
-
- IRQ : BYTE;
- IOPort : WORD;
-
- InOpen : BOOLEAN;
- OutOpen : BOOLEAN;
-
- InHandle : TMidiHandle;
- OutHandle : TMidiHandle;
-
- IBH : PMidiBuffHeader;
-
- CurrIBH : PMidiBuffHeader;
-
- InCallBack : TMidiCallBack;
- OutCallBack : TMidiCallBack;
-
- InState : BYTE;
-
- END;
- PMPU401DriverInfo = ^TMPU401DriverInfo;
-
- Const
-
- sMPU401Ready = $00;
- sMPU401Started = $01;
- sMPU401Stopped = $02;
-
- sMPU401BuffersFull = $80;
-
- Type
-
- TMidiDriverPacket = RECORD
-
- Func : WORD;
- ID : Pointer;
-
- DriverInfo : Pointer;
-
- Handle : TMidiHandle;
- DeviceID : WORD;
- CallBack : TMidiCallBack;
- OpenInstance : Pointer;
- Flags : LONGINT;
-
- MBH : PMidiBuffHeader;
-
- Status : WORD;
-
- END;
-
- PMidiDriverPacket = ^TMidiDriverPacket;
-
- TMidiDriverProc = Procedure( MDP : PMidiDriverPacket );
-
- PMidiDriverProc = ^TMidiDriverProc;
-
- Type
-
- TIHandleInfo = RECORD
-
- DeviceID : WORD;
-
- END;
-
- TIDeviceInfo = RECORD
-
- Driver : TMidiDriverProc;
-
- ID : Pointer;
-
- END;
-
- Var
-
- IH1Data : PMPU401DriverInfo;
- IH2Data : PMPU401DriverInfo;
- IH3Data : PMPU401DriverInfo;
- IH4Data : PMPU401DriverInfo;
-
- IHUsed : BYTE;
-
-
- HandleInfoList : Array[1..16] of TIHandleInfo;
- HandlesIssued : WORD;
-
-
- MidiInDeviceInfoList : Array[1..16] of TIDeviceInfo;
- NumMidiInDevices : WORD;
-
-
- MDP : TMidiDriverPacket;
-
- {────────────────────────────────────────────────────────────────────────────}
-
- Function VMidiDriverNew( Proc : TMidiDriverProc;
- DriverInfo : Pointer ) : TError;
-
- {--------------------------------------------------------------------------}
- { }
- { Midi Output Functions }
- { }
- {--------------------------------------------------------------------------}
-
- Procedure VMidiOutGetDevCaps( MidiOutCaps : PMidiCaps );
-
- Procedure VMidiOutOpen( Var Handle : TMidiHandle;
- DeviceID : WORD;
- CallBack : TMidiCallBack;
- Instance : Pointer;
- Flags : LONGINT );
-
- Procedure VMidiOutShortMsg( Handle : TMidiHandle;
- Message : TMidiMessage );
-
- Procedure VMidiOutPrepareHeader;
-
- Procedure VMidiOutUnPrepareHeader;
-
- Procedure VMidiOutLongMsg( MidiBuffHdr : PMidiBuffHeader;
- Handle : TMidiHandle );
-
- Procedure VMidiOutClose( Handle : TMidiHandle );
-
- {--------------------------------------------------------------------------}
- { }
- { Midi Input Functions }
- { }
- {--------------------------------------------------------------------------}
-
- Function VMidiInGetNumDevs : WORD;
-
- Procedure VMidiInGetDevCaps( MidiInCaps : PMidiCaps );
-
- Procedure VMidiInOpen( Var Handle : TMidiHandle;
- DeviceID : WORD;
- CallBack : TMidiCallBack;
- Instance : Pointer;
- Flags : LONGINT );
-
- Procedure VMidiInPrepareHeader( MidiBuffHdr : PMidiBuffHeader );
-
- Procedure VMidiInUnPrepareHeader( MidiBuffHdr : PMidiBuffHeader );
-
- Procedure VMidiInAddBuffer( MidiBuffHdr : PMidiBuffHeader );
-
- Procedure VMidiInReset( Handle : TMidiHandle );
-
- Procedure VMidiInStart( Handle : TMidiHandle );
-
- Procedure VMidiInStop( Handle : TMidiHandle );
-
- Procedure VMidiInClose( Handle : TMidiHandle );
-
- {────────────────────────────────────────────────────────────────────────────}
-
-