From 21221981c7ec77fac0b7d6038c43c7dca0fe0bb3 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Mon, 14 Oct 2019 21:14:19 +0200 Subject: [PATCH] Refactoring to prepare for more clocks. --- client/mainwindow.cpp | 16 ++--- score.html | 6 +- score.js | 146 ++++++++++++++---------------------------- 3 files changed, 59 insertions(+), 109 deletions(-) diff --git a/client/mainwindow.cpp b/client/mainwindow.cpp index 39e046c..0c2ac48 100644 --- a/client/mainwindow.cpp +++ b/client/mainwindow.cpp @@ -231,12 +231,12 @@ void MainWindow::set_clock_limit_clicked() void MainWindow::start_and_show_clock_clicked() { - ws->send_command("eval startclock()"); // Also shows. + ws->send_command("eval startclock(0)"); // Also shows. } void MainWindow::stop_clock_clicked() { - ws->send_command("eval stopclock()"); + ws->send_command("eval stopclock(0)"); } void MainWindow::show_clock_clicked() @@ -501,18 +501,18 @@ void MainWindow::bt6000_message_received(const string &msg, int port) ws->send_command("update " + serialize_as_json(param)); if (port == 6001) { - ws->send_command("eval adjustclock2fromstate()"); + ws->send_command("eval adjustclockfromstate(1)"); if (clock_running) { - ws->send_command("eval startclock2()"); + ws->send_command("eval startclock(1)"); } else { - ws->send_command("eval stopclock2()"); + ws->send_command("eval stopclock(1)"); } } else { - ws->send_command("eval adjustclockfromstate()"); + ws->send_command("eval adjustclockfromstate(0)"); if (clock_running) { - ws->send_command("eval startclock()"); + ws->send_command("eval startclock(0)"); } else { - ws->send_command("eval stopclock()"); + ws->send_command("eval stopclock(0)"); } } } diff --git a/score.html b/score.html index 3cb90b2..bc39b5a 100644 --- a/score.html +++ b/score.html @@ -55,9 +55,9 @@

- start clock - stop clock - reset clock + start clock + stop clock + reset clock show clock hide clock

diff --git a/score.js b/score.js index f8bb712..bedb829 100644 --- a/score.js +++ b/score.js @@ -1,18 +1,17 @@ 'use strict'; -let clock_running = false; -let clock2_running = false; +let num_clocks = 2; +let clocks = [ + { 'running': false, 'elapsed': 0, 'origin': undefined, 'id': 'clock' }, + { 'running': false, 'elapsed': 0, 'origin': undefined, 'id': 'clock2' } +]; + let clock_visible = false; -let scorebug2_visible = false; let comment_visible = false; let lowerthird_visible = false; -let clock_elapsed = 0; -let clock2_elapsed = 0; let clock_limit = 30 * 60; let scoreA = 0; let scoreB = 0; -let clock_origin; -let clock2_origin; let state = {}; function setteams() @@ -50,77 +49,46 @@ function setscore2() document.getElementById('score2_score').innerHTML = scoreA + " â€“ " + scoreB; } -function startclock() +function startclock(num) { - if (!clock_running) { - clock_origin = Date.now(); - clock_running = true; + if (!clocks[num].running) { + clocks[num].origin = Date.now(); + clocks[num].running = true; } - showclock(); -} - -function startclock2() -{ - if (!clock2_running) { - clock2_origin = Date.now(); - clock2_running = true; + if (num == 0) { + showclock(); } - // No showclock. } -function stopclock() +function stopclock(num) { - if (!clock_running) return; - clock_elapsed = time_elapsed(); - clock_origin = Date.now(); - clock_running = false; + if (!clocks[num].running) return; + clocks[num].elapsed = time_elapsed(num); + clocks[num].origin = Date.now(); + clocks[num].running = false; } -function stopclock2() +function setclock(num, amount) { - if (!clock2_running) return; - clock2_elapsed = time2_elapsed(); - clock2_origin = Date.now(); - clock2_running = false; -} - -function setclock(amount) -{ - clock_elapsed = amount; - clock_origin = Date.now(); - update_clock(); -} - -function setclock2(amount) -{ - clock2_elapsed = amount; - clock2_origin = Date.now(); - update_clock2(); + clocks[num].elapsed = amount; + clocks[num].origin = Date.now(); + update_clock(num); } function setclockfromstate() { let amount = parseInt(state['clock_min']) * 60 + parseInt(state['clock_sec']); - setclock(amount); + setclock(0, amount); } // No setclock2fromstate. -function adjustclockfromstate() -{ - let amount = parseInt(state['clock_min']) * 60 + parseInt(state['clock_sec']); - let elapsed = time_elapsed_raw(); - if (Math.abs(amount - elapsed) >= 2.0) { - setclock(amount); - } -} - -function adjustclock2fromstate() +function adjustclockfromstate(num) { let amount = parseInt(state['clock_min']) * 60 + parseInt(state['clock_sec']); - let elapsed = time_elapsed2_raw(); + let elapsed = time_elapsed_raw(num); if (Math.abs(amount - elapsed) >= 2.0) { - setclock2(amount); + setclock(num, amount); } } @@ -188,7 +156,7 @@ function setandshowlowerthird() if (state['image'] === undefined) { img.style.display = 'none'; } else { - img.src = state['image']; + img.src = state['image']; img.style.display = 'inline'; } showlowerthird(); @@ -206,43 +174,31 @@ function hidelowerthird() lowerthird_visible = false; } -function time_elapsed_raw() +function time_elapsed_raw(num) { - let elapsed = (Date.now() - clock_origin) * 1e-3; - if (clock_elapsed + elapsed >= clock_limit) { - clock_elapsed = clock_limit; - clock_origin = Date.now(); - clock_running = false; + let elapsed = (Date.now() - clocks[num].origin) * 1e-3; + if (clocks[num].elapsed + elapsed >= clock_limit) { + console.log("limit for", num); + if (num == 0) { + clocks[num].elapsed = clock_limit; + clocks[num].origin = Date.now(); + clocks[num].running = false; - if (state['autocomment_on_clock_limit'] == '1' && !comment_visible) { - state['comment'] = state['autocomment']; - setcomment(); - showcomment(); + if (state['autocomment_on_clock_limit'] == '1' && !comment_visible) { + state['comment'] = state['autocomment']; + setcomment(); + showcomment(); + } } return clock_limit; } - return clock_elapsed + elapsed; -} - -function time_elapsed2_raw() -{ - let elapsed = (Date.now() - clock2_origin) * 1e-3; - if (clock2_elapsed + elapsed >= clock_limit) { - // No separate clock 2 limit. - return clock_limit; - } - return clock2_elapsed + elapsed; + return clocks[num].elapsed + elapsed; } -function time_elapsed() +function time_elapsed(num) { - return Math.floor(time_elapsed_raw()); -} - -function time_elapsed2() -{ - return Math.floor(time_elapsed2_raw()); + return Math.floor(time_elapsed_raw(num)); } function update_given_clock(elapsed, id) @@ -271,14 +227,9 @@ function update_given_clock(elapsed, id) } } -function update_clock() +function update_clock(num) { - update_given_clock(time_elapsed(), 'clock'); -} - -function update_clock2() -{ - update_given_clock(time_elapsed2(), 'clock2'); + update_given_clock(time_elapsed(num), clocks[num].id); } function goalA() @@ -331,11 +282,10 @@ function update(v) } setInterval(function() { - if (clock_running) { - update_clock(); - } - if (clock2_running) { - update_clock2(); + for (let i = 0; i < num_clocks; ++i) { + if (clocks[i].running) { + update_clock(i); + } } }, 100); update_score(); -- 2.39.2