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 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
package jportmidi;
public class JPortMidiApi {
public static class PortMidiStream {
private long address;
}
public static class PmEvent {
public int message;
public int timestamp;
}
// PmError bindings
public final int pmNoError = 0;
public final int pmNoData = 0;
public final int pmGotData = -1;
public final int pmHostError = -10000;
public final int pmInvalidDeviceId = -9999;
public final int pmInsufficientMemory = -9998;
public final int pmBufferTooSmall = -9997;
public final int pmBufferOverflow = -9996;
public final int pmBadPtr = -9995;
public final int pmBadData = -9994;
public final int pmInternalError = -9993;
public final int pmBufferMaxSize = -9992;
static public native int Pm_Initialize();
static public native int Pm_Terminate();
static public native int Pm_HasHostError(PortMidiStream stream);
static public native String Pm_GetErrorText(int errnum);
static public native String Pm_GetHostErrorText();
final int pmNoDevice = -1;
static public native int Pm_CountDevices();
static public native int Pm_GetDefaultInputDeviceID();
static public native int Pm_GetDefaultOutputDeviceID();
static public native String Pm_GetDeviceInterf(int i);
static public native String Pm_GetDeviceName(int i);
static public native boolean Pm_GetDeviceInput(int i);
static public native boolean Pm_GetDeviceOutput(int i);
static public native int Pm_OpenInput(PortMidiStream stream,
int inputDevice,
String inputDriverInfo,
int bufferSize);
static public native int Pm_OpenOutput(PortMidiStream stream,
int outputDevice,
String outnputDriverInfo,
int bufferSize,
int latency);
final static public int PM_FILT_ACTIVE = (1 << 0x0E);
final static public int PM_FILT_SYSEX = (1 << 0x00);
final static public int PM_FILT_CLOCK = (1 << 0x08);
final static public int PM_FILT_PLAY =
(1 << 0x0A) | (1 << 0x0C) | (1 << 0x0B);
final static public int PM_FILT_TICK = (1 << 0x09);
final static public int PM_FILT_FD = (1 << 0x0D);
final static public int PM_FILT_UNDEFINED = PM_FILT_FD;
final static public int PM_FILT_RESET = (1 << 0x0F);
final static public int PM_FILT_REALTIME =
PM_FILT_ACTIVE | PM_FILT_SYSEX | PM_FILT_CLOCK;
final static public int PM_FILT_NOTE = (1 << 0x19) | (1 << 0x18);
final static public int PM_FILT_CHANNEL_AFTERTOUCH = (1 << 0x1D);
final static public int PM_FILT_POLY_AFTERTOUCH = (1 << 0x1A);
final static public int PM_FILT_AFTERTOUCH =
(PM_FILT_CHANNEL_AFTERTOUCH | PM_FILT_POLY_AFTERTOUCH);
final static public int PM_FILT_PROGRAM = (1 << 0x1C);
final static public int PM_FILT_CONTROL = (1 << 0x1B);
final static public int PM_FILT_PITCHBEND = (1 << 0x1E);
final static public int PM_FILT_MTC = (1 << 0x01);
final static public int PM_FILT_SONG_POSITION = (1 << 0x02);
final static public int PM_FILT_SONG_SELECT = (1 << 0x03);
final static public int PM_FILT_TUNE = (1 << 0x06);
final static public int PM_FILT_SYSTEMCOMMON =
(PM_FILT_MTC | PM_FILT_SONG_POSITION |
PM_FILT_SONG_SELECT | PM_FILT_TUNE);
static public native int Pm_SetFilter(PortMidiStream stream, int filters);
static public int Pm_Channel(int channel) { return 1 << channel; }
final static public native int Pm_SetChannelMask(PortMidiStream stream,
int mask);
final static public native int Pm_Abort(PortMidiStream stream);
final static public native int Pm_Close(PortMidiStream stream);
static public int Pm_Message(int status, int data1, int data2) {
return (((data2 << 16) & 0xFF0000) |
((data1 << 8) & 0xFF00) |
(status & 0xFF));
}
static public int Pm_MessageStatus(int msg) {
return msg & 0xFF;
}
static public int Pm_MessageData1(int msg) {
return (msg >> 8) & 0xFF;
}
static public int Pm_MessageData2(int msg) {
return (msg >> 16) & 0xFF;
}
// only supports reading one buffer at a time
static public native int Pm_Read(PortMidiStream stream, PmEvent buffer);
static public native int Pm_Poll(PortMidiStream stream);
// only supports writing one buffer at a time
static public native int Pm_Write(PortMidiStream stream, PmEvent buffer);
static public native int Pm_WriteShort(PortMidiStream stream,
int when, int msg);
static public native int Pm_WriteSysEx(PortMidiStream stream,
int when, byte msg[]);
public final int ptNoError = 0;
public final int ptAlreadyStarted = -10000;
public final int ptAlreadyStopped = -9999;
public final int PtInsufficientMemory = -9998;
static public native int Pt_TimeStart(int resolution);
static public native int Pt_TimeStop();
static public native int Pt_Time();
static public native boolean Pt_TimeStarted();
static {
System.out.println("Loading pmjni");
System.loadLibrary("pmjni");
System.out.println("done loading pmjni");
}
}
|