livekit-client 0.15.0 → 0.15.4

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 (136) hide show
  1. package/.gitmodules +3 -0
  2. package/README.md +21 -4
  3. package/dist/api/SignalClient.d.ts +11 -2
  4. package/dist/api/SignalClient.js +92 -25
  5. package/dist/api/SignalClient.js.map +1 -1
  6. package/dist/connect.js +3 -0
  7. package/dist/connect.js.map +1 -1
  8. package/dist/index.d.ts +5 -2
  9. package/dist/index.js +6 -3
  10. package/dist/index.js.map +1 -1
  11. package/dist/logger.js +1 -0
  12. package/dist/logger.js.map +1 -1
  13. package/dist/options.d.ts +28 -14
  14. package/dist/proto/livekit_models.d.ts +48 -0
  15. package/dist/proto/livekit_models.js +367 -5
  16. package/dist/proto/livekit_models.js.map +1 -1
  17. package/dist/proto/livekit_rtc.d.ts +100 -1
  18. package/dist/proto/livekit_rtc.js +745 -3
  19. package/dist/proto/livekit_rtc.js.map +1 -1
  20. package/dist/room/PCTransport.js +4 -0
  21. package/dist/room/PCTransport.js.map +1 -1
  22. package/dist/room/RTCEngine.d.ts +4 -0
  23. package/dist/room/RTCEngine.js +73 -34
  24. package/dist/room/RTCEngine.js.map +1 -1
  25. package/dist/room/Room.d.ts +15 -0
  26. package/dist/room/Room.js +172 -59
  27. package/dist/room/Room.js.map +1 -1
  28. package/dist/room/events.d.ts +60 -24
  29. package/dist/room/events.js +58 -22
  30. package/dist/room/events.js.map +1 -1
  31. package/dist/room/participant/LocalParticipant.d.ts +26 -2
  32. package/dist/room/participant/LocalParticipant.js +69 -21
  33. package/dist/room/participant/LocalParticipant.js.map +1 -1
  34. package/dist/room/participant/Participant.d.ts +3 -1
  35. package/dist/room/participant/Participant.js +1 -0
  36. package/dist/room/participant/Participant.js.map +1 -1
  37. package/dist/room/participant/ParticipantTrackPermission.d.ts +19 -0
  38. package/dist/room/participant/ParticipantTrackPermission.js +16 -0
  39. package/dist/room/participant/ParticipantTrackPermission.js.map +1 -0
  40. package/dist/room/participant/RemoteParticipant.d.ts +2 -2
  41. package/dist/room/participant/RemoteParticipant.js +9 -15
  42. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  43. package/dist/room/participant/publishUtils.d.ts +1 -1
  44. package/dist/room/participant/publishUtils.js +4 -4
  45. package/dist/room/participant/publishUtils.js.map +1 -1
  46. package/dist/room/participant/publishUtils.test.js +10 -1
  47. package/dist/room/participant/publishUtils.test.js.map +1 -1
  48. package/dist/room/stats.d.ts +21 -6
  49. package/dist/room/stats.js +22 -1
  50. package/dist/room/stats.js.map +1 -1
  51. package/dist/room/track/LocalAudioTrack.d.ts +5 -1
  52. package/dist/room/track/LocalAudioTrack.js +45 -1
  53. package/dist/room/track/LocalAudioTrack.js.map +1 -1
  54. package/dist/room/track/LocalTrack.js +1 -1
  55. package/dist/room/track/LocalTrack.js.map +1 -1
  56. package/dist/room/track/LocalTrackPublication.d.ts +3 -1
  57. package/dist/room/track/LocalTrackPublication.js +15 -5
  58. package/dist/room/track/LocalTrackPublication.js.map +1 -1
  59. package/dist/room/track/LocalVideoTrack.d.ts +8 -1
  60. package/dist/room/track/LocalVideoTrack.js +117 -52
  61. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  62. package/dist/room/track/RemoteAudioTrack.d.ts +6 -8
  63. package/dist/room/track/RemoteAudioTrack.js +55 -19
  64. package/dist/room/track/RemoteAudioTrack.js.map +1 -1
  65. package/dist/room/track/RemoteTrack.d.ts +14 -0
  66. package/dist/room/track/RemoteTrack.js +47 -0
  67. package/dist/room/track/RemoteTrack.js.map +1 -0
  68. package/dist/room/track/RemoteTrackPublication.d.ts +10 -2
  69. package/dist/room/track/RemoteTrackPublication.js +49 -16
  70. package/dist/room/track/RemoteTrackPublication.js.map +1 -1
  71. package/dist/room/track/RemoteVideoTrack.d.ts +7 -7
  72. package/dist/room/track/RemoteVideoTrack.js +66 -22
  73. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  74. package/dist/room/track/Track.d.ts +12 -0
  75. package/dist/room/track/Track.js +33 -0
  76. package/dist/room/track/Track.js.map +1 -1
  77. package/dist/room/track/TrackPublication.d.ts +14 -1
  78. package/dist/room/track/TrackPublication.js +24 -7
  79. package/dist/room/track/TrackPublication.js.map +1 -1
  80. package/dist/room/track/create.d.ts +23 -0
  81. package/dist/room/track/create.js +130 -0
  82. package/dist/room/track/create.js.map +1 -0
  83. package/dist/room/track/defaults.d.ts +4 -0
  84. package/dist/room/track/defaults.js +21 -0
  85. package/dist/room/track/defaults.js.map +1 -0
  86. package/dist/room/utils.d.ts +3 -1
  87. package/dist/room/utils.js +36 -6
  88. package/dist/room/utils.js.map +1 -1
  89. package/dist/version.d.ts +1 -1
  90. package/dist/version.js +1 -1
  91. package/package.json +5 -3
  92. package/src/api/SignalClient.ts +434 -0
  93. package/src/connect.ts +100 -0
  94. package/src/index.ts +47 -0
  95. package/src/logger.ts +22 -0
  96. package/src/options.ts +152 -0
  97. package/src/proto/livekit_models.ts +1863 -0
  98. package/src/proto/livekit_rtc.ts +3401 -0
  99. package/src/room/DeviceManager.ts +57 -0
  100. package/src/room/PCTransport.ts +86 -0
  101. package/src/room/RTCEngine.ts +484 -0
  102. package/src/room/Room.ts +785 -0
  103. package/src/room/errors.ts +65 -0
  104. package/src/room/events.ts +396 -0
  105. package/src/room/participant/LocalParticipant.ts +685 -0
  106. package/src/room/participant/Participant.ts +214 -0
  107. package/src/room/participant/ParticipantTrackPermission.ts +32 -0
  108. package/src/room/participant/RemoteParticipant.ts +238 -0
  109. package/src/room/participant/publishUtils.test.ts +105 -0
  110. package/src/room/participant/publishUtils.ts +180 -0
  111. package/src/room/stats.ts +130 -0
  112. package/src/room/track/LocalAudioTrack.ts +112 -0
  113. package/src/room/track/LocalTrack.ts +124 -0
  114. package/src/room/track/LocalTrackPublication.ts +63 -0
  115. package/src/room/track/LocalVideoTrack.test.ts +70 -0
  116. package/src/room/track/LocalVideoTrack.ts +416 -0
  117. package/src/room/track/RemoteAudioTrack.ts +58 -0
  118. package/src/room/track/RemoteTrack.ts +59 -0
  119. package/src/room/track/RemoteTrackPublication.ts +192 -0
  120. package/src/room/track/RemoteVideoTrack.ts +213 -0
  121. package/src/room/track/Track.ts +301 -0
  122. package/src/room/track/TrackPublication.ts +120 -0
  123. package/src/room/track/create.ts +120 -0
  124. package/src/room/track/defaults.ts +23 -0
  125. package/src/room/track/options.ts +229 -0
  126. package/src/room/track/types.ts +8 -0
  127. package/src/room/track/utils.test.ts +93 -0
  128. package/src/room/track/utils.ts +76 -0
  129. package/src/room/utils.ts +74 -0
  130. package/src/version.ts +2 -0
  131. package/.github/workflows/publish.yaml +0 -55
  132. package/.github/workflows/test.yaml +0 -36
  133. package/example/index.html +0 -237
  134. package/example/sample.ts +0 -575
  135. package/example/styles.css +0 -144
  136. package/example/webpack.config.js +0 -33
