public IObservable <IMidiMessage> Update(MidiInputDevice device, out bool isOpen) { if (device.IsValid()) { if (device.Value != FDeviceName) { var deviceID = (int)device.Tag; FDeviceName = device.Value; var midiIn = new MidiInObservable(deviceID); MidiInObservables = midiIn; CheckIsOpen = () => midiIn.IsOpen; } } else { FDeviceName = null; MidiInObservables = MidiObservableUtils.DefaultMidiObservable; CheckIsOpen = () => false; } isOpen = CheckIsOpen(); return(MidiInObservables); }
static MidiObservableUtils() { DefaultMidiObservable = new DefaultMidiObservable(); }