@epicgames-ps/lib-pixelstreamingfrontend-ue5.5 0.4.1 → 0.4.3

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 (192) hide show
  1. package/dist/commonjs/AFK/AFKController.js.map +1 -1
  2. package/dist/commonjs/Config/Config.js +30 -6
  3. package/dist/commonjs/Config/Config.js.map +1 -1
  4. package/dist/commonjs/Config/SettingBase.js.map +1 -1
  5. package/dist/commonjs/Config/SettingFlag.js.map +1 -1
  6. package/dist/commonjs/Config/SettingNumber.js.map +1 -1
  7. package/dist/commonjs/Config/SettingOption.js.map +1 -1
  8. package/dist/commonjs/Config/SettingText.js.map +1 -1
  9. package/dist/commonjs/DataChannel/DataChannelController.js.map +1 -1
  10. package/dist/commonjs/DataChannel/DataChannelLatencyTestController.js.map +1 -1
  11. package/dist/commonjs/DataChannel/DataChannelSender.js.map +1 -1
  12. package/dist/commonjs/DataChannel/InitialSettings.js.map +1 -1
  13. package/dist/commonjs/DataChannel/LatencyTestResults.js.map +1 -1
  14. package/dist/commonjs/FreezeFrame/FreezeFrame.js.map +1 -1
  15. package/dist/commonjs/FreezeFrame/FreezeFrameController.js.map +1 -1
  16. package/dist/commonjs/Inputs/GamepadController.js +1 -1
  17. package/dist/commonjs/Inputs/GamepadController.js.map +1 -1
  18. package/dist/commonjs/Inputs/GamepadTypes.js +1 -2
  19. package/dist/commonjs/Inputs/GamepadTypes.js.map +1 -1
  20. package/dist/commonjs/Inputs/InputClassesFactory.js.map +1 -1
  21. package/dist/commonjs/Inputs/KeyboardController.js.map +1 -1
  22. package/dist/commonjs/Inputs/MouseController.js.map +1 -1
  23. package/dist/commonjs/Inputs/MouseControllerHovering.js.map +1 -1
  24. package/dist/commonjs/Inputs/MouseControllerLocked.js.map +1 -1
  25. package/dist/commonjs/Inputs/TouchController.js.map +1 -1
  26. package/dist/commonjs/Inputs/TouchControllerFake.js.map +1 -1
  27. package/dist/commonjs/Inputs/XRGamepadController.js.map +1 -1
  28. package/dist/commonjs/PeerConnectionController/AggregatedStats.js.map +1 -1
  29. package/dist/commonjs/PeerConnectionController/PeerConnectionController.js +4 -4
  30. package/dist/commonjs/PeerConnectionController/PeerConnectionController.js.map +1 -1
  31. package/dist/commonjs/PixelStreaming/PixelStreaming.js +66 -10
  32. package/dist/commonjs/PixelStreaming/PixelStreaming.js.map +1 -1
  33. package/dist/commonjs/UI/OnScreenKeyboard.js.map +1 -1
  34. package/dist/commonjs/UeInstanceMessage/SendMessageController.js +1 -0
  35. package/dist/commonjs/UeInstanceMessage/SendMessageController.js.map +1 -1
  36. package/dist/commonjs/UeInstanceMessage/StreamMessageController.js +1 -1
  37. package/dist/commonjs/UeInstanceMessage/StreamMessageController.js.map +1 -1
  38. package/dist/commonjs/Util/EventEmitter.js.map +1 -1
  39. package/dist/commonjs/Util/FileUtil.js.map +1 -1
  40. package/dist/commonjs/Util/IURLSearchParams.js.map +1 -1
  41. package/dist/commonjs/Util/InputCoordTranslator.js.map +1 -1
  42. package/dist/commonjs/VideoPlayer/StreamController.js.map +1 -1
  43. package/dist/commonjs/VideoPlayer/VideoPlayer.js.map +1 -1
  44. package/dist/commonjs/WebRtcPlayer/WebRtcPlayerController.js +94 -1
  45. package/dist/commonjs/WebRtcPlayer/WebRtcPlayerController.js.map +1 -1
  46. package/dist/commonjs/WebXR/WebXRController.js +2 -2
  47. package/dist/commonjs/WebXR/WebXRController.js.map +1 -1
  48. package/dist/commonjs/pixelstreamingfrontend.js +5 -1
  49. package/dist/commonjs/pixelstreamingfrontend.js.map +1 -1
  50. package/dist/esm/AFK/AFKController.js +20 -16
  51. package/dist/esm/AFK/AFKController.js.map +1 -1
  52. package/dist/esm/Config/Config.js +92 -60
  53. package/dist/esm/Config/Config.js.map +1 -1
  54. package/dist/esm/Config/SettingBase.js +5 -1
  55. package/dist/esm/Config/SettingBase.js.map +1 -1
  56. package/dist/esm/Config/SettingFlag.js +6 -2
  57. package/dist/esm/Config/SettingFlag.js.map +1 -1
  58. package/dist/esm/Config/SettingNumber.js +6 -2
  59. package/dist/esm/Config/SettingNumber.js.map +1 -1
  60. package/dist/esm/Config/SettingOption.js +8 -4
  61. package/dist/esm/Config/SettingOption.js.map +1 -1
  62. package/dist/esm/Config/SettingText.js +6 -2
  63. package/dist/esm/Config/SettingText.js.map +1 -1
  64. package/dist/esm/DataChannel/DataChannelController.js +10 -6
  65. package/dist/esm/DataChannel/DataChannelController.js.map +1 -1
  66. package/dist/esm/DataChannel/DataChannelLatencyTestController.js +9 -5
  67. package/dist/esm/DataChannel/DataChannelLatencyTestController.js.map +1 -1
  68. package/dist/esm/DataChannel/DataChannelLatencyTestResults.js +5 -1
  69. package/dist/esm/DataChannel/DataChannelLatencyTestResults.js.map +1 -1
  70. package/dist/esm/DataChannel/DataChannelSender.js +8 -4
  71. package/dist/esm/DataChannel/DataChannelSender.js.map +1 -1
  72. package/dist/esm/DataChannel/InitialSettings.js +11 -4
  73. package/dist/esm/DataChannel/InitialSettings.js.map +1 -1
  74. package/dist/esm/DataChannel/LatencyTestResults.js +8 -4
  75. package/dist/esm/DataChannel/LatencyTestResults.js.map +1 -1
  76. package/dist/esm/FreezeFrame/FreezeFrame.js +5 -1
  77. package/dist/esm/FreezeFrame/FreezeFrame.js.map +1 -1
  78. package/dist/esm/FreezeFrame/FreezeFrameController.js +11 -7
  79. package/dist/esm/FreezeFrame/FreezeFrameController.js.map +1 -1
  80. package/dist/esm/Inputs/GamepadController.js +11 -7
  81. package/dist/esm/Inputs/GamepadController.js.map +1 -1
  82. package/dist/esm/Inputs/GamepadTypes.js +4 -1
  83. package/dist/esm/Inputs/GamepadTypes.js.map +1 -1
  84. package/dist/esm/Inputs/IInputController.js +2 -1
  85. package/dist/esm/Inputs/InputClassesFactory.js +26 -21
  86. package/dist/esm/Inputs/InputClassesFactory.js.map +1 -1
  87. package/dist/esm/Inputs/KeyCodes.js +4 -1
  88. package/dist/esm/Inputs/KeyCodes.js.map +1 -1
  89. package/dist/esm/Inputs/KeyboardController.js +22 -18
  90. package/dist/esm/Inputs/KeyboardController.js.map +1 -1
  91. package/dist/esm/Inputs/MouseButtons.js +7 -2
  92. package/dist/esm/Inputs/MouseButtons.js.map +1 -1
  93. package/dist/esm/Inputs/MouseController.js +26 -22
  94. package/dist/esm/Inputs/MouseController.js.map +1 -1
  95. package/dist/esm/Inputs/MouseControllerHovering.js +6 -2
  96. package/dist/esm/Inputs/MouseControllerHovering.js.map +1 -1
  97. package/dist/esm/Inputs/MouseControllerLocked.js +9 -5
  98. package/dist/esm/Inputs/MouseControllerLocked.js.map +1 -1
  99. package/dist/esm/Inputs/SpecialKeyCodes.js +5 -1
  100. package/dist/esm/Inputs/SpecialKeyCodes.js.map +1 -1
  101. package/dist/esm/Inputs/TouchController.js +8 -4
  102. package/dist/esm/Inputs/TouchController.js.map +1 -1
  103. package/dist/esm/Inputs/TouchControllerFake.js +8 -4
  104. package/dist/esm/Inputs/TouchControllerFake.js.map +1 -1
  105. package/dist/esm/Inputs/XRGamepadController.js +8 -4
  106. package/dist/esm/Inputs/XRGamepadController.js.map +1 -1
  107. package/dist/esm/PeerConnectionController/AggregatedStats.js +23 -19
  108. package/dist/esm/PeerConnectionController/AggregatedStats.js.map +1 -1
  109. package/dist/esm/PeerConnectionController/CandidatePairStats.js +5 -1
  110. package/dist/esm/PeerConnectionController/CandidatePairStats.js.map +1 -1
  111. package/dist/esm/PeerConnectionController/CandidateStat.js +5 -1
  112. package/dist/esm/PeerConnectionController/CandidateStat.js.map +1 -1
  113. package/dist/esm/PeerConnectionController/CodecStats.js +5 -1
  114. package/dist/esm/PeerConnectionController/CodecStats.js.map +1 -1
  115. package/dist/esm/PeerConnectionController/DataChannelStats.js +5 -1
  116. package/dist/esm/PeerConnectionController/DataChannelStats.js.map +1 -1
  117. package/dist/esm/PeerConnectionController/InboundRTPStats.js +9 -3
  118. package/dist/esm/PeerConnectionController/InboundRTPStats.js.map +1 -1
  119. package/dist/esm/PeerConnectionController/InboundTrackStats.js +5 -1
  120. package/dist/esm/PeerConnectionController/InboundTrackStats.js.map +1 -1
  121. package/dist/esm/PeerConnectionController/OutBoundRTPStats.js +7 -2
  122. package/dist/esm/PeerConnectionController/OutBoundRTPStats.js.map +1 -1
  123. package/dist/esm/PeerConnectionController/PeerConnectionController.js +45 -41
  124. package/dist/esm/PeerConnectionController/PeerConnectionController.js.map +1 -1
  125. package/dist/esm/PeerConnectionController/SessionStats.js +5 -1
  126. package/dist/esm/PeerConnectionController/SessionStats.js.map +1 -1
  127. package/dist/esm/PeerConnectionController/StreamStats.js +5 -1
  128. package/dist/esm/PeerConnectionController/StreamStats.js.map +1 -1
  129. package/dist/esm/PixelStreaming/PixelStreaming.js +154 -94
  130. package/dist/esm/PixelStreaming/PixelStreaming.js.map +1 -1
  131. package/dist/esm/UI/OnScreenKeyboard.js +5 -1
  132. package/dist/esm/UI/OnScreenKeyboard.js.map +1 -1
  133. package/dist/esm/UeInstanceMessage/ResponseController.js +8 -4
  134. package/dist/esm/UeInstanceMessage/ResponseController.js.map +1 -1
  135. package/dist/esm/UeInstanceMessage/SendMessageController.js +10 -5
  136. package/dist/esm/UeInstanceMessage/SendMessageController.js.map +1 -1
  137. package/dist/esm/UeInstanceMessage/StreamMessageController.js +11 -6
  138. package/dist/esm/UeInstanceMessage/StreamMessageController.js.map +1 -1
  139. package/dist/esm/UeInstanceMessage/ToStreamerMessagesController.js +5 -1
  140. package/dist/esm/UeInstanceMessage/ToStreamerMessagesController.js.map +1 -1
  141. package/dist/esm/Util/EventEmitter.js +79 -38
  142. package/dist/esm/Util/EventEmitter.js.map +1 -1
  143. package/dist/esm/Util/FileUtil.js +16 -11
  144. package/dist/esm/Util/FileUtil.js.map +1 -1
  145. package/dist/esm/Util/IURLSearchParams.js +5 -1
  146. package/dist/esm/Util/IURLSearchParams.js.map +1 -1
  147. package/dist/esm/Util/InputCoordTranslator.js +5 -1
  148. package/dist/esm/Util/InputCoordTranslator.js.map +1 -1
  149. package/dist/esm/Util/RTCUtils.js +5 -1
  150. package/dist/esm/Util/RTCUtils.js.map +1 -1
  151. package/dist/esm/VideoPlayer/StreamController.js +10 -6
  152. package/dist/esm/VideoPlayer/StreamController.js.map +1 -1
  153. package/dist/esm/VideoPlayer/VideoPlayer.js +11 -7
  154. package/dist/esm/VideoPlayer/VideoPlayer.js.map +1 -1
  155. package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js +312 -215
  156. package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js.map +1 -1
  157. package/dist/esm/WebXR/WebXRController.js +16 -12
  158. package/dist/esm/WebXR/WebXRController.js.map +1 -1
  159. package/dist/esm/pixelstreamingfrontend.js +73 -23
  160. package/dist/esm/pixelstreamingfrontend.js.map +1 -1
  161. package/dist/types/Config/Config.d.ts +9 -0
  162. package/dist/types/DataChannel/DataChannelController.d.ts +1 -1
  163. package/dist/types/DataChannel/InitialSettings.d.ts +2 -0
  164. package/dist/types/Inputs/XRGamepadController.d.ts +0 -1
  165. package/dist/types/PixelStreaming/PixelStreaming.d.ts +1 -1
  166. package/dist/types/Util/EventEmitter.d.ts +0 -1
  167. package/dist/types/VideoPlayer/VideoPlayer.d.ts +1 -1
  168. package/dist/types/WebRtcPlayer/WebRtcPlayerController.d.ts +17 -0
  169. package/dist/types/WebXR/WebXRController.d.ts +0 -1
  170. package/dist/types/pixelstreamingfrontend.d.ts +1 -1
  171. package/package.json +8 -8
  172. package/src/Config/Config.ts +83 -4
  173. package/src/Config/SettingFlag.ts +3 -3
  174. package/src/Config/SettingNumber.ts +3 -3
  175. package/src/Config/SettingOption.ts +3 -3
  176. package/src/Config/SettingText.ts +4 -4
  177. package/src/DataChannel/DataChannelController.ts +2 -2
  178. package/src/DataChannel/InitialSettings.ts +2 -0
  179. package/src/Inputs/MouseControllerHovering.ts +2 -2
  180. package/src/Inputs/MouseControllerLocked.ts +2 -2
  181. package/src/PeerConnectionController/PeerConnectionController.ts +5 -5
  182. package/src/PixelStreaming/PixelStreaming.ts +94 -15
  183. package/src/UeInstanceMessage/SendMessageController.ts +1 -0
  184. package/src/Util/EventEmitter.ts +40 -40
  185. package/src/VideoPlayer/VideoPlayer.ts +1 -1
  186. package/src/WebRtcPlayer/WebRtcPlayerController.ts +120 -1
  187. package/src/WebXR/WebXRController.ts +1 -1
  188. package/src/__test__/mockRTCRtpReceiver.ts +1 -1
  189. package/src/__test__/mockWebSocket.ts +3 -3
  190. package/src/pixelstreamingfrontend.ts +6 -1
  191. package/tsconfig.esm.json +2 -1
  192. package/tsconfig.json +6 -2
