Example #1
0
        public AppData(Dispatcher dispatcher)
        {
            Dispatcher = dispatcher;

            MidiInPorts  = new MidiInPortCapsCollection();
            MidiReceiver = new MidiReceiver(this);
            Events       = new List <MidiFileEvent>();
        }
Example #2
0
        public AppData(Dispatcher dispatcher)
        {
            Dispatcher = dispatcher;

            MidiInPorts  = new MidiInPortCapsCollection();
            MidiOutPorts = new MidiOutPortCapsCollection();

            SysExBuffers  = new ObservableCollection <MidiSysExBuffer>();
            SysExReceiver = new MidiSysExReceiver(this);
            SysExSender   = new MidiSysExSender();
        }
Example #3
0
        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);
        }