From e70dddb99aa657d41c970db413230d61e3e47554 Mon Sep 17 00:00:00 2001 From: DylanSpeiser-BMD Date: Tue, 2 Jul 2024 15:12:08 -0700 Subject: [PATCH] seek fixes --- BMDevice.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/BMDevice.js b/BMDevice.js index 69324fe..d8c73de 100644 --- a/BMDevice.js +++ b/BMDevice.js @@ -136,27 +136,29 @@ class BMDevice { // Boolean parameter, true = forward, false = backwards seek(direction) { let clips = this.GETdata("/timelines/0")?.clips; - let playbackData = this.GETdata("/transports/playback"); + let playbackData = this.GETdata("/transports/0/playback"); let runningSum = 0; + let currentClipFound = false; let currentClipIndex = 0; let clipStartingTimecodes = []; let i = 0; clips.forEach((clip) => { - if (runningSum+clip.frameCount > playbackData.position) { + if ((runningSum+clip.frameCount > playbackData.position) && !currentClipFound) { currentClipIndex = i; + currentClipFound = true; } clipStartingTimecodes[i] = runningSum; runningSum += clip.frameCount; i++; }); - let newClipIndex = min(max(0,(direction ? currentClipIndex+1 : currentClipIndex-1)), clips.length); + let newClipIndex = Math.min(Math.max(0,(direction ? currentClipIndex+1 : currentClipIndex-1)), clips.length-1); playbackData.position = clipStartingTimecodes[newClipIndex]; - this.PUTdata("/transports/playback", playbackData); + this.PUTdata("/transports/0/playback", playbackData); } // Sets Timeline / Clip Looping