@epicgames-ps/lib-pixelstreamingfrontend-ue5.5 1.0.3 → 1.1.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 +21 -0
- package/dist/cjs/Config/Config.js +8 -22
- package/dist/cjs/Config/Config.js.map +1 -1
- package/dist/cjs/Inputs/GamepadController.js.map +1 -1
- package/dist/cjs/Inputs/KeyboardController.js +0 -23
- package/dist/cjs/Inputs/KeyboardController.js.map +1 -1
- package/dist/cjs/Inputs/MouseController.js +9 -6
- package/dist/cjs/Inputs/MouseController.js.map +1 -1
- package/dist/cjs/Inputs/MouseControllerHovering.js.map +1 -1
- package/dist/cjs/Inputs/MouseControllerLocked.js +1 -0
- package/dist/cjs/Inputs/MouseControllerLocked.js.map +1 -1
- package/dist/cjs/PixelStreaming/PixelStreaming.js +12 -13
- package/dist/cjs/PixelStreaming/PixelStreaming.js.map +1 -1
- package/dist/cjs/UeInstanceMessage/StreamMessageController.js +4 -0
- package/dist/cjs/UeInstanceMessage/StreamMessageController.js.map +1 -1
- package/dist/cjs/Util/BrowserUtils.js +32 -0
- package/dist/cjs/Util/BrowserUtils.js.map +1 -0
- package/dist/cjs/Util/EventEmitter.js +11 -1
- package/dist/cjs/Util/EventEmitter.js.map +1 -1
- package/dist/cjs/Util/IURLSearchParams.js +1 -0
- package/dist/cjs/Util/IURLSearchParams.js.map +1 -1
- package/dist/cjs/Util/RTCUtils.js +1 -0
- package/dist/cjs/Util/RTCUtils.js.map +1 -1
- package/dist/cjs/VideoPlayer/VideoPlayer.js +12 -1
- package/dist/cjs/VideoPlayer/VideoPlayer.js.map +1 -1
- package/dist/cjs/WebRtcPlayer/WebRtcPlayerController.js +30 -6
- package/dist/cjs/WebRtcPlayer/WebRtcPlayerController.js.map +1 -1
- package/dist/esm/Config/Config.js +8 -22
- package/dist/esm/Config/Config.js.map +1 -1
- package/dist/esm/Inputs/GamepadController.js.map +1 -1
- package/dist/esm/Inputs/KeyboardController.js +0 -23
- package/dist/esm/Inputs/KeyboardController.js.map +1 -1
- package/dist/esm/Inputs/MouseController.js +9 -6
- package/dist/esm/Inputs/MouseController.js.map +1 -1
- package/dist/esm/Inputs/MouseControllerHovering.js.map +1 -1
- package/dist/esm/Inputs/MouseControllerLocked.js +1 -0
- package/dist/esm/Inputs/MouseControllerLocked.js.map +1 -1
- package/dist/esm/PixelStreaming/PixelStreaming.js +12 -13
- package/dist/esm/PixelStreaming/PixelStreaming.js.map +1 -1
- package/dist/esm/UeInstanceMessage/StreamMessageController.js +4 -0
- package/dist/esm/UeInstanceMessage/StreamMessageController.js.map +1 -1
- package/dist/esm/Util/BrowserUtils.js +28 -0
- package/dist/esm/Util/BrowserUtils.js.map +1 -0
- package/dist/esm/Util/EventEmitter.js +9 -0
- package/dist/esm/Util/EventEmitter.js.map +1 -1
- package/dist/esm/Util/IURLSearchParams.js +1 -0
- package/dist/esm/Util/IURLSearchParams.js.map +1 -1
- package/dist/esm/Util/RTCUtils.js +1 -0
- package/dist/esm/Util/RTCUtils.js.map +1 -1
- package/dist/esm/VideoPlayer/VideoPlayer.js +12 -1
- package/dist/esm/VideoPlayer/VideoPlayer.js.map +1 -1
- package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js +31 -7
- package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js.map +1 -1
- package/dist/types/Config/Config.d.ts +1 -0
- package/dist/types/Inputs/KeyboardController.d.ts +0 -2
- package/dist/types/PixelStreaming/PixelStreaming.d.ts +6 -6
- package/dist/types/Util/BrowserUtils.d.ts +3 -0
- package/dist/types/Util/EventEmitter.d.ts +14 -1
- package/dist/types/VideoPlayer/VideoPlayer.d.ts +2 -1
- package/dist/types/WebRtcPlayer/WebRtcPlayerController.d.ts +10 -5
- package/eslint.config.mjs +4 -4
- package/package.json +1 -1
- package/src/Config/Config.ts +18 -28
- package/src/Config/SettingBase.ts +1 -1
- package/src/Config/SettingFlag.ts +1 -1
- package/src/Config/SettingNumber.ts +1 -1
- package/src/Config/SettingOption.ts +2 -2
- package/src/Config/SettingText.ts +1 -1
- package/src/Inputs/GamepadController.ts +1 -2
- package/src/Inputs/IInputController.ts +1 -0
- package/src/Inputs/KeyboardController.ts +0 -31
- package/src/Inputs/MouseController.ts +9 -8
- package/src/Inputs/MouseControllerHovering.ts +1 -0
- package/src/Inputs/MouseControllerLocked.ts +1 -0
- package/src/PixelStreaming/PixelStreaming.ts +13 -19
- package/src/UeInstanceMessage/StreamMessageController.ts +4 -0
- package/src/Util/BrowserUtils.ts +36 -0
- package/src/Util/EventEmitter.ts +19 -0
- package/src/Util/IURLSearchParams.ts +1 -0
- package/src/Util/RTCUtils.ts +1 -0
- package/src/VideoPlayer/VideoPlayer.ts +14 -2
- package/src/WebRtcPlayer/WebRtcPlayerController.ts +34 -7
- package/tsconfig.cjs.json +1 -1
- package/tsconfig.esm.json +1 -1
- package/tsconfig.jest.json +1 -1
- package/dist/cjs/UI/OnScreenKeyboard.js +0 -86
- package/dist/cjs/UI/OnScreenKeyboard.js.map +0 -1
- package/dist/esm/UI/OnScreenKeyboard.js +0 -82
- package/dist/esm/UI/OnScreenKeyboard.js.map +0 -1
- package/dist/types/UI/OnScreenKeyboard.d.ts +0 -30
- package/src/UI/OnScreenKeyboard.ts +0 -102
- /package/{tsconfig.base.json → tsconfig.json} +0 -0
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.OnScreenKeyboard = void 0;
|
|
5
|
-
/**
|
|
6
|
-
* Class for handling on screen keyboard usage
|
|
7
|
-
*/
|
|
8
|
-
class OnScreenKeyboard {
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* @param videoElementParent The div element the video player is injected into
|
|
12
|
-
*/
|
|
13
|
-
constructor(videoElementParent) {
|
|
14
|
-
this.editTextButton = null;
|
|
15
|
-
this.hiddenInput = null;
|
|
16
|
-
if ('ontouchstart' in document.documentElement) {
|
|
17
|
-
this.createOnScreenKeyboardHelpers(videoElementParent);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* An override for unquantizeAndDenormalizeUnsigned
|
|
22
|
-
* @param x the x axis point
|
|
23
|
-
* @param y the y axis point
|
|
24
|
-
* @returns unquantizeAndDenormalizeUnsigned object
|
|
25
|
-
*/
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
27
|
-
unquantizeAndDenormalizeUnsigned(x, y) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Creates on screen keyboard helpers
|
|
32
|
-
* @param videoElementParent The div element the video player i injected into
|
|
33
|
-
*/
|
|
34
|
-
createOnScreenKeyboardHelpers(videoElementParent) {
|
|
35
|
-
if (!this.hiddenInput) {
|
|
36
|
-
this.hiddenInput = document.createElement('input');
|
|
37
|
-
this.hiddenInput.id = 'hiddenInput';
|
|
38
|
-
this.hiddenInput.maxLength = 0;
|
|
39
|
-
// Set inline style so that users not using the UI library
|
|
40
|
-
// will still have this element display correctly
|
|
41
|
-
this.hiddenInput.style.position = 'absolute';
|
|
42
|
-
this.hiddenInput.style.left = '-10%';
|
|
43
|
-
this.hiddenInput.style.width = '0px';
|
|
44
|
-
this.hiddenInput.style.opacity = '0';
|
|
45
|
-
videoElementParent.appendChild(this.hiddenInput);
|
|
46
|
-
}
|
|
47
|
-
if (!this.editTextButton) {
|
|
48
|
-
this.editTextButton = document.createElement('button');
|
|
49
|
-
this.editTextButton.id = 'editTextButton';
|
|
50
|
-
this.editTextButton.innerHTML = 'edit text';
|
|
51
|
-
videoElementParent.appendChild(this.editTextButton);
|
|
52
|
-
// Hide the 'edit text' button.
|
|
53
|
-
this.editTextButton.style.display = 'none';
|
|
54
|
-
this.editTextButton.addEventListener('touchend', (event) => {
|
|
55
|
-
// Show the on-screen keyboard.
|
|
56
|
-
this.hiddenInput.focus();
|
|
57
|
-
event.preventDefault();
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Shows the on screen keyboard
|
|
63
|
-
* @param command the command received via the data channel containing keyboard positions
|
|
64
|
-
*/
|
|
65
|
-
showOnScreenKeyboard(command) {
|
|
66
|
-
if (!this.editTextButton) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (command.showOnScreenKeyboard) {
|
|
70
|
-
// Show the 'edit text' button.
|
|
71
|
-
this.editTextButton.style.display = 'block';
|
|
72
|
-
// Place the 'edit text' button near the UE input widget.
|
|
73
|
-
const pos = this.unquantizeAndDenormalizeUnsigned(command.x, command.y);
|
|
74
|
-
this.editTextButton.style.top = pos.y.toString() + 'px';
|
|
75
|
-
this.editTextButton.style.left = (pos.x - 40).toString() + 'px';
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
// Hide the 'edit text' button.
|
|
79
|
-
this.editTextButton.style.display = 'none';
|
|
80
|
-
// Hide the on-screen keyboard.
|
|
81
|
-
this.hiddenInput.blur();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
exports.OnScreenKeyboard = OnScreenKeyboard;
|
|
86
|
-
//# sourceMappingURL=OnScreenKeyboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OnScreenKeyboard.js","sourceRoot":"","sources":["../../../src/UI/OnScreenKeyboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
2
|
-
/**
|
|
3
|
-
* Class for handling on screen keyboard usage
|
|
4
|
-
*/
|
|
5
|
-
export class OnScreenKeyboard {
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
* @param videoElementParent The div element the video player is injected into
|
|
9
|
-
*/
|
|
10
|
-
constructor(videoElementParent) {
|
|
11
|
-
this.editTextButton = null;
|
|
12
|
-
this.hiddenInput = null;
|
|
13
|
-
if ('ontouchstart' in document.documentElement) {
|
|
14
|
-
this.createOnScreenKeyboardHelpers(videoElementParent);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* An override for unquantizeAndDenormalizeUnsigned
|
|
19
|
-
* @param x the x axis point
|
|
20
|
-
* @param y the y axis point
|
|
21
|
-
* @returns unquantizeAndDenormalizeUnsigned object
|
|
22
|
-
*/
|
|
23
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
24
|
-
unquantizeAndDenormalizeUnsigned(x, y) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Creates on screen keyboard helpers
|
|
29
|
-
* @param videoElementParent The div element the video player i injected into
|
|
30
|
-
*/
|
|
31
|
-
createOnScreenKeyboardHelpers(videoElementParent) {
|
|
32
|
-
if (!this.hiddenInput) {
|
|
33
|
-
this.hiddenInput = document.createElement('input');
|
|
34
|
-
this.hiddenInput.id = 'hiddenInput';
|
|
35
|
-
this.hiddenInput.maxLength = 0;
|
|
36
|
-
// Set inline style so that users not using the UI library
|
|
37
|
-
// will still have this element display correctly
|
|
38
|
-
this.hiddenInput.style.position = 'absolute';
|
|
39
|
-
this.hiddenInput.style.left = '-10%';
|
|
40
|
-
this.hiddenInput.style.width = '0px';
|
|
41
|
-
this.hiddenInput.style.opacity = '0';
|
|
42
|
-
videoElementParent.appendChild(this.hiddenInput);
|
|
43
|
-
}
|
|
44
|
-
if (!this.editTextButton) {
|
|
45
|
-
this.editTextButton = document.createElement('button');
|
|
46
|
-
this.editTextButton.id = 'editTextButton';
|
|
47
|
-
this.editTextButton.innerHTML = 'edit text';
|
|
48
|
-
videoElementParent.appendChild(this.editTextButton);
|
|
49
|
-
// Hide the 'edit text' button.
|
|
50
|
-
this.editTextButton.style.display = 'none';
|
|
51
|
-
this.editTextButton.addEventListener('touchend', (event) => {
|
|
52
|
-
// Show the on-screen keyboard.
|
|
53
|
-
this.hiddenInput.focus();
|
|
54
|
-
event.preventDefault();
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Shows the on screen keyboard
|
|
60
|
-
* @param command the command received via the data channel containing keyboard positions
|
|
61
|
-
*/
|
|
62
|
-
showOnScreenKeyboard(command) {
|
|
63
|
-
if (!this.editTextButton) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (command.showOnScreenKeyboard) {
|
|
67
|
-
// Show the 'edit text' button.
|
|
68
|
-
this.editTextButton.style.display = 'block';
|
|
69
|
-
// Place the 'edit text' button near the UE input widget.
|
|
70
|
-
const pos = this.unquantizeAndDenormalizeUnsigned(command.x, command.y);
|
|
71
|
-
this.editTextButton.style.top = pos.y.toString() + 'px';
|
|
72
|
-
this.editTextButton.style.left = (pos.x - 40).toString() + 'px';
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
// Hide the 'edit text' button.
|
|
76
|
-
this.editTextButton.style.display = 'none';
|
|
77
|
-
// Hide the on-screen keyboard.
|
|
78
|
-
this.hiddenInput.blur();
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=OnScreenKeyboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OnScreenKeyboard.js","sourceRoot":"","sources":["../../../src/UI/OnScreenKeyboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { UntranslatedCoordUnsigned } from '../Util/InputCoordTranslator';
|
|
2
|
-
/**
|
|
3
|
-
* Class for handling on screen keyboard usage
|
|
4
|
-
*/
|
|
5
|
-
export declare class OnScreenKeyboard {
|
|
6
|
-
editTextButton: HTMLButtonElement;
|
|
7
|
-
hiddenInput: HTMLInputElement;
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @param videoElementParent The div element the video player is injected into
|
|
11
|
-
*/
|
|
12
|
-
constructor(videoElementParent: HTMLElement);
|
|
13
|
-
/**
|
|
14
|
-
* An override for unquantizeAndDenormalizeUnsigned
|
|
15
|
-
* @param x the x axis point
|
|
16
|
-
* @param y the y axis point
|
|
17
|
-
* @returns unquantizeAndDenormalizeUnsigned object
|
|
18
|
-
*/
|
|
19
|
-
unquantizeAndDenormalizeUnsigned(x: number, y: number): UntranslatedCoordUnsigned;
|
|
20
|
-
/**
|
|
21
|
-
* Creates on screen keyboard helpers
|
|
22
|
-
* @param videoElementParent The div element the video player i injected into
|
|
23
|
-
*/
|
|
24
|
-
createOnScreenKeyboardHelpers(videoElementParent: HTMLElement): void;
|
|
25
|
-
/**
|
|
26
|
-
* Shows the on screen keyboard
|
|
27
|
-
* @param command the command received via the data channel containing keyboard positions
|
|
28
|
-
*/
|
|
29
|
-
showOnScreenKeyboard(command: any): void;
|
|
30
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
2
|
-
|
|
3
|
-
import { UntranslatedCoordUnsigned } from '../Util/InputCoordTranslator';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Class for handling on screen keyboard usage
|
|
7
|
-
*/
|
|
8
|
-
export class OnScreenKeyboard {
|
|
9
|
-
// If the user focuses on a UE input widget then we show them a button to open
|
|
10
|
-
// the on-screen keyboard. JavaScript security means we can only show the
|
|
11
|
-
// on-screen keyboard in response to a user interaction.
|
|
12
|
-
editTextButton: HTMLButtonElement;
|
|
13
|
-
|
|
14
|
-
// A hidden input text box which is used only for focusing and opening the
|
|
15
|
-
// on-screen keyboard.
|
|
16
|
-
hiddenInput: HTMLInputElement;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
*
|
|
20
|
-
* @param videoElementParent The div element the video player is injected into
|
|
21
|
-
*/
|
|
22
|
-
constructor(videoElementParent: HTMLElement) {
|
|
23
|
-
this.editTextButton = null;
|
|
24
|
-
this.hiddenInput = null;
|
|
25
|
-
|
|
26
|
-
if ('ontouchstart' in document.documentElement) {
|
|
27
|
-
this.createOnScreenKeyboardHelpers(videoElementParent);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* An override for unquantizeAndDenormalizeUnsigned
|
|
33
|
-
* @param x the x axis point
|
|
34
|
-
* @param y the y axis point
|
|
35
|
-
* @returns unquantizeAndDenormalizeUnsigned object
|
|
36
|
-
*/
|
|
37
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
38
|
-
unquantizeAndDenormalizeUnsigned(x: number, y: number): UntranslatedCoordUnsigned {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Creates on screen keyboard helpers
|
|
44
|
-
* @param videoElementParent The div element the video player i injected into
|
|
45
|
-
*/
|
|
46
|
-
createOnScreenKeyboardHelpers(videoElementParent: HTMLElement) {
|
|
47
|
-
if (!this.hiddenInput) {
|
|
48
|
-
this.hiddenInput = document.createElement('input');
|
|
49
|
-
this.hiddenInput.id = 'hiddenInput';
|
|
50
|
-
this.hiddenInput.maxLength = 0;
|
|
51
|
-
|
|
52
|
-
// Set inline style so that users not using the UI library
|
|
53
|
-
// will still have this element display correctly
|
|
54
|
-
this.hiddenInput.style.position = 'absolute';
|
|
55
|
-
this.hiddenInput.style.left = '-10%';
|
|
56
|
-
this.hiddenInput.style.width = '0px';
|
|
57
|
-
this.hiddenInput.style.opacity = '0';
|
|
58
|
-
|
|
59
|
-
videoElementParent.appendChild(this.hiddenInput);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (!this.editTextButton) {
|
|
63
|
-
this.editTextButton = document.createElement('button');
|
|
64
|
-
this.editTextButton.id = 'editTextButton';
|
|
65
|
-
this.editTextButton.innerHTML = 'edit text';
|
|
66
|
-
videoElementParent.appendChild(this.editTextButton);
|
|
67
|
-
|
|
68
|
-
// Hide the 'edit text' button.
|
|
69
|
-
this.editTextButton.style.display = 'none';
|
|
70
|
-
|
|
71
|
-
this.editTextButton.addEventListener('touchend', (event: Event) => {
|
|
72
|
-
// Show the on-screen keyboard.
|
|
73
|
-
this.hiddenInput.focus();
|
|
74
|
-
event.preventDefault();
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Shows the on screen keyboard
|
|
81
|
-
* @param command the command received via the data channel containing keyboard positions
|
|
82
|
-
*/
|
|
83
|
-
showOnScreenKeyboard(command: any) {
|
|
84
|
-
if (!this.editTextButton) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (command.showOnScreenKeyboard) {
|
|
89
|
-
// Show the 'edit text' button.
|
|
90
|
-
this.editTextButton.style.display = 'block';
|
|
91
|
-
// Place the 'edit text' button near the UE input widget.
|
|
92
|
-
const pos = this.unquantizeAndDenormalizeUnsigned(command.x, command.y);
|
|
93
|
-
this.editTextButton.style.top = pos.y.toString() + 'px';
|
|
94
|
-
this.editTextButton.style.left = (pos.x - 40).toString() + 'px';
|
|
95
|
-
} else {
|
|
96
|
-
// Hide the 'edit text' button.
|
|
97
|
-
this.editTextButton.style.display = 'none';
|
|
98
|
-
// Hide the on-screen keyboard.
|
|
99
|
-
this.hiddenInput.blur();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
File without changes
|