2023-10-09 15:13:12 -04:00
|
|
|
import RemoteControl from "../../../components/remotecontrol/remotecontrol";
|
|
|
|
import { playbackManager } from "../../../components/playback/playbackmanager";
|
|
|
|
import libraryMenu from "../../../scripts/libraryMenu";
|
|
|
|
import "../../../elements/emby-button/emby-button";
|
2019-11-06 13:43:39 +03:00
|
|
|
|
2021-01-26 22:20:12 -05:00
|
|
|
export default function (view) {
|
2023-07-06 11:49:55 -04:00
|
|
|
const remoteControl = new RemoteControl();
|
2023-10-09 15:13:12 -04:00
|
|
|
remoteControl.init(view, view.querySelector(".remoteControlContent"));
|
|
|
|
|
|
|
|
let currentPlayer;
|
|
|
|
|
|
|
|
function onKeyDown(e) {
|
|
|
|
if (e.keyCode === 32 && e.target.tagName !== "BUTTON") {
|
|
|
|
playbackManager.playPause(currentPlayer);
|
|
|
|
e.preventDefault();
|
|
|
|
e.stopPropagation();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function releaseCurrentPlayer() {
|
|
|
|
const player = currentPlayer;
|
|
|
|
if (player) currentPlayer = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
function bindToPlayer(player) {
|
|
|
|
if (player !== currentPlayer) {
|
|
|
|
releaseCurrentPlayer();
|
|
|
|
currentPlayer = player;
|
|
|
|
if (!player) return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
view.addEventListener("viewshow", function () {
|
2020-07-19 10:40:41 +01:00
|
|
|
libraryMenu.setTransparentMenu(true);
|
2023-10-09 15:13:12 -04:00
|
|
|
bindToPlayer(playbackManager.getCurrentPlayer());
|
|
|
|
document.addEventListener("keydown", onKeyDown);
|
2019-11-06 13:43:39 +03:00
|
|
|
|
2020-07-19 10:40:41 +01:00
|
|
|
if (remoteControl) {
|
|
|
|
remoteControl.onShow();
|
|
|
|
}
|
|
|
|
});
|
2023-10-09 15:13:12 -04:00
|
|
|
|
|
|
|
view.addEventListener("viewbeforehide", function () {
|
2020-07-19 10:40:41 +01:00
|
|
|
libraryMenu.setTransparentMenu(false);
|
2023-10-09 15:13:12 -04:00
|
|
|
document.removeEventListener("keydown", onKeyDown);
|
|
|
|
releaseCurrentPlayer();
|
2019-11-06 13:43:39 +03:00
|
|
|
|
2020-07-19 10:40:41 +01:00
|
|
|
if (remoteControl) {
|
|
|
|
remoteControl.destroy();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|