Beispiel #1
0
        public static void LoadVideoInScreen(ScreenManagerKernel manager, string path, ScreenDescriptionPlayback screenDescription)
        {
            CameraTypeManager.CancelThumbnails();
            CameraTypeManager.StopDiscoveringCameras();

            LoadUnspecified(manager, path, screenDescription);
        }
Beispiel #2
0
        private static void LoadInSpecificTarget(ScreenManagerKernel manager, int targetScreen, CameraSummary summary)
        {
            AbstractScreen screen = manager.GetScreenAt(targetScreen);

            if (screen is CaptureScreen)
            {
                CaptureScreen captureScreen = screen as CaptureScreen;
                captureScreen.LoadCamera(summary);

                manager.UpdateCaptureBuffers();
                manager.OrganizeScreens();
                manager.OrganizeCommonControls();
                manager.OrganizeMenus();
            }
            else if (screen is PlayerScreen)
            {
                // Loading a camera onto a video should never close the video.
                // We only load the camera if there is room to create a new capture screen, otherwise we do nothing.
                if (manager.ScreenCount == 1)
                {
                    manager.AddCaptureScreen();
                    LoadInSpecificTarget(manager, 1, summary);
                }
            }
        }
        /// <summary>
        /// Remove the screen at the specified location.
        /// </summary>
        /// <returns>true if the operation went through, false if it was canceled by the user.</returns>
        public static bool RemoveScreen(ScreenManagerKernel manager, int targetScreen)
        {
            manager.SetAllToInactive();

            if (targetScreen == -1)
            {
                manager.RemoveFirstEmpty();
                return(true);
            }

            AbstractScreen screenToRemove = manager.GetScreenAt(targetScreen);

            if (screenToRemove is CaptureScreen)
            {
                manager.RemoveScreen(screenToRemove);
                return(true);
            }

            PlayerScreen playerScreen = screenToRemove as PlayerScreen;
            bool         confirmed    = manager.BeforeReplacingPlayerContent(targetScreen);

            if (!confirmed)
            {
                return(false);
            }

            manager.RemoveScreen(screenToRemove);
            return(true);
        }
Beispiel #4
0
        private void mnuSealMeasure_Click(object sender, EventArgs e)
        {
            // display a dialog that let the user specify how many real-world-units long is this line.

            if (m_StartPoint.X != m_EndPoint.X || m_StartPoint.Y != m_EndPoint.Y)
            {
                if (!m_bShowMeasure)
                {
                    m_bShowMeasure = true;
                }

                DrawingToolLine2D.ShowMeasure = true;

                DelegatesPool dp = DelegatesPool.Instance();
                if (dp.DeactivateKeyboardHandler != null)
                {
                    dp.DeactivateKeyboardHandler();
                }

                formConfigureMeasure fcm = new formConfigureMeasure(m_ParentMetadata, this);
                ScreenManagerKernel.LocateForm(fcm);
                fcm.ShowDialog();
                fcm.Dispose();

                // Update traj for distance and speed after calibration.
                m_ParentMetadata.UpdateTrajectoriesForKeyframes();

                CallInvalidateFromMenu(sender);

                if (dp.ActivateKeyboardHandler != null)
                {
                    dp.ActivateKeyboardHandler();
                }
            }
        }
Beispiel #5
0
        private static void LoadUnspecified(ScreenManagerKernel manager, string path, ScreenDescriptionPlayback screenDescription)
        {
            if (manager.ScreenCount == 0)
            {
                manager.AddPlayerScreen();
                LoadInSpecificTarget(manager, 0, path, screenDescription);
            }
            else if (manager.ScreenCount == 1)
            {
                LoadInSpecificTarget(manager, 0, path, screenDescription);
            }
            else if (manager.ScreenCount == 2)
            {
                int emptyScreen = manager.FindEmptyScreen();

                if (emptyScreen != -1)
                {
                    LoadInSpecificTarget(manager, emptyScreen, path, screenDescription);
                }
                else
                {
                    LoadInSpecificTarget(manager, 1, path, screenDescription);
                }
            }
        }
