예제 #1
0
        void HandleKeyPressed(object sender, HotKey key)
        {
            if (openedProject == null)
            {
                return;
            }

            if (openedProjectType != ProjectType.CaptureProject &&
                openedProjectType != ProjectType.URICaptureProject &&
                openedProjectType != ProjectType.FakeCaptureProject)
            {
                KeyAction action;
                if (player == null)
                {
                    return;
                }

                try {
                    action = Config.Hotkeys.ActionsHotkeys.GetKeyByValue(key);
                } catch (Exception ex) {
                    /* The dictionary contains 2 equal values for different keys */
                    Log.Exception(ex);
                    return;
                }

                if (action == KeyAction.None)
                {
                    return;
                }

                switch (action)
                {
                case KeyAction.FrameUp:
                    player.SeekToNextFrame();
                    return;

                case KeyAction.FrameDown:
                    player.SeekToPreviousFrame();
                    return;

                case KeyAction.JumpUp:
                    player.StepForward();
                    return;

                case KeyAction.JumpDown:
                    player.StepBackward();
                    return;

                case KeyAction.DrawFrame:
                    TimelineEvent evt = loadedPlay;
                    if (evt == null && loadedElement is PlaylistPlayElement)
                    {
                        evt = (loadedElement as PlaylistPlayElement).Play;
                    }
                    if (evt != null)
                    {
                        Config.EventsBroker.EmitDrawFrame(evt, -1, player.CamerasConfig [0], true);
                    }
                    return;

                case KeyAction.TogglePlay:
                    player.TogglePlay();
                    return;

                case KeyAction.SpeedUp:
                    player.FramerateUp();
                    return;

                case KeyAction.SpeedDown:
                    player.FramerateDown();
                    return;

                case KeyAction.CloseEvent:
                    Config.EventsBroker.EmitLoadEvent(null);
                    return;

                case KeyAction.Prev:
                    HandlePrev(loadedPlaylist);
                    return;

                case KeyAction.Next:
                    HandleNext(loadedPlaylist);
                    return;
                }
            }
            else
            {
                //if (Capturer == null)
                //	return;
            }
        }