/// <summary> /// Update one specific TreeNode /// </summary> /// <param name="fqid"></param> /// <param name="state"></param> private void UpdateState(FQID fqid, String state) { Guid id = Guid.Empty; if (_treeNodeCache.ContainsKey(fqid.ObjectId)) { id = (Guid)_treeNodeCache[fqid.ObjectId].Tag; } else { if (fqid.ObjectId == Guid.Empty && _treeNodeCache.ContainsKey(fqid.ServerId.Id)) { id = (Guid)_treeNodeCache[fqid.ServerId.Id].Tag; } } if (id != Guid.Empty && _treeNodeCache.ContainsKey(id)) { TreeNode tn = _treeNodeCache[id]; tn.ToolTipText = state; if (state == "Enabled" || state == "Responding" || state == "Server Responding") { tn.ForeColor = Color.Black; } else if (state == "Disabled" || state == "Not Responding" || state == "Server Not Responding") { tn.ForeColor = Color.Gray; } listBoxChanges.Items.Insert(0, DateTime.Now.ToLongTimeString() + ": " + tn.Text + " - " + state); } }
private async Task <Bookmark[]> BookmarkSearch(FQID bookmarkFQID, long period, int bookmarksCount) { string searchStr = optSearchStr; if (string.IsNullOrEmpty(optSearchStr)) { searchStr = OpenALPRBackgroundPlugin.openalprRefrence; } try { return(await Task.Run(() => BookmarkService.Instance.BookmarkSearchFromBookmark( bookmarkFQID, period, bookmarksCount + 1, kinds, new FQID[] { items[0].FQID }, optUsers, searchStr))); } catch (Exception ex) { Logger.Log.Error(null, ex); } return(new Bookmark[0]); }
public override void Init() { Instance = this; _watchCameraFQID = null; try { // Reading the configuration belonging to the Options Dialog System.Xml.XmlNode result = VideoOS.Platform.Configuration.Instance.GetOptionsConfiguration(AnalyticsOverlayDefinition.AnalyticsOverlayOptionDialog, true); if (result != null) { XmlNode childNode = result.FirstChild; String id = childNode.Attributes["value"].Value; if (id != null) { Guid guid = new Guid(id); Item camera = Configuration.Instance.GetItem(guid, Kind.Camera); if (camera != null) { _watchCameraFQID = camera.FQID; } } } } catch { //ignore if there is no camera } ClientControl.Instance.NewImageViewerControlEvent += new ClientControl.NewImageViewerControlHandler(NewImageViewerControlEvent); _stop = false; _thread = new Thread(new ThreadStart(Run)); _thread.Start(); }
/// <summary> /// build the itemTreeview /// </summary> /// <param name="siteFQID"></param> private TreeNode BuildTree(FQID siteFQID) { treeViewItems.ImageList = VideoOS.Platform.UI.Util.ImageListClone; treeViewItems.ShowNodeToolTips = true; // Build Top TreeNode try { Item server = Configuration.Instance.GetItem(siteFQID); //hangs TreeNode tn = new TreeNode(server.Name) { ImageIndex = VideoOS.Platform.UI.Util.ServerIconIx, SelectedImageIndex = VideoOS.Platform.UI.Util.ServerIconIx, Tag = server.FQID.ServerId.Id }; treeViewItems.Nodes.Add(tn); _treeNodeItemsCache.Add(server.FQID.ServerId.Id, tn); // Add all children tn.Nodes.AddRange(AddChildren(server)); return(tn); } catch (Exception ex) { toolStripStatusLabel1.Text = "Exception on GetItem " + ex.Message + " Happens on server " + siteFQID.ServerId.ServerHostname; return(null); } }
/// <summary> /// A new state message has been send by the EventServer - check for any new valued state changes /// </summary> /// <param name="message"></param> /// <param name="dest"></param> /// <param name="source"></param> /// <returns></returns> private object MessageHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID source) { if (message.MessageId == VideoOS.Platform.Messaging.MessageId.Server.NewEventIndication) { EventData eventData = message.Data as EventData; if (eventData != null) { BeginInvoke(new MethodInvoker(delegate() { UpdateState(eventData.EventHeader.Source.FQID, eventData.EventHeader.Message); })); } else { BaseEvent baseEvent = message.Data as BaseEvent; if (baseEvent != null) { BeginInvoke(new MethodInvoker(delegate() { UpdateState(baseEvent.EventHeader.Source.FQID, baseEvent.EventHeader.Message); })); } } } if (message.MessageId == VideoOS.Platform.Messaging.MessageId.System.SystemConfigurationChangedIndication) { BeginInvoke(new MethodInvoker(delegate() { listBoxChanges.Items.Insert(0, DateTime.Now.ToLongTimeString() + ": " + message.MessageId); })); } return(null); }
private void Window_Closed(object sender, EventArgs e) { _imageViewerControl.Disconnect(); _imageViewerControl.Close(); _imageViewerControl.Dispose(); if (_microphonePlayer != null) { _microphonePlayer.Disconnect(); _microphonePlayer.Close(); _microphonePlayer.Dispose(); } if (_speakerPlayer != null) { _speakerPlayer.Disconnect(); _speakerPlayer.Close(); _speakerPlayer.Dispose(); } if (_playbackFQID != null) { ClientControl.Instance.ReleasePlaybackController(_playbackFQID); _playbackFQID = null; } _mc?.Dispose(); _dateTimePicker?.Dispose(); _winFormsHost.Dispose(); }
/// <summary> /// This method keeps an eye with what view layout the user is selecting, /// stores it under _currentView, and show the name in the read-only textBoxLayoutName textbox. /// </summary> /// <param name="message"></param> /// <param name="s"></param> /// <param name="r"></param> /// <returns></returns> private object ViewChangedHandler(Message message, FQID s, FQID r) { _currentView = message.Data as ViewAndLayoutItem; UpdateIndexes(); return(null); }
public override void Init() { List <Item> checkCurrent = GetItems(); if (checkCurrent.Count == 0) { FQID fqid = new FQID(new ServerId("NA", "localhost", 80, Guid.NewGuid())); fqid.ObjectId = Guid.NewGuid(); fqid.Kind = ConfigDumpDefinition.ConfigDumpKind; CurrentItem = new Item(fqid, "Enter a name"); if (EnvironmentManager.Instance.EnvironmentType == EnvironmentType.Administration) { Configuration.Instance.SaveItemConfiguration(ConfigDumpDefinition.ConfigDumpPluginId, CurrentItem); } } else { CurrentItem = checkCurrent[0]; } appReady = EnvironmentManager.Instance.RegisterReceiver(ApplicationReady, new MessageIdFilter( VideoOS.Platform.Messaging.MessageId.System. SystemConfigurationChangedIndication)); base.Init(); }
private bool ProcessAlprGroupOrResults_New(OpenALPRData palteInfo) { if (palteInfo != null) { if (!string.IsNullOrEmpty(palteInfo.Best_plate_number) && palteInfo.Camera_id != 0) { IList <OpenALPRmilestoneCameraName> cameras = GetCameraFromMapping(palteInfo.Camera_id.ToString()); if (AddBookmarks) { FQID bookmarkFQID = null; List <BookmarkItem> bookmarkItems = CreateBookmarkItem(palteInfo, cameras); bookmarkFQID = AddNewBookmark_New(bookmarkItems); if (cameras.Count != 0 && bookmarkFQID != null) { SendAlarm_New(palteInfo, cameras[cameras.Count - 1].MilestoneName, bookmarkFQID); // Send Alert for the last Camera since we recieved the bookmarkFQID for the last camera used in AddNewBookmark. } } } else { Program.Log.Warn("Best_plate_number is empty or Camera_id == 0"); } } return(true); }
public VideoPreviewUserControl() { InitializeComponent(); _playbackUserControl = ClientControl.Instance.GeneratePlaybackUserControl(); _playbackUserControl.Dock = DockStyle.Top; _playbackUserControl.TimeSpan = TimeSpan.FromHours(1); _playbackUserControl.ShowTallUserControl = true; panelPlayback.Controls.Add(_playbackUserControl); FQID playbackControllerFQID = ClientControl.Instance.GeneratePlaybackController(); _playbackUserControl.Init(playbackControllerFQID); _bitmapSource = new BitmapSource(); _bitmapSource.PlaybackFQID = playbackControllerFQID; _bitmapSource.NewBitmapEvent += _bitmapSource_NewBitmapEvent; _bitmapSource.Selected = true; EnvironmentManager.Instance.SendMessage( new VideoOS.Platform.Messaging.Message(MessageId.SmartClient.PlaybackSkipModeCommand, PlaybackSkipModeData.Skip), playbackControllerFQID); _playbackUserControl.Enabled = false; }
private async void BtnNext_Click(object sender, EventArgs e) { if (lsvBookmarks.Items.Count != 0) { ListViewItem lsvItem = lsvBookmarks.Items[lsvBookmarks.Items.Count - 1]; if (lsvItem != null && lsvItem.Tag != null) { FQID bookmarkFQID = lsvItem.Tag as FQID; string searchString = txtSearchFor.Text.Trim() == string.Empty ? null : txtSearchFor.Text; try { DateTime startTime = DateTime.Now; DateTime.TryParse(lsvItem.SubItems[1].Text, out startTime); startTime = startTime.ToUniversalTime(); startTime = DateTime.SpecifyKind(startTime, DateTimeKind.Utc); DateTime endTime = datEndTime.Value.ToUniversalTime(); endTime = DateTime.SpecifyKind(endTime, DateTimeKind.Utc); await Next(bookmarkFQID, startTime, endTime, chkMyBookmarksOnly.Checked, searchString); } catch (Exception ex) { Logger.Log.Error(null, ex); } } } }
private void OnSelect(object sender, EventArgs e) { DevicePickerForm form = new DevicePickerForm(); if (selectedDevices != null && selectedDevices.Count > 0) { FQID[] FQIDlist = new FQID[selectedDevices.Count]; int ix = 0; foreach (FQID fqid in selectedDevices) { FQIDlist[ix++] = fqid; } form.SelectedFQID = FQIDlist; } form.ShowDialog(); FQID[] selectedFQID = form.SelectedFQID; ArrayList list = new ArrayList(); if (selectedFQID != null) { foreach (FQID fqid in selectedFQID) { list.Add(fqid); } } SelectedDevices = list; }
private object PlaybackTimeChangedHandler(Message message, FQID dest, FQID sender) { var time = (DateTime)message.Data; _nextToFetchTime = time; return(null); }
public bool EqualsId(dynamic id) { FQID thisId = (FQID)this.Id; FQID comFqid = (FQID)id; return(thisId.Equals(comFqid)); }
/// <summary> /// Returns the Item defined by the FQID. Will return null if not found. /// </summary> /// <param name="fqid">Fully Qualified ID of an Item</param> /// <returns>An Item</returns> public override Item GetItem(FQID fqid) { if (fqid.ObjectIdString != null) { LoadIndex(); String filename = fqid.ObjectIdString; if (!BatActionDefinition.FileGuidIndex.ContainsKey(filename)) { BatActionDefinition.FileGuidIndex[filename] = Guid.NewGuid(); _indexUnsaved = true; SaveIndex(); } Guid objectId = BatActionDefinition.FileGuidIndex[filename]; return(new Item(new FQID(EnvironmentManager.Instance.MasterSite.ServerId, Guid.Empty, filename, FolderType.No, BatActionDefinition.BatActionKind) { ObjectId = objectId }, filename)); } else { foreach (var name in BatActionDefinition.FileGuidIndex.Keys) { if (BatActionDefinition.FileGuidIndex[name] == fqid.ObjectId) { return(new Item(new FQID(EnvironmentManager.Instance.MasterSite.ServerId, Guid.Empty, name, FolderType.No, BatActionDefinition.BatActionKind) { ObjectId = fqid.ObjectId }, name)); } } } return(null); }
/// <summary> /// A new state message has been send by the EventServer - check for any new valued state changes /// </summary> /// <param name="message"></param> /// <param name="dest"></param> /// <param name="source"></param> /// <returns></returns> private object MessageHandler(VideoOS.Platform.Messaging.Message message, FQID dest, FQID source) { if (message.MessageId == VideoOS.Platform.Messaging.MessageId.Server.NewEventIndication) { EventData eventData = message.Data as EventData; string server = message.ExternalMessageSourceEndPoint.ServerId.ServerHostname; if (eventData != null) { BeginInvoke(new MethodInvoker(delegate() { UpdateState(eventData.EventHeader.Source.FQID, eventData.EventHeader.Message, server); })); } else { BaseEvent baseEvent = message.Data as BaseEvent; if (baseEvent != null) { BeginInvoke(new MethodInvoker(delegate() { UpdateState(baseEvent.EventHeader.Source.FQID, baseEvent.EventHeader.Message, server); })); } } } return(null); }
internal void FillContent(Item item) { textBoxName.Text = item.Name; _item = item; if (item.Properties.ContainsKey("RelatedFQID")) { FQID fqid = new FQID(item.Properties["RelatedFQID"]); Item relatedItem = Configuration.Instance.GetItem(fqid); if (relatedItem != null) { RelatedCamera = relatedItem; } } if (item.Properties.ContainsKey("RelatedEventFQID")) { FQID fqid = new FQID(item.Properties["RelatedEventFQID"]); Item relatedItem = Configuration.Instance.GetItem(fqid); if (relatedItem != null) { RelatedEvent = relatedItem; } } if (item.Properties.ContainsKey("Enabled")) { Disabled = item.Properties["Enabled"] == "No"; } }
/// <summary> /// </summary> /// <param name="node"></param> /// <param name="carrouselHandler"></param> internal static void BuildCarrouselList(Item item, CarrouselHandlerDelegate carrouselHandler) { if (item.Properties.ContainsKey("SelectedDevices")) { string selectedList = item.Properties["SelectedDevices"]; XmlDocument doc = new XmlDocument(); doc.InnerXml = selectedList; List <CarrouselTreeNode> list = new List <CarrouselTreeNode>(); XmlNode selectedNode = doc.SelectSingleNode("SelectedDevices"); foreach (XmlNode itemNode in selectedNode.SelectNodes("Item")) { FQID fqiditem = new FQID(itemNode.SelectSingleNode("FQID")); int seconds = 10; int sortix = 1; int.TryParse(itemNode.SelectSingleNode("Seconds").InnerText, out seconds); int.TryParse(itemNode.SelectSingleNode("Sort").InnerText, out sortix); Item cameraItem = Configuration.Instance.GetItem(fqiditem); if (cameraItem != null) // Ignore items the user has no access to, or has been disabled/deleted { int listIndex = 0; foreach (var existingItem in list) { if (existingItem.Sortix > sortix) { break; } listIndex++; } list.Insert(listIndex, new CarrouselTreeNode(cameraItem, seconds, sortix)); } } carrouselHandler(list); } }
/// <summary> /// Method that is called immediately after the view item is displayed. /// </summary> public override void Init() { _playbackWpfUserControl = new PlaybackWpfUserControl(); canvasPlaybackControl.Children.Add(_playbackWpfUserControl); _audioPlayerControl = ClientControl.Instance.GenerateAudioPlayerControl(WindowInformation); _audioPlayerControl.Dock = DockStyle.Fill; _audioPlayerControlHost.Child = _audioPlayerControl; _imageViewerControl = new ImageViewerWpfControl(WindowInformation); _imageViewerControl.VerticalAlignment = System.Windows.VerticalAlignment.Stretch; _imageViewerControl.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; _imageViewerControl.EnableMouseControlledPtz = true; _imageViewerControl.Selected = true; canvasVideo.Children.Add(_imageViewerControl); _playbackFQID = ClientControl.Instance.GeneratePlaybackController(); _playbackWpfUserControl.Init(_playbackFQID); _imageViewerControl.PlaybackControllerFQID = _playbackFQID; _audioPlayerControl.PlaybackControllerFQID = _playbackFQID; PlaybackController pc = ClientControl.Instance.GetPlaybackController(_playbackFQID); pc.SkipGaps = false; SetUpApplicationEventListeners(); _imageViewerControl.Initialize(); // Make sure Click events have been configured if (_viewItemManager.SelectedCamera != null) { ViewItemManagerPropertyChangedEvent(this, null); } }
private object MessageReceived(Message message, FQID destination, FQID sender) { var selectedImageViewAddon = _backgroundPlugin.FindSelectedImageViewAddOn(); ResetButtons(); ChangeCurrentImageViewer(selectedImageViewAddon); if (_currentImageViewer == null) { return(null); } else { SetEnableDisableButtonsState(_currentImageViewer.IndependentPlaybackEnabled); SetPlaybackButtonState(_currentImageViewer.IndependentPlaybackController.PlaybackMode); if (_currentImageViewer.IndependentPlaybackEnabled) { SetPlaybackButtonState(_currentImageViewer.IndependentPlaybackController.PlaybackMode); labelPlaybackTime.Content = _currentImageViewer.IndependentPlaybackController.PlaybackTime.ToLocalTime().ToString(TimeFormat); } else { labelPlaybackTime.Content = "Not Available"; } } return(null); }
public MainForm() { InitializeComponent(); _playbackFQID = VideoOS.Platform.ClientControl.Instance.GeneratePlaybackController(); EnvironmentManager.Instance.RegisterReceiver(PlaybackTimeChangedHandler, new MessageIdFilter(MessageId.SmartClient.PlaybackCurrentTimeIndication)); String[] cameras = Directory.GetFiles("C:\\CameraXml\\"); //We store camera xml here!! comboBox1.Items.Add("Select a camera ..."); foreach (String name in cameras) { comboBox1.Items.Add(name); } comboBox1.SelectedIndex = 0; String[] microphones = Directory.GetFiles("C:\\MicrophoneXml\\"); //We store microphone xml here!! comboBoxAudio.Items.Add("Select a microphone ..."); foreach (String name in microphones) { comboBoxAudio.Items.Add(name); } comboBoxAudio.SelectedIndex = 0; }
private object MaxCamerasChangedReceiver(Message message, FQID sender, FQID related) { if (_workSpaceViewSelected) { UpdateCameras(); } return(null); }
private object WorkSpaceStateChangedReceiver(Message message, FQID sender, FQID related) { if (_workSpaceSelected && ((WorkSpaceState)message.Data) == WorkSpaceState.Normal) { UpdateCameras(); } return(null); }
private object ShownWorkSpaceChangedReceiver(Message message, FQID sender, FQID related) { if (message.Data != null) { _selectedWorkSpaceLabel.Text = ((Item)message.Data).Name; } return(null); }
/// <summary> /// Keep track of current state: in setup or normal /// </summary> /// <param name="message"></param> /// <param name="sender"></param> /// <param name="related"></param> /// <returns></returns> private object WorkSpaceStateChangedReceiver(Message message, FQID sender, FQID related) { if (_workSpaceSelected && ((WorkSpaceState)message.Data) == WorkSpaceState.Normal) { // Went in or out of Setup state } return(null); }
private object ApplicationReady(VideoOS.Platform.Messaging.Message message, FQID sender, FQID related) { if (_userControl != null) { _userControl.FillContent(CurrentItem); // Ignore item here } return(null); }
private void OnClose(object sender, EventArgs e) { if (_playbackFQID != null) { ClientControl.Instance.ReleasePlaybackController(_playbackFQID); _playbackFQID = null; } Close(); }
/// <summary> /// Create a new item. Insert values as user has entered on the AddUserControl.<br/> /// The parentFQID can be null, when a top level node is created (e.g. no parent) /// The new fqid should be filled with ServerID, ParentId, ObjectId or ObjectIdString and Kind. /// </summary> /// <param name="parentItem">Identifies the configuration parent to the new item.</param> /// <param name="suggestedFQID">A pre-generated fqid with above fields filled. /// The ObjectId or ObjectIdString can be overridden.</param> /// <param name="addUserControl">A filled user control returned by the GeneratedAddUserControl method after it has been displayed and edited by the user</param> /// <returns>A new Item, only the FQID and Name field are required to be filled. The return value is used to identify and select the item tree node</returns> public override Item CreateItem(Item parentItem, FQID suggestedFQID, UserControl addUserControl) { CurrentItem = new Item(suggestedFQID, ((ServerConnectionAddUserControl)addUserControl).ItemName); Configuration.Instance.SaveItemConfiguration(ServerConnectionDefinition.ServerConnectionPluginId, CurrentItem); //Make sure to reserve a license for this item, real or temporary ServerConnectionLicenseHandler.RegisterItem(GetItems(), CurrentItem); return(CurrentItem); }
/// <summary> /// Create a new Item /// </summary> /// <param name="parentItem">The parent for the new Item</param> /// <param name="suggestedFQID">A suggested FQID for the new Item</param> public override Item CreateItem(Item parentItem, FQID suggestedFQID) { CurrentItem = new Item(suggestedFQID, "Enter a name"); if (_userControl != null) { _userControl.FillContent(CurrentItem); } Configuration.Instance.SaveItemConfiguration(VideoPreviewDefinition.VideoPreviewPluginId, CurrentItem); return(CurrentItem); }
/// <summary> /// Returns the Item defined by the FQID. Will return null if not found. /// </summary> /// <param name="fqid">Fully Qualified ID of an Item</param> /// <returns>An Item</returns> public override Item GetItem(FQID fqid) { Item item = Configuration.Instance.GetItemConfiguration(SensorMonitorDefinition.SensorMonitorPluginId, _kind, fqid.ObjectId); if (item == null) { return(null); } return(new ControllerItem(item)); }