Vidka.Core.EditorLogic.setCurFrameMarkerPositionToNextOrPrevClip C# (CSharp) Метод

setCurFrameMarkerPositionToNextOrPrevClip() приватный Метод

This is a marker-related function, so we keep it in the marker region
private setCurFrameMarkerPositionToNextOrPrevClip ( Keys keyData ) : long
keyData Keys
Результат long
        private long setCurFrameMarkerPositionToNextOrPrevClip(Keys keyData)
        {
            long frameOffset = 0;
            var curClipIndex = Proj.GetVideoClipIndexAtFrame_forceOnLastClip(UiObjects.CurrentMarkerFrame, out frameOffset);
            if (curClipIndex == -1)
                return SetFrameMarker_ShowFrameInPlayer(0);
            var clip = Proj.ClipsVideo[curClipIndex];
            var framesToStartOfClip = frameOffset - clip.FrameStartNoEase;
            if (keyData == Keys.Left)
            {
                frameOffset = 0;
                if (framesToStartOfClip > 0) // special case: go to beginning of this clip
                    clip = Proj.ClipsVideo[curClipIndex];
                else if (curClipIndex > 0)
                    clip = Proj.ClipsVideo[curClipIndex-1];
            }
            else if (keyData == Keys.Right)
            {
                frameOffset = 0;
                if (curClipIndex < Proj.ClipsVideo.Count - 1)
                    clip = Proj.ClipsVideo[curClipIndex + 1];
                else
                    frameOffset = clip.LengthFrameCalc;
            }
            var frameAbs = Proj.GetVideoClipAbsFramePositionLeft(clip);
            UiObjects.SetActiveVideo(clip, Proj);
            UiObjects.SetHoverVideo(null);
            SetFrameMarker_ShowFrameInPlayer(frameAbs + frameOffset);
            return 0;
        }
EditorLogic