@@ -1,28 +1,31 @@
1
+ "use strict";
1
2
  // Copyright Epic Games, Inc. All Rights Reserved.
2
- import { WebSocketTransport, Logger, SignallingProtocol, Messages, MessageHelpers } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
3
- import { StreamController } from '../VideoPlayer/StreamController';
4
- import { FreezeFrameController } from '../FreezeFrame/FreezeFrameController';
5
- import { AFKController } from '../AFK/AFKController';
6
- import { DataChannelController } from '../DataChannel/DataChannelController';
7
- import { PeerConnectionController } from '../PeerConnectionController/PeerConnectionController';
8
- import { Flags, ControlSchemeType, TextParameters, OptionParameters, NumericParameters } from '../Config/Config';
9
- import { InitialSettings } from '../DataChannel/InitialSettings';
10
- import { LatencyTestResults } from '../DataChannel/LatencyTestResults';
11
- import { FileTemplate, FileUtil } from '../Util/FileUtil';
12
- import { InputClassesFactory } from '../Inputs/InputClassesFactory';
13
- import { VideoPlayer } from '../VideoPlayer/VideoPlayer';
14
- import { StreamMessageController, MessageDirection } from '../UeInstanceMessage/StreamMessageController';
15
- import { ResponseController } from '../UeInstanceMessage/ResponseController';
16
- import { SendMessageController } from '../UeInstanceMessage/SendMessageController';
17
- import { ToStreamerMessagesController } from '../UeInstanceMessage/ToStreamerMessagesController';
18
- import { DataChannelSender } from '../DataChannel/DataChannelSender';
19
- import { InputCoordTranslator } from '../Util/InputCoordTranslator';
20
- import { DataChannelCloseEvent, DataChannelErrorEvent, DataChannelOpenEvent, HideFreezeFrameEvent, LoadFreezeFrameEvent, PlayStreamErrorEvent, PlayStreamEvent, PlayStreamRejectedEvent, StreamerListMessageEvent, StreamerIDChangedMessageEvent } from '../Util/EventEmitter';
21
- import { IURLSearchParams } from '../Util/IURLSearchParams';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.WebRtcPlayerController = void 0;
5
+ const lib_pixelstreamingcommon_ue5_5_1 = require("@epicgames-ps/lib-pixelstreamingcommon-ue5.5");
6
+ const StreamController_1 = require("../VideoPlayer/StreamController");
7
+ const FreezeFrameController_1 = require("../FreezeFrame/FreezeFrameController");
8
+ const AFKController_1 = require("../AFK/AFKController");
9
+ const DataChannelController_1 = require("../DataChannel/DataChannelController");
10
+ const PeerConnectionController_1 = require("../PeerConnectionController/PeerConnectionController");
11
+ const Config_1 = require("../Config/Config");
12
+ const InitialSettings_1 = require("../DataChannel/InitialSettings");
13
+ const LatencyTestResults_1 = require("../DataChannel/LatencyTestResults");
14
+ const FileUtil_1 = require("../Util/FileUtil");
15
+ const InputClassesFactory_1 = require("../Inputs/InputClassesFactory");
16
+ const VideoPlayer_1 = require("../VideoPlayer/VideoPlayer");
17
+ const StreamMessageController_1 = require("../UeInstanceMessage/StreamMessageController");
18
+ const ResponseController_1 = require("../UeInstanceMessage/ResponseController");
19
+ const SendMessageController_1 = require("../UeInstanceMessage/SendMessageController");
20
+ const ToStreamerMessagesController_1 = require("../UeInstanceMessage/ToStreamerMessagesController");
21
+ const DataChannelSender_1 = require("../DataChannel/DataChannelSender");
22
+ const InputCoordTranslator_1 = require("../Util/InputCoordTranslator");
23
+ const EventEmitter_1 = require("../Util/EventEmitter");
24
+ const IURLSearchParams_1 = require("../Util/IURLSearchParams");
22
25
  /**
23
26
  * Entry point for the WebRTC Player
24
27
  */
