public void Write(MidiEvent [] buffer, int index, int length) { var gch = GCHandle.Alloc (buffer); try { var ptr = Marshal.UnsafeAddrOfPinnedArrayElement (buffer, index); var ret = PortMidiMarshal.Pm_Write (stream, ptr, length); if (ret != PmError.NoError) throw new MidiException (ret, String.Format ("Failed to write messages : {0}", PortMidiMarshal.Pm_GetErrorText ((PmError) ret))); } finally { gch.Free (); } }
public void Write(MidiEvent [] buffer) { Write (buffer, 0, buffer.Length); }
public static extern int Pm_Read(PortMidiStream stream, MidiEvent [] buffer, int length);
public void Write(MidiEvent mevent) { if (mevent.SysEx != null) WriteSysEx (mevent.Timestamp, mevent.SysEx); else Write (mevent.Timestamp, mevent.Message); }
public int Read(MidiEvent [] buffer, int length) { return PortMidiMarshal.Pm_Read (stream, buffer, length); }