@epicgames-ps/lib-pixelstreamingfrontend-ue5.5 0.0.6 → 0.0.8

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epicgames-ps/lib-pixelstreamingfrontend-ue5.5",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Frontend library for Unreal Engine 5.5 Pixel Streaming",
5
5
  "main": "dist/lib-pixelstreamingfrontend.js",
6
6
  "module": "dist/lib-pixelstreamingfrontend.esm.js",
@@ -16,7 +16,7 @@
16
16
  "spellcheck": "cspell \"{README.md,.github/*.md,src/**/*.ts}\""
17
17
  },
18
18
  "devDependencies": {
19
- "@epicgames-ps/lib-pixelstreamingcommon-ue5.5": "^0.0.3",
19
+ "@epicgames-ps/lib-pixelstreamingcommon-ue5.5": "^0.0.8",
20
20
  "@types/jest": "27.5.1",
21
21
  "@types/webxr": "^0.5.1",
22
22
  "@typescript-eslint/eslint-plugin": "^5.16.0",
@@ -46,3 +46,4 @@
46
46
  "access": "public"
47
47
  }
48
48
  }
49
+
@@ -30,7 +30,6 @@ import {
30
30
  DataChannelLatencyTestResultEvent,
31
31
  PlayerCountEvent
32
32
  } from '../Util/EventEmitter';
33
- import { MessageReceive } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
34
33
  import { WebXRController } from '../WebXR/WebXRController';
35
34
  import { MessageDirection } from '../UeInstanceMessage/StreamMessageController';
