This commit is contained in:
root
2023-08-31 15:30:17 +02:00
commit dea16b40a8
833 changed files with 142024 additions and 0 deletions

View File

@@ -0,0 +1 @@
define(["./../common/inputmanager.js"],function(_inputmanager){var isLooping,ButtonInfos={};function setPressed(buttonInfo,newPressedState){var fire,key=buttonInfo.key,keyCode=buttonInfo.keyCode;!0===newPressedState?(fire=!1===buttonInfo.pressed||!1!==buttonInfo.enableRepeatKeyDown?!0:fire)&&keyCode&&raiseEvent("keydown",key,keyCode,!0===buttonInfo.pressed):!1===newPressedState&&!0===buttonInfo.pressed&&(keyCode&&raiseEvent("keyup",key,keyCode),buttonInfo.clickOnKeyUp)&&allowInput()&&_inputmanager.default.trigger("select"),buttonInfo.pressed=newPressedState}function allowInput(){var doc=document;return"hidden"!==doc.visibilityState&&!!doc.hasFocus()}function raiseEvent(name,key,keyCode,repeat){var event;allowInput()&&((event=document.createEvent("Event")).initEvent(name,!0,!0),event.key=key,event.keyCode=keyCode,null!=repeat&&(event.repeat=repeat),(document.activeElement||document.body).dispatchEvent(event))}function runInputLoop(){for(var hasGamepad=!1,gamepads=function(){try{return navigator.getGamepads()||[]}catch(err){return console.log("Error getting gamepads: "+err),[]}}(),i=0,length=gamepads.length;i<length;i++){var gamepad=gamepads[i];if(gamepad)for(var hasGamepad=!0,axes=gamepad.axes,leftStickX=axes[0],axes=axes[1],buttons=(.75<leftStickX?setPressed(ButtonInfos.GamepadLeftThumbStickRight,!0):leftStickX<-.75?setPressed(ButtonInfos.GamepadLeftThumbStickLeft,!0):axes<-.75?setPressed(ButtonInfos.GamepadLeftThumbStickUp,!0):.75<axes?setPressed(ButtonInfos.GamepadLeftThumbStickDown,!0):(setPressed(ButtonInfos.GamepadLeftThumbStickLeft,!1),setPressed(ButtonInfos.GamepadLeftThumbStickRight,!1),setPressed(ButtonInfos.GamepadLeftThumbStickUp,!1),setPressed(ButtonInfos.GamepadLeftThumbStickDown,!1)),gamepad.buttons),j=0,len=buttons.length;j<len;j++)if(buttons[j].pressed)switch(j){case 12:case 13:case 14:case 15:case 0:case 1:setPressed(ButtonInfos[j],!0)}else switch(j){case 12:case 13:case 14:case 15:case 0:case 1:setPressed(ButtonInfos[j],!1)}}hasGamepad?requestAnimationFrame(runInputLoop):(console.log("exiting gamepad input loop"),isLooping=!1)}ButtonInfos[0]={key:"GamepadA",keyCode:0,enableRepeatKeyDown:!1,clickOnKeyUp:!0},ButtonInfos[1]={key:"GamepadB",keyCode:27},ButtonInfos[12]={key:"GamepadDPadUp",keyCode:38},ButtonInfos[13]={key:"GamepadDPadDown",keyCode:40},ButtonInfos[14]={key:"GamepadDPadLeft",keyCode:37},ButtonInfos[15]={key:"GamepadDPadRight",keyCode:39},ButtonInfos.GamepadLeftThumbStickUp={key:"GamepadLeftThumbStickUp",keyCode:38},ButtonInfos.GamepadLeftThumbStickDown={key:"GamepadLeftThumbStickDown",keyCode:40},ButtonInfos.GamepadLeftThumbStickLeft={key:"GamepadLeftThumbStickLeft",keyCode:37},ButtonInfos.GamepadLeftThumbStickRight={key:"GamepadLeftThumbStickRight",keyCode:39},navigator.getGamepads||(navigator.webkitGetGamepads?navigator.getGamepads=navigator.webkitGetGamepads:navigator.getGamepads=function(){return null}),window.addEventListener("gamepadconnected",function(e){e=e.gamepad.index;console.log("gamepadconnected: "+e),isLooping||(isLooping=!0,runInputLoop())}),window.addEventListener("gamepaddisconnected",function(e){e=e.gamepad.index;console.log("gamepaddisconnected: "+e)}),window.navigator&&"string"==typeof window.navigator.gamepadInputEmulation&&(window.navigator.gamepadInputEmulation="gamepad")});

