@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,377 +1,379 @@
1
- import { SignallingProtocol, ITransport, Messages } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
2
- import { StreamController } from '../VideoPlayer/StreamController';
3
- import { FreezeFrameController } from '../FreezeFrame/FreezeFrameController';
4
- import { AFKController } from '../AFK/AFKController';
5
- import { DataChannelController } from '../DataChannel/DataChannelController';
6
- import { PeerConnectionController } from '../PeerConnectionController/PeerConnectionController';
7
- import { KeyboardController } from '../Inputs/KeyboardController';
8
- import { AggregatedStats } from '../PeerConnectionController/AggregatedStats';
9
- import { Config } from '../Config/Config';
10
- import { FileTemplate } from '../Util/FileUtil';
11
- import { InputClassesFactory } from '../Inputs/InputClassesFactory';
12
- import { VideoPlayer } from '../VideoPlayer/VideoPlayer';
13
- import { StreamMessageController, MessageDirection } from '../UeInstanceMessage/StreamMessageController';
14
- import { ResponseController } from '../UeInstanceMessage/ResponseController';
15
- import { SendMessageController } from '../UeInstanceMessage/SendMessageController';
16
- import { ToStreamerMessagesController } from '../UeInstanceMessage/ToStreamerMessagesController';
17
- import { MouseController } from '../Inputs/MouseController';
18
- import { GamePadController } from '../Inputs/GamepadController';
19
- import { DataChannelSender } from '../DataChannel/DataChannelSender';
20
- import { CoordinateConverter, UnquantizedDenormalizedUnsignedCoord } from '../Util/CoordinateConverter';
21
- import { PixelStreaming } from '../PixelStreaming/PixelStreaming';
22
- import { ITouchController } from '../Inputs/ITouchController';
23
- import { DataChannelLatencyTestRequest } from "../DataChannel/DataChannelLatencyTestResults";
24
- /**
25
- * Entry point for the WebRTC Player
26
- */
27
- export declare class WebRtcPlayerController {
28
- config: Config;
29
- responseController: ResponseController;
30
- sdpConstraints: RTCOfferOptions;
31
- transport: ITransport;
32
- protocol: SignallingProtocol;
33
- sendrecvDataChannelController: DataChannelController;
34
- recvDataChannelController: DataChannelController;
35
- dataChannelSender: DataChannelSender;
36
- datachannelOptions: RTCDataChannelInit;
37
- videoPlayer: VideoPlayer;
38
- streamController: StreamController;
39
- peerConnectionController: PeerConnectionController;
40
- inputClassesFactory: InputClassesFactory;
41
- freezeFrameController: FreezeFrameController;
42
- shouldShowPlayOverlay: boolean;
43
- afkController: AFKController;
44
- videoElementParentClientRect: DOMRect;
45
- latencyStartTime: number;
46
- pixelStreaming: PixelStreaming;
47
- streamMessageController: StreamMessageController;
48
- sendMessageController: SendMessageController;
49
- toStreamerMessagesController: ToStreamerMessagesController;
50
- keyboardController: KeyboardController;
51
- mouseController: MouseController;
52
- touchController: ITouchController;
53
- gamePadController: GamePadController;
54
- coordinateConverter: CoordinateConverter;
55
- isUsingSFU: boolean;
56
- isQualityController: boolean;
57
- statsTimerHandle: number;
58
- file: FileTemplate;
59
- preferredCodec: string;
60
- peerConfig: RTCConfiguration;
61
- videoAvgQp: number;
62
- locallyClosed: boolean;
63
- shouldReconnect: boolean;
64
- isReconnecting: boolean;
65
- reconnectAttempt: number;
66
- disconnectMessage: string;
67
- subscribedStream: string;
68
- signallingUrlBuilder: () => string;
69
- autoJoinTimer: ReturnType<typeof setTimeout>;
70
- /**
71
- *
72
- * @param config - the frontend config object
73
- * @param pixelStreaming - the PixelStreaming object
74
- */
75
- constructor(config: Config, pixelStreaming: PixelStreaming);
76
- /**
77
- * Make a request to UnquantizedAndDenormalizeUnsigned coordinates
78
- * @param x x axis coordinate
79
- * @param y y axis coordinate
80
- */
81
- requestUnquantizedAndDenormalizeUnsigned(x: number, y: number): UnquantizedDenormalizedUnsignedCoord;
82
- /**
83
- * Handles when a message is received
84
- * @param event - Message Event
85
- */
86
- handleOnMessage(event: MessageEvent): void;
87
- /**
88
- * Register message all handlers
89
- */
90
- registerMessageHandlers(): void;
91
- /**
92
- * Activate the logic associated with a command from UE
93
- * @param message
94
- */
95
- onCommand(message: ArrayBuffer): void;
96
- /**
97
- * Handles a protocol message received from the streamer
98
- * @param message the message data from the streamer
99
- */
100
- onProtocolMessage(message: ArrayBuffer): void;
101
- /**
102
- * Handles an input control message when it is received from the streamer
103
- * @param message The input control message
104
- */
105
- onInputControlOwnership(message: ArrayBuffer): void;
106
- /**
107
- *
108
- * @param message
109
- */
110
- onGamepadResponse(message: ArrayBuffer): void;
111
- onAfkTriggered(): void;
112
- /**
113
- * Set whether we should timeout when afk.
114
- * @param afkEnabled If true we timeout when idle for some given amount of time.
115
- */
116
- setAfkEnabled(afkEnabled: boolean): void;
117
- /**
118
- * Attempt a reconnection to the signalling server
119
- */
120
- tryReconnect(message: string): void;
121
- /**
122
- * Loads a freeze frame if it is required otherwise shows the play overlay
123
- */
124
- loadFreezeFrameOrShowPlayOverlay(): void;
125
- /**
126
- * Process the freeze frame and load it
127
- * @param message The freeze frame data in bytes
128
- */
129
- onFreezeFrameMessage(message: ArrayBuffer): void;
130
- /**
131
- * Enable the video after hiding a freeze frame
132
- */
133
- invalidateFreezeFrameAndEnableVideo(): void;
134
- /**
135
- * Prep datachannel data for processing file extension
136
- * @param data the file extension data
137
- */
138
- onFileExtension(data: ArrayBuffer): void;
139
- /**
140
- * Prep datachannel data for processing the file mime type
141
- * @param data the file mime type data
142
- */
143
- onFileMimeType(data: ArrayBuffer): void;
144
- /**
145
- * Prep datachannel data for processing the file contents
146
- * @param data the file contents data
147
- */
148
- onFileContents(data: ArrayBuffer): void;
149
- /**
150
- * Plays the stream audio and video source and sets up other pieces while the stream starts
151
- */
152
- playStream(): void;
153
- /**
154
- * Plays the video stream
155
- */
156
- private playVideo;
157
- /**
158
- * Enable the video to play automatically if enableAutoplay is true
159
- */
160
- autoPlayVideoOrSetUpPlayOverlay(): void;
161
- /**
162
- * Connect to the Signaling server
163
- */
164
- connectToSignallingServer(): void;
165
- /**
166
- * This will start the handshake to the signalling server
167
- * @param peerConfig - RTC Configuration Options from the Signaling server
168
- * @remark RTC Peer Connection on Ice Candidate event have it handled by handle Send Ice Candidate
169
- */
170
- startSession(peerConfig: RTCConfiguration): void;
171
- /**
172
- * Checks the peer connection options for a turn server and returns true or false
173
- */
174
- checkTurnServerAvailability(options: RTCConfiguration): boolean;
175
- /**
176
- * Handles when a Config Message is received contains the Peer Connection Options required (STUN and TURN Server Info)
177
- * @param messageConfig - Config Message received from the signaling server
178
- */
179
- handleOnConfigMessage(messageConfig: Messages.config): void;
180
- /**
181
- * Handles when the signalling server gives us the list of streamer ids.
182
- */
183
- handleStreamerListMessage(messageStreamerList: Messages.streamerList): void;
184
- handleStreamerIDChangedMessage(streamerIDChangedMessage: Messages.streamerIdChanged): void;
185
- /**
186
- * Handle the RTC Answer from the signaling server
187
- * @param Answer - Answer SDP from the peer.
188
- */
189
- handleWebRtcAnswer(Answer: Messages.answer): void;
190
- /**
191
- * Handle the RTC offer from a WebRTC peer (received through the signalling server).
192
- * @param Offer - Offer SDP from the peer.
193
- */
194
- handleWebRtcOffer(Offer: Messages.offer): void;
195
- /**
196
- * Handle when the SFU provides the peer with its data channels
197
- * @param DataChannels - The message from the SFU containing the data channels ids
198
- */
199
- handleWebRtcSFUPeerDatachannels(DataChannels: Messages.peerDataChannels): void;
200
- handlePostWebrtcNegotiation(): void;
201
- /**
202
- * When an ice Candidate is received from the Signaling server add it to the Peer Connection Client
203
- * @param iceCandidate - Ice Candidate from Server
204
- */
205
- handleIceCandidate(iceCandidate: RTCIceCandidateInit): void;
206
- /**
207
- * Send the ice Candidate to the signaling server via websocket
208
- * @param iceEvent - RTC Peer ConnectionIceEvent) {
209
- */
210
- handleSendIceCandidate(iceEvent: RTCPeerConnectionIceEvent): void;
211
- /**
212
- * Send the ice Candidate to the signaling server via websocket
213
- * @param iceEvent - RTC Peer ConnectionIceEvent) {
214
- */
215
- handleDataChannel(datachannelEvent: RTCDataChannelEvent): void;
216
- /**
217
- * Send the RTC Offer Session to the Signaling server via websocket
218
- * @param offer - RTC Session Description
219
- */
220
- handleSendWebRTCOffer(offer: RTCSessionDescriptionInit): void;
221
- /**
222
- * Send the RTC Offer Session to the Signaling server via websocket
223
- * @param answer - RTC Session Description
224
- */
225
- handleSendWebRTCAnswer(answer: RTCSessionDescriptionInit): void;
226
- /**
227
- * Set the freeze frame overlay to the player div
228
- */
229
- setUpMouseAndFreezeFrame(): void;
230
- /**
231
- * Close the Connection to the signaling server
232
- */
233
- closeSignalingServer(message: string): void;
234
- /**
235
- * Close the peer connection
236
- */
237
- closePeerConnection(): void;
238
- /**
239
- * Close all connections
240
- */
241
- close(): void;
242
- /**
243
- * Fires a Video Stats Event in the RTC Peer Connection
244
- */
245
- getStats(): void;
246
- /**
247
- * Send a Latency Test Request to the UE Instance
248
- */
249
- sendLatencyTest(): void;
250
- /**
251
- * Send a Data Channel Latency Test Request to the UE Instance
252
- */
253
- sendDataChannelLatencyTest(descriptor: DataChannelLatencyTestRequest): void;
254
- /**
255
- * Send the MinQP encoder setting to the UE Instance.
256
- * @param minQP - The lower bound for QP when encoding
257
- * valid values are (1-51) where:
258
- * 1 = Best quality but highest bitrate.
259
- * 51 = Worst quality but lowest bitrate.
260
- * By default the minQP is 1 meaning the encoder is free
261
- * to aim for the best quality it can on the given network link.
262
- */
263
- sendEncoderMinQP(minQP: number): void;
264
- /**
265
- * Send the MaxQP encoder setting to the UE Instance.
266
- * @param maxQP - The upper bound for QP when encoding
267
- * valid values are (1-51) where:
268
- * 1 = Best quality but highest bitrate.
269
- * 51 = Worst quality but lowest bitrate.
270
- * By default the maxQP is 51 meaning the encoder is free
271
- * to drop quality as low as needed on the given network link.
272
- */
273
- sendEncoderMaxQP(maxQP: number): void;
274
- /**
275
- * Send the { WebRTC.MinBitrate: SomeNumber }} command to UE to set
276
- * the minimum bitrate that we allow WebRTC to use
277
- * (note setting this too high in poor networks can be problematic).
278
- * @param minBitrate - The minimum bitrate we would like WebRTC to not fall below.
279
- */
280
- sendWebRTCMinBitrate(minBitrate: number): void;
281
- /**
282
- * Send the { WebRTC.MaxBitrate: SomeNumber }} command to UE to set
283
- * the minimum bitrate that we allow WebRTC to use
284
- * (note setting this too low could result in blocky video).
285
- * @param minBitrate - The minimum bitrate we would like WebRTC to not fall below.
286
- */
287
- sendWebRTCMaxBitrate(maxBitrate: number): void;
288
- /**
289
- * Send the { WebRTC.Fps: SomeNumber }} UE 5.0+
290
- * and { WebRTC.MaxFps } UE 4.27 command to set
291
- * the maximum fps we would like WebRTC to stream at.
292
- * @param fps - The maximum stream fps.
293
- */
294
- sendWebRTCFps(fps: number): void;
295
- /**
296
- * Sends the UI Descriptor `stat fps` to the UE Instance
297
- */
298
- sendShowFps(): void;
299
- /**
300
- * Send an Iframe request to the streamer
301
- */
302
- sendIframeRequest(): void;
303
- /**
304
- * Send a UIInteraction message
305
- */
306
- emitUIInteraction(descriptor: object | string): void;
307
- /**
308
- * Send a Command message
309
- */
310
- emitCommand(descriptor: object): void;
311
- /**
312
- * Send a console command message
313
- */
314
- emitConsoleCommand(command: string): void;
315
- /**
316
- * Sends a request to the UE Instance to have ownership of Quality
317
- */
318
- sendRequestQualityControlOwnership(): void;
319
- /**
320
- * Handles when a Latency Test Result are received from the UE Instance
321
- * @param message - Latency Test Timings
322
- */
323
- handleLatencyTestResult(message: ArrayBuffer): void;
324
- /**
325
- * Handles when a Data Channel Latency Test Response is received from the UE Instance
326
- * @param message - Data Channel Latency Test Response
327
- */
328
- handleDataChannelLatencyTestResponse(message: ArrayBuffer): void;
329
- /**
330
- * Handles when the Encoder and Web RTC Settings are received from the UE Instance
331
- * @param message - Initial Encoder and Web RTC Settings
332
- */
333
- handleInitialSettings(message: ArrayBuffer): void;
334
- /**
335
- * Handles when the Quantization Parameter are received from the UE Instance
336
- * @param message - Encoders Quantization Parameter
337
- */
338
- handleVideoEncoderAvgQP(message: ArrayBuffer): void;
339
- /**
340
- * Handles when the video element has been loaded with a srcObject
341
- */
342
- handleVideoInitialized(): void;
343
- /**
344
- * Flag set if the user has Quality Ownership
345
- * @param message - Does the current client have Quality Ownership
346
- */
347
- onQualityControlOwnership(message: ArrayBuffer): void;
348
- /**
349
- * Handles when the Aggregated stats are Collected
350
- * @param stats - Aggregated Stats
351
- */
352
- handleVideoStats(stats: AggregatedStats): void;
353
- /**
354
- * To Resize the Video Player element
355
- */
356
- resizePlayerStyle(): void;
357
- setPreferredCodec(codec: string): void;
358
- setVideoEncoderAvgQP(avgQP: number): void;
359
- /**
360
- * enables/disables keyboard event listeners
361
- */
362
- setKeyboardInputEnabled(isEnabled: boolean): void;
363
- /**
364
- * enables/disables mouse event listeners
365
- */
366
- setMouseInputEnabled(isEnabled: boolean): void;
367
- /**
368
- * enables/disables touch event listeners
369
- */
370
- setTouchInputEnabled(isEnabled: boolean): void;
371
- /**
372
- * enables/disables game pad event listeners
373
- */
374
- setGamePadInputEnabled(isEnabled: boolean): void;
375
- registerDataChannelEventEmitters(dataChannel: DataChannelController): void;
376
- registerMessageHandler(name: string, direction: MessageDirection, handler?: (data: ArrayBuffer | Array<number | string>) => void): void;
377
- }
1
+ import { SignallingProtocol, ITransport, Messages } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
2
+ import { StreamController } from '../VideoPlayer/StreamController';
3
+ import { FreezeFrameController } from '../FreezeFrame/FreezeFrameController';
4
+ import { AFKController } from '../AFK/AFKController';
5
+ import { DataChannelController } from '../DataChannel/DataChannelController';
6
+ import { PeerConnectionController } from '../PeerConnectionController/PeerConnectionController';
7
+ import { AggregatedStats } from '../PeerConnectionController/AggregatedStats';
8
+ import { Config } from '../Config/Config';
9
+ import { FileTemplate } from '../Util/FileUtil';
10
+ import { InputClassesFactory } from '../Inputs/InputClassesFactory';
11
+ import { VideoPlayer } from '../VideoPlayer/VideoPlayer';
12
+ import { StreamMessageController, MessageDirection } from '../UeInstanceMessage/StreamMessageController';
13
+ import { ResponseController } from '../UeInstanceMessage/ResponseController';
14
+ import { SendMessageController } from '../UeInstanceMessage/SendMessageController';
15
+ import { ToStreamerMessagesController } from '../UeInstanceMessage/ToStreamerMessagesController';
16
+ import { DataChannelSender } from '../DataChannel/DataChannelSender';
17
+ import { InputCoordTranslator, UntranslatedCoordUnsigned } from '../Util/InputCoordTranslator';
18
+ import { PixelStreaming } from '../PixelStreaming/PixelStreaming';
19
+ import { DataChannelLatencyTestRequest } from '../DataChannel/DataChannelLatencyTestResults';
20
+ import { IInputController } from '../Inputs/IInputController';
21
+ import { GamepadController } from '../Inputs/GamepadController';
22
+ /**
23
+ * Entry point for the WebRTC Player
24
+ */
25
+ export declare class WebRtcPlayerController {
26
+ config: Config;
27
+ responseController: ResponseController;
28
+ sdpConstraints: RTCOfferOptions;
29
+ transport: ITransport;
30
+ protocol: SignallingProtocol;
31
+ sendrecvDataChannelController: DataChannelController;
32
+ recvDataChannelController: DataChannelController;
33
+ dataChannelSender: DataChannelSender;
34
+ datachannelOptions: RTCDataChannelInit;
35
+ videoPlayer: VideoPlayer;
36
+ streamController: StreamController;
37
+ peerConnectionController: PeerConnectionController;
38
+ inputClassesFactory: InputClassesFactory;
39
+ freezeFrameController: FreezeFrameController;
40
+ shouldShowPlayOverlay: boolean;
41
+ afkController: AFKController;
42
+ latencyStartTime: number;
43
+ pixelStreaming: PixelStreaming;
44
+ streamMessageController: StreamMessageController;
45
+ sendMessageController: SendMessageController;
46
+ toStreamerMessagesController: ToStreamerMessagesController;
47
+ keyboardController: IInputController;
48
+ mouseController: IInputController;
49
+ touchController: IInputController;
50
+ gamePadController: GamepadController;
51
+ coordinateConverter: InputCoordTranslator;
52
+ isUsingSFU: boolean;
53
+ isQualityController: boolean;
54
+ statsTimerHandle: number;
55
+ file: FileTemplate;
56
+ preferredCodec: string;
57
+ peerConfig: RTCConfiguration;
58
+ videoAvgQp: number;
59
+ locallyClosed: boolean;
60
+ enableAutoReconnect: boolean;
61
+ forceReconnect: boolean;
62
+ reconnectAttempt: number;
63
+ isReconnecting: boolean;
64
+ disconnectMessage: string;
65
+ subscribedStream: string;
66
+ signallingUrlBuilder: () => string;
67
+ autoJoinTimer: ReturnType<typeof setTimeout>;
68
+ /**
69
+ *
70
+ * @param config - the frontend config object
71
+ * @param pixelStreaming - the PixelStreaming object
72
+ */
73
+ constructor(config: Config, pixelStreaming: PixelStreaming);
74
+ /**
75
+ * Make a request to UnquantizedAndDenormalizeUnsigned coordinates
76
+ * @param x x axis coordinate
77
+ * @param y y axis coordinate
78
+ */
79
+ requestUnquantizedAndDenormalizeUnsigned(x: number, y: number): UntranslatedCoordUnsigned;
80
+ /**
81
+ * Handles when a message is received
82
+ * @param event - Message Event
83
+ */
84
+ handleOnMessage(event: MessageEvent): void;
85
+ /**
86
+ * Register message all handlers
87
+ */
88
+ registerMessageHandlers(): void;
89
+ /**
90
+ * Activate the logic associated with a command from UE
91
+ * @param message
92
+ */
93
+ onCommand(message: ArrayBuffer): void;
94
+ /**
95
+ * Handles a protocol message received from the streamer
96
+ * @param message the message data from the streamer
97
+ */
98
+ onProtocolMessage(message: ArrayBuffer): void;
99
+ /**
100
+ * Handles an input control message when it is received from the streamer
101
+ * @param message The input control message
102
+ */
103
+ onInputControlOwnership(message: ArrayBuffer): void;
104
+ /**
105
+ *
106
+ * @param message
107
+ */
108
+ onGamepadResponse(message: ArrayBuffer): void;
109
+ onAfkTriggered(): void;
110
+ /**
111
+ * Set whether we should timeout when afk.
112
+ * @param afkEnabled If true we timeout when idle for some given amount of time.
113
+ */
114
+ setAfkEnabled(afkEnabled: boolean): void;
115
+ /**
116
+ * Attempt a reconnection to the signalling server. Manual trigger
117
+ */
118
+ tryReconnect(message: string): void;
119
+ /**
120
+ * Does the actual reconnect work. Used by the auto reconnect feature to skip the manual flag.
121
+ */
122
+ doReconnect(message: string): void;
123
+ /**
124
+ * Loads a freeze frame if it is required otherwise shows the play overlay
125
+ */
126
+ loadFreezeFrameOrShowPlayOverlay(): void;
127
+ /**
128
+ * Process the freeze frame and load it
129
+ * @param message The freeze frame data in bytes
130
+ */
131
+ onFreezeFrameMessage(message: ArrayBuffer): void;
132
+ /**
133
+ * Enable the video after hiding a freeze frame
134
+ */
135
+ invalidateFreezeFrameAndEnableVideo(): void;
136
+ /**
137
+ * Prep datachannel data for processing file extension
138
+ * @param data the file extension data
139
+ */
140
+ onFileExtension(data: ArrayBuffer): void;
141
+ /**
142
+ * Prep datachannel data for processing the file mime type
143
+ * @param data the file mime type data
144
+ */
145
+ onFileMimeType(data: ArrayBuffer): void;
146
+ /**
147
+ * Prep datachannel data for processing the file contents
148
+ * @param data the file contents data
149
+ */
150
+ onFileContents(data: ArrayBuffer): void;
151
+ /**
152
+ * Plays the stream audio and video source and sets up other pieces while the stream starts
153
+ */
154
+ playStream(): void;
155
+ /**
156
+ * Plays the video stream
157
+ */
158
+ private playVideo;
159
+ /**
160
+ * Enable the video to play automatically if enableAutoplay is true
161
+ */
162
+ autoPlayVideoOrSetUpPlayOverlay(): void;
163
+ /**
164
+ * Connect to the Signaling server
165
+ */
166
+ connectToSignallingServer(): void;
167
+ /**
168
+ * This will start the handshake to the signalling server
169
+ * @param peerConfig - RTC Configuration Options from the Signaling server
170
+ * @remark RTC Peer Connection on Ice Candidate event have it handled by handle Send Ice Candidate
171
+ */
172
+ startSession(peerConfig: RTCConfiguration): void;
173
+ /**
174
+ * Checks the peer connection options for a turn server and returns true or false
175
+ */
176
+ checkTurnServerAvailability(options: RTCConfiguration): boolean;
177
+ /**
178
+ * Handles when a Config Message is received contains the Peer Connection Options required (STUN and TURN Server Info)
179
+ * @param messageConfig - Config Message received from the signaling server
180
+ */
181
+ handleOnConfigMessage(messageConfig: Messages.config): void;
182
+ /**
183
+ * Handles when the signalling server gives us the list of streamer ids.
184
+ */
185
+ handleStreamerListMessage(messageStreamerList: Messages.streamerList): void;
186
+ handleStreamerIDChangedMessage(streamerIDChangedMessage: Messages.streamerIdChanged): void;
187
+ /**
188
+ * Handle the RTC Answer from the signaling server
189
+ * @param Answer - Answer SDP from the peer.
190
+ */
191
+ handleWebRtcAnswer(Answer: Messages.answer): void;
192
+ /**
193
+ * Handle the RTC offer from a WebRTC peer (received through the signalling server).
194
+ * @param Offer - Offer SDP from the peer.
195
+ */
196
+ handleWebRtcOffer(Offer: Messages.offer): void;
197
+ /**
198
+ * Handle when the SFU provides the peer with its data channels
199
+ * @param DataChannels - The message from the SFU containing the data channels ids
200
+ */
201
+ handleWebRtcSFUPeerDatachannels(DataChannels: Messages.peerDataChannels): void;
202
+ handlePostWebrtcNegotiation(): void;
203
+ /**
204
+ * When an ice Candidate is received from the Signaling server add it to the Peer Connection Client
205
+ * @param iceCandidate - Ice Candidate from Server
206
+ */
207
+ handleIceCandidate(iceCandidate: RTCIceCandidateInit): void;
208
+ /**
209
+ * Send the ice Candidate to the signaling server via websocket
210
+ * @param iceEvent - RTC Peer ConnectionIceEvent) {
211
+ */
212
+ handleSendIceCandidate(iceEvent: RTCPeerConnectionIceEvent): void;
213
+ /**
214
+ * Send the ice Candidate to the signaling server via websocket
215
+ * @param iceEvent - RTC Peer ConnectionIceEvent) {
216
+ */
217
+ handleDataChannel(datachannelEvent: RTCDataChannelEvent): void;
218
+ /**
219
+ * Send the RTC Offer Session to the Signaling server via websocket
220
+ * @param offer - RTC Session Description
221
+ */
222
+ handleSendWebRTCOffer(offer: RTCSessionDescriptionInit): void;
223
+ /**
224
+ * Send the RTC Offer Session to the Signaling server via websocket
225
+ * @param answer - RTC Session Description
226
+ */
227
+ handleSendWebRTCAnswer(answer: RTCSessionDescriptionInit): void;
228
+ /**
229
+ * Set the freeze frame overlay to the player div
230
+ */
231
+ setUpMouseAndFreezeFrame(): void;
232
+ /**
233
+ * Close the Connection to the signaling server
234
+ */
235
+ closeSignalingServer(message: string, allowReconnect: boolean): void;
236
+ /**
237
+ * Close the peer connection
238
+ */
239
+ closePeerConnection(): void;
240
+ /**
241
+ * Close all connections
242
+ */
243
+ close(): void;
244
+ /**
245
+ * Fires a Video Stats Event in the RTC Peer Connection
246
+ */
247
+ getStats(): void;
248
+ /**
249
+ * Send a Latency Test Request to the UE Instance
250
+ */
251
+ sendLatencyTest(): void;
252
+ /**
253
+ * Send a Data Channel Latency Test Request to the UE Instance
254
+ */
255
+ sendDataChannelLatencyTest(descriptor: DataChannelLatencyTestRequest): void;
256
+ /**
257
+ * Send the MinQP encoder setting to the UE Instance.
258
+ * @param minQP - The lower bound for QP when encoding
259
+ * valid values are (1-51) where:
260
+ * 1 = Best quality but highest bitrate.
261
+ * 51 = Worst quality but lowest bitrate.
262
+ * By default the minQP is 1 meaning the encoder is free
263
+ * to aim for the best quality it can on the given network link.
264
+ */
265
+ sendEncoderMinQP(minQP: number): void;
266
+ /**
267
+ * Send the MaxQP encoder setting to the UE Instance.
268
+ * @param maxQP - The upper bound for QP when encoding
269
+ * valid values are (1-51) where:
270
+ * 1 = Best quality but highest bitrate.
271
+ * 51 = Worst quality but lowest bitrate.
272
+ * By default the maxQP is 51 meaning the encoder is free
273
+ * to drop quality as low as needed on the given network link.
274
+ */
275
+ sendEncoderMaxQP(maxQP: number): void;
276
+ /**
277
+ * Send the { WebRTC.MinBitrate: SomeNumber }} command to UE to set
278
+ * the minimum bitrate that we allow WebRTC to use
279
+ * (note setting this too high in poor networks can be problematic).
280
+ * @param minBitrate - The minimum bitrate we would like WebRTC to not fall below.
281
+ */
282
+ sendWebRTCMinBitrate(minBitrate: number): void;
283
+ /**
284
+ * Send the { WebRTC.MaxBitrate: SomeNumber }} command to UE to set
285
+ * the minimum bitrate that we allow WebRTC to use
286
+ * (note setting this too low could result in blocky video).
287
+ * @param minBitrate - The minimum bitrate we would like WebRTC to not fall below.
288
+ */
289
+ sendWebRTCMaxBitrate(maxBitrate: number): void;
290
+ /**
291
+ * Send the { WebRTC.Fps: SomeNumber }} UE 5.0+
292
+ * and { WebRTC.MaxFps } UE 4.27 command to set
293
+ * the maximum fps we would like WebRTC to stream at.
294
+ * @param fps - The maximum stream fps.
295
+ */
296
+ sendWebRTCFps(fps: number): void;
297
+ /**
298
+ * Sends the UI Descriptor `stat fps` to the UE Instance
299
+ */
300
+ sendShowFps(): void;
301
+ /**
302
+ * Send an Iframe request to the streamer
303
+ */
304
+ sendIframeRequest(): void;
305
+ /**
306
+ * Send a UIInteraction message
307
+ */
308
+ emitUIInteraction(descriptor: object | string): void;
309
+ /**
310
+ * Send a Command message
311
+ */
312
+ emitCommand(descriptor: object): void;
313
+ /**
314
+ * Send a console command message
315
+ */
316
+ emitConsoleCommand(command: string): void;
317
+ /**
318
+ * Sends a request to the UE Instance to have ownership of Quality
319
+ */
320
+ sendRequestQualityControlOwnership(): void;
321
+ /**
322
+ * Handles when a Latency Test Result are received from the UE Instance
323
+ * @param message - Latency Test Timings
324
+ */
325
+ handleLatencyTestResult(message: ArrayBuffer): void;
326
+ /**
327
+ * Handles when a Data Channel Latency Test Response is received from the UE Instance
328
+ * @param message - Data Channel Latency Test Response
329
+ */
330
+ handleDataChannelLatencyTestResponse(message: ArrayBuffer): void;
331
+ /**
332
+ * Handles when the Encoder and Web RTC Settings are received from the UE Instance
333
+ * @param message - Initial Encoder and Web RTC Settings
334
+ */
335
+ handleInitialSettings(message: ArrayBuffer): void;
336
+ /**
337
+ * Handles when the Quantization Parameter are received from the UE Instance
338
+ * @param message - Encoders Quantization Parameter
339
+ */
340
+ handleVideoEncoderAvgQP(message: ArrayBuffer): void;
341
+ /**
342
+ * Handles when the video element has been loaded with a srcObject
343
+ */
344
+ handleVideoInitialized(): void;
345
+ /**
346
+ * Flag set if the user has Quality Ownership
347
+ * @param message - Does the current client have Quality Ownership
348
+ */
349
+ onQualityControlOwnership(message: ArrayBuffer): void;
350
+ /**
351
+ * Handles when the Aggregated stats are Collected
352
+ * @param stats - Aggregated Stats
353
+ */
354
+ handleVideoStats(stats: AggregatedStats): void;
355
+ /**
356
+ * To Resize the Video Player element
357
+ */
358
+ resizePlayerStyle(): void;
359
+ setPreferredCodec(codec: string): void;
360
+ setVideoEncoderAvgQP(avgQP: number): void;
361
+ /**
362
+ * enables/disables keyboard event listeners
363
+ */
364
+ setKeyboardInputEnabled(isEnabled: boolean): void;
365
+ /**
366
+ * enables/disables mouse event listeners
367
+ */
368
+ setMouseInputEnabled(isEnabled: boolean): void;
369
+ /**
370
+ * enables/disables touch event listeners
371
+ */
372
+ setTouchInputEnabled(isEnabled: boolean): void;
373
+ /**
374
+ * enables/disables game pad event listeners
375
+ */
376
+ setGamePadInputEnabled(isEnabled: boolean): void;
377
+ registerDataChannelEventEmitters(dataChannel: DataChannelController): void;
378
+ registerMessageHandler(name: string, direction: MessageDirection, handler?: (data: ArrayBuffer | Array<number | string>) => void): void;
379
+ }