@epicgames-ps/lib-pixelstreamingfrontend-ue5.5 1.2.4 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -2
- package/dist/cjs/AFK/AFKController.js +2 -2
- package/dist/cjs/AFK/AFKController.js.map +1 -1
- package/dist/cjs/Config/Config.js +19 -0
- package/dist/cjs/Config/Config.js.map +1 -1
- package/dist/cjs/DataChannel/DataChannelController.js +2 -2
- package/dist/cjs/DataChannel/DataChannelController.js.map +1 -1
- package/dist/cjs/DataChannel/DataChannelSender.js +2 -2
- package/dist/cjs/DataChannel/DataChannelSender.js.map +1 -1
- package/dist/cjs/Inputs/GamepadController.js +5 -6
- package/dist/cjs/Inputs/GamepadController.js.map +1 -1
- package/dist/cjs/Inputs/InputClassesFactory.js +3 -3
- package/dist/cjs/Inputs/InputClassesFactory.js.map +1 -1
- package/dist/cjs/Inputs/KeyCodes.js +13 -1
- package/dist/cjs/Inputs/KeyCodes.js.map +1 -1
- package/dist/cjs/Inputs/KeyboardController.js +12 -0
- package/dist/cjs/Inputs/KeyboardController.js.map +1 -1
- package/dist/cjs/Inputs/MouseController.js +2 -1
- package/dist/cjs/Inputs/MouseController.js.map +1 -1
- package/dist/cjs/Inputs/MouseControllerHovering.js +71 -6
- package/dist/cjs/Inputs/MouseControllerHovering.js.map +1 -1
- package/dist/cjs/Inputs/MouseControllerLocked.js +18 -3
- package/dist/cjs/Inputs/MouseControllerLocked.js.map +1 -1
- package/dist/cjs/PeerConnectionController/PeerConnectionController.js +71 -72
- package/dist/cjs/PeerConnectionController/PeerConnectionController.js.map +1 -1
- package/dist/cjs/PixelStreaming/PixelStreaming.js +25 -0
- package/dist/cjs/PixelStreaming/PixelStreaming.js.map +1 -1
- package/dist/cjs/UeInstanceMessage/SendMessageController.js +2 -3
- package/dist/cjs/UeInstanceMessage/SendMessageController.js.map +1 -1
- package/dist/cjs/UeInstanceMessage/StreamMessageController.js.map +1 -1
- package/dist/cjs/VideoPlayer/StreamController.js +3 -3
- package/dist/cjs/VideoPlayer/StreamController.js.map +1 -1
- package/dist/cjs/VideoPlayer/VideoPlayer.js +17 -6
- package/dist/cjs/VideoPlayer/VideoPlayer.js.map +1 -1
- package/dist/cjs/WebRtcPlayer/WebRtcPlayerController.js +2 -2
- package/dist/cjs/WebRtcPlayer/WebRtcPlayerController.js.map +1 -1
- package/dist/cjs/WebXR/WebXRController.js +14 -11
- package/dist/cjs/WebXR/WebXRController.js.map +1 -1
- package/dist/esm/AFK/AFKController.js +2 -2
- package/dist/esm/AFK/AFKController.js.map +1 -1
- package/dist/esm/Config/Config.js +19 -0
- package/dist/esm/Config/Config.js.map +1 -1
- package/dist/esm/DataChannel/DataChannelController.js +2 -2
- package/dist/esm/DataChannel/DataChannelController.js.map +1 -1
- package/dist/esm/DataChannel/DataChannelSender.js +2 -2
- package/dist/esm/DataChannel/DataChannelSender.js.map +1 -1
- package/dist/esm/Inputs/GamepadController.js +5 -6
- package/dist/esm/Inputs/GamepadController.js.map +1 -1
- package/dist/esm/Inputs/InputClassesFactory.js +3 -3
- package/dist/esm/Inputs/InputClassesFactory.js.map +1 -1
- package/dist/esm/Inputs/KeyCodes.js +13 -1
- package/dist/esm/Inputs/KeyCodes.js.map +1 -1
- package/dist/esm/Inputs/KeyboardController.js +12 -0
- package/dist/esm/Inputs/KeyboardController.js.map +1 -1
- package/dist/esm/Inputs/MouseController.js +2 -1
- package/dist/esm/Inputs/MouseController.js.map +1 -1
- package/dist/esm/Inputs/MouseControllerHovering.js +71 -6
- package/dist/esm/Inputs/MouseControllerHovering.js.map +1 -1
- package/dist/esm/Inputs/MouseControllerLocked.js +18 -3
- package/dist/esm/Inputs/MouseControllerLocked.js.map +1 -1
- package/dist/esm/PeerConnectionController/PeerConnectionController.js +71 -72
- package/dist/esm/PeerConnectionController/PeerConnectionController.js.map +1 -1
- package/dist/esm/PixelStreaming/PixelStreaming.js +25 -0
- package/dist/esm/PixelStreaming/PixelStreaming.js.map +1 -1
- package/dist/esm/UeInstanceMessage/SendMessageController.js +2 -3
- package/dist/esm/UeInstanceMessage/SendMessageController.js.map +1 -1
- package/dist/esm/UeInstanceMessage/StreamMessageController.js.map +1 -1
- package/dist/esm/VideoPlayer/StreamController.js +3 -3
- package/dist/esm/VideoPlayer/StreamController.js.map +1 -1
- package/dist/esm/VideoPlayer/VideoPlayer.js +18 -7
- package/dist/esm/VideoPlayer/VideoPlayer.js.map +1 -1
- package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js +2 -2
- package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js.map +1 -1
- package/dist/esm/WebXR/WebXRController.js +14 -11
- package/dist/esm/WebXR/WebXRController.js.map +1 -1
- package/dist/types/Config/Config.d.ts +8 -0
- package/dist/types/Inputs/InputClassesFactory.d.ts +1 -1
- package/dist/types/Inputs/MouseController.d.ts +3 -1
- package/dist/types/Inputs/MouseControllerHovering.d.ts +10 -1
- package/dist/types/Inputs/MouseControllerLocked.d.ts +2 -1
- package/dist/types/PeerConnectionController/PeerConnectionController.d.ts +3 -3
- package/dist/types/PixelStreaming/PixelStreaming.d.ts +9 -1
- package/dist/types/UeInstanceMessage/StreamMessageController.d.ts +3 -3
- package/dist/types/VideoPlayer/VideoPlayer.d.ts +1 -0
- package/eslint.config.mjs +1 -8
- package/package.json +4 -4
- package/src/AFK/AFKController.ts +2 -2
- package/src/Config/Config.ts +61 -9
- package/src/DataChannel/DataChannelController.ts +2 -2
- package/src/DataChannel/DataChannelSender.ts +2 -2
- package/src/Inputs/GamepadController.ts +5 -6
- package/src/Inputs/InputClassesFactory.ts +5 -3
- package/src/Inputs/KeyCodes.ts +13 -1
- package/src/Inputs/KeyboardController.ts +11 -1
- package/src/Inputs/MouseController.ts +5 -1
- package/src/Inputs/MouseControllerHovering.ts +79 -6
- package/src/Inputs/MouseControllerLocked.ts +20 -3
- package/src/PeerConnectionController/PeerConnectionController.ts +22 -22
- package/src/PixelStreaming/PixelStreaming.ts +26 -0
- package/src/UeInstanceMessage/SendMessageController.ts +2 -3
- package/src/UeInstanceMessage/StreamMessageController.ts +3 -3
- package/src/VideoPlayer/StreamController.ts +3 -3
- package/src/VideoPlayer/VideoPlayer.test.ts +141 -0
- package/src/VideoPlayer/VideoPlayer.ts +26 -10
- package/src/WebRtcPlayer/WebRtcPlayerController.ts +2 -2
- package/src/WebXR/WebXRController.ts +15 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebXRController.js","sourceRoot":"","sources":["../../../src/WebXR/WebXRController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebXRController.js","sourceRoot":"","sources":["../../../src/WebXR/WebXRController.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,9 +24,11 @@ export declare class Flags {
|
|
|
24
24
|
static UseCamera: "UseCamera";
|
|
25
25
|
static KeyboardInput: "KeyboardInput";
|
|
26
26
|
static MouseInput: "MouseInput";
|
|
27
|
+
static MouseDoubleClickAutoRelease: "MouseDoubleClickAutoRelease";
|
|
27
28
|
static TouchInput: "TouchInput";
|
|
28
29
|
static GamepadInput: "GamepadInput";
|
|
29
30
|
static XRControllerInput: "XRControllerInput";
|
|
31
|
+
static AutoEnterVR: "AutoEnterVR";
|
|
30
32
|
static WaitForStreamer: "WaitForStreamer";
|
|
31
33
|
static HideUI: "HideUI";
|
|
32
34
|
static EnableCaptureTimeExt: "EnableCaptureTimeExt";
|
|
@@ -53,6 +55,7 @@ export declare class NumericParameters {
|
|
|
53
55
|
static MaxReconnectAttempts: "MaxReconnectAttempts";
|
|
54
56
|
static StreamerAutoJoinInterval: "StreamerAutoJoinInterval";
|
|
55
57
|
static KeepaliveDelay: "KeepaliveDelay";
|
|
58
|
+
static ViewportResScale: "ViewportResScale";
|
|
56
59
|
}
|
|
57
60
|
export type NumericParametersKeys = Exclude<keyof typeof NumericParameters, 'prototype'>;
|
|
58
61
|
export type NumericParametersIds = (typeof NumericParameters)[NumericParametersKeys];
|
|
@@ -128,6 +131,11 @@ export declare class Config {
|
|
|
128
131
|
* @returns The numeric value stored in the parameter with the passed id.
|
|
129
132
|
*/
|
|
130
133
|
getNumericSettingValue(id: NumericParametersIds): number;
|
|
134
|
+
/**
|
|
135
|
+
* @param id The id of the numeric setting to check for.
|
|
136
|
+
* @returns True if the numeric setting is registered in this Config.
|
|
137
|
+
*/
|
|
138
|
+
hasNumericSetting(id: NumericParametersIds): boolean;
|
|
131
139
|
/**
|
|
132
140
|
* @param id The id of the text setting we are interested in getting a value for.
|
|
133
141
|
* @returns The text value stored in the parameter with the passed id.
|
|
@@ -28,7 +28,7 @@ export declare class InputClassesFactory {
|
|
|
28
28
|
* register mouse events based on a control type
|
|
29
29
|
* @param controlScheme - if the mouse is either hovering or locked
|
|
30
30
|
*/
|
|
31
|
-
registerMouse(controlScheme: ControlSchemeType): MouseController;
|
|
31
|
+
registerMouse(controlScheme: ControlSchemeType, config: Config): MouseController;
|
|
32
32
|
/**
|
|
33
33
|
* register touch events
|
|
34
34
|
* @param fakeMouseTouch - the faked mouse touch event
|
|
@@ -3,6 +3,7 @@ import { InputCoordTranslator } from '../Util/InputCoordTranslator';
|
|
|
3
3
|
import { VideoPlayer } from '../VideoPlayer/VideoPlayer';
|
|
4
4
|
import type { ActiveKeys } from './InputClassesFactory';
|
|
5
5
|
import { IInputController } from './IInputController';
|
|
6
|
+
import { Config } from '../Config/Config';
|
|
6
7
|
/**
|
|
7
8
|
* Extra types for Document and WheelEvent
|
|
8
9
|
*/
|
|
@@ -24,9 +25,10 @@ export declare class MouseController implements IInputController {
|
|
|
24
25
|
streamMessageController: StreamMessageController;
|
|
25
26
|
coordinateConverter: InputCoordTranslator;
|
|
26
27
|
activeKeys: ActiveKeys;
|
|
28
|
+
config: Config;
|
|
27
29
|
onEnterListener: (event: MouseEvent) => void;
|
|
28
30
|
onLeaveListener: (event: MouseEvent) => void;
|
|
29
|
-
constructor(streamMessageController: StreamMessageController, videoPlayer: VideoPlayer, coordinateConverter: InputCoordTranslator, activeKeys: ActiveKeys);
|
|
31
|
+
constructor(streamMessageController: StreamMessageController, videoPlayer: VideoPlayer, coordinateConverter: InputCoordTranslator, activeKeys: ActiveKeys, config: Config);
|
|
30
32
|
register(): void;
|
|
31
33
|
unregister(): void;
|
|
32
34
|
registerMouseEnterAndLeaveEvents(): void;
|
|
@@ -3,6 +3,7 @@ import { InputCoordTranslator } from '../Util/InputCoordTranslator';
|
|
|
3
3
|
import { VideoPlayer } from '../VideoPlayer/VideoPlayer';
|
|
4
4
|
import type { ActiveKeys } from './InputClassesFactory';
|
|
5
5
|
import { MouseController } from './MouseController';
|
|
6
|
+
import { Config } from '../Config/Config';
|
|
6
7
|
/**
|
|
7
8
|
* A mouse controller that allows the mouse to freely float over the video document.
|
|
8
9
|
*/
|
|
@@ -14,9 +15,17 @@ export declare class MouseControllerHovering extends MouseController {
|
|
|
14
15
|
onMouseWheelListener: (event: WheelEvent) => void;
|
|
15
16
|
onMouseMoveListener: (event: MouseEvent) => void;
|
|
16
17
|
onContextMenuListener: (event: MouseEvent) => void;
|
|
17
|
-
|
|
18
|
+
private pressedButtons;
|
|
19
|
+
constructor(streamMessageController: StreamMessageController, videoPlayer: VideoPlayer, coordinateConverter: InputCoordTranslator, activeKeys: ActiveKeys, config: Config);
|
|
18
20
|
register(): void;
|
|
19
21
|
unregister(): void;
|
|
22
|
+
private startCapturing;
|
|
23
|
+
private stopCapturing;
|
|
24
|
+
/**
|
|
25
|
+
* Compute (offsetX, offsetY) relative to the video element from a window-
|
|
26
|
+
* level event whose `target` may be any other element on the page.
|
|
27
|
+
*/
|
|
28
|
+
private offsetFromVideo;
|
|
20
29
|
private onMouseDown;
|
|
21
30
|
private onMouseUp;
|
|
22
31
|
private onContextMenu;
|
|
@@ -3,6 +3,7 @@ import { InputCoordTranslator, TranslatedCoordUnsigned } from '../Util/InputCoor
|
|
|
3
3
|
import { VideoPlayer } from '../VideoPlayer/VideoPlayer';
|
|
4
4
|
import type { ActiveKeys } from './InputClassesFactory';
|
|
5
5
|
import { MouseController } from './MouseController';
|
|
6
|
+
import { Config } from '../Config/Config';
|
|
6
7
|
/**
|
|
7
8
|
* A mouse controller that locks the mouse to the video document and prevents it from leaving the window
|
|
8
9
|
*/
|
|
@@ -18,7 +19,7 @@ export declare class MouseControllerLocked extends MouseController {
|
|
|
18
19
|
onMouseDblClickListener: (event: MouseEvent) => void;
|
|
19
20
|
onMouseWheelListener: (event: WheelEvent) => void;
|
|
20
21
|
onMouseMoveListener: (event: MouseEvent) => void;
|
|
21
|
-
constructor(streamMessageController: StreamMessageController, videoPlayer: VideoPlayer, coordinateConverter: InputCoordTranslator, activeKeys: ActiveKeys);
|
|
22
|
+
constructor(streamMessageController: StreamMessageController, videoPlayer: VideoPlayer, coordinateConverter: InputCoordTranslator, activeKeys: ActiveKeys, config: Config);
|
|
22
23
|
register(): void;
|
|
23
24
|
unregister(): void;
|
|
24
25
|
private onRequestLock;
|
|
@@ -25,11 +25,11 @@ export declare class PeerConnectionController {
|
|
|
25
25
|
* Create an offer for the Web RTC handshake and send the offer to the signaling server via websocket
|
|
26
26
|
* @param offerOptions - RTC Offer Options
|
|
27
27
|
*/
|
|
28
|
-
createOffer(offerOptions: RTCOfferOptions, config: Config):
|
|
28
|
+
createOffer(offerOptions: RTCOfferOptions, config: Config): void;
|
|
29
29
|
/**
|
|
30
30
|
* Receive offer from UE side and process it as the remote description of this peer connection
|
|
31
31
|
*/
|
|
32
|
-
receiveOffer(offer: RTCSessionDescriptionInit, config: Config):
|
|
32
|
+
receiveOffer(offer: RTCSessionDescriptionInit, config: Config): void;
|
|
33
33
|
/**
|
|
34
34
|
* Set the Remote Descriptor from the signaling server to the RTC Peer Connection
|
|
35
35
|
* @param answer - RTC Session Descriptor from the Signaling Server
|
|
@@ -60,7 +60,7 @@ export declare class PeerConnectionController {
|
|
|
60
60
|
* When the RTC Peer Connection Signaling server state Changes
|
|
61
61
|
* @param state - Signaling Server State Change Event
|
|
62
62
|
*/
|
|
63
|
-
handleSignalStateChange(
|
|
63
|
+
handleSignalStateChange(_state: Event): void;
|
|
64
64
|
/**
|
|
65
65
|
* Handle when the Ice Connection State Changes
|
|
66
66
|
* @param state - Ice Connection State
|
|
@@ -150,6 +150,14 @@ export declare class PixelStreaming {
|
|
|
150
150
|
* Handle when the Video has been Initialized
|
|
151
151
|
*/
|
|
152
152
|
_onVideoInitialized(): void;
|
|
153
|
+
/**
|
|
154
|
+
* If the AutoEnterVR flag is set and an immersive-vr session is supported,
|
|
155
|
+
* request the WebXR session. Browsers typically require a user gesture for
|
|
156
|
+
* `requestSession`; if no gesture is currently active the request will be
|
|
157
|
+
* rejected and a warning is logged. Callers that need a guaranteed entry
|
|
158
|
+
* (e.g. AutoConnect from a fresh page load) should still wire up a button.
|
|
159
|
+
*/
|
|
160
|
+
private checkForAutoEnterVR;
|
|
153
161
|
/**
|
|
154
162
|
* Set up functionality to happen when receiving latency test results
|
|
155
163
|
* @param latency - latency test results object
|
|
@@ -280,6 +288,6 @@ export declare class PixelStreaming {
|
|
|
280
288
|
*/
|
|
281
289
|
get webXrController(): WebXRController;
|
|
282
290
|
registerMessageHandler(name: string, direction: MessageDirection, handler?: (data: ArrayBuffer | Array<number | string>) => void): void;
|
|
283
|
-
get toStreamerHandlers(): Map<string, (messageData?: Array<number | string>
|
|
291
|
+
get toStreamerHandlers(): Map<string, (messageData?: Array<number | string>) => void>;
|
|
284
292
|
isReconnecting(): boolean;
|
|
285
293
|
}
|
|
@@ -3,8 +3,8 @@ export declare class ToStreamerMessage {
|
|
|
3
3
|
structure?: Array<string>;
|
|
4
4
|
}
|
|
5
5
|
export declare class StreamMessageController {
|
|
6
|
-
toStreamerHandlers: Map<string, (messageData?: Array<number | string>
|
|
7
|
-
fromStreamerHandlers: Map<string, (messageType: string, messageData?: ArrayBuffer
|
|
6
|
+
toStreamerHandlers: Map<string, (messageData?: Array<number | string>) => void>;
|
|
7
|
+
fromStreamerHandlers: Map<string, (messageType: string, messageData?: ArrayBuffer) => void>;
|
|
8
8
|
toStreamerMessages: Map<string, ToStreamerMessage>;
|
|
9
9
|
fromStreamerMessages: Map<number, string>;
|
|
10
10
|
constructor();
|
|
@@ -18,7 +18,7 @@ export declare class StreamMessageController {
|
|
|
18
18
|
* @param messageType - the type of the message
|
|
19
19
|
* @param messageHandler - the function or method to be executed when this handler is called
|
|
20
20
|
*/
|
|
21
|
-
registerMessageHandler(messageDirection: MessageDirection, messageType: string, messageHandler: (messageData?: unknown
|
|
21
|
+
registerMessageHandler(messageDirection: MessageDirection, messageType: string, messageHandler: (messageData?: unknown) => void): void;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* The enum for message directions
|
package/eslint.config.mjs
CHANGED
|
@@ -13,6 +13,7 @@ export default tseslint.config(
|
|
|
13
13
|
parser: tseslint.parser,
|
|
14
14
|
parserOptions: {
|
|
15
15
|
project: 'tsconfig.json',
|
|
16
|
+
tsconfigRootDir: import.meta.dirname,
|
|
16
17
|
},
|
|
17
18
|
},
|
|
18
19
|
files: ["src/**/*.ts"],
|
|
@@ -26,17 +27,9 @@ export default tseslint.config(
|
|
|
26
27
|
"@typescript-eslint/no-unsafe-assignment": "off",
|
|
27
28
|
"@typescript-eslint/no-unsafe-argument": "off",
|
|
28
29
|
"@typescript-eslint/no-unsafe-return": "off",
|
|
29
|
-
"@typescript-eslint/no-floating-promises": "off",
|
|
30
30
|
"@typescript-eslint/restrict-plus-operands": "off",
|
|
31
31
|
"@typescript-eslint/unbound-method": "off",
|
|
32
|
-
"@typescript-eslint/no-duplicate-type-constituents": "off",
|
|
33
|
-
"@typescript-eslint/no-redundant-type-constituents": "off",
|
|
34
32
|
"@typescript-eslint/restrict-template-expressions": "off",
|
|
35
|
-
"@typescript-eslint/no-unnecessary-type-assertion": "off",
|
|
36
|
-
"@typescript-eslint/no-array-delete": "off",
|
|
37
|
-
"@typescript-eslint/no-unsafe-enum-comparison": "off",
|
|
38
|
-
"@typescript-eslint/require-await": "off",
|
|
39
|
-
"@typescript-eslint/no-base-to-string": "off",
|
|
40
33
|
"no-unused-vars": "off",
|
|
41
34
|
"@typescript-eslint/no-unused-vars": [
|
|
42
35
|
"error",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epicgames-ps/lib-pixelstreamingfrontend-ue5.5",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Frontend library for Unreal Engine 5.5 Pixel Streaming",
|
|
5
5
|
"main": "dist/cjs/pixelstreamingfrontend.js",
|
|
6
6
|
"module": "dist/esm/pixelstreamingfrontend.js",
|
|
@@ -22,18 +22,18 @@
|
|
|
22
22
|
"@types/jest": "^29.5.14",
|
|
23
23
|
"@types/webxr": "^0.5.21",
|
|
24
24
|
"cspell": "^8.17.3",
|
|
25
|
-
"eslint": "^9.
|
|
25
|
+
"eslint": "^9.39.0",
|
|
26
26
|
"jest": "^29.7.0",
|
|
27
27
|
"jest-environment-jsdom": "^29.7.0",
|
|
28
28
|
"nodemon": "^3.1.9",
|
|
29
29
|
"rimraf": "^6.0.1",
|
|
30
30
|
"ts-jest": "^29.2.5",
|
|
31
31
|
"typescript": "^5.7.3",
|
|
32
|
-
"typescript-eslint": "
|
|
32
|
+
"typescript-eslint": "8.57.2",
|
|
33
33
|
"@types/node": "^22.14.0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@epicgames-ps/lib-pixelstreamingcommon-ue5.5": "^0.3.
|
|
36
|
+
"@epicgames-ps/lib-pixelstreamingcommon-ue5.5": "^0.3.3",
|
|
37
37
|
"sdp": "^3.2.0"
|
|
38
38
|
},
|
|
39
39
|
"repository": {
|
package/src/AFK/AFKController.ts
CHANGED
|
@@ -28,7 +28,7 @@ export class AFKController {
|
|
|
28
28
|
this.pixelStreaming = pixelStreaming;
|
|
29
29
|
this.onDismissAfk = onDismissAfk;
|
|
30
30
|
this.onAFKTimedOutCallback = () => {
|
|
31
|
-
|
|
31
|
+
Logger.Warning('AFK timed out, did you want to override this callback?');
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -120,7 +120,7 @@ export class AFKController {
|
|
|
120
120
|
// reset our countDown interval accordingly
|
|
121
121
|
this.countDownTimer = setInterval(() => {
|
|
122
122
|
this.countDown--;
|
|
123
|
-
if (this.countDown
|
|
123
|
+
if (this.countDown === 0) {
|
|
124
124
|
// The user failed to click so hide the overlay and disconnect them.
|
|
125
125
|
this.pixelStreaming.dispatchEvent(new AfkTimedOutEvent());
|
|
126
126
|
this.onAFKTimedOutCallback();
|
package/src/Config/Config.ts
CHANGED
|
@@ -30,9 +30,11 @@ export class Flags {
|
|
|
30
30
|
static UseCamera = 'UseCamera' as const;
|
|
31
31
|
static KeyboardInput = 'KeyboardInput' as const;
|
|
32
32
|
static MouseInput = 'MouseInput' as const;
|
|
33
|
+
static MouseDoubleClickAutoRelease = 'MouseDoubleClickAutoRelease' as const;
|
|
33
34
|
static TouchInput = 'TouchInput' as const;
|
|
34
35
|
static GamepadInput = 'GamepadInput' as const;
|
|
35
36
|
static XRControllerInput = 'XRControllerInput' as const;
|
|
37
|
+
static AutoEnterVR = 'AutoEnterVR' as const;
|
|
36
38
|
static WaitForStreamer = 'WaitForStreamer' as const;
|
|
37
39
|
static HideUI = 'HideUI' as const;
|
|
38
40
|
static EnableCaptureTimeExt = 'EnableCaptureTimeExt' as const;
|
|
@@ -63,6 +65,7 @@ export class NumericParameters {
|
|
|
63
65
|
static MaxReconnectAttempts = 'MaxReconnectAttempts' as const;
|
|
64
66
|
static StreamerAutoJoinInterval = 'StreamerAutoJoinInterval' as const;
|
|
65
67
|
static KeepaliveDelay = 'KeepaliveDelay' as const;
|
|
68
|
+
static ViewportResScale = 'ViewportResScale' as const;
|
|
66
69
|
}
|
|
67
70
|
|
|
68
71
|
export type NumericParametersKeys = Exclude<keyof typeof NumericParameters, 'prototype'>;
|
|
@@ -191,11 +194,11 @@ export class Config {
|
|
|
191
194
|
settings && Object.prototype.hasOwnProperty.call(settings, TextParameters.SignallingServerUrl)
|
|
192
195
|
? settings[TextParameters.SignallingServerUrl]
|
|
193
196
|
: (location.protocol === 'https:' ? 'wss://' : 'ws://') +
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
197
|
+
window.location.hostname +
|
|
198
|
+
// for readability, we omit the port if it's 80
|
|
199
|
+
(window.location.port === '80' || window.location.port === ''
|
|
200
|
+
? ''
|
|
201
|
+
: `:${window.location.port}`),
|
|
199
202
|
useUrlParams
|
|
200
203
|
)
|
|
201
204
|
);
|
|
@@ -280,7 +283,7 @@ export class Config {
|
|
|
280
283
|
'Preferred Quality',
|
|
281
284
|
'The preferred quality of the stream (only applicable when using the SFU)',
|
|
282
285
|
settings && Object.prototype.hasOwnProperty.call(settings, OptionParameters.PreferredQuality)
|
|
283
|
-
? settings[OptionParameters.PreferredQuality]
|
|
286
|
+
? settings[OptionParameters.PreferredQuality]
|
|
284
287
|
: 'Default',
|
|
285
288
|
['Default'],
|
|
286
289
|
useUrlParams
|
|
@@ -502,6 +505,19 @@ export class Config {
|
|
|
502
505
|
)
|
|
503
506
|
);
|
|
504
507
|
|
|
508
|
+
this.flags.set(
|
|
509
|
+
Flags.MouseDoubleClickAutoRelease,
|
|
510
|
+
new SettingFlag(
|
|
511
|
+
Flags.MouseDoubleClickAutoRelease,
|
|
512
|
+
'Auto release after double-click',
|
|
513
|
+
'After sending a MouseDouble message, also send a matching MouseUp so the streamer’s pressed-button state stays balanced. Disable to restore pre-fix behaviour if your project handles the doubleclick release itself.',
|
|
514
|
+
settings && Object.prototype.hasOwnProperty.call(settings, Flags.MouseDoubleClickAutoRelease)
|
|
515
|
+
? settings[Flags.MouseDoubleClickAutoRelease]
|
|
516
|
+
: true,
|
|
517
|
+
useUrlParams
|
|
518
|
+
)
|
|
519
|
+
);
|
|
520
|
+
|
|
505
521
|
this.flags.set(
|
|
506
522
|
Flags.TouchInput,
|
|
507
523
|
new SettingFlag(
|
|
@@ -541,6 +557,19 @@ export class Config {
|
|
|
541
557
|
)
|
|
542
558
|
);
|
|
543
559
|
|
|
560
|
+
this.flags.set(
|
|
561
|
+
Flags.AutoEnterVR,
|
|
562
|
+
new SettingFlag(
|
|
563
|
+
Flags.AutoEnterVR,
|
|
564
|
+
'Auto enter VR',
|
|
565
|
+
'When the video is ready and an immersive-vr session is supported, request the WebXR session automatically. May fail if the browser requires a user gesture to start a WebXR session.',
|
|
566
|
+
settings && Object.prototype.hasOwnProperty.call(settings, Flags.AutoEnterVR)
|
|
567
|
+
? settings[Flags.AutoEnterVR]
|
|
568
|
+
: false,
|
|
569
|
+
useUrlParams
|
|
570
|
+
)
|
|
571
|
+
);
|
|
572
|
+
|
|
544
573
|
this.flags.set(
|
|
545
574
|
Flags.WaitForStreamer,
|
|
546
575
|
new SettingFlag(
|
|
@@ -621,7 +650,7 @@ export class Config {
|
|
|
621
650
|
0 /*min*/,
|
|
622
651
|
999 /*max*/,
|
|
623
652
|
settings &&
|
|
624
|
-
|
|
653
|
+
Object.prototype.hasOwnProperty.call(settings, NumericParameters.MaxReconnectAttempts)
|
|
625
654
|
? settings[NumericParameters.MaxReconnectAttempts]
|
|
626
655
|
: 3 /*value*/,
|
|
627
656
|
useUrlParams
|
|
@@ -772,7 +801,7 @@ export class Config {
|
|
|
772
801
|
500 /*min*/,
|
|
773
802
|
900000 /*max*/,
|
|
774
803
|
settings &&
|
|
775
|
-
|
|
804
|
+
Object.prototype.hasOwnProperty.call(settings, NumericParameters.StreamerAutoJoinInterval)
|
|
776
805
|
? settings[NumericParameters.StreamerAutoJoinInterval]
|
|
777
806
|
: 3000 /*value*/,
|
|
778
807
|
useUrlParams
|
|
@@ -793,6 +822,21 @@ export class Config {
|
|
|
793
822
|
useUrlParams
|
|
794
823
|
)
|
|
795
824
|
);
|
|
825
|
+
|
|
826
|
+
this.numericParameters.set(
|
|
827
|
+
NumericParameters.ViewportResScale,
|
|
828
|
+
new SettingNumber(
|
|
829
|
+
NumericParameters.ViewportResScale,
|
|
830
|
+
'Viewport Resolution Scale',
|
|
831
|
+
'Scale factor for viewport resolution when MatchViewportResolution is enabled. 1.0 = 100%, 0.5 = 50%, 2.0 = 200%.',
|
|
832
|
+
0.1 /*min*/,
|
|
833
|
+
3.0 /*max*/,
|
|
834
|
+
settings && Object.prototype.hasOwnProperty.call(settings, NumericParameters.ViewportResScale)
|
|
835
|
+
? settings[NumericParameters.ViewportResScale]
|
|
836
|
+
: 1.0 /*value*/,
|
|
837
|
+
useUrlParams
|
|
838
|
+
)
|
|
839
|
+
);
|
|
796
840
|
}
|
|
797
841
|
|
|
798
842
|
/**
|
|
@@ -830,6 +874,14 @@ export class Config {
|
|
|
830
874
|
}
|
|
831
875
|
}
|
|
832
876
|
|
|
877
|
+
/**
|
|
878
|
+
* @param id The id of the numeric setting to check for.
|
|
879
|
+
* @returns True if the numeric setting is registered in this Config.
|
|
880
|
+
*/
|
|
881
|
+
hasNumericSetting(id: NumericParametersIds): boolean {
|
|
882
|
+
return this.numericParameters.has(id);
|
|
883
|
+
}
|
|
884
|
+
|
|
833
885
|
/**
|
|
834
886
|
* @param id The id of the text setting we are interested in getting a value for.
|
|
835
887
|
* @returns The text value stored in the parameter with the passed id.
|
|
@@ -895,7 +947,7 @@ export class Config {
|
|
|
895
947
|
* @returns True if the flag is enabled.
|
|
896
948
|
*/
|
|
897
949
|
isFlagEnabled(id: FlagsIds): boolean {
|
|
898
|
-
return this.flags.get(id).flag
|
|
950
|
+
return this.flags.get(id).flag;
|
|
899
951
|
}
|
|
900
952
|
|
|
901
953
|
/**
|
|
@@ -74,7 +74,7 @@ export class DataChannelController {
|
|
|
74
74
|
*/
|
|
75
75
|
handleOnMessage(event: MessageEvent) {
|
|
76
76
|
// Higher log level to prevent log spam with messages received
|
|
77
|
-
Logger.Info(`Data Channel (${this.label}) message: ${event}`);
|
|
77
|
+
Logger.Info(`Data Channel (${this.label}) message: ${event.type}`);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/**
|
|
@@ -82,7 +82,7 @@ export class DataChannelController {
|
|
|
82
82
|
* @param event - Error Event
|
|
83
83
|
*/
|
|
84
84
|
handleOnError(event: Event) {
|
|
85
|
-
Logger.Info(`Data Channel (${this.label}) error: ${event}`);
|
|
85
|
+
Logger.Info(`Data Channel (${this.label}) error: ${event.type}`);
|
|
86
86
|
this.onError(this.dataChannel?.label, event);
|
|
87
87
|
}
|
|
88
88
|
|
|
@@ -19,7 +19,7 @@ export class DataChannelSender {
|
|
|
19
19
|
canSend(): boolean {
|
|
20
20
|
return (
|
|
21
21
|
this.dataChannelProvider.getDataChannelInstance().dataChannel !== undefined &&
|
|
22
|
-
this.dataChannelProvider.getDataChannelInstance().dataChannel.readyState
|
|
22
|
+
this.dataChannelProvider.getDataChannelInstance().dataChannel.readyState === 'open'
|
|
23
23
|
);
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -31,7 +31,7 @@ export class DataChannelSender {
|
|
|
31
31
|
// reset the afk inactivity
|
|
32
32
|
const dataChannelInstance = this.dataChannelProvider.getDataChannelInstance();
|
|
33
33
|
|
|
34
|
-
if (dataChannelInstance.dataChannel.readyState
|
|
34
|
+
if (dataChannelInstance.dataChannel.readyState === 'open') {
|
|
35
35
|
dataChannelInstance.dataChannel.send(data);
|
|
36
36
|
Logger.Info(`Message Sent: ${new Uint8Array(data)}`);
|
|
37
37
|
this.resetAfkWarningTimerOnDataSend();
|
|
@@ -131,8 +131,7 @@ export class GamepadController implements IInputController {
|
|
|
131
131
|
private onGamepadDisconnected(event: GamepadEvent) {
|
|
132
132
|
const gamepad = event.gamepad;
|
|
133
133
|
const deletedController = this.controllers[gamepad.index];
|
|
134
|
-
|
|
135
|
-
this.controllers = this.controllers.filter((controller) => controller !== undefined);
|
|
134
|
+
this.controllers = this.controllers.filter((_, index) => index !== gamepad.index);
|
|
136
135
|
if (deletedController.id !== undefined) {
|
|
137
136
|
this.streamMessageController.toStreamerHandlers.get('GamepadDisconnected')([
|
|
138
137
|
deletedController.id
|
|
@@ -171,10 +170,10 @@ export class GamepadController implements IInputController {
|
|
|
171
170
|
const previousButton = controller.prevState.buttons[i];
|
|
172
171
|
if (currentButton.pressed) {
|
|
173
172
|
// press
|
|
174
|
-
if (i
|
|
173
|
+
if ((i as GamepadLayout) === GamepadLayout.LeftTrigger) {
|
|
175
174
|
// UEs left analog has a button index of 5
|
|
176
175
|
toStreamerHandlers.get('GamepadAnalog')([controllerId, 5, currentButton.value]);
|
|
177
|
-
} else if (i
|
|
176
|
+
} else if ((i as GamepadLayout) === GamepadLayout.RightTrigger) {
|
|
178
177
|
// UEs right analog has a button index of 6
|
|
179
178
|
toStreamerHandlers.get('GamepadAnalog')([controllerId, 6, currentButton.value]);
|
|
180
179
|
} else {
|
|
@@ -186,10 +185,10 @@ export class GamepadController implements IInputController {
|
|
|
186
185
|
}
|
|
187
186
|
} else if (!currentButton.pressed && previousButton.pressed) {
|
|
188
187
|
// release
|
|
189
|
-
if (i
|
|
188
|
+
if ((i as GamepadLayout) === GamepadLayout.LeftTrigger) {
|
|
190
189
|
// UEs left analog has a button index of 5
|
|
191
190
|
toStreamerHandlers.get('GamepadAnalog')([controllerId, 5, 0]);
|
|
192
|
-
} else if (i
|
|
191
|
+
} else if ((i as GamepadLayout) === GamepadLayout.RightTrigger) {
|
|
193
192
|
// UEs right analog has a button index of 6
|
|
194
193
|
toStreamerHandlers.get('GamepadAnalog')([controllerId, 6, 0]);
|
|
195
194
|
} else {
|
|
@@ -56,7 +56,7 @@ export class InputClassesFactory {
|
|
|
56
56
|
* register mouse events based on a control type
|
|
57
57
|
* @param controlScheme - if the mouse is either hovering or locked
|
|
58
58
|
*/
|
|
59
|
-
registerMouse(controlScheme: ControlSchemeType) {
|
|
59
|
+
registerMouse(controlScheme: ControlSchemeType, config: Config) {
|
|
60
60
|
Logger.Info('Register Mouse Events');
|
|
61
61
|
let mouseController: MouseController;
|
|
62
62
|
if (controlScheme == ControlSchemeType.HoveringMouse) {
|
|
@@ -64,14 +64,16 @@ export class InputClassesFactory {
|
|
|
64
64
|
this.toStreamerMessagesProvider,
|
|
65
65
|
this.videoElementProvider,
|
|
66
66
|
this.coordinateConverter,
|
|
67
|
-
this.activeKeys
|
|
67
|
+
this.activeKeys,
|
|
68
|
+
config
|
|
68
69
|
);
|
|
69
70
|
} else {
|
|
70
71
|
mouseController = new MouseControllerLocked(
|
|
71
72
|
this.toStreamerMessagesProvider,
|
|
72
73
|
this.videoElementProvider,
|
|
73
74
|
this.coordinateConverter,
|
|
74
|
-
this.activeKeys
|
|
75
|
+
this.activeKeys,
|
|
76
|
+
config
|
|
75
77
|
);
|
|
76
78
|
}
|
|
77
79
|
|
package/src/Inputs/KeyCodes.ts
CHANGED
|
@@ -110,5 +110,17 @@ export const CodeToKeyCode: ICodeToKeyCode = Object.freeze({
|
|
|
110
110
|
PageDown: 34,
|
|
111
111
|
Insert: 45,
|
|
112
112
|
Delete: 46,
|
|
113
|
-
ContextMenu: 93
|
|
113
|
+
ContextMenu: 93,
|
|
114
|
+
// macOS Command and Windows Meta keys. The UE side maps key codes 91/92
|
|
115
|
+
// to LeftWindowKey/RightWindowKey (currently routed to EKeys::Invalid in
|
|
116
|
+
// stock UE — Epic-internal ticket UE-228795 enables them). Sending the
|
|
117
|
+
// codes from the frontend is harmless when UE has no binding and lets
|
|
118
|
+
// applications that patch UE handle Cmd/Win shortcuts.
|
|
119
|
+
MetaLeft: 91,
|
|
120
|
+
MetaRight: 92,
|
|
121
|
+
// Legacy KeyboardEvent.code values some browsers historically emitted
|
|
122
|
+
// for the same physical keys. Keep them mapped so we don't drop input
|
|
123
|
+
// on older browsers.
|
|
124
|
+
OSLeft: 91,
|
|
125
|
+
OSRight: 92
|
|
114
126
|
});
|
|
@@ -50,7 +50,7 @@ export class KeyboardController implements IInputController {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
const toStreamerHandlers = this.streamMessageController.toStreamerHandlers;
|
|
53
|
-
toStreamerHandlers.get('KeyDown')?.([this.getKeycode(keyboardEvent)
|
|
53
|
+
toStreamerHandlers.get('KeyDown')?.([this.getKeycode(keyboardEvent), keyboardEvent.repeat ? 1 : 0]);
|
|
54
54
|
const activeKeys = this.activeKeys.getActiveKeys();
|
|
55
55
|
activeKeys.push(keyCode);
|
|
56
56
|
|
|
@@ -130,6 +130,16 @@ export class KeyboardController implements IInputController {
|
|
|
130
130
|
return SpecialKeyCodes.rightControl;
|
|
131
131
|
} else if (keyboardEvent.keyCode === SpecialKeyCodes.alt && keyboardEvent.code === 'AltRight') {
|
|
132
132
|
return SpecialKeyCodes.rightAlt;
|
|
133
|
+
} else if (keyboardEvent.code === 'MetaLeft' || keyboardEvent.code === 'OSLeft') {
|
|
134
|
+
// Browsers disagree on the legacy keyCode for the left Cmd/Win
|
|
135
|
+
// key (Chrome/Safari report 91, Firefox on Mac reports 224).
|
|
136
|
+
// Normalize using `code`. UE LeftWindowKey is 91.
|
|
137
|
+
return CodeToKeyCode['MetaLeft'];
|
|
138
|
+
} else if (keyboardEvent.code === 'MetaRight' || keyboardEvent.code === 'OSRight') {
|
|
139
|
+
// Right Cmd/Win has the same browser disagreement, and on
|
|
140
|
+
// Chrome/Safari it shares keyCode 93 with the ContextMenu key.
|
|
141
|
+
// Normalize to 92 (UE RightWindowKey).
|
|
142
|
+
return CodeToKeyCode['MetaRight'];
|
|
133
143
|
} else {
|
|
134
144
|
return keyboardEvent.keyCode;
|
|
135
145
|
}
|