25
- export class WebRtcPlayerController {
28
+ class WebRtcPlayerController {
26
29
  /**
27
30
  *
28
31
  * @param config - the frontend config object
@@ -33,19 +36,19 @@ export class WebRtcPlayerController {
33
36
  this.autoJoinTimer = undefined;
34
37
  this.config = config;
35
38
  this.pixelStreaming = pixelStreaming;
36
- this.responseController = new ResponseController();
37
- this.file = new FileTemplate();
39
+ this.responseController = new ResponseController_1.ResponseController();
40
+ this.file = new FileUtil_1.FileTemplate();
38
41
  this.sdpConstraints = {
39
42
  offerToReceiveAudio: true,
40
43
  offerToReceiveVideo: true
41
44
  };
42
45
  // set up the afk logic class and connect up its method for closing the signaling server
43
- this.afkController = new AFKController(this.config, this.pixelStreaming, this.onAfkTriggered.bind(this));
46
+ this.afkController = new AFKController_1.AFKController(this.config, this.pixelStreaming, this.onAfkTriggered.bind(this));
44
47
  this.afkController.onAFKTimedOutCallback = () => {
45
48
  this.closeSignalingServer('You have been disconnected due to inactivity.', false);
46
49
  };
47
- this.freezeFrameController = new FreezeFrameController(this.pixelStreaming.videoElementParent);
48
- this.videoPlayer = new VideoPlayer(this.pixelStreaming.videoElementParent, this.config);
50
+ this.freezeFrameController = new FreezeFrameController_1.FreezeFrameController(this.pixelStreaming.videoElementParent);
51
+ this.videoPlayer = new VideoPlayer_1.VideoPlayer(this.pixelStreaming.videoElementParent, this.config);
49
52
  this.videoPlayer.onVideoInitialized = () => this.handleVideoInitialized();
50
53
  // When in match viewport resolution mode, when the browser viewport is resized we send a resize command back to UE.
51
54
  this.videoPlayer.onMatchViewportResolutionCallback = (width, height) => {
@@ -59,41 +62,41 @@ export class WebRtcPlayerController {
59
62
  this.videoPlayer.onResizePlayerCallback = () => {
60
63
  this.setUpMouseAndFreezeFrame();
61
64
  };
62
- this.streamController = new StreamController(this.videoPlayer);
63
- this.coordinateConverter = new InputCoordTranslator();
64
- this.sendrecvDataChannelController = new DataChannelController();
65
- this.recvDataChannelController = new DataChannelController();
65
+ this.streamController = new StreamController_1.StreamController(this.videoPlayer);
66
+ this.coordinateConverter = new InputCoordTranslator_1.InputCoordTranslator();
67
+ this.sendrecvDataChannelController = new DataChannelController_1.DataChannelController();
68
+ this.recvDataChannelController = new DataChannelController_1.DataChannelController();
66
69
  this.registerDataChannelEventEmitters(this.sendrecvDataChannelController);
67
70
  this.registerDataChannelEventEmitters(this.recvDataChannelController);
68
- this.dataChannelSender = new DataChannelSender(this.sendrecvDataChannelController);
71
+ this.dataChannelSender = new DataChannelSender_1.DataChannelSender(this.sendrecvDataChannelController);
69
72
  this.dataChannelSender.resetAfkWarningTimerOnDataSend = () => this.afkController.resetAfkWarningTimer();
70
- this.streamMessageController = new StreamMessageController();
73
+ this.streamMessageController = new StreamMessageController_1.StreamMessageController();
71
74
  // set up websocket methods
72
- this.transport = new WebSocketTransport();
73
- this.protocol = new SignallingProtocol(this.transport);
74
- this.protocol.addListener(Messages.config.typeName, (msg) => this.handleOnConfigMessage(msg));
75
- this.protocol.addListener(Messages.streamerList.typeName, (msg) => this.handleStreamerListMessage(msg));
76
- this.protocol.addListener(Messages.streamerIdChanged.typeName, (msg) => this.handleStreamerIDChangedMessage(msg));
77
- this.protocol.addListener(Messages.playerCount.typeName, (msg) => {
75
+ this.transport = new lib_pixelstreamingcommon_ue5_5_1.WebSocketTransport();
76
+ this.protocol = new lib_pixelstreamingcommon_ue5_5_1.SignallingProtocol(this.transport);
77
+ this.protocol.addListener(lib_pixelstreamingcommon_ue5_5_1.Messages.config.typeName, (msg) => this.handleOnConfigMessage(msg));
78
+ this.protocol.addListener(lib_pixelstreamingcommon_ue5_5_1.Messages.streamerList.typeName, (msg) => this.handleStreamerListMessage(msg));
79
+ this.protocol.addListener(lib_pixelstreamingcommon_ue5_5_1.Messages.streamerIdChanged.typeName, (msg) => this.handleStreamerIDChangedMessage(msg));
80
+ this.protocol.addListener(lib_pixelstreamingcommon_ue5_5_1.Messages.playerCount.typeName, (msg) => {
78
81
  const playerCountMessage = msg;
79
82
  this.pixelStreaming._onPlayerCount(playerCountMessage.count);
80
83
  });
81
- this.protocol.addListener(Messages.answer.typeName, (msg) => this.handleWebRtcAnswer(msg));
82
- this.protocol.addListener(Messages.offer.typeName, (msg) => this.handleWebRtcOffer(msg));
83
- this.protocol.addListener(Messages.peerDataChannels.typeName, (msg) => this.handleWebRtcSFUPeerDatachannels(msg));
84
- this.protocol.addListener(Messages.iceCandidate.typeName, (msg) => {
84
+ this.protocol.addListener(lib_pixelstreamingcommon_ue5_5_1.Messages.answer.typeName, (msg) => this.handleWebRtcAnswer(msg));
85
+ this.protocol.addListener(lib_pixelstreamingcommon_ue5_5_1.Messages.offer.typeName, (msg) => this.handleWebRtcOffer(msg));
86
+ this.protocol.addListener(lib_pixelstreamingcommon_ue5_5_1.Messages.peerDataChannels.typeName, (msg) => this.handleWebRtcSFUPeerDatachannels(msg));
87
+ this.protocol.addListener(lib_pixelstreamingcommon_ue5_5_1.Messages.iceCandidate.typeName, (msg) => {
85
88
  const iceCandidateMessage = msg;
86
89
  this.handleIceCandidate(iceCandidateMessage.candidate);
87
90
  });
88
91
  this.protocol.transport.addListener('open', () => {
89
- const message = MessageHelpers.createMessage(Messages.listStreamers);
92
+ const message = lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.listStreamers);
90
93
  this.protocol.sendMessage(message);
91
94
  this.reconnectAttempt = 0;
92
95
  this.isReconnecting = false;
93
96
  });
94
97
  this.protocol.transport.addListener('error', () => {
95
98
  // dont really need to do anything here since the close event should follow.
96
- Logger.Error(`Got a transport error.`);
99
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Error(`Got a transport error.`);
97
100
  });
98
101
  this.protocol.transport.addListener('close', (event) => {
99
102
  // when we refresh the page during a stream we get the going away code.
@@ -101,7 +104,7 @@ export class WebRtcPlayerController {
101
104
  // https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/code
102
105
  // lists all the codes.
103
106
  const CODE_GOING_AWAY = 1001;
104
- const maxReconnectAttempts = this.config.getNumericSettingValue(NumericParameters.MaxReconnectAttempts);
107
+ const maxReconnectAttempts = this.config.getNumericSettingValue(Config_1.NumericParameters.MaxReconnectAttempts);
105
108
  const attemptsLeft = this.reconnectAttempt < maxReconnectAttempts;
106
109
  const reconnectEnabled = this.forceReconnect || (this.enableAutoReconnect && maxReconnectAttempts > 0 && attemptsLeft);
107
110
  const willTryReconnect = reconnectEnabled && event.code != CODE_GOING_AWAY;
@@ -130,19 +133,20 @@ export class WebRtcPlayerController {
130
133
  }
131
134
  });
132
135
  // set up the final webRtc player controller methods from within our application so a connection can be activated
133
- this.sendMessageController = new SendMessageController(this.dataChannelSender, this.streamMessageController);
134
- this.toStreamerMessagesController = new ToStreamerMessagesController(this.sendMessageController);
136
+ this.sendMessageController = new SendMessageController_1.SendMessageController(this.dataChannelSender, this.streamMessageController);
137
+ this.toStreamerMessagesController = new ToStreamerMessagesController_1.ToStreamerMessagesController(this.sendMessageController);
135
138
  this.registerMessageHandlers();
136
139
  this.streamMessageController.populateDefaultProtocol();
137
- this.inputClassesFactory = new InputClassesFactory(this.streamMessageController, this.videoPlayer, this.coordinateConverter);
140
+ this.inputClassesFactory = new InputClassesFactory_1.InputClassesFactory(this.streamMessageController, this.videoPlayer, this.coordinateConverter);
138
141
  this.isUsingSFU = false;
142
+ this.isUsingSVC = false;
139
143
  this.isQualityController = false;
140
144
  this.preferredCodec = '';
141
145
  this.enableAutoReconnect = true;
142
146
  this.forceReconnect = false;
143
147
  this.reconnectAttempt = 0;
144
148
  this.isReconnecting = false;
145
- this.config._addOnOptionSettingChangedListener(OptionParameters.StreamerId, (streamerid) => {
149
+ this.config._addOnOptionSettingChangedListener(Config_1.OptionParameters.StreamerId, (streamerid) => {
146
150
  if (streamerid === undefined || streamerid === '') {
147
151
  return;
148
152
  }
@@ -150,12 +154,35 @@ export class WebRtcPlayerController {
150
154
  this.peerConnectionController.peerConnection.close();
151
155
  this.peerConnectionController.createPeerConnection(this.peerConfig, this.preferredCodec);
152
156
  this.subscribedStream = streamerid;
153
- const message = MessageHelpers.createMessage(Messages.subscribe, { streamerId: streamerid });
157
+ const message = lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.subscribe, { streamerId: streamerid });
158
+ this.protocol.sendMessage(message);
159
+ });
160
+ this.config._addOnOptionSettingChangedListener(Config_1.OptionParameters.PreferredQuality, (preferredQuality) => {
161
+ if (preferredQuality === undefined || preferredQuality === '') {
162
+ return;
163
+ }
164
+ let message;
165
+ if (this.isUsingSVC) {
166
+ // User is using SVC so selected quality will be of the form SxTy(h). Just extract the x and y numbers
167
+ message = lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.layerPreference, {
168
+ spatialLayer: +preferredQuality[1] - 1,
169
+ temporalLayer: +preferredQuality[3] - 1
170
+ });
171
+ }
172
+ else {
173
+ // User is not using SVC so the selected quality will be either Low, Medium or High so we extract the appropriate spatial layer index
174
+ const allQualities = this.config.getSettingOption(Config_1.OptionParameters.PreferredQuality).options;
175
+ const qualityIndex = allQualities.indexOf(preferredQuality);
176
+ message = lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.layerPreference, {
177
+ spatialLayer: qualityIndex,
178
+ temporalLayer: 0
179
+ });
180
+ }
154
181
  this.protocol.sendMessage(message);
155
182
  });
156
183
  this.setVideoEncoderAvgQP(-1);
157
184
  this.signallingUrlBuilder = () => {
158
- const signallingServerUrl = this.config.getTextSettingValue(TextParameters.SignallingServerUrl);
185
+ const signallingServerUrl = this.config.getTextSettingValue(Config_1.TextParameters.SignallingServerUrl);
159
186
  return signallingServerUrl;
160
187
  };
161
188
  }
@@ -173,7 +200,7 @@ export class WebRtcPlayerController {
173
200
  */
174
201
  handleOnMessage(event) {
175
202
  const message = new Uint8Array(event.data);
176
- Logger.Info('Message incoming:' + message);
203
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('Message incoming:' + message);
177
204
  //try {
178
205
  const messageType = this.streamMessageController.fromStreamerMessages.get(message[0]);
179
206
  this.streamMessageController.fromStreamerHandlers.get(messageType)(event.data);
@@ -187,77 +214,86 @@ export class WebRtcPlayerController {
187
214
  registerMessageHandlers() {
188
215
  // From Streamer
189
216
  // Message events from the streamer have a data type of ArrayBuffer as we force this type in the DatachannelController
190
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'QualityControlOwnership', (data) => this.onQualityControlOwnership(data));
191
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'Response', (data) => this.responseController.onResponse(data));
192
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'Command', (data) => {
217
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'QualityControlOwnership', (data) => this.onQualityControlOwnership(data));
218
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'Response', (data) => this.responseController.onResponse(data));
219
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'Command', (data) => {
193
220
  this.onCommand(data);
194
221
  });
195
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'FreezeFrame', (data) => this.onFreezeFrameMessage(data));
196
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'UnfreezeFrame', () => this.invalidateFreezeFrameAndEnableVideo());
197
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'VideoEncoderAvgQP', (data) => this.handleVideoEncoderAvgQP(data));
198
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'LatencyTest', (data) => this.handleLatencyTestResult(data));
199
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'DataChannelLatencyTest', (data) => this.handleDataChannelLatencyTestResponse(data));
200
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'InitialSettings', (data) => this.handleInitialSettings(data));
201
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'FileExtension', (data) => this.onFileExtension(data));
202
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'FileMimeType', (data) => this.onFileMimeType(data));
203
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'FileContents', (data) => this.onFileContents(data));
204
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'TestEcho', () => {
222
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'FreezeFrame', (data) => this.onFreezeFrameMessage(data));
223
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'UnfreezeFrame', () => this.invalidateFreezeFrameAndEnableVideo());
224
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'VideoEncoderAvgQP', (data) => this.handleVideoEncoderAvgQP(data));
225
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'LatencyTest', (data) => this.handleLatencyTestResult(data));
226
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'DataChannelLatencyTest', (data) => this.handleDataChannelLatencyTestResponse(data));
227
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'InitialSettings', (data) => this.handleInitialSettings(data));
228
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'FileExtension', (data) => this.onFileExtension(data));
229
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'FileMimeType', (data) => this.onFileMimeType(data));
230
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'FileContents', (data) => this.onFileContents(data));
231
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'TestEcho', () => {
205
232
  /* Do nothing */
206
233
  });
