@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.
Files changed (169) 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/TouchControllerFake.js +91 -91
  29. package/dist/commonjs/Inputs/XRGamepadController.js +124 -124
  30. package/dist/commonjs/PeerConnectionController/AggregatedStats.js +252 -252
  31. package/dist/commonjs/PeerConnectionController/CandidatePairStats.js +10 -10
  32. package/dist/commonjs/PeerConnectionController/CandidateStat.js +10 -10
  33. package/dist/commonjs/PeerConnectionController/CodecStats.js +10 -10
  34. package/dist/commonjs/PeerConnectionController/DataChannelStats.js +10 -10
  35. package/dist/commonjs/PeerConnectionController/InboundRTPStats.js +22 -22
  36. package/dist/commonjs/PeerConnectionController/InboundTrackStats.js +10 -10
  37. package/dist/commonjs/PeerConnectionController/OutBoundRTPStats.js +16 -16
  38. package/dist/commonjs/PeerConnectionController/PeerConnectionController.js +584 -584
  39. package/dist/commonjs/PeerConnectionController/SessionStats.js +10 -10
  40. package/dist/commonjs/PeerConnectionController/StreamStats.js +10 -10
  41. package/dist/commonjs/PixelStreaming/PixelStreaming.js +607 -607
  42. package/dist/commonjs/UI/OnScreenKeyboard.js +82 -82
  43. package/dist/commonjs/UeInstanceMessage/ResponseController.js +38 -38
  44. package/dist/commonjs/UeInstanceMessage/SendMessageController.js +120 -120
  45. package/dist/commonjs/UeInstanceMessage/StreamMessageController.js +210 -210
  46. package/dist/commonjs/UeInstanceMessage/ToStreamerMessagesController.js +49 -49
  47. package/dist/commonjs/Util/EventEmitter.js +386 -386
  48. package/dist/commonjs/Util/FileUtil.js +108 -108
  49. package/dist/commonjs/Util/IURLSearchParams.js +25 -25
  50. package/dist/commonjs/Util/InputCoordTranslator.js +49 -49
  51. package/dist/commonjs/Util/RTCUtils.js +40 -40
  52. package/dist/commonjs/VideoPlayer/StreamController.js +67 -67
  53. package/dist/commonjs/VideoPlayer/VideoPlayer.js +177 -177
  54. package/dist/commonjs/WebRtcPlayer/WebRtcPlayerController.js +1221 -1221
  55. package/dist/commonjs/WebXR/WebXRController.js +335 -335
  56. package/dist/commonjs/pixelstreamingfrontend.js +70 -70
  57. package/dist/esm/AFK/AFKController.js +105 -105
  58. package/dist/esm/Config/Config.js +551 -551
  59. package/dist/esm/Config/SettingBase.js +94 -94
  60. package/dist/esm/Config/SettingFlag.js +45 -45
  61. package/dist/esm/Config/SettingNumber.js +79 -79
  62. package/dist/esm/Config/SettingOption.js +80 -80
  63. package/dist/esm/Config/SettingText.js +38 -38
  64. package/dist/esm/DataChannel/DataChannelController.js +102 -102
  65. package/dist/esm/DataChannel/DataChannelLatencyTestController.js +90 -90
  66. package/dist/esm/DataChannel/DataChannelLatencyTestResults.js +14 -14
  67. package/dist/esm/DataChannel/DataChannelSender.js +39 -39
  68. package/dist/esm/DataChannel/InitialSettings.js +34 -34
  69. package/dist/esm/DataChannel/LatencyTestResults.js +56 -56
  70. package/dist/esm/FreezeFrame/FreezeFrame.js +89 -89
  71. package/dist/esm/FreezeFrame/FreezeFrameController.js +91 -91
  72. package/dist/esm/Inputs/GamepadController.js +184 -184
  73. package/dist/esm/Inputs/GamepadTypes.js +17 -17
  74. package/dist/esm/Inputs/IInputController.js +1 -1
  75. package/dist/esm/Inputs/InputClassesFactory.js +91 -91
  76. package/dist/esm/Inputs/KeyCodes.js +109 -109
  77. package/dist/esm/Inputs/KeyboardController.js +133 -133
  78. package/dist/esm/Inputs/MouseButtons.js +23 -23
  79. package/dist/esm/Inputs/MouseController.js +93 -93
  80. package/dist/esm/Inputs/MouseControllerHovering.js +89 -89
  81. package/dist/esm/Inputs/MouseControllerLocked.js +149 -149
  82. package/dist/esm/Inputs/SpecialKeyCodes.js +15 -15
  83. package/dist/esm/Inputs/TouchController.js +119 -119
  84. package/dist/esm/Inputs/TouchControllerFake.js +87 -87
  85. package/dist/esm/Inputs/XRGamepadController.js +120 -120
  86. package/dist/esm/PeerConnectionController/AggregatedStats.js +248 -248
  87. package/dist/esm/PeerConnectionController/CandidatePairStats.js +6 -6
  88. package/dist/esm/PeerConnectionController/CandidateStat.js +6 -6
  89. package/dist/esm/PeerConnectionController/CodecStats.js +6 -6
  90. package/dist/esm/PeerConnectionController/DataChannelStats.js +6 -6
  91. package/dist/esm/PeerConnectionController/InboundRTPStats.js +16 -16
  92. package/dist/esm/PeerConnectionController/InboundTrackStats.js +6 -6
  93. package/dist/esm/PeerConnectionController/OutBoundRTPStats.js +11 -11
  94. package/dist/esm/PeerConnectionController/PeerConnectionController.js +580 -580
  95. package/dist/esm/PeerConnectionController/SessionStats.js +6 -6
  96. package/dist/esm/PeerConnectionController/StreamStats.js +6 -6
  97. package/dist/esm/PixelStreaming/PixelStreaming.js +603 -603
  98. package/dist/esm/UI/OnScreenKeyboard.js +78 -78
  99. package/dist/esm/UeInstanceMessage/ResponseController.js +34 -34
  100. package/dist/esm/UeInstanceMessage/SendMessageController.js +116 -116
  101. package/dist/esm/UeInstanceMessage/StreamMessageController.js +205 -205
  102. package/dist/esm/UeInstanceMessage/ToStreamerMessagesController.js +45 -45
  103. package/dist/esm/Util/EventEmitter.js +345 -345
  104. package/dist/esm/Util/FileUtil.js +103 -103
  105. package/dist/esm/Util/IURLSearchParams.js +21 -21
  106. package/dist/esm/Util/InputCoordTranslator.js +45 -45
  107. package/dist/esm/Util/RTCUtils.js +36 -36
  108. package/dist/esm/VideoPlayer/StreamController.js +63 -63
  109. package/dist/esm/VideoPlayer/VideoPlayer.js +173 -173
  110. package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js +1217 -1217
  111. package/dist/esm/WebXR/WebXRController.js +331 -331
  112. package/dist/esm/pixelstreamingfrontend.js +24 -24
  113. package/dist/types/AFK/AFKController.d.ts +38 -38
  114. package/dist/types/Config/Config.d.ts +220 -220
  115. package/dist/types/Config/SettingBase.d.ts +43 -43
  116. package/dist/types/Config/SettingFlag.d.ts +24 -24
  117. package/dist/types/Config/SettingNumber.d.ts +41 -41
  118. package/dist/types/Config/SettingOption.d.ts +41 -41
  119. package/dist/types/Config/SettingText.d.ts +21 -21
  120. package/dist/types/DataChannel/DataChannelController.d.ts +59 -59
  121. package/dist/types/DataChannel/DataChannelLatencyTestController.d.ts +25 -25
  122. package/dist/types/DataChannel/DataChannelLatencyTestResults.d.ts +46 -46
  123. package/dist/types/DataChannel/DataChannelSender.d.ts +21 -21
  124. package/dist/types/DataChannel/InitialSettings.d.ts +44 -44
  125. package/dist/types/DataChannel/LatencyTestResults.d.ts +31 -31
  126. package/dist/types/FreezeFrame/FreezeFrame.d.ts +36 -36
  127. package/dist/types/FreezeFrame/FreezeFrameController.d.ts +37 -37
  128. package/dist/types/Inputs/GamepadController.d.ts +61 -61
  129. package/dist/types/Inputs/GamepadTypes.d.ts +15 -15
  130. package/dist/types/Inputs/IInputController.d.ts +16 -16
  131. package/dist/types/Inputs/InputClassesFactory.d.ts +53 -53
  132. package/dist/types/Inputs/KeyCodes.d.ts +5 -5
  133. package/dist/types/Inputs/KeyboardController.d.ts +34 -34
  134. package/dist/types/Inputs/MouseButtons.d.ts +22 -22
  135. package/dist/types/Inputs/MouseController.d.ts +40 -40
  136. package/dist/types/Inputs/MouseControllerHovering.d.ts +26 -26
  137. package/dist/types/Inputs/MouseControllerLocked.d.ts +31 -31
  138. package/dist/types/Inputs/SpecialKeyCodes.d.ts +14 -14
  139. package/dist/types/Inputs/TouchController.d.ts +28 -28
  140. package/dist/types/Inputs/TouchControllerFake.d.ts +29 -29
  141. package/dist/types/Inputs/XRGamepadController.d.ts +15 -15
  142. package/dist/types/PeerConnectionController/AggregatedStats.d.ts +82 -82
  143. package/dist/types/PeerConnectionController/CandidatePairStats.d.ts +22 -22
  144. package/dist/types/PeerConnectionController/CandidateStat.d.ts +13 -13
  145. package/dist/types/PeerConnectionController/CodecStats.d.ts +14 -14
  146. package/dist/types/PeerConnectionController/DataChannelStats.d.ts +15 -15
  147. package/dist/types/PeerConnectionController/InboundRTPStats.d.ts +141 -141
  148. package/dist/types/PeerConnectionController/InboundTrackStats.d.ts +32 -32
  149. package/dist/types/PeerConnectionController/OutBoundRTPStats.d.ts +23 -23
  150. package/dist/types/PeerConnectionController/PeerConnectionController.d.ts +143 -143
  151. package/dist/types/PeerConnectionController/SessionStats.d.ts +8 -8
  152. package/dist/types/PeerConnectionController/StreamStats.d.ts +9 -9
  153. package/dist/types/PixelStreaming/PixelStreaming.d.ts +271 -271
  154. package/dist/types/UI/OnScreenKeyboard.d.ts +30 -30
  155. package/dist/types/UeInstanceMessage/ResponseController.d.ts +19 -19
  156. package/dist/types/UeInstanceMessage/SendMessageController.d.ts +18 -18
  157. package/dist/types/UeInstanceMessage/StreamMessageController.d.ts +29 -29
  158. package/dist/types/UeInstanceMessage/ToStreamerMessagesController.d.ts +32 -32
  159. package/dist/types/Util/EventEmitter.d.ts +429 -429
  160. package/dist/types/Util/FileUtil.d.ts +32 -32
  161. package/dist/types/Util/IURLSearchParams.d.ts +9 -9
  162. package/dist/types/Util/InputCoordTranslator.d.ts +29 -29
  163. package/dist/types/Util/RTCUtils.d.ts +8 -8
  164. package/dist/types/VideoPlayer/StreamController.d.ts +22 -22
  165. package/dist/types/VideoPlayer/VideoPlayer.d.ts +78 -78
  166. package/dist/types/WebRtcPlayer/WebRtcPlayerController.d.ts +379 -379
  167. package/dist/types/WebXR/WebXRController.d.ts +42 -42
  168. package/dist/types/pixelstreamingfrontend.d.ts +23 -23
  169. package/package.json +45 -45
@@ -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