From 0dfb098134be41fca5c609efc03c04d6251e8814 Mon Sep 17 00:00:00 2001 From: Gary Keeble Date: Sun, 24 Apr 2016 09:24:28 +0100 Subject: [PATCH] Log Sync using Measure Mode Identify an event (start of roll or flip) on the log, mark it (M key) scroll video until the first frame of the event is shown, press [Alt]M to sync marker point of log to this video point. --- index.html | 2 +- js/main.js | 32 +++++++++++++++++--------------- js/tools.js | 2 +- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/index.html b/index.html index 2b28a881..243efe44 100755 --- a/index.html +++ b/index.html @@ -224,7 +224,7 @@

Log sync

- + diff --git a/js/main.js b/js/main.js index 8a362741..3caee9d4 100644 --- a/js/main.js +++ b/js/main.js @@ -130,16 +130,16 @@ function BlackboxLogViewer() { } } - function setVideoOffset(offset) { + function setVideoOffset(offset, withoutRefresh) { // optionally prevent the graph refresh until later videoOffset = offset; /* * Round to 2 dec places for display and put a plus at the start for positive values to emphasize the fact it's * an offset */ - $(".video-offset").val((videoOffset >= 0 ? "+" : "") + (videoOffset.toFixed(2) != videoOffset ? videoOffset.toFixed(2) : videoOffset)); + $(".video-offset").val((videoOffset >= 0 ? "+" : "") + (videoOffset.toFixed(3) != videoOffset ? videoOffset.toFixed(3) : videoOffset)); - invalidateGraph(); + if (wihtoutRefresh) invalidateGraph(); } function isInteger(value) { @@ -909,13 +909,19 @@ function BlackboxLogViewer() { } e.preventDefault(); break; - case "M".charCodeAt(0): - if (!(shifted)) { + case "M".charCodeAt(0): + if (e.altKey && hasMarker && hasVideo && hasLog) { // adjust the video sync offset and remove marker + try{ + setVideoOffset(videoOffset + (stringTimetoMsec($(".graph-time-marker").val()) / 1000000), true); + } catch(e) { + console.log('Failed to set video offset'); + } + } else { // Add a marker to graph window markerTime = currentBlackboxTime; $(".graph-time-marker").val(formatTime(0)); - setMarker(!hasMarker); - invalidateGraph(); } + setMarker(!hasMarker); + invalidateGraph(); e.preventDefault(); break; // Add my shortcuts @@ -941,16 +947,12 @@ function BlackboxLogViewer() { } e.preventDefault(); break; - case 33: // pgup arrow - goto start - if (!(shifted)) { - logJumpStart(); - } + case 36: // home - goto start of log + logJumpStart(); e.preventDefault(); break; - case 34: // pgdn arrow - goto end - if (!(shifted)) { - logJumpEnd(); - } + case 35: // end - goto end of log + logJumpEnd(); e.preventDefault(); break; diff --git a/js/tools.js b/js/tools.js index 53770662..b6b12984 100644 --- a/js/tools.js +++ b/js/tools.js @@ -189,7 +189,7 @@ function formatTime(msec, displayMsec) { function stringTimetoMsec(input) { try { - var matches = input.match(/([0-9]+)(\D)*([0-9]+)*\D*([0-9]+)*/); + var matches = input.match(/([+-]?[0-9]+)(\D)*([0-9]+)*\D*([0-9]+)*/); if(matches.length>2) { // there is a placeholder - either : or . if(matches[2] == ':'){ // time has been entered MM:SS.SSS