diff options
Diffstat (limited to '3rdparty/portmidi/pm_java/jportmidi/JPortMidiApi.java')
-rw-r--r-- | 3rdparty/portmidi/pm_java/jportmidi/JPortMidiApi.java | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/3rdparty/portmidi/pm_java/jportmidi/JPortMidiApi.java b/3rdparty/portmidi/pm_java/jportmidi/JPortMidiApi.java new file mode 100644 index 00000000000..45dd9d98b28 --- /dev/null +++ b/3rdparty/portmidi/pm_java/jportmidi/JPortMidiApi.java @@ -0,0 +1,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"); + } +} |