public void Dispose() { _current?.Dispose(); _current = null; _recent?.Dispose(); _recent = null; _gapFiller?.Dispose(); _gapFiller = null; }
private ZwinderBuffer UpdateBuffer(ZwinderBuffer buffer, RewindConfig newConfig, bool keepOldStates) { if (buffer == null) // just make a new one, plain and simple { buffer = new ZwinderBuffer(newConfig); } else if (!buffer.MatchesSettings(newConfig)) // no need to do anything if these settings are already in use { if (keepOldStates) { // force capture all the old states, let the buffer handle decay if they don't all fit ZwinderBuffer old = buffer; buffer = new ZwinderBuffer(newConfig); for (int i = 0; i < old.Count; i++) { ZwinderBuffer.StateInformation si = old.GetState(i); // don't allow states that should be reserved to decay here, where we don't attempt re-capture if (_reserveCallback(si.Frame)) { AddToReserved(si); } else { buffer.Capture(si.Frame, s => si.GetReadStream().CopyTo(s), null, true); } } old.Dispose(); } else { buffer.Dispose(); buffer = new ZwinderBuffer(newConfig); } } return(buffer); }
public void Dispose() { _buffer.Dispose(); }
public void Dispose() { Sync(); _buffer.Dispose(); }