livekit-client 0.15.3 → 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 (74) hide show
  1. package/dist/api/SignalClient.d.ts +3 -1
  2. package/dist/api/SignalClient.js +59 -25
  3. package/dist/api/SignalClient.js.map +1 -1
  4. package/dist/options.d.ts +5 -0
  5. package/dist/proto/livekit_models.d.ts +30 -0
  6. package/dist/proto/livekit_models.js +219 -1
  7. package/dist/proto/livekit_models.js.map +1 -1
  8. package/dist/room/RTCEngine.d.ts +2 -0
  9. package/dist/room/RTCEngine.js +45 -2
  10. package/dist/room/RTCEngine.js.map +1 -1
  11. package/dist/room/Room.js +4 -0
  12. package/dist/room/Room.js.map +1 -1
  13. package/dist/room/participant/LocalParticipant.js +2 -1
  14. package/dist/room/participant/LocalParticipant.js.map +1 -1
  15. package/dist/room/participant/publishUtils.js +1 -1
  16. package/dist/room/participant/publishUtils.js.map +1 -1
  17. package/dist/room/participant/publishUtils.test.js +9 -0
  18. package/dist/room/participant/publishUtils.test.js.map +1 -1
  19. package/dist/room/track/RemoteTrackPublication.d.ts +1 -0
  20. package/dist/room/track/RemoteTrackPublication.js +15 -7
  21. package/dist/room/track/RemoteTrackPublication.js.map +1 -1
  22. package/dist/room/track/create.js +5 -0
  23. package/dist/room/track/create.js.map +1 -1
  24. package/dist/room/utils.d.ts +2 -0
  25. package/dist/room/utils.js +32 -1
  26. package/dist/room/utils.js.map +1 -1
  27. package/dist/version.d.ts +1 -1
  28. package/dist/version.js +1 -1
  29. package/package.json +4 -2
  30. package/src/api/SignalClient.ts +434 -0
  31. package/src/connect.ts +100 -0
  32. package/src/index.ts +47 -0
  33. package/src/logger.ts +22 -0
  34. package/src/options.ts +152 -0
  35. package/src/proto/livekit_models.ts +1863 -0
  36. package/src/proto/livekit_rtc.ts +3401 -0
  37. package/src/room/DeviceManager.ts +57 -0
  38. package/src/room/PCTransport.ts +86 -0
  39. package/src/room/RTCEngine.ts +484 -0
  40. package/src/room/Room.ts +785 -0
  41. package/src/room/errors.ts +65 -0
  42. package/src/room/events.ts +396 -0
  43. package/src/room/participant/LocalParticipant.ts +685 -0
  44. package/src/room/participant/Participant.ts +214 -0
  45. package/src/room/participant/ParticipantTrackPermission.ts +32 -0
  46. package/src/room/participant/RemoteParticipant.ts +238 -0
  47. package/src/room/participant/publishUtils.test.ts +105 -0
  48. package/src/room/participant/publishUtils.ts +180 -0
  49. package/src/room/stats.ts +130 -0
  50. package/src/room/track/LocalAudioTrack.ts +112 -0
  51. package/src/room/track/LocalTrack.ts +124 -0
  52. package/src/room/track/LocalTrackPublication.ts +63 -0
  53. package/src/room/track/LocalVideoTrack.test.ts +70 -0
  54. package/src/room/track/LocalVideoTrack.ts +416 -0
  55. package/src/room/track/RemoteAudioTrack.ts +58 -0
  56. package/src/room/track/RemoteTrack.ts +59 -0
  57. package/src/room/track/RemoteTrackPublication.ts +192 -0
  58. package/src/room/track/RemoteVideoTrack.ts +213 -0
  59. package/src/room/track/Track.ts +301 -0
  60. package/src/room/track/TrackPublication.ts +120 -0
  61. package/src/room/track/create.ts +120 -0
  62. package/src/room/track/defaults.ts +23 -0
  63. package/src/room/track/options.ts +229 -0
  64. package/src/room/track/types.ts +8 -0
  65. package/src/room/track/utils.test.ts +93 -0
  66. package/src/room/track/utils.ts +76 -0
  67. package/src/room/utils.ts +74 -0
  68. package/src/version.ts +2 -0
  69. package/.github/workflows/publish.yaml +0 -55
  70. package/.github/workflows/test.yaml +0 -36
  71. package/example/index.html +0 -247
  72. package/example/sample.ts +0 -632
  73. package/example/styles.css +0 -144
  74. 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
+ }