1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
This commit is contained in:
Luke Pulverenti 2017-01-27 18:07:14 -05:00
parent 82bcca376f
commit 8a6884abef
494 changed files with 256 additions and 120180 deletions

View file

@ -1,60 +1 @@
define(['playbackManager'], function (playbackManager) {
"use strict";
return function () {
var self = this;
self.name = 'Playback validation';
self.type = 'preplayintercept';
self.id = 'playbackvalidation';
self.order = -1;
self.intercept = function (options) {
// Don't care about video backdrops, or theme music or any kind of non-fullscreen playback
if (!options.fullscreen) {
return Promise.resolve();
}
return validatePlayback(options);
};
function validatePlayback(options) {
return new Promise(function (resolve, reject) {
require(["registrationServices"], function (registrationServices) {
registrationServices.validateFeature('playback', options).then(function (result) {
if (result && result.enableTimeLimit) {
startAutoStopTimer();
}
resolve();
});
});
});
}
var autoStopTimeout;
var lockedTimeLimitMs = 63000;
function startAutoStopTimer() {
stopAutoStopTimer();
autoStopTimeout = setTimeout(onAutoStopTimeout, lockedTimeLimitMs);
}
function onAutoStopTimeout() {
stopAutoStopTimer();
playbackManager.stop();
}
function stopAutoStopTimer() {
var timeout = autoStopTimeout;
if (timeout) {
clearTimeout(timeout);
autoStopTimeout = null;
}
}
};
});
define(["playbackManager"],function(playbackManager){"use strict";return function(){function validatePlayback(options){return new Promise(function(resolve,reject){require(["registrationServices"],function(registrationServices){registrationServices.validateFeature("playback",options).then(function(result){result&&result.enableTimeLimit&&startAutoStopTimer(),resolve()})})})}function startAutoStopTimer(){stopAutoStopTimer(),autoStopTimeout=setTimeout(onAutoStopTimeout,lockedTimeLimitMs)}function onAutoStopTimeout(){stopAutoStopTimer(),playbackManager.stop()}function stopAutoStopTimer(){var timeout=autoStopTimeout;timeout&&(clearTimeout(timeout),autoStopTimeout=null)}var self=this;self.name="Playback validation",self.type="preplayintercept",self.id="playbackvalidation",self.order=-1,self.intercept=function(options){return options.fullscreen?validatePlayback(options):Promise.resolve()};var autoStopTimeout,lockedTimeLimitMs=63e3}});