public AppData(Dispatcher dispatcher) { Dispatcher = dispatcher; MidiInPorts = new MidiInPortCapsCollection(); MidiReceiver = new MidiReceiver(this); Events = new List <MidiFileEvent>(); }
public AppData(Dispatcher dispatcher) { Dispatcher = dispatcher; MidiInPorts = new MidiInPortCapsCollection(); MidiOutPorts = new MidiOutPortCapsCollection(); SysExBuffers = new ObservableCollection <MidiSysExBuffer>(); SysExReceiver = new MidiSysExReceiver(this); SysExSender = new MidiSysExSender(); }
public MidiGlobalHolder(int index) { Global = new MidiGlobal(this); port = new MidiInPort(); port.Successor = this; var count = new MidiInPortCapsCollection().Count; if (index >= count) { throw new Exception(string.Format("MIDI device with port index {0} not found", index)); } port.Open(index); port.Start(); }
IEnumerable <int> GetMidiInputId(string midiInputName) { var midiInCapabilities = new MidiInPortCapsCollection().ToArray(); if (midiInCapabilities.Length == 0) { _logger.LogWarning("You have no MIDI inputs"); yield break; } if (midiInputName == "*") { foreach (int i in Enumerable.Range(0, midiInCapabilities.Length)) { _logger.LogInformation("MIDI Input: " + midiInCapabilities[i].Name); yield return(i); } yield break; } int?selectedIdx = null; if (int.TryParse(midiInputName, out var s)) { selectedIdx = s >= 0 && s < midiInCapabilities.Length ? s : null; } selectedIdx ??= midiInCapabilities .Select((port, idx) => new { port, idx }) .FirstOrDefault(x => string.Equals(x.port.Name, midiInputName, StringComparison.OrdinalIgnoreCase)) ?.idx; if (selectedIdx == null) { _logger.LogWarning("MIDI input not found"); yield break; } _logger.LogInformation("MIDI Input: " + midiInCapabilities[selectedIdx.Value].Name); yield return(selectedIdx.Value); }