207
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'InputControlOwnership', (data) => this.onInputControlOwnership(data));
208
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'GamepadResponse', (data) => this.onGamepadResponse(data));
209
- this.streamMessageController.registerMessageHandler(MessageDirection.FromStreamer, 'Protocol', (data) => this.onProtocolMessage(data));
234
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'InputControlOwnership', (data) => this.onInputControlOwnership(data));
235
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'GamepadResponse', (data) => this.onGamepadResponse(data));
236
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'Multiplexed', () => {
237
+ /* Do nothing as this message type is used only by the SFU */
238
+ });
239
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.FromStreamer, 'Protocol', (data) => this.onProtocolMessage(data));
210
240
  // To Streamer
211
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'IFrameRequest', () => this.sendMessageController.sendMessageToStreamer('IFrameRequest'));
212
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'RequestQualityControl', () => this.sendMessageController.sendMessageToStreamer('RequestQualityControl'));
213
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'FpsRequest', () => this.sendMessageController.sendMessageToStreamer('FpsRequest'));
214
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'AverageBitrateRequest', () => this.sendMessageController.sendMessageToStreamer('AverageBitrateRequest'));
215
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'StartStreaming', () => this.sendMessageController.sendMessageToStreamer('StartStreaming'));
216
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'StopStreaming', () => this.sendMessageController.sendMessageToStreamer('StopStreaming'));
217
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'LatencyTest', (data) => this.sendMessageController.sendMessageToStreamer('LatencyTest', data));
218
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'RequestInitialSettings', () => this.sendMessageController.sendMessageToStreamer('RequestInitialSettings'));
219
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'TestEcho', () => {
241
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'IFrameRequest', () => this.sendMessageController.sendMessageToStreamer('IFrameRequest'));
242
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'RequestQualityControl', () => this.sendMessageController.sendMessageToStreamer('RequestQualityControl'));
243
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'FpsRequest', () => this.sendMessageController.sendMessageToStreamer('FpsRequest'));
244
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'AverageBitrateRequest', () => this.sendMessageController.sendMessageToStreamer('AverageBitrateRequest'));
245
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'StartStreaming', () => this.sendMessageController.sendMessageToStreamer('StartStreaming'));
246
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'StopStreaming', () => this.sendMessageController.sendMessageToStreamer('StopStreaming'));
247
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'LatencyTest', (data) => this.sendMessageController.sendMessageToStreamer('LatencyTest', data));
248
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'RequestInitialSettings', () => this.sendMessageController.sendMessageToStreamer('RequestInitialSettings'));
249
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'TestEcho', () => {
220
250
  /* Do nothing */
221
251
  });
222
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'UIInteraction', (data) => this.sendMessageController.sendMessageToStreamer('UIInteraction', data));
223
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'Command', (data) => this.sendMessageController.sendMessageToStreamer('Command', data));
224
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'TextboxEntry', (data) => this.sendMessageController.sendMessageToStreamer('TextboxEntry', data));
225
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'KeyDown', (data) => this.sendMessageController.sendMessageToStreamer('KeyDown', data));
226
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'KeyUp', (data) => this.sendMessageController.sendMessageToStreamer('KeyUp', data));
227
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'KeyPress', (data) => this.sendMessageController.sendMessageToStreamer('KeyPress', data));
228
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'MouseEnter', (data) => this.sendMessageController.sendMessageToStreamer('MouseEnter', data));
229
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'MouseLeave', (data) => this.sendMessageController.sendMessageToStreamer('MouseLeave', data));
230
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'MouseDown', (data) => this.sendMessageController.sendMessageToStreamer('MouseDown', data));
231
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'MouseUp', (data) => this.sendMessageController.sendMessageToStreamer('MouseUp', data));
232
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'MouseMove', (data) => this.sendMessageController.sendMessageToStreamer('MouseMove', data));
233
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'MouseWheel', (data) => this.sendMessageController.sendMessageToStreamer('MouseWheel', data));
234
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'MouseDouble', (data) => this.sendMessageController.sendMessageToStreamer('MouseDouble', data));
235
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'TouchStart', (data) => this.sendMessageController.sendMessageToStreamer('TouchStart', data));
236
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'TouchEnd', (data) => this.sendMessageController.sendMessageToStreamer('TouchEnd', data));
237
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'TouchMove', (data) => this.sendMessageController.sendMessageToStreamer('TouchMove', data));
238
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'GamepadConnected', () => this.sendMessageController.sendMessageToStreamer('GamepadConnected'));
239
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'GamepadButtonPressed', (data) => this.sendMessageController.sendMessageToStreamer('GamepadButtonPressed', data));
240
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'GamepadButtonReleased', (data) => this.sendMessageController.sendMessageToStreamer('GamepadButtonReleased', data));
241
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'GamepadAnalog', (data) => this.sendMessageController.sendMessageToStreamer('GamepadAnalog', data));
242
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'GamepadDisconnected', (data) => this.sendMessageController.sendMessageToStreamer('GamepadDisconnected', data));
243
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'XREyeViews', (data) => this.sendMessageController.sendMessageToStreamer('XREyeViews', data));
244
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'XRHMDTransform', (data) => this.sendMessageController.sendMessageToStreamer('XRHMDTransform', data));
245
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'XRControllerTransform', (data) => this.sendMessageController.sendMessageToStreamer('XRControllerTransform', data));
246
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'XRSystem', (data) => this.sendMessageController.sendMessageToStreamer('XRSystem', data));
247
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'XRButtonTouched', (data) => this.sendMessageController.sendMessageToStreamer('XRButtonTouched', data));
248
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'XRButtonTouchReleased', (data) => this.sendMessageController.sendMessageToStreamer('XRButtonTouchReleased', data));
249
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'XRButtonPressed', (data) => this.sendMessageController.sendMessageToStreamer('XRButtonPressed', data));
250
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'XRButtonReleased', (data) => this.sendMessageController.sendMessageToStreamer('XRButtonReleased', data));
251
- this.streamMessageController.registerMessageHandler(MessageDirection.ToStreamer, 'XRAnalog', (data) => this.sendMessageController.sendMessageToStreamer('XRAnalog', data));
252
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'UIInteraction', (data) => this.sendMessageController.sendMessageToStreamer('UIInteraction', data));
253
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'Command', (data) => this.sendMessageController.sendMessageToStreamer('Command', data));
254
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'TextboxEntry', (data) => this.sendMessageController.sendMessageToStreamer('TextboxEntry', data));
255
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'KeyDown', (data) => this.sendMessageController.sendMessageToStreamer('KeyDown', data));
256
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'KeyUp', (data) => this.sendMessageController.sendMessageToStreamer('KeyUp', data));
257
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'KeyPress', (data) => this.sendMessageController.sendMessageToStreamer('KeyPress', data));
258
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'MouseEnter', (data) => this.sendMessageController.sendMessageToStreamer('MouseEnter', data));
259
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'MouseLeave', (data) => this.sendMessageController.sendMessageToStreamer('MouseLeave', data));
260
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'MouseDown', (data) => this.sendMessageController.sendMessageToStreamer('MouseDown', data));
261
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'MouseUp', (data) => this.sendMessageController.sendMessageToStreamer('MouseUp', data));
262
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'MouseMove', (data) => this.sendMessageController.sendMessageToStreamer('MouseMove', data));
263
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'MouseWheel', (data) => this.sendMessageController.sendMessageToStreamer('MouseWheel', data));
264
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'MouseDouble', (data) => this.sendMessageController.sendMessageToStreamer('MouseDouble', data));
265
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'TouchStart', (data) => this.sendMessageController.sendMessageToStreamer('TouchStart', data));
266
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'TouchEnd', (data) => this.sendMessageController.sendMessageToStreamer('TouchEnd', data));
267
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'TouchMove', (data) => this.sendMessageController.sendMessageToStreamer('TouchMove', data));
268
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'GamepadConnected', () => this.sendMessageController.sendMessageToStreamer('GamepadConnected'));
269
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'GamepadButtonPressed', (data) => this.sendMessageController.sendMessageToStreamer('GamepadButtonPressed', data));
270
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'GamepadButtonReleased', (data) => this.sendMessageController.sendMessageToStreamer('GamepadButtonReleased', data));
271
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'GamepadAnalog', (data) => this.sendMessageController.sendMessageToStreamer('GamepadAnalog', data));
272
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'GamepadDisconnected', (data) => this.sendMessageController.sendMessageToStreamer('GamepadDisconnected', data));
273
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'XREyeViews', (data) => this.sendMessageController.sendMessageToStreamer('XREyeViews', data));
274
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'XRHMDTransform', (data) => this.sendMessageController.sendMessageToStreamer('XRHMDTransform', data));
275
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'XRControllerTransform', (data) => this.sendMessageController.sendMessageToStreamer('XRControllerTransform', data));
276
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'XRSystem', (data) => this.sendMessageController.sendMessageToStreamer('XRSystem', data));
277
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'XRButtonTouched', (data) => this.sendMessageController.sendMessageToStreamer('XRButtonTouched', data));
278
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'XRButtonTouchReleased', (data) => this.sendMessageController.sendMessageToStreamer('XRButtonTouchReleased', data));
279
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'XRButtonPressed', (data) => this.sendMessageController.sendMessageToStreamer('XRButtonPressed', data));
280
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'XRButtonReleased', (data) => this.sendMessageController.sendMessageToStreamer('XRButtonReleased', data));
281
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'XRAnalog', (data) => this.sendMessageController.sendMessageToStreamer('XRAnalog', data));
282
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'ChannelRelayStatus', () => {
283
+ /* Do nothing as this message type is used only by the SFU */
284
+ });
285
+ this.streamMessageController.registerMessageHandler(StreamMessageController_1.MessageDirection.ToStreamer, 'Multiplexed', () => {
286
+ /* Do nothing as this message type is used only by the SFU */
287
+ });
252
288
  }
253
289
  /**
254
290
  * Activate the logic associated with a command from UE
255
291
  * @param message
256
292
  */
