diff --git a/src/components/backdropscreensaver/plugin.js b/src/components/backdropscreensaver/plugin.js index 0c4883d61f..c0bd31fb86 100644 --- a/src/components/backdropscreensaver/plugin.js +++ b/src/components/backdropscreensaver/plugin.js @@ -1,12 +1,12 @@ -define([], function () { +define(["connectionManager"], function (connectionManager) { return function () { var self = this; - self.name = 'Backdrop ScreenSaver'; - self.type = 'screensaver'; - self.id = 'backdropscreensaver'; + self.name = "Backdrop ScreenSaver"; + self.type = "screensaver"; + self.id = "backdropscreensaver"; self.supportsAnonymous = false; var currentSlideshow; @@ -16,7 +16,7 @@ define([], function () { var query = { ImageTypes: "Backdrop", EnableImageTypes: "Backdrop", - IncludeItemTypes: "Movie,Series,MusicArtist,Game", + IncludeItemTypes: "Movie,Series,MusicArtist", SortBy: "Random", Recursive: true, Fields: "Taglines", @@ -25,11 +25,12 @@ define([], function () { Limit: 200 }; - Emby.Models.items(query).then(function (result) { + var apiClient = connectionManager.currentApiClient(); + apiClient.getItems(apiClient.getCurrentUserId(), query).then(function (result) { if (result.Items.length) { - require(['slideshow'], function (slideshow) { + require(["slideshow"], function (slideshow) { var newSlideShow = new slideshow({ showTitle: true, @@ -52,4 +53,4 @@ define([], function () { } }; } -}); \ No newline at end of file +}); diff --git a/src/components/logoscreensaver/plugin.js b/src/components/logoscreensaver/plugin.js index 77df0218a0..e198d13fc3 100644 --- a/src/components/logoscreensaver/plugin.js +++ b/src/components/logoscreensaver/plugin.js @@ -1,12 +1,12 @@ -define(['pluginManager'], function (pluginManager) { +define(["pluginManager"], function (pluginManager) { return function () { var self = this; - self.name = 'Logo ScreenSaver'; - self.type = 'screensaver'; - self.id = 'logoscreensaver'; + self.name = "Logo ScreenSaver"; + self.type = "screensaver"; + self.id = "logoscreensaver"; self.supportsAnonymous = true; var interval; @@ -24,7 +24,7 @@ define(['pluginManager'], function (pluginManager) { rotateOut ]; - var elem = document.querySelector('.logoScreenSaverImage'); + var elem = document.querySelector(".logoScreenSaverImage"); if (elem && elem.animate) { var random = getRandomInt(0, animations.length - 1); @@ -39,95 +39,95 @@ define(['pluginManager'], function (pluginManager) { function bounceInLeft(elem, iterations) { var keyframes = [ - { transform: 'translate3d(-3000px, 0, 0)', opacity: '0', offset: 0 }, - { transform: 'translate3d(25px, 0, 0)', opacity: '1', offset: 0.6 }, - { transform: 'translate3d(-100px, 0, 0)', offset: 0.75 }, - { transform: 'translate3d(5px, 0, 0)', offset: 0.9 }, - { transform: 'none', opacity: '1', offset: 1 }]; - var timing = { duration: 900, iterations: iterations, easing: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)' }; + { transform: "translate3d(-3000px, 0, 0)", opacity: "0", offset: 0 }, + { transform: "translate3d(25px, 0, 0)", opacity: "1", offset: 0.6 }, + { transform: "translate3d(-100px, 0, 0)", offset: 0.75 }, + { transform: "translate3d(5px, 0, 0)", offset: 0.9 }, + { transform: "none", opacity: "1", offset: 1 }]; + var timing = { duration: 900, iterations: iterations, easing: "cubic-bezier(0.215, 0.610, 0.355, 1.000)" }; return elem.animate(keyframes, timing); } function bounceInRight(elem, iterations) { var keyframes = [ - { transform: 'translate3d(3000px, 0, 0)', opacity: '0', offset: 0 }, - { transform: 'translate3d(-25px, 0, 0)', opacity: '1', offset: 0.6 }, - { transform: 'translate3d(100px, 0, 0)', offset: 0.75 }, - { transform: 'translate3d(-5px, 0, 0)', offset: 0.9 }, - { transform: 'none', opacity: '1', offset: 1 }]; - var timing = { duration: 900, iterations: iterations, easing: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)' }; + { transform: "translate3d(3000px, 0, 0)", opacity: "0", offset: 0 }, + { transform: "translate3d(-25px, 0, 0)", opacity: "1", offset: 0.6 }, + { transform: "translate3d(100px, 0, 0)", offset: 0.75 }, + { transform: "translate3d(-5px, 0, 0)", offset: 0.9 }, + { transform: "none", opacity: "1", offset: 1 }]; + var timing = { duration: 900, iterations: iterations, easing: "cubic-bezier(0.215, 0.610, 0.355, 1.000)" }; return elem.animate(keyframes, timing); } function shake(elem, iterations) { var keyframes = [ - { transform: 'translate3d(0, 0, 0)', offset: 0 }, - { transform: 'translate3d(-10px, 0, 0)', offset: 0.1 }, - { transform: 'translate3d(10px, 0, 0)', offset: 0.2 }, - { transform: 'translate3d(-10px, 0, 0)', offset: 0.3 }, - { transform: 'translate3d(10px, 0, 0)', offset: 0.4 }, - { transform: 'translate3d(-10px, 0, 0)', offset: 0.5 }, - { transform: 'translate3d(10px, 0, 0)', offset: 0.6 }, - { transform: 'translate3d(-10px, 0, 0)', offset: 0.7 }, - { transform: 'translate3d(10px, 0, 0)', offset: 0.8 }, - { transform: 'translate3d(-10px, 0, 0)', offset: 0.9 }, - { transform: 'translate3d(0, 0, 0)', offset: 1 }]; + { transform: "translate3d(0, 0, 0)", offset: 0 }, + { transform: "translate3d(-10px, 0, 0)", offset: 0.1 }, + { transform: "translate3d(10px, 0, 0)", offset: 0.2 }, + { transform: "translate3d(-10px, 0, 0)", offset: 0.3 }, + { transform: "translate3d(10px, 0, 0)", offset: 0.4 }, + { transform: "translate3d(-10px, 0, 0)", offset: 0.5 }, + { transform: "translate3d(10px, 0, 0)", offset: 0.6 }, + { transform: "translate3d(-10px, 0, 0)", offset: 0.7 }, + { transform: "translate3d(10px, 0, 0)", offset: 0.8 }, + { transform: "translate3d(-10px, 0, 0)", offset: 0.9 }, + { transform: "translate3d(0, 0, 0)", offset: 1 }]; var timing = { duration: 900, iterations: iterations }; return elem.animate(keyframes, timing); } function swing(elem, iterations) { var keyframes = [ - { transform: 'translate(0%)', offset: 0 }, - { transform: 'rotate3d(0, 0, 1, 15deg)', offset: 0.2 }, - { transform: 'rotate3d(0, 0, 1, -10deg)', offset: 0.4 }, - { transform: 'rotate3d(0, 0, 1, 5deg)', offset: 0.6 }, - { transform: 'rotate3d(0, 0, 1, -5deg)', offset: 0.8 }, - { transform: 'rotate3d(0, 0, 1, 0deg)', offset: 1 }]; + { transform: "translate(0%)", offset: 0 }, + { transform: "rotate3d(0, 0, 1, 15deg)", offset: 0.2 }, + { transform: "rotate3d(0, 0, 1, -10deg)", offset: 0.4 }, + { transform: "rotate3d(0, 0, 1, 5deg)", offset: 0.6 }, + { transform: "rotate3d(0, 0, 1, -5deg)", offset: 0.8 }, + { transform: "rotate3d(0, 0, 1, 0deg)", offset: 1 }]; var timing = { duration: 900, iterations: iterations }; return elem.animate(keyframes, timing); } function tada(elem, iterations) { var keyframes = [ - { transform: 'scale3d(1, 1, 1)', offset: 0 }, - { transform: 'scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)', offset: 0.1 }, - { transform: 'scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)', offset: 0.2 }, - { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)', offset: 0.3 }, - { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)', offset: 0.4 }, - { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)', offset: 0.5 }, - { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)', offset: 0.6 }, - { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)', offset: 0.7 }, - { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)', offset: 0.8 }, - { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)', offset: 0.9 }, - { transform: 'scale3d(1, 1, 1)', offset: 1 }]; + { transform: "scale3d(1, 1, 1)", offset: 0 }, + { transform: "scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)", offset: 0.1 }, + { transform: "scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)", offset: 0.2 }, + { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)", offset: 0.3 }, + { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)", offset: 0.4 }, + { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)", offset: 0.5 }, + { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)", offset: 0.6 }, + { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)", offset: 0.7 }, + { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)", offset: 0.8 }, + { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)", offset: 0.9 }, + { transform: "scale3d(1, 1, 1)", offset: 1 }]; var timing = { duration: 900, iterations: iterations }; return elem.animate(keyframes, timing); } function wobble(elem, iterations) { var keyframes = [ - { transform: 'translate(0%)', offset: 0 }, - { transform: 'translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)', offset: 0.15 }, - { transform: 'translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)', offset: 0.45 }, - { transform: 'translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)', offset: 0.6 }, - { transform: 'translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)', offset: 0.75 }, - { transform: 'translateX(0%)', offset: 1 }]; + { transform: "translate(0%)", offset: 0 }, + { transform: "translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)", offset: 0.15 }, + { transform: "translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)", offset: 0.45 }, + { transform: "translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)", offset: 0.6 }, + { transform: "translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)", offset: 0.75 }, + { transform: "translateX(0%)", offset: 1 }]; var timing = { duration: 900, iterations: iterations }; return elem.animate(keyframes, timing); } function rotateIn(elem, iterations) { - var transformOrigin = elem.style['transform-origin']; - var keyframes = [{ transform: 'rotate3d(0, 0, 1, -200deg)', opacity: '0', transformOrigin: 'center', offset: 0 }, - { transform: 'none', opacity: '1', transformOrigin: 'center', offset: 1 }]; + var transformOrigin = elem.style["transform-origin"]; + var keyframes = [{ transform: "rotate3d(0, 0, 1, -200deg)", opacity: "0", transformOrigin: "center", offset: 0 }, + { transform: "none", opacity: "1", transformOrigin: "center", offset: 1 }]; var timing = { duration: 900, iterations: iterations }; return elem.animate(keyframes, timing); } function rotateOut(elem, iterations) { - var transformOrigin = elem.style['transform-origin']; - var keyframes = [{ transform: 'none', opacity: '1', transformOrigin: 'center', offset: 0 }, - { transform: 'rotate3d(0, 0, 1, 200deg)', opacity: '0', transformOrigin: 'center', offset: 1 }]; + var transformOrigin = elem.style["transform-origin"]; + var keyframes = [{ transform: "none", opacity: "1", transformOrigin: "center", offset: 0 }, + { transform: "rotate3d(0, 0, 1, 200deg)", opacity: "0", transformOrigin: "center", offset: 1 }]; var timing = { duration: 900, iterations: iterations }; return elem.animate(keyframes, timing); @@ -135,8 +135,8 @@ define(['pluginManager'], function (pluginManager) { function fadeOut(elem, iterations) { var keyframes = [ - { opacity: '1', offset: 0 }, - { opacity: '0', offset: 1 }]; + { opacity: "1", offset: 0 }, + { opacity: "0", offset: 1 }]; var timing = { duration: 400, iterations: iterations }; return elem.animate(keyframes, timing); } @@ -150,16 +150,16 @@ define(['pluginManager'], function (pluginManager) { self.show = function () { - require(['css!' + pluginManager.mapPath(self, 'style.css')], function () { + require(["css!" + pluginManager.mapPath(self, "style.css")], function () { - var elem = document.querySelector('.logoScreenSaver'); + var elem = document.querySelector(".logoScreenSaver"); if (!elem) { - elem = document.createElement('div'); - elem.classList.add('logoScreenSaver'); + elem = document.createElement("div"); + elem.classList.add("logoScreenSaver"); document.body.appendChild(elem); - elem.innerHTML = ''; + elem.innerHTML = ''; } stopInterval(); @@ -171,7 +171,7 @@ define(['pluginManager'], function (pluginManager) { stopInterval(); - var elem = document.querySelector('.logoScreenSaver'); + var elem = document.querySelector(".logoScreenSaver"); if (elem) { @@ -188,4 +188,4 @@ define(['pluginManager'], function (pluginManager) { } }; } -}); \ No newline at end of file +}); diff --git a/src/components/screensavermanager.js b/src/components/screensavermanager.js index d186b538b3..3d8d2deeb8 100644 --- a/src/components/screensavermanager.js +++ b/src/components/screensavermanager.js @@ -1,4 +1,4 @@ -define(['events', 'playbackManager'], function (events, playbackManager) { +define(["events", "playbackManager", "pluginManager"], function (events, playbackManager, pluginManager) { function getMinIdleTime() { // Returns the minimum amount of idle time required before the screen saver can be displayed @@ -11,9 +11,9 @@ define(['events', 'playbackManager'], function (events, playbackManager) { return new Date().getTime() - lastFunctionalEvent; } - events.on(playbackManager, 'playbackstop', function (e, stopInfo) { + events.on(playbackManager, "playbackstop", function (e, stopInfo) { var state = stopInfo.state; - if (state.NowPlayingItem && state.NowPlayingItem.MediaType == 'Video') { + if (state.NowPlayingItem && state.NowPlayingItem.MediaType == "Video") { lastFunctionalEvent = new Date().getTime(); } }); @@ -26,35 +26,35 @@ define(['events', 'playbackManager'], function (events, playbackManager) { function showScreenSaver(screensaver) { if (activeScreenSaver) { - throw new Error('An existing screensaver is already active.'); + throw new Error("An existing screensaver is already active."); } - console.log('Showing screensaver ' + screensaver.name); + console.log("Showing screensaver " + screensaver.name); screensaver.show(); activeScreenSaver = screensaver; if (screensaver.hideOnClick !== false) { - window.addEventListener('click', hide, true); + window.addEventListener("click", hide, true); } if (screensaver.hideOnMouse !== false) { - window.addEventListener('mousemove', hide, true); + window.addEventListener("mousemove", hide, true); } if (screensaver.hideOnKey !== false) { - window.addEventListener('keydown', hide, true); + window.addEventListener("keydown", hide, true); } } function hide() { if (activeScreenSaver) { - console.log('Hiding screensaver'); + console.log("Hiding screensaver"); activeScreenSaver.hide(); activeScreenSaver = null; } - window.removeEventListener('click', hide, true); - window.removeEventListener('mousemove', hide, true); - window.removeEventListener('keydown', hide, true); + window.removeEventListener("click", hide, true); + window.removeEventListener("mousemove", hide, true); + window.removeEventListener("keydown", hide, true); } self.isShowing = function () { @@ -62,11 +62,11 @@ define(['events', 'playbackManager'], function (events, playbackManager) { }; self.show = function () { - var screensavers = Emby.PluginManager.ofType('screensaver'); + var screensavers = pluginManager.ofType("screensaver"); - require(['connectionManager'], function (connectionManager) { + require(["connectionManager"], function (connectionManager) { - var server = connectionManager.currentLoggedInServer(); + var server = connectionManager.currentApiClient(); show(screensavers, server); }); @@ -109,7 +109,7 @@ define(['events', 'playbackManager'], function (events, playbackManager) { return; } - require(['inputmanager'], function (inputmanager) { + require(["inputmanager"], function (inputmanager) { if (inputmanager.idleTime() < getMinIdleTime()) { return; @@ -131,4 +131,4 @@ define(['events', 'playbackManager'], function (events, playbackManager) { } return new ScreenSaverManager(); -}); \ No newline at end of file +}); diff --git a/src/scripts/site.js b/src/scripts/site.js index e05712c076..e0d2921d72 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -528,7 +528,9 @@ var AppInfo = {}; "components/htmlaudioplayer/plugin", "components/htmlvideoplayer/plugin", "components/photoplayer/plugin", - "components/youtubeplayer/plugin" + "components/youtubeplayer/plugin", + "components/backdropscreensaver/plugin", + "components/logoscreensaver/plugin" ]; if (appHost.supports("remotecontrol")) { @@ -590,6 +592,8 @@ var AppInfo = {}; require(["playerSelectionMenu", "components/playback/remotecontrolautoplay"]); } + require(["components/screensavermanager"]); + if (!appHost.supports("physicalvolumecontrol") || browser.touch) { require(["components/playback/volumeosd"]); } @@ -667,7 +671,8 @@ var AppInfo = {}; autoPlayDetect: componentsPath + "/playback/autoplaydetect", nowPlayingHelper: componentsPath + "/playback/nowplayinghelper", pluginManager: componentsPath + "/pluginManager", - packageManager: componentsPath + "/packagemanager" + packageManager: componentsPath + "/packagemanager", + screensaverManager: componentsPath + "/screensavermanager" }; requirejs.onError = onRequireJsError; @@ -710,6 +715,9 @@ var AppInfo = {}; require(["css!css/site"]); + // alias + define("inputmanager", ["inputManager"], returnFirstDependency); + // define styles // TODO determine which of these files can be moved to the components themselves define("material-icons", ["css!css/material-icons/style"], returnFirstDependency);