-
Notifications
You must be signed in to change notification settings - Fork 0
/
timer.js
40 lines (35 loc) · 944 Bytes
/
timer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var n = 0;
var td_array ;
var beep = new Audio('https://www.soundjay.com/button/beep-08b.mp3');;
var timeouts = [];
var stopped = false;
function stopTihai() {
for (var i=0; i<timeouts.length; i++) {
clearTimeout(timeouts[i]);
}
stopped = true;
$("table tbody tr td").removeClass("mark");
}
function startTihai(table_num) {
stopTihai();
stopped = false;
n = 0;
td_array = $("#table" + table_num + " tbody tr td");
let bpm = $("#bpm"+table_num).val();
let repeat = $("#repeat"+table_num).val();
// 60,000 / bpm = Ms
let time = 60000/bpm;
colorNext(time, repeat);
}
function colorNext(time, repeat) {
if (stopped) return;
td_array.eq(n++).addClass("mark");
if (n > td_array.length) {
repeat--;
if (repeat == 0) return stopTihai();
n=0;
$("table tbody tr td").removeClass("mark");
}
setTimeout(colorNext.bind(null, time, repeat), time, repeat);
beep.play();
}