示例#1
0
        private void midiInConfirmButton_Click(object sender, EventArgs e)
        {
            if (inReady)
            {
                midiInput.Stop();
                midiInput.Close();
                midiInput.Dispose();

                midiInDevicesCB.Enabled        = true;
                refreshMidiInButton.Enabled    = true;
                midiInConfirmButton.ImageIndex = 0;
                inReady = false;
                checkReady(true);
            }
            else
            {
                midiInDevicesCB.Enabled     = false;
                refreshMidiInButton.Enabled = false;

                midiInput = new MidiIn(midiInDevicesCB.SelectedIndex);
                midiInput.MessageReceived += midiInput_MessageReceived;
                midiInput.ErrorReceived   += midiInput_ErrorReceived;
                midiInput.Start();

                midiInConfirmButton.ImageIndex = 1;
                inReady = true;
                checkReady(true);
            }
        }
示例#2
0
 public void CloseIn()
 {
     if (midiIn != null)
     {
         midiIn.Stop();
         midiIn.OnLongMsg  -= OnLongMessage;
         midiIn.OnShortMsg -= OnShortMessage;
         midiIn.Close();
         midiIn = null;
     }
 }
示例#3
0
        private void CleanupMidiPort()
        {
            if (_attachedMidiPort == null)
            {
                return;
            }

            _logService.Information("Disconnecting already attached MIDI port");
            _attachedMidiPort.Stop();
            _attachedMidiPort.Close();
            _attachedMidiPort.Dispose();

            _attachedMidiPort.MessageReceived -= ProcessMidiMessage;
            _attachedMidiPort.ErrorReceived   -= LogMidiError;
        }
示例#4
0
 private void MIDIInputTest_FormClosed(object sender, FormClosedEventArgs e)
 {
     try
     {
         midiInput.Stop();
         midiInput.Close();
         midiInput.Dispose();
     }
     catch (NullReferenceException)
     {
         //Do Nothing
     }catch (NAudio.MmException) {
         //MIDI Device was disconnected before stopping
     }
 }
示例#5
0
        protected override void OnStop()
        {
            foreach (var plugin in Plugins)
            {
                plugin.HostShutdown();
            }

            MidiIn?.Close();
            MidiIn?.Dispose();

            OscOut?.Close();
            OscOut?.Dispose();

            OscIn?.Close();
            OscIn?.Dispose();
        }
 public void Init(int inDeviceNo, int outDeviceNo)
 {
     if (_initialized)
     {
         _inDevice.Stop();
         _inDevice.Close();
         _inDevice.Dispose();
         _outDevice.Close();
         _outDevice.Dispose();
     }
     _inDevice  = new MidiIn(inDeviceNo);
     _outDevice = new MidiOut(outDeviceNo);
     _inDevice.MessageReceived += MessageReceived;
     _inDevice.ErrorReceived   += ErrorReceived;
     _inDevice.Start();
     _initialized = true;
 }