@epicgames-ps/lib-pixelstreamingfrontend-ue5.5 0.1.4 → 0.2.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 (94) hide show
  1. package/.eslintrc.js +1 -1
  2. package/.prettierrc.json +1 -0
  3. package/dist/lib-pixelstreamingfrontend.esm.js +1 -1
  4. package/dist/lib-pixelstreamingfrontend.js +1 -1
  5. package/package.json +6 -5
  6. package/src/AFK/AFKController.ts +10 -32
  7. package/src/Config/Config.ts +179 -201
  8. package/src/Config/SettingBase.ts +61 -2
  9. package/src/Config/SettingFlag.ts +10 -48
  10. package/src/Config/SettingNumber.ts +10 -28
  11. package/src/Config/SettingOption.ts +13 -46
  12. package/src/Config/SettingText.ts +9 -37
  13. package/src/DataChannel/DataChannelController.ts +6 -26
  14. package/src/DataChannel/DataChannelLatencyTestController.ts +38 -33
  15. package/src/DataChannel/DataChannelLatencyTestResults.ts +8 -10
  16. package/src/DataChannel/DataChannelSender.ts +5 -15
  17. package/src/DataChannel/LatencyTestResults.ts +5 -15
  18. package/src/FreezeFrame/FreezeFrame.ts +7 -19
  19. package/src/FreezeFrame/FreezeFrameController.ts +3 -14
  20. package/src/Inputs/GamepadController.ts +123 -221
  21. package/src/Inputs/GamepadTypes.ts +23 -0
  22. package/src/Inputs/IInputController.ts +17 -0
  23. package/src/Inputs/InputClassesFactory.ts +38 -45
  24. package/src/Inputs/KeyCodes.ts +114 -0
  25. package/src/Inputs/KeyboardController.ts +49 -232
  26. package/src/Inputs/MouseController.ts +71 -297
  27. package/src/Inputs/MouseControllerHovering.ts +118 -0
  28. package/src/Inputs/MouseControllerLocked.ts +194 -0
  29. package/src/Inputs/TouchController.ts +49 -105
  30. package/src/Inputs/TouchControllerFake.ts +132 -0
  31. package/src/Inputs/XRGamepadController.ts +35 -44
  32. package/src/PeerConnectionController/AggregatedStats.ts +26 -54
  33. package/src/PeerConnectionController/CandidatePairStats.ts +1 -1
  34. package/src/PeerConnectionController/CandidateStat.ts +1 -1
  35. package/src/PeerConnectionController/PeerConnectionController.ts +177 -162
  36. package/src/PixelStreaming/PixelStreaming.ts +174 -226
  37. package/src/UI/OnScreenKeyboard.ts +14 -9
  38. package/src/UeInstanceMessage/ResponseController.ts +6 -15
  39. package/src/UeInstanceMessage/SendMessageController.ts +16 -18
  40. package/src/UeInstanceMessage/StreamMessageController.ts +3 -12
  41. package/src/UeInstanceMessage/ToStreamerMessagesController.ts +3 -9
  42. package/src/Util/EventEmitter.ts +17 -22
  43. package/src/Util/FileUtil.ts +11 -34
  44. package/src/Util/IURLSearchParams.ts +25 -0
  45. package/src/Util/InputCoordTranslator.ts +73 -0
  46. package/src/Util/RTCUtils.ts +23 -15
  47. package/src/VideoPlayer/StreamController.ts +6 -23
  48. package/src/VideoPlayer/VideoPlayer.ts +9 -30
  49. package/src/WebRtcPlayer/WebRtcPlayerController.ts +328 -690
  50. package/src/WebXR/WebXRController.ts +82 -94
  51. package/src/pixelstreamingfrontend.ts +6 -10
  52. package/types/AFK/AFKController.d.ts +0 -1
  53. package/types/Config/Config.d.ts +6 -5
  54. package/types/Config/SettingBase.d.ts +13 -0
  55. package/types/Config/SettingFlag.d.ts +1 -10
  56. package/types/Config/SettingNumber.d.ts +1 -5
  57. package/types/Config/SettingOption.d.ts +1 -10
  58. package/types/Config/SettingText.d.ts +1 -9
  59. package/types/DataChannel/DataChannelLatencyTestController.d.ts +1 -1
  60. package/types/Inputs/GamepadController.d.ts +22 -46
  61. package/types/Inputs/GamepadTypes.d.ts +7 -0
  62. package/types/Inputs/IInputController.d.ts +16 -0
  63. package/types/Inputs/InputClassesFactory.d.ts +7 -8
  64. package/types/Inputs/KeyCodes.d.ts +5 -0
  65. package/types/Inputs/KeyboardController.d.ts +17 -45
  66. package/types/Inputs/MouseController.d.ts +33 -68
  67. package/types/Inputs/MouseControllerHovering.d.ts +26 -0
  68. package/types/Inputs/MouseControllerLocked.d.ts +31 -0
  69. package/types/Inputs/TouchController.d.ts +19 -44
  70. package/types/Inputs/TouchControllerFake.d.ts +29 -0
  71. package/types/Inputs/XRGamepadController.d.ts +0 -7
  72. package/types/PeerConnectionController/PeerConnectionController.d.ts +4 -1
  73. package/types/PixelStreaming/PixelStreaming.d.ts +14 -2
  74. package/types/UI/OnScreenKeyboard.d.ts +2 -2
  75. package/types/Util/EventEmitter.d.ts +1 -1
  76. package/types/Util/IURLSearchParams.d.ts +9 -0
  77. package/types/Util/InputCoordTranslator.d.ts +29 -0
  78. package/types/VideoPlayer/StreamController.d.ts +0 -2
  79. package/types/WebRtcPlayer/WebRtcPlayerController.d.ts +19 -17
  80. package/types/pixelstreamingfrontend.d.ts +1 -1
  81. package/src/Inputs/FakeTouchController.ts +0 -199
  82. package/src/Inputs/HoveringMouseEvents.ts +0 -192
  83. package/src/Inputs/IMouseEvents.ts +0 -64
  84. package/src/Inputs/ITouchController.ts +0 -29
  85. package/src/Inputs/LockedMouseEvents.ts +0 -287
  86. package/src/Util/CoordinateConverter.ts +0 -290
  87. package/src/Util/EventListenerTracker.ts +0 -29
  88. package/types/Inputs/FakeTouchController.d.ts +0 -61
  89. package/types/Inputs/HoveringMouseEvents.d.ts +0 -56
  90. package/types/Inputs/IMouseEvents.d.ts +0 -53
  91. package/types/Inputs/ITouchController.d.ts +0 -24
  92. package/types/Inputs/LockedMouseEvents.d.ts +0 -80
  93. package/types/Util/CoordinateConverter.d.ts +0 -100
  94. package/types/Util/EventListenerTracker.d.ts +0 -14
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epicgames-ps/lib-pixelstreamingfrontend-ue5.5",
3
- "version": "0.1.4",
3
+ "version": "0.2.1",
4
4
  "description": "Frontend library for Unreal Engine 5.5 Pixel Streaming",