Beispiel #6
0
        private static void LoadUnspecified(ScreenManagerKernel manager, CameraSummary summary)
        {
            if (manager.ScreenCount == 0)
            {
                manager.AddCaptureScreen();
                LoadInSpecificTarget(manager, 0, summary);
            }
            else if (manager.ScreenCount == 1)
            {
                LoadInSpecificTarget(manager, 0, summary);
            }
            else if (manager.ScreenCount == 2)
            {
                int emptyScreen = manager.FindEmptyScreen();

                if (emptyScreen != -1)
                {
                    LoadInSpecificTarget(manager, emptyScreen, summary);
                }
                else
                {
                    LoadInSpecificTarget(manager, 1, summary);
                }
            }
        }
 public CommandRemoveScreen(ScreenManagerKernel _smk, int _iScreenToRemove, bool _bStoreState)
 {
     m_ResManager        = new ResourceManager("Kinovea.ScreenManager.Languages.ScreenManagerLang", Assembly.GetExecutingAssembly());
     screenManagerKernel = _smk;
     iScreenToRemove     = _iScreenToRemove;
     m_bStoreState       = _bStoreState;
 }
Beispiel #8
0
 public CommandAddCaptureScreen(ScreenManagerKernel _smk, bool _bStoreState)
 {
     m_ScreenManagerKernel = _smk;
     if (_bStoreState)
     {
         m_ScreenManagerKernel.StoreCurrentState();
     }
 }
Beispiel #9
0
 public void BuildSubTree()
 {
     log.Debug("Building the modules tree.");
     m_FileBrowser   = new FileBrowserKernel();
     m_Updater       = new UpdaterKernel();
     m_ScreenManager = new ScreenManagerKernel();
     log.Debug("Modules tree built.");
 }
Beispiel #10
0
 public void BuildSubTree()
 {
     stopwatch.Restart();
     log.Debug("Building the modules tree.");
     fileBrowser   = new FileBrowserKernel();
     updater       = new UpdaterKernel();
     screenManager = new ScreenManagerKernel();
     log.DebugFormat("Modules tree built in {0} ms.", stopwatch.ElapsedMilliseconds);
 }
Beispiel #11
0
        public void View_ValidateFilename(string filename)
        {
            bool allowEmpty = true;

            if (!FilenameHelper.IsFilenameValid(filename, allowEmpty))
            {
                ScreenManagerKernel.AlertInvalidFileName();
            }
        }
Beispiel #12
0
        public HelpVideosDialog(ResourceManager resManager, HelpIndex helpIndex, ScreenManagerKernel smk)
        {
            InitializeComponent();

            m_ResourceManager     = resManager;
            m_HelpIndex           = helpIndex;
            m_ScreenManagerKernel = smk;

            InitializeInterface();
        }
 public CommandLoadMovieInScreen(ScreenManagerKernel _smk, String _filePath, int _iForceScreen, bool _bStoreState)
 {
     screenManagerKernel = _smk;
     filePath            = _filePath;
     ForceScreen         = _iForceScreen;
     if (_bStoreState)
     {
         screenManagerKernel.StoreCurrentState();
     }
 }
Beispiel #14
0
 public static void LoadVideoInScreen(ScreenManagerKernel manager, string path, int targetScreen)
 {
     if (targetScreen < 0)
     {
         LoadUnspecified(manager, path, null);
     }
     else
     {
         LoadInSpecificTarget(manager, targetScreen, path, null);
     }
 }
Beispiel #15
0
 private void tbVideoDirectory_TextChanged(object sender, EventArgs e)
 {
     if (!m_filenameHelper.ValidateFilename(tbVideoDirectory.Text, true))
     {
         ScreenManagerKernel.AlertInvalidFileName();
     }
     else
     {
         m_VideoDirectory = tbVideoDirectory.Text;
     }
 }
 public static void LoadVideoInScreen(ScreenManagerKernel manager, string path, int targetScreen, ScreenDescriptionPlayback screenDescription = null)
 {
     if (targetScreen < 0)
     {
         LoadUnspecified(manager, path, screenDescription);
     }
     else
     {
         LoadInSpecificTarget(manager, targetScreen, path, screenDescription);
     }
 }
