private void StreamViewer_StopControl(object sender, SourceControlTypeEventArgs e) { if (this.InvokeRequired) { this.BeginInvoke(new EventHandler <SourceControlTypeEventArgs>(StreamViewer_StopControl), new object[] { sender, e }); return; } if (sender is StreamViewerControl) { ((StreamViewerControl)sender).ControlState[e.ControlType] = SourceControlTypeState.Inactive; } else if (sender is IControlPalette) { ((IControlPalette)sender).StreamViewerControl.ControlState[e.ControlType] = SourceControlTypeState.Inactive; } else { return; } CurrentPalette = null; }
private void StreamViewer_StartControl(object sender, SourceControlTypeEventArgs e) { StreamViewerControl svc = sender as StreamViewerControl; if (svc == null) { return; } IControlPalette p = null; switch (e.ControlType) { case SourceControlTypes.PTZ: p = new PTZPalette(); break; case SourceControlTypes.Microwave: p = new MicrowavePalette(); break; default: return; } svc.Active = true; p.StreamViewerControl = svc; if (!PaletteWorker.IsBusy) { PaletteWorker.RunWorkerAsync(p); } else { FCMessageBox.Show("Please wait", "Another peripheral control is in the process of starting." + Environment.NewLine + "Please wait for it to finish.", this); svc.ControlState[e.ControlType] = SourceControlTypeState.Inactive; } }