private void UpdateRecordingInterface() { Logger.Debug(Target.Recording, "Updating interface, state: " + recordInterfaceState); if (_recordingLocked && _recordingAudioVideo) { if (recordInterfaceState == 2) { return; } recordInterfaceState = 2; this.BeginOnUIThread(() => { VisualStateManager.GoToState(this, "Locked", false); ClickMode = ClickMode.Press; RecordingLocked?.Invoke(this, EventArgs.Empty); }); } else if (_recordingAudioVideo) { if (recordInterfaceState == 1) { return; } recordInterfaceState = 1; try { if (_request == null) { _request = new DisplayRequest(); _request.GetType(); } } catch { } _recordingLocked = false; _start = DateTime.Now; this.BeginOnUIThread(() => { VisualStateManager.GoToState(this, "Started", false); ClickMode = ClickMode.Release; RecordingStarted?.Invoke(this, EventArgs.Empty); }); } else { if (_request != null) { try { _request.RequestRelease(); _request = null; } catch { } } if (recordInterfaceState == 0) { return; } recordInterfaceState = 0; _recordingLocked = false; this.BeginOnUIThread(() => { VisualStateManager.GoToState(this, "Stopped", false); ClickMode = ClickMode.Press; RecordingStopped?.Invoke(this, EventArgs.Empty); }); } Logger.Debug(Target.Recording, "Updated interface, state: " + recordInterfaceState); }