public void ClearRecords() { if (IsRecording) { return; } records.Clear(); maxChannelCount = 0; OnRecordCountChanged?.Invoke(); }
private void OnReceive(string data) { if (!IsRecording) { return; } if (string.IsNullOrEmpty(data)) { return; } data = data.Replace('-', '+').Replace('_', '/'); var bytes = Convert.FromBase64String(data); if (bytes.Length != 2 + 33 * 4) { return; } var channelCount = bytes[1]; var bools = BitConverter.ToUInt32(bytes, 2); var numbers = new float[32]; for (var i = 0; i < 32; ++i) { numbers[i] = BitConverter.ToSingle(bytes, 6 + i * 4); } lock (records.SyncRoot) { records.Add(new Record { Numbers = numbers, Bools = bools, }); maxChannelCount = Math.Max(maxChannelCount, channelCount); } OnRecordCountChanged?.Invoke(); }