@epicgames-ps/lib-pixelstreamingfrontend-ue5.5 0.3.0 → 0.3.2

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