1
modules/input/mouse.js Normal file
View File

@@ -0,0 +1 @@
define(["exports","./../dom.js","./../layoutmanager.js","./../common/inputmanager.js","./../emby-apiclient/events.js","./../common/methodtimer.js","./../focusmanager.js"],function(_exports,_dom,_layoutmanager,_inputmanager,_events,_methodtimer,_focusmanager){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var isMouseIdle,lastPointerMoveData,mouseInterval,mouseManager={},lastMouseInputTime=0;function removeIdleClasses(){isMouseIdle=!1,document.body.classList.remove("mouseIdle","mouseIdle-tv")}function addIdleClasses(){isMouseIdle=!0;var classList=document.body.classList;_layoutmanager.default.tv?classList.add("mouseIdle","mouseIdle-tv"):classList.add("mouseIdle")}function onPointerMove(e){var obj,eventX=e.screenX,e=e.screenY;void 0===eventX&&void 0===e||((obj=lastPointerMoveData)?Math.abs(eventX-obj.x)<10&&Math.abs(e-obj.y)<10||(obj.x=eventX,obj.y=e,lastMouseInputTime=Date.now(),isMouseIdle&&removeIdleClasses()):lastPointerMoveData={x:eventX,y:e})}function onPointerEnter(e){var pointerType=e.pointerType;pointerType&&"mouse"!==pointerType||isMouseIdle||(pointerType=e.target).closest&&!pointerType.closest(".nohoverfocus")&&(e=_focusmanager.default.focusableParent(pointerType,!1))&&_focusmanager.default.focus(e)}function onMouseInterval(){!isMouseIdle&&5e3<=Date.now()-lastMouseInputTime&&addIdleClasses()}function stopMouseListening(){mouseInterval&&(mouseInterval.destroy(),mouseInterval=null),removeIdleClasses(),_dom.default.removeEventListener(document,"pointermove",onPointerMove,{passive:!0}),_dom.default.removeEventListener(document,"mousemove",onPointerMove,{passive:!0})}function startMouseListening(){(_layoutmanager.default.tv?addIdleClasses:removeIdleClasses)(),mouseInterval=mouseInterval||new _methodtimer.default({onInterval:onMouseInterval,timeoutMs:5e3,type:"interval"}),window.PointerEvent?_dom.default.addEventListener(document,"pointermove",onPointerMove,{passive:!0}):_dom.default.addEventListener(document,"mousemove",onPointerMove,{passive:!0})}var listeners=[];function requestMouseListening(listener){listeners.includes(listener)||(0===listeners.length&&startMouseListening(),listeners.push(listener))}function releaseMouseListening(listener){listener=listeners.indexOf(listener);-1!==listener&&listeners.splice(listener,1),listeners.length||stopMouseListening()}function initMouse(){(_layoutmanager.default.tv?requestMouseListening:releaseMouseListening)("tv"),_dom.default.removeEventListener(document,window.PointerEvent?"pointerenter":"mouseenter",onPointerEnter,{capture:!0,passive:!0}),_layoutmanager.default.tv}function sendCommandFromEvent(name,e){_inputmanager.default.trigger(name,{sourceElement:e.target,originalEvent:e})}window.addEventListener("mouseup",function(e){switch(e.button){case 3:e.stopPropagation(),e.preventDefault(),sendCommandFromEvent("back",e);break;case 4:e.stopPropagation(),e.preventDefault(),sendCommandFromEvent("forward",e)}}),initMouse(),mouseManager.requestMouseListening=requestMouseListening,mouseManager.releaseMouseListening=releaseMouseListening,mouseManager.lastMouseInputTime=function(){return lastMouseInputTime},_events.default.on(_layoutmanager.default,"modechange",initMouse),_exports.default=mouseManager});