/// <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();
                    }
                }
            }
        }
Example #2
0
        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());
        }