@yang__yj/pixelstreaming-core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/library/dist/lib-pixelstreamingfrontend.esm.js +1 -0
  2. package/library/dist/lib-pixelstreamingfrontend.js +1 -0
  3. package/library/types/AFK/AFKController.d.ts +39 -0
  4. package/library/types/Config/Config.d.ts +217 -0
  5. package/library/types/Config/SettingBase.d.ts +30 -0
  6. package/library/types/Config/SettingFlag.d.ts +33 -0
  7. package/library/types/Config/SettingNumber.d.ts +45 -0
  8. package/library/types/Config/SettingOption.d.ts +43 -0
  9. package/library/types/Config/SettingText.d.ts +29 -0
  10. package/library/types/DataChannel/DataChannelController.d.ts +59 -0
  11. package/library/types/DataChannel/DataChannelSender.d.ts +21 -0
  12. package/library/types/DataChannel/InitialSettings.d.ts +44 -0
  13. package/library/types/DataChannel/LatencyTestResults.d.ts +31 -0
  14. package/library/types/FreezeFrame/FreezeFrame.d.ts +36 -0
  15. package/library/types/FreezeFrame/FreezeFrameController.d.ts +37 -0
  16. package/library/types/Inputs/FakeTouchController.d.ts +61 -0
  17. package/library/types/Inputs/GamepadController.d.ts +84 -0
  18. package/library/types/Inputs/GamepadTypes.d.ts +8 -0
  19. package/library/types/Inputs/HoveringMouseEvents.d.ts +56 -0
  20. package/library/types/Inputs/IMouseEvents.d.ts +53 -0
  21. package/library/types/Inputs/ITouchController.d.ts +24 -0
  22. package/library/types/Inputs/InputClassesFactory.d.ts +54 -0
  23. package/library/types/Inputs/KeyboardController.d.ts +57 -0
  24. package/library/types/Inputs/LockedMouseEvents.d.ts +80 -0
  25. package/library/types/Inputs/MouseButtons.d.ts +22 -0
  26. package/library/types/Inputs/MouseController.d.ts +75 -0
  27. package/library/types/Inputs/SpecialKeyCodes.d.ts +14 -0
  28. package/library/types/Inputs/TouchController.d.ts +53 -0
  29. package/library/types/Inputs/XRGamepadController.d.ts +15 -0
  30. package/library/types/Logger/Logger.d.ts +38 -0
  31. package/library/types/PeerConnectionController/AggregatedStats.d.ts +77 -0
  32. package/library/types/PeerConnectionController/CandidatePairStats.d.ts +15 -0
  33. package/library/types/PeerConnectionController/CandidateStat.d.ts +11 -0
  34. package/library/types/PeerConnectionController/CodecStats.d.ts +14 -0
  35. package/library/types/PeerConnectionController/DataChannelStats.d.ts +15 -0
  36. package/library/types/PeerConnectionController/InboundRTPStats.d.ts +141 -0
  37. package/library/types/PeerConnectionController/InboundTrackStats.d.ts +32 -0
  38. package/library/types/PeerConnectionController/OutBoundRTPStats.d.ts +23 -0
  39. package/library/types/PeerConnectionController/PeerConnectionController.d.ts +132 -0
  40. package/library/types/PeerConnectionController/SessionStats.d.ts +8 -0
  41. package/library/types/PeerConnectionController/StreamStats.d.ts +9 -0
  42. package/library/types/PixelStreaming/PixelStreaming.d.ts +234 -0
  43. package/library/types/UI/OnScreenKeyboard.d.ts +31 -0
  44. package/library/types/UeInstanceMessage/ResponseController.d.ts +19 -0
  45. package/library/types/UeInstanceMessage/SendDescriptorController.d.ts +28 -0
  46. package/library/types/UeInstanceMessage/SendMessageController.d.ts +18 -0
  47. package/library/types/UeInstanceMessage/StreamMessageController.d.ts +31 -0
  48. package/library/types/UeInstanceMessage/ToStreamerMessagesController.d.ts +32 -0
  49. package/library/types/UeInstanceMessage/TwoWayMap.d.ts +32 -0
  50. package/library/types/Util/CoordinateConverter.d.ts +100 -0
  51. package/library/types/Util/EventEmitter.d.ts +374 -0
  52. package/library/types/Util/EventListenerTracker.d.ts +14 -0
  53. package/library/types/Util/FileUtil.d.ts +32 -0
  54. package/library/types/Util/WebGLUtils.d.ts +4 -0
  55. package/library/types/Util/WebXRUtils.d.ts +9 -0
  56. package/library/types/VideoPlayer/StreamController.d.ts +24 -0
  57. package/library/types/VideoPlayer/VideoPlayer.d.ts +76 -0
  58. package/library/types/WebRtcPlayer/WebRtcPlayerController.d.ts +374 -0
  59. package/library/types/WebSockets/MessageReceive.d.ts +78 -0
  60. package/library/types/WebSockets/MessageSend.d.ts +98 -0
  61. package/library/types/WebSockets/SignallingProtocol.d.ts +15 -0
  62. package/library/types/WebSockets/WebSocketController.d.ts +96 -0
  63. package/library/types/WebXR/WebXRController.d.ts +26 -0
  64. package/library/types/pixelstreamingfrontend.d.ts +25 -0
  65. package/package.json +18 -0
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Inbound Audio Stats collected from the RTC Stats Report
3
+ */
4
+ export declare class InboundAudioStats {
5
+ audioLevel: number;
6
+ bytesReceived: number;
7
+ codecId: string;
8
+ concealedSamples: number;
9
+ concealmentEvents: number;
10
+ fecPacketsDiscarded: number;
11
+ fecPacketsReceived: number;
12
+ headerBytesReceived: number;
13
+ id: string;
14
+ insertedSamplesForDeceleration: number;
15
+ jitter: number;
16
+ jitterBufferDelay: number;
17
+ jitterBufferEmittedCount: number;
18
+ jitterBufferMinimumDelay: number;
19
+ jitterBufferTargetDelay: number;
20
+ kind: string;
21
+ lastPacketReceivedTimestamp: number;
22
+ mediaType: string;
23
+ mid: string;
24
+ packetsDiscarded: number;
25
+ packetsLost: number;
26
+ packetsReceived: number;
27
+ removedSamplesForAcceleration: number;
28
+ silentConcealedSamples: number;
29
+ ssrc: number;
30
+ timestamp: number;
31
+ totalAudioEnergy: number;
32
+ totalSamplesDuration: number;
33
+ totalSamplesReceived: number;
34
+ trackIdentifier: string;
35
+ transportId: string;
36
+ type: string;
37
+ bitrate: number;
38
+ }
39
+ /**
40
+ * Inbound Video Stats collected from the RTC Stats Report
41
+ */
42
+ export declare class InboundVideoStats {
43
+ bytesReceived: number;
44
+ codecId: string;
45
+ firCount: number;
46
+ frameHeight: number;
47
+ frameWidth: number;
48
+ framesAssembledFromMultiplePackets: number;
49
+ framesDecoded: number;
50
+ framesDropped: number;
51
+ framesPerSecond: number;
52
+ framesReceived: number;
53
+ freezeCount: number;
54
+ googTimingFrameInfo: string;
55
+ headerBytesReceived: number;
56
+ id: string;
57
+ jitter: number;
58
+ jitterBufferDelay: number;
59
+ jitterBufferEmittedCount: number;
60
+ keyFramesDecoded: number;
61
+ kind: string;
62
+ lastPacketReceivedTimestamp: number;
63
+ mediaType: string;
64
+ mid: string;
65
+ nackCount: number;
66
+ packetsLost: number;
67
+ packetsReceived: number;
68
+ pauseCount: number;
69
+ pliCount: number;
70
+ ssrc: number;
71
+ timestamp: number;
72
+ totalAssemblyTime: number;
73
+ totalDecodeTime: number;
74
+ totalFreezesDuration: number;
75
+ totalInterFrameDelay: number;
76
+ totalPausesDuration: number;
77
+ totalProcessingDelay: number;
78
+ totalSquaredInterFrameDelay: number;
79
+ trackIdentifier: string;
80
+ transportId: string;
81
+ type: string;
82
+ bitrate: number;
83
+ }
84
+ /**
85
+ * Inbound Stats collected from the RTC Stats Report
86
+ */
87
+ export declare class InboundRTPStats {
88
+ bytesReceived: number;
89
+ codecId: string;
90
+ headerBytesReceived: number;
91
+ id: string;
92
+ jitter: number;
93
+ jitterBufferDelay: number;
94
+ jitterBufferEmittedCount: number;
95
+ kind: string;
96
+ lastPacketReceivedTimestamp: number;
97
+ mediaType: string;
98
+ mid: string;
99
+ packetsLost: number;
100
+ packetsReceived: number;
101
+ ssrc: number;
102
+ timestamp: number;
103
+ trackIdentifier: string;
104
+ transportId: string;
105
+ type: string;
106
+ audioLevel: number;
107
+ concealedSamples: number;
108
+ concealmentEvents: number;
109
+ fecPacketsDiscarded: number;
110
+ fecPacketsReceived: number;
111
+ insertedSamplesForDeceleration: number;
112
+ jitterBufferMinimumDelay: number;
113
+ jitterBufferTargetDelay: number;
114
+ packetsDiscarded: number;
115
+ removedSamplesForAcceleration: number;
116
+ silentConcealedSamples: number;
117
+ totalAudioEnergy: number;
118
+ totalSamplesDuration: number;
119
+ totalSamplesReceived: number;
120
+ firCount: number;
121
+ frameHeight: number;
122
+ frameWidth: number;
123
+ framesAssembledFromMultiplePackets: number;
124
+ framesDecoded: number;
125
+ framesDropped: number;
126
+ framesPerSecond: number;
127
+ framesReceived: number;
128
+ freezeCount: number;
129
+ googTimingFrameInfo: string;
130
+ keyFramesDecoded: number;
131
+ nackCount: number;
132
+ pauseCount: number;
133
+ pliCount: number;
134
+ totalAssemblyTime: number;
135
+ totalDecodeTime: number;
136
+ totalFreezesDuration: number;
137
+ totalInterFrameDelay: number;
138
+ totalPausesDuration: number;
139
+ totalProcessingDelay: number;
140
+ totalSquaredInterFrameDelay: number;
141
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Inbound Track Stats collected from the RTC Stats Report
3
+ */
4
+ export declare class InboundTrackStats {
5
+ type: string;
6
+ kind: string;
7
+ trackIdentifier: string;
8
+ receiveToCompositeMs: number;
9
+ timestamp: number;
10
+ bytesReceived: number;
11
+ framesDecoded: number;
12
+ packetsLost: number;
13
+ bytesReceivedStart: number;
14
+ framesDecodedStart: number;
15
+ timestampStart: number;
16
+ bitrate: number;
17
+ lowBitrate: number;
18
+ highBitrate: number;
19
+ avgBitrate: number;
20
+ framerate: number;
21
+ lowFramerate: number;
22
+ highFramerate: number;
23
+ averageFrameRate: number;
24
+ framesDropped: number;
25
+ framesReceived: number;
26
+ framesDroppedPercentage: number;
27
+ frameHeight: number;
28
+ frameWidth: number;
29
+ frameHeightStart: number;
30
+ frameWidthStart: number;
31
+ jitter: number;
32
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Outbound Video Stats collected from the RTC Stats Report
3
+ */
4
+ export declare class OutBoundVideoStats {
5
+ bytesSent: number;
6
+ id: string;
7
+ localId: string;
8
+ packetsSent: number;
9
+ remoteTimestamp: number;
10
+ timestamp: number;
11
+ }
12
+ /**
13
+ * Outbound Stats collected from the RTC Stats Report
14
+ */
15
+ export declare class OutBoundRTPStats {
16
+ kind: string;
17
+ bytesSent: number;
18
+ id: string;
19
+ localId: string;
20
+ packetsSent: number;
21
+ remoteTimestamp: number;
22
+ timestamp: number;
23
+ }
@@ -0,0 +1,132 @@
1
+ import { Config } from '../Config/Config';
2
+ import { AggregatedStats } from './AggregatedStats';
3
+ /**
4
+ * Handles the Peer Connection
5
+ */
6
+ export declare class PeerConnectionController {
7
+ peerConnection: RTCPeerConnection;
8
+ aggregatedStats: AggregatedStats;
9
+ config: Config;
10
+ preferredCodec: string;
11
+ updateCodecSelection: boolean;
12
+ /**
13
+ * Create a new RTC Peer Connection client
14
+ * @param options - Peer connection Options
15
+ * @param config - The config for our PS experience.
16
+ */
17
+ constructor(options: RTCConfiguration, config: Config, preferredCodec: string);
18
+ createPeerConnection(options: RTCConfiguration, preferredCodec: string): void;
19
+ /**
20
+ * Create an offer for the Web RTC handshake and send the offer to the signaling server via websocket
21
+ * @param offerOptions - RTC Offer Options
22
+ */
23
+ createOffer(offerOptions: RTCOfferOptions, config: Config): Promise<void>;
24
+ /**
25
+ *
26
+ */
27
+ receiveOffer(offer: RTCSessionDescriptionInit, config: Config): Promise<void>;
28
+ /**
29
+ * Set the Remote Descriptor from the signaling server to the RTC Peer Connection
30
+ * @param answer - RTC Session Descriptor from the Signaling Server
31
+ */
32
+ receiveAnswer(answer: RTCSessionDescriptionInit): void;
33
+ /**
34
+ * Generate Aggregated Stats and then fire a onVideo Stats event
35
+ */
36
+ generateStats(): void;
37
+ /**
38
+ * Close The Peer Connection
39
+ */
40
+ close(): void;
41
+ /**
42
+ * Modify the Session Descriptor
43
+ * @param sdp - Session Descriptor as a string
44
+ * @param useMic - Is the microphone in use
45
+ * @returns A modified Session Descriptor
46
+ */
47
+ mungeSDP(sdp: string, useMic: boolean): string;
48
+ /**
49
+ * When a Ice Candidate is received add to the RTC Peer Connection
50
+ * @param iceCandidate - RTC Ice Candidate from the Signaling Server
51
+ */
52
+ handleOnIce(iceCandidate: RTCIceCandidate): void;
53
+ /**
54
+ * When the RTC Peer Connection Signaling server state Changes
55
+ * @param state - Signaling Server State Change Event
56
+ */
57
+ handleSignalStateChange(state: Event): void;
58
+ /**
59
+ * Handle when the Ice Connection State Changes
60
+ * @param state - Ice Connection State
61
+ */
62
+ handleIceConnectionStateChange(state: Event): void;
63
+ /**
64
+ * Handle when the Ice Gathering State Changes
65
+ * @param state - Ice Gathering State Change
66
+ */
67
+ handleIceGatheringStateChange(state: Event): void;
68
+ /**
69
+ * Activates the onTrack method
70
+ * @param event - The webRtc track event
71
+ */
72
+ handleOnTrack(event: RTCTrackEvent): void;
73
+ /**
74
+ * Activates the onPeerIceCandidate
75
+ * @param event - The peer ice candidate
76
+ */
77
+ handleIceCandidate(event: RTCPeerConnectionIceEvent): void;
78
+ /**
79
+ * Activates the onDataChannel
80
+ * @param event - The peer's data channel
81
+ */
82
+ handleDataChannel(event: RTCDataChannelEvent): void;
83
+ /**
84
+ * An override method for onTrack for use outside of the PeerConnectionController
85
+ * @param trackEvent - The webRtc track event
86
+ */
87
+ onTrack(trackEvent: RTCTrackEvent): void;
88
+ /**
89
+ * An override method for onIceConnectionStateChange for use outside of the PeerConnectionController
90
+ * @param event - The webRtc iceconnectionstatechange event
91
+ */
92
+ onIceConnectionStateChange(event: Event): void;
93
+ /**
94
+ * An override method for onPeerIceCandidate for use outside of the PeerConnectionController
95
+ * @param peerConnectionIceEvent - The peer ice candidate
96
+ */
97
+ onPeerIceCandidate(peerConnectionIceEvent: RTCPeerConnectionIceEvent): void;
98
+ /**
99
+ * An override method for onDataChannel for use outside of the PeerConnectionController
100
+ * @param datachannelEvent - The peer's data channel
101
+ */
102
+ onDataChannel(datachannelEvent: RTCDataChannelEvent): void;
103
+ /**
104
+ * Setup tracks on the RTC Peer Connection
105
+ * @param useMic - is mic in use
106
+ */
107
+ setupTransceiversAsync(useMic: boolean): Promise<void>;
108
+ /**
109
+ * And override event for when the video stats are fired
110
+ * @param event - Aggregated Stats
111
+ */
112
+ onVideoStats(event: AggregatedStats): void;
113
+ /**
114
+ * Event to send the RTC offer to the Signaling server
115
+ * @param offer - RTC Offer
116
+ */
117
+ onSendWebRTCOffer(offer: RTCSessionDescriptionInit): void;
118
+ /**
119
+ * Event to send the RTC Answer to the Signaling server
120
+ * @param answer - RTC Answer
121
+ */
122
+ onSendWebRTCAnswer(answer: RTCSessionDescriptionInit): void;
123
+ /**
124
+ * An override for showing the Peer connection connecting Overlay
125
+ */
126
+ showTextOverlayConnecting(): void;
127
+ /**
128
+ * An override for showing the Peer connection Failed overlay
129
+ */
130
+ showTextOverlaySetupFailure(): void;
131
+ parseAvailableCodecs(rtcSessionDescription: RTCSessionDescriptionInit): Array<string>;
132
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Session statistics
3
+ */
4
+ export declare class SessionStats {
5
+ runTime: string;
6
+ controlsStreamInput: string;
7
+ videoEncoderAvgQP: number;
8
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Class to hold the stream stats data coming in from webRtc
3
+ */
4
+ export declare class StreamStats {
5
+ id: string;
6
+ streamIdentifier: string;
7
+ timestamp: number;
8
+ trackIds: string[];
9
+ }
@@ -0,0 +1,234 @@
1
+ import { Config } from '../Config/Config';
2
+ import { LatencyTestResults } from '../DataChannel/LatencyTestResults';
3
+ import { AggregatedStats } from '../PeerConnectionController/AggregatedStats';
4
+ import { WebRtcPlayerController } from '../WebRtcPlayer/WebRtcPlayerController';
5
+ import { InitialSettings } from '../DataChannel/InitialSettings';
6
+ import { PixelStreamingEvent } from '../Util/EventEmitter';
7
+ import { MessageOnScreenKeyboard } from '../WebSockets/MessageReceive';
8
+ import { WebXRController } from '../WebXR/WebXRController';
9
+ export interface PixelStreamingOverrides {
10
+ /** The DOM elment where Pixel Streaming video and user input event handlers are attached to.
11
+ * You can give an existing DOM element here. If not given, the library will create a new div element
12
+ * that is not attached anywhere. In this case you can later get access to this new element and
13
+ * attach it to your web page. */
14
+ videoElementParent?: HTMLElement;
15
+ }
16
+ /**
17
+ * The key class for the browser side of a Pixel Streaming application, it includes:
18
+ * WebRTC handling, XR support, input handling, and emitters for lifetime and state change events.
19
+ * Users are encouraged to use this class as is, through composition, or extend it. In any case,
20
+ * this will likely be the core of your Pixel Streaming experience in terms of functionality.
21
+ */
22
+ export declare class PixelStreaming {
23
+ protected _webRtcController: WebRtcPlayerController;
24
+ protected _webXrController: WebXRController;
25
+ /**
26
+ * Configuration object. You can read or modify config through this object. Whenever
27
+ * the configuration is changed, the library will emit a `settingsChanged` event.
28
+ */
29
+ config: Config;
30
+ private _videoElementParent;
31
+ _showActionOrErrorOnDisconnect: boolean;
32
+ private allowConsoleCommands;
33
+ private onScreenKeyboardHelper;
34
+ private _videoStartTime;
35
+ private _inputController;
36
+ private _eventEmitter;
37
+ /**
38
+ * @param config - A newly instantiated config object
39
+ * @param overrides - Parameters to override default behaviour
40
+ * returns the base Pixel streaming object
41
+ */
42
+ constructor(config: Config, overrides?: PixelStreamingOverrides);
43
+ /**
44
+ * Gets the element that contains the video stream element.
45
+ */
46
+ get videoElementParent(): HTMLElement;
47
+ /**
48
+ * Configure the settings with on change listeners and any additional per experience settings.
49
+ */
50
+ private configureSettings;
51
+ /**
52
+ * Activate the on screen keyboard when receiving the command from the streamer
53
+ * @param command - the keyboard command
54
+ */
55
+ _activateOnScreenKeyboard(command: MessageOnScreenKeyboard): void;
56
+ /**
57
+ * Set the input control ownership
58
+ * @param inputControlOwnership - does the user have input control ownership
59
+ */
60
+ _onInputControlOwnership(inputControlOwnership: boolean): void;
61
+ /**
62
+ * Instantiate the WebRTCPlayerController interface to provide WebRTCPlayerController functionality within this class and set up anything that requires it
63
+ * @param webRtcPlayerController - a WebRtcPlayerController controller instance
64
+ */
65
+ private setWebRtcPlayerController;
66
+ /**
67
+ * Connect to signaling server.
68
+ */
69
+ connect(): void;
70
+ /**
71
+ * Reconnects to the signaling server. If connection is up, disconnects first
72
+ * before establishing a new connection
73
+ */
74
+ reconnect(): void;
75
+ /**
76
+ * Disconnect from the signaling server and close open peer connections.
77
+ */
78
+ disconnect(): void;
79
+ /**
80
+ * Play the stream. Can be called only after a peer connection has been established.
81
+ */
82
+ play(): void;
83
+ /**
84
+ * Auto connect if AutoConnect flag is enabled
85
+ */
86
+ private checkForAutoConnect;
87
+ /**
88
+ * Emit an event on auto connecting
89
+ */
90
+ _onWebRtcAutoConnect(): void;
91
+ /**
92
+ * Set up functionality to happen when receiving a webRTC answer
93
+ */
94
+ _onWebRtcSdp(): void;
95
+ /**
96
+ * Emits a StreamLoading event
97
+ */
98
+ _onStreamLoading(): void;
99
+ /**
100
+ * Event fired when the video is disconnected - emits given eventString or an override
101
+ * message from webRtcController if one has been set
102
+ * @param eventString - the event text that will be emitted
103
+ */
104
+ _onDisconnect(eventString: string): void;
105
+ /**
106
+ * Handles when Web Rtc is connecting
107
+ */
108
+ _onWebRtcConnecting(): void;
109
+ /**
110
+ * Handles when Web Rtc has connected
111
+ */
112
+ _onWebRtcConnected(): void;
113
+ /**
114
+ * Handles when Web Rtc fails to connect
115
+ */
116
+ _onWebRtcFailed(): void;
117
+ /**
118
+ * Handle when the Video has been Initialized
119
+ */
120
+ _onVideoInitialized(): void;
121
+ /**
122
+ * Set up functionality to happen when receiving latency test results
123
+ * @param latency - latency test results object
124
+ */
125
+ _onLatencyTestResult(latencyTimings: LatencyTestResults): void;
126
+ /**
127
+ * Set up functionality to happen when receiving video statistics
128
+ * @param videoStats - video statistics as a aggregate stats object
129
+ */
130
+ _onVideoStats(videoStats: AggregatedStats): void;
131
+ /**
132
+ * Set up functionality to happen when calculating the average video encoder qp
133
+ * @param QP - the quality number of the stream
134
+ */
135
+ _onVideoEncoderAvgQP(QP: number): void;
136
+ /**
137
+ * Set up functionality to happen when receiving and handling initial settings for the UE app
138
+ * @param settings - initial UE app settings
139
+ */
140
+ _onInitialSettings(settings: InitialSettings): void;
141
+ /**
142
+ * Set up functionality to happen when setting quality control ownership of a stream
143
+ * @param hasQualityOwnership - does this user have quality ownership of the stream true / false
144
+ */
145
+ _onQualityControlOwnership(hasQualityOwnership: boolean): void;
146
+ /**
147
+ * Request a connection latency test.
148
+ * NOTE: There are plans to refactor all request* functions. Expect changes if you use this!
149
+ * @returns
150
+ */
151
+ requestLatencyTest(): boolean;
152
+ /**
153
+ * Request for the UE application to show FPS counter.
154
+ * NOTE: There are plans to refactor all request* functions. Expect changes if you use this!
155
+ * @returns
156
+ */
157
+ requestShowFps(): boolean;
158
+ /**
159
+ * Request for a new IFrame from the UE application.
160
+ * NOTE: There are plans to refactor all request* functions. Expect changes if you use this!
161
+ * @returns
162
+ */
163
+ requestIframe(): boolean;
164
+ /**
165
+ * Send data to UE application. The data will be run through JSON.stringify() so e.g. strings
166
+ * and any serializable plain JSON objects with no recurrence can be sent.
167
+ * @returns true if succeeded, false if rejected
168
+ */
169
+ emitUIInteraction(descriptor: object | string): boolean;
170
+ /**
171
+ * Send a command to UE application. Blocks ConsoleCommand descriptors unless UE
172
+ * has signaled that it allows console commands.
173
+ * @returns true if succeeded, false if rejected
174
+ */
175
+ emitCommand(descriptor: object): boolean;
176
+ /**
177
+ * Send a console command to UE application. Only allowed if UE has signaled that it allows
178
+ * console commands.
179
+ * @returns true if succeeded, false if rejected
180
+ */
181
+ emitConsoleCommand(command: string): boolean;
182
+ /**
183
+ * Add a UE -> browser response event listener
184
+ * @param name - The name of the response handler
185
+ * @param listener - The method to be activated when a message is received
186
+ */
187
+ addResponseEventListener(name: string, listener: (response: string) => void): void;
188
+ /**
189
+ * Remove a UE -> browser response event listener
190
+ * @param name - The name of the response handler
191
+ */
192
+ removeResponseEventListener(name: string): void;
193
+ /**
194
+ * Dispatch a new event.
195
+ * @param e event
196
+ * @returns
197
+ */
198
+ dispatchEvent(e: PixelStreamingEvent): boolean;
199
+ /**
200
+ * Register an event handler.
201
+ * @param type event name
202
+ * @param listener event handler function
203
+ */
204
+ addEventListener<T extends PixelStreamingEvent['type'], E extends PixelStreamingEvent & {
205
+ type: T;
206
+ }>(type: T, listener: (e: Event & E) => void): void;
207
+ /**
208
+ * Remove an event handler.
209
+ * @param type event name
210
+ * @param listener event handler function
211
+ */
212
+ removeEventListener<T extends PixelStreamingEvent['type'], E extends PixelStreamingEvent & {
213
+ type: T;
214
+ }>(type: T, listener: (e: Event & E) => void): void;
215
+ /**
216
+ * Enable/disable XR mode.
217
+ */
218
+ toggleXR(): void;
219
+ /**
220
+ * Pass in a function to generate a signalling server URL.
221
+ * This function is useful if you need to programmatically construct your signalling server URL.
222
+ * @param signallingUrlBuilderFunc A function that generates a signalling server url.
223
+ */
224
+ setSignallingUrlBuilder(signallingUrlBuilderFunc: () => string): void;
225
+ /**
226
+ * Public getter for the websocket controller. Access to this property allows you to send
227
+ * custom websocket messages.
228
+ */
229
+ get webSocketController(): import("../pixelstreamingfrontend").WebSocketController;
230
+ /**
231
+ * Public getter for the webXrController controller. Used for all XR features.
232
+ */
233
+ get webXrController(): WebXRController;
234
+ }
@@ -0,0 +1,31 @@
1
+ import { UnquantizedDenormalizedUnsignedCoord } from '../Util/CoordinateConverter';
2
+ import { MessageOnScreenKeyboard } from '../WebSockets/MessageReceive';
3
+ /**
4
+ * Class for handling on screen keyboard usage
5
+ */
6
+ export declare class OnScreenKeyboard {
7
+ editTextButton: HTMLButtonElement;
8
+ hiddenInput: HTMLInputElement;
9
+ /**
10
+ *
11
+ * @param videoElementParent The div element the video player is injected into
12
+ */
13
+ constructor(videoElementParent: HTMLElement);
14
+ /**
15
+ * An override for unquantizeAndDenormalizeUnsigned
16
+ * @param x the x axis point
17
+ * @param y the y axis point
18
+ * @returns unquantizeAndDenormalizeUnsigned object
19
+ */
20
+ unquantizeAndDenormalizeUnsigned(x: number, y: number): UnquantizedDenormalizedUnsignedCoord;
21
+ /**
22
+ * Creates on screen keyboard helpers
23
+ * @param videoElementParent The div element the video player i injected into
24
+ */
25
+ createOnScreenKeyboardHelpers(videoElementParent: HTMLElement): void;
26
+ /**
27
+ * Shows the on screen keyboard
28
+ * @param command the command received via the data channel containing keyboard positions
29
+ */
30
+ showOnScreenKeyboard(command: MessageOnScreenKeyboard): void;
31
+ }
@@ -0,0 +1,19 @@
1
+ export declare class ResponseController {
2
+ responseEventListeners: Map<string, (response: string) => void>;
3
+ /**
4
+ * Add a response event listener to the response map
5
+ * @param name - The name of the response
6
+ * @param listener - The method to be activated when the response is selected
7
+ */
8
+ addResponseEventListener(name: string, listener: (response: string) => void): void;
9
+ /**
10
+ * Remove a response event listener to the response map
11
+ * @param name - The name of the response
12
+ */
13
+ removeResponseEventListener(name: string): void;
14
+ /**
15
+ * Handle a response when receiving one form the streamer
16
+ * @param message - Data received from the data channel with the command in question
17
+ */
18
+ onResponse(message: ArrayBuffer): void;
19
+ }
@@ -0,0 +1,28 @@
1
+ import { DataChannelSender } from '../DataChannel/DataChannelSender';
2
+ import { StreamMessageController } from './StreamMessageController';
3
+ export declare class SendDescriptorController {
4
+ toStreamerMessagesMapProvider: StreamMessageController;
5
+ dataChannelSender: DataChannelSender;
6
+ constructor(dataChannelSender: DataChannelSender, toStreamerMessagesMapProvider: StreamMessageController);
7
+ /**
8
+ * Send a Latency Test to the UE Instance
9
+ * @param descriptor - the descriptor for a latency test
10
+ */
11
+ sendLatencyTest(descriptor: object): void;
12
+ /**
13
+ * Send a Latency Test to the UE Instance
14
+ * @param descriptor - the descriptor for a command
15
+ */
16
+ emitCommand(descriptor: object): void;
17
+ /**
18
+ * Send a Latency Test to the UE Instance
19
+ * @param descriptor - the descriptor for a UI Interaction
20
+ */
21
+ emitUIInteraction(descriptor: object | string): void;
22
+ /**
23
+ * Send a Descriptor to the UE Instances
24
+ * @param messageType - UE Message Type
25
+ * @param descriptor - Descriptor Message as JSON
26
+ */
27
+ sendDescriptor(messageType: string, descriptor: object | string): void;
28
+ }
@@ -0,0 +1,18 @@
1
+ import { DataChannelSender } from '../DataChannel/DataChannelSender';
2
+ import { StreamMessageController } from './StreamMessageController';
3
+ export declare class SendMessageController {
4
+ toStreamerMessagesMapProvider: StreamMessageController;
5
+ dataChannelSender: DataChannelSender;
6
+ /**
7
+ * @param dataChannelSender - Data channel instance
8
+ * @param toStreamerMessagesMapProvider - Stream Messages instance
9
+ */
10
+ constructor(dataChannelSender: DataChannelSender, toStreamerMessagesMapProvider: StreamMessageController);
11
+ /**
12
+ * Send a message to the streamer through the data channel
13
+ * @param messageType - the type of message we are sending
14
+ * @param messageData - the message data we are sending over the data channel
15
+ * @returns - nil
16
+ */
17
+ sendMessageToStreamer(messageType: string, messageData?: Array<number>): void;
18
+ }