public static IList<MidiInDevice> EnumerateDevices() { List<MidiInDevice> devices = new List<MidiInDevice>(); uint numInputDevices = WinMM.midiInGetNumDevs(); for (int i = 0; i < numInputDevices; i++) { WinMM.MidiInCaps inCaps = new WinMM.MidiInCaps(); WinMM.midiInGetDevCaps(i, ref inCaps, System.Runtime.InteropServices.Marshal.SizeOf(typeof(WinMM.MidiInCaps))); devices.Add(new MidiInDevice(i, inCaps)); } return devices.AsReadOnly(); }
private MidiInDevice(int id, WinMM.MidiInCaps caps) { Id = id; this.caps = caps; }