aboutsummaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/Main.hx14
-rw-r--r--src/client/Player.hx2
2 files changed, 13 insertions, 3 deletions
diff --git a/src/client/Main.hx b/src/client/Main.hx
index 5084587..5b2dc4c 100644
--- a/src/client/Main.hx
+++ b/src/client/Main.hx
@@ -251,17 +251,27 @@ class Main {
player.removeItem(data.removeVideo.url);
if (player.isListEmpty()) player.pause();
case Pause:
+ if (isLeader()) return;
player.pause();
player.setTime(data.pause.time);
case Play:
+ if (isLeader()) return;
player.setTime(data.play.time);
player.play();
case GetTime:
final newTime = data.getTime.time;
final time = player.getTime();
+ if (isLeader()) {
+ // if video is loading on leader
+ // move other clients back in time
+ if (Math.abs(time - newTime) < 2) return;
+ player.setTime(time, false);
+ return;
+ }
if (Math.abs(time - newTime) < 2) return;
player.setTime(newTime);
if (!data.getTime.paused) player.play();
+ else player.pause();
case SetTime:
final newTime = data.setTime.time;
final time = player.getTime();
@@ -270,10 +280,10 @@ class Main {
case SetLeader:
clients.setLeader(data.setLeader.clientName);
updateUserList();
- if (personal == null) return;
final leaderBtn:InputElement = cast ge("#leader_btn");
- if (personal.isLeader) leaderBtn.classList.add('label-success');
+ if (isLeader()) leaderBtn.classList.add('label-success');
else leaderBtn.classList.remove('label-success');
+ if (isLeader()) player.setTime(player.getTime(), false);
}
}
diff --git a/src/client/Player.hx b/src/client/Player.hx
index 2973e9b..efdb71a 100644
--- a/src/client/Player.hx
+++ b/src/client/Player.hx
@@ -33,7 +33,7 @@ class Player {
if (!isLoaded) main.send({type: VideoLoaded});
isLoaded = true;
}
- video.ontimeupdate = (e) -> {
+ video.onseeking = e -> {
if (skipSetTime) {
skipSetTime = false;
return;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage