@epicgames-ps/lib-pixelstreamingfrontend-ue5.5 0.3.0 → 0.3.1
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/dist/commonjs/AFK/AFKController.js +109 -109
- package/dist/commonjs/Config/Config.js +559 -559
- package/dist/commonjs/Config/SettingBase.js +98 -98
- package/dist/commonjs/Config/SettingFlag.js +49 -49
- package/dist/commonjs/Config/SettingNumber.js +83 -83
- package/dist/commonjs/Config/SettingOption.js +84 -84
- package/dist/commonjs/Config/SettingText.js +42 -42
- package/dist/commonjs/DataChannel/DataChannelController.js +106 -106
- package/dist/commonjs/DataChannel/DataChannelLatencyTestController.js +94 -94
- package/dist/commonjs/DataChannel/DataChannelLatencyTestResults.js +18 -18
- package/dist/commonjs/DataChannel/DataChannelSender.js +43 -43
- package/dist/commonjs/DataChannel/InitialSettings.js +41 -41
- package/dist/commonjs/DataChannel/LatencyTestResults.js +60 -60
- package/dist/commonjs/FreezeFrame/FreezeFrame.js +93 -93
- package/dist/commonjs/FreezeFrame/FreezeFrameController.js +95 -95
- package/dist/commonjs/Inputs/GamepadController.js +188 -188
- package/dist/commonjs/Inputs/GamepadTypes.js +21 -21
- package/dist/commonjs/Inputs/IInputController.js +2 -2
- package/dist/commonjs/Inputs/InputClassesFactory.js +96 -96
- package/dist/commonjs/Inputs/KeyCodes.js +112 -112
- package/dist/commonjs/Inputs/KeyboardController.js +137 -137
- package/dist/commonjs/Inputs/MouseButtons.js +28 -28
- package/dist/commonjs/Inputs/MouseController.js +97 -97
- package/dist/commonjs/Inputs/MouseControllerHovering.js +93 -93
- package/dist/commonjs/Inputs/MouseControllerLocked.js +153 -153
- package/dist/commonjs/Inputs/SpecialKeyCodes.js +19 -19
- package/dist/commonjs/Inputs/TouchController.js +123 -123
- package/dist/commonjs/Inputs/TouchControllerFake.js +91 -91
- package/dist/commonjs/Inputs/XRGamepadController.js +124 -124
- package/dist/commonjs/PeerConnectionController/AggregatedStats.js +252 -252
- package/dist/commonjs/PeerConnectionController/CandidatePairStats.js +10 -10
- package/dist/commonjs/PeerConnectionController/CandidateStat.js +10 -10
- package/dist/commonjs/PeerConnectionController/CodecStats.js +10 -10
- package/dist/commonjs/PeerConnectionController/DataChannelStats.js +10 -10
- package/dist/commonjs/PeerConnectionController/InboundRTPStats.js +22 -22
- package/dist/commonjs/PeerConnectionController/InboundTrackStats.js +10 -10
- package/dist/commonjs/PeerConnectionController/OutBoundRTPStats.js +16 -16
- package/dist/commonjs/PeerConnectionController/PeerConnectionController.js +584 -584
- package/dist/commonjs/PeerConnectionController/SessionStats.js +10 -10
- package/dist/commonjs/PeerConnectionController/StreamStats.js +10 -10
- package/dist/commonjs/PixelStreaming/PixelStreaming.js +607 -607
- package/dist/commonjs/UI/OnScreenKeyboard.js +82 -82
- package/dist/commonjs/UeInstanceMessage/ResponseController.js +38 -38
- package/dist/commonjs/UeInstanceMessage/SendMessageController.js +120 -120
- package/dist/commonjs/UeInstanceMessage/StreamMessageController.js +210 -210
- package/dist/commonjs/UeInstanceMessage/ToStreamerMessagesController.js +49 -49
- package/dist/commonjs/Util/EventEmitter.js +386 -386
- package/dist/commonjs/Util/FileUtil.js +108 -108
- package/dist/commonjs/Util/IURLSearchParams.js +25 -25
- package/dist/commonjs/Util/InputCoordTranslator.js +49 -49
- package/dist/commonjs/Util/RTCUtils.js +40 -40
- package/dist/commonjs/VideoPlayer/StreamController.js +67 -67
- package/dist/commonjs/VideoPlayer/VideoPlayer.js +177 -177
- package/dist/commonjs/WebRtcPlayer/WebRtcPlayerController.js +1221 -1221
- package/dist/commonjs/WebXR/WebXRController.js +335 -335
- package/dist/commonjs/pixelstreamingfrontend.js +70 -70
- package/dist/esm/AFK/AFKController.js +105 -105
- package/dist/esm/Config/Config.js +551 -551
- package/dist/esm/Config/SettingBase.js +94 -94
- package/dist/esm/Config/SettingFlag.js +45 -45
- package/dist/esm/Config/SettingNumber.js +79 -79
- package/dist/esm/Config/SettingOption.js +80 -80
- package/dist/esm/Config/SettingText.js +38 -38
- package/dist/esm/DataChannel/DataChannelController.js +102 -102
- package/dist/esm/DataChannel/DataChannelLatencyTestController.js +90 -90
- package/dist/esm/DataChannel/DataChannelLatencyTestResults.js +14 -14
- package/dist/esm/DataChannel/DataChannelSender.js +39 -39
- package/dist/esm/DataChannel/InitialSettings.js +34 -34
- package/dist/esm/DataChannel/LatencyTestResults.js +56 -56
- package/dist/esm/FreezeFrame/FreezeFrame.js +89 -89
- package/dist/esm/FreezeFrame/FreezeFrameController.js +91 -91
- package/dist/esm/Inputs/GamepadController.js +184 -184
- package/dist/esm/Inputs/GamepadTypes.js +17 -17
- package/dist/esm/Inputs/IInputController.js +1 -1
- package/dist/esm/Inputs/InputClassesFactory.js +91 -91
- package/dist/esm/Inputs/KeyCodes.js +109 -109
- package/dist/esm/Inputs/KeyboardController.js +133 -133
- package/dist/esm/Inputs/MouseButtons.js +23 -23
- package/dist/esm/Inputs/MouseController.js +93 -93
- package/dist/esm/Inputs/MouseControllerHovering.js +89 -89
- package/dist/esm/Inputs/MouseControllerLocked.js +149 -149
- package/dist/esm/Inputs/SpecialKeyCodes.js +15 -15
- package/dist/esm/Inputs/TouchController.js +119 -119
- package/dist/esm/Inputs/TouchControllerFake.js +87 -87
- package/dist/esm/Inputs/XRGamepadController.js +120 -120
- package/dist/esm/PeerConnectionController/AggregatedStats.js +248 -248
- package/dist/esm/PeerConnectionController/CandidatePairStats.js +6 -6
- package/dist/esm/PeerConnectionController/CandidateStat.js +6 -6
- package/dist/esm/PeerConnectionController/CodecStats.js +6 -6
- package/dist/esm/PeerConnectionController/DataChannelStats.js +6 -6
- package/dist/esm/PeerConnectionController/InboundRTPStats.js +16 -16
- package/dist/esm/PeerConnectionController/InboundTrackStats.js +6 -6
- package/dist/esm/PeerConnectionController/OutBoundRTPStats.js +11 -11
- package/dist/esm/PeerConnectionController/PeerConnectionController.js +580 -580
- package/dist/esm/PeerConnectionController/SessionStats.js +6 -6
- package/dist/esm/PeerConnectionController/StreamStats.js +6 -6
- package/dist/esm/PixelStreaming/PixelStreaming.js +603 -603
- package/dist/esm/UI/OnScreenKeyboard.js +78 -78
- package/dist/esm/UeInstanceMessage/ResponseController.js +34 -34
- package/dist/esm/UeInstanceMessage/SendMessageController.js +116 -116
- package/dist/esm/UeInstanceMessage/StreamMessageController.js +205 -205
- package/dist/esm/UeInstanceMessage/ToStreamerMessagesController.js +45 -45
- package/dist/esm/Util/EventEmitter.js +345 -345
- package/dist/esm/Util/FileUtil.js +103 -103
- package/dist/esm/Util/IURLSearchParams.js +21 -21
- package/dist/esm/Util/InputCoordTranslator.js +45 -45
- package/dist/esm/Util/RTCUtils.js +36 -36
- package/dist/esm/VideoPlayer/StreamController.js +63 -63
- package/dist/esm/VideoPlayer/VideoPlayer.js +173 -173
- package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js +1217 -1217
- package/dist/esm/WebXR/WebXRController.js +331 -331
- package/dist/esm/pixelstreamingfrontend.js +24 -24
- package/dist/types/AFK/AFKController.d.ts +38 -38
- package/dist/types/Config/Config.d.ts +220 -220
- package/dist/types/Config/SettingBase.d.ts +43 -43
- package/dist/types/Config/SettingFlag.d.ts +24 -24
- package/dist/types/Config/SettingNumber.d.ts +41 -41
- package/dist/types/Config/SettingOption.d.ts +41 -41
- package/dist/types/Config/SettingText.d.ts +21 -21
- package/dist/types/DataChannel/DataChannelController.d.ts +59 -59
- package/dist/types/DataChannel/DataChannelLatencyTestController.d.ts +25 -25
- package/dist/types/DataChannel/DataChannelLatencyTestResults.d.ts +46 -46
- package/dist/types/DataChannel/DataChannelSender.d.ts +21 -21
- package/dist/types/DataChannel/InitialSettings.d.ts +44 -44
- package/dist/types/DataChannel/LatencyTestResults.d.ts +31 -31
- package/dist/types/FreezeFrame/FreezeFrame.d.ts +36 -36
- package/dist/types/FreezeFrame/FreezeFrameController.d.ts +37 -37
- package/dist/types/Inputs/GamepadController.d.ts +61 -61
- package/dist/types/Inputs/GamepadTypes.d.ts +15 -15
- package/dist/types/Inputs/IInputController.d.ts +16 -16
- package/dist/types/Inputs/InputClassesFactory.d.ts +53 -53
- package/dist/types/Inputs/KeyCodes.d.ts +5 -5
- package/dist/types/Inputs/KeyboardController.d.ts +34 -34
- package/dist/types/Inputs/MouseButtons.d.ts +22 -22
- package/dist/types/Inputs/MouseController.d.ts +40 -40
- package/dist/types/Inputs/MouseControllerHovering.d.ts +26 -26
- package/dist/types/Inputs/MouseControllerLocked.d.ts +31 -31
- package/dist/types/Inputs/SpecialKeyCodes.d.ts +14 -14
- package/dist/types/Inputs/TouchController.d.ts +28 -28
- package/dist/types/Inputs/TouchControllerFake.d.ts +29 -29
- package/dist/types/Inputs/XRGamepadController.d.ts +15 -15
- package/dist/types/PeerConnectionController/AggregatedStats.d.ts +82 -82
- package/dist/types/PeerConnectionController/CandidatePairStats.d.ts +22 -22
- package/dist/types/PeerConnectionController/CandidateStat.d.ts +13 -13
- package/dist/types/PeerConnectionController/CodecStats.d.ts +14 -14
- package/dist/types/PeerConnectionController/DataChannelStats.d.ts +15 -15
- package/dist/types/PeerConnectionController/InboundRTPStats.d.ts +141 -141
- package/dist/types/PeerConnectionController/InboundTrackStats.d.ts +32 -32
- package/dist/types/PeerConnectionController/OutBoundRTPStats.d.ts +23 -23
- package/dist/types/PeerConnectionController/PeerConnectionController.d.ts +143 -143
- package/dist/types/PeerConnectionController/SessionStats.d.ts +8 -8
- package/dist/types/PeerConnectionController/StreamStats.d.ts +9 -9
- package/dist/types/PixelStreaming/PixelStreaming.d.ts +271 -271
- package/dist/types/UI/OnScreenKeyboard.d.ts +30 -30
- package/dist/types/UeInstanceMessage/ResponseController.d.ts +19 -19
- package/dist/types/UeInstanceMessage/SendMessageController.d.ts +18 -18
- package/dist/types/UeInstanceMessage/StreamMessageController.d.ts +29 -29
- package/dist/types/UeInstanceMessage/ToStreamerMessagesController.d.ts +32 -32
- package/dist/types/Util/EventEmitter.d.ts +429 -429
- package/dist/types/Util/FileUtil.d.ts +32 -32
- package/dist/types/Util/IURLSearchParams.d.ts +9 -9
- package/dist/types/Util/InputCoordTranslator.d.ts +29 -29
- package/dist/types/Util/RTCUtils.d.ts +8 -8
- package/dist/types/VideoPlayer/StreamController.d.ts +22 -22
- package/dist/types/VideoPlayer/VideoPlayer.d.ts +78 -78
- package/dist/types/WebRtcPlayer/WebRtcPlayerController.d.ts +379 -379
- package/dist/types/WebXR/WebXRController.d.ts +42 -42
- package/dist/types/pixelstreamingfrontend.d.ts +23 -23
- package/package.json +45 -45
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
2
|
-
/*
|
|
3
|
-
* New browser APIs have moved away from KeyboardEvent.keyCode to KeyboardEvent.Code.
|
|
4
|
-
* For details see: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#constants_for_keycode_value
|
|
5
|
-
* We still use old KeyboardEvent.keyCode integers in the UE C++ side, so we need a way to map the new
|
|
6
|
-
* string-based KeyboardEvent.Code to the old integers.
|
|
7
|
-
*/
|
|
8
|
-
export const CodeToKeyCode = Object.freeze({
|
|
9
|
-
Escape: 27,
|
|
10
|
-
Digit0: 48,
|
|
11
|
-
Digit1: 49,
|
|
12
|
-
Digit2: 50,
|
|
13
|
-
Digit3: 51,
|
|
14
|
-
Digit4: 52,
|
|
15
|
-
Digit5: 53,
|
|
16
|
-
Digit6: 54,
|
|
17
|
-
Digit7: 55,
|
|
18
|
-
Digit8: 56,
|
|
19
|
-
Digit9: 57,
|
|
20
|
-
Minus: 173,
|
|
21
|
-
Equal: 187,
|
|
22
|
-
Backspace: 8,
|
|
23
|
-
Tab: 9,
|
|
24
|
-
KeyQ: 81,
|
|
25
|
-
KeyW: 87,
|
|
26
|
-
KeyE: 69,
|
|
27
|
-
KeyR: 82,
|
|
28
|
-
KeyT: 84,
|
|
29
|
-
KeyY: 89,
|
|
30
|
-
KeyU: 85,
|
|
31
|
-
KeyI: 73,
|
|
32
|
-
KeyO: 79,
|
|
33
|
-
KeyP: 80,
|
|
34
|
-
BracketLeft: 219,
|
|
35
|
-
BracketRight: 221,
|
|
36
|
-
Enter: 13,
|
|
37
|
-
ControlLeft: 17,
|
|
38
|
-
KeyA: 65,
|
|
39
|
-
KeyS: 83,
|
|
40
|
-
KeyD: 68,
|
|
41
|
-
KeyF: 70,
|
|
42
|
-
KeyG: 71,
|
|
43
|
-
KeyH: 72,
|
|
44
|
-
KeyJ: 74,
|
|
45
|
-
KeyK: 75,
|
|
46
|
-
KeyL: 76,
|
|
47
|
-
Semicolon: 186,
|
|
48
|
-
Quote: 222,
|
|
49
|
-
Backquote: 192,
|
|
50
|
-
ShiftLeft: 16,
|
|
51
|
-
Backslash: 220,
|
|
52
|
-
KeyZ: 90,
|
|
53
|
-
KeyX: 88,
|
|
54
|
-
KeyC: 67,
|
|
55
|
-
KeyV: 86,
|
|
56
|
-
KeyB: 66,
|
|
57
|
-
KeyN: 78,
|
|
58
|
-
KeyM: 77,
|
|
59
|
-
Comma: 188,
|
|
60
|
-
Period: 190,
|
|
61
|
-
Slash: 191,
|
|
62
|
-
ShiftRight: 253,
|
|
63
|
-
AltLeft: 18,
|
|
64
|
-
Space: 32,
|
|
65
|
-
CapsLock: 20,
|
|
66
|
-
F1: 112,
|
|
67
|
-
F2: 113,
|
|
68
|
-
F3: 114,
|
|
69
|
-
F4: 115,
|
|
70
|
-
F5: 116,
|
|
71
|
-
F6: 117,
|
|
72
|
-
F7: 118,
|
|
73
|
-
F8: 119,
|
|
74
|
-
F9: 120,
|
|
75
|
-
F10: 121,
|
|
76
|
-
F11: 122,
|
|
77
|
-
F12: 123,
|
|
78
|
-
Pause: 19,
|
|
79
|
-
ScrollLock: 145,
|
|
80
|
-
NumpadDivide: 111,
|
|
81
|
-
NumpadMultiply: 106,
|
|
82
|
-
NumpadSubtract: 109,
|
|
83
|
-
NumpadAdd: 107,
|
|
84
|
-
NumpadDecimal: 110,
|
|
85
|
-
Numpad9: 105,
|
|
86
|
-
Numpad8: 104,
|
|
87
|
-
Numpad7: 103,
|
|
88
|
-
Numpad6: 102,
|
|
89
|
-
Numpad5: 101,
|
|
90
|
-
Numpad4: 100,
|
|
91
|
-
Numpad3: 99,
|
|
92
|
-
Numpad2: 98,
|
|
93
|
-
Numpad1: 97,
|
|
94
|
-
Numpad0: 96,
|
|
95
|
-
NumLock: 144,
|
|
96
|
-
ControlRight: 254,
|
|
97
|
-
AltRight: 255,
|
|
98
|
-
Home: 36,
|
|
99
|
-
End: 35,
|
|
100
|
-
ArrowUp: 38,
|
|
101
|
-
ArrowLeft: 37,
|
|
102
|
-
ArrowRight: 39,
|
|
103
|
-
ArrowDown: 40,
|
|
104
|
-
PageUp: 33,
|
|
105
|
-
PageDown: 34,
|
|
106
|
-
Insert: 45,
|
|
107
|
-
Delete: 46,
|
|
108
|
-
ContextMenu: 93
|
|
109
|
-
});
|
|
1
|
+
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
2
|
+
/*
|
|
3
|
+
* New browser APIs have moved away from KeyboardEvent.keyCode to KeyboardEvent.Code.
|
|
4
|
+
* For details see: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#constants_for_keycode_value
|
|
5
|
+
* We still use old KeyboardEvent.keyCode integers in the UE C++ side, so we need a way to map the new
|
|
6
|
+
* string-based KeyboardEvent.Code to the old integers.
|
|
7
|
+
*/
|
|
8
|
+
export const CodeToKeyCode = Object.freeze({
|
|
9
|
+
Escape: 27,
|
|
10
|
+
Digit0: 48,
|
|
11
|
+
Digit1: 49,
|
|
12
|
+
Digit2: 50,
|
|
13
|
+
Digit3: 51,
|
|
14
|
+
Digit4: 52,
|
|
15
|
+
Digit5: 53,
|
|
16
|
+
Digit6: 54,
|
|
17
|
+
Digit7: 55,
|
|
18
|
+
Digit8: 56,
|
|
19
|
+
Digit9: 57,
|
|
20
|
+
Minus: 173,
|
|
21
|
+
Equal: 187,
|
|
22
|
+
Backspace: 8,
|
|
23
|
+
Tab: 9,
|
|
24
|
+
KeyQ: 81,
|
|
25
|
+
KeyW: 87,
|
|
26
|
+
KeyE: 69,
|
|
27
|
+
KeyR: 82,
|
|
28
|
+
KeyT: 84,
|
|
29
|
+
KeyY: 89,
|
|
30
|
+
KeyU: 85,
|
|
31
|
+
KeyI: 73,
|
|
32
|
+
KeyO: 79,
|
|
33
|
+
KeyP: 80,
|
|
34
|
+
BracketLeft: 219,
|
|
35
|
+
BracketRight: 221,
|
|
36
|
+
Enter: 13,
|
|
37
|
+
ControlLeft: 17,
|
|
38
|
+
KeyA: 65,
|
|
39
|
+
KeyS: 83,
|
|
40
|
+
KeyD: 68,
|
|
41
|
+
KeyF: 70,
|
|
42
|
+
KeyG: 71,
|
|
43
|
+
KeyH: 72,
|
|
44
|
+
KeyJ: 74,
|
|
45
|
+
KeyK: 75,
|
|
46
|
+
KeyL: 76,
|
|
47
|
+
Semicolon: 186,
|
|
48
|
+
Quote: 222,
|
|
49
|
+
Backquote: 192,
|
|
50
|
+
ShiftLeft: 16,
|
|
51
|
+
Backslash: 220,
|
|
52
|
+
KeyZ: 90,
|
|
53
|
+
KeyX: 88,
|
|
54
|
+
KeyC: 67,
|
|
55
|
+
KeyV: 86,
|
|
56
|
+
KeyB: 66,
|
|
57
|
+
KeyN: 78,
|
|
58
|
+
KeyM: 77,
|
|
59
|
+
Comma: 188,
|
|
60
|
+
Period: 190,
|
|
61
|
+
Slash: 191,
|
|
62
|
+
ShiftRight: 253,
|
|
63
|
+
AltLeft: 18,
|
|
64
|
+
Space: 32,
|
|
65
|
+
CapsLock: 20,
|
|
66
|
+
F1: 112,
|
|
67
|
+
F2: 113,
|
|
68
|
+
F3: 114,
|
|
69
|
+
F4: 115,
|
|
70
|
+
F5: 116,
|
|
71
|
+
F6: 117,
|
|
72
|
+
F7: 118,
|
|
73
|
+
F8: 119,
|
|
74
|
+
F9: 120,
|
|
75
|
+
F10: 121,
|
|
76
|
+
F11: 122,
|
|
77
|
+
F12: 123,
|
|
78
|
+
Pause: 19,
|
|
79
|
+
ScrollLock: 145,
|
|
80
|
+
NumpadDivide: 111,
|
|
81
|
+
NumpadMultiply: 106,
|
|
82
|
+
NumpadSubtract: 109,
|
|
83
|
+
NumpadAdd: 107,
|
|
84
|
+
NumpadDecimal: 110,
|
|
85
|
+
Numpad9: 105,
|
|
86
|
+
Numpad8: 104,
|
|
87
|
+
Numpad7: 103,
|
|
88
|
+
Numpad6: 102,
|
|
89
|
+
Numpad5: 101,
|
|
90
|
+
Numpad4: 100,
|
|
91
|
+
Numpad3: 99,
|
|
92
|
+
Numpad2: 98,
|
|
93
|
+
Numpad1: 97,
|
|
94
|
+
Numpad0: 96,
|
|
95
|
+
NumLock: 144,
|
|
96
|
+
ControlRight: 254,
|
|
97
|
+
AltRight: 255,
|
|
98
|
+
Home: 36,
|
|
99
|
+
End: 35,
|
|
100
|
+
ArrowUp: 38,
|
|
101
|
+
ArrowLeft: 37,
|
|
102
|
+
ArrowRight: 39,
|
|
103
|
+
ArrowDown: 40,
|
|
104
|
+
PageUp: 33,
|
|
105
|
+
PageDown: 34,
|
|
106
|
+
Insert: 45,
|
|
107
|
+
Delete: 46,
|
|
108
|
+
ContextMenu: 93
|
|
109
|
+
});
|
|
110
110
|
//# sourceMappingURL=KeyCodes.js.map
|
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
2
|
-
import { SpecialKeyCodes } from './SpecialKeyCodes';
|
|
3
|
-
import { Logger } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
|
|
4
|
-
import { Flags } from '../Config/Config';
|
|
5
|
-
import { CodeToKeyCode } from './KeyCodes';
|
|
6
|
-
/**
|
|
7
|
-
* Handles the Keyboard Inputs for the document
|
|
8
|
-
*/
|
|
9
|
-
export class KeyboardController {
|
|
10
|
-
constructor(streamMessageController, config, activeKeys) {
|
|
11
|
-
this.streamMessageController = streamMessageController;
|
|
12
|
-
this.config = config;
|
|
13
|
-
this.activeKeys = activeKeys;
|
|
14
|
-
this.onKeyDownListener = this.handleOnKeyDown.bind(this);
|
|
15
|
-
this.onKeyUpListener = this.handleOnKeyUp.bind(this);
|
|
16
|
-
this.onKeyPressListener = this.handleOnKeyPress.bind(this);
|
|
17
|
-
this.onCompositionEndListener = this.handleOnCompositionEnd.bind(this);
|
|
18
|
-
}
|
|
19
|
-
register() {
|
|
20
|
-
document.addEventListener('compositionend', this.onCompositionEndListener);
|
|
21
|
-
document.addEventListener('keydown', this.onKeyDownListener);
|
|
22
|
-
document.addEventListener('keyup', this.onKeyUpListener);
|
|
23
|
-
//This has been deprecated as at Jun 13 2021
|
|
24
|
-
document.addEventListener('keypress', this.onKeyPressListener);
|
|
25
|
-
}
|
|
26
|
-
unregister() {
|
|
27
|
-
document.removeEventListener('compositionend', this.onCompositionEndListener);
|
|
28
|
-
document.removeEventListener('keydown', this.onKeyDownListener);
|
|
29
|
-
document.removeEventListener('keyup', this.onKeyUpListener);
|
|
30
|
-
document.removeEventListener('keypress', this.onKeyPressListener);
|
|
31
|
-
}
|
|
32
|
-
handleOnKeyDown(keyboardEvent) {
|
|
33
|
-
const keyCode = this.getKeycode(keyboardEvent);
|
|
34
|
-
if (!keyCode || keyCode === 229) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
const toStreamerHandlers = this.streamMessageController.toStreamerHandlers;
|
|
38
|
-
toStreamerHandlers.get('KeyDown')([this.getKeycode(keyboardEvent), keyboardEvent.repeat ? 1 : 0]);
|
|
39
|
-
const activeKeys = this.activeKeys.getActiveKeys();
|
|
40
|
-
activeKeys.push(keyCode);
|
|
41
|
-
// Backspace is not considered a keypress in JavaScript but we need it
|
|
42
|
-
// to be so characters may be deleted in a UE text entry field.
|
|
43
|
-
if (keyCode === SpecialKeyCodes.backSpace) {
|
|
44
|
-
document.dispatchEvent(new KeyboardEvent('keypress', {
|
|
45
|
-
charCode: SpecialKeyCodes.backSpace
|
|
46
|
-
}));
|
|
47
|
-
}
|
|
48
|
-
if (this.config.isFlagEnabled(Flags.SuppressBrowserKeys) && this.isKeyCodeBrowserKey(keyCode)) {
|
|
49
|
-
keyboardEvent.preventDefault();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
handleOnKeyUp(keyboardEvent) {
|
|
53
|
-
const keyCode = this.getKeycode(keyboardEvent);
|
|
54
|
-
if (!keyCode) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
const toStreamerHandlers = this.streamMessageController.toStreamerHandlers;
|
|
58
|
-
toStreamerHandlers.get('KeyUp')([keyCode]);
|
|
59
|
-
if (this.config.isFlagEnabled(Flags.SuppressBrowserKeys) && this.isKeyCodeBrowserKey(keyCode)) {
|
|
60
|
-
keyboardEvent.preventDefault();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
handleOnKeyPress(keyboardEvent) {
|
|
64
|
-
const keyCode = this.getKeycode(keyboardEvent);
|
|
65
|
-
if (!keyCode) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const toStreamerHandlers = this.streamMessageController.toStreamerHandlers;
|
|
69
|
-
toStreamerHandlers.get('KeyPress')([keyCode]);
|
|
70
|
-
}
|
|
71
|
-
handleOnCompositionEnd(compositionEvent) {
|
|
72
|
-
if (compositionEvent.data && compositionEvent.data.length) {
|
|
73
|
-
compositionEvent.data.split('').forEach((char) => {
|
|
74
|
-
// This keydown, keypress, keyup flow is required to mimic the way characters are
|
|
75
|
-
// normally triggered
|
|
76
|
-
this.handleOnKeyDown(new KeyboardEvent('keydown', {
|
|
77
|
-
keyCode: char.toUpperCase().charCodeAt(0),
|
|
78
|
-
charCode: char.charCodeAt(0)
|
|
79
|
-
}));
|
|
80
|
-
this.handleOnKeyPress(new KeyboardEvent('keypress', {
|
|
81
|
-
keyCode: char.toUpperCase().charCodeAt(0),
|
|
82
|
-
charCode: char.charCodeAt(0)
|
|
83
|
-
}));
|
|
84
|
-
this.handleOnKeyUp(new KeyboardEvent('keyup', {
|
|
85
|
-
keyCode: char.toUpperCase().charCodeAt(0),
|
|
86
|
-
charCode: char.charCodeAt(0)
|
|
87
|
-
}));
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Gets the Keycode of the Key pressed
|
|
93
|
-
* @param keyboardEvent - Key board Event
|
|
94
|
-
* @returns - the key code of the Key
|
|
95
|
-
*/
|
|
96
|
-
getKeycode(keyboardEvent) {
|
|
97
|
-
// If we don't have keyCode property because browser API is deprecated then use KeyboardEvent.code instead.
|
|
98
|
-
// See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#constants_for_keycode_value
|
|
99
|
-
if (!('keyCode' in keyboardEvent)) {
|
|
100
|
-
// Convert KeyboardEvent.code string into integer-based key code for backwards compatibility reasons.
|
|
101
|
-
const event = keyboardEvent;
|
|
102
|
-
if (event.code in CodeToKeyCode) {
|
|
103
|
-
return CodeToKeyCode[event.code];
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
Logger.Warning(`Keyboard code of ${event.code} is not supported in our mapping, ignoring this key.`);
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
// If we made it here KeyboardEvent.keyCode is still supported so we can safely use it.
|
|
111
|
-
if (keyboardEvent.keyCode === SpecialKeyCodes.shift && keyboardEvent.code === 'ShiftRight') {
|
|
112
|
-
return SpecialKeyCodes.rightShift;
|
|
113
|
-
}
|
|
114
|
-
else if (keyboardEvent.keyCode === SpecialKeyCodes.control &&
|
|
115
|
-
keyboardEvent.code === 'ControlRight') {
|
|
116
|
-
return SpecialKeyCodes.rightControl;
|
|
117
|
-
}
|
|
118
|
-
else if (keyboardEvent.keyCode === SpecialKeyCodes.alt && keyboardEvent.code === 'AltRight') {
|
|
119
|
-
return SpecialKeyCodes.rightAlt;
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
return keyboardEvent.keyCode;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Browser keys do not have a charCode so we only need to test keyCode.
|
|
127
|
-
* @param keyCode - the browser keycode number
|
|
128
|
-
*/
|
|
129
|
-
isKeyCodeBrowserKey(keyCode) {
|
|
130
|
-
// Function keys or tab key are considered "browser keys" that we may wish to suppress by preventing them being process by browser.
|
|
131
|
-
return (keyCode >= 112 && keyCode <= 123) || keyCode === 9;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
1
|
+
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
2
|
+
import { SpecialKeyCodes } from './SpecialKeyCodes';
|
|
3
|
+
import { Logger } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
|
|
4
|
+
import { Flags } from '../Config/Config';
|
|
5
|
+
import { CodeToKeyCode } from './KeyCodes';
|
|
6
|
+
/**
|
|
7
|
+
* Handles the Keyboard Inputs for the document
|
|
8
|
+
*/
|
|
9
|
+
export class KeyboardController {
|
|
10
|
+
constructor(streamMessageController, config, activeKeys) {
|
|
11
|
+
this.streamMessageController = streamMessageController;
|
|
12
|
+
this.config = config;
|
|
13
|
+
this.activeKeys = activeKeys;
|
|
14
|
+
this.onKeyDownListener = this.handleOnKeyDown.bind(this);
|
|
15
|
+
this.onKeyUpListener = this.handleOnKeyUp.bind(this);
|
|
16
|
+
this.onKeyPressListener = this.handleOnKeyPress.bind(this);
|
|
17
|
+
this.onCompositionEndListener = this.handleOnCompositionEnd.bind(this);
|
|
18
|
+
}
|
|
19
|
+
register() {
|
|
20
|
+
document.addEventListener('compositionend', this.onCompositionEndListener);
|
|
21
|
+
document.addEventListener('keydown', this.onKeyDownListener);
|
|
22
|
+
document.addEventListener('keyup', this.onKeyUpListener);
|
|
23
|
+
//This has been deprecated as at Jun 13 2021
|
|
24
|
+
document.addEventListener('keypress', this.onKeyPressListener);
|
|
25
|
+
}
|
|
26
|
+
unregister() {
|
|
27
|
+
document.removeEventListener('compositionend', this.onCompositionEndListener);
|
|
28
|
+
document.removeEventListener('keydown', this.onKeyDownListener);
|
|
29
|
+
document.removeEventListener('keyup', this.onKeyUpListener);
|
|
30
|
+
document.removeEventListener('keypress', this.onKeyPressListener);
|
|
31
|
+
}
|
|
32
|
+
handleOnKeyDown(keyboardEvent) {
|
|
33
|
+
const keyCode = this.getKeycode(keyboardEvent);
|
|
34
|
+
if (!keyCode || keyCode === 229) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const toStreamerHandlers = this.streamMessageController.toStreamerHandlers;
|
|
38
|
+
toStreamerHandlers.get('KeyDown')([this.getKeycode(keyboardEvent), keyboardEvent.repeat ? 1 : 0]);
|
|
39
|
+
const activeKeys = this.activeKeys.getActiveKeys();
|
|
40
|
+
activeKeys.push(keyCode);
|
|
41
|
+
// Backspace is not considered a keypress in JavaScript but we need it
|
|
42
|
+
// to be so characters may be deleted in a UE text entry field.
|
|
43
|
+
if (keyCode === SpecialKeyCodes.backSpace) {
|
|
44
|
+
document.dispatchEvent(new KeyboardEvent('keypress', {
|
|
45
|
+
charCode: SpecialKeyCodes.backSpace
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
if (this.config.isFlagEnabled(Flags.SuppressBrowserKeys) && this.isKeyCodeBrowserKey(keyCode)) {
|
|
49
|
+
keyboardEvent.preventDefault();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
handleOnKeyUp(keyboardEvent) {
|
|
53
|
+
const keyCode = this.getKeycode(keyboardEvent);
|
|
54
|
+
if (!keyCode) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const toStreamerHandlers = this.streamMessageController.toStreamerHandlers;
|
|
58
|
+
toStreamerHandlers.get('KeyUp')([keyCode]);
|
|
59
|
+
if (this.config.isFlagEnabled(Flags.SuppressBrowserKeys) && this.isKeyCodeBrowserKey(keyCode)) {
|
|
60
|
+
keyboardEvent.preventDefault();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
handleOnKeyPress(keyboardEvent) {
|
|
64
|
+
const keyCode = this.getKeycode(keyboardEvent);
|
|
65
|
+
if (!keyCode) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const toStreamerHandlers = this.streamMessageController.toStreamerHandlers;
|
|
69
|
+
toStreamerHandlers.get('KeyPress')([keyCode]);
|
|
70
|
+
}
|
|
71
|
+
handleOnCompositionEnd(compositionEvent) {
|
|
72
|
+
if (compositionEvent.data && compositionEvent.data.length) {
|
|
73
|
+
compositionEvent.data.split('').forEach((char) => {
|
|
74
|
+
// This keydown, keypress, keyup flow is required to mimic the way characters are
|
|
75
|
+
// normally triggered
|
|
76
|
+
this.handleOnKeyDown(new KeyboardEvent('keydown', {
|
|
77
|
+
keyCode: char.toUpperCase().charCodeAt(0),
|
|
78
|
+
charCode: char.charCodeAt(0)
|
|
79
|
+
}));
|
|
80
|
+
this.handleOnKeyPress(new KeyboardEvent('keypress', {
|
|
81
|
+
keyCode: char.toUpperCase().charCodeAt(0),
|
|
82
|
+
charCode: char.charCodeAt(0)
|
|
83
|
+
}));
|
|
84
|
+
this.handleOnKeyUp(new KeyboardEvent('keyup', {
|
|
85
|
+
keyCode: char.toUpperCase().charCodeAt(0),
|
|
86
|
+
charCode: char.charCodeAt(0)
|
|
87
|
+
}));
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Gets the Keycode of the Key pressed
|
|
93
|
+
* @param keyboardEvent - Key board Event
|
|
94
|
+
* @returns - the key code of the Key
|
|
95
|
+
*/
|
|
96
|
+
getKeycode(keyboardEvent) {
|
|
97
|
+
// If we don't have keyCode property because browser API is deprecated then use KeyboardEvent.code instead.
|
|
98
|
+
// See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#constants_for_keycode_value
|
|
99
|
+
if (!('keyCode' in keyboardEvent)) {
|
|
100
|
+
// Convert KeyboardEvent.code string into integer-based key code for backwards compatibility reasons.
|
|
101
|
+
const event = keyboardEvent;
|
|
102
|
+
if (event.code in CodeToKeyCode) {
|
|
103
|
+
return CodeToKeyCode[event.code];
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
Logger.Warning(`Keyboard code of ${event.code} is not supported in our mapping, ignoring this key.`);
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// If we made it here KeyboardEvent.keyCode is still supported so we can safely use it.
|
|
111
|
+
if (keyboardEvent.keyCode === SpecialKeyCodes.shift && keyboardEvent.code === 'ShiftRight') {
|
|
112
|
+
return SpecialKeyCodes.rightShift;
|
|
113
|
+
}
|
|
114
|
+
else if (keyboardEvent.keyCode === SpecialKeyCodes.control &&
|
|
115
|
+
keyboardEvent.code === 'ControlRight') {
|
|
116
|
+
return SpecialKeyCodes.rightControl;
|
|
117
|
+
}
|
|
118
|
+
else if (keyboardEvent.keyCode === SpecialKeyCodes.alt && keyboardEvent.code === 'AltRight') {
|
|
119
|
+
return SpecialKeyCodes.rightAlt;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
return keyboardEvent.keyCode;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Browser keys do not have a charCode so we only need to test keyCode.
|
|
127
|
+
* @param keyCode - the browser keycode number
|
|
128
|
+
*/
|
|
129
|
+
isKeyCodeBrowserKey(keyCode) {
|
|
130
|
+
// Function keys or tab key are considered "browser keys" that we may wish to suppress by preventing them being process by browser.
|
|
131
|
+
return (keyCode >= 112 && keyCode <= 123) || keyCode === 9;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
134
|
//# sourceMappingURL=KeyboardController.js.map
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
2
|
-
/**
|
|
3
|
-
* Mouse Button Data
|
|
4
|
-
* {@link https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button}
|
|
5
|
-
*/
|
|
6
|
-
export class MouseButton {
|
|
7
|
-
}
|
|
8
|
-
MouseButton.mainButton = 0; // Left button.
|
|
9
|
-
MouseButton.auxiliaryButton = 1; // Wheel button.
|
|
10
|
-
MouseButton.secondaryButton = 2; // Right button.
|
|
11
|
-
MouseButton.fourthButton = 3; // Browser Back button.
|
|
12
|
-
MouseButton.fifthButton = 4; // Browser Forward button.
|
|
13
|
-
/**
|
|
14
|
-
* Mouse Button Mask Data
|
|
15
|
-
* {@link https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons}
|
|
16
|
-
*/
|
|
17
|
-
export class MouseButtonsMask {
|
|
18
|
-
}
|
|
19
|
-
MouseButtonsMask.primaryButton = 1; // Left button.
|
|
20
|
-
MouseButtonsMask.secondaryButton = 2; // Right button.
|
|
21
|
-
MouseButtonsMask.auxiliaryButton = 4; // Wheel button.
|
|
22
|
-
MouseButtonsMask.fourthButton = 8; // Browser Back button.
|
|
23
|
-
MouseButtonsMask.fifthButton = 16; // Browser Forward button.
|
|
1
|
+
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
2
|
+
/**
|
|
3
|
+
* Mouse Button Data
|
|
4
|
+
* {@link https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button}
|
|
5
|
+
*/
|
|
6
|
+
export class MouseButton {
|
|
7
|
+
}
|
|
8
|
+
MouseButton.mainButton = 0; // Left button.
|
|
9
|
+
MouseButton.auxiliaryButton = 1; // Wheel button.
|
|
10
|
+
MouseButton.secondaryButton = 2; // Right button.
|
|
11
|
+
MouseButton.fourthButton = 3; // Browser Back button.
|
|
12
|
+
MouseButton.fifthButton = 4; // Browser Forward button.
|
|
13
|
+
/**
|
|
14
|
+
* Mouse Button Mask Data
|
|
15
|
+
* {@link https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons}
|
|
16
|
+
*/
|
|
17
|
+
export class MouseButtonsMask {
|
|
18
|
+
}
|
|
19
|
+
MouseButtonsMask.primaryButton = 1; // Left button.
|
|
20
|
+
MouseButtonsMask.secondaryButton = 2; // Right button.
|
|
21
|
+
MouseButtonsMask.auxiliaryButton = 4; // Wheel button.
|
|
22
|
+
MouseButtonsMask.fourthButton = 8; // Browser Back button.
|
|
23
|
+
MouseButtonsMask.fifthButton = 16; // Browser Forward button.
|
|
24
24
|
//# sourceMappingURL=MouseButtons.js.map
|