5
5
  "main": "dist/lib-pixelstreamingfrontend.js",
6
6
  "module": "dist/lib-pixelstreamingfrontend.esm.js",
@@ -21,9 +21,11 @@
21
21
  "@typescript-eslint/eslint-plugin": "^6.21.0",
22
22
  "cspell": "^4.1.0",
23
23
  "eslint": "^8.11.0",
24
+ "eslint-config-prettier": "^9.1.0",
25
+ "eslint-plugin-prettier": "^5.2.1",
24
26
  "jest": "^27.5.1",
25
27
  "jest-environment-jsdom": "27.5.1",
26
- "prettier": "2.8.3",
28
+ "prettier": "3.3.3",
27
29
  "ts-jest": "27.1.5",
28
30
  "ts-loader": "^9.4.2",
29
31
  "typedoc": "^0.23.24",
@@ -32,8 +34,8 @@
32
34
  "webpack-cli": "^5.0.1"
33
35
  },
34
36
  "dependencies": {
35
- "sdp": "^3.1.0",
36
- "@epicgames-ps/lib-pixelstreamingcommon-ue5.5": "^0.0.14"
37
+ "@epicgames-ps/lib-pixelstreamingcommon-ue5.5": "^0.0.15",
38
+ "sdp": "^3.1.0"
37
39
  },
38
40
  "repository": {
39
41
  "type": "git",
@@ -45,4 +47,3 @@
45
47
  "access": "public"
46
48
  }
47
49
  }
