unsafe public virtual void openOutput(int outputDevice, string outputDriverInfo, int bufferSize, int latency) { CsPortMidiApi.PortMidiStream stream; if (OpenOutput) { CsPortMidiApi.Pm_Close(output); } else { stream = new CsPortMidiApi.PortMidiStream(); output = &stream; } if (trace) { Console.WriteLine("openOutput " + getDeviceName(outputDevice)); } fixed(CsPortMidiApi.PortMidiStream **p = &output) { checkError(CsPortMidiApi.Pm_OpenOutput(p, outputDevice, outputDriverInfo, bufferSize, latency)); } // if no exception, then increase count of open streams openCount++; }
unsafe public virtual void closeOutput() { if (output == null) { return; // no effect if output not open } checkError(CsPortMidiApi.Pm_Close(output)); output = null; openCount--; }