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);