protected override void ProcessingStopped() { _running = false; _thread.Join(); _seekWindow?.Close(); _seekWindow?.Dispose(); _reader.Dispose(); _fileStream.Dispose(); _reader = null; _fileStream = null; _seekWindow = null; }
public override bool PrepareProcessing() { if (!File.Exists(FileName)) { GlobalSettings.Instance.Errors.Add(new Error($"File not found: {FileName}")); return(false); } try { _fileStream = File.OpenRead(FileName); } catch (Exception e) { GlobalSettings.Instance.Errors.Add(new Error($"Could not open {FileName}. Unknown exception: {e}")); return(false); } _reader = new BinaryReader(_fileStream); if (_buffer == null || _buffer.Samplerate != Samplerate) { _buffer = new TimeLocatedBuffer(GlobalSettings.Instance.BufferSize(Samplerate), Samplerate); } _stateBag = new List <StateEntry>(); _buffer.ResetTime(); _fileTargetPosition = 0; if (GlobalSettings.Instance.DockPanelInstance != null) { _seekWindow = new FileNodeWindow(); } _servedLookup = new List <bool>(Enumerable.Range(0, _portOut.Connections.Count).Select(i => false)); return(true); }