257
293
  onCommand(message) {
258
- Logger.Info('DataChannelReceiveMessageType.Command');
294
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('DataChannelReceiveMessageType.Command');
259
295
  const commandAsString = new TextDecoder('utf-16').decode(message.slice(1));
260
- Logger.Info('Data Channel Command: ' + commandAsString);
296
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('Data Channel Command: ' + commandAsString);
261
297
  const command = JSON.parse(commandAsString);
262
298
  if (command.command === 'onScreenKeyboard') {
263
299
  this.pixelStreaming._activateOnScreenKeyboard(command);
@@ -272,18 +308,18 @@ export class WebRtcPlayerController {
272
308
  const protocolString = new TextDecoder('utf-16').decode(message.slice(1));
273
309
  const protocolJSON = JSON.parse(protocolString);
274
310
  if (!Object.prototype.hasOwnProperty.call(protocolJSON, 'Direction')) {
275
- Logger.Error('Malformed protocol received. Ensure the protocol message contains a direction');
311
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Error('Malformed protocol received. Ensure the protocol message contains a direction');
276
312
  }
277
313
  const direction = protocolJSON.Direction;
278
314
  delete protocolJSON.Direction;
279
- Logger.Info(`Received new ${direction == MessageDirection.FromStreamer ? 'FromStreamer' : 'ToStreamer'} protocol. Updating existing protocol...`);
315
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`Received new ${direction == StreamMessageController_1.MessageDirection.FromStreamer ? 'FromStreamer' : 'ToStreamer'} protocol. Updating existing protocol...`);
280
316
  Object.keys(protocolJSON).forEach((messageType) => {
281
317
  const message = protocolJSON[messageType];
282
318
  switch (direction) {
283
- case MessageDirection.ToStreamer:
319
+ case StreamMessageController_1.MessageDirection.ToStreamer:
284
320
  // Check that the message contains all the relevant params
285
321
  if (!Object.prototype.hasOwnProperty.call(message, 'id')) {
286
- Logger.Error(`ToStreamer->${messageType} protocol definition was malformed as it didn't contain at least an id\n
322
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Error(`ToStreamer->${messageType} protocol definition was malformed as it didn't contain at least an id\n
287
323
  Definition was: ${JSON.stringify(message, null, 2)}`);
288
324
  // return in a forEach is equivalent to a continue in a normal for loop
289
325
  return;
@@ -299,13 +335,13 @@ export class WebRtcPlayerController {
299
335
  this.streamMessageController.toStreamerMessages.set(messageType, message);
300
336
  }
301
337
  else {
302
- Logger.Error(`There was no registered handler for "${messageType}" - try adding one using registerMessageHandler(MessageDirection.ToStreamer, "${messageType}", myHandler)`);
338
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Error(`There was no registered handler for "${messageType}" - try adding one using registerMessageHandler(MessageDirection.ToStreamer, "${messageType}", myHandler)`);
303
339
  }
304
340
  break;
305
- case MessageDirection.FromStreamer:
341
+ case StreamMessageController_1.MessageDirection.FromStreamer:
306
342
  // Check that the message contains all the relevant params
307
343
  if (!Object.prototype.hasOwnProperty.call(message, 'id')) {
308
- Logger.Error(`FromStreamer->${messageType} protocol definition was malformed as it didn't contain at least an id\n
344
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Error(`FromStreamer->${messageType} protocol definition was malformed as it didn't contain at least an id\n
309
345
  Definition was: ${JSON.stringify(message, null, 2)}`);
310
346
  // return in a forEach is equivalent to a continue in a normal for loop
311
347
  return;
@@ -315,11 +351,11 @@ export class WebRtcPlayerController {
315
351
  this.streamMessageController.fromStreamerMessages.set(message.id, messageType);
316
352
  }
317
353
  else {
318
- Logger.Error(`There was no registered handler for "${message}" - try adding one using registerMessageHandler(MessageDirection.FromStreamer, "${messageType}", myHandler)`);
354
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Error(`There was no registered handler for "${message}" - try adding one using registerMessageHandler(MessageDirection.FromStreamer, "${messageType}", myHandler)`);
319
355
  }
320
356
  break;
321
357
  default:
322
- Logger.Error(`Unknown direction: ${direction}`);
358
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Error(`Unknown direction: ${direction}`);
323
359
  }
324
360
  });
325
361
  // Once the protocol has been received, we can send our control messages
@@ -327,7 +363,7 @@ export class WebRtcPlayerController {
327
363
  this.toStreamerMessagesController.SendRequestQualityControl();
328
364
  }
329
365
  catch (e) {
330
- Logger.Info(e);
366
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(e);
331
367
  }
332
368
  }
333
369
  /**
@@ -336,9 +372,9 @@ export class WebRtcPlayerController {
336
372
  */
337
373
  onInputControlOwnership(message) {
338
374
  const view = new Uint8Array(message);
339
- Logger.Info('DataChannelReceiveMessageType.InputControlOwnership');
375
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('DataChannelReceiveMessageType.InputControlOwnership');
340
376
  const inputControlOwnership = new Boolean(view[1]).valueOf();
341
- Logger.Info(`Received input controller message - will your input control the stream: ${inputControlOwnership}`);
377
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`Received input controller message - will your input control the stream: ${inputControlOwnership}`);
342
378
  this.pixelStreaming._onInputControlOwnership(inputControlOwnership);
343
379
  }
344
380
  /**
@@ -382,7 +418,7 @@ export class WebRtcPlayerController {
382
418
  doReconnect(message) {
383
419
  // if there is no webSocketController return immediately or this will not work
384
420
  if (!this.protocol) {
385
- Logger.Info('This player has no protocol connection.');
421
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('This player has no protocol connection.');
386
422
  return;
387
423
  }
388
424
  this.isReconnecting = true;
@@ -402,17 +438,17 @@ export class WebRtcPlayerController {
402
438
  * Loads a freeze frame if it is required otherwise shows the play overlay
403
439
  */
404
440
  loadFreezeFrameOrShowPlayOverlay() {
405
- this.pixelStreaming.dispatchEvent(new LoadFreezeFrameEvent({
441
+ this.pixelStreaming.dispatchEvent(new EventEmitter_1.LoadFreezeFrameEvent({
406
442
  shouldShowPlayOverlay: this.shouldShowPlayOverlay,
407
443
  isValid: this.freezeFrameController.valid,
408
444
  jpegData: this.freezeFrameController.jpeg
409
445
  }));
410
446
  if (this.shouldShowPlayOverlay === true) {
411
- Logger.Info('showing play overlay');
447
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('showing play overlay');
412
448
  this.resizePlayerStyle();
413
449
  }
414
450
  else {
415
- Logger.Info('showing freeze frame');
451
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('showing freeze frame');
416
452
  this.freezeFrameController.showFreezeFrame();
417
453
  }
418
454
  setTimeout(() => {
@@ -424,7 +460,7 @@ export class WebRtcPlayerController {
424
460
  * @param message The freeze frame data in bytes
425
461
  */
426
462
  onFreezeFrameMessage(message) {
427
- Logger.Info('DataChannelReceiveMessageType.FreezeFrame');
463
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('DataChannelReceiveMessageType.FreezeFrame');
428
464
  const view = new Uint8Array(message);
429
465
  this.freezeFrameController.processFreezeFrameMessage(view, () => this.loadFreezeFrameOrShowPlayOverlay());
430
466
  }
@@ -432,9 +468,9 @@ export class WebRtcPlayerController {
432
468
  * Enable the video after hiding a freeze frame
433
469
  */
434
470
  invalidateFreezeFrameAndEnableVideo() {
435
- Logger.Info('DataChannelReceiveMessageType.FreezeFrame');
471
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('DataChannelReceiveMessageType.FreezeFrame');
436
472
  setTimeout(() => {
437
- this.pixelStreaming.dispatchEvent(new HideFreezeFrameEvent());
473
+ this.pixelStreaming.dispatchEvent(new EventEmitter_1.HideFreezeFrameEvent());
438
474
  this.freezeFrameController.hideFreezeFrame();
439
475
  }, this.freezeFrameController.freezeFrameDelay);
440
476
  if (this.videoPlayer.getVideoElement()) {
@@ -447,7 +483,7 @@ export class WebRtcPlayerController {
447
483
  */
448
484
  onFileExtension(data) {
449
485
  const view = new Uint8Array(data);
450
- FileUtil.setExtensionFromBytes(view, this.file);
486
+ FileUtil_1.FileUtil.setExtensionFromBytes(view, this.file);
451
487
  }
452
488
  /**
453
489
  * Prep datachannel data for processing the file mime type
@@ -455,7 +491,7 @@ export class WebRtcPlayerController {
455
491
  */
456
492
  onFileMimeType(data) {
457
493
  const view = new Uint8Array(data);
458
- FileUtil.setMimeTypeFromBytes(view, this.file);
494
+ FileUtil_1.FileUtil.setMimeTypeFromBytes(view, this.file);
459
495
  }
460
496
  /**
461
497
  * Prep datachannel data for processing the file contents
@@ -463,7 +499,7 @@ export class WebRtcPlayerController {
463
499
  */
464
500
  onFileContents(data) {
465
501
  const view = new Uint8Array(data);
466
- FileUtil.setContentsFromBytes(view, this.file);
502
+ FileUtil_1.FileUtil.setContentsFromBytes(view, this.file);
467
503
  }
468
504
  /**
469
505
  * Plays the stream audio and video source and sets up other pieces while the stream starts
@@ -471,20 +507,20 @@ export class WebRtcPlayerController {
471
507
  playStream() {
472
508
  if (!this.videoPlayer.getVideoElement()) {
473
509
  const message = 'Could not play video stream because the video player was not initialized correctly.';
474
- this.pixelStreaming.dispatchEvent(new PlayStreamErrorEvent({ message }));
475
- Logger.Error(message);
510
+ this.pixelStreaming.dispatchEvent(new EventEmitter_1.PlayStreamErrorEvent({ message }));
511
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Error(message);
476
512
  // close the connection
477
513
  this.closeSignalingServer('Stream not initialized correctly', false);
478
514
  return;
479
515
  }
480
516
  if (!this.videoPlayer.hasVideoSource()) {
481
- Logger.Warning('Cannot play stream, the video element has no srcObject to play.');
517
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Warning('Cannot play stream, the video element has no srcObject to play.');
482
518
  return;
483
519
  }
484
- this.setTouchInputEnabled(this.config.isFlagEnabled(Flags.TouchInput));
485
- this.pixelStreaming.dispatchEvent(new PlayStreamEvent());
520
+ this.setTouchInputEnabled(this.config.isFlagEnabled(Config_1.Flags.TouchInput));
521
+ this.pixelStreaming.dispatchEvent(new EventEmitter_1.PlayStreamEvent());
486
522
  if (this.streamController.audioElement.srcObject) {
487
- const startMuted = this.config.isFlagEnabled(Flags.StartVideoMuted);
523
+ const startMuted = this.config.isFlagEnabled(Config_1.Flags.StartVideoMuted);
488
524
  this.streamController.audioElement.muted = startMuted;
489
525
  if (startMuted) {
490
526
  this.playVideo();
@@ -496,9 +532,9 @@ export class WebRtcPlayerController {
496
532
  this.playVideo();
497
533
  })
498
534
  .catch((onRejectedReason) => {
499
- Logger.Info(onRejectedReason);
500
- Logger.Info('Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay.');
501
- this.pixelStreaming.dispatchEvent(new PlayStreamRejectedEvent({
535
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(onRejectedReason);
536
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay.');
537
+ this.pixelStreaming.dispatchEvent(new EventEmitter_1.PlayStreamRejectedEvent({
502
538
  reason: onRejectedReason
503
539
  }));
504
540
  });
@@ -519,16 +555,16 @@ export class WebRtcPlayerController {
519
555
  if (this.streamController.audioElement.srcObject) {
520
556
  this.streamController.audioElement.pause();
521
557
  }
522
- Logger.Info(onRejectedReason);
523
- Logger.Info('Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay.');
524
- this.pixelStreaming.dispatchEvent(new PlayStreamRejectedEvent({ reason: onRejectedReason }));
558
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(onRejectedReason);
559
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay.');
560
+ this.pixelStreaming.dispatchEvent(new EventEmitter_1.PlayStreamRejectedEvent({ reason: onRejectedReason }));
525
561
  });
526
562
  }
527
563
  /**
528
564
  * Enable the video to play automatically if enableAutoplay is true
529
565
  */
530
566
  autoPlayVideoOrSetUpPlayOverlay() {
531
- if (this.config.isFlagEnabled(Flags.AutoPlayVideo)) {
567
+ if (this.config.isFlagEnabled(Config_1.Flags.AutoPlayVideo)) {
532
568
  // attempt to play the video
533
569
  this.playStream();
534
570
  }
@@ -552,18 +588,18 @@ export class WebRtcPlayerController {
552
588
  startSession(peerConfig) {
553
589
  this.peerConfig = peerConfig;
554
590
  // check for forcing turn
555
- if (this.config.isFlagEnabled(Flags.ForceTURN)) {
591
+ if (this.config.isFlagEnabled(Config_1.Flags.ForceTURN)) {
556
592
  // check for a turn server
557
593
  const hasTurnServer = this.checkTurnServerAvailability(peerConfig);
558
594
  // close and error if turn is forced and there is no turn server
559
595
  if (!hasTurnServer) {
560
- Logger.Info('No turn server was found in the Peer Connection Options. TURN cannot be forced, closing connection. Please use STUN instead');
596
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('No turn server was found in the Peer Connection Options. TURN cannot be forced, closing connection. Please use STUN instead');
561
597
  this.closeSignalingServer('TURN cannot be forced, closing connection. Please use STUN instead.', false);
562
598
  return;
563
599
  }
564
600
  }
565
601
  // set up the peer connection controller
566
- this.peerConnectionController = new PeerConnectionController(this.peerConfig, this.config, this.preferredCodec);
602
+ this.peerConnectionController = new PeerConnectionController_1.PeerConnectionController(this.peerConfig, this.config, this.preferredCodec);
567
603
  // set up peer connection controller video stats
568
604
  this.peerConnectionController.onVideoStats = (event) => this.handleVideoStats(event);
569
605
  /* When the Peer Connection wants to send an offer have it handled */
@@ -597,19 +633,19 @@ export class WebRtcPlayerController {
597
633
  checkTurnServerAvailability(options) {
598
634
  // if iceServers is empty return false this should not be the general use case but is here incase
599
635
  if (!options.iceServers) {
600
- Logger.Info('A turn sever was not found');
636
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('A turn sever was not found');
601
637
  return false;
602
638
  }
603
639
  // loop through the ice servers to check for a turn url
604
640
  for (const iceServer of options.iceServers) {
605
641
  for (const url of iceServer.urls) {
606
642
  if (url.includes('turn')) {
607
- Logger.Info(`A turn sever was found at ${url}`);
643
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`A turn sever was found at ${url}`);
608
644
  return true;
609
645
  }
610
646
  }
611
647
  }
612
- Logger.Info('A turn sever was not found');
648
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('A turn sever was not found');
613
649
  return false;
614
650
  }
615
651
  /**
@@ -625,10 +661,10 @@ export class WebRtcPlayerController {
625
661
  * Handles when the signalling server gives us the list of streamer ids.
626
662
  */
627
663
  handleStreamerListMessage(messageStreamerList) {
628
- Logger.Info(`Got streamer list ${messageStreamerList.ids}`);
664
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`Got streamer list ${messageStreamerList.ids}`);
629
665
  let wantedStreamerId = '';
630
666
  // get the current selected streamer id option
631
- const streamerIDOption = this.config.getSettingOption(OptionParameters.StreamerId);
667
+ const streamerIDOption = this.config.getSettingOption(Config_1.OptionParameters.StreamerId);
632
668
  const existingSelection = streamerIDOption.selected.toString().trim();
633
669
  if (existingSelection) {
634
670
  // default to selected option if it exists
@@ -637,17 +673,17 @@ export class WebRtcPlayerController {
637
673
  // add the streamers to the UI
638
674
  const settingOptions = [...messageStreamerList.ids]; // copy the original messageStreamerList.ids
639
675
  settingOptions.unshift(''); // add an empty option at the top
640
- this.config.setOptionSettingOptions(OptionParameters.StreamerId, settingOptions);
676
+ this.config.setOptionSettingOptions(Config_1.OptionParameters.StreamerId, settingOptions);
641
677
  let autoSelectedStreamerId = '';
642
- const waitForStreamer = this.config.isFlagEnabled(Flags.WaitForStreamer);
643
- const reconnectLimit = this.config.getNumericSettingValue(NumericParameters.MaxReconnectAttempts);
644
- const reconnectDelay = this.config.getNumericSettingValue(NumericParameters.StreamerAutoJoinInterval);
678
+ const waitForStreamer = this.config.isFlagEnabled(Config_1.Flags.WaitForStreamer);
679
+ const reconnectLimit = this.config.getNumericSettingValue(Config_1.NumericParameters.MaxReconnectAttempts);
680
+ const reconnectDelay = this.config.getNumericSettingValue(Config_1.NumericParameters.StreamerAutoJoinInterval);
645
681
  // first we figure out a wanted streamer id through various means
646
682
  const useUrlParams = this.config.useUrlParams;
647
- const urlParams = new IURLSearchParams(window.location.search);
648
- if (useUrlParams && urlParams.has(OptionParameters.StreamerId)) {
683
+ const urlParams = new IURLSearchParams_1.IURLSearchParams(window.location.search);
684
+ if (useUrlParams && urlParams.has(Config_1.OptionParameters.StreamerId)) {
649
685
  // if we've set the streamer id on the url we only want that streamer id
650
- wantedStreamerId = urlParams.get(OptionParameters.StreamerId);
686
+ wantedStreamerId = urlParams.get(Config_1.OptionParameters.StreamerId);
651
687
  }
652
688
  else if (this.subscribedStream) {
653
689
  // we were previously subscribed to a streamer, we want that
@@ -666,7 +702,7 @@ export class WebRtcPlayerController {
666
702
  if (autoSelectedStreamerId) {
667
703
  this.reconnectAttempt = 0;
668
704
  this.isReconnecting = false;
669
- this.config.setOptionSettingValue(OptionParameters.StreamerId, autoSelectedStreamerId);
705
+ this.config.setOptionSettingValue(Config_1.OptionParameters.StreamerId, autoSelectedStreamerId);
670
706
  }
671
707
  else {
672
708
  // no auto selected streamer.
@@ -677,7 +713,7 @@ export class WebRtcPlayerController {
677
713
  this.reconnectAttempt++;
678
714
  this.isReconnecting = true;
679
715
  setTimeout(() => {
680
- this.protocol.sendMessage(MessageHelpers.createMessage(Messages.listStreamers));
716
+ this.protocol.sendMessage(lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.listStreamers));
681
717
  }, reconnectDelay);
682
718
  }
683
719
  else {
@@ -689,7 +725,7 @@ export class WebRtcPlayerController {
689
725
  }
690
726
  }
691
727
  // dispatch this event finally
692
- this.pixelStreaming.dispatchEvent(new StreamerListMessageEvent({
728
+ this.pixelStreaming.dispatchEvent(new EventEmitter_1.StreamerListMessageEvent({
693
729
  messageStreamerList,
694
730
  autoSelectedStreamerId,
695
731
  wantedStreamerId
@@ -698,7 +734,7 @@ export class WebRtcPlayerController {
698
734
  handleStreamerIDChangedMessage(streamerIDChangedMessage) {
699
735
  const newID = streamerIDChangedMessage.newID;
700
736
  // need to edit the selected streamer in the settings list
701
- const streamerListOptions = this.config.getSettingOption(OptionParameters.StreamerId);
737
+ const streamerListOptions = this.config.getSettingOption(Config_1.OptionParameters.StreamerId);
702
738
  // temporarily prevent onChange from firing (it would try to subscribe to the streamer again)
703
739
  const oldOnChange = streamerListOptions.onChange;
704
740
  streamerListOptions.onChange = () => { };
@@ -719,7 +755,7 @@ export class WebRtcPlayerController {
719
755
  // remember which stream we're subscribe to
720
756
  this.subscribedStream = streamerIDChangedMessage.newID;
721
757
  // notify any listeners
722
- this.pixelStreaming.dispatchEvent(new StreamerIDChangedMessageEvent({
758
+ this.pixelStreaming.dispatchEvent(new EventEmitter_1.StreamerIDChangedMessageEvent({
723
759
  newID
724
760
  }));
725
761
  }
@@ -728,7 +764,7 @@ export class WebRtcPlayerController {
728
764
  * @param Answer - Answer SDP from the peer.
729
765
  */
730
766
  handleWebRtcAnswer(Answer) {
731
- Logger.Info(`Got answer sdp ${Answer.sdp}`);
767
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`Got answer sdp ${Answer.sdp}`);
732
768
  const sdpAnswer = {
733
769
  sdp: Answer.sdp,
734
770
  type: 'answer'
@@ -741,12 +777,38 @@ export class WebRtcPlayerController {
741
777
  * @param Offer - Offer SDP from the peer.
742
778
  */
743
779
  handleWebRtcOffer(Offer) {
744
- Logger.Info(`Got offer sdp ${Offer.sdp}`);
780
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`Got offer sdp ${Offer.sdp}`);
745
781
  this.isUsingSFU = Offer.sfu ? Offer.sfu : false;
746
- if (this.isUsingSFU) {
782
+ this.isUsingSVC = Offer.scalabilityMode ? Offer.scalabilityMode != 'L1T1' : false;
783
+ if (this.isUsingSFU || this.isUsingSVC) {
747
784
  // Disable negotiating with the sfu as the sfu only supports one codec at a time
748
785
  this.peerConnectionController.preferredCodec = '';
749
786
  }
787
+ // NOTE: These two settings configurations are done outside of an if(this.isUsingSFU) so that users
788
+ // can switch between a default and SFU stream and have the settings reconfigure appropriately
789
+ const scalabilityMode = Offer.scalabilityMode ? Offer.scalabilityMode : 'L1T1';
790
+ let availableQualities = ['Default'];
791
+ if (this.isUsingSFU) {
792
+ if (!this.isUsingSVC) {
793
+ // User is using an SFU without any temporal scalability. Just offer easily readable names
794
+ availableQualities = ['Low', 'Medium', 'High'];
795
+ }
796
+ else {
797
+ // User is using SVC. Generate all available options.
798
+ availableQualities = [];
799
+ const maxSpatialLayers = +scalabilityMode[1];
800
+ const maxTemporalLayers = +scalabilityMode[3];
801
+ for (let s = 1; s <= maxSpatialLayers; s++) {
802
+ for (let t = 1; t <= maxTemporalLayers; t++) {
803
+ availableQualities.push(`S${s}T${t}`);
804
+ }
805
+ }
806
+ }
807
+ }
808
+ // Update the possible video quality options
809
+ this.config.setOptionSettingOptions(Config_1.OptionParameters.PreferredQuality, availableQualities);
810
+ // Update the selected video quality with the highest possible resolution
811
+ this.config.setOptionSettingValue(Config_1.OptionParameters.PreferredQuality, availableQualities.slice(-1)[0]);
750
812
  const sdpOffer = {
751
813
  sdp: Offer.sdp,
752
814
  type: 'offer'
@@ -773,7 +835,7 @@ export class WebRtcPlayerController {
773
835
  id: DataChannels.recvStreamId
774
836
  };
775
837
  this.recvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection, 'recv-datachannel', RecvOptions);
776
- this.recvDataChannelController.handleOnOpen = () => this.protocol.sendMessage(MessageHelpers.createMessage(Messages.peerDataChannelsReady));
838
+ this.recvDataChannelController.handleOnOpen = () => this.protocol.sendMessage(lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.peerDataChannelsReady));
777
839
  // If we're uni-directional, only the recv data channel should handle incoming messages
778
840
  this.recvDataChannelController.handleOnMessage = (ev) => this.handleOnMessage(ev);
779
841
  }
@@ -792,16 +854,16 @@ export class WebRtcPlayerController {
792
854
  }
793
855
  this.statsTimerHandle = window.setInterval(() => this.getStats(), 1000);
794
856
  /* */
795
- this.setMouseInputEnabled(this.config.isFlagEnabled(Flags.MouseInput));
796
- this.setKeyboardInputEnabled(this.config.isFlagEnabled(Flags.KeyboardInput));
797
- this.setGamePadInputEnabled(this.config.isFlagEnabled(Flags.GamepadInput));
857
+ this.setMouseInputEnabled(this.config.isFlagEnabled(Config_1.Flags.MouseInput));
858
+ this.setKeyboardInputEnabled(this.config.isFlagEnabled(Config_1.Flags.KeyboardInput));
859
+ this.setGamePadInputEnabled(this.config.isFlagEnabled(Config_1.Flags.GamepadInput));
798
860
  }
799
861
  /**
800
862
  * When an ice Candidate is received from the Signaling server add it to the Peer Connection Client
801
863
  * @param iceCandidate - Ice Candidate from Server
802
864
  */
803
865
  handleIceCandidate(iceCandidate) {
804
- Logger.Info('Web RTC Controller: onWebRtcIce');
866
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('Web RTC Controller: onWebRtcIce');
805
867
  const candidate = new RTCIceCandidate(iceCandidate);
806
868
  this.peerConnectionController.handleOnIce(candidate);
807
869
  }
@@ -810,9 +872,9 @@ export class WebRtcPlayerController {
810
872
  * @param iceEvent - RTC Peer ConnectionIceEvent) {
811
873
  */
812
874
  handleSendIceCandidate(iceEvent) {
813
- Logger.Info('OnIceCandidate');
875
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('OnIceCandidate');
814
876
  if (iceEvent.candidate && iceEvent.candidate.candidate) {
815
- this.protocol.sendMessage(MessageHelpers.createMessage(Messages.iceCandidate, { candidate: iceEvent.candidate }));
877
+ this.protocol.sendMessage(lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.iceCandidate, { candidate: iceEvent.candidate }));
816
878
  }
817
879
  }
818
880
  /**
@@ -820,7 +882,7 @@ export class WebRtcPlayerController {
820
882
  * @param iceEvent - RTC Peer ConnectionIceEvent) {
821
883
  */
822
884
  handleDataChannel(datachannelEvent) {
823
- Logger.Info('Data channel created for us by browser as we are a receiving peer.');
885
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('Data channel created for us by browser as we are a receiving peer.');
824
886
  this.sendrecvDataChannelController.dataChannel = datachannelEvent.channel;
825
887
  // Data channel was created for us, so we just need to setup its callbacks and array type
826
888
  this.sendrecvDataChannelController.setupDataChannel();
@@ -831,28 +893,28 @@ export class WebRtcPlayerController {
831
893
  * @param offer - RTC Session Description
832
894
  */
833
895
  handleSendWebRTCOffer(offer) {
834
- Logger.Info('Sending the offer to the Server');
896
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('Sending the offer to the Server');
835
897
  const extraParams = {
836
898
  sdp: offer.sdp,
837
- minBitrateBps: 1000 * this.config.getNumericSettingValue(NumericParameters.WebRTCMinBitrate),
838
- maxBitrateBps: 1000 * this.config.getNumericSettingValue(NumericParameters.WebRTCMaxBitrate)
899
+ minBitrateBps: 1000 * this.config.getNumericSettingValue(Config_1.NumericParameters.WebRTCMinBitrate),
900
+ maxBitrateBps: 1000 * this.config.getNumericSettingValue(Config_1.NumericParameters.WebRTCMaxBitrate)
839
901
  };
840
- this.protocol.sendMessage(MessageHelpers.createMessage(Messages.offer, extraParams));
902
+ this.protocol.sendMessage(lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.offer, extraParams));
841
903
  }
842
904
  /**
843
905
  * Send the RTC Offer Session to the Signaling server via websocket
844
906
  * @param answer - RTC Session Description
845
907
  */
846
908
  handleSendWebRTCAnswer(answer) {
847
- Logger.Info('Sending the answer to the Server');
909
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('Sending the answer to the Server');
848
910
  const extraParams = {
849
911
  sdp: answer.sdp,
850
- minBitrateBps: 1000 * this.config.getNumericSettingValue(NumericParameters.WebRTCMinBitrate),
851
- maxBitrateBps: 1000 * this.config.getNumericSettingValue(NumericParameters.WebRTCMaxBitrate)
912
+ minBitrateBps: 1000 * this.config.getNumericSettingValue(Config_1.NumericParameters.WebRTCMinBitrate),
913
+ maxBitrateBps: 1000 * this.config.getNumericSettingValue(Config_1.NumericParameters.WebRTCMaxBitrate)
852
914
  };
853
- this.protocol.sendMessage(MessageHelpers.createMessage(Messages.answer, extraParams));
915
+ this.protocol.sendMessage(lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.answer, extraParams));
854
916
  if (this.isUsingSFU) {
855
- this.protocol.sendMessage(MessageHelpers.createMessage(Messages.dataChannelRequest));
917
+ this.protocol.sendMessage(lib_pixelstreamingcommon_ue5_5_1.MessageHelpers.createMessage(lib_pixelstreamingcommon_ue5_5_1.Messages.dataChannelRequest));
856
918
  }
857
919
  }
858
920
  /**
@@ -924,7 +986,7 @@ export class WebRtcPlayerController {
924
986
  * to aim for the best quality it can on the given network link.
925
987
  */
926
988
  sendEncoderMinQP(minQP) {
927
- Logger.Info(`MinQP=${minQP}\n`);
989
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`MinQP=${minQP}\n`);
928
990
  if (minQP != null) {
929
991
  this.streamMessageController.toStreamerHandlers.get('Command')([
930
992
  JSON.stringify({
@@ -943,7 +1005,7 @@ export class WebRtcPlayerController {
943
1005
  * to drop quality as low as needed on the given network link.
944
1006
  */
945
1007
  sendEncoderMaxQP(maxQP) {
946
- Logger.Info(`MaxQP=${maxQP}\n`);
1008
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`MaxQP=${maxQP}\n`);
947
1009
  if (maxQP != null) {
948
1010
  this.streamMessageController.toStreamerHandlers.get('Command')([
949
1011
  JSON.stringify({
@@ -952,6 +1014,40 @@ export class WebRtcPlayerController {
952
1014
  ]);
953
1015
  }
954
1016
  }
1017
+ /**
1018
+ * Send the MinQuality encoder setting to the UE Instance.
1019
+ * @param minQuality - The lower bound for quality when encoding
1020
+ * valid values are (0-100) where:
1021
+ * 0 = Worst quality.
1022
+ * 100 = Best quality.
1023
+ */
1024
+ sendEncoderMinQuality(minQuality) {
1025
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`MinQuality=${minQuality}\n`);
1026
+ if (minQuality != null) {
1027
+ this.streamMessageController.toStreamerHandlers.get('Command')([
1028
+ JSON.stringify({
1029
+ 'Encoder.MinQuality': minQuality
1030
+ })
1031
+ ]);
1032
+ }
1033
+ }
1034
+ /**
1035
+ * Send the MaxQuality encoder setting to the UE Instance.
1036
+ * @param maxQuality - The upper bound for quality when encoding
1037
+ * valid values are (0-100) where:
1038
+ * 0 = Worst quality.
1039
+ * 100 = Best quality.
1040
+ */
1041
+ sendEncoderMaxQuality(maxQuality) {
1042
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`MaxQuality=${maxQuality}\n`);
1043
+ if (maxQuality != null) {
1044
+ this.streamMessageController.toStreamerHandlers.get('Command')([
1045
+ JSON.stringify({
1046
+ 'Encoder.MaxQuality': maxQuality
1047
+ })
1048
+ ]);
1049
+ }
1050
+ }
955
1051
  /**
956
1052
  * Send the { WebRTC.MinBitrate: SomeNumber }} command to UE to set
957
1053
  * the minimum bitrate that we allow WebRTC to use
@@ -959,7 +1055,7 @@ export class WebRtcPlayerController {
959
1055
  * @param minBitrate - The minimum bitrate we would like WebRTC to not fall below.
960
1056
  */
961
1057
  sendWebRTCMinBitrate(minBitrate) {
962
- Logger.Info(`WebRTC Min Bitrate=${minBitrate}`);
1058
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`WebRTC Min Bitrate=${minBitrate}`);
963
1059
  if (minBitrate != null) {
964
1060
  this.streamMessageController.toStreamerHandlers.get('Command')([
965
1061
  JSON.stringify({
@@ -975,7 +1071,7 @@ export class WebRtcPlayerController {
975
1071
  * @param minBitrate - The minimum bitrate we would like WebRTC to not fall below.
976
1072
  */
977
1073
  sendWebRTCMaxBitrate(maxBitrate) {
978
- Logger.Info(`WebRTC Max Bitrate=${maxBitrate}`);
1074
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`WebRTC Max Bitrate=${maxBitrate}`);
979
1075
  if (maxBitrate != null) {
980
1076
  this.streamMessageController.toStreamerHandlers.get('Command')([
981
1077
  JSON.stringify({
@@ -991,7 +1087,7 @@ export class WebRtcPlayerController {
991
1087
  * @param fps - The maximum stream fps.
992
1088
  */
993
1089
  sendWebRTCFps(fps) {
994
- Logger.Info(`WebRTC FPS=${fps}`);
1090
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`WebRTC FPS=${fps}`);
995
1091
  if (fps != null) {
996
1092
  this.streamMessageController.toStreamerHandlers.get('Command')([
997
1093
  JSON.stringify({ 'WebRTC.Fps': fps })
@@ -1006,35 +1102,35 @@ export class WebRtcPlayerController {
1006
1102
  * Sends the UI Descriptor `stat fps` to the UE Instance
1007
1103
  */
1008
1104
  sendShowFps() {
1009
- Logger.Info('---- Sending show stat to UE ----');
1105
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('---- Sending show stat to UE ----');
1010
1106
  this.streamMessageController.toStreamerHandlers.get('Command')([JSON.stringify({ 'stat.fps': '' })]);
1011
1107
  }
1012
1108
  /**
1013
1109
  * Send an Iframe request to the streamer
1014
1110
  */
1015
1111
  sendIframeRequest() {
1016
- Logger.Info('---- Sending Request for an IFrame ----');
1112
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('---- Sending Request for an IFrame ----');
1017
1113
  this.streamMessageController.toStreamerHandlers.get('IFrameRequest')();
1018
1114
  }
1019
1115
  /**
1020
1116
  * Send a UIInteraction message
1021
1117
  */
1022
1118
  emitUIInteraction(descriptor) {
1023
- Logger.Info('---- Sending custom UIInteraction message ----');
1119
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('---- Sending custom UIInteraction message ----');
1024
1120
  this.streamMessageController.toStreamerHandlers.get('UIInteraction')([JSON.stringify(descriptor)]);
1025
1121
  }
1026
1122
  /**
1027
1123
  * Send a Command message
1028
1124
  */
1029
1125
  emitCommand(descriptor) {
1030
- Logger.Info('---- Sending custom Command message ----');
1126
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('---- Sending custom Command message ----');
1031
1127
  this.streamMessageController.toStreamerHandlers.get('Command')([JSON.stringify(descriptor)]);
1032
1128
  }
1033
1129
  /**
1034
1130
  * Send a console command message
1035
1131
  */
1036
1132
  emitConsoleCommand(command) {
1037
- Logger.Info('---- Sending custom Command:ConsoleCommand message ----');
1133
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('---- Sending custom Command:ConsoleCommand message ----');
1038
1134
  this.streamMessageController.toStreamerHandlers.get('Command')([
1039
1135
  JSON.stringify({
1040
1136
  ConsoleCommand: command
@@ -1045,7 +1141,7 @@ export class WebRtcPlayerController {
1045
1141
  * Sends a request to the UE Instance to have ownership of Quality
1046
1142
  */
1047
1143
  sendRequestQualityControlOwnership() {
1048
- Logger.Info('---- Sending Request to Control Quality ----');
1144
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('---- Sending Request to Control Quality ----');
1049
1145
  this.toStreamerMessagesController.SendRequestQualityControl();
1050
1146
  }
1051
1147
  /**
@@ -1053,9 +1149,9 @@ export class WebRtcPlayerController {
1053
1149
  * @param message - Latency Test Timings
1054
1150
  */
1055
1151
  handleLatencyTestResult(message) {
1056
- Logger.Info('DataChannelReceiveMessageType.latencyTest');
1152
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('DataChannelReceiveMessageType.latencyTest');
1057
1153
  const latencyAsString = new TextDecoder('utf-16').decode(message.slice(1));
1058
- const latencyTestResults = new LatencyTestResults();
1154
+ const latencyTestResults = new LatencyTestResults_1.LatencyTestResults();
1059
1155
  Object.assign(latencyTestResults, JSON.parse(latencyAsString));
1060
1156
  latencyTestResults.processFields();
1061
1157
  latencyTestResults.testStartTimeMs = this.latencyStartTime;
@@ -1075,7 +1171,7 @@ export class WebRtcPlayerController {
1075
1171
  * @param message - Data Channel Latency Test Response
1076
1172
  */
1077
1173
  handleDataChannelLatencyTestResponse(message) {
1078
- Logger.Info('DataChannelReceiveMessageType.dataChannelLatencyResponse');
1174
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('DataChannelReceiveMessageType.dataChannelLatencyResponse');
1079
1175
  const responseAsString = new TextDecoder('utf-16').decode(message.slice(1));
1080
1176
  const latencyTestResponse = JSON.parse(responseAsString);
1081
1177
  this.pixelStreaming._onDataChannelLatencyTestResponse(latencyTestResponse);
@@ -1085,10 +1181,10 @@ export class WebRtcPlayerController {
1085
1181
  * @param message - Initial Encoder and Web RTC Settings
1086
1182
  */
1087
1183
  handleInitialSettings(message) {
1088
- Logger.Info('DataChannelReceiveMessageType.InitialSettings');
1184
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('DataChannelReceiveMessageType.InitialSettings');
1089
1185
  const payloadAsString = new TextDecoder('utf-16').decode(message.slice(1));
1090
1186
  const parsedInitialSettings = JSON.parse(payloadAsString);
1091
- const initialSettings = new InitialSettings();
1187
+ const initialSettings = new InitialSettings_1.InitialSettings();
1092
1188
  if (parsedInitialSettings.Encoder) {
1093
1189
  initialSettings.EncoderSettings = parsedInitialSettings.Encoder;
1094
1190
  }
@@ -1100,10 +1196,10 @@ export class WebRtcPlayerController {
1100
1196
  }
1101
1197
  if (parsedInitialSettings.ConfigOptions &&
1102
1198
  parsedInitialSettings.ConfigOptions.DefaultToHover !== undefined) {
1103
- this.config.setFlagEnabled(Flags.HoveringMouseMode, !!parsedInitialSettings.ConfigOptions.DefaultToHover);
1199
+ this.config.setFlagEnabled(Config_1.Flags.HoveringMouseMode, !!parsedInitialSettings.ConfigOptions.DefaultToHover);
1104
1200
  }
1105
1201
  initialSettings.ueCompatible();
1106
- Logger.Info(payloadAsString);
1202
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(payloadAsString);
1107
1203
  this.pixelStreaming._onInitialSettings(initialSettings);
1108
1204
  }
1109
1205
  /**
@@ -1111,7 +1207,7 @@ export class WebRtcPlayerController {
1111
1207
  * @param message - Encoders Quantization Parameter
1112
1208
  */
1113
1209
  handleVideoEncoderAvgQP(message) {
1114
- Logger.Info('DataChannelReceiveMessageType.VideoEncoderAvgQP');
1210
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('DataChannelReceiveMessageType.VideoEncoderAvgQP');
1115
1211
  const AvgQP = Number(new TextDecoder('utf-16').decode(message.slice(1)));
1116
1212
  this.setVideoEncoderAvgQP(AvgQP);
1117
1213
  }
@@ -1131,9 +1227,9 @@ export class WebRtcPlayerController {
1131
1227
  */
1132
1228
  onQualityControlOwnership(message) {
1133
1229
  const view = new Uint8Array(message);
1134
- Logger.Info('DataChannelReceiveMessageType.QualityControlOwnership');
1230
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info('DataChannelReceiveMessageType.QualityControlOwnership');
1135
1231
  this.isQualityController = new Boolean(view[1]).valueOf();
1136
- Logger.Info(`Received quality controller message, will control quality: ${this.isQualityController}`);
1232
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Info(`Received quality controller message, will control quality: ${this.isQualityController}`);
1137
1233
  this.pixelStreaming._onQualityControlOwnership(this.isQualityController);
1138
1234
  }
1139
1235
  /**
@@ -1177,9 +1273,9 @@ export class WebRtcPlayerController {
1177
1273
  var _a;
1178
1274
  (_a = this.mouseController) === null || _a === void 0 ? void 0 : _a.unregister();
1179
1275
  if (isEnabled) {
1180
- const mouseMode = this.config.isFlagEnabled(Flags.HoveringMouseMode)
1181
- ? ControlSchemeType.HoveringMouse
1182
- : ControlSchemeType.LockedMouse;
1276
+ const mouseMode = this.config.isFlagEnabled(Config_1.Flags.HoveringMouseMode)
1277
+ ? Config_1.ControlSchemeType.HoveringMouse
1278
+ : Config_1.ControlSchemeType.LockedMouse;
1183
1279
  this.mouseController = this.inputClassesFactory.registerMouse(mouseMode);
1184
1280
  }
1185
1281
  }
@@ -1190,7 +1286,7 @@ export class WebRtcPlayerController {
1190
1286
  var _a;
1191
1287
  (_a = this.touchController) === null || _a === void 0 ? void 0 : _a.unregister();
1192
1288
  if (isEnabled) {
1193
- this.touchController = this.inputClassesFactory.registerTouch(this.config.isFlagEnabled(Flags.FakeMouseWithTouches));
1289
+ this.touchController = this.inputClassesFactory.registerTouch(this.config.isFlagEnabled(Config_1.Flags.FakeMouseWithTouches));
1194
1290
  }
1195
1291
  }
1196
1292
  /**
@@ -1204,17 +1300,18 @@ export class WebRtcPlayerController {
1204
1300
  }
1205
1301
  }
1206
1302
  registerDataChannelEventEmitters(dataChannel) {
1207
- dataChannel.onOpen = (label, event) => this.pixelStreaming.dispatchEvent(new DataChannelOpenEvent({ label, event }));
1208
- dataChannel.onClose = (label, event) => this.pixelStreaming.dispatchEvent(new DataChannelCloseEvent({ label, event }));
1209
- dataChannel.onError = (label, event) => this.pixelStreaming.dispatchEvent(new DataChannelErrorEvent({ label, event }));
1303
+ dataChannel.onOpen = (label, event) => this.pixelStreaming.dispatchEvent(new EventEmitter_1.DataChannelOpenEvent({ label, event }));
1304
+ dataChannel.onClose = (label, event) => this.pixelStreaming.dispatchEvent(new EventEmitter_1.DataChannelCloseEvent({ label, event }));
1305
+ dataChannel.onError = (label, event) => this.pixelStreaming.dispatchEvent(new EventEmitter_1.DataChannelErrorEvent({ label, event }));
1210
1306
  }
1211
1307
  registerMessageHandler(name, direction, handler) {
1212
- if (direction === MessageDirection.FromStreamer && typeof handler === 'undefined') {
1213
- Logger.Warning(`Unable to register handler for ${name} as no handler was passed`);
1308
+ if (direction === StreamMessageController_1.MessageDirection.FromStreamer && typeof handler === 'undefined') {
1309
+ lib_pixelstreamingcommon_ue5_5_1.Logger.Warning(`Unable to register handler for ${name} as no handler was passed`);
1214
1310
  }
1215
- this.streamMessageController.registerMessageHandler(direction, name, (data) => typeof handler === 'undefined' && direction === MessageDirection.ToStreamer
1311
+ this.streamMessageController.registerMessageHandler(direction, name, (data) => typeof handler === 'undefined' && direction === StreamMessageController_1.MessageDirection.ToStreamer
1216
1312
  ? this.sendMessageController.sendMessageToStreamer(name, data)
1217
1313
  : handler(data));
1218
1314
  }
1219
1315
  }
1316
+ exports.WebRtcPlayerController = WebRtcPlayerController;
1220
1317
  //# sourceMappingURL=WebRtcPlayerController.js.map