private void OnFrameProcessed(object sender, CameraPreview.FrameProcessedEventArgs e) { lock (_processing) { JsonObject data = new JsonObject(); data.Add("peaks", e.Peaks); data.Add("timestamp", JsonValue.CreateNumberValue(e.Timestamp)); _peaks.Add(data); Debug.WriteLine("-- Frame {0} processed --", _peaks.Count); if (_peaks.Count == _settings.Frames) { Debug.WriteLine("All {0} frames captured & processed!", _peaks.Count); _camPreview.Release(); DispatchCommandResult(new PluginResult(PluginResult.Status.OK, _peaks.Stringify())); if (_settings.KeepImages) { SaveImages(); } Debug.WriteLine("Memory used after: {0:N0}", GC.GetTotalMemory(true)); } } }