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; } })); }
public async Task CloseAsync() { Connection = MidiPortConnectionState.Pending; await Task.Run(() => { input.Dispose(); Connection = MidiPortConnectionState.Closed; }); }
public Task CloseAsync() { return(Task.Run(() => { Connection = MidiPortConnectionState.Pending; WinMMNatives.midiOutClose(handle); Connection = MidiPortConnectionState.Closed; })); }
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; }
public async Task CloseAsync() { Connection = MidiPortConnectionState.Pending; await Task.Run(() => { var d = output as IDisposable; if (d != null) { d.Dispose(); } Connection = MidiPortConnectionState.Closed; }); }
public Task CloseAsync() { if (details is CoreMidiPortDetails cmDetails) { port.Disconnect(cmDetails.Endpoint); cmDetails.Dispose(); } port.Dispose(); client.Dispose(); Connection = MidiPortConnectionState.Closed; return(Task.CompletedTask); }
internal virtual void Close() { on_close(); connection = MidiPortConnectionState.Closed; StateChanged(this, EventArgs.Empty); }
protected MidiPort(MidiPortDetails details, Action onClose) { this.details = details; on_close = onClose; connection = MidiPortConnectionState.Open; }
internal virtual void Close() { on_close(); connection = MidiPortConnectionState.Closed; }
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; }