Beispiel #17
0
 public static void LoadCameraInScreen(ScreenManagerKernel manager, CameraSummary summary, int targetScreen, ScreenDescriptionCapture screenDescription = null)
 {
     if (targetScreen < 0)
     {
         LoadUnspecified(manager, summary, screenDescription);
     }
     else
     {
         LoadInSpecificTarget(manager, targetScreen, summary, screenDescription);
     }
 }
Beispiel #18
0
        private void btnBackColor_Click(object sender, EventArgs e)
        {
            FormColorPicker picker = new FormColorPicker();

            ScreenManagerKernel.LocateForm(picker);
            if (picker.ShowDialog() == DialogResult.OK)
            {
                rtbComment.SelectionBackColor = picker.PickedColor;
            }
            picker.Dispose();
        }
Beispiel #19
0
 public static void LoadCameraInScreen(ScreenManagerKernel manager, CameraSummary summary, int targetScreen)
 {
     if (targetScreen < 0)
     {
         LoadUnspecified(manager, summary);
     }
     else
     {
         LoadInSpecificTarget(manager, targetScreen, summary);
     }
 }
        private void editor_Click(object sender, EventArgs e)
        {
            FormColorPicker picker = new FormColorPicker();

            ScreenManagerKernel.LocateForm(picker);
            if (picker.ShowDialog() == DialogResult.OK)
            {
                m_Color = picker.PickedColor;
                RaiseValueChanged();
                ((Control)sender).Invalidate();
            }
            picker.Dispose();
        }
Beispiel #21
0
        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);
            }
        }
Beispiel #22
0
        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);
            }
        }
Beispiel #23
0
        private bool FilePathSanityCheck(string path)
        {
            if (cameraGrabber == null)
            {
                return(false);
            }

            if (!FilenameHelper.IsFilenameValid(path, false))
            {
                ScreenManagerKernel.AlertInvalidFileName();
                return(false);
            }

            return(true);
        }
 private static void LoadUnspecified(ScreenManagerKernel manager, string path, ScreenDescriptionPlayback screenDescription)
 {
     if (manager.ScreenCount == 0)
     {
         manager.AddPlayerScreen();
         LoadInSpecificTarget(manager, 0, path, screenDescription);
     }
     else if (manager.ScreenCount == 1)
     {
         LoadInSpecificTarget(manager, 0, path, screenDescription);
     }
     else if (manager.ScreenCount == 2)
     {
         int target = manager.FindTargetScreen(typeof(PlayerScreen));
         if (target != -1)
         {
             LoadInSpecificTarget(manager, target, path, screenDescription);
         }
     }
 }
 private static void LoadUnspecified(ScreenManagerKernel manager, CameraSummary summary)
 {
     if (manager.ScreenCount == 0)
     {
         manager.AddCaptureScreen();
         LoadInSpecificTarget(manager, 0, summary);
     }
     else if (manager.ScreenCount == 1)
     {
         LoadInSpecificTarget(manager, 0, summary);
     }
     else if (manager.ScreenCount == 2)
     {
         int target = manager.FindTargetScreen(typeof(CaptureScreen));
         if (target != -1)
         {
             LoadInSpecificTarget(manager, target, summary);
         }
     }
 }
