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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/.eslintrc.js +1 -1
  2. package/.prettierrc.json +1 -0
  3. package/dist/commonjs/AFK/AFKController.js +110 -0
  4. package/dist/commonjs/AFK/AFKController.js.map +1 -0
  5. package/dist/commonjs/Config/Config.js +560 -0
  6. package/dist/commonjs/Config/Config.js.map +1 -0
  7. package/dist/commonjs/Config/SettingBase.js +99 -0
  8. package/dist/commonjs/Config/SettingBase.js.map +1 -0
  9. package/dist/commonjs/Config/SettingFlag.js +50 -0
  10. package/dist/commonjs/Config/SettingFlag.js.map +1 -0
  11. package/dist/commonjs/Config/SettingNumber.js +84 -0
  12. package/dist/commonjs/Config/SettingNumber.js.map +1 -0
  13. package/dist/commonjs/Config/SettingOption.js +85 -0
  14. package/dist/commonjs/Config/SettingOption.js.map +1 -0
  15. package/dist/commonjs/Config/SettingText.js +43 -0
  16. package/dist/commonjs/Config/SettingText.js.map +1 -0
  17. package/dist/commonjs/DataChannel/DataChannelController.js +107 -0
  18. package/dist/commonjs/DataChannel/DataChannelController.js.map +1 -0
  19. package/dist/commonjs/DataChannel/DataChannelLatencyTestController.js +95 -0
  20. package/dist/commonjs/DataChannel/DataChannelLatencyTestController.js.map +1 -0
  21. package/dist/commonjs/DataChannel/DataChannelLatencyTestResults.js +19 -0
  22. package/dist/commonjs/DataChannel/DataChannelLatencyTestResults.js.map +1 -0
  23. package/dist/commonjs/DataChannel/DataChannelSender.js +44 -0
  24. package/dist/commonjs/DataChannel/DataChannelSender.js.map +1 -0
  25. package/dist/commonjs/DataChannel/InitialSettings.js +42 -0
  26. package/dist/commonjs/DataChannel/InitialSettings.js.map +1 -0
  27. package/dist/commonjs/DataChannel/LatencyTestResults.js +61 -0
  28. package/dist/commonjs/DataChannel/LatencyTestResults.js.map +1 -0
  29. package/dist/commonjs/FreezeFrame/FreezeFrame.js +94 -0
  30. package/dist/commonjs/FreezeFrame/FreezeFrame.js.map +1 -0
  31. package/dist/commonjs/FreezeFrame/FreezeFrameController.js +96 -0
  32. package/dist/commonjs/FreezeFrame/FreezeFrameController.js.map +1 -0
  33. package/dist/commonjs/Inputs/GamepadController.js +189 -0
  34. package/dist/commonjs/Inputs/GamepadController.js.map +1 -0
  35. package/dist/commonjs/Inputs/GamepadTypes.js +22 -0
  36. package/dist/commonjs/Inputs/GamepadTypes.js.map +1 -0
  37. package/dist/commonjs/Inputs/IInputController.js +3 -0
  38. package/dist/commonjs/Inputs/IInputController.js.map +1 -0
  39. package/dist/commonjs/Inputs/InputClassesFactory.js +97 -0
  40. package/dist/commonjs/Inputs/InputClassesFactory.js.map +1 -0
  41. package/dist/commonjs/Inputs/KeyCodes.js +113 -0
  42. package/dist/commonjs/Inputs/KeyCodes.js.map +1 -0
  43. package/dist/commonjs/Inputs/KeyboardController.js +138 -0
  44. package/dist/commonjs/Inputs/KeyboardController.js.map +1 -0
  45. package/dist/commonjs/Inputs/MouseButtons.js +29 -0
  46. package/dist/commonjs/Inputs/MouseButtons.js.map +1 -0
  47. package/dist/commonjs/Inputs/MouseController.js +98 -0
  48. package/dist/commonjs/Inputs/MouseController.js.map +1 -0
  49. package/dist/commonjs/Inputs/MouseControllerHovering.js +94 -0
  50. package/dist/commonjs/Inputs/MouseControllerHovering.js.map +1 -0
  51. package/dist/commonjs/Inputs/MouseControllerLocked.js +154 -0
  52. package/dist/commonjs/Inputs/MouseControllerLocked.js.map +1 -0
  53. package/dist/commonjs/Inputs/SpecialKeyCodes.js +20 -0
  54. package/dist/commonjs/Inputs/SpecialKeyCodes.js.map +1 -0
  55. package/dist/commonjs/Inputs/TouchController.js +124 -0
  56. package/dist/commonjs/Inputs/TouchController.js.map +1 -0
  57. package/dist/commonjs/Inputs/TouchControllerFake.js +92 -0
  58. package/dist/commonjs/Inputs/TouchControllerFake.js.map +1 -0
  59. package/dist/commonjs/Inputs/XRGamepadController.js +125 -0
  60. package/dist/commonjs/Inputs/XRGamepadController.js.map +1 -0
  61. package/dist/commonjs/PeerConnectionController/AggregatedStats.js +253 -0
  62. package/dist/commonjs/PeerConnectionController/AggregatedStats.js.map +1 -0
  63. package/dist/commonjs/PeerConnectionController/CandidatePairStats.js +11 -0
  64. package/dist/commonjs/PeerConnectionController/CandidatePairStats.js.map +1 -0
  65. package/dist/commonjs/PeerConnectionController/CandidateStat.js +11 -0
  66. package/dist/commonjs/PeerConnectionController/CandidateStat.js.map +1 -0
  67. package/dist/commonjs/PeerConnectionController/CodecStats.js +11 -0
  68. package/dist/commonjs/PeerConnectionController/CodecStats.js.map +1 -0
  69. package/dist/commonjs/PeerConnectionController/DataChannelStats.js +11 -0
  70. package/dist/commonjs/PeerConnectionController/DataChannelStats.js.map +1 -0
  71. package/dist/commonjs/PeerConnectionController/InboundRTPStats.js +23 -0
  72. package/dist/commonjs/PeerConnectionController/InboundRTPStats.js.map +1 -0
  73. package/dist/commonjs/PeerConnectionController/InboundTrackStats.js +11 -0
  74. package/dist/commonjs/PeerConnectionController/InboundTrackStats.js.map +1 -0
  75. package/dist/commonjs/PeerConnectionController/OutBoundRTPStats.js +17 -0
  76. package/dist/commonjs/PeerConnectionController/OutBoundRTPStats.js.map +1 -0
  77. package/dist/commonjs/PeerConnectionController/PeerConnectionController.js +585 -0
  78. package/dist/commonjs/PeerConnectionController/PeerConnectionController.js.map +1 -0
  79. package/dist/commonjs/PeerConnectionController/SessionStats.js +11 -0
  80. package/dist/commonjs/PeerConnectionController/SessionStats.js.map +1 -0
  81. package/dist/commonjs/PeerConnectionController/StreamStats.js +11 -0
  82. package/dist/commonjs/PeerConnectionController/StreamStats.js.map +1 -0
  83. package/dist/commonjs/PixelStreaming/PixelStreaming.js +608 -0
  84. package/dist/commonjs/PixelStreaming/PixelStreaming.js.map +1 -0
  85. package/dist/commonjs/UI/OnScreenKeyboard.js +83 -0
  86. package/dist/commonjs/UI/OnScreenKeyboard.js.map +1 -0
  87. package/dist/commonjs/UeInstanceMessage/ResponseController.js +39 -0
  88. package/dist/commonjs/UeInstanceMessage/ResponseController.js.map +1 -0
  89. package/dist/commonjs/UeInstanceMessage/SendMessageController.js +121 -0
  90. package/dist/commonjs/UeInstanceMessage/SendMessageController.js.map +1 -0
  91. package/dist/commonjs/UeInstanceMessage/StreamMessageController.js +211 -0
  92. package/dist/commonjs/UeInstanceMessage/StreamMessageController.js.map +1 -0
  93. package/dist/commonjs/UeInstanceMessage/ToStreamerMessagesController.js +50 -0
  94. package/dist/commonjs/UeInstanceMessage/ToStreamerMessagesController.js.map +1 -0
  95. package/dist/commonjs/Util/EventEmitter.js +387 -0
  96. package/dist/commonjs/Util/EventEmitter.js.map +1 -0
  97. package/dist/commonjs/Util/FileUtil.js +109 -0
  98. package/dist/commonjs/Util/FileUtil.js.map +1 -0
  99. package/dist/commonjs/Util/IURLSearchParams.js +26 -0
  100. package/dist/commonjs/Util/IURLSearchParams.js.map +1 -0
  101. package/dist/commonjs/Util/InputCoordTranslator.js +50 -0
  102. package/dist/commonjs/Util/InputCoordTranslator.js.map +1 -0
  103. package/dist/commonjs/Util/RTCUtils.js +41 -0
  104. package/dist/commonjs/Util/RTCUtils.js.map +1 -0
  105. package/dist/commonjs/VideoPlayer/StreamController.js +68 -0
  106. package/dist/commonjs/VideoPlayer/StreamController.js.map +1 -0
  107. package/dist/commonjs/VideoPlayer/VideoPlayer.js +178 -0
  108. package/dist/commonjs/VideoPlayer/VideoPlayer.js.map +1 -0
  109. package/dist/commonjs/WebRtcPlayer/WebRtcPlayerController.js +1224 -0
  110. package/dist/commonjs/WebRtcPlayer/WebRtcPlayerController.js.map +1 -0
  111. package/dist/commonjs/WebXR/WebXRController.js +361 -0
  112. package/dist/commonjs/WebXR/WebXRController.js.map +1 -0
  113. package/dist/commonjs/pixelstreamingfrontend.js +71 -0
  114. package/dist/commonjs/pixelstreamingfrontend.js.map +1 -0
  115. package/dist/esm/AFK/AFKController.js +106 -0
  116. package/dist/esm/AFK/AFKController.js.map +1 -0
  117. package/dist/esm/Config/Config.js +552 -0
  118. package/dist/esm/Config/Config.js.map +1 -0
  119. package/dist/esm/Config/SettingBase.js +95 -0
  120. package/dist/esm/Config/SettingBase.js.map +1 -0
  121. package/dist/esm/Config/SettingFlag.js +46 -0
  122. package/dist/esm/Config/SettingFlag.js.map +1 -0
  123. package/dist/esm/Config/SettingNumber.js +80 -0
  124. package/dist/esm/Config/SettingNumber.js.map +1 -0
  125. package/dist/esm/Config/SettingOption.js +81 -0
  126. package/dist/esm/Config/SettingOption.js.map +1 -0
  127. package/dist/esm/Config/SettingText.js +39 -0
  128. package/dist/esm/Config/SettingText.js.map +1 -0
  129. package/dist/esm/DataChannel/DataChannelController.js +103 -0
  130. package/dist/esm/DataChannel/DataChannelController.js.map +1 -0
  131. package/dist/esm/DataChannel/DataChannelLatencyTestController.js +91 -0
  132. package/dist/esm/DataChannel/DataChannelLatencyTestController.js.map +1 -0
  133. package/dist/esm/DataChannel/DataChannelLatencyTestResults.js +15 -0
  134. package/dist/esm/DataChannel/DataChannelLatencyTestResults.js.map +1 -0
  135. package/dist/esm/DataChannel/DataChannelSender.js +40 -0
  136. package/dist/esm/DataChannel/DataChannelSender.js.map +1 -0
  137. package/dist/esm/DataChannel/InitialSettings.js +35 -0
  138. package/dist/esm/DataChannel/InitialSettings.js.map +1 -0
  139. package/dist/esm/DataChannel/LatencyTestResults.js +57 -0
  140. package/dist/esm/DataChannel/LatencyTestResults.js.map +1 -0
  141. package/dist/esm/FreezeFrame/FreezeFrame.js +90 -0
  142. package/dist/esm/FreezeFrame/FreezeFrame.js.map +1 -0
  143. package/dist/esm/FreezeFrame/FreezeFrameController.js +92 -0
  144. package/dist/esm/FreezeFrame/FreezeFrameController.js.map +1 -0
  145. package/dist/esm/Inputs/GamepadController.js +185 -0
  146. package/dist/esm/Inputs/GamepadController.js.map +1 -0
  147. package/dist/esm/Inputs/GamepadTypes.js +18 -0
  148. package/dist/esm/Inputs/GamepadTypes.js.map +1 -0
  149. package/dist/esm/Inputs/IInputController.js +2 -0
  150. package/dist/esm/Inputs/IInputController.js.map +1 -0
  151. package/dist/esm/Inputs/InputClassesFactory.js +92 -0
  152. package/dist/esm/Inputs/InputClassesFactory.js.map +1 -0
  153. package/dist/esm/Inputs/KeyCodes.js +110 -0
  154. package/dist/esm/Inputs/KeyCodes.js.map +1 -0
  155. package/dist/esm/Inputs/KeyboardController.js +134 -0
  156. package/dist/esm/Inputs/KeyboardController.js.map +1 -0
  157. package/dist/esm/Inputs/MouseButtons.js +24 -0
  158. package/dist/esm/Inputs/MouseButtons.js.map +1 -0
  159. package/dist/esm/Inputs/MouseController.js +94 -0
  160. package/dist/esm/Inputs/MouseController.js.map +1 -0
  161. package/dist/esm/Inputs/MouseControllerHovering.js +90 -0
  162. package/dist/esm/Inputs/MouseControllerHovering.js.map +1 -0
  163. package/dist/esm/Inputs/MouseControllerLocked.js +150 -0
  164. package/dist/esm/Inputs/MouseControllerLocked.js.map +1 -0
  165. package/dist/esm/Inputs/SpecialKeyCodes.js +16 -0
  166. package/dist/esm/Inputs/SpecialKeyCodes.js.map +1 -0
  167. package/dist/esm/Inputs/TouchController.js +120 -0
  168. package/dist/esm/Inputs/TouchController.js.map +1 -0
  169. package/dist/esm/Inputs/TouchControllerFake.js +88 -0
  170. package/dist/esm/Inputs/TouchControllerFake.js.map +1 -0
  171. package/dist/esm/Inputs/XRGamepadController.js +121 -0
  172. package/dist/esm/Inputs/XRGamepadController.js.map +1 -0
  173. package/dist/esm/PeerConnectionController/AggregatedStats.js +249 -0
  174. package/dist/esm/PeerConnectionController/AggregatedStats.js.map +1 -0
  175. package/dist/esm/PeerConnectionController/CandidatePairStats.js +7 -0
  176. package/dist/esm/PeerConnectionController/CandidatePairStats.js.map +1 -0
  177. package/dist/esm/PeerConnectionController/CandidateStat.js +7 -0
  178. package/dist/esm/PeerConnectionController/CandidateStat.js.map +1 -0
  179. package/dist/esm/PeerConnectionController/CodecStats.js +7 -0
  180. package/dist/esm/PeerConnectionController/CodecStats.js.map +1 -0
  181. package/dist/esm/PeerConnectionController/DataChannelStats.js +7 -0
  182. package/dist/esm/PeerConnectionController/DataChannelStats.js.map +1 -0
  183. package/dist/esm/PeerConnectionController/InboundRTPStats.js +17 -0
  184. package/dist/esm/PeerConnectionController/InboundRTPStats.js.map +1 -0
  185. package/dist/esm/PeerConnectionController/InboundTrackStats.js +7 -0
  186. package/dist/esm/PeerConnectionController/InboundTrackStats.js.map +1 -0
  187. package/dist/esm/PeerConnectionController/OutBoundRTPStats.js +12 -0
  188. package/dist/esm/PeerConnectionController/OutBoundRTPStats.js.map +1 -0
  189. package/dist/esm/PeerConnectionController/PeerConnectionController.js +581 -0
  190. package/dist/esm/PeerConnectionController/PeerConnectionController.js.map +1 -0
  191. package/dist/esm/PeerConnectionController/SessionStats.js +7 -0
  192. package/dist/esm/PeerConnectionController/SessionStats.js.map +1 -0
  193. package/dist/esm/PeerConnectionController/StreamStats.js +7 -0
  194. package/dist/esm/PeerConnectionController/StreamStats.js.map +1 -0
  195. package/dist/esm/PixelStreaming/PixelStreaming.js +604 -0
  196. package/dist/esm/PixelStreaming/PixelStreaming.js.map +1 -0
  197. package/dist/esm/UI/OnScreenKeyboard.js +79 -0
  198. package/dist/esm/UI/OnScreenKeyboard.js.map +1 -0
  199. package/dist/esm/UeInstanceMessage/ResponseController.js +35 -0
  200. package/dist/esm/UeInstanceMessage/ResponseController.js.map +1 -0
  201. package/dist/esm/UeInstanceMessage/SendMessageController.js +117 -0
  202. package/dist/esm/UeInstanceMessage/SendMessageController.js.map +1 -0
  203. package/dist/esm/UeInstanceMessage/StreamMessageController.js +206 -0
  204. package/dist/esm/UeInstanceMessage/StreamMessageController.js.map +1 -0
  205. package/dist/esm/UeInstanceMessage/ToStreamerMessagesController.js +46 -0
  206. package/dist/esm/UeInstanceMessage/ToStreamerMessagesController.js.map +1 -0
  207. package/dist/esm/Util/EventEmitter.js +346 -0
  208. package/dist/esm/Util/EventEmitter.js.map +1 -0
  209. package/dist/esm/Util/FileUtil.js +104 -0
  210. package/dist/esm/Util/FileUtil.js.map +1 -0
  211. package/dist/esm/Util/IURLSearchParams.js +22 -0
  212. package/dist/esm/Util/IURLSearchParams.js.map +1 -0
  213. package/dist/esm/Util/InputCoordTranslator.js +46 -0
  214. package/dist/esm/Util/InputCoordTranslator.js.map +1 -0
  215. package/dist/esm/Util/RTCUtils.js +37 -0
  216. package/dist/esm/Util/RTCUtils.js.map +1 -0
  217. package/dist/esm/VideoPlayer/StreamController.js +64 -0
  218. package/dist/esm/VideoPlayer/StreamController.js.map +1 -0
  219. package/dist/esm/VideoPlayer/VideoPlayer.js +174 -0
  220. package/dist/esm/VideoPlayer/VideoPlayer.js.map +1 -0
  221. package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js +1220 -0
  222. package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js.map +1 -0
  223. package/dist/esm/WebXR/WebXRController.js +357 -0
  224. package/dist/esm/WebXR/WebXRController.js.map +1 -0
  225. package/dist/esm/pixelstreamingfrontend.js +25 -0
  226. package/dist/esm/pixelstreamingfrontend.js.map +1 -0
  227. package/{types → dist/types}/AFK/AFKController.d.ts +38 -39
  228. package/{types → dist/types}/Config/Config.d.ts +220 -219
  229. package/{types → dist/types}/Config/SettingBase.d.ts +43 -30
  230. package/{types → dist/types}/Config/SettingFlag.d.ts +24 -33
  231. package/{types → dist/types}/Config/SettingNumber.d.ts +41 -45
  232. package/{types → dist/types}/Config/SettingOption.d.ts +41 -43
  233. package/{types → dist/types}/Config/SettingText.d.ts +21 -29
  234. package/{types → dist/types}/DataChannel/DataChannelController.d.ts +59 -59
  235. package/{types → dist/types}/DataChannel/DataChannelLatencyTestController.d.ts +25 -26
  236. package/{types → dist/types}/DataChannel/DataChannelLatencyTestResults.d.ts +46 -46
  237. package/{types → dist/types}/DataChannel/DataChannelSender.d.ts +21 -21
  238. package/{types → dist/types}/DataChannel/InitialSettings.d.ts +44 -44
  239. package/{types → dist/types}/DataChannel/LatencyTestResults.d.ts +31 -31
  240. package/{types → dist/types}/FreezeFrame/FreezeFrame.d.ts +36 -36
  241. package/{types → dist/types}/FreezeFrame/FreezeFrameController.d.ts +37 -37
  242. package/dist/types/Inputs/GamepadController.d.ts +61 -0
  243. package/dist/types/Inputs/GamepadTypes.d.ts +15 -0
  244. package/dist/types/Inputs/IInputController.d.ts +16 -0
  245. package/{types → dist/types}/Inputs/InputClassesFactory.d.ts +53 -54
  246. package/dist/types/Inputs/KeyCodes.d.ts +5 -0
  247. package/dist/types/Inputs/KeyboardController.d.ts +34 -0
  248. package/{types → dist/types}/Inputs/MouseButtons.d.ts +22 -22
  249. package/dist/types/Inputs/MouseController.d.ts +40 -0
  250. package/dist/types/Inputs/MouseControllerHovering.d.ts +26 -0
  251. package/dist/types/Inputs/MouseControllerLocked.d.ts +31 -0
  252. package/{types → dist/types}/Inputs/SpecialKeyCodes.d.ts +14 -14
  253. package/dist/types/Inputs/TouchController.d.ts +28 -0
  254. package/dist/types/Inputs/TouchControllerFake.d.ts +29 -0
  255. package/{types → dist/types}/Inputs/XRGamepadController.d.ts +15 -22
  256. package/{types → dist/types}/PeerConnectionController/AggregatedStats.d.ts +82 -84
  257. package/{types → dist/types}/PeerConnectionController/CandidatePairStats.d.ts +22 -22
  258. package/{types → dist/types}/PeerConnectionController/CandidateStat.d.ts +13 -13
  259. package/{types → dist/types}/PeerConnectionController/CodecStats.d.ts +14 -14
  260. package/{types → dist/types}/PeerConnectionController/DataChannelStats.d.ts +15 -15
  261. package/{types → dist/types}/PeerConnectionController/InboundRTPStats.d.ts +141 -141
  262. package/{types → dist/types}/PeerConnectionController/InboundTrackStats.d.ts +32 -32
  263. package/{types → dist/types}/PeerConnectionController/OutBoundRTPStats.d.ts +23 -23
  264. package/{types → dist/types}/PeerConnectionController/PeerConnectionController.d.ts +143 -140
  265. package/{types → dist/types}/PeerConnectionController/SessionStats.d.ts +8 -8
  266. package/{types → dist/types}/PeerConnectionController/StreamStats.d.ts +9 -9
  267. package/{types → dist/types}/PixelStreaming/PixelStreaming.d.ts +271 -259
  268. package/{types → dist/types}/UI/OnScreenKeyboard.d.ts +30 -30
  269. package/{types → dist/types}/UeInstanceMessage/ResponseController.d.ts +19 -19
  270. package/{types → dist/types}/UeInstanceMessage/SendMessageController.d.ts +18 -18
  271. package/{types → dist/types}/UeInstanceMessage/StreamMessageController.d.ts +29 -29
  272. package/{types → dist/types}/UeInstanceMessage/ToStreamerMessagesController.d.ts +32 -32
  273. package/{types → dist/types}/Util/EventEmitter.d.ts +429 -429
  274. package/{types → dist/types}/Util/FileUtil.d.ts +32 -32
  275. package/dist/types/Util/IURLSearchParams.d.ts +9 -0
  276. package/dist/types/Util/InputCoordTranslator.d.ts +29 -0
  277. package/{types → dist/types}/Util/RTCUtils.d.ts +8 -8
  278. package/{types → dist/types}/VideoPlayer/StreamController.d.ts +22 -24
  279. package/{types → dist/types}/VideoPlayer/VideoPlayer.d.ts +78 -78
  280. package/{types → dist/types}/WebRtcPlayer/WebRtcPlayerController.d.ts +379 -377
  281. package/{types → dist/types}/WebXR/WebXRController.d.ts +42 -42
  282. package/{types → dist/types}/pixelstreamingfrontend.d.ts +23 -22
  283. package/package.json +14 -17
  284. package/readme.md +9 -1
  285. package/src/AFK/AFKController.ts +10 -32
  286. package/src/Config/Config.ts +232 -205
  287. package/src/Config/SettingBase.ts +61 -2
  288. package/src/Config/SettingFlag.ts +10 -48
  289. package/src/Config/SettingNumber.ts +23 -33
  290. package/src/Config/SettingOption.ts +41 -56
  291. package/src/Config/SettingText.ts +9 -37
  292. package/src/DataChannel/DataChannelController.ts +6 -26
  293. package/src/DataChannel/DataChannelLatencyTestController.ts +43 -38
  294. package/src/DataChannel/DataChannelLatencyTestResults.ts +8 -10
  295. package/src/DataChannel/DataChannelSender.ts +5 -15
  296. package/src/DataChannel/LatencyTestResults.ts +5 -15
  297. package/src/FreezeFrame/FreezeFrame.ts +7 -19
  298. package/src/FreezeFrame/FreezeFrameController.ts +3 -14
  299. package/src/Inputs/GamepadController.ts +123 -221
  300. package/src/Inputs/GamepadTypes.ts +23 -0
  301. package/src/Inputs/IInputController.ts +17 -0
  302. package/src/Inputs/InputClassesFactory.ts +38 -45
  303. package/src/Inputs/KeyCodes.ts +114 -0
  304. package/src/Inputs/KeyboardController.ts +49 -232
  305. package/src/Inputs/MouseController.ts +71 -297
  306. package/src/Inputs/MouseControllerHovering.ts +118 -0
  307. package/src/Inputs/MouseControllerLocked.ts +194 -0
  308. package/src/Inputs/TouchController.ts +49 -105
  309. package/src/Inputs/TouchControllerFake.ts +132 -0
  310. package/src/Inputs/XRGamepadController.ts +35 -44
  311. package/src/PeerConnectionController/AggregatedStats.ts +46 -75
  312. package/src/PeerConnectionController/CandidatePairStats.ts +1 -1
  313. package/src/PeerConnectionController/CandidateStat.ts +1 -1
  314. package/src/PeerConnectionController/PeerConnectionController.ts +214 -170
  315. package/src/PixelStreaming/PixelStreaming.ts +174 -226
  316. package/src/UI/OnScreenKeyboard.ts +14 -9
  317. package/src/UeInstanceMessage/ResponseController.ts +6 -15
  318. package/src/UeInstanceMessage/SendMessageController.ts +16 -18
  319. package/src/UeInstanceMessage/StreamMessageController.ts +3 -12
  320. package/src/UeInstanceMessage/ToStreamerMessagesController.ts +3 -9
  321. package/src/Util/EventEmitter.ts +17 -22
  322. package/src/Util/FileUtil.ts +11 -34
  323. package/src/Util/IURLSearchParams.ts +25 -0
  324. package/src/Util/InputCoordTranslator.ts +73 -0
  325. package/src/Util/RTCUtils.ts +23 -15
  326. package/src/VideoPlayer/StreamController.ts +6 -23
  327. package/src/VideoPlayer/VideoPlayer.ts +9 -30
  328. package/src/WebRtcPlayer/WebRtcPlayerController.ts +328 -690
  329. package/src/WebXR/WebXRController.ts +82 -94
  330. package/src/pixelstreamingfrontend.ts +8 -6
  331. package/tsconfig.cjs.json +9 -0
  332. package/tsconfig.esm.json +7 -0
  333. package/tsconfig.json +4 -6
  334. package/dist/lib-pixelstreamingfrontend.esm.js +0 -1
  335. package/dist/lib-pixelstreamingfrontend.js +0 -1
  336. package/src/Inputs/FakeTouchController.ts +0 -199
  337. package/src/Inputs/HoveringMouseEvents.ts +0 -192
  338. package/src/Inputs/IMouseEvents.ts +0 -64
  339. package/src/Inputs/ITouchController.ts +0 -29
  340. package/src/Inputs/LockedMouseEvents.ts +0 -287
  341. package/src/Util/CoordinateConverter.ts +0 -290
  342. package/src/Util/EventListenerTracker.ts +0 -29
  343. package/types/Inputs/FakeTouchController.d.ts +0 -61
  344. package/types/Inputs/GamepadController.d.ts +0 -85
  345. package/types/Inputs/GamepadTypes.d.ts +0 -8
  346. package/types/Inputs/HoveringMouseEvents.d.ts +0 -56
  347. package/types/Inputs/IMouseEvents.d.ts +0 -53
  348. package/types/Inputs/ITouchController.d.ts +0 -24
  349. package/types/Inputs/KeyboardController.d.ts +0 -62
  350. package/types/Inputs/LockedMouseEvents.d.ts +0 -80
  351. package/types/Inputs/MouseController.d.ts +0 -75
  352. package/types/Inputs/TouchController.d.ts +0 -53
  353. package/types/Util/CoordinateConverter.d.ts +0 -100
  354. package/types/Util/EventListenerTracker.d.ts +0 -14
  355. package/webpack.common.js +0 -35
  356. package/webpack.dev.js +0 -35
  357. package/webpack.prod.js +0 -36