36
35
  import {
@@ -112,7 +111,7 @@ export class PixelStreaming {
112
111
  x,
113
112
  y
114
113
  );
115
- this._activateOnScreenKeyboard = (command: MessageReceive.MessageOnScreenKeyboard) =>
114
+ this._activateOnScreenKeyboard = (command: any) =>
116
115
  this.onScreenKeyboardHelper.showOnScreenKeyboard(command);
117
116
 
118
117
  this._webXrController = new WebXRController(this._webRtcController);
@@ -307,7 +306,7 @@ export class PixelStreaming {
307
306
  * @param command - the keyboard command
308
307
  */
309
308
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
310
- _activateOnScreenKeyboard(command: MessageReceive.MessageOnScreenKeyboard): void {
309
+ _activateOnScreenKeyboard(command: any): void {
311
310
  throw new Error('Method not implemented.');
312
311
  }
313
312
 
@@ -1,7 +1,6 @@
1
1
  // Copyright Epic Games, Inc. All Rights Reserved.
2
2
 
3
3
  import { UnquantizedDenormalizedUnsignedCoord } from '../Util/CoordinateConverter';
4
- import { MessageReceive } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
5
4
 
6
5
  /**
7
6
  * Class for handling on screen keyboard usage
@@ -76,7 +75,7 @@ export class OnScreenKeyboard {
76
75
  * Shows the on screen keyboard
77
76
  * @param command the command received via the data channel containing keyboard positions
78
77
  */
79
- showOnScreenKeyboard(command: MessageReceive.MessageOnScreenKeyboard) {
78
+ showOnScreenKeyboard(command: any) {
80
79
  if (command.showOnScreenKeyboard) {
81
80
  // Show the 'edit text' button.
82
81
  this.editTextButton.classList.remove('hiddenState');
@@ -7,7 +7,7 @@ import {
7
7
  import { LatencyTestResults } from '../DataChannel/LatencyTestResults';
8
8
  import { AggregatedStats } from '../PeerConnectionController/AggregatedStats';
9
9
  import { InitialSettings } from '../pixelstreamingfrontend';
10
- import { MessageReceive } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
10
+ import { Messages } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
11
11
  import { SettingFlag } from '../Config/SettingFlag';
12
12
  import { SettingNumber } from '../Config/SettingNumber';
13
13
  import { SettingText } from '../Config/SettingText';
@@ -345,7 +345,7 @@ export class StreamerListMessageEvent extends Event {
345
345
  readonly type: 'streamerListMessage';
346
346
  readonly data: {
347
347
  /** Streamer list message containing an array of streamer ids */
348
- messageStreamerList: MessageReceive.MessageStreamerList;
348
+ messageStreamerList: Messages.streamerList;
349
349
  /** Auto-selected streamer from the list, or null if unable to auto-select and user should be prompted to select */
350
350
  autoSelectedStreamerId: string;
351
351
  /** Wanted streamer id from various configurations. */
@@ -1,12 +1,13 @@
1
1
  // Copyright Epic Games, Inc. All Rights Reserved.
2
2
 
3
3
  import {
4
- MessageSend,
5
- MessageReceive,
6
4
  WebSocketTransport,
7
5
  Logger,
8
6
  SignallingProtocol,
9
- ITransport
7
+ ITransport,
8
+ Messages,
9
+ MessageHelpers,
10
+ BaseMessage
10
11
  } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
11
12
  import { StreamController } from '../VideoPlayer/StreamController';
12
13
  import { FreezeFrameController } from '../FreezeFrame/FreezeFrameController';
@@ -191,36 +192,37 @@ export class WebRtcPlayerController {
191
192
  // set up websocket methods
192
193
  this.transport = new WebSocketTransport();
193
194
  this.protocol = new SignallingProtocol(this.transport);
194
- this.protocol.messageHandlers.addListener(MessageReceive.MessageRecvTypes.CONFIG, (msg: MessageReceive.MessageRecv) =>
195
- this.handleOnConfigMessage(msg as MessageReceive.MessageConfig)
195
+ this.protocol.messageHandlers.addListener(Messages.config.typeName, (msg: BaseMessage) =>
196
+ this.handleOnConfigMessage(msg as Messages.config)
196
197
  );
197
- this.protocol.messageHandlers.addListener(MessageReceive.MessageRecvTypes.STREAMER_LIST, (msg: MessageReceive.MessageRecv) =>
198
- this.handleStreamerListMessage(msg as MessageReceive.MessageStreamerList)
198
+ this.protocol.messageHandlers.addListener(Messages.streamerList.typeName, (msg: BaseMessage) =>
199
+ this.handleStreamerListMessage(msg as Messages.streamerList)
199
200
  );
200
- this.protocol.messageHandlers.addListener(MessageReceive.MessageRecvTypes.STREAMER_ID_CHANGED, (msg: MessageReceive.MessageRecv) =>
201
- this.handleStreamerIDChangedMessage(msg as MessageReceive.MessageStreamerIDChanged)
201
+ this.protocol.messageHandlers.addListener(Messages.streamerIdChanged.typeName, (msg: BaseMessage) =>
202
+ this.handleStreamerIDChangedMessage(msg as Messages.streamerIdChanged)
202
203
  );
203
- this.protocol.messageHandlers.addListener(MessageReceive.MessageRecvTypes.PLAYER_COUNT, (msg: MessageReceive.MessageRecv) => {
204
- const playerCountMessage = msg as MessageReceive.MessagePlayerCount;
204
+ this.protocol.messageHandlers.addListener(Messages.playerCount.typeName, (msg: BaseMessage) => {
205
+ const playerCountMessage = msg as Messages.playerCount;
205
206
  this.pixelStreaming._onPlayerCount(playerCountMessage.count);
206
207
  });
207
- this.protocol.messageHandlers.addListener(MessageReceive.MessageRecvTypes.ANSWER, (msg: MessageReceive.MessageRecv) =>
208
- this.handleWebRtcAnswer(msg as MessageReceive.MessageAnswer)
208
+ this.protocol.messageHandlers.addListener(Messages.answer.typeName, (msg: BaseMessage) =>
209
+ this.handleWebRtcAnswer(msg as Messages.answer)
209
210
  );
210
- this.protocol.messageHandlers.addListener(MessageReceive.MessageRecvTypes.OFFER, (msg: MessageReceive.MessageRecv) =>
211
- this.handleWebRtcOffer(msg as MessageReceive.MessageOffer)
211
+ this.protocol.messageHandlers.addListener(Messages.offer.typeName, (msg: BaseMessage) =>
212
+ this.handleWebRtcOffer(msg as Messages.offer)
212
213
  );
213
- this.protocol.messageHandlers.addListener(MessageReceive.MessageRecvTypes.PEER_DATA_CHANNELS, (msg: MessageReceive.MessageRecv) =>
214
- this.handleWebRtcSFUPeerDatachannels(msg as MessageReceive.MessagePeerDataChannels)
214
+ this.protocol.messageHandlers.addListener(Messages.streamerDataChannels.typeName, (msg: BaseMessage) =>
215
+ this.handleWebRtcSFUPeerDatachannels(msg as Messages.streamerDataChannels)
215
216
  );
216
- this.protocol.messageHandlers.addListener(MessageReceive.MessageRecvTypes.ICE_CANDIDATE, (msg: MessageReceive.MessageRecv) => {
217
- const iceCandidateMessage = msg as MessageReceive.MessageIceCandidate;
217
+ this.protocol.messageHandlers.addListener(Messages.iceCandidate.typeName, (msg: BaseMessage) => {
218
+ const iceCandidateMessage = msg as Messages.iceCandidate;
218
219
  this.handleIceCandidate(iceCandidateMessage.candidate);
219
220
  });
220
221
  this.protocol.transportEvents.addListener('open', () => {
221
222
  const BrowserSendsOffer = this.config.isFlagEnabled(Flags.BrowserSendOffer);
222
223
  if (!BrowserSendsOffer) {
223
- this.protocol.sendMessage(new MessageSend.MessageListStreamers());
224
+ const message = MessageHelpers.createMessage(Messages.listStreamers);
225
+ this.protocol.sendMessage(message);
224
226
  }
225
227
  });
226
228
  this.protocol.transportEvents.addListener('error', () => {
@@ -305,7 +307,8 @@ export class WebRtcPlayerController {
305
307
  this.preferredCodec
306
308
  );
307
309
  this.subscribedStream = streamerid;
308
- this.protocol.sendMessage(new MessageSend.MessageSubscribe(streamerid));
310
+ const message = MessageHelpers.createMessage(Messages.subscribe, { streamerId: streamerid });
311
+ this.protocol.sendMessage(message);
309
312
  }
310
313
  );
311
314
 
@@ -789,7 +792,7 @@ export class WebRtcPlayerController {
789
792
  'Data Channel Command: ' + commandAsString,
790
793
  6
791
794
  );
792
- const command: MessageReceive.MessageOnScreenKeyboard = JSON.parse(commandAsString);
795
+ const command = JSON.parse(commandAsString);
793
796
  if (command.command === 'onScreenKeyboard') {
794
797
  this.pixelStreaming._activateOnScreenKeyboard(command);
795
798
  }
@@ -1306,7 +1309,7 @@ export class WebRtcPlayerController {
1306
1309
  * Handles when a Config Message is received contains the Peer Connection Options required (STUN and TURN Server Info)
1307
1310
  * @param messageConfig - Config Message received from the signaling server
1308
1311
  */
1309
- handleOnConfigMessage(messageConfig: MessageReceive.MessageConfig) {
1312
+ handleOnConfigMessage(messageConfig: Messages.config) {
1310
1313
  this.resizePlayerStyle();
1311
1314
 
1312
1315
  // Tell the WebRtcController to start a session with the peer options sent from the signaling server
@@ -1316,7 +1319,7 @@ export class WebRtcPlayerController {
1316
1319
  /**
1317
1320
  * Handles when the signalling server gives us the list of streamer ids.
1318
1321
  */
1319
- handleStreamerListMessage(messageStreamerList: MessageReceive.MessageStreamerList) {
1322
+ handleStreamerListMessage(messageStreamerList: Messages.streamerList) {
1320
1323
  Logger.Log(
1321
1324
  Logger.GetStackTrace(),
1322
1325
  `Got streamer list ${messageStreamerList.ids}`,
@@ -1404,7 +1407,7 @@ export class WebRtcPlayerController {
1404
1407
  );
1405
1408
  }
1406
1409
 
1407
- handleStreamerIDChangedMessage(streamerIDChangedMessage: MessageReceive.MessageStreamerIDChanged) {
1410
+ handleStreamerIDChangedMessage(streamerIDChangedMessage: Messages.streamerIdChanged) {
1408
1411
  const newID = streamerIDChangedMessage.newID;
1409
1412
 
1410
1413
  // need to edit the selected streamer in the settings list
@@ -1447,7 +1450,7 @@ export class WebRtcPlayerController {
1447
1450
  * Handle the RTC Answer from the signaling server
1448
1451
  * @param Answer - Answer SDP from the peer.
1449
1452
  */
1450
- handleWebRtcAnswer(Answer: MessageReceive.MessageAnswer) {
1453
+ handleWebRtcAnswer(Answer: Messages.answer) {
1451
1454
  Logger.Log(Logger.GetStackTrace(), `Got answer sdp ${Answer.sdp}`, 6);
1452
1455
 
1453
1456
  const sdpAnswer: RTCSessionDescriptionInit = {
@@ -1463,7 +1466,7 @@ export class WebRtcPlayerController {
1463
1466
  * Handle the RTC offer from a WebRTC peer (received through the signalling server).
1464
1467
  * @param Offer - Offer SDP from the peer.
1465
1468
  */
1466
- handleWebRtcOffer(Offer: MessageReceive.MessageOffer) {
1469
+ handleWebRtcOffer(Offer: Messages.offer) {
1467
1470
  Logger.Log(Logger.GetStackTrace(), `Got offer sdp ${Offer.sdp}`, 6);
1468
1471
 
1469
1472
  this.isUsingSFU = Offer.sfu ? Offer.sfu : false;
@@ -1485,9 +1488,7 @@ export class WebRtcPlayerController {
1485
1488
  * Handle when the SFU provides the peer with its data channels
1486
1489
  * @param DataChannels - The message from the SFU containing the data channels ids
1487
1490
  */
1488
- handleWebRtcSFUPeerDatachannels(
1489
- DataChannels: MessageReceive.MessagePeerDataChannels
1490
- ) {
1491
+ handleWebRtcSFUPeerDatachannels(DataChannels: Messages.streamerDataChannels) {
1491
1492
  const SendOptions: RTCDataChannelInit = {
1492
1493
  ordered: true,
1493
1494
  negotiated: true,
@@ -1603,12 +1604,13 @@ export class WebRtcPlayerController {
1603
1604
  6
1604
1605
  );
1605
1606
 
1606
- const extraParams: MessageSend.ExtraOfferParameters = {
1607
+ const extraParams = {
1608
+ sdp: offer.sdp,
1607
1609
  minBitrateBps: 1000 * this.config.getNumericSettingValue(NumericParameters.WebRTCMinBitrate),
1608
1610
  maxBitrateBps: 1000 * this.config.getNumericSettingValue(NumericParameters.WebRTCMaxBitrate)
1609
1611
  };
1610
1612
 
1611
- this.protocol.sendWebRtcOffer(offer, extraParams);
1613
+ this.protocol.sendWebRtcOffer(MessageHelpers.createMessage(Messages.offer, extraParams));
1612
1614
  }
1613
1615
 
1614
1616
  /**
@@ -1622,12 +1624,13 @@ export class WebRtcPlayerController {
1622
1624
  6
1623
1625
  );
1624
1626
 
1625
- const extraParams: MessageSend.ExtraAnswerParameters = {
1627
+ const extraParams = {
1628
+ sdp: answer.sdp,
1626
1629
  minBitrateBps: 1000 * this.config.getNumericSettingValue(NumericParameters.WebRTCMinBitrate),
1627
1630
  maxBitrateBps: 1000 * this.config.getNumericSettingValue(NumericParameters.WebRTCMaxBitrate)
1628
1631
  };
1629
1632
 
1630
- this.protocol.sendWebRtcAnswer(answer, extraParams);
1633
+ this.protocol.sendWebRtcOffer(MessageHelpers.createMessage(Messages.answer, extraParams));
1631
1634
 
1632
1635
  if (this.isUsingSFU) {
1633
1636
  this.protocol.sendWebRtcDatachannelRequest();
@@ -4,7 +4,6 @@ import { AggregatedStats } from '../PeerConnectionController/AggregatedStats';
4
4
  import { WebRtcPlayerController } from '../WebRtcPlayer/WebRtcPlayerController';
5
5
  import { InitialSettings } from '../DataChannel/InitialSettings';
6
6
  import { PixelStreamingEvent } from '../Util/EventEmitter';
7
- import { MessageReceive } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
8
7
  import { WebXRController } from '../WebXR/WebXRController';
9
8
  import { MessageDirection } from '../UeInstanceMessage/StreamMessageController';
10
9
  import { DataChannelLatencyTestConfig, DataChannelLatencyTestController } from "../DataChannel/DataChannelLatencyTestController";
@@ -55,7 +54,7 @@ export declare class PixelStreaming {
55
54
  * Activate the on screen keyboard when receiving the command from the streamer
56
55
  * @param command - the keyboard command
57
56
  */
58
- _activateOnScreenKeyboard(command: MessageReceive.MessageOnScreenKeyboard): void;
57
+ _activateOnScreenKeyboard(command: any): void;
59
58
  /**
60
59
  * Set the input control ownership
61
60
  * @param inputControlOwnership - does the user have input control ownership
@@ -1,5 +1,4 @@
1
1
  import { UnquantizedDenormalizedUnsignedCoord } from '../Util/CoordinateConverter';
2
- import { MessageReceive } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
3
2
  /**
4
3
  * Class for handling on screen keyboard usage
5
4
  */
@@ -27,5 +26,5 @@ export declare class OnScreenKeyboard {
27
26
  * Shows the on screen keyboard
28
27
  * @param command the command received via the data channel containing keyboard positions
29
28
  */
30
- showOnScreenKeyboard(command: MessageReceive.MessageOnScreenKeyboard): void;
29
+ showOnScreenKeyboard(command: any): void;
31
30
  }
@@ -3,7 +3,7 @@ import { FlagsIds, NumericParametersIds, OptionParametersIds, TextParametersIds
3
3
  import { LatencyTestResults } from '../DataChannel/LatencyTestResults';
4
4
  import { AggregatedStats } from '../PeerConnectionController/AggregatedStats';
5
5
  import { InitialSettings } from '../pixelstreamingfrontend';
6
- import { MessageReceive } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
6
+ import { Messages } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
7
7
  import { SettingFlag } from '../Config/SettingFlag';
8
8
  import { SettingNumber } from '../Config/SettingNumber';
9
9
  import { SettingText } from '../Config/SettingText';
@@ -251,7 +251,7 @@ export declare class StreamerListMessageEvent extends Event {
251
251
  readonly type: 'streamerListMessage';
252
252
  readonly data: {
253
253
  /** Streamer list message containing an array of streamer ids */
254
- messageStreamerList: MessageReceive.MessageStreamerList;
254
+ messageStreamerList: Messages.streamerList;
255
255
  /** Auto-selected streamer from the list, or null if unable to auto-select and user should be prompted to select */
256
256
  autoSelectedStreamerId: string;
257
257
  /** Wanted streamer id from various configurations. */
@@ -1,4 +1,4 @@
1
- import { MessageReceive, SignallingProtocol, ITransport } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
1
+ import { SignallingProtocol, ITransport, Messages } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
2
2
  import { StreamController } from '../VideoPlayer/StreamController';
3
3
  import { FreezeFrameController } from '../FreezeFrame/FreezeFrameController';
4
4
  import { AFKController } from '../AFK/AFKController';
@@ -176,27 +176,27 @@ export declare class WebRtcPlayerController {
176
176
  * Handles when a Config Message is received contains the Peer Connection Options required (STUN and TURN Server Info)
177
177
  * @param messageConfig - Config Message received from the signaling server
178
178
  */
179
- handleOnConfigMessage(messageConfig: MessageReceive.MessageConfig): void;
179
+ handleOnConfigMessage(messageConfig: Messages.config): void;
180
180
  /**
181
181
  * Handles when the signalling server gives us the list of streamer ids.
182
182
  */
183
- handleStreamerListMessage(messageStreamerList: MessageReceive.MessageStreamerList): void;
184
- handleStreamerIDChangedMessage(streamerIDChangedMessage: MessageReceive.MessageStreamerIDChanged): void;
183
+ handleStreamerListMessage(messageStreamerList: Messages.streamerList): void;
184
+ handleStreamerIDChangedMessage(streamerIDChangedMessage: Messages.streamerIdChanged): void;
185
185
  /**
186
186
  * Handle the RTC Answer from the signaling server
187
187
  * @param Answer - Answer SDP from the peer.
188
188
  */
189
- handleWebRtcAnswer(Answer: MessageReceive.MessageAnswer): void;
189
+ handleWebRtcAnswer(Answer: Messages.answer): void;
190
190
  /**
191
191
  * Handle the RTC offer from a WebRTC peer (received through the signalling server).
192
192
  * @param Offer - Offer SDP from the peer.
193
193
  */
194
- handleWebRtcOffer(Offer: MessageReceive.MessageOffer): void;
194
+ handleWebRtcOffer(Offer: Messages.offer): void;
195
195
  /**
196
196
  * Handle when the SFU provides the peer with its data channels
197
197
  * @param DataChannels - The message from the SFU containing the data channels ids
198
198
  */
199
- handleWebRtcSFUPeerDatachannels(DataChannels: MessageReceive.MessagePeerDataChannels): void;
199
+ handleWebRtcSFUPeerDatachannels(DataChannels: Messages.streamerDataChannels): void;
200
200
  handlePostWebrtcNegotiation(): void;
201
201
  /**
202
202
  * When an ice Candidate is received from the Signaling server add it to the Peer Connection Client