]> git.sesse.net Git - ultimatescore/commitdiff
Refactoring to prepare for more clocks.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 14 Oct 2019 19:14:19 +0000 (21:14 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 14 Oct 2019 19:14:19 +0000 (21:14 +0200)
client/mainwindow.cpp
score.html
score.js

index 39e046c46c666cbd061dd0bca0ac02737038dc51..0c2ac48888f953aab19de6086e9c6724903417ed 100644 (file)
@@ -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)");
                        }
                }
        }
index 3cb90b263d9b48b907f7a157f2c7440827e0efe2..bc39b5ab79ca9b3bde5654ea5f9a8ce9ee26450b 100644 (file)
@@ -55,9 +55,9 @@
     </table>
     <div id="manualcontrols">
       <p>
-        <a href="javascript:startclock()">start clock</a>
-        <a href="javascript:stopclock()">stop clock</a>
-        <a href="javascript:setclock(0)">reset clock</a>
+        <a href="javascript:startclock(0)">start clock</a>
+        <a href="javascript:stopclock(0)">stop clock</a>
+        <a href="javascript:setclock(0,0)">reset clock</a>
         <a href="javascript:showclock()">show clock</a>
         <a href="javascript:hideclock()">hide clock</a>
       </p>
index f8bb712e58f491b74bafc39eb63d5a378c69b3a9..bedb8299f337b8c3519377aac03750cff2797acb 100644 (file)
--- 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 + "&nbsp;–&nbsp;" + 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();