mirror of
https://gitlab.com/futo-org/fcast.git
synced 2025-07-28 04:46:59 +00:00
webOS: Fixed key and launch event handlers
This commit is contained in:
parent
a549296aca
commit
b0a706dfed
8 changed files with 69 additions and 15 deletions
|
@ -203,7 +203,7 @@ function renderQRCode(url: string) {
|
|||
onQRCodeRendered();
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', (event: KeyboardEvent) => {
|
||||
export function keyDownEventHandler(event: KeyboardEvent) {
|
||||
// logger.info("KeyDown", event);
|
||||
let result = targetKeyDownEventListener(event);
|
||||
let handledCase = result.handledCase;
|
||||
|
@ -221,8 +221,9 @@ document.addEventListener('keydown', (event: KeyboardEvent) => {
|
|||
if (window.targetAPI.getSubscribedKeys().keyDown.has(key)) {
|
||||
window.targetAPI.sendEvent(new EventMessage(Date.now(), new KeyEvent(EventType.KeyDown, key, event.repeat, handledCase)));
|
||||
}
|
||||
});
|
||||
document.addEventListener('keyup', (event: KeyboardEvent) => {
|
||||
}
|
||||
|
||||
export function keyUpEventHandler(event: KeyboardEvent) {
|
||||
// logger.info("KeyUp", event);
|
||||
let result = targetKeyUpEventListener(event);
|
||||
let handledCase = result.handledCase;
|
||||
|
@ -240,4 +241,7 @@ document.addEventListener('keyup', (event: KeyboardEvent) => {
|
|||
if (window.targetAPI.getSubscribedKeys().keyUp.has(key)) {
|
||||
window.targetAPI.sendEvent(new EventMessage(Date.now(), new KeyEvent(EventType.KeyUp, key, event.repeat, handledCase)));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', keyDownEventHandler);
|
||||
document.addEventListener('keyup', keyUpEventHandler);
|
||||
|
|
|
@ -923,7 +923,7 @@ function skipForward() {
|
|||
}
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', (event: KeyboardEvent) => {
|
||||
function keyDownEventHandler(event: KeyboardEvent) {
|
||||
// logger.info("KeyDown", event.key);
|
||||
let result = targetKeyDownEventListener(event);
|
||||
let handledCase = result.handledCase;
|
||||
|
@ -993,8 +993,9 @@ document.addEventListener('keydown', (event: KeyboardEvent) => {
|
|||
if (window.targetAPI.getSubscribedKeys().keyDown.has(key)) {
|
||||
window.targetAPI.sendEvent(new EventMessage(Date.now(), new KeyEvent(EventType.KeyDown, key, event.repeat, handledCase)));
|
||||
}
|
||||
});
|
||||
document.addEventListener('keyup', (event: KeyboardEvent) => {
|
||||
}
|
||||
|
||||
function keyUpEventHandler(event: KeyboardEvent) {
|
||||
// logger.info("KeyUp", event);
|
||||
let result = targetKeyUpEventListener(event);
|
||||
let handledCase = result.handledCase;
|
||||
|
@ -1012,7 +1013,10 @@ document.addEventListener('keyup', (event: KeyboardEvent) => {
|
|||
if (window.targetAPI.getSubscribedKeys().keyUp.has(key)) {
|
||||
window.targetAPI.sendEvent(new EventMessage(Date.now(), new KeyEvent(EventType.KeyUp, key, event.repeat, handledCase)));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', keyDownEventHandler);
|
||||
document.addEventListener('keyup', keyUpEventHandler);
|
||||
|
||||
export {
|
||||
PlayerControlEvent,
|
||||
|
@ -1042,4 +1046,6 @@ export {
|
|||
formatDuration,
|
||||
skipBack,
|
||||
skipForward,
|
||||
keyDownEventHandler,
|
||||
keyUpEventHandler,
|
||||
};
|
||||
|
|
|
@ -329,7 +329,7 @@ document.onmousemove = () => {
|
|||
uiHideTimer.start();
|
||||
};
|
||||
|
||||
document.addEventListener('keydown', (event: KeyboardEvent) => {
|
||||
function keyDownEventHandler(event: KeyboardEvent) {
|
||||
// logger.info("KeyDown", event);
|
||||
let result = targetKeyDownEventListener(event);
|
||||
let handledCase = result.handledCase;
|
||||
|
@ -379,8 +379,9 @@ document.addEventListener('keydown', (event: KeyboardEvent) => {
|
|||
if (window.targetAPI.getSubscribedKeys().keyDown.has(key)) {
|
||||
window.targetAPI.sendEvent(new EventMessage(Date.now(), new KeyEvent(EventType.KeyDown, key, event.repeat, handledCase)));
|
||||
}
|
||||
});
|
||||
document.addEventListener('keyup', (event: KeyboardEvent) => {
|
||||
}
|
||||
|
||||
function keyUpEventHandler(event: KeyboardEvent) {
|
||||
// logger.info("KeyUp", event);
|
||||
let result = targetKeyUpEventListener(event);
|
||||
let handledCase = result.handledCase;
|
||||
|
@ -398,7 +399,10 @@ document.addEventListener('keyup', (event: KeyboardEvent) => {
|
|||
if (window.targetAPI.getSubscribedKeys().keyUp.has(key)) {
|
||||
window.targetAPI.sendEvent(new EventMessage(Date.now(), new KeyEvent(EventType.KeyUp, key, event.repeat, handledCase)));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', keyDownEventHandler);
|
||||
document.addEventListener('keyup', keyUpEventHandler);
|
||||
|
||||
export {
|
||||
PlayerControlEvent,
|
||||
|
@ -411,4 +415,6 @@ export {
|
|||
onPlayPlaylist,
|
||||
playerCtrlStateUpdate,
|
||||
setPlaylistItem,
|
||||
keyDownEventHandler,
|
||||
keyUpEventHandler,
|
||||
};
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import { Logger, LoggerType } from 'common/Logger';
|
||||
import { ServiceManager } from 'lib/common';
|
||||
require('lib/webOSTVjs-1.2.10/webOSTV.js');
|
||||
require('lib/webOSTVjs-1.2.10/webOSTV-dev.js');
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
|
@ -10,6 +12,8 @@ declare global {
|
|||
const logger = new Logger('Main', LoggerType.FRONTEND);
|
||||
const webPage: HTMLIFrameElement = document.getElementById('page') as HTMLIFrameElement;
|
||||
let launchHandlerCallback = () => { logger.warn('No (re)launch handler set'); };
|
||||
let keyDownEventHandler = () => { logger.warn('No keyDown event handler set'); };
|
||||
let keyUpEventHandler = () => { logger.warn('No keyUp event handler set'); };
|
||||
|
||||
function loadPage(path: string) {
|
||||
// @ts-ignore
|
||||
|
@ -20,13 +24,35 @@ function loadPage(path: string) {
|
|||
// so bugs related to oversubscribing/canceling services are worked around by only subscribing once to
|
||||
// required services
|
||||
logger.info('Starting webOS application')
|
||||
window.webOS.deviceInfo((info) => { logger.info('Device info:', info); });
|
||||
|
||||
window.webOSApp = {
|
||||
serviceManager: new ServiceManager(),
|
||||
setLaunchHandler: (callback: () => void) => launchHandlerCallback = callback,
|
||||
setLaunchHandler: (callback: () => void) => {
|
||||
document.removeEventListener('webOSLaunch', launchHandlerCallback);
|
||||
document.removeEventListener('webOSRelaunch', launchHandlerCallback);
|
||||
|
||||
launchHandlerCallback = callback;
|
||||
document.addEventListener('webOSLaunch', launchHandlerCallback);
|
||||
document.addEventListener('webOSRelaunch', launchHandlerCallback);
|
||||
},
|
||||
setKeyDownHandler: (callback: () => void) => {
|
||||
document.removeEventListener('keydown', keyDownEventHandler);
|
||||
|
||||
keyDownEventHandler = callback;
|
||||
document.addEventListener('keydown', keyDownEventHandler);
|
||||
},
|
||||
setKeyUpHandler: (callback: () => void) => {
|
||||
document.removeEventListener('keyup', keyUpEventHandler);
|
||||
|
||||
keyUpEventHandler = callback;
|
||||
document.addEventListener('keyup', keyUpEventHandler);
|
||||
},
|
||||
loadPage: loadPage
|
||||
};
|
||||
|
||||
document.addEventListener('webOSLaunch', launchHandlerCallback);
|
||||
document.addEventListener('webOSRelaunch', launchHandlerCallback);
|
||||
document.addEventListener('keydown', keyDownEventHandler);
|
||||
document.addEventListener('keyup', keyUpEventHandler);
|
||||
loadPage('./main_window/index.html');
|
||||
|
|
|
@ -109,6 +109,7 @@ try {
|
|||
};
|
||||
|
||||
const launchHandler = () => {
|
||||
// Launch handler not supported in simulator due to JSON parsing errors of launch parameters
|
||||
const params = window.webOSDev.launchParams();
|
||||
logger.info(`Main: (Re)launching FCast Receiver with args: ${JSON.stringify(params)}`);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import 'common/main/Renderer';
|
||||
import { keyDownEventHandler, keyUpEventHandler } from 'common/main/Renderer';
|
||||
import { RemoteKeyCode } from 'lib/common';
|
||||
import * as common from 'lib/common';
|
||||
|
||||
|
@ -29,6 +29,9 @@ backgroundVideo.onplaying = () => {
|
|||
backgroundVideo.onplaying = null;
|
||||
};
|
||||
|
||||
window.parent.webOSApp.setKeyDownHandler(keyDownEventHandler);
|
||||
window.parent.webOSApp.setKeyUpHandler(keyUpEventHandler);
|
||||
|
||||
export function onQRCodeRendered() {
|
||||
qrCodeRendered = true;
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@ import {
|
|||
formatDuration,
|
||||
skipBack,
|
||||
skipForward,
|
||||
keyDownEventHandler,
|
||||
keyUpEventHandler,
|
||||
} from 'common/player/Renderer';
|
||||
import { RemoteKeyCode } from 'lib/common';
|
||||
import * as common from 'lib/common';
|
||||
|
@ -28,6 +30,9 @@ const captionsBaseHeightCollapsed = 150;
|
|||
const captionsBaseHeightExpanded = 320;
|
||||
const captionsLineHeight = 68;
|
||||
|
||||
window.parent.webOSApp.setKeyDownHandler(keyDownEventHandler);
|
||||
window.parent.webOSApp.setKeyUpHandler(keyUpEventHandler);
|
||||
|
||||
export function targetPlayerCtrlStateUpdate(event: PlayerControlEvent): boolean {
|
||||
let handledCase = false;
|
||||
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
import { PlayerControlEvent, playerCtrlStateUpdate, onPlay, onPlayPlaylist, setPlaylistItem, playlistIndex } from 'common/viewer/Renderer';
|
||||
import { PlayerControlEvent, playerCtrlStateUpdate, onPlay, onPlayPlaylist, setPlaylistItem, playlistIndex, keyDownEventHandler, keyUpEventHandler } from 'common/viewer/Renderer';
|
||||
import { RemoteKeyCode } from 'lib/common';
|
||||
import * as common from 'lib/common';
|
||||
|
||||
window.parent.webOSApp.setKeyDownHandler(keyDownEventHandler);
|
||||
window.parent.webOSApp.setKeyUpHandler(keyUpEventHandler);
|
||||
|
||||
export function targetPlayerCtrlStateUpdate(event: PlayerControlEvent): boolean {
|
||||
let handledCase = false;
|
||||
return handledCase;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue