/// <summary> /// This event is called when a Live status package has been received. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> void OnLiveStatusEvent(object sender, LiveStatusEventArgs args) { if (InvokeRequired) { BeginInvoke(new EventHandler <LiveStatusEventArgs>(OnLiveStatusEvent), new[] { sender, args }); } else { if (args != null) { if ((args.ChangedStatusFlags & StatusFlags.Motion) != 0) { checkBoxMotion.Checked = (args.CurrentStatusFlags & StatusFlags.Motion) != 0; } if ((args.ChangedStatusFlags & StatusFlags.Notification) != 0) { checkBoxNotification.Checked = (args.CurrentStatusFlags & StatusFlags.Notification) != 0; } if ((args.ChangedStatusFlags & StatusFlags.CameraConnectionLost) != 0) { checkBoxOffline.Checked = (args.CurrentStatusFlags & StatusFlags.CameraConnectionLost) != 0; } if ((args.ChangedStatusFlags & StatusFlags.Recording) != 0) { checkBoxRec.Checked = (args.CurrentStatusFlags & StatusFlags.Recording) != 0; } if ((args.ChangedStatusFlags & StatusFlags.LiveFeed) != 0) { checkBoxLiveFeed.Checked = (args.CurrentStatusFlags & StatusFlags.LiveFeed) != 0; } if ((args.ChangedStatusFlags & StatusFlags.ClientLiveStopped) != 0) { checkBoxClientLive.Checked = (args.CurrentStatusFlags & StatusFlags.ClientLiveStopped) != 0; } if ((args.ChangedStatusFlags & StatusFlags.DatabaseFail) != 0) { checkBoxDBFail.Checked = (args.CurrentStatusFlags & StatusFlags.DatabaseFail) != 0; } if ((args.ChangedStatusFlags & StatusFlags.DiskFull) != 0) { checkBoxDiskFull.Checked = (args.CurrentStatusFlags & StatusFlags.DiskFull) != 0; } Debug.WriteLine("LiveStatus: motion=" + checkBoxMotion.Checked + ", Notification=" + checkBoxNotification.Checked + ", Offline=" + checkBoxOffline.Checked + ", Recording=" + checkBoxRec.Checked); if (checkBoxLiveFeed.Checked == false) { ClearAllFlags(); } } } }
private void Channel_LiveStatusUpdated(object sender, LiveStatusEventArgs e) { var parent = Parent as ColumnTabPage; if (e.IsLive == true && parent.EnableGoLiveHighlights == true) { parent.HighlightType = TabPageHighlightType.IsLive; updateMessageBounds(); ProposeInvalidation(); } this.Invoke(() => _header.Invalidate()); }