@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
@@ -1,199 +0,0 @@
1
- // Copyright Epic Games, Inc. All Rights Reserved.
2
-
3
- import { CoordinateConverter } from '../Util/CoordinateConverter';
4
- import { StreamMessageController } from '../UeInstanceMessage/StreamMessageController';
5
- import { VideoPlayer } from '../VideoPlayer/VideoPlayer';
6
- import { ITouchController } from './ITouchController';
7
- import { MouseButton } from './MouseButtons';
8
- import { EventListenerTracker } from '../Util/EventListenerTracker';
9
-
10
- /**
11
- * Allows for the usage of fake touch events and implements ITouchController
12
- * @param dataChannelController - The controller for the Data channel
13
- * @param videoElementParent - The video player DOM element
14
- */
15
- export class FakeTouchController implements ITouchController {
16
- fakeTouchFinger: FakeTouchFinger;
17
- toStreamerMessagesProvider: StreamMessageController;
18
- videoElementProvider: VideoPlayer;
19
- coordinateConverter: CoordinateConverter;
20
- videoElementParentClientRect: DOMRect;
21
-
22
- // Utility for keeping track of event handlers and to unregister them.
23
- private touchEventListenerTracker = new EventListenerTracker();
24
-
25
- /**
26
- * @param toStreamerMessagesProvider - Stream message instance
27
- * @param videoElementProvider - Video element instance
28
- * @param coordinateConverter - A coordinate converter instance
29
- */
30
- constructor(
31
- toStreamerMessagesProvider: StreamMessageController,
32
- videoElementProvider: VideoPlayer,
33
- coordinateConverter: CoordinateConverter
34
- ) {
35
- this.toStreamerMessagesProvider = toStreamerMessagesProvider;
36
- this.videoElementProvider = videoElementProvider;
37
- this.coordinateConverter = coordinateConverter;
38
- const ontouchstart = (ev: TouchEvent) => this.onTouchStart(ev);
39
- const ontouchend = (ev: TouchEvent) => this.onTouchEnd(ev);
40
- const ontouchmove = (ev: TouchEvent) => this.onTouchMove(ev);
41
- document.addEventListener('touchstart', ontouchstart, { passive: false });
42
- document.addEventListener('touchend', ontouchend, { passive: false });
43
- document.addEventListener('touchmove', ontouchmove, { passive: false });
44
- this.touchEventListenerTracker.addUnregisterCallback(
45
- () => document.removeEventListener('touchstart', ontouchstart)
46
- );
47
- this.touchEventListenerTracker.addUnregisterCallback(
48
- () => document.removeEventListener('touchend', ontouchend)
49
- );
50
- this.touchEventListenerTracker.addUnregisterCallback(
51
- () => document.removeEventListener('touchmove', ontouchmove)
52
- );
53
- }
54
-
55
- /**
56
- * Unregister all touch events
57
- */
58
- unregisterTouchEvents() {
59
- this.touchEventListenerTracker.unregisterAll();
60
- }
61
-
62
- /**
63
- * Sets the video Element Parent Client Rect numbers for this class
64
- * @param videoElementParentClientRect - a html ElementParentClientRect object
65
- */
66
- setVideoElementParentClientRect(videoElementParentClientRect: DOMRect) {
67
- this.videoElementParentClientRect = videoElementParentClientRect;
68
- }
69
-
70
- /**
71
- * When a touch event begins
72
- * @param touch - the activating touch event
73
- */
74
- onTouchStart(touch: TouchEvent): void {
75
- if (!this.videoElementProvider.isVideoReady() || touch.target !== this.videoElementProvider.getVideoElement()) {
76
- return;
77
- }
78
- if (this.fakeTouchFinger == null) {
79
- const first_touch = touch.changedTouches[0];
80
- this.fakeTouchFinger = new FakeTouchFinger(
81
- first_touch.identifier,
82
- first_touch.clientX - this.videoElementParentClientRect.left,
83
- first_touch.clientY - this.videoElementParentClientRect.top
84
- );
85
-
86
- const videoElementParent =
87
- this.videoElementProvider.getVideoParentElement() as HTMLDivElement;
88
- const mouseEvent = new MouseEvent('mouseenter', first_touch);
89
- videoElementParent.dispatchEvent(mouseEvent);
90
-
91
- const coord = this.coordinateConverter.normalizeAndQuantizeUnsigned(
92
- this.fakeTouchFinger.x,
93
- this.fakeTouchFinger.y
94
- );
95
- const toStreamerHandlers =
96
- this.toStreamerMessagesProvider.toStreamerHandlers;
97
- toStreamerHandlers.get('MouseDown')([
98
- MouseButton.mainButton,
99
- coord.x,
100
- coord.y
101
- ]);
102
- }
103
- touch.preventDefault();
104
- }
105
-
106
- /**
107
- * When a touch event ends
108
- * @param touchEvent - the activating touch event
109
- */
110
- onTouchEnd(touchEvent: TouchEvent): void {
111
- if (!this.videoElementProvider.isVideoReady() || this.fakeTouchFinger == null) {
112
- return;
113
- }
114
- const videoElementParent =
115
- this.videoElementProvider.getVideoParentElement();
116
- const toStreamerHandlers =
117
- this.toStreamerMessagesProvider.toStreamerHandlers;
118
-
119
- for (let t = 0; t < touchEvent.changedTouches.length; t++) {
120
- const touch = touchEvent.changedTouches[t];
121
- if (touch.identifier === this.fakeTouchFinger.id) {
122
- const x =
123
- touch.clientX - this.videoElementParentClientRect.left;
124
- const y = touch.clientY - this.videoElementParentClientRect.top;
125
- const coord =
126
- this.coordinateConverter.normalizeAndQuantizeUnsigned(x, y);
127
- toStreamerHandlers.get('MouseUp')([
128
- MouseButton.mainButton,
129
- coord.x,
130
- coord.y
131
- ]);
132
-
133
- const mouseEvent = new MouseEvent('mouseleave', touch);
134
- videoElementParent.dispatchEvent(mouseEvent);
135
- this.fakeTouchFinger = null;
136
- break;
137
- }
138
- }
139
- touchEvent.preventDefault();
140
- }
141
-
142
- /**
143
- * On a Move touch event
144
- * @param touchEvent - the activating touch event
145
- */
146
- onTouchMove(touchEvent: TouchEvent): void {
147
- if (!this.videoElementProvider.isVideoReady() || this.fakeTouchFinger == null) {
148
- return;
149
- }
150
- const toStreamerHandlers =
151
- this.toStreamerMessagesProvider.toStreamerHandlers;
152
-
153
- for (let t = 0; t < touchEvent.touches.length; t++) {
154
- const touch = touchEvent.touches[t];
155
- if (touch.identifier === this.fakeTouchFinger.id) {
156
- const x =
157
- touch.clientX - this.videoElementParentClientRect.left;
158
- const y = touch.clientY - this.videoElementParentClientRect.top;
159
- const coord =
160
- this.coordinateConverter.normalizeAndQuantizeUnsigned(x, y);
161
- const delta =
162
- this.coordinateConverter.normalizeAndQuantizeSigned(
163
- x - this.fakeTouchFinger.x,
164
- y - this.fakeTouchFinger.y
165
- );
166
- toStreamerHandlers.get('MouseMove')([
167
- coord.x,
168
- coord.y,
169
- delta.x,
170
- delta.y
171
- ]);
172
- this.fakeTouchFinger.x = x;
173
- this.fakeTouchFinger.y = y;
174
- break;
175
- }
176
- }
177
- touchEvent.preventDefault();
178
- }
179
- }
180
-
181
- /**
182
- * The interface for finger position mapping
183
- */
184
- export class FakeTouchFinger {
185
- id: number;
186
- x: number;
187
- y: number;
188
-
189
- /**
190
- * @param id - the button id
191
- * @param x - the x axis value
192
- * @param y - the y axis value
193
- */
194
- constructor(id: number, x: number, y: number) {
195
- this.id = id;
196
- this.x = x;
197
- this.y = y;
198
- }
199
- }
@@ -1,192 +0,0 @@
1
- // Copyright Epic Games, Inc. All Rights Reserved.
2
-
3
- import { MouseController } from './MouseController';
4
- import { Logger } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
5
- import { IMouseEvents } from './IMouseEvents';
6
-
7
- /**
8
- * Video Player mouse Hover handler
9
- */
10
- export class HoveringMouseEvents implements IMouseEvents {
11
- mouseController: MouseController;
12
-
13
- /**
14
- * @param mouseController - Mouse Controller instance
15
- */
16
- constructor(mouseController: MouseController) {
17
- this.mouseController = mouseController;
18
- }
19
-
20
- /**
21
- * Unregister event handlers
22
- */
23
- unregisterMouseEvents(): void {
24
- // empty for HoveringMouseEvents implementation
25
- }
26
-
27
- /**
28
- * Handle the mouse move event, sends the mouse data to the UE Instance
29
- * @param mouseEvent - Mouse Event
30
- */
31
- updateMouseMovePosition(mouseEvent: MouseEvent) {
32
- if (!this.mouseController.videoElementProvider.isVideoReady()) {
33
- return;
34
- }
35
- Logger.Log(Logger.GetStackTrace(), 'MouseMove', 6);
36
- const coord =
37
- this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(
38
- mouseEvent.offsetX,
39
- mouseEvent.offsetY
40
- );
41
- const delta =
42
- this.mouseController.coordinateConverter.normalizeAndQuantizeSigned(
43
- mouseEvent.movementX,
44
- mouseEvent.movementY
45
- );
46
- const toStreamerHandlers =
47
- this.mouseController.toStreamerMessagesProvider.toStreamerHandlers;
48
- toStreamerHandlers.get('MouseMove')([
49
- coord.x,
50
- coord.y,
51
- delta.x,
52
- delta.y
53
- ]);
54
- mouseEvent.preventDefault();
55
- }
56
-
57
- /**
58
- * Handle the mouse Down event, sends the mouse data to the UE Instance
59
- * @param mouseEvent - Mouse Event
60
- */
61
- handleMouseDown(mouseEvent: MouseEvent) {
62
- if (!this.mouseController.videoElementProvider.isVideoReady()) {
63
- return;
64
- }
65
- Logger.Log(Logger.GetStackTrace(), 'onMouse Down', 6);
66
- const coord =
67
- this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(
68
- mouseEvent.offsetX,
69
- mouseEvent.offsetY
70
- );
71
- const toStreamerHandlers =
72
- this.mouseController.toStreamerMessagesProvider.toStreamerHandlers;
73
- toStreamerHandlers.get('MouseDown')([
74
- mouseEvent.button,
75
- coord.x,
76
- coord.y
77
- ]);
78
- mouseEvent.preventDefault();
79
- }
80
-
81
- /**
82
- * Handle the mouse Up event, sends the mouse data to the UE Instance
83
- * @param mouseEvent - Mouse Event
84
- */
85
- handleMouseUp(mouseEvent: MouseEvent) {
86
- if (!this.mouseController.videoElementProvider.isVideoReady()) {
87
- return;
88
- }
89
- Logger.Log(Logger.GetStackTrace(), 'onMouse Up', 6);
90
- const coord =
91
- this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(
92
- mouseEvent.offsetX,
93
- mouseEvent.offsetY
94
- );
95
- const toStreamerHandlers =
96
- this.mouseController.toStreamerMessagesProvider.toStreamerHandlers;
97
- toStreamerHandlers.get('MouseUp')([
98
- mouseEvent.button,
99
- coord.x,
100
- coord.y
101
- ]);
102
- mouseEvent.preventDefault();
103
- }
104
-
105
- /**
106
- * Consumes the mouse context event. The UE instance has no equivalent and doesn't need to be informed.
107
- * @param mouseEvent - Mouse Event
108
- */
109
- handleContextMenu(mouseEvent: MouseEvent) {
110
- if (!this.mouseController.videoElementProvider.isVideoReady()) {
111
- return;
112
- }
113
- mouseEvent.preventDefault();
114
- }
115
-
116
- /**
117
- * Handle the mouse wheel event, sends the mouse wheel data to the UE Instance
118
- * @param wheelEvent - Mouse Event
119
- */
120
- handleMouseWheel(wheelEvent: WheelEvent) {
121
- if (!this.mouseController.videoElementProvider.isVideoReady()) {
122
- return;
123
- }
124
- const coord =
125
- this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(
126
- wheelEvent.offsetX,
127
- wheelEvent.offsetY
128
- );
129
- const toStreamerHandlers =
130
- this.mouseController.toStreamerMessagesProvider.toStreamerHandlers;
131
- toStreamerHandlers.get('MouseWheel')([
132
- wheelEvent.wheelDelta,
133
- coord.x,
134
- coord.y
135
- ]);
136
- wheelEvent.preventDefault();
137
- }
138
-
139
- /**
140
- * Handle the mouse double click event, sends the mouse data to the UE Instance
141
- * @param mouseEvent - Mouse Event
142
- */
143
- handleMouseDouble(mouseEvent: MouseEvent) {
144
- if (!this.mouseController.videoElementProvider.isVideoReady()) {
145
- return;
146
- }
147
- const coord =
148
- this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(
149
- mouseEvent.offsetX,
150
- mouseEvent.offsetY
151
- );
152
- const toStreamerHandlers =
153
- this.mouseController.toStreamerMessagesProvider.toStreamerHandlers;
154
- toStreamerHandlers.get('MouseDouble')([
155
- mouseEvent.button,
156
- coord.x,
157
- coord.y
158
- ]);
159
- }
160
-
161
- /**
162
- * Handle the press mouse buttons event, sends the mouse data to the UE Instance
163
- * @param mouseEvent - Mouse Event
164
- */
165
- handlePressMouseButtons(mouseEvent: MouseEvent) {
166
- if (!this.mouseController.videoElementProvider.isVideoReady()) {
167
- return;
168
- }
169
- Logger.Log(Logger.GetStackTrace(), 'onMouse press', 6);
170
- this.mouseController.pressMouseButtons(
171
- mouseEvent.buttons,
172
- mouseEvent.offsetX,
173
- mouseEvent.offsetY
174
- );
175
- }
176
-
177
- /**
178
- * Handle the release mouse buttons event, sends the mouse data to the UE Instance
179
- * @param mouseEvent - Mouse Event
180
- */
181
- handleReleaseMouseButtons(mouseEvent: MouseEvent) {
182
- if (!this.mouseController.videoElementProvider.isVideoReady()) {
183
- return;
184
- }
185
- Logger.Log(Logger.GetStackTrace(), 'onMouse release', 6);
186
- this.mouseController.releaseMouseButtons(
187
- mouseEvent.buttons,
188
- mouseEvent.offsetX,
189
- mouseEvent.offsetY
190
- );
191
- }
192
- }
@@ -1,64 +0,0 @@
1
- // Copyright Epic Games, Inc. All Rights Reserved.
2
-
3
- /**
4
- * Interface for Mouse Events
5
- */
6
- export interface IMouseEvents {
7
- /**
8
- * Handle when the locked state Changed
9
- */
10
- lockStateChange?(): void;
11
-
12
- /**
13
- * Handle when the mouse move
14
- * @param mouseEvent - Mouse Event
15
- */
16
- updateMouseMovePosition?(mouseEvent: MouseEvent): void;
17
-
18
- /**
19
- * Handle when the Button Down
20
- * @param mouseEvent - Mouse Event
21
- */
22
- handleMouseDown(mouseEvent: MouseEvent): void;
23
-
24
- /**
25
- * Handle when the button up
26
- * @param mouseEvent - Mouse Event
27
- */
28
- handleMouseUp(mouseEvent: MouseEvent): void;
29
-
30
- /**
31
- * Handle when the mouse wheel
32
- * @param wheelEvent - Mouse wheel
33
- */
34
- handleMouseWheel(wheelEvent: WheelEvent): void;
35
-
36
- /**
37
- * Handle when the button double click
38
- * @param mouseEvent - Mouse Event
39
- */
40
- handleMouseDouble(mouseEvent: MouseEvent): void;
41
-
42
- /**
43
- * Handle the press mouse buttons event, sends the mouse data to the UE Instance
44
- * @param mouseEvent - Mouse Event
45
- */
46
- handlePressMouseButtons(mouseEvent: MouseEvent): void;
47
-
48
- /**
49
- * Handle the release mouse buttons event, sends the mouse data to the UE Instance
50
- * @param mouseEvent - Mouse Event
51
- */
52
- handleReleaseMouseButtons(mouseEvent: MouseEvent): void;
53
-
54
- /**
55
- * Handle the mouse context menu
56
- * @param mouseEvent - mouse event
57
- */
58
- handleContextMenu?(mouseEvent: MouseEvent): void;
59
-
60
- /**
61
- * Unregister any registered mouse event handlers
62
- */
63
- unregisterMouseEvents(): void;
64
- }
@@ -1,29 +0,0 @@
1
- // Copyright Epic Games, Inc. All Rights Reserved.
2
-
3
- /**
4
- * Interface for Touch Events
5
- */
6
- export interface ITouchController {
7
- /**
8
- * Fire when a touch event starts
9
- * @param touchEvent - Touch Event Data
10
- */
11
- onTouchStart(touchEvent: TouchEvent): void;
12
-
13
- /**
14
- * Fire when a touch event ends
15
- * @param touchEvent - Touch Event Data
16
- */
17
- onTouchEnd(touchEvent: TouchEvent): void;
18
-
19
- /**
20
- * Fire when touch moves
21
- * @param touchEvent - Touch Event Data
22
- */
23
- onTouchMove(touchEvent: TouchEvent): void;
24
-
25
- /**
26
- * Unregister all touch event handlers.
27
- */
28
- unregisterTouchEvents(): void;
29
- }