diff options
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/Buttons.hx | 17 | ||||
| -rw-r--r-- | src/client/Main.hx | 2 | ||||
| -rw-r--r-- | src/client/Player.hx | 4 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/client/Buttons.hx b/src/client/Buttons.hx index d50773d..f88aa97 100644 --- a/src/client/Buttons.hx +++ b/src/client/Buttons.hx @@ -78,6 +78,23 @@ class Buttons { window.dispatchEvent(new Event("resize")); } + final toggleSynch = ge("#togglesynch"); + toggleSynch.onclick = e -> { + final icon = toggleSynch.firstElementChild; + if (main.isSyncActive) { + if (!window.confirm(Lang.get("toggleSynchConfirm"))) return; + main.isSyncActive = false; + icon.style.color = "rgba(238, 72, 67, 0.75)"; + icon.classList.add("glyphicon-pause"); + icon.classList.remove("glyphicon-play"); + } else { + main.isSyncActive = true; + icon.style.color = ""; + icon.classList.add("glyphicon-play"); + icon.classList.remove("glyphicon-pause"); + main.send({type: UpdatePlaylist}); + } + } final mediaRefresh = ge("#mediarefresh"); mediaRefresh.onclick = e -> { main.refreshPlayer(); diff --git a/src/client/Main.hx b/src/client/Main.hx index bb3a738..c29604e 100644 --- a/src/client/Main.hx +++ b/src/client/Main.hx @@ -21,6 +21,7 @@ using ClientTools; class Main { + public var isSyncActive = true; final clients:Array<Client> = []; var pageTitle = document.title; final host:String; @@ -46,6 +47,7 @@ class Main { initListeners(); onTimeGet.run = () -> { + if (!isSyncActive) return; if (player.isListEmpty()) return; send({type: GetTime}); } diff --git a/src/client/Player.hx b/src/client/Player.hx index 4327e6c..443c14f 100644 --- a/src/client/Player.hx +++ b/src/client/Player.hx @@ -91,6 +91,7 @@ class Player { } public function setVideo(i:Int):Void { + if (!main.isSyncActive) return; final item = items[i]; if (Youtube.isYoutube(item.url)) { setPlayer(new Youtube(main, this)); @@ -292,11 +293,13 @@ class Player { } public function play():Void { + if (!main.isSyncActive) return; if (player == null) return; player.play(); } public function pause():Void { + if (!main.isSyncActive) return; if (player == null) return; player.pause(); } @@ -307,6 +310,7 @@ class Player { } public function setTime(time:Float, isLocal = true):Void { + if (!main.isSyncActive) return; if (player == null) return; skipSetTime = isLocal; player.setTime(time); |