@@ -3,14 +3,14 @@
3
3
  import { Logger } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
4
4
  import { WebRtcPlayerController } from '../WebRtcPlayer/WebRtcPlayerController';
5
5
  import { XRGamepadController } from '../Inputs/XRGamepadController';
6
- import { XrFrameEvent } from '../Util/EventEmitter'
6
+ import { XrFrameEvent } from '../Util/EventEmitter';
7
7
  import { Flags } from '../pixelstreamingfrontend';
8
8
 
9
9
  export class WebXRController {
10
10
  private xrSession: XRSession;
11
11
  private xrRefSpace: XRReferenceSpace;
12
12
  private gl: WebGL2RenderingContext;
13
- private xrViewerPose : XRViewerPose = null;
13
+ private xrViewerPose: XRViewerPose = null;
14
14
  // Used for comparisons to ensure two numbers are close enough.
15
15
  private EPSILON = 0.0000001;
16
16
 
@@ -43,9 +43,7 @@ export class WebXRController {
43
43
  constructor(webRtcPlayerController: WebRtcPlayerController) {
44
44
  this.xrSession = null;
45
45
  this.webRtcController = webRtcPlayerController;
46
- this.xrGamepadController = new XRGamepadController(
47
- this.webRtcController.streamMessageController
48
- );
46
+ this.xrGamepadController = new XRGamepadController(this.webRtcController.streamMessageController);
49
47
  this.onSessionEnded = new EventTarget();
50
48
  this.onSessionStarted = new EventTarget();
51
49
  this.onFrame = new EventTarget();
@@ -53,9 +51,8 @@ export class WebXRController {
53
51
 
54
52
  public xrClicked() {
55
53
  if (!this.xrSession) {
56
-
57
- if(!navigator.xr){
58
- Logger.Error(Logger.GetStackTrace(), "This browser does not support XR.");
54
+ if (!navigator.xr) {
55
+ Logger.Error('This browser does not support XR.');
59
56
  return;
60
57
  }
61
58
 
@@ -71,13 +68,15 @@ export class WebXRController {
71
68
  }
72
69
 
73
70
  onXrSessionEnded() {
74
- Logger.Log(Logger.GetStackTrace(), 'XR Session ended');
71
+ Logger.Info('XR Session ended');
75
72
  this.xrSession = null;
76
73
  this.onSessionEnded.dispatchEvent(new Event('xrSessionEnded'));
77
74
  }
78
75
 
79
76
  initGL() {
80
- if (this.gl) { return; }
77
+ if (this.gl) {
78
+ return;
79
+ }
81
80
  const canvas = document.createElement('canvas');
82
81
  this.gl = canvas.getContext('webgl2', {
83
82
  xrCompatible: true
@@ -88,10 +87,8 @@ export class WebXRController {
88
87
  }
89
88
 
90
89
  initShaders() {
91
-
92
90
  // shader source code
93
- const vertexShaderSource: string =
94
- `
91
+ const vertexShaderSource: string = `
95
92
  attribute vec2 a_position;
96
93
  attribute vec2 a_texCoord;
97
94
 
@@ -106,8 +103,7 @@ export class WebXRController {
106
103
  }
107
104
  `;
108
105
 
109
- const fragmentShaderSource: string =
110
- `
106
+ const fragmentShaderSource: string = `
111
107
  precision mediump float;
112
108
 
113
109
  // our texture
@@ -139,51 +135,28 @@ export class WebXRController {
139
135
  this.gl.useProgram(shaderProgram);
140
136
 
141
137
  // look up where vertex data needs to go
142
- this.positionLocation = this.gl.getAttribLocation(
143
- shaderProgram,
144
- 'a_position'
145
- );
146
- this.texcoordLocation = this.gl.getAttribLocation(
147
- shaderProgram,
148
- 'a_texCoord'
149
- );
138
+ this.positionLocation = this.gl.getAttribLocation(shaderProgram, 'a_position');
139
+ this.texcoordLocation = this.gl.getAttribLocation(shaderProgram, 'a_texCoord');
150
140
  }
151
141
 
152
- updateVideoTexture(){
153
-
154
- if(!this.videoTexture){
142
+ updateVideoTexture() {
143
+ if (!this.videoTexture) {
155
144
  // Create our texture that we use in our shader
156
145
  // and bind it once because we never use any other texture.
157
146
  this.videoTexture = this.gl.createTexture();
158
147
  this.gl.bindTexture(this.gl.TEXTURE_2D, this.videoTexture);
159
148
 
160
149
  // Set the parameters so we can render any size image.
161
- this.gl.texParameteri(
162
- this.gl.TEXTURE_2D,
163
- this.gl.TEXTURE_WRAP_S,
164
- this.gl.CLAMP_TO_EDGE
165
- );
166
- this.gl.texParameteri(
167
- this.gl.TEXTURE_2D,
168
- this.gl.TEXTURE_WRAP_T,
169
- this.gl.CLAMP_TO_EDGE
170
- );
171
- this.gl.texParameteri(
172
- this.gl.TEXTURE_2D,
173
- this.gl.TEXTURE_MIN_FILTER,
174
- this.gl.LINEAR
175
- );
176
- this.gl.texParameteri(
177
- this.gl.TEXTURE_2D,
178
- this.gl.TEXTURE_MAG_FILTER,
179
- this.gl.LINEAR
180
- );
150
+ this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, this.gl.CLAMP_TO_EDGE);
151
+ this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, this.gl.CLAMP_TO_EDGE);
152
+ this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MIN_FILTER, this.gl.LINEAR);
153
+ this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.LINEAR);
181
154
  }
182
155
 
183
156
  const videoHeight = this.webRtcController.videoPlayer.getVideoElement().videoHeight;
184
157
  const videoWidth = this.webRtcController.videoPlayer.getVideoElement().videoWidth;
185
158
 
186
- if(this.prevVideoHeight != videoHeight || this.prevVideoWidth != videoWidth){
159
+ if (this.prevVideoHeight != videoHeight || this.prevVideoWidth != videoWidth) {
187
160
  // Do full update of texture if dimensions do not match
188
161
  this.gl.texImage2D(
189
162
  this.gl.TEXTURE_2D,
@@ -216,7 +189,7 @@ export class WebXRController {
216
189
  this.prevVideoWidth = videoWidth;
217
190
  }
218
191
 
219
- initBuffers(){
192
+ initBuffers() {
220
193
  // Create out position buffer and its vertex shader attribute
221
194
  {
222
195
  // Create a buffer to put the the vertices of the plane we will draw the video stream onto
@@ -263,14 +236,7 @@ export class WebXRController {
263
236
  // The texture coordinates to apply for rectangle we are drawing
264
237
  this.gl.bufferData(
265
238
  this.gl.ARRAY_BUFFER,
266
- new Float32Array([
267
- 0.0, 0.0,
268
- 1.0, 0.0,
269
- 0.0, 1.0,
270
- 0.0, 1.0,
271
- 1.0, 0.0,
272
- 1.0, 1.0
273
- ]),
239
+ new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]),
274
240
  this.gl.STATIC_DRAW
275
241
  );
276
242
 
@@ -287,7 +253,7 @@ export class WebXRController {
287
253
  }
288
254
 
289
255
  onXrSessionStarted(session: XRSession) {
290
- Logger.Log(Logger.GetStackTrace(), 'XR Session started');
256
+ Logger.Info('XR Session started');
291
257
 
292
258
  this.xrSession = session;
293
259
  this.xrSession.addEventListener('end', () => {
@@ -308,9 +274,9 @@ export class WebXRController {
308
274
  });
309
275
 
310
276
  // Update target framerate to 90 fps if 90 fps is supported in this XR device
311
- if(this.xrSession.supportedFrameRates) {
277
+ if (this.xrSession.supportedFrameRates) {
312
278
  for (const frameRate of this.xrSession.supportedFrameRates) {
313
- if(frameRate == 90){
279
+ if (frameRate == 90) {
314
280
  session.updateTargetFrameRate(90);
315
281
  }
316
282
  }
@@ -323,16 +289,22 @@ export class WebXRController {
323
289
  this.onSessionStarted.dispatchEvent(new Event('xrSessionStarted'));
324
290
  }
325
291
 
326
- areArraysEqual(a: Float32Array, b: Float32Array) : boolean {
327
- return a.length === b.length && a.every((element, index) => Math.abs(element - b[index]) <= this.EPSILON);
292
+ areArraysEqual(a: Float32Array, b: Float32Array): boolean {
293
+ return (
294
+ a.length === b.length && a.every((element, index) => Math.abs(element - b[index]) <= this.EPSILON)
295
+ );
328
296
  }
329
297
 
330
- arePointsEqual(a: DOMPointReadOnly, b: DOMPointReadOnly) : boolean {
331
- return Math.abs(a.x - b.x) >= this.EPSILON && Math.abs(a.y - b.y) >= this.EPSILON && Math.abs(a.z - b.z) >= this.EPSILON;
298
+ arePointsEqual(a: DOMPointReadOnly, b: DOMPointReadOnly): boolean {
299
+ return (
300
+ Math.abs(a.x - b.x) >= this.EPSILON &&
301
+ Math.abs(a.y - b.y) >= this.EPSILON &&
302
+ Math.abs(a.z - b.z) >= this.EPSILON
303
+ );
332
304
  }
333
305
 
334
306
  sendXRDataToUE() {
335
- if(this.leftView == null || this.rightView == null) {
307
+ if (this.leftView == null || this.rightView == null) {
336
308
  return;
337
309
  }
338
310
 
@@ -341,10 +313,11 @@ export class WebXRController {
341
313
  // the `XREyeViews` is a much larger message and changes infrequently (e.g. only when user changes headset IPD).
342
314
  // Therefore, we only need to send it once on startup and then any time it changes.
343
315
  // The rest of the time we can send the `XRHMDTransform` message.
344
- let shouldSendEyeViews = this.lastSentLeftEyeProj == null ||
345
- this.lastSentRightEyeProj == null ||
346
- this.lastSentRelativeLeftEyePos == null ||
347
- this.lastSentRelativeRightEyePos == null;
316
+ let shouldSendEyeViews =
317
+ this.lastSentLeftEyeProj == null ||
318
+ this.lastSentRightEyeProj == null ||
319
+ this.lastSentRelativeLeftEyePos == null ||
320
+ this.lastSentRelativeRightEyePos == null;
348
321
 
349
322
  const leftEyeTrans = this.leftView.transform.matrix;
350
323
  const leftEyeProj = this.leftView.projectionMatrix;
@@ -353,7 +326,7 @@ export class WebXRController {
353
326
  const hmdTrans = this.xrViewerPose.transform.matrix;
354
327
 
355
328
  // Check if projection matrices have changed
356
- if(!shouldSendEyeViews && this.lastSentLeftEyeProj != null && this.lastSentRightEyeProj != null) {
329
+ if (!shouldSendEyeViews && this.lastSentLeftEyeProj != null && this.lastSentRightEyeProj != null) {
357
330
  const leftEyeProjUnchanged = this.areArraysEqual(leftEyeProj, this.lastSentLeftEyeProj);
358
331
  const rightEyeProjUnchanged = this.areArraysEqual(rightEyeProj, this.lastSentRightEyeProj);
359
332
  shouldSendEyeViews = leftEyeProjUnchanged == false || rightEyeProjUnchanged == false;
@@ -374,14 +347,24 @@ export class WebXRController {
374
347
  );
375
348
 
376
349
  // Check if relative eye pos has changed (e.g IPD changed)
377
- if(!shouldSendEyeViews && this.lastSentRelativeLeftEyePos != null && this.lastSentRelativeRightEyePos != null) {
378
- const leftEyePosUnchanged = this.arePointsEqual(leftEyeRelativePos, this.lastSentRelativeLeftEyePos);
379
- const rightEyePosUnchanged = this.arePointsEqual(rightEyeRelativePos, this.lastSentRelativeRightEyePos);
350
+ if (
351
+ !shouldSendEyeViews &&
352
+ this.lastSentRelativeLeftEyePos != null &&
353
+ this.lastSentRelativeRightEyePos != null
354
+ ) {
355
+ const leftEyePosUnchanged = this.arePointsEqual(
356
+ leftEyeRelativePos,
357
+ this.lastSentRelativeLeftEyePos
358
+ );
359
+ const rightEyePosUnchanged = this.arePointsEqual(
360
+ rightEyeRelativePos,
361
+ this.lastSentRelativeRightEyePos
362
+ );
380
363
  shouldSendEyeViews = leftEyePosUnchanged == false || rightEyePosUnchanged == false;
381
364
  // Note: We are not checking if EyeView rotation changes (as far as I know no HMD supports changing this value at runtime).
382
365
  }
383
366
 
384
- if(shouldSendEyeViews) {
367
+ if (shouldSendEyeViews) {
385
368
  // send transform (4x4) and projection matrix (4x4) data for each eye (left first, then right)
386
369
  // prettier-ignore
387
370
  this.webRtcController.streamMessageController.toStreamerHandlers.get('XREyeViews')([
@@ -415,15 +398,26 @@ export class WebXRController {
415
398
  this.lastSentRightEyeProj = rightEyeProj;
416
399
  this.lastSentRelativeLeftEyePos = leftEyeRelativePos;
417
400
  this.lastSentRelativeRightEyePos = rightEyeRelativePos;
418
- }
419
- else {
401
+ } else {
420
402
  // If we don't need to the entire eye views being sent just send the HMD transform
421
403
  this.webRtcController.streamMessageController.toStreamerHandlers.get('XRHMDTransform')([
422
404
  // HMD 4x4 transform
423
- hmdTrans[0], hmdTrans[4], hmdTrans[8], hmdTrans[12],
424
- hmdTrans[1], hmdTrans[5], hmdTrans[9], hmdTrans[13],
425
- hmdTrans[2], hmdTrans[6], hmdTrans[10], hmdTrans[14],
426
- hmdTrans[3], hmdTrans[7], hmdTrans[11], hmdTrans[15],
405
+ hmdTrans[0],
406
+ hmdTrans[4],
407
+ hmdTrans[8],
408
+ hmdTrans[12],
409
+ hmdTrans[1],
410
+ hmdTrans[5],
411
+ hmdTrans[9],
412
+ hmdTrans[13],
413
+ hmdTrans[2],
414
+ hmdTrans[6],
415
+ hmdTrans[10],
416
+ hmdTrans[14],
417
+ hmdTrans[3],
418
+ hmdTrans[7],
419
+ hmdTrans[11],
420
+ hmdTrans[15]
427
421
  ]);
428
422
  }
429
423
  }
@@ -432,7 +426,7 @@ export class WebXRController {
432
426
  this.xrViewerPose = frame.getViewerPose(this.xrRefSpace);
433
427
  if (this.xrViewerPose) {
434
428
  this.updateViews();
435
- if(this.leftView == null || this.rightView == null) {
429
+ if (this.leftView == null || this.rightView == null) {
436
430
  return;
437
431
  }
438
432
 
@@ -444,33 +438,27 @@ export class WebXRController {
444
438
  if (this.webRtcController.config.isFlagEnabled(Flags.XRControllerInput)) {
445
439
  this.xrSession.inputSources.forEach(
446
440
  (source: XRInputSource, _index: number, _array: XRInputSource[]) => {
447
- this.xrGamepadController.updateStatus(
448
- source,
449
- frame,
450
- this.xrRefSpace
451
- );
441
+ this.xrGamepadController.updateStatus(source, frame, this.xrRefSpace);
452
442
  },
453
443
  this
454
444
  );
455
445
  }
456
446
 
457
- this.xrSession.requestAnimationFrame(
458
- (time: DOMHighResTimeStamp, frame: XRFrame) =>
459
- this.onXrFrame(time, frame)
447
+ this.xrSession.requestAnimationFrame((time: DOMHighResTimeStamp, frame: XRFrame) =>
448
+ this.onXrFrame(time, frame)
460
449
  );
461
450
 
462
451
  this.onFrame.dispatchEvent(new XrFrameEvent({ time, frame }));
463
452
  }
464
453
 
465
454
  private updateViews() {
466
- if(!this.xrViewerPose) {
455
+ if (!this.xrViewerPose) {
467
456
  return;
468
457
  }
469
458
  for (const view of this.xrViewerPose.views) {
470
- if (view.eye === "left") {
459
+ if (view.eye === 'left') {
471
460
  this.leftView = view;
472
- }
473
- else if(view.eye === "right") {
461
+ } else if (view.eye === 'right') {
474
462
  this.rightView = view;
475
463
  }
476
464
  }
@@ -493,8 +481,8 @@ export class WebXRController {
493
481
  }
494
482
 
495
483
  static isSessionSupported(mode: XRSessionMode): Promise<boolean> {
496
- if (location.protocol !== "https:") {
497
- Logger.Info(null, "WebXR requires https, if you want WebXR use https.");
484
+ if (location.protocol !== 'https:') {
485
+ Logger.Info('WebXR requires https, if you want WebXR use https.');
498
486
  }
499
487
 
500
488
  if (navigator.xr) {
@@ -28,19 +28,21 @@ export { LatencyTestResults } from './DataChannel/LatencyTestResults';
28
28
  export {
29
29
  EncoderSettings,
30
30
  InitialSettings,
31
- WebRTCSettings
31
+ WebRTCSettings,
32
+ PixelStreamingSettings
32
33
  } from './DataChannel/InitialSettings';
33
34
  export { AggregatedStats } from './PeerConnectionController/AggregatedStats';
34
- export { UnquantizedDenormalizedUnsignedCoord as UnquantizedAndDenormalizeUnsigned } from './Util/CoordinateConverter';
35
+ export {
36
+ InputCoordTranslator,
37
+ UntranslatedCoordUnsigned as UnquantizedAndDenormalizeUnsigned
38
+ } from './Util/InputCoordTranslator';
35
39
  export { MessageDirection } from './UeInstanceMessage/StreamMessageController';
36
40
 
37
41
  export { CandidatePairStats } from './PeerConnectionController/CandidatePairStats';
38
42
  export { CandidateStat } from './PeerConnectionController/CandidateStat';
39
43
  export { DataChannelStats } from './PeerConnectionController/DataChannelStats';
40
- export {
41
- InboundAudioStats,
42
- InboundVideoStats
43
- } from './PeerConnectionController/InboundRTPStats';
44
+ export { InboundAudioStats, InboundVideoStats } from './PeerConnectionController/InboundRTPStats';
44
45
  export { OutBoundVideoStats } from './PeerConnectionController/OutBoundRTPStats';
46
+ export * from './DataChannel/DataChannelLatencyTestResults';
45
47
  export * from './Util/EventEmitter';
46
48
  export * from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist/commonjs",
5
+ "module": "commonjs",
6
+ "declaration": true,
7
+ "declarationDir": "./dist/types"
8
+ }
9
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist/esm",
5
+ "module": "ES6"
6
+ }
7
+ }
package/tsconfig.json CHANGED
@@ -1,16 +1,14 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "outDir": "./types",
3
+ "outDir": "./dist",
4
4
  "noImplicitAny": true,
5
- "module": "es6",
6
5
  "esModuleInterop": true,
7
6
  "target": "ES6",
8
- "moduleResolution": "node",
7
+ "moduleResolution": "nodenext",
9
8
  "sourceMap": true,
10
- "allowJs": true,
11
- "declaration": true
9
+ "allowJs": true
12
10
  },
13
- "lib": ["es2015"],
11
+ "lib": ["ES6"],
14
12
  "include": ["./src/*.ts"],
15
13
  "exclude": ["./src/**/*.test.ts"],
16
14
  "typedocOptions": {