/// <summary> /// Returns the <paramref name="buffer"/> to the pool. /// </summary> /// <param name="buffer">Must not be null.</param> /// <remarks>Call this method when the <paramref name="buffer"/> is no longer needed.</remarks> public override void ReturnBuffer(MidiBufferStream buffer) { Check.IfArgumentNull(buffer, "buffer"); // do not re-add buffers during a Reset (or Close) that is meant to return all // buffers from the MidiInPort to the buffer manager. if (!MidiPort.HasStatus(MidiPortStatus.Reset | MidiPortStatus.Closed)) { // returned buffers are added to the midi in port again // to make them available for recording sysex. AddBufferToPort(buffer); } else { OnUnprepareBuffer(buffer); base.ReturnBuffer(buffer); } }