示例#1
0
        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++;
        }
示例#2
0
 unsafe public virtual void closeOutput()
 {
     if (output == null)
     {
         return;                 // no effect if output not open
     }
     checkError(CsPortMidiApi.Pm_Close(output));
     output = null;
     openCount--;
 }