Ejemplo n.º 1
0
        public WinMMMidiInput(IMidiPortDetails details)
        {
            Details = details;

            // prevent garbage collection of the delegate
            midiInProc = HandleMidiInProc;

            DieOnError(WinMMNatives.midiInOpen(out handle, uint.Parse(Details.Id), midiInProc,
                                               IntPtr.Zero, MidiInOpenFlags.Function | MidiInOpenFlags.MidiIoStatus));

            DieOnError(WinMMNatives.midiInStart(handle));

            while (lmBuffers.Count < LONG_BUFFER_COUNT)
            {
                var buffer = new LongMessageBuffer(handle);

                buffer.PrepareHeader();
                buffer.AddBuffer();

                lmBuffers.Add(buffer.Ptr, buffer);
            }

            Connection = MidiPortConnectionState.Open;
        }
Ejemplo n.º 2
0
 public WinMMMidiInput(IMidiPortDetails details)
 {
     Details = details;
     WinMMNatives.midiInOpen(out handle, uint.Parse(Details.Id), HandleMidiInProc, IntPtr.Zero, MidiInOpenFlags.Function);
     Connection = MidiPortConnectionState.Open;
 }