//Public method that allows to add an analog recording public void AddAnalog(string name, float timeAnalog, string path) { if (File.Exists(path)) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(path, FileMode.Open); VRPNAnalog.AnalogReports data = (VRPNAnalog.AnalogReports)bf.Deserialize(file); file.Close(); VRPNAnalogRecording recording = new VRPNAnalogRecording(name, timeAnalog, data); VRPNAnalogRecordings test; if (VRPNAnalogDevice.TryGetValue(data.deviceType + " " + data.deviceName, out test)) { test.recordings.Add(recording); } else { test = new VRPNAnalogRecordings(); test.recordings.Add(recording); VRPNAnalogDevice.Add(data.deviceType + " " + data.deviceName, test); } } }
//Public method that allows to remove an analog recording public void RemoveAnalog(string name, float timeAnalog, string analog) { VRPNAnalogRecordings test; if (VRPNAnalogDevice.TryGetValue(analog, out test)) { List <VRPNAnalogRecording> .Enumerator e = test.recordings.GetEnumerator(); VRPNAnalogRecording recording = null; while (e.MoveNext()) { if (e.Current.reportTime == timeAnalog && e.Current.name == name) { recording = e.Current; break; } } if (recording != null) { test.recordings.Remove(recording); } if (test.recordings.Count == 0) { VRPNAnalogDevice.Remove(analog); } } }