1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
with Porttime;
with System;
with Interfaces.C;
use Interfaces.C;
with System.Address_To_Access_Conversions;
package Portmidi is
type PmError is (pmNoErro,
PmHostError,
pmInvalidDeviceId,
pmInsufficientMemory,
pmBufferTooSmall,
pmBufferOverflow,
pmBadPtr,
pmBadData,
pmInternalError,
PmBufferMaxSize);
function Pm_Initialize return PmError;
pragma Import (C, Pm_Initialize, "Pm_Initialize");
function Pm_Terminate return PmError;
pragma Import (C, Pm_Terminate, "Pm_Terminate");
function Pm_HasHostError( PortMidiStream : System.address) return Interfaces.C.Int;
pragma Import (C, Pm_HasHostError, "Pm_HasHostError");
subtype T_ErrorText is Interfaces.C.Char_Array(0..64);
function Pm_GetErrorText( Errnum : PmError ) return T_ErrorText;
Pragma Import (C, Pm_GetErrorText, "Pm_GetErrorText");
package ErrorText_Conversion is new System.Address_To_Access_Conversions
(T_ErrorText);
use ErrorText_Conversion;
-- void Pm_GetHostErrorText(char * msg, unsigned int len);
type DeviceInfo is
record
StructVersion : Integer;
Interf : System.address;
Name : System.Address;
Input : Integer;
Output : Integer;
Opened : integer;
end record;
function Pm_CountDevices return Integer;
pragma Import (C, Pm_CountDevices, "Pm_CountDevices");
function Pm_GetDefaultInputDeviceID return Interfaces.C.int;
pragma Import (C, Pm_GetDefaultInputDeviceID, "Pm_GetDefaultInputDeviceID");
function Pm_GetDefaultOutputDeviceID return Interfaces.C.Int;
pragma Import (C, Pm_GetDefaultOutputDeviceID, "Pm_GetDefaultOutputDeviceID");
function Pm_GetDeviceInfo(PmDeviceID : Integer) return System.Address;
pragma Import (C, Pm_GetDeviceInfo, "Pm_GetDeviceInfo");
package DeviceInfo_Conversion is new System.Address_To_Access_Conversions(DeviceInfo);
use DeviceInfo_Conversion;
function Pm_OpenInput(PortMidiStream : System.address;
PmDeviceID : Integer;
InputDriverInfo : Integer;
BufferSize : Long_Integer;
PmTimeProcPtr : Porttime.Time_access;
time_info : System.address) return PmError;
pragma Import (C, Pm_OpenInput, "Pm_OpenInput");
function Pm_OpenOutput(PortMidiStream : System.Address;
OutputDevice : Integer;
outputDriverInfo : System.address;
BufferSize : Long_Integer;
Time_Proc : Porttime.Time_access;
Time_Info : System.address;
latency : Long_integer) return PmError;
pragma Import (C, Pm_OpenOutput, "Pm_OpenOutput");
function Pm_SetFilter(PortMidiStream : System.Address;
filters : Long_Integer) return PmError;
pragma Import (C, Pm_SetFilter, "Pm_SetFilter");
function Pm_SetChannelMask(PortMidiStream : System.Address;
Mask : integer) return PmError;
pragma Import (C, Pm_SetChannelMask, "Pm_SetChannelMask");
function Pm_Abort( PortMidiStream : System.Address) return PmError;
pragma Import (C, Pm_Abort, "Pm_Abort");
function Pm_Close( PortMidiStream : System.Address) return PmError;
pragma Import (C, Pm_Close, "Pm_Close");
end Portmidi; |
Partager