@@ -0,0 +1,3401 @@
1
+ /* eslint-disable */
2
+ import Long from "long";
3
+ import _m0 from "protobufjs/minimal";
4
+ import {
5
+ TrackType,
6
+ TrackSource,
7
+ Room,
8
+ ParticipantInfo,
9
+ TrackInfo,
10
+ VideoQuality,
11
+ ConnectionQuality,
12
+ VideoLayer,
13
+ ParticipantTracks,
14
+ SpeakerInfo,
15
+ trackTypeFromJSON,
16
+ trackSourceFromJSON,
17
+ trackTypeToJSON,
18
+ trackSourceToJSON,
19
+ videoQualityFromJSON,
20
+ videoQualityToJSON,
21
+ connectionQualityFromJSON,
22
+ connectionQualityToJSON,
23
+ } from "./livekit_models";
24
+
25
+ export const protobufPackage = "livekit";
26
+
27
+ export enum SignalTarget {
28
+ PUBLISHER = 0,
29
+ SUBSCRIBER = 1,
30
+ UNRECOGNIZED = -1,
31
+ }
32
+
33
+ export function signalTargetFromJSON(object: any): SignalTarget {
34
+ switch (object) {
35
+ case 0:
36
+ case "PUBLISHER":
37
+ return SignalTarget.PUBLISHER;
38
+ case 1:
39
+ case "SUBSCRIBER":
40
+ return SignalTarget.SUBSCRIBER;
41
+ case -1:
42
+ case "UNRECOGNIZED":
43
+ default:
44
+ return SignalTarget.UNRECOGNIZED;
45
+ }
46
+ }
47
+
48
+ export function signalTargetToJSON(object: SignalTarget): string {
49
+ switch (object) {
50
+ case SignalTarget.PUBLISHER:
51
+ return "PUBLISHER";
52
+ case SignalTarget.SUBSCRIBER:
53
+ return "SUBSCRIBER";
54
+ default:
55
+ return "UNKNOWN";
56
+ }
57
+ }
58
+
59
+ export enum StreamState {
60
+ ACTIVE = 0,
61
+ PAUSED = 1,
62
+ UNRECOGNIZED = -1,
63
+ }
64
+
65
+ export function streamStateFromJSON(object: any): StreamState {
66
+ switch (object) {
67
+ case 0:
68
+ case "ACTIVE":
69
+ return StreamState.ACTIVE;
70
+ case 1:
71
+ case "PAUSED":
72
+ return StreamState.PAUSED;
73
+ case -1:
74
+ case "UNRECOGNIZED":
75
+ default:
76
+ return StreamState.UNRECOGNIZED;
77
+ }
78
+ }
79
+
80
+ export function streamStateToJSON(object: StreamState): string {
81
+ switch (object) {
82
+ case StreamState.ACTIVE:
83
+ return "ACTIVE";
84
+ case StreamState.PAUSED:
85
+ return "PAUSED";
86
+ default:
87
+ return "UNKNOWN";
88
+ }
89
+ }
90
+
91
+ export interface SignalRequest {
92
+ /** initial join exchange, for publisher */
93
+ offer?: SessionDescription | undefined;
94
+ /** participant answering publisher offer */
95
+ answer?: SessionDescription | undefined;
96
+ trickle?: TrickleRequest | undefined;
97
+ addTrack?: AddTrackRequest | undefined;
98
+ /** mute the participant's published tracks */
99
+ mute?: MuteTrackRequest | undefined;
100
+ /** Subscribe or unsubscribe from tracks */
101
+ subscription?: UpdateSubscription | undefined;
102
+ /** Update settings of subscribed tracks */
103
+ trackSetting?: UpdateTrackSettings | undefined;
104
+ /** Immediately terminate session */
105
+ leave?: LeaveRequest | undefined;
106
+ /**
107
+ * Set active published layers, deprecated in favor of automatic tracking
108
+ * SetSimulcastLayers simulcast = 9;
109
+ * Update published video layers
110
+ */
111
+ updateLayers?: UpdateVideoLayers | undefined;
112
+ /** Update subscriber permissions */
113
+ subscriptionPermissions?: UpdateSubscriptionPermissions | undefined;
114
+ /** sync client's subscribe state to server during reconnect */
115
+ syncState?: SyncState | undefined;
116
+ /** Simulate conditions, for client validations */
117
+ simulate?: SimulateScenario | undefined;
118
+ }
119
+
120
+ export interface SignalResponse {
121
+ /** sent when join is accepted */
122
+ join?: JoinResponse | undefined;
123
+ /** sent when server answers publisher */
124
+ answer?: SessionDescription | undefined;
125
+ /** sent when server is sending subscriber an offer */
126
+ offer?: SessionDescription | undefined;
127
+ /** sent when an ICE candidate is available */
128
+ trickle?: TrickleRequest | undefined;
129
+ /** sent when participants in the room has changed */
130
+ update?: ParticipantUpdate | undefined;
131
+ /** sent to the participant when their track has been published */
132
+ trackPublished?: TrackPublishedResponse | undefined;
133
+ /** Immediately terminate session */
134
+ leave?: LeaveRequest | undefined;
135
+ /** server initiated mute */
136
+ mute?: MuteTrackRequest | undefined;
137
+ /** indicates changes to speaker status, including when they've gone to not speaking */
138
+ speakersChanged?: SpeakersChanged | undefined;
139
+ /** sent when metadata of the room has changed */
140
+ roomUpdate?: RoomUpdate | undefined;
141
+ /** when connection quality changed */
142
+ connectionQuality?: ConnectionQualityUpdate | undefined;
143
+ /** when streamed tracks state changed */
144
+ streamStateUpdate?: StreamStateUpdate | undefined;
145
+ /** when max subscribe quality changed */
146
+ subscribedQualityUpdate?: SubscribedQualityUpdate | undefined;
147
+ /** when subscription permission changed */
148
+ subscriptionPermissionUpdate?: SubscriptionPermissionUpdate | undefined;
149
+ }
150
+
151
+ export interface AddTrackRequest {
152
+ /** client ID of track, to match it when RTC track is received */
153
+ cid: string;
154
+ name: string;
155
+ type: TrackType;
156
+ /** to be deprecated in favor of layers */
157
+ width: number;
158
+ height: number;
159
+ /** true to add track and initialize to muted */
160
+ muted: boolean;
161
+ /** true if DTX (Discontinuous Transmission) is disabled for audio */
162
+ disableDtx: boolean;
163
+ source: TrackSource;
164
+ layers: VideoLayer[];
165
+ }
166
+
167
+ export interface TrickleRequest {
168
+ candidateInit: string;
169
+ target: SignalTarget;
170
+ }
171
+
172
+ export interface MuteTrackRequest {
173
+ sid: string;
174
+ muted: boolean;
175
+ }
176
+
177
+ export interface JoinResponse {
178
+ room?: Room;
179
+ participant?: ParticipantInfo;
180
+ otherParticipants: ParticipantInfo[];
181
+ serverVersion: string;
182
+ iceServers: ICEServer[];
183
+ /** use subscriber as the primary PeerConnection */
184
+ subscriberPrimary: boolean;
185
+ /**
186
+ * when the current server isn't available, return alternate url to retry connection
187
+ * when this is set, the other fields will be largely empty
188
+ */
189
+ alternativeUrl: string;
190
+ }
191
+
192
+ export interface TrackPublishedResponse {
193
+ cid: string;
194
+ track?: TrackInfo;
195
+ }
196
+
197
+ export interface SessionDescription {
198
+ /** "answer" | "offer" | "pranswer" | "rollback" */
199
+ type: string;
200
+ sdp: string;
201
+ }
202
+
203
+ export interface ParticipantUpdate {
204
+ participants: ParticipantInfo[];
205
+ }
206
+
207
+ export interface UpdateSubscription {
208
+ trackSids: string[];
209
+ subscribe: boolean;
210
+ participantTracks: ParticipantTracks[];
211
+ }
212
+
213
+ export interface UpdateTrackSettings {
214
+ trackSids: string[];
215
+ /** when true, the track is placed in a paused state, with no new data returned */
216
+ disabled: boolean;
217
+ /** deprecated in favor of width & height */
218
+ quality: VideoQuality;
219
+ /** for video, width to receive */
220
+ width: number;
221
+ /** for video, height to receive */
222
+ height: number;
223
+ }
224
+
225
+ export interface LeaveRequest {
226
+ /**
227
+ * sent when server initiates the disconnect due to server-restart
228
+ * indicates clients should attempt full-reconnect sequence
229
+ */
230
+ canReconnect: boolean;
231
+ }
232
+
233
+ /** message to indicate published video track dimensions are changing */
234
+ export interface UpdateVideoLayers {
235
+ trackSid: string;
236
+ layers: VideoLayer[];
237
+ }
238
+
239
+ export interface ICEServer {
240
+ urls: string[];
241
+ username: string;
242
+ credential: string;
243
+ }
244
+
245
+ export interface SpeakersChanged {
246
+ speakers: SpeakerInfo[];
247
+ }
248
+
249
+ export interface RoomUpdate {
250
+ room?: Room;
251
+ }
252
+
253
+ export interface ConnectionQualityInfo {
254
+ participantSid: string;
255
+ quality: ConnectionQuality;
256
+ score: number;
257
+ }
258
+
259
+ export interface ConnectionQualityUpdate {
260
+ updates: ConnectionQualityInfo[];
261
+ }
262
+
263
+ export interface StreamStateInfo {
264
+ participantSid: string;
265
+ trackSid: string;
266
+ state: StreamState;
267
+ }
268
+
269
+ export interface StreamStateUpdate {
270
+ streamStates: StreamStateInfo[];
271
+ }
272
+
273
+ export interface SubscribedQuality {
274
+ quality: VideoQuality;
275
+ enabled: boolean;
276
+ }
277
+
278
+ export interface SubscribedQualityUpdate {
279
+ trackSid: string;
280
+ subscribedQualities: SubscribedQuality[];
281
+ }
282
+
283
+ export interface TrackPermission {
284
+ participantSid: string;
285
+ allTracks: boolean;
286
+ trackSids: string[];
287
+ }
288
+
289
+ export interface UpdateSubscriptionPermissions {
290
+ allParticipants: boolean;
291
+ trackPermissions: TrackPermission[];
292
+ }
293
+
294
+ export interface SubscriptionPermissionUpdate {
295
+ participantSid: string;
296
+ trackSid: string;
297
+ allowed: boolean;
298
+ }
299
+
300
+ export interface SyncState {
301
+ answer?: SessionDescription;
302
+ subscription?: UpdateSubscription;
303
+ publishTracks: TrackPublishedResponse[];
304
+ }
305
+
306
+ export interface SimulateScenario {
307
+ /** simulate N seconds of speaker activity */
308
+ speakerUpdate: number | undefined;
309
+ /** simulate local node failure */
310
+ nodeFailure: boolean | undefined;
311
+ /** simulate migration */
312
+ migration: boolean | undefined;
313
+ /** server to send leave */
314
+ serverLeave: boolean | undefined;
315
+ }
316
+
317
+ const baseSignalRequest: object = {};
318
+
319
+ export const SignalRequest = {
320
+ encode(
321
+ message: SignalRequest,
322
+ writer: _m0.Writer = _m0.Writer.create()
323
+ ): _m0.Writer {
324
+ if (message.offer !== undefined) {
325
+ SessionDescription.encode(
326
+ message.offer,
327
+ writer.uint32(10).fork()
328
+ ).ldelim();
329
+ }
330
+ if (message.answer !== undefined) {
331
+ SessionDescription.encode(
332
+ message.answer,
333
+ writer.uint32(18).fork()
334
+ ).ldelim();
335
+ }
336
+ if (message.trickle !== undefined) {
337
+ TrickleRequest.encode(message.trickle, writer.uint32(26).fork()).ldelim();
338
+ }
339
+ if (message.addTrack !== undefined) {
340
+ AddTrackRequest.encode(
341
+ message.addTrack,
342
+ writer.uint32(34).fork()
343
+ ).ldelim();
344
+ }
345
+ if (message.mute !== undefined) {
346
+ MuteTrackRequest.encode(message.mute, writer.uint32(42).fork()).ldelim();
347
+ }
348
+ if (message.subscription !== undefined) {
349
+ UpdateSubscription.encode(
350
+ message.subscription,
351
+ writer.uint32(50).fork()
352
+ ).ldelim();
353
+ }
354
+ if (message.trackSetting !== undefined) {
355
+ UpdateTrackSettings.encode(
356
+ message.trackSetting,
357
+ writer.uint32(58).fork()
358
+ ).ldelim();
359
+ }
360
+ if (message.leave !== undefined) {
361
+ LeaveRequest.encode(message.leave, writer.uint32(66).fork()).ldelim();
362
+ }
363
+ if (message.updateLayers !== undefined) {
364
+ UpdateVideoLayers.encode(
365
+ message.updateLayers,
366
+ writer.uint32(82).fork()
367
+ ).ldelim();
368
+ }
369
+ if (message.subscriptionPermissions !== undefined) {
370
+ UpdateSubscriptionPermissions.encode(
371
+ message.subscriptionPermissions,
372
+ writer.uint32(90).fork()
373
+ ).ldelim();
374
+ }
375
+ if (message.syncState !== undefined) {
376
+ SyncState.encode(message.syncState, writer.uint32(98).fork()).ldelim();
377
+ }
378
+ if (message.simulate !== undefined) {
379
+ SimulateScenario.encode(
380
+ message.simulate,
381
+ writer.uint32(106).fork()
382
+ ).ldelim();
383
+ }
384
+ return writer;
385
+ },
386
+
387
+ decode(input: _m0.Reader | Uint8Array, length?: number): SignalRequest {
388
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
389
+ let end = length === undefined ? reader.len : reader.pos + length;
390
+ const message = { ...baseSignalRequest } as SignalRequest;
391
+ while (reader.pos < end) {
392
+ const tag = reader.uint32();
393
+ switch (tag >>> 3) {
394
+ case 1:
395
+ message.offer = SessionDescription.decode(reader, reader.uint32());
396
+ break;
397
+ case 2:
398
+ message.answer = SessionDescription.decode(reader, reader.uint32());
399
+ break;
400
+ case 3:
401
+ message.trickle = TrickleRequest.decode(reader, reader.uint32());
402
+ break;
403
+ case 4:
404
+ message.addTrack = AddTrackRequest.decode(reader, reader.uint32());
405
+ break;
406
+ case 5:
407
+ message.mute = MuteTrackRequest.decode(reader, reader.uint32());
408
+ break;
409
+ case 6:
410
+ message.subscription = UpdateSubscription.decode(
411
+ reader,
412
+ reader.uint32()
413
+ );
414
+ break;
415
+ case 7:
416
+ message.trackSetting = UpdateTrackSettings.decode(
417
+ reader,
418
+ reader.uint32()
419
+ );
420
+ break;
421
+ case 8:
422
+ message.leave = LeaveRequest.decode(reader, reader.uint32());
423
+ break;
424
+ case 10:
425
+ message.updateLayers = UpdateVideoLayers.decode(
426
+ reader,
427
+ reader.uint32()
428
+ );
429
+ break;
430
+ case 11:
431
+ message.subscriptionPermissions =
432
+ UpdateSubscriptionPermissions.decode(reader, reader.uint32());
433
+ break;
434
+ case 12:
435
+ message.syncState = SyncState.decode(reader, reader.uint32());
436
+ break;
437
+ case 13:
438
+ message.simulate = SimulateScenario.decode(reader, reader.uint32());
439
+ break;
440
+ default:
441
+ reader.skipType(tag & 7);
442
+ break;
443
+ }
444
+ }
445
+ return message;
446
+ },
447
+
448
+ fromJSON(object: any): SignalRequest {
449
+ const message = { ...baseSignalRequest } as SignalRequest;
450
+ if (object.offer !== undefined && object.offer !== null) {
451
+ message.offer = SessionDescription.fromJSON(object.offer);
452
+ } else {
453
+ message.offer = undefined;
454
+ }
455
+ if (object.answer !== undefined && object.answer !== null) {
456
+ message.answer = SessionDescription.fromJSON(object.answer);
457
+ } else {
458
+ message.answer = undefined;
459
+ }
460
+ if (object.trickle !== undefined && object.trickle !== null) {
461
+ message.trickle = TrickleRequest.fromJSON(object.trickle);
462
+ } else {
463
+ message.trickle = undefined;
464
+ }
465
+ if (object.addTrack !== undefined && object.addTrack !== null) {
466
+ message.addTrack = AddTrackRequest.fromJSON(object.addTrack);
467
+ } else {
468
+ message.addTrack = undefined;
469
+ }
470
+ if (object.mute !== undefined && object.mute !== null) {
471
+ message.mute = MuteTrackRequest.fromJSON(object.mute);
472
+ } else {
473
+ message.mute = undefined;
474
+ }
475
+ if (object.subscription !== undefined && object.subscription !== null) {
476
+ message.subscription = UpdateSubscription.fromJSON(object.subscription);
477
+ } else {
478
+ message.subscription = undefined;
479
+ }
480
+ if (object.trackSetting !== undefined && object.trackSetting !== null) {
481
+ message.trackSetting = UpdateTrackSettings.fromJSON(object.trackSetting);
482
+ } else {
483
+ message.trackSetting = undefined;
484
+ }
485
+ if (object.leave !== undefined && object.leave !== null) {
486
+ message.leave = LeaveRequest.fromJSON(object.leave);
487
+ } else {
488
+ message.leave = undefined;
489
+ }
490
+ if (object.updateLayers !== undefined && object.updateLayers !== null) {
491
+ message.updateLayers = UpdateVideoLayers.fromJSON(object.updateLayers);
492
+ } else {
493
+ message.updateLayers = undefined;
494
+ }
495
+ if (
496
+ object.subscriptionPermissions !== undefined &&
497
+ object.subscriptionPermissions !== null
498
+ ) {
499
+ message.subscriptionPermissions = UpdateSubscriptionPermissions.fromJSON(
500
+ object.subscriptionPermissions
501
+ );
502
+ } else {
503
+ message.subscriptionPermissions = undefined;
504
+ }
505
+ if (object.syncState !== undefined && object.syncState !== null) {
506
+ message.syncState = SyncState.fromJSON(object.syncState);
507
+ } else {
508
+ message.syncState = undefined;
509
+ }
510
+ if (object.simulate !== undefined && object.simulate !== null) {
511
+ message.simulate = SimulateScenario.fromJSON(object.simulate);
512
+ } else {
513
+ message.simulate = undefined;
514
+ }
515
+ return message;
516
+ },
517
+
518
+ toJSON(message: SignalRequest): unknown {
519
+ const obj: any = {};
520
+ message.offer !== undefined &&
521
+ (obj.offer = message.offer
522
+ ? SessionDescription.toJSON(message.offer)
523
+ : undefined);
524
+ message.answer !== undefined &&
525
+ (obj.answer = message.answer
526
+ ? SessionDescription.toJSON(message.answer)
527
+ : undefined);
528
+ message.trickle !== undefined &&
529
+ (obj.trickle = message.trickle
530
+ ? TrickleRequest.toJSON(message.trickle)
531
+ : undefined);
532
+ message.addTrack !== undefined &&
533
+ (obj.addTrack = message.addTrack
534
+ ? AddTrackRequest.toJSON(message.addTrack)
535
+ : undefined);
536
+ message.mute !== undefined &&
537
+ (obj.mute = message.mute
538
+ ? MuteTrackRequest.toJSON(message.mute)
539
+ : undefined);
540
+ message.subscription !== undefined &&
541
+ (obj.subscription = message.subscription
542
+ ? UpdateSubscription.toJSON(message.subscription)
543
+ : undefined);
544
+ message.trackSetting !== undefined &&
545
+ (obj.trackSetting = message.trackSetting
546
+ ? UpdateTrackSettings.toJSON(message.trackSetting)
547
+ : undefined);
548
+ message.leave !== undefined &&
549
+ (obj.leave = message.leave
550
+ ? LeaveRequest.toJSON(message.leave)
551
+ : undefined);
552
+ message.updateLayers !== undefined &&
553
+ (obj.updateLayers = message.updateLayers
554
+ ? UpdateVideoLayers.toJSON(message.updateLayers)
555
+ : undefined);
556
+ message.subscriptionPermissions !== undefined &&
557
+ (obj.subscriptionPermissions = message.subscriptionPermissions
558
+ ? UpdateSubscriptionPermissions.toJSON(message.subscriptionPermissions)
559
+ : undefined);
560
+ message.syncState !== undefined &&
561
+ (obj.syncState = message.syncState
562
+ ? SyncState.toJSON(message.syncState)
563
+ : undefined);
564
+ message.simulate !== undefined &&
565
+ (obj.simulate = message.simulate
566
+ ? SimulateScenario.toJSON(message.simulate)
567
+ : undefined);
568
+ return obj;
569
+ },
570
+
571
+ fromPartial(object: DeepPartial<SignalRequest>): SignalRequest {
572
+ const message = { ...baseSignalRequest } as SignalRequest;
573
+ if (object.offer !== undefined && object.offer !== null) {
574
+ message.offer = SessionDescription.fromPartial(object.offer);
575
+ } else {
576
+ message.offer = undefined;
577
+ }
578
+ if (object.answer !== undefined && object.answer !== null) {
579
+ message.answer = SessionDescription.fromPartial(object.answer);
580
+ } else {
581
+ message.answer = undefined;
582
+ }
583
+ if (object.trickle !== undefined && object.trickle !== null) {
584
+ message.trickle = TrickleRequest.fromPartial(object.trickle);
585
+ } else {
586
+ message.trickle = undefined;
587
+ }
588
+ if (object.addTrack !== undefined && object.addTrack !== null) {
589
+ message.addTrack = AddTrackRequest.fromPartial(object.addTrack);
590
+ } else {
591
+ message.addTrack = undefined;
592
+ }
593
+ if (object.mute !== undefined && object.mute !== null) {
594
+ message.mute = MuteTrackRequest.fromPartial(object.mute);
595
+ } else {
596
+ message.mute = undefined;
597
+ }
598
+ if (object.subscription !== undefined && object.subscription !== null) {
599
+ message.subscription = UpdateSubscription.fromPartial(
600
+ object.subscription
601
+ );
602
+ } else {
603
+ message.subscription = undefined;
604
+ }
605
+ if (object.trackSetting !== undefined && object.trackSetting !== null) {
606
+ message.trackSetting = UpdateTrackSettings.fromPartial(
607
+ object.trackSetting
608
+ );
609
+ } else {
610
+ message.trackSetting = undefined;
611
+ }
612
+ if (object.leave !== undefined && object.leave !== null) {
613
+ message.leave = LeaveRequest.fromPartial(object.leave);
614
+ } else {
615
+ message.leave = undefined;
616
+ }
617
+ if (object.updateLayers !== undefined && object.updateLayers !== null) {
618
+ message.updateLayers = UpdateVideoLayers.fromPartial(object.updateLayers);
619
+ } else {
620
+ message.updateLayers = undefined;
621
+ }
622
+ if (
623
+ object.subscriptionPermissions !== undefined &&
624
+ object.subscriptionPermissions !== null
625
+ ) {
626
+ message.subscriptionPermissions =
627
+ UpdateSubscriptionPermissions.fromPartial(
628
+ object.subscriptionPermissions
629
+ );
630
+ } else {
631
+ message.subscriptionPermissions = undefined;
632
+ }
633
+ if (object.syncState !== undefined && object.syncState !== null) {
634
+ message.syncState = SyncState.fromPartial(object.syncState);
635
+ } else {
636
+ message.syncState = undefined;
637
+ }
638
+ if (object.simulate !== undefined && object.simulate !== null) {
639
+ message.simulate = SimulateScenario.fromPartial(object.simulate);
640
+ } else {
641
+ message.simulate = undefined;
642
+ }
643
+ return message;
644
+ },
645
+ };
646
+
647
+ const baseSignalResponse: object = {};
648
+
649
+ export const SignalResponse = {
650
+ encode(
651
+ message: SignalResponse,
652
+ writer: _m0.Writer = _m0.Writer.create()
653
+ ): _m0.Writer {
654
+ if (message.join !== undefined) {
655
+ JoinResponse.encode(message.join, writer.uint32(10).fork()).ldelim();
656
+ }
657
+ if (message.answer !== undefined) {
658
+ SessionDescription.encode(
659
+ message.answer,
660
+ writer.uint32(18).fork()
661
+ ).ldelim();
662
+ }
663
+ if (message.offer !== undefined) {
664
+ SessionDescription.encode(
665
+ message.offer,
666
+ writer.uint32(26).fork()
667
+ ).ldelim();
668
+ }
669
+ if (message.trickle !== undefined) {
670
+ TrickleRequest.encode(message.trickle, writer.uint32(34).fork()).ldelim();
671
+ }
672
+ if (message.update !== undefined) {
673
+ ParticipantUpdate.encode(
674
+ message.update,
675
+ writer.uint32(42).fork()
676
+ ).ldelim();
677
+ }
678
+ if (message.trackPublished !== undefined) {
679
+ TrackPublishedResponse.encode(
680
+ message.trackPublished,
681
+ writer.uint32(50).fork()
682
+ ).ldelim();
683
+ }
684
+ if (message.leave !== undefined) {
685
+ LeaveRequest.encode(message.leave, writer.uint32(66).fork()).ldelim();
686
+ }
687
+ if (message.mute !== undefined) {
688
+ MuteTrackRequest.encode(message.mute, writer.uint32(74).fork()).ldelim();
689
+ }
690
+ if (message.speakersChanged !== undefined) {
691
+ SpeakersChanged.encode(
692
+ message.speakersChanged,
693
+ writer.uint32(82).fork()
694
+ ).ldelim();
695
+ }
696
+ if (message.roomUpdate !== undefined) {
697
+ RoomUpdate.encode(message.roomUpdate, writer.uint32(90).fork()).ldelim();
698
+ }
699
+ if (message.connectionQuality !== undefined) {
700
+ ConnectionQualityUpdate.encode(
701
+ message.connectionQuality,
702
+ writer.uint32(98).fork()
703
+ ).ldelim();
704
+ }
705
+ if (message.streamStateUpdate !== undefined) {
706
+ StreamStateUpdate.encode(
707
+ message.streamStateUpdate,
708
+ writer.uint32(106).fork()
709
+ ).ldelim();
710
+ }
711
+ if (message.subscribedQualityUpdate !== undefined) {
712
+ SubscribedQualityUpdate.encode(
713
+ message.subscribedQualityUpdate,
714
+ writer.uint32(114).fork()
715
+ ).ldelim();
716
+ }
717
+ if (message.subscriptionPermissionUpdate !== undefined) {
718
+ SubscriptionPermissionUpdate.encode(
719
+ message.subscriptionPermissionUpdate,
720
+ writer.uint32(122).fork()
721
+ ).ldelim();
722
+ }
723
+ return writer;
724
+ },
725
+
726
+ decode(input: _m0.Reader | Uint8Array, length?: number): SignalResponse {
727
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
728
+ let end = length === undefined ? reader.len : reader.pos + length;
729
+ const message = { ...baseSignalResponse } as SignalResponse;
730
+ while (reader.pos < end) {
731
+ const tag = reader.uint32();
732
+ switch (tag >>> 3) {
733
+ case 1:
734
+ message.join = JoinResponse.decode(reader, reader.uint32());
735
+ break;
736
+ case 2:
737
+ message.answer = SessionDescription.decode(reader, reader.uint32());
738
+ break;
739
+ case 3:
740
+ message.offer = SessionDescription.decode(reader, reader.uint32());
741
+ break;
742
+ case 4:
743
+ message.trickle = TrickleRequest.decode(reader, reader.uint32());
744
+ break;
745
+ case 5:
746
+ message.update = ParticipantUpdate.decode(reader, reader.uint32());
747
+ break;
748
+ case 6:
749
+ message.trackPublished = TrackPublishedResponse.decode(
750
+ reader,
751
+ reader.uint32()
752
+ );
753
+ break;
754
+ case 8:
755
+ message.leave = LeaveRequest.decode(reader, reader.uint32());
756
+ break;
757
+ case 9:
758
+ message.mute = MuteTrackRequest.decode(reader, reader.uint32());
759
+ break;
760
+ case 10:
761
+ message.speakersChanged = SpeakersChanged.decode(
762
+ reader,
763
+ reader.uint32()
764
+ );
765
+ break;
766
+ case 11:
767
+ message.roomUpdate = RoomUpdate.decode(reader, reader.uint32());
768
+ break;
769
+ case 12:
770
+ message.connectionQuality = ConnectionQualityUpdate.decode(
771
+ reader,
772
+ reader.uint32()
773
+ );
774
+ break;
775
+ case 13:
776
+ message.streamStateUpdate = StreamStateUpdate.decode(
777
+ reader,
778
+ reader.uint32()
779
+ );
780
+ break;
781
+ case 14:
782
+ message.subscribedQualityUpdate = SubscribedQualityUpdate.decode(
783
+ reader,
784
+ reader.uint32()
785
+ );
786
+ break;
787
+ case 15:
788
+ message.subscriptionPermissionUpdate =
789
+ SubscriptionPermissionUpdate.decode(reader, reader.uint32());
790
+ break;
791
+ default:
792
+ reader.skipType(tag & 7);
793
+ break;
794
+ }
795
+ }
796
+ return message;
797
+ },
798
+
799
+ fromJSON(object: any): SignalResponse {
800
+ const message = { ...baseSignalResponse } as SignalResponse;
801
+ if (object.join !== undefined && object.join !== null) {
802
+ message.join = JoinResponse.fromJSON(object.join);
803
+ } else {
804
+ message.join = undefined;
805
+ }
806
+ if (object.answer !== undefined && object.answer !== null) {
807
+ message.answer = SessionDescription.fromJSON(object.answer);
808
+ } else {
809
+ message.answer = undefined;
810
+ }
811
+ if (object.offer !== undefined && object.offer !== null) {
812
+ message.offer = SessionDescription.fromJSON(object.offer);
813
+ } else {
814
+ message.offer = undefined;
815
+ }
816
+ if (object.trickle !== undefined && object.trickle !== null) {
817
+ message.trickle = TrickleRequest.fromJSON(object.trickle);
818
+ } else {
819
+ message.trickle = undefined;
820
+ }
821
+ if (object.update !== undefined && object.update !== null) {
822
+ message.update = ParticipantUpdate.fromJSON(object.update);
823
+ } else {
824
+ message.update = undefined;
825
+ }
826
+ if (object.trackPublished !== undefined && object.trackPublished !== null) {
827
+ message.trackPublished = TrackPublishedResponse.fromJSON(
828
+ object.trackPublished
829
+ );
830
+ } else {
831
+ message.trackPublished = undefined;
832
+ }
833
+ if (object.leave !== undefined && object.leave !== null) {
834
+ message.leave = LeaveRequest.fromJSON(object.leave);
835
+ } else {
836
+ message.leave = undefined;
837
+ }
838
+ if (object.mute !== undefined && object.mute !== null) {
839
+ message.mute = MuteTrackRequest.fromJSON(object.mute);
840
+ } else {
841
+ message.mute = undefined;
842
+ }
843
+ if (
844
+ object.speakersChanged !== undefined &&
845
+ object.speakersChanged !== null
846
+ ) {
847
+ message.speakersChanged = SpeakersChanged.fromJSON(
848
+ object.speakersChanged
849
+ );
850
+ } else {
851
+ message.speakersChanged = undefined;
852
+ }
853
+ if (object.roomUpdate !== undefined && object.roomUpdate !== null) {
854
+ message.roomUpdate = RoomUpdate.fromJSON(object.roomUpdate);
855
+ } else {
856
+ message.roomUpdate = undefined;
857
+ }
858
+ if (
859
+ object.connectionQuality !== undefined &&
860
+ object.connectionQuality !== null
861
+ ) {
862
+ message.connectionQuality = ConnectionQualityUpdate.fromJSON(
863
+ object.connectionQuality
864
+ );
865
+ } else {
866
+ message.connectionQuality = undefined;
867
+ }
868
+ if (
869
+ object.streamStateUpdate !== undefined &&
870
+ object.streamStateUpdate !== null
871
+ ) {
872
+ message.streamStateUpdate = StreamStateUpdate.fromJSON(
873
+ object.streamStateUpdate
874
+ );
875
+ } else {
876
+ message.streamStateUpdate = undefined;
877
+ }
878
+ if (
879
+ object.subscribedQualityUpdate !== undefined &&
880
+ object.subscribedQualityUpdate !== null
881
+ ) {
882
+ message.subscribedQualityUpdate = SubscribedQualityUpdate.fromJSON(
883
+ object.subscribedQualityUpdate
884
+ );
885
+ } else {
886
+ message.subscribedQualityUpdate = undefined;
887
+ }
888
+ if (
889
+ object.subscriptionPermissionUpdate !== undefined &&
890
+ object.subscriptionPermissionUpdate !== null
891
+ ) {
892
+ message.subscriptionPermissionUpdate =
893
+ SubscriptionPermissionUpdate.fromJSON(
894
+ object.subscriptionPermissionUpdate
895
+ );
896
+ } else {
897
+ message.subscriptionPermissionUpdate = undefined;
898
+ }
899
+ return message;
900
+ },
901
+
902
+ toJSON(message: SignalResponse): unknown {
903
+ const obj: any = {};
904
+ message.join !== undefined &&
905
+ (obj.join = message.join ? JoinResponse.toJSON(message.join) : undefined);
906
+ message.answer !== undefined &&
907
+ (obj.answer = message.answer
908
+ ? SessionDescription.toJSON(message.answer)
909
+ : undefined);
910
+ message.offer !== undefined &&
911
+ (obj.offer = message.offer
912
+ ? SessionDescription.toJSON(message.offer)
913
+ : undefined);
914
+ message.trickle !== undefined &&
915
+ (obj.trickle = message.trickle
916
+ ? TrickleRequest.toJSON(message.trickle)
917
+ : undefined);
918
+ message.update !== undefined &&
919
+ (obj.update = message.update
920
+ ? ParticipantUpdate.toJSON(message.update)
921
+ : undefined);
922
+ message.trackPublished !== undefined &&
923
+ (obj.trackPublished = message.trackPublished
924
+ ? TrackPublishedResponse.toJSON(message.trackPublished)
925
+ : undefined);
926
+ message.leave !== undefined &&
927
+ (obj.leave = message.leave
928
+ ? LeaveRequest.toJSON(message.leave)
929
+ : undefined);
930
+ message.mute !== undefined &&
931
+ (obj.mute = message.mute
932
+ ? MuteTrackRequest.toJSON(message.mute)
933
+ : undefined);
934
+ message.speakersChanged !== undefined &&
935
+ (obj.speakersChanged = message.speakersChanged
936
+ ? SpeakersChanged.toJSON(message.speakersChanged)
937
+ : undefined);
938
+ message.roomUpdate !== undefined &&
939
+ (obj.roomUpdate = message.roomUpdate
940
+ ? RoomUpdate.toJSON(message.roomUpdate)
941
+ : undefined);
942
+ message.connectionQuality !== undefined &&
943
+ (obj.connectionQuality = message.connectionQuality
944
+ ? ConnectionQualityUpdate.toJSON(message.connectionQuality)
945
+ : undefined);
946
+ message.streamStateUpdate !== undefined &&
947
+ (obj.streamStateUpdate = message.streamStateUpdate
948
+ ? StreamStateUpdate.toJSON(message.streamStateUpdate)
949
+ : undefined);
950
+ message.subscribedQualityUpdate !== undefined &&
951
+ (obj.subscribedQualityUpdate = message.subscribedQualityUpdate
952
+ ? SubscribedQualityUpdate.toJSON(message.subscribedQualityUpdate)
953
+ : undefined);
954
+ message.subscriptionPermissionUpdate !== undefined &&
955
+ (obj.subscriptionPermissionUpdate = message.subscriptionPermissionUpdate
956
+ ? SubscriptionPermissionUpdate.toJSON(
957
+ message.subscriptionPermissionUpdate
958
+ )
959
+ : undefined);
960
+ return obj;
961
+ },
962
+
963
+ fromPartial(object: DeepPartial<SignalResponse>): SignalResponse {
964
+ const message = { ...baseSignalResponse } as SignalResponse;
965
+ if (object.join !== undefined && object.join !== null) {
966
+ message.join = JoinResponse.fromPartial(object.join);
967
+ } else {
968
+ message.join = undefined;
969
+ }
970
+ if (object.answer !== undefined && object.answer !== null) {
971
+ message.answer = SessionDescription.fromPartial(object.answer);
972
+ } else {
973
+ message.answer = undefined;
974
+ }
975
+ if (object.offer !== undefined && object.offer !== null) {
976
+ message.offer = SessionDescription.fromPartial(object.offer);
977
+ } else {
978
+ message.offer = undefined;
979
+ }
980
+ if (object.trickle !== undefined && object.trickle !== null) {
981
+ message.trickle = TrickleRequest.fromPartial(object.trickle);
982
+ } else {
983
+ message.trickle = undefined;
984
+ }
985
+ if (object.update !== undefined && object.update !== null) {
986
+ message.update = ParticipantUpdate.fromPartial(object.update);
987
+ } else {
988
+ message.update = undefined;
989
+ }
990
+ if (object.trackPublished !== undefined && object.trackPublished !== null) {
991
+ message.trackPublished = TrackPublishedResponse.fromPartial(
992
+ object.trackPublished
993
+ );
994
+ } else {
995
+ message.trackPublished = undefined;
996
+ }
997
+ if (object.leave !== undefined && object.leave !== null) {
998
+ message.leave = LeaveRequest.fromPartial(object.leave);
999
+ } else {
1000
+ message.leave = undefined;
1001
+ }
1002
+ if (object.mute !== undefined && object.mute !== null) {
1003
+ message.mute = MuteTrackRequest.fromPartial(object.mute);
1004
+ } else {
1005
+ message.mute = undefined;
1006
+ }
1007
+ if (
1008
+ object.speakersChanged !== undefined &&
1009
+ object.speakersChanged !== null
1010
+ ) {
1011
+ message.speakersChanged = SpeakersChanged.fromPartial(
1012
+ object.speakersChanged
1013
+ );
1014
+ } else {
1015
+ message.speakersChanged = undefined;
1016
+ }
1017
+ if (object.roomUpdate !== undefined && object.roomUpdate !== null) {
1018
+ message.roomUpdate = RoomUpdate.fromPartial(object.roomUpdate);
1019
+ } else {
1020
+ message.roomUpdate = undefined;
1021
+ }
1022
+ if (
1023
+ object.connectionQuality !== undefined &&
1024
+ object.connectionQuality !== null
1025
+ ) {
1026
+ message.connectionQuality = ConnectionQualityUpdate.fromPartial(
1027
+ object.connectionQuality
1028
+ );
1029
+ } else {
1030
+ message.connectionQuality = undefined;
1031
+ }
1032
+ if (
1033
+ object.streamStateUpdate !== undefined &&
1034
+ object.streamStateUpdate !== null
1035
+ ) {
1036
+ message.streamStateUpdate = StreamStateUpdate.fromPartial(
1037
+ object.streamStateUpdate
1038
+ );
1039
+ } else {
1040
+ message.streamStateUpdate = undefined;
1041
+ }
1042
+ if (
1043
+ object.subscribedQualityUpdate !== undefined &&
1044
+ object.subscribedQualityUpdate !== null
1045
+ ) {
1046
+ message.subscribedQualityUpdate = SubscribedQualityUpdate.fromPartial(
1047
+ object.subscribedQualityUpdate
1048
+ );
1049
+ } else {
1050
+ message.subscribedQualityUpdate = undefined;
1051
+ }
1052
+ if (
1053
+ object.subscriptionPermissionUpdate !== undefined &&
1054
+ object.subscriptionPermissionUpdate !== null
1055
+ ) {
1056
+ message.subscriptionPermissionUpdate =
1057
+ SubscriptionPermissionUpdate.fromPartial(
1058
+ object.subscriptionPermissionUpdate
1059
+ );
1060
+ } else {
1061
+ message.subscriptionPermissionUpdate = undefined;
1062
+ }
1063
+ return message;
1064
+ },
1065
+ };
1066
+
1067
+ const baseAddTrackRequest: object = {
1068
+ cid: "",
1069
+ name: "",
1070
+ type: 0,
1071
+ width: 0,
1072
+ height: 0,
1073
+ muted: false,
1074
+ disableDtx: false,
1075
+ source: 0,
1076
+ };
1077
+
1078
+ export const AddTrackRequest = {
1079
+ encode(
1080
+ message: AddTrackRequest,
1081
+ writer: _m0.Writer = _m0.Writer.create()
1082
+ ): _m0.Writer {
1083
+ if (message.cid !== "") {
1084
+ writer.uint32(10).string(message.cid);
1085
+ }
1086
+ if (message.name !== "") {
1087
+ writer.uint32(18).string(message.name);
1088
+ }
1089
+ if (message.type !== 0) {
1090
+ writer.uint32(24).int32(message.type);
1091
+ }
1092
+ if (message.width !== 0) {
1093
+ writer.uint32(32).uint32(message.width);
1094
+ }
1095
+ if (message.height !== 0) {
1096
+ writer.uint32(40).uint32(message.height);
1097
+ }
1098
+ if (message.muted === true) {
1099
+ writer.uint32(48).bool(message.muted);
1100
+ }
1101
+ if (message.disableDtx === true) {
1102
+ writer.uint32(56).bool(message.disableDtx);
1103
+ }
1104
+ if (message.source !== 0) {
1105
+ writer.uint32(64).int32(message.source);
1106
+ }
1107
+ for (const v of message.layers) {
1108
+ VideoLayer.encode(v!, writer.uint32(74).fork()).ldelim();
1109
+ }
1110
+ return writer;
1111
+ },
1112
+
1113
+ decode(input: _m0.Reader | Uint8Array, length?: number): AddTrackRequest {
1114
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1115
+ let end = length === undefined ? reader.len : reader.pos + length;
1116
+ const message = { ...baseAddTrackRequest } as AddTrackRequest;
1117
+ message.layers = [];
1118
+ while (reader.pos < end) {
1119
+ const tag = reader.uint32();
1120
+ switch (tag >>> 3) {
1121
+ case 1:
1122
+ message.cid = reader.string();
1123
+ break;
1124
+ case 2:
1125
+ message.name = reader.string();
1126
+ break;
1127
+ case 3:
1128
+ message.type = reader.int32() as any;
1129
+ break;
1130
+ case 4:
1131
+ message.width = reader.uint32();
1132
+ break;
1133
+ case 5:
1134
+ message.height = reader.uint32();
1135
+ break;
1136
+ case 6:
1137
+ message.muted = reader.bool();
1138
+ break;
1139
+ case 7:
1140
+ message.disableDtx = reader.bool();
1141
+ break;
1142
+ case 8:
1143
+ message.source = reader.int32() as any;
1144
+ break;
1145
+ case 9:
1146
+ message.layers.push(VideoLayer.decode(reader, reader.uint32()));
1147
+ break;
1148
+ default:
1149
+ reader.skipType(tag & 7);
1150
+ break;
1151
+ }
1152
+ }
1153
+ return message;
1154
+ },
1155
+
1156
+ fromJSON(object: any): AddTrackRequest {
1157
+ const message = { ...baseAddTrackRequest } as AddTrackRequest;
1158
+ message.layers = [];
1159
+ if (object.cid !== undefined && object.cid !== null) {
1160
+ message.cid = String(object.cid);
1161
+ } else {
1162
+ message.cid = "";
1163
+ }
1164
+ if (object.name !== undefined && object.name !== null) {
1165
+ message.name = String(object.name);
1166
+ } else {
1167
+ message.name = "";
1168
+ }
1169
+ if (object.type !== undefined && object.type !== null) {
1170
+ message.type = trackTypeFromJSON(object.type);
1171
+ } else {
1172
+ message.type = 0;
1173
+ }
1174
+ if (object.width !== undefined && object.width !== null) {
1175
+ message.width = Number(object.width);
1176
+ } else {
1177
+ message.width = 0;
1178
+ }
1179
+ if (object.height !== undefined && object.height !== null) {
1180
+ message.height = Number(object.height);
1181
+ } else {
1182
+ message.height = 0;
1183
+ }
1184
+ if (object.muted !== undefined && object.muted !== null) {
1185
+ message.muted = Boolean(object.muted);
1186
+ } else {
1187
+ message.muted = false;
1188
+ }
1189
+ if (object.disableDtx !== undefined && object.disableDtx !== null) {
1190
+ message.disableDtx = Boolean(object.disableDtx);
1191
+ } else {
1192
+ message.disableDtx = false;
1193
+ }
1194
+ if (object.source !== undefined && object.source !== null) {
1195
+ message.source = trackSourceFromJSON(object.source);
1196
+ } else {
1197
+ message.source = 0;
1198
+ }
1199
+ if (object.layers !== undefined && object.layers !== null) {
1200
+ for (const e of object.layers) {
1201
+ message.layers.push(VideoLayer.fromJSON(e));
1202
+ }
1203
+ }
1204
+ return message;
1205
+ },
1206
+
1207
+ toJSON(message: AddTrackRequest): unknown {
1208
+ const obj: any = {};
1209
+ message.cid !== undefined && (obj.cid = message.cid);
1210
+ message.name !== undefined && (obj.name = message.name);
1211
+ message.type !== undefined && (obj.type = trackTypeToJSON(message.type));
1212
+ message.width !== undefined && (obj.width = message.width);
1213
+ message.height !== undefined && (obj.height = message.height);
1214
+ message.muted !== undefined && (obj.muted = message.muted);
1215
+ message.disableDtx !== undefined && (obj.disableDtx = message.disableDtx);
1216
+ message.source !== undefined &&
1217
+ (obj.source = trackSourceToJSON(message.source));
1218
+ if (message.layers) {
1219
+ obj.layers = message.layers.map((e) =>
1220
+ e ? VideoLayer.toJSON(e) : undefined
1221
+ );
1222
+ } else {
1223
+ obj.layers = [];
1224
+ }
1225
+ return obj;
1226
+ },
1227
+
1228
+ fromPartial(object: DeepPartial<AddTrackRequest>): AddTrackRequest {
1229
+ const message = { ...baseAddTrackRequest } as AddTrackRequest;
1230
+ message.cid = object.cid ?? "";
1231
+ message.name = object.name ?? "";
1232
+ message.type = object.type ?? 0;
1233
+ message.width = object.width ?? 0;
1234
+ message.height = object.height ?? 0;
1235
+ message.muted = object.muted ?? false;
1236
+ message.disableDtx = object.disableDtx ?? false;
1237
+ message.source = object.source ?? 0;
1238
+ message.layers = [];
1239
+ if (object.layers !== undefined && object.layers !== null) {
1240
+ for (const e of object.layers) {
1241
+ message.layers.push(VideoLayer.fromPartial(e));
1242
+ }
1243
+ }
1244
+ return message;
1245
+ },
1246
+ };
1247
+
1248
+ const baseTrickleRequest: object = { candidateInit: "", target: 0 };
1249
+
1250
+ export const TrickleRequest = {
1251
+ encode(
1252
+ message: TrickleRequest,
1253
+ writer: _m0.Writer = _m0.Writer.create()
1254
+ ): _m0.Writer {
1255
+ if (message.candidateInit !== "") {
1256
+ writer.uint32(10).string(message.candidateInit);
1257
+ }
1258
+ if (message.target !== 0) {
1259
+ writer.uint32(16).int32(message.target);
1260
+ }
1261
+ return writer;
1262
+ },
1263
+
1264
+ decode(input: _m0.Reader | Uint8Array, length?: number): TrickleRequest {
1265
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1266
+ let end = length === undefined ? reader.len : reader.pos + length;
1267
+ const message = { ...baseTrickleRequest } as TrickleRequest;
1268
+ while (reader.pos < end) {
1269
+ const tag = reader.uint32();
1270
+ switch (tag >>> 3) {
1271
+ case 1:
1272
+ message.candidateInit = reader.string();
1273
+ break;
1274
+ case 2:
1275
+ message.target = reader.int32() as any;
1276
+ break;
1277
+ default:
1278
+ reader.skipType(tag & 7);
1279
+ break;
1280
+ }
1281
+ }
1282
+ return message;
1283
+ },
1284
+
1285
+ fromJSON(object: any): TrickleRequest {
1286
+ const message = { ...baseTrickleRequest } as TrickleRequest;
1287
+ if (object.candidateInit !== undefined && object.candidateInit !== null) {
1288
+ message.candidateInit = String(object.candidateInit);
1289
+ } else {
1290
+ message.candidateInit = "";
1291
+ }
1292
+ if (object.target !== undefined && object.target !== null) {
1293
+ message.target = signalTargetFromJSON(object.target);
1294
+ } else {
1295
+ message.target = 0;
1296
+ }
1297
+ return message;
1298
+ },
1299
+
1300
+ toJSON(message: TrickleRequest): unknown {
1301
+ const obj: any = {};
1302
+ message.candidateInit !== undefined &&
1303
+ (obj.candidateInit = message.candidateInit);
1304
+ message.target !== undefined &&
1305
+ (obj.target = signalTargetToJSON(message.target));
1306
+ return obj;
1307
+ },
1308
+
1309
+ fromPartial(object: DeepPartial<TrickleRequest>): TrickleRequest {
1310
+ const message = { ...baseTrickleRequest } as TrickleRequest;
1311
+ message.candidateInit = object.candidateInit ?? "";
1312
+ message.target = object.target ?? 0;
1313
+ return message;
1314
+ },
1315
+ };
1316
+
1317
+ const baseMuteTrackRequest: object = { sid: "", muted: false };
1318
+
1319
+ export const MuteTrackRequest = {
1320
+ encode(
1321
+ message: MuteTrackRequest,
1322
+ writer: _m0.Writer = _m0.Writer.create()
1323
+ ): _m0.Writer {
1324
+ if (message.sid !== "") {
1325
+ writer.uint32(10).string(message.sid);
1326
+ }
1327
+ if (message.muted === true) {
1328
+ writer.uint32(16).bool(message.muted);
1329
+ }
1330
+ return writer;
1331
+ },
1332
+
1333
+ decode(input: _m0.Reader | Uint8Array, length?: number): MuteTrackRequest {
1334
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1335
+ let end = length === undefined ? reader.len : reader.pos + length;
1336
+ const message = { ...baseMuteTrackRequest } as MuteTrackRequest;
1337
+ while (reader.pos < end) {
1338
+ const tag = reader.uint32();
1339
+ switch (tag >>> 3) {
1340
+ case 1:
1341
+ message.sid = reader.string();
1342
+ break;
1343
+ case 2:
1344
+ message.muted = reader.bool();
1345
+ break;
1346
+ default:
1347
+ reader.skipType(tag & 7);
1348
+ break;
1349
+ }
1350
+ }
1351
+ return message;
1352
+ },
1353
+
1354
+ fromJSON(object: any): MuteTrackRequest {
1355
+ const message = { ...baseMuteTrackRequest } as MuteTrackRequest;
1356
+ if (object.sid !== undefined && object.sid !== null) {
1357
+ message.sid = String(object.sid);
1358
+ } else {
1359
+ message.sid = "";
1360
+ }
1361
+ if (object.muted !== undefined && object.muted !== null) {
1362
+ message.muted = Boolean(object.muted);
1363
+ } else {
1364
+ message.muted = false;
1365
+ }
1366
+ return message;
1367
+ },
1368
+
1369
+ toJSON(message: MuteTrackRequest): unknown {
1370
+ const obj: any = {};
1371
+ message.sid !== undefined && (obj.sid = message.sid);
1372
+ message.muted !== undefined && (obj.muted = message.muted);
1373
+ return obj;
1374
+ },
1375
+
1376
+ fromPartial(object: DeepPartial<MuteTrackRequest>): MuteTrackRequest {
1377
+ const message = { ...baseMuteTrackRequest } as MuteTrackRequest;
1378
+ message.sid = object.sid ?? "";
1379
+ message.muted = object.muted ?? false;
1380
+ return message;
1381
+ },
1382
+ };
1383
+
1384
+ const baseJoinResponse: object = {
1385
+ serverVersion: "",
1386
+ subscriberPrimary: false,
1387
+ alternativeUrl: "",
1388
+ };
1389
+
1390
+ export const JoinResponse = {
1391
+ encode(
1392
+ message: JoinResponse,
1393
+ writer: _m0.Writer = _m0.Writer.create()
1394
+ ): _m0.Writer {
1395
+ if (message.room !== undefined) {
1396
+ Room.encode(message.room, writer.uint32(10).fork()).ldelim();
1397
+ }
1398
+ if (message.participant !== undefined) {
1399
+ ParticipantInfo.encode(
1400
+ message.participant,
1401
+ writer.uint32(18).fork()
1402
+ ).ldelim();
1403
+ }
1404
+ for (const v of message.otherParticipants) {
1405
+ ParticipantInfo.encode(v!, writer.uint32(26).fork()).ldelim();
1406
+ }
1407
+ if (message.serverVersion !== "") {
1408
+ writer.uint32(34).string(message.serverVersion);
1409
+ }
1410
+ for (const v of message.iceServers) {
1411
+ ICEServer.encode(v!, writer.uint32(42).fork()).ldelim();
1412
+ }
1413
+ if (message.subscriberPrimary === true) {
1414
+ writer.uint32(48).bool(message.subscriberPrimary);
1415
+ }
1416
+ if (message.alternativeUrl !== "") {
1417
+ writer.uint32(58).string(message.alternativeUrl);
1418
+ }
1419
+ return writer;
1420
+ },
1421
+
1422
+ decode(input: _m0.Reader | Uint8Array, length?: number): JoinResponse {
1423
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1424
+ let end = length === undefined ? reader.len : reader.pos + length;
1425
+ const message = { ...baseJoinResponse } as JoinResponse;
1426
+ message.otherParticipants = [];
1427
+ message.iceServers = [];
1428
+ while (reader.pos < end) {
1429
+ const tag = reader.uint32();
1430
+ switch (tag >>> 3) {
1431
+ case 1:
1432
+ message.room = Room.decode(reader, reader.uint32());
1433
+ break;
1434
+ case 2:
1435
+ message.participant = ParticipantInfo.decode(reader, reader.uint32());
1436
+ break;
1437
+ case 3:
1438
+ message.otherParticipants.push(
1439
+ ParticipantInfo.decode(reader, reader.uint32())
1440
+ );
1441
+ break;
1442
+ case 4:
1443
+ message.serverVersion = reader.string();
1444
+ break;
1445
+ case 5:
1446
+ message.iceServers.push(ICEServer.decode(reader, reader.uint32()));
1447
+ break;
1448
+ case 6:
1449
+ message.subscriberPrimary = reader.bool();
1450
+ break;
1451
+ case 7:
1452
+ message.alternativeUrl = reader.string();
1453
+ break;
1454
+ default:
1455
+ reader.skipType(tag & 7);
1456
+ break;
1457
+ }
1458
+ }
1459
+ return message;
1460
+ },
1461
+
1462
+ fromJSON(object: any): JoinResponse {
1463
+ const message = { ...baseJoinResponse } as JoinResponse;
1464
+ message.otherParticipants = [];
1465
+ message.iceServers = [];
1466
+ if (object.room !== undefined && object.room !== null) {
1467
+ message.room = Room.fromJSON(object.room);
1468
+ } else {
1469
+ message.room = undefined;
1470
+ }
1471
+ if (object.participant !== undefined && object.participant !== null) {
1472
+ message.participant = ParticipantInfo.fromJSON(object.participant);
1473
+ } else {
1474
+ message.participant = undefined;
1475
+ }
1476
+ if (
1477
+ object.otherParticipants !== undefined &&
1478
+ object.otherParticipants !== null
1479
+ ) {
1480
+ for (const e of object.otherParticipants) {
1481
+ message.otherParticipants.push(ParticipantInfo.fromJSON(e));
1482
+ }
1483
+ }
1484
+ if (object.serverVersion !== undefined && object.serverVersion !== null) {
1485
+ message.serverVersion = String(object.serverVersion);
1486
+ } else {
1487
+ message.serverVersion = "";
1488
+ }
1489
+ if (object.iceServers !== undefined && object.iceServers !== null) {
1490
+ for (const e of object.iceServers) {
1491
+ message.iceServers.push(ICEServer.fromJSON(e));
1492
+ }
1493
+ }
1494
+ if (
1495
+ object.subscriberPrimary !== undefined &&
1496
+ object.subscriberPrimary !== null
1497
+ ) {
1498
+ message.subscriberPrimary = Boolean(object.subscriberPrimary);
1499
+ } else {
1500
+ message.subscriberPrimary = false;
1501
+ }
1502
+ if (object.alternativeUrl !== undefined && object.alternativeUrl !== null) {
1503
+ message.alternativeUrl = String(object.alternativeUrl);
1504
+ } else {
1505
+ message.alternativeUrl = "";
1506
+ }
1507
+ return message;
1508
+ },
1509
+
1510
+ toJSON(message: JoinResponse): unknown {
1511
+ const obj: any = {};
1512
+ message.room !== undefined &&
1513
+ (obj.room = message.room ? Room.toJSON(message.room) : undefined);
1514
+ message.participant !== undefined &&
1515
+ (obj.participant = message.participant
1516
+ ? ParticipantInfo.toJSON(message.participant)
1517
+ : undefined);
1518
+ if (message.otherParticipants) {
1519
+ obj.otherParticipants = message.otherParticipants.map((e) =>
1520
+ e ? ParticipantInfo.toJSON(e) : undefined
1521
+ );
1522
+ } else {
1523
+ obj.otherParticipants = [];
1524
+ }
1525
+ message.serverVersion !== undefined &&
1526
+ (obj.serverVersion = message.serverVersion);
1527
+ if (message.iceServers) {
1528
+ obj.iceServers = message.iceServers.map((e) =>
1529
+ e ? ICEServer.toJSON(e) : undefined
1530
+ );
1531
+ } else {
1532
+ obj.iceServers = [];
1533
+ }
1534
+ message.subscriberPrimary !== undefined &&
1535
+ (obj.subscriberPrimary = message.subscriberPrimary);
1536
+ message.alternativeUrl !== undefined &&
1537
+ (obj.alternativeUrl = message.alternativeUrl);
1538
+ return obj;
1539
+ },
1540
+
1541
+ fromPartial(object: DeepPartial<JoinResponse>): JoinResponse {
1542
+ const message = { ...baseJoinResponse } as JoinResponse;
1543
+ if (object.room !== undefined && object.room !== null) {
1544
+ message.room = Room.fromPartial(object.room);
1545
+ } else {
1546
+ message.room = undefined;
1547
+ }
1548
+ if (object.participant !== undefined && object.participant !== null) {
1549
+ message.participant = ParticipantInfo.fromPartial(object.participant);
1550
+ } else {
1551
+ message.participant = undefined;
1552
+ }
1553
+ message.otherParticipants = [];
1554
+ if (
1555
+ object.otherParticipants !== undefined &&
1556
+ object.otherParticipants !== null
1557
+ ) {
1558
+ for (const e of object.otherParticipants) {
1559
+ message.otherParticipants.push(ParticipantInfo.fromPartial(e));
1560
+ }
1561
+ }
1562
+ message.serverVersion = object.serverVersion ?? "";
1563
+ message.iceServers = [];
1564
+ if (object.iceServers !== undefined && object.iceServers !== null) {
1565
+ for (const e of object.iceServers) {
1566
+ message.iceServers.push(ICEServer.fromPartial(e));
1567
+ }
1568
+ }
1569
+ message.subscriberPrimary = object.subscriberPrimary ?? false;
1570
+ message.alternativeUrl = object.alternativeUrl ?? "";
1571
+ return message;
1572
+ },
1573
+ };
1574
+
1575
+ const baseTrackPublishedResponse: object = { cid: "" };
1576
+
1577
+ export const TrackPublishedResponse = {
1578
+ encode(
1579
+ message: TrackPublishedResponse,
1580
+ writer: _m0.Writer = _m0.Writer.create()
1581
+ ): _m0.Writer {
1582
+ if (message.cid !== "") {
1583
+ writer.uint32(10).string(message.cid);
1584
+ }
1585
+ if (message.track !== undefined) {
1586
+ TrackInfo.encode(message.track, writer.uint32(18).fork()).ldelim();
1587
+ }
1588
+ return writer;
1589
+ },
1590
+
1591
+ decode(
1592
+ input: _m0.Reader | Uint8Array,
1593
+ length?: number
1594
+ ): TrackPublishedResponse {
1595
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1596
+ let end = length === undefined ? reader.len : reader.pos + length;
1597
+ const message = { ...baseTrackPublishedResponse } as TrackPublishedResponse;
1598
+ while (reader.pos < end) {
1599
+ const tag = reader.uint32();
1600
+ switch (tag >>> 3) {
1601
+ case 1:
1602
+ message.cid = reader.string();
1603
+ break;
1604
+ case 2:
1605
+ message.track = TrackInfo.decode(reader, reader.uint32());
1606
+ break;
1607
+ default:
1608
+ reader.skipType(tag & 7);
1609
+ break;
1610
+ }
1611
+ }
1612
+ return message;
1613
+ },
1614
+
1615
+ fromJSON(object: any): TrackPublishedResponse {
1616
+ const message = { ...baseTrackPublishedResponse } as TrackPublishedResponse;
1617
+ if (object.cid !== undefined && object.cid !== null) {
1618
+ message.cid = String(object.cid);
1619
+ } else {
1620
+ message.cid = "";
1621
+ }
1622
+ if (object.track !== undefined && object.track !== null) {
1623
+ message.track = TrackInfo.fromJSON(object.track);
1624
+ } else {
1625
+ message.track = undefined;
1626
+ }
1627
+ return message;
1628
+ },
1629
+
1630
+ toJSON(message: TrackPublishedResponse): unknown {
1631
+ const obj: any = {};
1632
+ message.cid !== undefined && (obj.cid = message.cid);
1633
+ message.track !== undefined &&
1634
+ (obj.track = message.track ? TrackInfo.toJSON(message.track) : undefined);
1635
+ return obj;
1636
+ },
1637
+
1638
+ fromPartial(
1639
+ object: DeepPartial<TrackPublishedResponse>
1640
+ ): TrackPublishedResponse {
1641
+ const message = { ...baseTrackPublishedResponse } as TrackPublishedResponse;
1642
+ message.cid = object.cid ?? "";
1643
+ if (object.track !== undefined && object.track !== null) {
1644
+ message.track = TrackInfo.fromPartial(object.track);
1645
+ } else {
1646
+ message.track = undefined;
1647
+ }
1648
+ return message;
1649
+ },
1650
+ };
1651
+
1652
+ const baseSessionDescription: object = { type: "", sdp: "" };
1653
+
1654
+ export const SessionDescription = {
1655
+ encode(
1656
+ message: SessionDescription,
1657
+ writer: _m0.Writer = _m0.Writer.create()
1658
+ ): _m0.Writer {
1659
+ if (message.type !== "") {
1660
+ writer.uint32(10).string(message.type);
1661
+ }
1662
+ if (message.sdp !== "") {
1663
+ writer.uint32(18).string(message.sdp);
1664
+ }
1665
+ return writer;
1666
+ },
1667
+
1668
+ decode(input: _m0.Reader | Uint8Array, length?: number): SessionDescription {
1669
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1670
+ let end = length === undefined ? reader.len : reader.pos + length;
1671
+ const message = { ...baseSessionDescription } as SessionDescription;
1672
+ while (reader.pos < end) {
1673
+ const tag = reader.uint32();
1674
+ switch (tag >>> 3) {
1675
+ case 1:
1676
+ message.type = reader.string();
1677
+ break;
1678
+ case 2:
1679
+ message.sdp = reader.string();
1680
+ break;
1681
+ default:
1682
+ reader.skipType(tag & 7);
1683
+ break;
1684
+ }
1685
+ }
1686
+ return message;
1687
+ },
1688
+
1689
+ fromJSON(object: any): SessionDescription {
1690
+ const message = { ...baseSessionDescription } as SessionDescription;
1691
+ if (object.type !== undefined && object.type !== null) {
1692
+ message.type = String(object.type);
1693
+ } else {
1694
+ message.type = "";
1695
+ }
1696
+ if (object.sdp !== undefined && object.sdp !== null) {
1697
+ message.sdp = String(object.sdp);
1698
+ } else {
1699
+ message.sdp = "";
1700
+ }
1701
+ return message;
1702
+ },
1703
+
1704
+ toJSON(message: SessionDescription): unknown {
1705
+ const obj: any = {};
1706
+ message.type !== undefined && (obj.type = message.type);
1707
+ message.sdp !== undefined && (obj.sdp = message.sdp);
1708
+ return obj;
1709
+ },
1710
+
1711
+ fromPartial(object: DeepPartial<SessionDescription>): SessionDescription {
1712
+ const message = { ...baseSessionDescription } as SessionDescription;
1713
+ message.type = object.type ?? "";
1714
+ message.sdp = object.sdp ?? "";
1715
+ return message;
1716
+ },
1717
+ };
1718
+
1719
+ const baseParticipantUpdate: object = {};
1720
+
1721
+ export const ParticipantUpdate = {
1722
+ encode(
1723
+ message: ParticipantUpdate,
1724
+ writer: _m0.Writer = _m0.Writer.create()
1725
+ ): _m0.Writer {
1726
+ for (const v of message.participants) {
1727
+ ParticipantInfo.encode(v!, writer.uint32(10).fork()).ldelim();
1728
+ }
1729
+ return writer;
1730
+ },
1731
+
1732
+ decode(input: _m0.Reader | Uint8Array, length?: number): ParticipantUpdate {
1733
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1734
+ let end = length === undefined ? reader.len : reader.pos + length;
1735
+ const message = { ...baseParticipantUpdate } as ParticipantUpdate;
1736
+ message.participants = [];
1737
+ while (reader.pos < end) {
1738
+ const tag = reader.uint32();
1739
+ switch (tag >>> 3) {
1740
+ case 1:
1741
+ message.participants.push(
1742
+ ParticipantInfo.decode(reader, reader.uint32())
1743
+ );
1744
+ break;
1745
+ default:
1746
+ reader.skipType(tag & 7);
1747
+ break;
1748
+ }
1749
+ }
1750
+ return message;
1751
+ },
1752
+
1753
+ fromJSON(object: any): ParticipantUpdate {
1754
+ const message = { ...baseParticipantUpdate } as ParticipantUpdate;
1755
+ message.participants = [];
1756
+ if (object.participants !== undefined && object.participants !== null) {
1757
+ for (const e of object.participants) {
1758
+ message.participants.push(ParticipantInfo.fromJSON(e));
1759
+ }
1760
+ }
1761
+ return message;
1762
+ },
1763
+
1764
+ toJSON(message: ParticipantUpdate): unknown {
1765
+ const obj: any = {};
1766
+ if (message.participants) {
1767
+ obj.participants = message.participants.map((e) =>
1768
+ e ? ParticipantInfo.toJSON(e) : undefined
1769
+ );
1770
+ } else {
1771
+ obj.participants = [];
1772
+ }
1773
+ return obj;
1774
+ },
1775
+
1776
+ fromPartial(object: DeepPartial<ParticipantUpdate>): ParticipantUpdate {
1777
+ const message = { ...baseParticipantUpdate } as ParticipantUpdate;
1778
+ message.participants = [];
1779
+ if (object.participants !== undefined && object.participants !== null) {
1780
+ for (const e of object.participants) {
1781
+ message.participants.push(ParticipantInfo.fromPartial(e));
1782
+ }
1783
+ }
1784
+ return message;
1785
+ },
1786
+ };
1787
+
1788
+ const baseUpdateSubscription: object = { trackSids: "", subscribe: false };
1789
+
1790
+ export const UpdateSubscription = {
1791
+ encode(
1792
+ message: UpdateSubscription,
1793
+ writer: _m0.Writer = _m0.Writer.create()
1794
+ ): _m0.Writer {
1795
+ for (const v of message.trackSids) {
1796
+ writer.uint32(10).string(v!);
1797
+ }
1798
+ if (message.subscribe === true) {
1799
+ writer.uint32(16).bool(message.subscribe);
1800
+ }
1801
+ for (const v of message.participantTracks) {
1802
+ ParticipantTracks.encode(v!, writer.uint32(26).fork()).ldelim();
1803
+ }
1804
+ return writer;
1805
+ },
1806
+
1807
+ decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSubscription {
1808
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1809
+ let end = length === undefined ? reader.len : reader.pos + length;
1810
+ const message = { ...baseUpdateSubscription } as UpdateSubscription;
1811
+ message.trackSids = [];
1812
+ message.participantTracks = [];
1813
+ while (reader.pos < end) {
1814
+ const tag = reader.uint32();
1815
+ switch (tag >>> 3) {
1816
+ case 1:
1817
+ message.trackSids.push(reader.string());
1818
+ break;
1819
+ case 2:
1820
+ message.subscribe = reader.bool();
1821
+ break;
1822
+ case 3:
1823
+ message.participantTracks.push(
1824
+ ParticipantTracks.decode(reader, reader.uint32())
1825
+ );
1826
+ break;
1827
+ default:
1828
+ reader.skipType(tag & 7);
1829
+ break;
1830
+ }
1831
+ }
1832
+ return message;
1833
+ },
1834
+
1835
+ fromJSON(object: any): UpdateSubscription {
1836
+ const message = { ...baseUpdateSubscription } as UpdateSubscription;
1837
+ message.trackSids = [];
1838
+ message.participantTracks = [];
1839
+ if (object.trackSids !== undefined && object.trackSids !== null) {
1840
+ for (const e of object.trackSids) {
1841
+ message.trackSids.push(String(e));
1842
+ }
1843
+ }
1844
+ if (object.subscribe !== undefined && object.subscribe !== null) {
1845
+ message.subscribe = Boolean(object.subscribe);
1846
+ } else {
1847
+ message.subscribe = false;
1848
+ }
1849
+ if (
1850
+ object.participantTracks !== undefined &&
1851
+ object.participantTracks !== null
1852
+ ) {
1853
+ for (const e of object.participantTracks) {
1854
+ message.participantTracks.push(ParticipantTracks.fromJSON(e));
1855
+ }
1856
+ }
1857
+ return message;
1858
+ },
1859
+
1860
+ toJSON(message: UpdateSubscription): unknown {
1861
+ const obj: any = {};
1862
+ if (message.trackSids) {
1863
+ obj.trackSids = message.trackSids.map((e) => e);
1864
+ } else {
1865
+ obj.trackSids = [];
1866
+ }
1867
+ message.subscribe !== undefined && (obj.subscribe = message.subscribe);
1868
+ if (message.participantTracks) {
1869
+ obj.participantTracks = message.participantTracks.map((e) =>
1870
+ e ? ParticipantTracks.toJSON(e) : undefined
1871
+ );
1872
+ } else {
1873
+ obj.participantTracks = [];
1874
+ }
1875
+ return obj;
1876
+ },
1877
+
1878
+ fromPartial(object: DeepPartial<UpdateSubscription>): UpdateSubscription {
1879
+ const message = { ...baseUpdateSubscription } as UpdateSubscription;
1880
+ message.trackSids = [];
1881
+ if (object.trackSids !== undefined && object.trackSids !== null) {
1882
+ for (const e of object.trackSids) {
1883
+ message.trackSids.push(e);
1884
+ }
1885
+ }
1886
+ message.subscribe = object.subscribe ?? false;
1887
+ message.participantTracks = [];
1888
+ if (
1889
+ object.participantTracks !== undefined &&
1890
+ object.participantTracks !== null
1891
+ ) {
1892
+ for (const e of object.participantTracks) {
1893
+ message.participantTracks.push(ParticipantTracks.fromPartial(e));
1894
+ }
1895
+ }
1896
+ return message;
1897
+ },
1898
+ };
1899
+
1900
+ const baseUpdateTrackSettings: object = {
1901
+ trackSids: "",
1902
+ disabled: false,
1903
+ quality: 0,
1904
+ width: 0,
1905
+ height: 0,
1906
+ };
1907
+
1908
+ export const UpdateTrackSettings = {
1909
+ encode(
1910
+ message: UpdateTrackSettings,
1911
+ writer: _m0.Writer = _m0.Writer.create()
1912
+ ): _m0.Writer {
1913
+ for (const v of message.trackSids) {
1914
+ writer.uint32(10).string(v!);
1915
+ }
1916
+ if (message.disabled === true) {
1917
+ writer.uint32(24).bool(message.disabled);
1918
+ }
1919
+ if (message.quality !== 0) {
1920
+ writer.uint32(32).int32(message.quality);
1921
+ }
1922
+ if (message.width !== 0) {
1923
+ writer.uint32(40).uint32(message.width);
1924
+ }
1925
+ if (message.height !== 0) {
1926
+ writer.uint32(48).uint32(message.height);
1927
+ }
1928
+ return writer;
1929
+ },
1930
+
1931
+ decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTrackSettings {
1932
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1933
+ let end = length === undefined ? reader.len : reader.pos + length;
1934
+ const message = { ...baseUpdateTrackSettings } as UpdateTrackSettings;
1935
+ message.trackSids = [];
1936
+ while (reader.pos < end) {
1937
+ const tag = reader.uint32();
1938
+ switch (tag >>> 3) {
1939
+ case 1:
1940
+ message.trackSids.push(reader.string());
1941
+ break;
1942
+ case 3:
1943
+ message.disabled = reader.bool();
1944
+ break;
1945
+ case 4:
1946
+ message.quality = reader.int32() as any;
1947
+ break;
1948
+ case 5:
1949
+ message.width = reader.uint32();
1950
+ break;
1951
+ case 6:
1952
+ message.height = reader.uint32();
1953
+ break;
1954
+ default:
1955
+ reader.skipType(tag & 7);
1956
+ break;
1957
+ }
1958
+ }
1959
+ return message;
1960
+ },
1961
+
1962
+ fromJSON(object: any): UpdateTrackSettings {
1963
+ const message = { ...baseUpdateTrackSettings } as UpdateTrackSettings;
1964
+ message.trackSids = [];
1965
+ if (object.trackSids !== undefined && object.trackSids !== null) {
1966
+ for (const e of object.trackSids) {
1967
+ message.trackSids.push(String(e));
1968
+ }
1969
+ }
1970
+ if (object.disabled !== undefined && object.disabled !== null) {
1971
+ message.disabled = Boolean(object.disabled);
1972
+ } else {
1973
+ message.disabled = false;
1974
+ }
1975
+ if (object.quality !== undefined && object.quality !== null) {
1976
+ message.quality = videoQualityFromJSON(object.quality);
1977
+ } else {
1978
+ message.quality = 0;
1979
+ }
1980
+ if (object.width !== undefined && object.width !== null) {
1981
+ message.width = Number(object.width);
1982
+ } else {
1983
+ message.width = 0;
1984
+ }
1985
+ if (object.height !== undefined && object.height !== null) {
1986
+ message.height = Number(object.height);
1987
+ } else {
1988
+ message.height = 0;
1989
+ }
1990
+ return message;
1991
+ },
1992
+
1993
+ toJSON(message: UpdateTrackSettings): unknown {
1994
+ const obj: any = {};
1995
+ if (message.trackSids) {
1996
+ obj.trackSids = message.trackSids.map((e) => e);
1997
+ } else {
1998
+ obj.trackSids = [];
1999
+ }
2000
+ message.disabled !== undefined && (obj.disabled = message.disabled);
2001
+ message.quality !== undefined &&
2002
+ (obj.quality = videoQualityToJSON(message.quality));
2003
+ message.width !== undefined && (obj.width = message.width);
2004
+ message.height !== undefined && (obj.height = message.height);
2005
+ return obj;
2006
+ },
2007
+
2008
+ fromPartial(object: DeepPartial<UpdateTrackSettings>): UpdateTrackSettings {
2009
+ const message = { ...baseUpdateTrackSettings } as UpdateTrackSettings;
2010
+ message.trackSids = [];
2011
+ if (object.trackSids !== undefined && object.trackSids !== null) {
2012
+ for (const e of object.trackSids) {
2013
+ message.trackSids.push(e);
2014
+ }
2015
+ }
2016
+ message.disabled = object.disabled ?? false;
2017
+ message.quality = object.quality ?? 0;
2018
+ message.width = object.width ?? 0;
2019
+ message.height = object.height ?? 0;
2020
+ return message;
2021
+ },
2022
+ };
2023
+
2024
+ const baseLeaveRequest: object = { canReconnect: false };
2025
+
2026
+ export const LeaveRequest = {
2027
+ encode(
2028
+ message: LeaveRequest,
2029
+ writer: _m0.Writer = _m0.Writer.create()
2030
+ ): _m0.Writer {
2031
+ if (message.canReconnect === true) {
2032
+ writer.uint32(8).bool(message.canReconnect);
2033
+ }
2034
+ return writer;
2035
+ },
2036
+
2037
+ decode(input: _m0.Reader | Uint8Array, length?: number): LeaveRequest {
2038
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2039
+ let end = length === undefined ? reader.len : reader.pos + length;
2040
+ const message = { ...baseLeaveRequest } as LeaveRequest;
2041
+ while (reader.pos < end) {
2042
+ const tag = reader.uint32();
2043
+ switch (tag >>> 3) {
2044
+ case 1:
2045
+ message.canReconnect = reader.bool();
2046
+ break;
2047
+ default:
2048
+ reader.skipType(tag & 7);
2049
+ break;
2050
+ }
2051
+ }
2052
+ return message;
2053
+ },
2054
+
2055
+ fromJSON(object: any): LeaveRequest {
2056
+ const message = { ...baseLeaveRequest } as LeaveRequest;
2057
+ if (object.canReconnect !== undefined && object.canReconnect !== null) {
2058
+ message.canReconnect = Boolean(object.canReconnect);
2059
+ } else {
2060
+ message.canReconnect = false;
2061
+ }
2062
+ return message;
2063
+ },
2064
+
2065
+ toJSON(message: LeaveRequest): unknown {
2066
+ const obj: any = {};
2067
+ message.canReconnect !== undefined &&
2068
+ (obj.canReconnect = message.canReconnect);
2069
+ return obj;
2070
+ },
2071
+
2072
+ fromPartial(object: DeepPartial<LeaveRequest>): LeaveRequest {
2073
+ const message = { ...baseLeaveRequest } as LeaveRequest;
2074
+ message.canReconnect = object.canReconnect ?? false;
2075
+ return message;
2076
+ },
2077
+ };
2078
+
2079
+ const baseUpdateVideoLayers: object = { trackSid: "" };
2080
+
2081
+ export const UpdateVideoLayers = {
2082
+ encode(
2083
+ message: UpdateVideoLayers,
2084
+ writer: _m0.Writer = _m0.Writer.create()
2085
+ ): _m0.Writer {
2086
+ if (message.trackSid !== "") {
2087
+ writer.uint32(10).string(message.trackSid);
2088
+ }
2089
+ for (const v of message.layers) {
2090
+ VideoLayer.encode(v!, writer.uint32(18).fork()).ldelim();
2091
+ }
2092
+ return writer;
2093
+ },
2094
+
2095
+ decode(input: _m0.Reader | Uint8Array, length?: number): UpdateVideoLayers {
2096
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2097
+ let end = length === undefined ? reader.len : reader.pos + length;
2098
+ const message = { ...baseUpdateVideoLayers } as UpdateVideoLayers;
2099
+ message.layers = [];
2100
+ while (reader.pos < end) {
2101
+ const tag = reader.uint32();
2102
+ switch (tag >>> 3) {
2103
+ case 1:
2104
+ message.trackSid = reader.string();
2105
+ break;
2106
+ case 2:
2107
+ message.layers.push(VideoLayer.decode(reader, reader.uint32()));
2108
+ break;
2109
+ default:
2110
+ reader.skipType(tag & 7);
2111
+ break;
2112
+ }
2113
+ }
2114
+ return message;
2115
+ },
2116
+
2117
+ fromJSON(object: any): UpdateVideoLayers {
2118
+ const message = { ...baseUpdateVideoLayers } as UpdateVideoLayers;
2119
+ message.layers = [];
2120
+ if (object.trackSid !== undefined && object.trackSid !== null) {
2121
+ message.trackSid = String(object.trackSid);
2122
+ } else {
2123
+ message.trackSid = "";
2124
+ }
2125
+ if (object.layers !== undefined && object.layers !== null) {
2126
+ for (const e of object.layers) {
2127
+ message.layers.push(VideoLayer.fromJSON(e));
2128
+ }
2129
+ }
2130
+ return message;
2131
+ },
2132
+
2133
+ toJSON(message: UpdateVideoLayers): unknown {
2134
+ const obj: any = {};
2135
+ message.trackSid !== undefined && (obj.trackSid = message.trackSid);
2136
+ if (message.layers) {
2137
+ obj.layers = message.layers.map((e) =>
2138
+ e ? VideoLayer.toJSON(e) : undefined
2139
+ );
2140
+ } else {
2141
+ obj.layers = [];
2142
+ }
2143
+ return obj;
2144
+ },
2145
+
2146
+ fromPartial(object: DeepPartial<UpdateVideoLayers>): UpdateVideoLayers {
2147
+ const message = { ...baseUpdateVideoLayers } as UpdateVideoLayers;
2148
+ message.trackSid = object.trackSid ?? "";
2149
+ message.layers = [];
2150
+ if (object.layers !== undefined && object.layers !== null) {
2151
+ for (const e of object.layers) {
2152
+ message.layers.push(VideoLayer.fromPartial(e));
2153
+ }
2154
+ }
2155
+ return message;
2156
+ },
2157
+ };
2158
+
2159
+ const baseICEServer: object = { urls: "", username: "", credential: "" };
2160
+
2161
+ export const ICEServer = {
2162
+ encode(
2163
+ message: ICEServer,
2164
+ writer: _m0.Writer = _m0.Writer.create()
2165
+ ): _m0.Writer {
2166
+ for (const v of message.urls) {
2167
+ writer.uint32(10).string(v!);
2168
+ }
2169
+ if (message.username !== "") {
2170
+ writer.uint32(18).string(message.username);
2171
+ }
2172
+ if (message.credential !== "") {
2173
+ writer.uint32(26).string(message.credential);
2174
+ }
2175
+ return writer;
2176
+ },
2177
+
2178
+ decode(input: _m0.Reader | Uint8Array, length?: number): ICEServer {
2179
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2180
+ let end = length === undefined ? reader.len : reader.pos + length;
2181
+ const message = { ...baseICEServer } as ICEServer;
2182
+ message.urls = [];
2183
+ while (reader.pos < end) {
2184
+ const tag = reader.uint32();
2185
+ switch (tag >>> 3) {
2186
+ case 1:
2187
+ message.urls.push(reader.string());
2188
+ break;
2189
+ case 2:
2190
+ message.username = reader.string();
2191
+ break;
2192
+ case 3:
2193
+ message.credential = reader.string();
2194
+ break;
2195
+ default:
2196
+ reader.skipType(tag & 7);
2197
+ break;
2198
+ }
2199
+ }
2200
+ return message;
2201
+ },
2202
+
2203
+ fromJSON(object: any): ICEServer {
2204
+ const message = { ...baseICEServer } as ICEServer;
2205
+ message.urls = [];
2206
+ if (object.urls !== undefined && object.urls !== null) {
2207
+ for (const e of object.urls) {
2208
+ message.urls.push(String(e));
2209
+ }
2210
+ }
2211
+ if (object.username !== undefined && object.username !== null) {
2212
+ message.username = String(object.username);
2213
+ } else {
2214
+ message.username = "";
2215
+ }
2216
+ if (object.credential !== undefined && object.credential !== null) {
2217
+ message.credential = String(object.credential);
2218
+ } else {
2219
+ message.credential = "";
2220
+ }
2221
+ return message;
2222
+ },
2223
+
2224
+ toJSON(message: ICEServer): unknown {
2225
+ const obj: any = {};
2226
+ if (message.urls) {
2227
+ obj.urls = message.urls.map((e) => e);
2228
+ } else {
2229
+ obj.urls = [];
2230
+ }
2231
+ message.username !== undefined && (obj.username = message.username);
2232
+ message.credential !== undefined && (obj.credential = message.credential);
2233
+ return obj;
2234
+ },
2235
+
2236
+ fromPartial(object: DeepPartial<ICEServer>): ICEServer {
2237
+ const message = { ...baseICEServer } as ICEServer;
2238
+ message.urls = [];
2239
+ if (object.urls !== undefined && object.urls !== null) {
2240
+ for (const e of object.urls) {
2241
+ message.urls.push(e);
2242
+ }
2243
+ }
2244
+ message.username = object.username ?? "";
2245
+ message.credential = object.credential ?? "";
2246
+ return message;
2247
+ },
2248
+ };
2249
+
2250
+ const baseSpeakersChanged: object = {};
2251
+
2252
+ export const SpeakersChanged = {
2253
+ encode(
2254
+ message: SpeakersChanged,
2255
+ writer: _m0.Writer = _m0.Writer.create()
2256
+ ): _m0.Writer {
2257
+ for (const v of message.speakers) {
2258
+ SpeakerInfo.encode(v!, writer.uint32(10).fork()).ldelim();
2259
+ }
2260
+ return writer;
2261
+ },
2262
+
2263
+ decode(input: _m0.Reader | Uint8Array, length?: number): SpeakersChanged {
2264
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2265
+ let end = length === undefined ? reader.len : reader.pos + length;
2266
+ const message = { ...baseSpeakersChanged } as SpeakersChanged;
2267
+ message.speakers = [];
2268
+ while (reader.pos < end) {
2269
+ const tag = reader.uint32();
2270
+ switch (tag >>> 3) {
2271
+ case 1:
2272
+ message.speakers.push(SpeakerInfo.decode(reader, reader.uint32()));
2273
+ break;
2274
+ default:
2275
+ reader.skipType(tag & 7);
2276
+ break;
2277
+ }
2278
+ }
2279
+ return message;
2280
+ },
2281
+
2282
+ fromJSON(object: any): SpeakersChanged {
2283
+ const message = { ...baseSpeakersChanged } as SpeakersChanged;
2284
+ message.speakers = [];
2285
+ if (object.speakers !== undefined && object.speakers !== null) {
2286
+ for (const e of object.speakers) {
2287
+ message.speakers.push(SpeakerInfo.fromJSON(e));
2288
+ }
2289
+ }
2290
+ return message;
2291
+ },
2292
+
2293
+ toJSON(message: SpeakersChanged): unknown {
2294
+ const obj: any = {};
2295
+ if (message.speakers) {
2296
+ obj.speakers = message.speakers.map((e) =>
2297
+ e ? SpeakerInfo.toJSON(e) : undefined
2298
+ );
2299
+ } else {
2300
+ obj.speakers = [];
2301
+ }
2302
+ return obj;
2303
+ },
2304
+
2305
+ fromPartial(object: DeepPartial<SpeakersChanged>): SpeakersChanged {
2306
+ const message = { ...baseSpeakersChanged } as SpeakersChanged;
2307
+ message.speakers = [];
2308
+ if (object.speakers !== undefined && object.speakers !== null) {
2309
+ for (const e of object.speakers) {
2310
+ message.speakers.push(SpeakerInfo.fromPartial(e));
2311
+ }
2312
+ }
2313
+ return message;
2314
+ },
2315
+ };
2316
+
2317
+ const baseRoomUpdate: object = {};
2318
+
2319
+ export const RoomUpdate = {
2320
+ encode(
2321
+ message: RoomUpdate,
2322
+ writer: _m0.Writer = _m0.Writer.create()
2323
+ ): _m0.Writer {
2324
+ if (message.room !== undefined) {
2325
+ Room.encode(message.room, writer.uint32(10).fork()).ldelim();
2326
+ }
2327
+ return writer;
2328
+ },
2329
+
2330
+ decode(input: _m0.Reader | Uint8Array, length?: number): RoomUpdate {
2331
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2332
+ let end = length === undefined ? reader.len : reader.pos + length;
2333
+ const message = { ...baseRoomUpdate } as RoomUpdate;
2334
+ while (reader.pos < end) {
2335
+ const tag = reader.uint32();
2336
+ switch (tag >>> 3) {
2337
+ case 1:
2338
+ message.room = Room.decode(reader, reader.uint32());
2339
+ break;
2340
+ default:
2341
+ reader.skipType(tag & 7);
2342
+ break;
2343
+ }
2344
+ }
2345
+ return message;
2346
+ },
2347
+
2348
+ fromJSON(object: any): RoomUpdate {
2349
+ const message = { ...baseRoomUpdate } as RoomUpdate;
2350
+ if (object.room !== undefined && object.room !== null) {
2351
+ message.room = Room.fromJSON(object.room);
2352
+ } else {
2353
+ message.room = undefined;
2354
+ }
2355
+ return message;
2356
+ },
2357
+
2358
+ toJSON(message: RoomUpdate): unknown {
2359
+ const obj: any = {};
2360
+ message.room !== undefined &&
2361
+ (obj.room = message.room ? Room.toJSON(message.room) : undefined);
2362
+ return obj;
2363
+ },
2364
+
2365
+ fromPartial(object: DeepPartial<RoomUpdate>): RoomUpdate {
2366
+ const message = { ...baseRoomUpdate } as RoomUpdate;
2367
+ if (object.room !== undefined && object.room !== null) {
2368
+ message.room = Room.fromPartial(object.room);
2369
+ } else {
2370
+ message.room = undefined;
2371
+ }
2372
+ return message;
2373
+ },
2374
+ };
2375
+
2376
+ const baseConnectionQualityInfo: object = {
2377
+ participantSid: "",
2378
+ quality: 0,
2379
+ score: 0,
2380
+ };
2381
+
2382
+ export const ConnectionQualityInfo = {
2383
+ encode(
2384
+ message: ConnectionQualityInfo,
2385
+ writer: _m0.Writer = _m0.Writer.create()
2386
+ ): _m0.Writer {
2387
+ if (message.participantSid !== "") {
2388
+ writer.uint32(10).string(message.participantSid);
2389
+ }
2390
+ if (message.quality !== 0) {
2391
+ writer.uint32(16).int32(message.quality);
2392
+ }
2393
+ if (message.score !== 0) {
2394
+ writer.uint32(29).float(message.score);
2395
+ }
2396
+ return writer;
2397
+ },
2398
+
2399
+ decode(
2400
+ input: _m0.Reader | Uint8Array,
2401
+ length?: number
2402
+ ): ConnectionQualityInfo {
2403
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2404
+ let end = length === undefined ? reader.len : reader.pos + length;
2405
+ const message = { ...baseConnectionQualityInfo } as ConnectionQualityInfo;
2406
+ while (reader.pos < end) {
2407
+ const tag = reader.uint32();
2408
+ switch (tag >>> 3) {
2409
+ case 1:
2410
+ message.participantSid = reader.string();
2411
+ break;
2412
+ case 2:
2413
+ message.quality = reader.int32() as any;
2414
+ break;
2415
+ case 3:
2416
+ message.score = reader.float();
2417
+ break;
2418
+ default:
2419
+ reader.skipType(tag & 7);
2420
+ break;
2421
+ }
2422
+ }
2423
+ return message;
2424
+ },
2425
+
2426
+ fromJSON(object: any): ConnectionQualityInfo {
2427
+ const message = { ...baseConnectionQualityInfo } as ConnectionQualityInfo;
2428
+ if (object.participantSid !== undefined && object.participantSid !== null) {
2429
+ message.participantSid = String(object.participantSid);
2430
+ } else {
2431
+ message.participantSid = "";
2432
+ }
2433
+ if (object.quality !== undefined && object.quality !== null) {
2434
+ message.quality = connectionQualityFromJSON(object.quality);
2435
+ } else {
2436
+ message.quality = 0;
2437
+ }
2438
+ if (object.score !== undefined && object.score !== null) {
2439
+ message.score = Number(object.score);
2440
+ } else {
2441
+ message.score = 0;
2442
+ }
2443
+ return message;
2444
+ },
2445
+
2446
+ toJSON(message: ConnectionQualityInfo): unknown {
2447
+ const obj: any = {};
2448
+ message.participantSid !== undefined &&
2449
+ (obj.participantSid = message.participantSid);
2450
+ message.quality !== undefined &&
2451
+ (obj.quality = connectionQualityToJSON(message.quality));
2452
+ message.score !== undefined && (obj.score = message.score);
2453
+ return obj;
2454
+ },
2455
+
2456
+ fromPartial(
2457
+ object: DeepPartial<ConnectionQualityInfo>
2458
+ ): ConnectionQualityInfo {
2459
+ const message = { ...baseConnectionQualityInfo } as ConnectionQualityInfo;
2460
+ message.participantSid = object.participantSid ?? "";
2461
+ message.quality = object.quality ?? 0;
2462
+ message.score = object.score ?? 0;
2463
+ return message;
2464
+ },
2465
+ };
2466
+
2467
+ const baseConnectionQualityUpdate: object = {};
2468
+
2469
+ export const ConnectionQualityUpdate = {
2470
+ encode(
2471
+ message: ConnectionQualityUpdate,
2472
+ writer: _m0.Writer = _m0.Writer.create()
2473
+ ): _m0.Writer {
2474
+ for (const v of message.updates) {
2475
+ ConnectionQualityInfo.encode(v!, writer.uint32(10).fork()).ldelim();
2476
+ }
2477
+ return writer;
2478
+ },
2479
+
2480
+ decode(
2481
+ input: _m0.Reader | Uint8Array,
2482
+ length?: number
2483
+ ): ConnectionQualityUpdate {
2484
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2485
+ let end = length === undefined ? reader.len : reader.pos + length;
2486
+ const message = {
2487
+ ...baseConnectionQualityUpdate,
2488
+ } as ConnectionQualityUpdate;
2489
+ message.updates = [];
2490
+ while (reader.pos < end) {
2491
+ const tag = reader.uint32();
2492
+ switch (tag >>> 3) {
2493
+ case 1:
2494
+ message.updates.push(
2495
+ ConnectionQualityInfo.decode(reader, reader.uint32())
2496
+ );
2497
+ break;
2498
+ default:
2499
+ reader.skipType(tag & 7);
2500
+ break;
2501
+ }
2502
+ }
2503
+ return message;
2504
+ },
2505
+
2506
+ fromJSON(object: any): ConnectionQualityUpdate {
2507
+ const message = {
2508
+ ...baseConnectionQualityUpdate,
2509
+ } as ConnectionQualityUpdate;
2510
+ message.updates = [];
2511
+ if (object.updates !== undefined && object.updates !== null) {
2512
+ for (const e of object.updates) {
2513
+ message.updates.push(ConnectionQualityInfo.fromJSON(e));
2514
+ }
2515
+ }
2516
+ return message;
2517
+ },
2518
+
2519
+ toJSON(message: ConnectionQualityUpdate): unknown {
2520
+ const obj: any = {};
2521
+ if (message.updates) {
2522
+ obj.updates = message.updates.map((e) =>
2523
+ e ? ConnectionQualityInfo.toJSON(e) : undefined
2524
+ );
2525
+ } else {
2526
+ obj.updates = [];
2527
+ }
2528
+ return obj;
2529
+ },
2530
+
2531
+ fromPartial(
2532
+ object: DeepPartial<ConnectionQualityUpdate>
2533
+ ): ConnectionQualityUpdate {
2534
+ const message = {
2535
+ ...baseConnectionQualityUpdate,
2536
+ } as ConnectionQualityUpdate;
2537
+ message.updates = [];
2538
+ if (object.updates !== undefined && object.updates !== null) {
2539
+ for (const e of object.updates) {
2540
+ message.updates.push(ConnectionQualityInfo.fromPartial(e));
2541
+ }
2542
+ }
2543
+ return message;
2544
+ },
2545
+ };
2546
+
2547
+ const baseStreamStateInfo: object = {
2548
+ participantSid: "",
2549
+ trackSid: "",
2550
+ state: 0,
2551
+ };
2552
+
2553
+ export const StreamStateInfo = {
2554
+ encode(
2555
+ message: StreamStateInfo,
2556
+ writer: _m0.Writer = _m0.Writer.create()
2557
+ ): _m0.Writer {
2558
+ if (message.participantSid !== "") {
2559
+ writer.uint32(10).string(message.participantSid);
2560
+ }
2561
+ if (message.trackSid !== "") {
2562
+ writer.uint32(18).string(message.trackSid);
2563
+ }
2564
+ if (message.state !== 0) {
2565
+ writer.uint32(24).int32(message.state);
2566
+ }
2567
+ return writer;
2568
+ },
2569
+
2570
+ decode(input: _m0.Reader | Uint8Array, length?: number): StreamStateInfo {
2571
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2572
+ let end = length === undefined ? reader.len : reader.pos + length;
2573
+ const message = { ...baseStreamStateInfo } as StreamStateInfo;
2574
+ while (reader.pos < end) {
2575
+ const tag = reader.uint32();
2576
+ switch (tag >>> 3) {
2577
+ case 1:
2578
+ message.participantSid = reader.string();
2579
+ break;
2580
+ case 2:
2581
+ message.trackSid = reader.string();
2582
+ break;
2583
+ case 3:
2584
+ message.state = reader.int32() as any;
2585
+ break;
2586
+ default:
2587
+ reader.skipType(tag & 7);
2588
+ break;
2589
+ }
2590
+ }
2591
+ return message;
2592
+ },
2593
+
2594
+ fromJSON(object: any): StreamStateInfo {
2595
+ const message = { ...baseStreamStateInfo } as StreamStateInfo;
2596
+ if (object.participantSid !== undefined && object.participantSid !== null) {
2597
+ message.participantSid = String(object.participantSid);
2598
+ } else {
2599
+ message.participantSid = "";
2600
+ }
2601
+ if (object.trackSid !== undefined && object.trackSid !== null) {
2602
+ message.trackSid = String(object.trackSid);
2603
+ } else {
2604
+ message.trackSid = "";
2605
+ }
2606
+ if (object.state !== undefined && object.state !== null) {
2607
+ message.state = streamStateFromJSON(object.state);
2608
+ } else {
2609
+ message.state = 0;
2610
+ }
2611
+ return message;
2612
+ },
2613
+
2614
+ toJSON(message: StreamStateInfo): unknown {
2615
+ const obj: any = {};
2616
+ message.participantSid !== undefined &&
2617
+ (obj.participantSid = message.participantSid);
2618
+ message.trackSid !== undefined && (obj.trackSid = message.trackSid);
2619
+ message.state !== undefined &&
2620
+ (obj.state = streamStateToJSON(message.state));
2621
+ return obj;
2622
+ },
2623
+
2624
+ fromPartial(object: DeepPartial<StreamStateInfo>): StreamStateInfo {
2625
+ const message = { ...baseStreamStateInfo } as StreamStateInfo;
2626
+ message.participantSid = object.participantSid ?? "";
2627
+ message.trackSid = object.trackSid ?? "";
2628
+ message.state = object.state ?? 0;
2629
+ return message;
2630
+ },
2631
+ };
2632
+
2633
+ const baseStreamStateUpdate: object = {};
2634
+
2635
+ export const StreamStateUpdate = {
2636
+ encode(
2637
+ message: StreamStateUpdate,
2638
+ writer: _m0.Writer = _m0.Writer.create()
2639
+ ): _m0.Writer {
2640
+ for (const v of message.streamStates) {
2641
+ StreamStateInfo.encode(v!, writer.uint32(10).fork()).ldelim();
2642
+ }
2643
+ return writer;
2644
+ },
2645
+
2646
+ decode(input: _m0.Reader | Uint8Array, length?: number): StreamStateUpdate {
2647
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2648
+ let end = length === undefined ? reader.len : reader.pos + length;
2649
+ const message = { ...baseStreamStateUpdate } as StreamStateUpdate;
2650
+ message.streamStates = [];
2651
+ while (reader.pos < end) {
2652
+ const tag = reader.uint32();
2653
+ switch (tag >>> 3) {
2654
+ case 1:
2655
+ message.streamStates.push(
2656
+ StreamStateInfo.decode(reader, reader.uint32())
2657
+ );
2658
+ break;
2659
+ default:
2660
+ reader.skipType(tag & 7);
2661
+ break;
2662
+ }
2663
+ }
2664
+ return message;
2665
+ },
2666
+
2667
+ fromJSON(object: any): StreamStateUpdate {
2668
+ const message = { ...baseStreamStateUpdate } as StreamStateUpdate;
2669
+ message.streamStates = [];
2670
+ if (object.streamStates !== undefined && object.streamStates !== null) {
2671
+ for (const e of object.streamStates) {
2672
+ message.streamStates.push(StreamStateInfo.fromJSON(e));
2673
+ }
2674
+ }
2675
+ return message;
2676
+ },
2677
+
2678
+ toJSON(message: StreamStateUpdate): unknown {
2679
+ const obj: any = {};
2680
+ if (message.streamStates) {
2681
+ obj.streamStates = message.streamStates.map((e) =>
2682
+ e ? StreamStateInfo.toJSON(e) : undefined
2683
+ );
2684
+ } else {
2685
+ obj.streamStates = [];
2686
+ }
2687
+ return obj;
2688
+ },
2689
+
2690
+ fromPartial(object: DeepPartial<StreamStateUpdate>): StreamStateUpdate {
2691
+ const message = { ...baseStreamStateUpdate } as StreamStateUpdate;
2692
+ message.streamStates = [];
2693
+ if (object.streamStates !== undefined && object.streamStates !== null) {
2694
+ for (const e of object.streamStates) {
2695
+ message.streamStates.push(StreamStateInfo.fromPartial(e));
2696
+ }
2697
+ }
2698
+ return message;
2699
+ },
2700
+ };
2701
+
2702
+ const baseSubscribedQuality: object = { quality: 0, enabled: false };
2703
+
2704
+ export const SubscribedQuality = {
2705
+ encode(
2706
+ message: SubscribedQuality,
2707
+ writer: _m0.Writer = _m0.Writer.create()
2708
+ ): _m0.Writer {
2709
+ if (message.quality !== 0) {
2710
+ writer.uint32(8).int32(message.quality);
2711
+ }
2712
+ if (message.enabled === true) {
2713
+ writer.uint32(16).bool(message.enabled);
2714
+ }
2715
+ return writer;
2716
+ },
2717
+
2718
+ decode(input: _m0.Reader | Uint8Array, length?: number): SubscribedQuality {
2719
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2720
+ let end = length === undefined ? reader.len : reader.pos + length;
2721
+ const message = { ...baseSubscribedQuality } as SubscribedQuality;
2722
+ while (reader.pos < end) {
2723
+ const tag = reader.uint32();
2724
+ switch (tag >>> 3) {
2725
+ case 1:
2726
+ message.quality = reader.int32() as any;
2727
+ break;
2728
+ case 2:
2729
+ message.enabled = reader.bool();
2730
+ break;
2731
+ default:
2732
+ reader.skipType(tag & 7);
2733
+ break;
2734
+ }
2735
+ }
2736
+ return message;
2737
+ },
2738
+
2739
+ fromJSON(object: any): SubscribedQuality {
2740
+ const message = { ...baseSubscribedQuality } as SubscribedQuality;
2741
+ if (object.quality !== undefined && object.quality !== null) {
2742
+ message.quality = videoQualityFromJSON(object.quality);
2743
+ } else {
2744
+ message.quality = 0;
2745
+ }
2746
+ if (object.enabled !== undefined && object.enabled !== null) {
2747
+ message.enabled = Boolean(object.enabled);
2748
+ } else {
2749
+ message.enabled = false;
2750
+ }
2751
+ return message;
2752
+ },
2753
+
2754
+ toJSON(message: SubscribedQuality): unknown {
2755
+ const obj: any = {};
2756
+ message.quality !== undefined &&
2757
+ (obj.quality = videoQualityToJSON(message.quality));
2758
+ message.enabled !== undefined && (obj.enabled = message.enabled);
2759
+ return obj;
2760
+ },
2761
+
2762
+ fromPartial(object: DeepPartial<SubscribedQuality>): SubscribedQuality {
2763
+ const message = { ...baseSubscribedQuality } as SubscribedQuality;
2764
+ message.quality = object.quality ?? 0;
2765
+ message.enabled = object.enabled ?? false;
2766
+ return message;
2767
+ },
2768
+ };
2769
+
2770
+ const baseSubscribedQualityUpdate: object = { trackSid: "" };
2771
+
2772
+ export const SubscribedQualityUpdate = {
2773
+ encode(
2774
+ message: SubscribedQualityUpdate,
2775
+ writer: _m0.Writer = _m0.Writer.create()
2776
+ ): _m0.Writer {
2777
+ if (message.trackSid !== "") {
2778
+ writer.uint32(10).string(message.trackSid);
2779
+ }
2780
+ for (const v of message.subscribedQualities) {
2781
+ SubscribedQuality.encode(v!, writer.uint32(18).fork()).ldelim();
2782
+ }
2783
+ return writer;
2784
+ },
2785
+
2786
+ decode(
2787
+ input: _m0.Reader | Uint8Array,
2788
+ length?: number
2789
+ ): SubscribedQualityUpdate {
2790
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2791
+ let end = length === undefined ? reader.len : reader.pos + length;
2792
+ const message = {
2793
+ ...baseSubscribedQualityUpdate,
2794
+ } as SubscribedQualityUpdate;
2795
+ message.subscribedQualities = [];
2796
+ while (reader.pos < end) {
2797
+ const tag = reader.uint32();
2798
+ switch (tag >>> 3) {
2799
+ case 1:
2800
+ message.trackSid = reader.string();
2801
+ break;
2802
+ case 2:
2803
+ message.subscribedQualities.push(
2804
+ SubscribedQuality.decode(reader, reader.uint32())
2805
+ );
2806
+ break;
2807
+ default:
2808
+ reader.skipType(tag & 7);
2809
+ break;
2810
+ }
2811
+ }
2812
+ return message;
2813
+ },
2814
+
2815
+ fromJSON(object: any): SubscribedQualityUpdate {
2816
+ const message = {
2817
+ ...baseSubscribedQualityUpdate,
2818
+ } as SubscribedQualityUpdate;
2819
+ message.subscribedQualities = [];
2820
+ if (object.trackSid !== undefined && object.trackSid !== null) {
2821
+ message.trackSid = String(object.trackSid);
2822
+ } else {
2823
+ message.trackSid = "";
2824
+ }
2825
+ if (
2826
+ object.subscribedQualities !== undefined &&
2827
+ object.subscribedQualities !== null
2828
+ ) {
2829
+ for (const e of object.subscribedQualities) {
2830
+ message.subscribedQualities.push(SubscribedQuality.fromJSON(e));
2831
+ }
2832
+ }
2833
+ return message;
2834
+ },
2835
+
2836
+ toJSON(message: SubscribedQualityUpdate): unknown {
2837
+ const obj: any = {};
2838
+ message.trackSid !== undefined && (obj.trackSid = message.trackSid);
2839
+ if (message.subscribedQualities) {
2840
+ obj.subscribedQualities = message.subscribedQualities.map((e) =>
2841
+ e ? SubscribedQuality.toJSON(e) : undefined
2842
+ );
2843
+ } else {
2844
+ obj.subscribedQualities = [];
2845
+ }
2846
+ return obj;
2847
+ },
2848
+
2849
+ fromPartial(
2850
+ object: DeepPartial<SubscribedQualityUpdate>
2851
+ ): SubscribedQualityUpdate {
2852
+ const message = {
2853
+ ...baseSubscribedQualityUpdate,
2854
+ } as SubscribedQualityUpdate;
2855
+ message.trackSid = object.trackSid ?? "";
2856
+ message.subscribedQualities = [];
2857
+ if (
2858
+ object.subscribedQualities !== undefined &&
2859
+ object.subscribedQualities !== null
2860
+ ) {
2861
+ for (const e of object.subscribedQualities) {
2862
+ message.subscribedQualities.push(SubscribedQuality.fromPartial(e));
2863
+ }
2864
+ }
2865
+ return message;
2866
+ },
2867
+ };
2868
+
2869
+ const baseTrackPermission: object = {
2870
+ participantSid: "",
2871
+ allTracks: false,
2872
+ trackSids: "",
2873
+ };
2874
+
2875
+ export const TrackPermission = {
2876
+ encode(
2877
+ message: TrackPermission,
2878
+ writer: _m0.Writer = _m0.Writer.create()
2879
+ ): _m0.Writer {
2880
+ if (message.participantSid !== "") {
2881
+ writer.uint32(10).string(message.participantSid);
2882
+ }
2883
+ if (message.allTracks === true) {
2884
+ writer.uint32(16).bool(message.allTracks);
2885
+ }
2886
+ for (const v of message.trackSids) {
2887
+ writer.uint32(26).string(v!);
2888
+ }
2889
+ return writer;
2890
+ },
2891
+
2892
+ decode(input: _m0.Reader | Uint8Array, length?: number): TrackPermission {
2893
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2894
+ let end = length === undefined ? reader.len : reader.pos + length;
2895
+ const message = { ...baseTrackPermission } as TrackPermission;
2896
+ message.trackSids = [];
2897
+ while (reader.pos < end) {
2898
+ const tag = reader.uint32();
2899
+ switch (tag >>> 3) {
2900
+ case 1:
2901
+ message.participantSid = reader.string();
2902
+ break;
2903
+ case 2:
2904
+ message.allTracks = reader.bool();
2905
+ break;
2906
+ case 3:
2907
+ message.trackSids.push(reader.string());
2908
+ break;
2909
+ default:
2910
+ reader.skipType(tag & 7);
2911
+ break;
2912
+ }
2913
+ }
2914
+ return message;
2915
+ },
2916
+
2917
+ fromJSON(object: any): TrackPermission {
2918
+ const message = { ...baseTrackPermission } as TrackPermission;
2919
+ message.trackSids = [];
2920
+ if (object.participantSid !== undefined && object.participantSid !== null) {
2921
+ message.participantSid = String(object.participantSid);
2922
+ } else {
2923
+ message.participantSid = "";
2924
+ }
2925
+ if (object.allTracks !== undefined && object.allTracks !== null) {
2926
+ message.allTracks = Boolean(object.allTracks);
2927
+ } else {
2928
+ message.allTracks = false;
2929
+ }
2930
+ if (object.trackSids !== undefined && object.trackSids !== null) {
2931
+ for (const e of object.trackSids) {
2932
+ message.trackSids.push(String(e));
2933
+ }
2934
+ }
2935
+ return message;
2936
+ },
2937
+
2938
+ toJSON(message: TrackPermission): unknown {
2939
+ const obj: any = {};
2940
+ message.participantSid !== undefined &&
2941
+ (obj.participantSid = message.participantSid);
2942
+ message.allTracks !== undefined && (obj.allTracks = message.allTracks);
2943
+ if (message.trackSids) {
2944
+ obj.trackSids = message.trackSids.map((e) => e);
2945
+ } else {
2946
+ obj.trackSids = [];
2947
+ }
2948
+ return obj;
2949
+ },
2950
+
2951
+ fromPartial(object: DeepPartial<TrackPermission>): TrackPermission {
2952
+ const message = { ...baseTrackPermission } as TrackPermission;
2953
+ message.participantSid = object.participantSid ?? "";
2954
+ message.allTracks = object.allTracks ?? false;
2955
+ message.trackSids = [];
2956
+ if (object.trackSids !== undefined && object.trackSids !== null) {
2957
+ for (const e of object.trackSids) {
2958
+ message.trackSids.push(e);
2959
+ }
2960
+ }
2961
+ return message;
2962
+ },
2963
+ };
2964
+
2965
+ const baseUpdateSubscriptionPermissions: object = { allParticipants: false };
2966
+
2967
+ export const UpdateSubscriptionPermissions = {
2968
+ encode(
2969
+ message: UpdateSubscriptionPermissions,
2970
+ writer: _m0.Writer = _m0.Writer.create()
2971
+ ): _m0.Writer {
2972
+ if (message.allParticipants === true) {
2973
+ writer.uint32(8).bool(message.allParticipants);
2974
+ }
2975
+ for (const v of message.trackPermissions) {
2976
+ TrackPermission.encode(v!, writer.uint32(18).fork()).ldelim();
2977
+ }
2978
+ return writer;
2979
+ },
2980
+
2981
+ decode(
2982
+ input: _m0.Reader | Uint8Array,
2983
+ length?: number
2984
+ ): UpdateSubscriptionPermissions {
2985
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2986
+ let end = length === undefined ? reader.len : reader.pos + length;
2987
+ const message = {
2988
+ ...baseUpdateSubscriptionPermissions,
2989
+ } as UpdateSubscriptionPermissions;
2990
+ message.trackPermissions = [];
2991
+ while (reader.pos < end) {
2992
+ const tag = reader.uint32();
2993
+ switch (tag >>> 3) {
2994
+ case 1:
2995
+ message.allParticipants = reader.bool();
2996
+ break;
2997
+ case 2:
2998
+ message.trackPermissions.push(
2999
+ TrackPermission.decode(reader, reader.uint32())
3000
+ );
3001
+ break;
3002
+ default:
3003
+ reader.skipType(tag & 7);
3004
+ break;
3005
+ }
3006
+ }
3007
+ return message;
3008
+ },
3009
+
3010
+ fromJSON(object: any): UpdateSubscriptionPermissions {
3011
+ const message = {
3012
+ ...baseUpdateSubscriptionPermissions,
3013
+ } as UpdateSubscriptionPermissions;
3014
+ message.trackPermissions = [];
3015
+ if (
3016
+ object.allParticipants !== undefined &&
3017
+ object.allParticipants !== null
3018
+ ) {
3019
+ message.allParticipants = Boolean(object.allParticipants);
3020
+ } else {
3021
+ message.allParticipants = false;
3022
+ }
3023
+ if (
3024
+ object.trackPermissions !== undefined &&
3025
+ object.trackPermissions !== null
3026
+ ) {
3027
+ for (const e of object.trackPermissions) {
3028
+ message.trackPermissions.push(TrackPermission.fromJSON(e));
3029
+ }
3030
+ }
3031
+ return message;
3032
+ },
3033
+
3034
+ toJSON(message: UpdateSubscriptionPermissions): unknown {
3035
+ const obj: any = {};
3036
+ message.allParticipants !== undefined &&
3037
+ (obj.allParticipants = message.allParticipants);
3038
+ if (message.trackPermissions) {
3039
+ obj.trackPermissions = message.trackPermissions.map((e) =>
3040
+ e ? TrackPermission.toJSON(e) : undefined
3041
+ );
3042
+ } else {
3043
+ obj.trackPermissions = [];
3044
+ }
3045
+ return obj;
3046
+ },
3047
+
3048
+ fromPartial(
3049
+ object: DeepPartial<UpdateSubscriptionPermissions>
3050
+ ): UpdateSubscriptionPermissions {
3051
+ const message = {
3052
+ ...baseUpdateSubscriptionPermissions,
3053
+ } as UpdateSubscriptionPermissions;
3054
+ message.allParticipants = object.allParticipants ?? false;
3055
+ message.trackPermissions = [];
3056
+ if (
3057
+ object.trackPermissions !== undefined &&
3058
+ object.trackPermissions !== null
3059
+ ) {
3060
+ for (const e of object.trackPermissions) {
3061
+ message.trackPermissions.push(TrackPermission.fromPartial(e));
3062
+ }
3063
+ }
3064
+ return message;
3065
+ },
3066
+ };
3067
+
3068
+ const baseSubscriptionPermissionUpdate: object = {
3069
+ participantSid: "",
3070
+ trackSid: "",
3071
+ allowed: false,
3072
+ };
3073
+
3074
+ export const SubscriptionPermissionUpdate = {
3075
+ encode(
3076
+ message: SubscriptionPermissionUpdate,
3077
+ writer: _m0.Writer = _m0.Writer.create()
3078
+ ): _m0.Writer {
3079
+ if (message.participantSid !== "") {
3080
+ writer.uint32(10).string(message.participantSid);
3081
+ }
3082
+ if (message.trackSid !== "") {
3083
+ writer.uint32(18).string(message.trackSid);
3084
+ }
3085
+ if (message.allowed === true) {
3086
+ writer.uint32(24).bool(message.allowed);
3087
+ }
3088
+ return writer;
3089
+ },
3090
+
3091
+ decode(
3092
+ input: _m0.Reader | Uint8Array,
3093
+ length?: number
3094
+ ): SubscriptionPermissionUpdate {
3095
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
3096
+ let end = length === undefined ? reader.len : reader.pos + length;
3097
+ const message = {
3098
+ ...baseSubscriptionPermissionUpdate,
3099
+ } as SubscriptionPermissionUpdate;
3100
+ while (reader.pos < end) {
3101
+ const tag = reader.uint32();
3102
+ switch (tag >>> 3) {
3103
+ case 1:
3104
+ message.participantSid = reader.string();
3105
+ break;
3106
+ case 2:
3107
+ message.trackSid = reader.string();
3108
+ break;
3109
+ case 3:
3110
+ message.allowed = reader.bool();
3111
+ break;
3112
+ default:
3113
+ reader.skipType(tag & 7);
3114
+ break;
3115
+ }
3116
+ }
3117
+ return message;
3118
+ },
3119
+
3120
+ fromJSON(object: any): SubscriptionPermissionUpdate {
3121
+ const message = {
3122
+ ...baseSubscriptionPermissionUpdate,
3123
+ } as SubscriptionPermissionUpdate;
3124
+ if (object.participantSid !== undefined && object.participantSid !== null) {
3125
+ message.participantSid = String(object.participantSid);
3126
+ } else {
3127
+ message.participantSid = "";
3128
+ }
3129
+ if (object.trackSid !== undefined && object.trackSid !== null) {
3130
+ message.trackSid = String(object.trackSid);
3131
+ } else {
3132
+ message.trackSid = "";
3133
+ }
3134
+ if (object.allowed !== undefined && object.allowed !== null) {
3135
+ message.allowed = Boolean(object.allowed);
3136
+ } else {
3137
+ message.allowed = false;
3138
+ }
3139
+ return message;
3140
+ },
3141
+
3142
+ toJSON(message: SubscriptionPermissionUpdate): unknown {
3143
+ const obj: any = {};
3144
+ message.participantSid !== undefined &&
3145
+ (obj.participantSid = message.participantSid);
3146
+ message.trackSid !== undefined && (obj.trackSid = message.trackSid);
3147
+ message.allowed !== undefined && (obj.allowed = message.allowed);
3148
+ return obj;
3149
+ },
3150
+
3151
+ fromPartial(
3152
+ object: DeepPartial<SubscriptionPermissionUpdate>
3153
+ ): SubscriptionPermissionUpdate {
3154
+ const message = {
3155
+ ...baseSubscriptionPermissionUpdate,
3156
+ } as SubscriptionPermissionUpdate;
3157
+ message.participantSid = object.participantSid ?? "";
3158
+ message.trackSid = object.trackSid ?? "";
3159
+ message.allowed = object.allowed ?? false;
3160
+ return message;
3161
+ },
3162
+ };
3163
+
3164
+ const baseSyncState: object = {};
3165
+
3166
+ export const SyncState = {
3167
+ encode(
3168
+ message: SyncState,
3169
+ writer: _m0.Writer = _m0.Writer.create()
3170
+ ): _m0.Writer {
3171
+ if (message.answer !== undefined) {
3172
+ SessionDescription.encode(
3173
+ message.answer,
3174
+ writer.uint32(10).fork()
3175
+ ).ldelim();
3176
+ }
3177
+ if (message.subscription !== undefined) {
3178
+ UpdateSubscription.encode(
3179
+ message.subscription,
3180
+ writer.uint32(18).fork()
3181
+ ).ldelim();
3182
+ }
3183
+ for (const v of message.publishTracks) {
3184
+ TrackPublishedResponse.encode(v!, writer.uint32(26).fork()).ldelim();
3185
+ }
3186
+ return writer;
3187
+ },
3188
+
3189
+ decode(input: _m0.Reader | Uint8Array, length?: number): SyncState {
3190
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
3191
+ let end = length === undefined ? reader.len : reader.pos + length;
3192
+ const message = { ...baseSyncState } as SyncState;
3193
+ message.publishTracks = [];
3194
+ while (reader.pos < end) {
3195
+ const tag = reader.uint32();
3196
+ switch (tag >>> 3) {
3197
+ case 1:
3198
+ message.answer = SessionDescription.decode(reader, reader.uint32());
3199
+ break;
3200
+ case 2:
3201
+ message.subscription = UpdateSubscription.decode(
3202
+ reader,
3203
+ reader.uint32()
3204
+ );
3205
+ break;
3206
+ case 3:
3207
+ message.publishTracks.push(
3208
+ TrackPublishedResponse.decode(reader, reader.uint32())
3209
+ );
3210
+ break;
3211
+ default:
3212
+ reader.skipType(tag & 7);
3213
+ break;
3214
+ }
3215
+ }
3216
+ return message;
3217
+ },
3218
+
3219
+ fromJSON(object: any): SyncState {
3220
+ const message = { ...baseSyncState } as SyncState;
3221
+ message.publishTracks = [];
3222
+ if (object.answer !== undefined && object.answer !== null) {
3223
+ message.answer = SessionDescription.fromJSON(object.answer);
3224
+ } else {
3225
+ message.answer = undefined;
3226
+ }
3227
+ if (object.subscription !== undefined && object.subscription !== null) {
3228
+ message.subscription = UpdateSubscription.fromJSON(object.subscription);
3229
+ } else {
3230
+ message.subscription = undefined;
3231
+ }
3232
+ if (object.publishTracks !== undefined && object.publishTracks !== null) {
3233
+ for (const e of object.publishTracks) {
3234
+ message.publishTracks.push(TrackPublishedResponse.fromJSON(e));
3235
+ }
3236
+ }
3237
+ return message;
3238
+ },
3239
+
3240
+ toJSON(message: SyncState): unknown {
3241
+ const obj: any = {};
3242
+ message.answer !== undefined &&
3243
+ (obj.answer = message.answer
3244
+ ? SessionDescription.toJSON(message.answer)
3245
+ : undefined);
3246
+ message.subscription !== undefined &&
3247
+ (obj.subscription = message.subscription
3248
+ ? UpdateSubscription.toJSON(message.subscription)
3249
+ : undefined);
3250
+ if (message.publishTracks) {
3251
+ obj.publishTracks = message.publishTracks.map((e) =>
3252
+ e ? TrackPublishedResponse.toJSON(e) : undefined
3253
+ );
3254
+ } else {
3255
+ obj.publishTracks = [];
3256
+ }
3257
+ return obj;
3258
+ },
3259
+
3260
+ fromPartial(object: DeepPartial<SyncState>): SyncState {
3261
+ const message = { ...baseSyncState } as SyncState;
3262
+ if (object.answer !== undefined && object.answer !== null) {
3263
+ message.answer = SessionDescription.fromPartial(object.answer);
3264
+ } else {
3265
+ message.answer = undefined;
3266
+ }
3267
+ if (object.subscription !== undefined && object.subscription !== null) {
3268
+ message.subscription = UpdateSubscription.fromPartial(
3269
+ object.subscription
3270
+ );
3271
+ } else {
3272
+ message.subscription = undefined;
3273
+ }
3274
+ message.publishTracks = [];
3275
+ if (object.publishTracks !== undefined && object.publishTracks !== null) {
3276
+ for (const e of object.publishTracks) {
3277
+ message.publishTracks.push(TrackPublishedResponse.fromPartial(e));
3278
+ }
3279
+ }
3280
+ return message;
3281
+ },
3282
+ };
3283
+
3284
+ const baseSimulateScenario: object = {};
3285
+
3286
+ export const SimulateScenario = {
3287
+ encode(
3288
+ message: SimulateScenario,
3289
+ writer: _m0.Writer = _m0.Writer.create()
3290
+ ): _m0.Writer {
3291
+ if (message.speakerUpdate !== undefined) {
3292
+ writer.uint32(8).int32(message.speakerUpdate);
3293
+ }
3294
+ if (message.nodeFailure !== undefined) {
3295
+ writer.uint32(16).bool(message.nodeFailure);
3296
+ }
3297
+ if (message.migration !== undefined) {
3298
+ writer.uint32(24).bool(message.migration);
3299
+ }
3300
+ if (message.serverLeave !== undefined) {
3301
+ writer.uint32(32).bool(message.serverLeave);
3302
+ }
3303
+ return writer;
3304
+ },
3305
+
3306
+ decode(input: _m0.Reader | Uint8Array, length?: number): SimulateScenario {
3307
+ const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
3308
+ let end = length === undefined ? reader.len : reader.pos + length;
3309
+ const message = { ...baseSimulateScenario } as SimulateScenario;
3310
+ while (reader.pos < end) {
3311
+ const tag = reader.uint32();
3312
+ switch (tag >>> 3) {
3313
+ case 1:
3314
+ message.speakerUpdate = reader.int32();
3315
+ break;
3316
+ case 2:
3317
+ message.nodeFailure = reader.bool();
3318
+ break;
3319
+ case 3:
3320
+ message.migration = reader.bool();
3321
+ break;
3322
+ case 4:
3323
+ message.serverLeave = reader.bool();
3324
+ break;
3325
+ default:
3326
+ reader.skipType(tag & 7);
3327
+ break;
3328
+ }
3329
+ }
3330
+ return message;
3331
+ },
3332
+
3333
+ fromJSON(object: any): SimulateScenario {
3334
+ const message = { ...baseSimulateScenario } as SimulateScenario;
3335
+ if (object.speakerUpdate !== undefined && object.speakerUpdate !== null) {
3336
+ message.speakerUpdate = Number(object.speakerUpdate);
3337
+ } else {
3338
+ message.speakerUpdate = undefined;
3339
+ }
3340
+ if (object.nodeFailure !== undefined && object.nodeFailure !== null) {
3341
+ message.nodeFailure = Boolean(object.nodeFailure);
3342
+ } else {
3343
+ message.nodeFailure = undefined;
3344
+ }
3345
+ if (object.migration !== undefined && object.migration !== null) {
3346
+ message.migration = Boolean(object.migration);
3347
+ } else {
3348
+ message.migration = undefined;
3349
+ }
3350
+ if (object.serverLeave !== undefined && object.serverLeave !== null) {
3351
+ message.serverLeave = Boolean(object.serverLeave);
3352
+ } else {
3353
+ message.serverLeave = undefined;
3354
+ }
3355
+ return message;
3356
+ },
3357
+
3358
+ toJSON(message: SimulateScenario): unknown {
3359
+ const obj: any = {};
3360
+ message.speakerUpdate !== undefined &&
3361
+ (obj.speakerUpdate = message.speakerUpdate);
3362
+ message.nodeFailure !== undefined &&
3363
+ (obj.nodeFailure = message.nodeFailure);
3364
+ message.migration !== undefined && (obj.migration = message.migration);
3365
+ message.serverLeave !== undefined &&
3366
+ (obj.serverLeave = message.serverLeave);
3367
+ return obj;
3368
+ },
3369
+
3370
+ fromPartial(object: DeepPartial<SimulateScenario>): SimulateScenario {
3371
+ const message = { ...baseSimulateScenario } as SimulateScenario;
3372
+ message.speakerUpdate = object.speakerUpdate ?? undefined;
3373
+ message.nodeFailure = object.nodeFailure ?? undefined;
3374
+ message.migration = object.migration ?? undefined;
3375
+ message.serverLeave = object.serverLeave ?? undefined;
3376
+ return message;
3377
+ },
3378
+ };
3379
+
3380
+ type Builtin =
3381
+ | Date
3382
+ | Function
3383
+ | Uint8Array
3384
+ | string
3385
+ | number
3386
+ | boolean
3387
+ | undefined;
3388
+ export type DeepPartial<T> = T extends Builtin
3389
+ ? T
3390
+ : T extends Array<infer U>
3391
+ ? Array<DeepPartial<U>>
3392
+ : T extends ReadonlyArray<infer U>
3393
+ ? ReadonlyArray<DeepPartial<U>>
3394
+ : T extends {}
3395
+ ? { [K in keyof T]?: DeepPartial<T[K]> }
3396
+ : Partial<T>;
3397
+
3398
+ if (_m0.util.Long !== Long) {
3399
+ _m0.util.Long = Long as any;
3400
+ _m0.configure();
3401
+ }