Beispiel #26
0
        private static void LoadInSpecificTarget(ScreenManagerKernel manager, int targetScreen, string path, ScreenDescriptionPlayback screenDescription)
        {
            AbstractScreen screen = manager.GetScreenAt(targetScreen);

            if (screen is CaptureScreen)
            {
                // Loading a video onto a capture screen should not close the capture screen.
                // If there is room to add a second screen, we add a playback screen and load the video there, otherwise, we don't do anything.
                if (manager.ScreenCount == 1)
                {
                    manager.AddPlayerScreen();
                    manager.UpdateCaptureBuffers();
                    LoadInSpecificTarget(manager, 1, path, screenDescription);
                }
            }
            else if (screen is PlayerScreen)
            {
                PlayerScreen playerScreen = screen as PlayerScreen;
                bool         confirmed    = manager.BeforeReplacingPlayerContent(targetScreen);
                if (!confirmed)
                {
                    return;
                }

                LoadVideo(playerScreen, path, screenDescription);

                if (playerScreen.FrameServer.Loaded)
                {
                    NotificationCenter.RaiseFileOpened(null, path);
                    PreferencesManager.FileExplorerPreferences.AddRecentFile(path);
                    PreferencesManager.Save();
                }

                manager.OrganizeScreens();
                manager.OrganizeCommonControls();
                manager.OrganizeMenus();
                manager.UpdateStatusBar();
            }
        }
 public CommandShowScreens(ScreenManagerKernel _smk)
 {
     screenManagerKernel = _smk;
 }
        private static void LoadInSpecificTarget(ScreenManagerKernel manager, int targetScreen, string path, ScreenDescriptionPlayback screenDescription)
        {
            AbstractScreen screen = manager.GetScreenAt(targetScreen);

            if (screen is CaptureScreen)
            {
                // Loading a video onto a capture screen should not close the capture screen.
                // If there is room to add a second screen, we add a playback screen and load the video there, otherwise, we don't do anything.
                if (manager.ScreenCount == 1)
                {
                    manager.AddPlayerScreen();
                    manager.UpdateCaptureBuffers();
                    LoadInSpecificTarget(manager, 1, path, screenDescription);
                }
            }
            else if (screen is PlayerScreen)
            {
                PlayerScreen playerScreen = screen as PlayerScreen;

                if (playerScreen.IsWaitingForIdle)
                {
                    // The player screen will yield its thread after having loaded the first frame and come back later.
                    // We must not launch a new video while it's waiting.
                    log.ErrorFormat("Player screen is currently busy loading the previous video. Aborting load.");
                    return;
                }

                bool confirmed = manager.BeforeReplacingPlayerContent(targetScreen);
                if (!confirmed)
                {
                    return;
                }

                LoadVideo(playerScreen, path, screenDescription);

                bool prefsNeedSaving = false;
                if (screenDescription != null && screenDescription.IsReplayWatcher)
                {
                    PreferencesManager.FileExplorerPreferences.AddRecentWatcher(path);
                    PreferencesManager.FileExplorerPreferences.LastReplayFolder = path;
                    prefsNeedSaving = true;
                }

                if (playerScreen.FrameServer.Loaded)
                {
                    NotificationCenter.RaiseFileOpened(null, path);

                    if (screenDescription != null && screenDescription.IsReplayWatcher)
                    {
                        // At this point we have lost the actual file that was loaded. The path here still contaiins the special '*' to indicate the watched folder.
                        // The actual file is the latest file in the folder this was computed right before loading.
                        string actualPath = FilesystemHelper.GetMostRecentFile(Path.GetDirectoryName(path));
                        PreferencesManager.FileExplorerPreferences.AddRecentFile(actualPath);
                    }
                    else
                    {
                        PreferencesManager.FileExplorerPreferences.AddRecentFile(path);
                    }

                    prefsNeedSaving = true;
                }

                if (prefsNeedSaving)
                {
                    PreferencesManager.Save();
                }

                manager.OrganizeScreens();
                manager.OrganizeCommonControls();
                manager.OrganizeMenus();
                manager.UpdateStatusBar();
            }
        }
 public static void LoadVideoInScreen(ScreenManagerKernel manager, string path, ScreenDescriptionPlayback screenDescription)
 {
     LoadUnspecified(manager, path, screenDescription);
 }
Beispiel #30
0
 public CommandSwapScreens(ScreenManagerKernel _smk)
 {
     m_ScreenManagerKernel = _smk;
 }