public override bool Configure(CameraSummary summary) { bool needsReconnection = false; FormConfiguration form = new FormConfiguration(summary); FormsHelper.Locate(form); if (form.ShowDialog() == DialogResult.OK) { if (form.AliasChanged) { summary.UpdateAlias(form.Alias, form.PickedIcon); } if (form.SpecificChanged) { SpecificInfo info = new SpecificInfo(); info.MediaTypeIndex = form.SelectedMediaTypeIndex; info.SelectedFramerate = form.SelectedFramerate; info.CameraProperties = form.CameraProperties; summary.UpdateSpecific(info); summary.UpdateDisplayRectangle(Rectangle.Empty); needsReconnection = form.NeedsReconnection; } CameraTypeManager.UpdatedCameraSummary(summary); } form.Dispose(); return(needsReconnection); }
public override bool Configure(CameraSummary summary) { bool needsReconnection = false; FormConfiguration form = new FormConfiguration(summary); if (form.ShowDialog() == DialogResult.OK) { if (form.AliasChanged) { summary.UpdateAlias(form.Alias, form.PickedIcon); } if (form.SpecificChanged) { SpecificInfo info = new SpecificInfo(); info.FrameInterval = form.FrameInterval; info.FrameSize = form.FrameSize; summary.UpdateSpecific(info); summary.UpdateDisplayRectangle(Rectangle.Empty); needsReconnection = true; } CameraTypeManager.UpdatedCameraSummary(summary); } form.Dispose(); return(needsReconnection); }
private void Drop(DragEventArgs e, int target) { if (e.Data.GetDataPresent(typeof(CameraSummary))) { CameraSummary summary = (CameraSummary)e.Data.GetData(typeof(CameraSummary)); if (summary != null) { CameraTypeManager.LoadCamera(summary, target); } } else if (e.Data.GetDataPresent(DataFormats.StringFormat)) { string filename = (string)e.Data.GetData(DataFormats.StringFormat); FileLoadAsked(this, new FileLoadAskedEventArgs(filename, target)); } else if (e.Data.GetDataPresent(DataFormats.FileDrop)) { Array fileArray = (Array)e.Data.GetData(DataFormats.FileDrop); if (fileArray != null) { string filename = fileArray.GetValue(0).ToString(); FileLoadAsked(this, new FileLoadAskedEventArgs(filename, target)); } } }
public static void LoadVideoInScreen(ScreenManagerKernel manager, string path, ScreenDescriptionPlayback screenDescription) { CameraTypeManager.CancelThumbnails(); CameraTypeManager.StopDiscoveringCameras(); LoadUnspecified(manager, path, screenDescription); }
protected override bool ExecuteCommand(int cmd) { ThumbnailViewerCameraCommands command = (ThumbnailViewerCameraCommands)cmd; switch (command) { case ThumbnailViewerCameraCommands.RenameSelected: if (selectedThumbnail != null) { selectedThumbnail.StartRenaming(); } break; case ThumbnailViewerCameraCommands.LaunchSelected: CameraTypeManager.LoadCamera(selectedThumbnail.Summary, -1); break; case ThumbnailViewerCameraCommands.Refresh: refreshImages = true; CameraTypeManager.DiscoverCameras(); this.Focus(); break; default: return(base.ExecuteCommand(cmd)); } return(true); }
private void BtnReconnect_Click(object sender, EventArgs e) { SpecificInfo info = summary.Specific as SpecificInfo; if (info == null) { return; } info.StreamFormat = this.selectedStreamFormat; info.CameraProperties = this.CameraProperties; summary.UpdateDisplayRectangle(Rectangle.Empty); CameraTypeManager.UpdatedCameraSummary(summary); disconnect(); connect(); SpecificInfo specific = summary.Specific as SpecificInfo; if (specific == null || specific.Device == null) { return; } device = specific.Device; cameraProperties = CameraPropertyManager.Read(device); PopulateStreamFormat(); RemoveCameraControls(); PopulateCameraControls(); UpdateResultingFramerate(); }
public RootKernel(bool firstInstance) { CommandLineArgumentManager.Instance.ParseArguments(Environment.GetCommandLineArgs()); VideoTypeManager.LoadVideoReaders(); CameraTypeManager.LoadCameraManagers(); ToolManager.LoadTools(); BuildSubTree(); mainWindow = new KinoveaMainWindow(this, firstInstance); NotificationCenter.RecentFilesChanged += NotificationCenter_RecentFilesChanged; NotificationCenter.FullScreenToggle += NotificationCenter_FullscreenToggle; NotificationCenter.StatusUpdated += (s, e) => statusLabel.Text = e.Status; NotificationCenter.PreferenceTabAsked += NotificationCenter_PreferenceTabAsked; log.Debug("Plug sub modules at UI extension points (Menus, ToolBars, StatusBAr, Windows)."); ExtendMenu(mainWindow.menuStrip); ExtendToolBar(mainWindow.toolStrip); ExtendStatusBar(mainWindow.statusStrip); ExtendUI(); log.Debug("Register global services offered at Root level."); Services.FormsHelper.SetMainForm(mainWindow); }
public override bool Configure(CameraSummary summary) { bool needsReconnection = false; FormConfiguration form = new FormConfiguration(summary); FormsHelper.Locate(form); if (form.ShowDialog() == DialogResult.OK) { if (form.AliasChanged) { summary.UpdateAlias(form.Alias, form.PickedIcon); } if (form.SpecificChanged) { summary.UpdateSpecific(form.Specific); summary.UpdateDisplayRectangle(Rectangle.Empty); needsReconnection = true; } CameraTypeManager.UpdatedCameraSummary(summary); } form.Dispose(); return(needsReconnection); }
public override bool Configure(CameraSummary summary, Action disconnect, Action connect) { bool needsReconnection = false; SpecificInfo info = summary.Specific as SpecificInfo; if (info == null) { return(false); } FormConfiguration form = new FormConfiguration(summary, disconnect, connect); FormsHelper.Locate(form); if (form.ShowDialog() == DialogResult.OK) { if (form.AliasChanged) { summary.UpdateAlias(form.Alias, form.PickedIcon); } if (form.SpecificChanged) { info.CameraProperties = form.CameraProperties; summary.UpdateDisplayRectangle(Rectangle.Empty); needsReconnection = true; } CameraTypeManager.UpdatedCameraSummary(summary); } form.Dispose(); return(needsReconnection); }
private void BtnReconnect_Click(object sender, EventArgs e) { if (SelectedStreamFormat == null) { // This happens when we load the config window and the camera isn't connected. return; } // Changing the image size will trigger a memory re-allocation inside uEye, // and we'll stop receiving the frame events which is causing all kinds of problems. // We can't just wait until we get out of this form because the framerate range depends on image size. // We also can't simply disconnect when user is changing size, because then we no longer have access to exposure and framerate. // Force a full connection cycle to reload the camera on the new settings. // This may reallocate the delay buffer. SpecificInfo info = summary.Specific as SpecificInfo; if (info == null) { return; } info.StreamFormat = this.SelectedStreamFormat.Value; info.CameraProperties = this.CameraProperties; summary.UpdateDisplayRectangle(Rectangle.Empty); CameraTypeManager.UpdatedCameraSummary(summary); disconnect(); connect(); ReloadProperty("framerate"); ReloadProperty("exposure"); }
public override bool Configure(CameraSummary summary) { bool needsReconnection = false; SpecificInfo info = summary.Specific as SpecificInfo; if (info == null) { return(false); } FormConfiguration form = new FormConfiguration(summary); if (form.ShowDialog() == DialogResult.OK) { if (form.AliasChanged) { summary.UpdateAlias(form.Alias, form.PickedIcon); } if (form.SpecificChanged) { info.StreamFormat = form.SelectedStreamFormat.Symbol; info.Bayer8Conversion = form.Bayer8Conversion; info.CameraProperties = form.CameraProperties; summary.UpdateDisplayRectangle(Rectangle.Empty); needsReconnection = true; } CameraTypeManager.UpdatedCameraSummary(summary); } form.Dispose(); return(needsReconnection); }
public void LoadCamera(CameraSummary summary) { CameraTypeManager.StopDiscoveringCameras(); CameraManager manager = summary.Manager; grabber = manager.Connect(summary); }
private void Thumbnail_LaunchCamera(object sender, EventArgs e) { ThumbnailCamera thumbnail = sender as ThumbnailCamera; if (thumbnail != null) { CameraTypeManager.LoadCamera(thumbnail.Summary, -1); } }
private void view_Load(object sender, EventArgs e) { CameraTypeManager.CamerasDiscovered += CameraTypeManager_CamerasDiscovered; //CameraTypeManager.CameraSummaryUpdated += CameraTypeManager_CameraSummaryUpdated; //CameraTypeManager.CameraImageReceived += CameraTypeManager_CameraImageReceived; CameraTypeManager.CameraLoadAsked += CameraTypeManager_CameraLoadAsked; CameraTypeManager.LoadCameraManagers(); CameraTypeManager.DiscoverCameras(); }
private void ViewportController_DisplayRectangleUpdated(object sender, EventArgs e) { if (!cameraLoaded || cameraSummary == null) { return; } cameraSummary.UpdateDisplayRectangle(viewportController.DisplayRectangle); CameraTypeManager.UpdatedCameraSummary(cameraSummary); }
private void Thumbnail_DeleteCamera(object sender, EventArgs e) { // Delete camera in prefs (blurbs). // Should be enough to remove the thumbnail at next discovery heart beat. ThumbnailCamera thumbnail = sender as ThumbnailCamera; CameraTypeManager.ForgetCamera(thumbnail.Summary); refreshImages = true; CameraTypeManager.DiscoverCameras(); }
public static void LoadVideoInScreen(ScreenManagerKernel manager, string path, int targetScreen, ScreenDescriptionPlayback screenDescription = null) { CameraTypeManager.CancelThumbnails(); CameraTypeManager.StopDiscoveringCameras(); if (targetScreen < 0) { LoadUnspecified(manager, path, screenDescription); } else { LoadInSpecificTarget(manager, targetScreen, path, screenDescription); } }
public static void LoadCameraInScreen(ScreenManagerKernel manager, CameraSummary summary, int targetScreen, ScreenDescriptionCapture screenDescription = null) { CameraTypeManager.CancelThumbnails(); CameraTypeManager.StopDiscoveringCameras(); if (targetScreen < 0) { LoadUnspecified(manager, summary, screenDescription); } else { LoadInSpecificTarget(manager, targetScreen, summary, screenDescription); } }
private void BtnManualClick(object sender, EventArgs e) { FormCameraWizard wizard = new FormCameraWizard(); if (wizard.ShowDialog() == DialogResult.OK) { CameraSummary summary = wizard.Result; if (summary != null) { CameraTypeManager.UpdatedCameraSummary(summary); } } wizard.Dispose(); }
private void LvCameras_MouseDoubleClick(object sender, MouseEventArgs e) { ListViewItem lvi = lvCameras.GetItemAt(e.X, e.Y); if (lvi == null || lvCameras.SelectedItems == null || lvCameras.SelectedItems.Count != 1) { return; } int index = IndexOfCamera(cameraSummaries, lvi.Name); if (index >= 0) { CameraTypeManager.LoadCamera(cameraSummaries[index], -1); } }
private void ClearContent() { if (currentContent == ThumbnailViewerContent.Files) { viewerFiles.CancelLoading(); viewerFiles.Clear(); } else if (currentContent == ThumbnailViewerContent.Shortcuts) { viewerShortcuts.CancelLoading(); viewerShortcuts.Clear(); } else { CameraTypeManager.StopDiscoveringCameras(); } }
private void BtnReconnect_Click(object sender, EventArgs e) { if (SelectedStreamFormat == null) { // This happens when we load the config window and the camera isn't connected. return; } SpecificInfo info = summary.Specific as SpecificInfo; if (info == null) { return; } info.StreamFormat = this.SelectedStreamFormat; info.Demosaicing = this.Demosaicing; info.Compression = this.Compression; info.CameraProperties = this.CameraProperties; summary.UpdateDisplayRectangle(Rectangle.Empty); CameraTypeManager.UpdatedCameraSummary(summary); disconnect(); connect(); SpecificInfo specific = summary.Specific as SpecificInfo; if (specific == null || specific.Device == null || !specific.Device.IsOpen) { return; } device = specific.Device; cameraProperties = CameraPropertyManager.Read(device, summary.Identifier); RemoveCameraControls(); PopulateStreamFormat(); PopulateBayerConversion(); PopulateCompression(); PopulateCameraControls(); UpdateResultingFramerate(); }
public RootKernel() { log.Debug("Loading video readers."); List <Type> videoReaders = new List <Type>(); videoReaders.Add(typeof(Video.Bitmap.VideoReaderBitmap)); videoReaders.Add(typeof(Video.FFMpeg.VideoReaderFFMpeg)); videoReaders.Add(typeof(Video.GIF.VideoReaderGIF)); videoReaders.Add(typeof(Video.SVG.VideoReaderSVG)); videoReaders.Add(typeof(Video.Synthetic.VideoReaderSynthetic)); VideoTypeManager.LoadVideoReaders(videoReaders); log.Debug("Loading camera managers."); List <Type> cameraManagers = new List <Type>(); cameraManagers.Add(typeof(Camera.Basler.CameraManagerBasler)); cameraManagers.Add(typeof(Camera.Daheng.CameraManagerDaheng)); cameraManagers.Add(typeof(Camera.DirectShow.CameraManagerDirectShow)); cameraManagers.Add(typeof(Camera.FrameGenerator.CameraManagerFrameGenerator)); cameraManagers.Add(typeof(Camera.HTTP.CameraManagerHTTP)); cameraManagers.Add(typeof(Camera.IDS.CameraManagerIDS)); CameraTypeManager.LoadCameraManagers(cameraManagers); log.Debug("Loading tools."); ToolManager.LoadTools(); BuildSubTree(); mainWindow = new KinoveaMainWindow(this); NotificationCenter.RecentFilesChanged += NotificationCenter_RecentFilesChanged; NotificationCenter.FullScreenToggle += NotificationCenter_FullscreenToggle; NotificationCenter.StatusUpdated += (s, e) => statusLabel.Text = e.Status; NotificationCenter.PreferenceTabAsked += NotificationCenter_PreferenceTabAsked; log.Debug("Plug sub modules at UI extension points (Menus, Toolbars, Statusbar, Windows)."); ExtendMenu(mainWindow.menuStrip); ExtendToolBar(mainWindow.toolStrip); ExtendStatusBar(mainWindow.statusStrip); ExtendUI(); log.Debug("Register global services offered at Root level."); Services.FormsHelper.SetMainForm(mainWindow); }
private void DeleteSelectedCamera(ListView lv) { if (lv == null || !lv.Focused) { return; } if (lv.SelectedItems == null || lv.SelectedItems.Count != 1) { return; } int index = IndexOfCamera(cameraSummaries, lv.SelectedItems[0].Name); if (index >= 0) { CameraTypeManager.ForgetCamera(cameraSummaries[index]); } }
private void LaunchSelectedCamera(ListView lv, TreeView tv) { if (lv == null || tv == null) { return; } if (lv.Focused) { if (lv.SelectedItems == null || lv.SelectedItems.Count != 1) { return; } int index = IndexOfCamera(cameraSummaries, lv.SelectedItems[0].Name); if (index >= 0) { CameraTypeManager.LoadCamera(cameraSummaries[index], -1); } } else if (tv.Focused) { if (tv.SelectedNode == null) { return; } CaptureHistoryEntry entry = tv.SelectedNode.Tag as CaptureHistoryEntry; if (entry == null) { return; } string path = entry.CaptureFile; if (path == null) { return; } VideoTypeManager.LoadVideo(path, -1); } }
private void SwitchContent(ThumbnailViewerContent newContent) { if (viewer != null && currentContent == newContent) { return; } ClearContent(); this.splitMain.Panel2.Controls.Clear(); switch (newContent) { case ThumbnailViewerContent.Files: { viewerFiles.UpdateThumbnailsSize(sizeSelector.SelectedSize); viewer = viewerFiles; break; } case ThumbnailViewerContent.Shortcuts: { viewerShortcuts.UpdateThumbnailsSize(sizeSelector.SelectedSize); viewer = viewerShortcuts; break; } case ThumbnailViewerContent.Cameras: { CameraTypeManager.DiscoverCameras(); viewerCameras.UpdateThumbnailsSize(sizeSelector.SelectedSize); viewer = viewerCameras; break; } } this.splitMain.Panel2.Controls.Add(viewer); viewer.BringToFront(); currentContent = newContent; }
private void ThumbnailViewerContainer_Load(object sender, EventArgs e) { CameraTypeManager.StartDiscoveringCameras(); }
private void BtnImport_Click(object sender, EventArgs e) { // Locate an .ini file. OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Title = CameraLang.FormConfiguration_ImportParameters; //openFileDialog.InitialDirectory = Path.GetDirectoryName(ProfileHelper.GetProfileFilename(summary.Identifier)); openFileDialog.RestoreDirectory = true; openFileDialog.Filter = "Ini file (*.ini)" + "|*.ini;"; openFileDialog.FilterIndex = 0; if (openFileDialog.ShowDialog() != DialogResult.OK) { return; } string filename = openFileDialog.FileName; if (string.IsNullOrEmpty(filename) || !File.Exists(filename)) { return; } // The timing here is finnicky. // connect() will start the delay buffer allocation on the current image size and start receiving frames. // disconnect prevents reading the new values from the camera. // Load with new sizes while the camera is streaming will fail because the buffers are wrong. // So we need to load the new values with the camera opened but not streaming. this.SuspendLayout(); disconnect(); ProfileHelper.Replace(summary.Identifier, filename); // Reopen the camera but do not start grabbing. uEye.Defines.Status status = camera.Init((Int32)deviceId | (Int32)uEye.Defines.DeviceEnumeration.UseDeviceID); if (status != uEye.Defines.Status.SUCCESS) { log.ErrorFormat("Error trying to open IDS uEye camera."); return; } // Load new parameters. ProfileHelper.Load(camera, summary.Identifier); cameraProperties = CameraPropertyManager.Read(camera, deviceId); SpecificInfo info = summary.Specific as SpecificInfo; PopulateStreamFormat(); info.StreamFormat = this.SelectedStreamFormat.Value; info.CameraProperties = cameraProperties; summary.UpdateDisplayRectangle(Rectangle.Empty); CameraTypeManager.UpdatedCameraSummary(summary); // Reconnect. camera.Exit(); connect(); // Reload UI. RemoveCameraControls(); PopulateCameraControls(); this.ResumeLayout(); }
public void Unhide() { refreshImages = true; CameraTypeManager.DiscoverCameras(); this.Focus(); }
private void Thumbnail_SummaryUpdated(object sender, EventArgs e) { ThumbnailCamera thumbnail = sender as ThumbnailCamera; CameraTypeManager.UpdatedCameraSummary(thumbnail.Summary); }