Esempio n. 1
0
        public Task CloseAsync()
        {
            return(Task.Run(() =>
            {
                lock (lockObject)
                {
                    Connection = MidiPortConnectionState.Pending;

                    DieOnError(WinMMNatives.midiInReset(handle));
                    DieOnError(WinMMNatives.midiInStop(handle));
                    DieOnError(WinMMNatives.midiInClose(handle));

                    // wait for the device driver to hand back the long buffers through HandleMidiInProc

                    for (int i = 0; i < 1000; i++)
                    {
                        lock (lockObject)
                        {
                            if (lmBuffers.Count < 1)
                            {
                                break;
                            }
                        }

                        Thread.Sleep(10);
                    }

                    Connection = MidiPortConnectionState.Closed;
                }
            }));
        }
Esempio n. 2
0
 public async Task CloseAsync()
 {
     Connection = MidiPortConnectionState.Pending;
     await Task.Run(() => {
         input.Dispose();
         Connection = MidiPortConnectionState.Closed;
     });
 }
Esempio n. 3
0
 public Task CloseAsync()
 {
     return(Task.Run(() =>
     {
         Connection = MidiPortConnectionState.Pending;
         WinMMNatives.midiOutClose(handle);
         Connection = MidiPortConnectionState.Closed;
     }));
 }
Esempio n. 4
0
 public Task CloseAsync()
 {
     return(Task.Run(() => {
         if (on_dispose != null)
         {
             on_dispose();
         }
         connection = MidiPortConnectionState.Closed;
     }));
 }
        public Task CloseAsync()
        {
            port.Disconnect(details.Endpoint);
            port.Dispose();
            client.Dispose();
            details.Dispose();
            return(Task.CompletedTask);

            Connection = MidiPortConnectionState.Closed;
        }
Esempio n. 6
0
 public async Task CloseAsync()
 {
     Connection = MidiPortConnectionState.Pending;
     await Task.Run(() => {
         var d = output as IDisposable;
         if (d != null)
         {
             d.Dispose();
         }
         Connection = MidiPortConnectionState.Closed;
     });
 }
Esempio n. 7
0
 public Task CloseAsync()
 {
     if (details is CoreMidiPortDetails cmDetails)
     {
         port.Disconnect(cmDetails.Endpoint);
         cmDetails.Dispose();
     }
     port.Dispose();
     client.Dispose();
     Connection = MidiPortConnectionState.Closed;
     return(Task.CompletedTask);
 }
Esempio n. 8
0
 internal virtual void Close()
 {
     on_close();
     connection = MidiPortConnectionState.Closed;
     StateChanged(this, EventArgs.Empty);
 }
Esempio n. 9
0
 protected MidiPort(MidiPortDetails details, Action onClose)
 {
     this.details = details;
     on_close     = onClose;
     connection   = MidiPortConnectionState.Open;
 }
Esempio n. 10
0
 internal virtual void Close()
 {
     on_close();
     connection = MidiPortConnectionState.Closed;
 }
Esempio n. 11
0
 protected SimpleVirtualMidiPort(IMidiPortDetails details, Action onDispose)
 {
     this.details = details;
     on_dispose   = onDispose;
     connection   = MidiPortConnectionState.Open;
 }
 public void Stop()
 {
     _state = MidiPortConnectionState.Closed;
     _midiDriver.Stop();
 }
 public void Start()
 {
     _state = MidiPortConnectionState.Open;
     _midiDriver.Start();
 }
 public MidiSynthDevice()
 {
     _midiDriver = new MidiDriver();
     _state      = MidiPortConnectionState.Closed;
 }