From ce656b97bc7234e4220663617556ba8ba5608c9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Mon, 26 Feb 2018 18:45:17 +0100 Subject: [PATCH] More chromecastfeatures - Click on player pauses/plays video - Receives event on play/pause - Some indentationfixes - Not showing Join Channel modal when chromecast connected --- server/public/assets/js/functions.js | 36 ++++++++++++++++++---------- server/public/assets/js/list.js | 2 +- server/public/assets/js/listeners.js | 6 +++++ server/public/assets/js/player.js | 6 +++++ 4 files changed, 37 insertions(+), 13 deletions(-) diff --git a/server/public/assets/js/functions.js b/server/public/assets/js/functions.js index 64b84348..499350b1 100644 --- a/server/public/assets/js/functions.js +++ b/server/public/assets/js/functions.js @@ -108,19 +108,31 @@ function chromecastListener(evt, data) { var json_parsed = JSON.parse(data); switch(json_parsed.type){ case -1: - if(offline){ - Player.playNext(); - } else { - socket.emit("end", {id: json_parsed.videoId, channel: chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))}); - } - break; + if(offline){ + Player.playNext(); + } else { + socket.emit("end", {id: json_parsed.videoId, channel: chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))}); + } + break; case 0: - if(offline){ - Player.playNext(); - } else { - socket.emit("skip", {error: json_parsed.data_code, id: json_parsed.videoId, pass: adminpass == "" ? "" : Crypt.crypt_pass(adminpass), channel: chan.toLowerCase(), userpass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))}); - } - break; + if(offline){ + Player.playNext(); + } else { + socket.emit("skip", {error: json_parsed.data_code, id: json_parsed.videoId, pass: adminpass == "" ? "" : Crypt.crypt_pass(adminpass), channel: chan.toLowerCase(), userpass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))}); + } + break; + case 1: + if(!$("#play").hasClass("hide")) { + $("#play").addClass("hide"); + } + $("#pause").removeClass("hide"); + break; + case 2: + if(!$("#pause").hasClass("hide")) { + $("#pause").addClass("hide"); + } + $("#play").removeClass("hide"); + break; } } diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index d83a9326..0cc12f41 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -842,7 +842,7 @@ var List = { }, show: function() { - if(!Helper.mobilecheck()) + if(!Helper.mobilecheck() && !chromecastAvailable) { $("#channel-share-modal").modal("open"); } diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 2f980015..0206ab72 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -327,6 +327,12 @@ initializeCastApi = function() { } }; +$(document).on("click", "#player_overlay", function(e) { + if(chromecastAvailable) { + Player.playPauseVideo(); + } +}); + $(document).on("click", "#bitcoin-address", function(e) { var copyTextarea = document.querySelector('#bitcoin-address'); copyTextarea.select(); diff --git a/server/public/assets/js/player.js b/server/public/assets/js/player.js index 42d39784..9e6745b5 100755 --- a/server/public/assets/js/player.js +++ b/server/public/assets/js/player.js @@ -283,6 +283,12 @@ var Player = { } }, + playPauseVideo: function() { + if(chromecastAvailable) { + castSession.sendMessage("urn:x-cast:zoff.me", {type: "playPauseVideo"}); + } + } + playVideo: function(){ if(chromecastAvailable){ castSession.sendMessage("urn:x-cast:zoff.me", {type: "playVideo"});