private void RegisterPlaybackHotkeys()
        {
            InputUtils.RegisterHotkey(Hotkey.PlaybackStartSlowmo, () => true, () =>
            {
                StopTools();
                Track.StartFromFlag();
                Scheduler.UpdatesPerSecond = Settings.Local.SlowmoSpeed;
            });
            InputUtils.RegisterHotkey(Hotkey.PlaybackStartIgnoreFlag, () => true, () =>
            {
                StopTools();
                Track.StartIgnoreFlag();
                Scheduler.DefaultSpeed();
            });
            InputUtils.RegisterHotkey(Hotkey.PlaybackStartGhostFlag, () => true, () =>
            {
                StopTools();
                Track.ResumeFromFlag();
                Scheduler.DefaultSpeed();
            });
            InputUtils.RegisterHotkey(Hotkey.PlaybackStart, () => true, () =>
            {
                StopTools();
                Track.StartFromFlag();
                Scheduler.DefaultSpeed();
            });
            InputUtils.RegisterHotkey(Hotkey.PlaybackStop, () => true, () =>
            {
                StopTools();
                Track.Stop();
            });
            InputUtils.RegisterHotkey(Hotkey.PlaybackFlag, () => true, () =>
            {
                Track.Flag();
            });

            InputUtils.RegisterHotkey(Hotkey.PlaybackFrameNext, () => true, () =>
            {
                StopHandTool();
                if (!Track.PlaybackMode)
                {
                    Track.StartFromFlag();
                    Scheduler.DefaultSpeed();
                }
                if (!Track.Paused)
                {
                    Track.TogglePause();
                }
                Track.NextFrame();
                Invalidate();
                Track.UpdateCamera();
            },
                                      null,
                                      repeat: true);
            InputUtils.RegisterHotkey(Hotkey.PlaybackFramePrev, () => true, () =>
            {
                StopHandTool();
                if (!Track.PlaybackMode)
                {
                    Track.StartFromFlag();
                    Scheduler.DefaultSpeed();
                }
                if (!Track.Paused)
                {
                    Track.TogglePause();
                }
                Track.PreviousFrame();
                Invalidate();
                Track.UpdateCamera(true);
            },
                                      null,
                                      repeat: true);
            InputUtils.RegisterHotkey(Hotkey.PlaybackSpeedUp, () => Track.PlaybackMode, () =>
            {
                PlaybackSpeedUp();
            });
            InputUtils.RegisterHotkey(Hotkey.PlaybackSpeedDown, () => Track.PlaybackMode, () =>
            {
                PlaybackSpeedDown();
            });
            InputUtils.RegisterHotkey(Hotkey.PlaybackSlowmo, () => Track.PlaybackMode, () =>
            {
                if (Scheduler.UpdatesPerSecond !=
                    Settings.Local.SlowmoSpeed)
                {
                    Scheduler.UpdatesPerSecond = Settings.Local.SlowmoSpeed;
                }
                else
                {
                    Scheduler.DefaultSpeed();
                }
            });
            InputUtils.RegisterHotkey(Hotkey.PlaybackTogglePause, () => Track.PlaybackMode, () =>
            {
                StopTools();
                Track.TogglePause();
            },
                                      null,
                                      repeat: true);
            InputUtils.RegisterHotkey(Hotkey.PlaybackIterationNext, () => !Track.Playing, () =>
            {
                StopTools();
                if (!Track.PlaybackMode)
                {
                    Track.StartFromFlag();
                    Scheduler.DefaultSpeed();
                }
                if (!Track.Paused)
                {
                    Track.TogglePause();
                }
                if (Track.IterationsOffset != 6)
                {
                    Track.IterationsOffset++;
                }
                else
                {
                    Track.NextFrame();
                    Track.IterationsOffset = 0;
                    Track.Camera.SetFrame(Track.Offset);
                }
                Track.InvalidateRenderRider();
                Canvas.UpdateIterationUI();
            },
                                      null,
                                      repeat: true);
            InputUtils.RegisterHotkey(Hotkey.PlaybackIterationPrev, () => !Track.Playing, () =>
            {
                if (Track.Offset != 0)
                {
                    StopTools();
                    if (Track.IterationsOffset > 0)
                    {
                        Track.IterationsOffset--;
                    }
                    else
                    {
                        Track.PreviousFrame();
                        Track.IterationsOffset = 6;
                        Invalidate();
                        Track.Camera.SetFrame(Track.Offset);
                    }
                    Track.InvalidateRenderRider();
                    Canvas.UpdateIterationUI();
                }
            },
                                      null,
                                      repeat: true);
        }