livekit-client 0.15.3 → 0.16.2

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