48
-
@@ -12,7 +12,6 @@ import {
12
12
 
13
13
  export class AFKController {
14
14
  // time out logic details
15
- closeTimeout = 10;
16
15
  active = false;
17
16
  countdownActive = false;
18
17
  warnTimer: ReturnType<typeof setTimeout> = undefined;
@@ -24,18 +23,12 @@ export class AFKController {
24
23
 
25
24
  onAFKTimedOutCallback: () => void;
26
25
 
27
- constructor(
28
- config: Config,
29
- pixelStreaming: PixelStreaming,
30
- onDismissAfk: () => void
31
- ) {
26
+ constructor(config: Config, pixelStreaming: PixelStreaming, onDismissAfk: () => void) {
32
27
  this.config = config;
33
28
  this.pixelStreaming = pixelStreaming;
34
29
  this.onDismissAfk = onDismissAfk;
35
30
  this.onAFKTimedOutCallback = () => {
36
- console.log(
37
- 'AFK timed out, did you want to override this callback?'
38
- );
31
+ console.log('AFK timed out, did you want to override this callback?');
39
32
  };
40
33
  }
41
34
 
@@ -47,9 +40,7 @@ export class AFKController {
47
40
 
48
41
  if (this.active || this.countdownActive) {
49
42
  this.startAfkWarningTimer();
50
- this.pixelStreaming.dispatchEvent(
51
- new AfkWarningDeactivateEvent()
52
- );
43
+ this.pixelStreaming.dispatchEvent(new AfkWarningDeactivateEvent());
53
44
  }
54
45
  }
55
46
 
@@ -58,9 +49,7 @@ export class AFKController {
58
49
  */
59
50
  startAfkWarningTimer() {
60
51
  if (
61
- this.config.getNumericSettingValue(
62
- NumericParameters.AFKTimeoutSecs
63
- ) > 0 &&
52
+ this.config.getNumericSettingValue(NumericParameters.AFKTimeoutSecs) > 0 &&
64
53
  this.config.isFlagEnabled(Flags.AFKDetection)
65
54
  ) {
66
55
  this.active = true;
@@ -95,9 +84,7 @@ export class AFKController {
95
84
  clearTimeout(this.warnTimer);
96
85
  this.warnTimer = setTimeout(
97
86
  () => this.activateAfkEvent(),
98
- this.config.getNumericSettingValue(
99
- NumericParameters.AFKTimeoutSecs
100
- ) * 1000
87
+ this.config.getNumericSettingValue(NumericParameters.AFKTimeoutSecs) * 1000
101
88
  );
102
89
  }
103
90
  }
@@ -118,11 +105,9 @@ export class AFKController {
118
105
  );
119
106
 
120
107
  // update our countDown timer and overlay contents
121
- this.countDown = this.closeTimeout;
108
+ this.countDown = this.config.getNumericSettingValue(NumericParameters.AFKCountdownSecs);
122
109
  this.countdownActive = true;
123
- this.pixelStreaming.dispatchEvent(
124
- new AfkWarningUpdateEvent({ countDown: this.countDown })
125
- );
110
+ this.pixelStreaming.dispatchEvent(new AfkWarningUpdateEvent({ countDown: this.countDown }));
126
111
 
127
112
  // if we are in locked mouse exit pointerlock
128
113
  if (!this.config.isFlagEnabled(Flags.HoveringMouseMode)) {
@@ -137,21 +122,14 @@ export class AFKController {
137
122
  this.countDown--;
138
123
  if (this.countDown == 0) {
139
124
  // The user failed to click so hide the overlay and disconnect them.
140
- this.pixelStreaming.dispatchEvent(
141
- new AfkTimedOutEvent()
142
- );
125
+ this.pixelStreaming.dispatchEvent(new AfkTimedOutEvent());
143
126
  this.onAFKTimedOutCallback();
144
- Logger.Log(
145
- Logger.GetStackTrace(),
146
- 'You have been disconnected due to inactivity'
147
- );
127
+ Logger.Info('You have been disconnected due to inactivity');
148
128
 
149
129
  // switch off the afk feature as stream has closed
150
130
  this.stopAfkWarningTimer();
151
131
  } else {
152
- this.pixelStreaming.dispatchEvent(
153
- new AfkWarningUpdateEvent({ countDown: this.countDown })
154
- );
132
+ this.pixelStreaming.dispatchEvent(new AfkWarningUpdateEvent({ countDown: this.countDown }));
155
133
  }
156
134
  }, 1000);
157
135
  }