feat: increment running timer

This commit is contained in:
cv
2021-04-27 23:59:02 +02:00
parent c3b2c7abc8
commit b8bce6302d
4 changed files with 86 additions and 5 deletions
+14
View File
@@ -239,6 +239,12 @@ class EventTimer extends Timer {
socket.emit('timer', this.getObject());
});
socket.on('increment-timer', (data) => {
if (isNaN(parseInt(data))) return;
if (data < -5 || data > 5) return;
this.increment(data * 1000 * 60);
});
/*******************************************/
// playstate
socket.on('set-playstate', (data) => {
@@ -624,6 +630,14 @@ class EventTimer extends Timer {
this.broadcastState();
}
increment(amount) {
// call super
super.increment(amount);
// broadcast current state
this.broadcastState();
}
goto(eventIndex) {
// load event
this.loadEvent(eventIndex);
+18 -2
View File
@@ -58,6 +58,7 @@ class Timer {
}
break;
case 'pause':
if (this.current <= 0) return;
// update paused time
this._pausedInterval = now - this._pausedAt;
break;
@@ -129,8 +130,8 @@ class Timer {
start() {
// do we need to change
if (this.state === 'start') return;
else if (this.duration === 0) return;
else if (this.startedAt == null) {
else if (this.duration <= 0) return;
else if (this._startedAt == null) {
this._resetTimers();
const now = this._getCurrentTime();
this._startedAt = now;
@@ -165,6 +166,21 @@ class Timer {
this._resetTimers();
this.state = 'stop';
}
increment(amount) {
if (amount < 0) {
if (Math.abs(amount) > this.current) {
console.log('ot os');
this.current = 0;
this._finishAt = this._getCurrentTime();
return;
}
}
this.current += amount;
this._finishAt += amount;
}
}
module.exports = Timer;