cab / lib /web /htdocs /modules /common /inputmanager.js
docs4you's picture
Upload 487 files
27867f1 verified
(function (playbackManager, focusManager, appRouter, dom) {
"use strict";
var lastInputTime = Date.now();
function notify() {
(lastInputTime = Date.now()), handleCommand("unknown");
}
var commandTimes = {};
function handleCommand(name, options) {
lastInputTime = Date.now();
var tagName,
sourceElement = options ? options.sourceElement : null;
((sourceElement = sourceElement || document.activeElement) && "BODY" !== (tagName = sourceElement.tagName) && "HTML" !== tagName) || (sourceElement = focusManager.getCurrentScope());
var command,
last,
now,
customEvent = new CustomEvent("command", { detail: { command: name }, bubbles: !0, cancelable: !0 });
if (!sourceElement.dispatchEvent(customEvent)) return !0;
switch (name) {
case "up":
return focusManager.moveUp(sourceElement), !0;
case "down":
return focusManager.moveDown(sourceElement), !0;
case "left":
return focusManager.moveLeft(sourceElement), !0;
case "right":
return focusManager.moveRight(sourceElement), !0;
case "home":
return appRouter.goHome(), !0;
case "settings":
return appRouter.showSettings(), !0;
case "back":
return appRouter.back(), !0;
case "forward":
return !0;
case "select":
return sourceElement.click(), !0;
case "menu":
case "info":
return !0;
case "nextchapter":
return playbackManager.nextChapter(), !0;
case "next":
case "nexttrack":
return playbackManager.nextTrack(), !0;
case "previous":
case "previoustrack":
return playbackManager.previousTrack(), !0;
case "previouschapter":
return playbackManager.previousChapter(), !0;
case "guide":
return appRouter.showGuide(), !0;
case "recordedtv":
return appRouter.showRecordedTV(), !0;
case "record":
return !0;
case "livetv":
return appRouter.showLiveTV(), !0;
case "mute":
return playbackManager.setMute(!0), !0;
case "unmute":
return playbackManager.setMute(!1), !0;
case "togglemute":
return playbackManager.toggleMute(), !0;
case "channelup":
return playbackManager.channelUp(), !0;
case "channeldown":
return playbackManager.channelDown(), !0;
case "volumedown":
return playbackManager.volumeDown(), !0;
case "volumeup":
return playbackManager.volumeUp(), !0;
case "play":
return playbackManager.unpause(), !0;
case "pause":
return playbackManager.pause(), !0;
case "playpause":
return playbackManager.playPause(), !0;
case "stop":
return (last = commandTimes[(command = "stop")] || 0), (now = Date.now()) - last < 1e3 || ((commandTimes[command] = now), !1) || playbackManager.stop(), !0;
case "changezoom":
return playbackManager.toggleAspectRatio(), !0;
case "changeaudiotrack":
return playbackManager.changeAudioStream(), !0;
case "changesubtitletrack":
return playbackManager.changeSubtitleStream(), !0;
case "search":
return appRouter.showSearch(), !0;
case "favorites":
return appRouter.showFavorites(), !0;
case "fastforward":
return playbackManager.fastForward(), !0;
case "rewind":
return playbackManager.rewind(), !0;
case "togglefullscreen":
return playbackManager.toggleFullscreen(), !0;
case "disabledisplaymirror":
return playbackManager.enableDisplayMirroring(!1), !0;
case "enabledisplaymirror":
return playbackManager.enableDisplayMirroring(!0), !0;
case "toggledisplaymirror":
return playbackManager.toggleDisplayMirroring(), !0;
case "togglestats":
return !0;
case "movies":
case "music":
case "tv":
return appRouter.goHome(), !0;
case "nowplaying":
return appRouter.showNowPlaying(), !0;
case "save":
case "screensaver":
case "refresh":
case "changebrightness":
case "red":
case "green":
case "yellow":
case "blue":
case "grey":
case "brown":
return !0;
case "repeatnone":
return playbackManager.setRepeatMode("RepeatNone"), !0;
case "repeatall":
return playbackManager.setRepeatMode("RepeatAll"), !0;
case "repeatone":
return playbackManager.setRepeatMode("RepeatOne"), !0;
default:
return !1;
}
}
return (
dom.addEventListener(document, "click", notify, { passive: !0 }),
{
trigger: handleCommand,
handle: handleCommand,
notify: notify,
notifyMouseMove: function () {
lastInputTime = Date.now();
},
idleTime: function () {
return Date.now() - lastInputTime;
},
on: function (scope, fn) {
dom.addEventListener(scope, "command", fn, {});
},
off: function (scope, fn) {
dom.removeEventListener(scope, "command", fn, {});
},
}
);
});