From 5f2a3b89eaa1199d9bc2ddd10622f9803cec983f Mon Sep 17 00:00:00 2001 From: RblSb Date: Fri, 3 Apr 2020 04:48:36 +0300 Subject: Sync playback rate --- src/server/Main.hx | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'src/server/Main.hx') diff --git a/src/server/Main.hx b/src/server/Main.hx index f056ac6..5142f48 100644 --- a/src/server/Main.hx +++ b/src/server/Main.hx @@ -438,11 +438,17 @@ class Main { }); return; } - send(client, { + final obj:WsEvent = { type: GetTime, getTime: { - time: videoTimer.getTime(), - paused: videoTimer.isPaused() - }}); + time: videoTimer.getTime() + } + }; + if (videoTimer.isPaused()) obj.getTime.paused = true; + if (videoTimer.getRate() != 1) { + if (!clients.hasLeader()) videoTimer.setRate(1); + obj.getTime.rate = videoTimer.getRate(); + } + send(client, obj); case SetTime: if (videoList.length == 0) return; @@ -450,6 +456,12 @@ class Main { videoTimer.setTime(data.setTime.time); broadcastExcept(client, data); + case SetRate: + if (videoList.length == 0) return; + if (!client.isLeader) return; + videoTimer.setRate(data.setRate.rate); + broadcastExcept(client, data); + case Rewind: if (!checkPermission(client, RewindPerm)) return; if (videoList.length == 0) return; @@ -474,6 +486,7 @@ class Main { if (videoList.length == 0) return; if (!clients.hasLeader()) { if (videoTimer.isPaused()) videoTimer.play(); + videoTimer.setRate(1); broadcast({ type: Play, play: { time: videoTimer.getTime() -- cgit v1.2.3