private ICollection <Pair <MarkerRecord> > Ranges(int startMarker, int endMarker) { if (startMarker == endMarker) { throw new ArgumentException(); } var linkedList = new LinkedList <Pair <MarkerRecord> >(); if (_markerRecords == null || !_markerRecords.Any()) { return(linkedList); } MarkerRecord start = null; foreach (var markerRecord in _markerRecords.Where(r => r.Marker == startMarker || r.Marker == endMarker)) { if (markerRecord.Marker == startMarker) { start = markerRecord; } else if (markerRecord.Marker == endMarker && start != null) { linkedList.AddLast(new Pair <MarkerRecord>(start, markerRecord)); start = null; } } return(linkedList); }
private static IList <MarkerRecord> LoadMarkerRecords(string dataFilePrefix) { var file = dataFilePrefix + MarkerAsciiFileWriter.FileSuffix; if (!File.Exists(file)) { return(EmptyArray <MarkerRecord> .Instance); } var markerRecords = new LinkedList <MarkerRecord>(); foreach (var line in File.ReadLines(file, Encoding.UTF8)) { if (MarkerRecord.TryParse(line, 0, out var record)) { markerRecords.AddLast(record); } } return(markerRecords.OrderByTimestamp().ToList()); }
private void UpdateMarkers() { var markerRecordItems = new List <MarkerRecordItem>(_markerRecords.Count); var markers = ((ModulePluginComboBox.SelectedItem as FrameworkElement)?.Tag as Plugin)?.Markers; MarkerRecord previous = null; foreach (var record in _markerRecords) { var item = new MarkerRecordItem { Marker = record.Marker, Timestamp = record.Timestamp, Definition = markers == null ? null : markers.TryGetValue(record.Marker, out var definition) ? definition.FullName : null, DeltaT = previous == null ? 0 : record.Timestamp - previous.Timestamp }; previous = record; markerRecordItems.Add(item); } MarkerRecordListView.ItemsSource = markerRecordItems; }