@microsoft/live-share-media 0.5.1 → 1.0.0-preview.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nycrc.json +10 -10
- package/.vscode/launch.json +29 -0
- package/.vscode/settings.json +2 -0
- package/LICENSE +86 -86
- package/README.md +138 -137
- package/bin/IMediaPlayer.d.ts.map +1 -1
- package/bin/{EphemeralMediaSession.d.ts → LiveMediaSession.d.ts} +14 -21
- package/bin/LiveMediaSession.d.ts.map +1 -0
- package/bin/{EphemeralMediaSession.js → LiveMediaSession.js} +39 -37
- package/bin/LiveMediaSession.js.map +1 -0
- package/bin/{EphemeralMediaSessionCoordinator.d.ts → LiveMediaSessionCoordinator.d.ts} +5 -5
- package/bin/LiveMediaSessionCoordinator.d.ts.map +1 -0
- package/bin/{EphemeralMediaSessionCoordinator.js → LiveMediaSessionCoordinator.js} +60 -48
- package/bin/LiveMediaSessionCoordinator.js.map +1 -0
- package/bin/{EphemeralMediaSessionCoordinatorSuspension.d.ts → LiveMediaSessionCoordinatorSuspension.d.ts} +3 -3
- package/bin/LiveMediaSessionCoordinatorSuspension.d.ts.map +1 -0
- package/bin/{EphemeralMediaSessionCoordinatorSuspension.js → LiveMediaSessionCoordinatorSuspension.js} +4 -4
- package/bin/LiveMediaSessionCoordinatorSuspension.js.map +1 -0
- package/bin/MediaPlayerSynchronizer.d.ts +11 -11
- package/bin/MediaPlayerSynchronizer.d.ts.map +1 -1
- package/bin/MediaPlayerSynchronizer.js +132 -75
- package/bin/MediaPlayerSynchronizer.js.map +1 -1
- package/bin/MediaSessionActionThrottler.d.ts +1 -1
- package/bin/MediaSessionActionThrottler.d.ts.map +1 -1
- package/bin/MediaSessionActionThrottler.js.map +1 -1
- package/bin/MediaSessionExtensions.d.ts.map +1 -1
- package/bin/RepeatedActionThrottler.d.ts +2 -2
- package/bin/RepeatedActionThrottler.d.ts.map +1 -1
- package/bin/RepeatedActionThrottler.js +9 -3
- package/bin/RepeatedActionThrottler.js.map +1 -1
- package/bin/VolumeManager.d.ts +84 -0
- package/bin/VolumeManager.d.ts.map +1 -0
- package/bin/VolumeManager.js +175 -0
- package/bin/VolumeManager.js.map +1 -0
- package/bin/index.d.ts +9 -9
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +4 -4
- package/bin/index.js.map +1 -1
- package/bin/internals/GroupCoordinatorState.d.ts +12 -12
- package/bin/internals/GroupCoordinatorState.d.ts.map +1 -1
- package/bin/internals/GroupCoordinatorState.js +94 -56
- package/bin/internals/GroupCoordinatorState.js.map +1 -1
- package/bin/internals/GroupPlaybackPosition.d.ts +3 -3
- package/bin/internals/GroupPlaybackPosition.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackPosition.js +24 -15
- package/bin/internals/GroupPlaybackPosition.js.map +1 -1
- package/bin/internals/GroupPlaybackTrack.d.ts +4 -4
- package/bin/internals/GroupPlaybackTrack.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackTrack.js +14 -4
- package/bin/internals/GroupPlaybackTrack.js.map +1 -1
- package/bin/internals/GroupPlaybackTrackData.d.ts +3 -3
- package/bin/internals/GroupPlaybackTrackData.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackTrackData.js +8 -4
- package/bin/internals/GroupPlaybackTrackData.js.map +1 -1
- package/bin/internals/GroupTransportState.d.ts +5 -5
- package/bin/internals/GroupTransportState.d.ts.map +1 -1
- package/bin/internals/GroupTransportState.js +28 -13
- package/bin/internals/GroupTransportState.js.map +1 -1
- package/bin/internals/consts.d.ts.map +1 -1
- package/bin/internals/consts.js +54 -54
- package/bin/internals/consts.js.map +1 -1
- package/bin/internals/index.d.ts +6 -6
- package/package.json +38 -38
- package/src/IMediaPlayer.ts +29 -21
- package/src/LiveMediaSession.ts +300 -0
- package/src/LiveMediaSessionCoordinator.ts +621 -0
- package/src/{EphemeralMediaSessionCoordinatorSuspension.ts → LiveMediaSessionCoordinatorSuspension.ts} +39 -31
- package/src/MediaPlayerSynchronizer.ts +627 -450
- package/src/MediaSessionActionThrottler.ts +16 -14
- package/src/MediaSessionExtensions.ts +52 -42
- package/src/RepeatedActionThrottler.ts +74 -56
- package/src/VolumeManager.ts +197 -0
- package/src/index.ts +14 -15
- package/src/internals/GroupCoordinatorState.ts +606 -446
- package/src/internals/GroupPlaybackPosition.ts +227 -193
- package/src/internals/GroupPlaybackTrack.ts +176 -147
- package/src/internals/GroupPlaybackTrackData.ts +98 -90
- package/src/internals/GroupTransportState.ts +157 -127
- package/src/internals/consts.ts +98 -80
- package/src/internals/index.ts +11 -11
- package/src/test/GroupPlaybackPosition.spec.ts +600 -340
- package/src/test/GroupPlaybackTrack.spec.ts +122 -66
- package/src/test/SharedMediaSession.spec.ts +149 -113
- package/src/test/SharedMediaSessionCoordinator.spec.ts +271 -231
- package/src/test/VolumeManager.spec.ts +219 -0
- package/tsconfig.build.json +8 -8
- package/tsconfig.json +76 -75
- package/bin/EphemeralMediaSession.d.ts.map +0 -1
- package/bin/EphemeralMediaSession.js.map +0 -1
- package/bin/EphemeralMediaSessionCoordinator.d.ts.map +0 -1
- package/bin/EphemeralMediaSessionCoordinator.js.map +0 -1
- package/bin/EphemeralMediaSessionCoordinatorSuspension.d.ts.map +0 -1
- package/bin/EphemeralMediaSessionCoordinatorSuspension.js.map +0 -1
- package/bin/VolumeLimiter.d.ts +0 -70
- package/bin/VolumeLimiter.d.ts.map +0 -1
- package/bin/VolumeLimiter.js +0 -170
- package/bin/VolumeLimiter.js.map +0 -1
- package/src/EphemeralMediaSession.ts +0 -248
- package/src/EphemeralMediaSessionCoordinator.ts +0 -461
- package/src/VolumeLimiter.ts +0 -182
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the Microsoft Live Share SDK License.
|
|
5
|
-
*/
|
|
6
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -19,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
15
|
exports.MediaPlayerSynchronizer = exports.MediaPlayerSynchronizerEvents = void 0;
|
|
20
16
|
const events_1 = __importDefault(require("events"));
|
|
21
17
|
const MediaSessionExtensions_1 = require("./MediaSessionExtensions");
|
|
22
|
-
const
|
|
18
|
+
const VolumeManager_1 = require("./VolumeManager");
|
|
23
19
|
const internals_1 = require("./internals");
|
|
24
20
|
/**
|
|
25
21
|
* Events supported by `MediaPlayerSynchronizer` object.
|
|
@@ -52,12 +48,12 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
52
48
|
constructor(player, mediaSession, onEnd) {
|
|
53
49
|
super();
|
|
54
50
|
this._viewOnly = false;
|
|
55
|
-
this._expectedPlaybackState =
|
|
51
|
+
this._expectedPlaybackState = "none";
|
|
56
52
|
this._trackData = null;
|
|
57
53
|
this._player = player;
|
|
58
54
|
this._mediaSession = mediaSession;
|
|
59
55
|
this._logger = mediaSession.logger;
|
|
60
|
-
this.
|
|
56
|
+
this._volumeManager = new VolumeManager_1.VolumeManager(player);
|
|
61
57
|
this._onEnd = onEnd;
|
|
62
58
|
// Listen for player state requests
|
|
63
59
|
mediaSession.setRequestPlayerStateHandler(() => {
|
|
@@ -65,16 +61,17 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
65
61
|
let playbackState;
|
|
66
62
|
const src = this._player.currentSrc || this._player.src;
|
|
67
63
|
if (this._player.ended) {
|
|
68
|
-
playbackState =
|
|
64
|
+
playbackState = "ended";
|
|
69
65
|
}
|
|
70
|
-
else if (!src ||
|
|
71
|
-
|
|
66
|
+
else if (!src ||
|
|
67
|
+
(this._player.paused && this._player.currentTime < 1.0)) {
|
|
68
|
+
playbackState = "none";
|
|
72
69
|
}
|
|
73
70
|
else if (this._player.paused) {
|
|
74
|
-
playbackState =
|
|
71
|
+
playbackState = "paused";
|
|
75
72
|
}
|
|
76
73
|
else {
|
|
77
|
-
playbackState =
|
|
74
|
+
playbackState = "playing";
|
|
78
75
|
}
|
|
79
76
|
const state = {
|
|
80
77
|
metadata: { trackIdentifier: src },
|
|
@@ -82,58 +79,71 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
82
79
|
positionState: {
|
|
83
80
|
position: this._player.currentTime,
|
|
84
81
|
playbackRate: this._player.playbackRate,
|
|
85
|
-
duration: this._player.duration
|
|
82
|
+
duration: this._player.duration,
|
|
86
83
|
},
|
|
87
|
-
trackData: this._trackData
|
|
84
|
+
trackData: this._trackData,
|
|
88
85
|
};
|
|
89
86
|
return state;
|
|
90
87
|
});
|
|
91
88
|
// Listen for player events
|
|
92
89
|
this._onPlayerEvent = (evt) => {
|
|
93
|
-
if (evt.type !=
|
|
94
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayerEvent, null, {
|
|
90
|
+
if (evt.type != "timeupdate") {
|
|
91
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayerEvent, null, {
|
|
92
|
+
type: evt.type,
|
|
93
|
+
});
|
|
95
94
|
}
|
|
96
95
|
switch (evt.type) {
|
|
97
|
-
case
|
|
96
|
+
case "loadedmetadata":
|
|
97
|
+
// eslint-disable-next-line no-case-declarations
|
|
98
98
|
const src = this._player.currentSrc || this._player.src;
|
|
99
99
|
this._trackData = null;
|
|
100
100
|
break;
|
|
101
|
-
case
|
|
101
|
+
case "playing":
|
|
102
102
|
// Handle case for YouTube player where user can pause/play video by clicking on it.
|
|
103
103
|
// - Videos don't always start at 0.0 seconds.
|
|
104
|
-
if (this._expectedPlaybackState !=
|
|
105
|
-
if (this._mediaSession.coordinator.canPlayPause &&
|
|
106
|
-
this.
|
|
104
|
+
if (this._expectedPlaybackState != "playing") {
|
|
105
|
+
if (this._mediaSession.coordinator.canPlayPause &&
|
|
106
|
+
this._player.currentTime < 1.0) {
|
|
107
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
108
|
+
.UserTappedVideoToPlay);
|
|
107
109
|
this.play();
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
|
-
// block play if player state is playing when expected synced state is paused
|
|
111
|
-
// needed
|
|
112
|
-
if (this._expectedPlaybackState ===
|
|
112
|
+
// block play if player state is playing when expected synced state is paused.
|
|
113
|
+
// needed because cannot tell if its a user initiated event, so disallow play
|
|
114
|
+
if (this._expectedPlaybackState === "paused") {
|
|
115
|
+
this._player.pause();
|
|
116
|
+
}
|
|
117
|
+
// block play if player state is playing when expected synced state is none.
|
|
118
|
+
// needed because user who is not in control should not be able to start, so disallow play
|
|
119
|
+
if (this._expectedPlaybackState === "none") {
|
|
113
120
|
this._player.pause();
|
|
114
121
|
}
|
|
115
122
|
break;
|
|
116
|
-
case
|
|
123
|
+
case "pause":
|
|
117
124
|
// block pause if player state is paused when expected synced state is playing
|
|
118
|
-
// needed
|
|
119
|
-
if (this._expectedPlaybackState ===
|
|
125
|
+
// needed because cannot tell if its a user initiated event, so disallow pause
|
|
126
|
+
if (this._expectedPlaybackState === "playing") {
|
|
120
127
|
this._player.play();
|
|
121
128
|
}
|
|
122
129
|
break;
|
|
123
|
-
case
|
|
130
|
+
case "ratechange":
|
|
124
131
|
// Block rate changes unless suspended.
|
|
125
|
-
if (this._player.playbackRate != 1.0 &&
|
|
126
|
-
this.
|
|
132
|
+
if (this._player.playbackRate != 1.0 &&
|
|
133
|
+
!this._mediaSession.coordinator.isSuspended) {
|
|
134
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
135
|
+
.PlaybackRateChangeBlocked);
|
|
127
136
|
this._player.playbackRate = 1.0;
|
|
128
137
|
}
|
|
129
138
|
break;
|
|
130
|
-
case
|
|
131
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
139
|
+
case "blocked":
|
|
140
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
141
|
+
.PlaybackRateChangeBlocked);
|
|
132
142
|
break;
|
|
133
143
|
}
|
|
134
144
|
};
|
|
135
145
|
// Register for coordinator state changes
|
|
136
|
-
this._mediaSession.coordinator.on(MediaSessionExtensions_1.MediaSessionCoordinatorEvents.coordinatorstatechange, evt => this.emit(evt.type, evt));
|
|
146
|
+
this._mediaSession.coordinator.on(MediaSessionExtensions_1.MediaSessionCoordinatorEvents.coordinatorstatechange, (evt) => this.emit(evt.type, evt));
|
|
137
147
|
// Register media session actions
|
|
138
148
|
for (const action of MediaPlayerSynchronizer.SESSION_ACTIONS) {
|
|
139
149
|
this._mediaSession.setActionHandler(action, (details) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -141,45 +151,60 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
141
151
|
let error;
|
|
142
152
|
try {
|
|
143
153
|
switch (details.action) {
|
|
144
|
-
case
|
|
145
|
-
this._expectedPlaybackState =
|
|
154
|
+
case "play":
|
|
155
|
+
this._expectedPlaybackState = "playing";
|
|
146
156
|
if (this._player.paused) {
|
|
147
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this._player.currentTime
|
|
157
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
158
|
+
.PlayAction);
|
|
159
|
+
if (typeof details.seekTime == "number" &&
|
|
160
|
+
this._player.currentTime < 1.0) {
|
|
161
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents
|
|
162
|
+
.MediaPlayerSynchronizer
|
|
163
|
+
.SeekingPlayerToStartPosition, null, { position: details.seekTime });
|
|
164
|
+
this._player.currentTime =
|
|
165
|
+
details.seekTime;
|
|
151
166
|
}
|
|
152
167
|
// Reference: https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play#exceptions
|
|
153
168
|
yield this._player.play();
|
|
154
169
|
}
|
|
155
170
|
break;
|
|
156
|
-
case
|
|
157
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
this._player.currentTime
|
|
171
|
+
case "pause":
|
|
172
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
173
|
+
.PauseAction);
|
|
174
|
+
this._expectedPlaybackState = "paused";
|
|
175
|
+
if (typeof details.seekTime == "number" &&
|
|
176
|
+
this._player.currentTime < 1.0) {
|
|
177
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
178
|
+
.SeekingPlayerToStartPosition, null, { position: details.seekTime });
|
|
179
|
+
this._player.currentTime =
|
|
180
|
+
details.seekTime;
|
|
162
181
|
}
|
|
163
182
|
this._player.pause();
|
|
164
183
|
break;
|
|
165
|
-
case
|
|
166
|
-
if (typeof details.seekTime ==
|
|
167
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
168
|
-
|
|
184
|
+
case "seekto":
|
|
185
|
+
if (typeof details.seekTime == "number") {
|
|
186
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
187
|
+
.SeekToAction, null, { position: details.seekTime });
|
|
188
|
+
this._player.currentTime =
|
|
189
|
+
details.seekTime;
|
|
169
190
|
}
|
|
170
191
|
break;
|
|
171
|
-
case
|
|
172
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
173
|
-
|
|
174
|
-
this.
|
|
192
|
+
case "settrack":
|
|
193
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
194
|
+
.SetTrackAction);
|
|
195
|
+
this._expectedPlaybackState = "none";
|
|
196
|
+
this._player.src =
|
|
197
|
+
details.metadata.trackIdentifier;
|
|
175
198
|
this._player.load();
|
|
176
199
|
break;
|
|
177
|
-
case
|
|
178
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
200
|
+
case "datachange":
|
|
201
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
202
|
+
.DataChangeAction);
|
|
179
203
|
break;
|
|
180
|
-
case
|
|
181
|
-
if (typeof details.seekTime ==
|
|
182
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
204
|
+
case "catchup":
|
|
205
|
+
if (typeof details.seekTime == "number") {
|
|
206
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer
|
|
207
|
+
.CatchupAction, null, { position: details.seekTime });
|
|
183
208
|
this.catchupPlayer(details.seekTime);
|
|
184
209
|
}
|
|
185
210
|
break;
|
|
@@ -237,8 +262,8 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
237
262
|
/**
|
|
238
263
|
* Volume limiter used to temporarily reduce the videos volume when someone speaks in a meeting.
|
|
239
264
|
*/
|
|
240
|
-
get
|
|
241
|
-
return this.
|
|
265
|
+
get volumeManager() {
|
|
266
|
+
return this._volumeManager;
|
|
242
267
|
}
|
|
243
268
|
/**
|
|
244
269
|
* Registers a new event listener.
|
|
@@ -310,9 +335,11 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
310
335
|
this._player.currentTime = seekTo;
|
|
311
336
|
const suspension = this._seekSuspension;
|
|
312
337
|
this._seekSuspension = undefined;
|
|
313
|
-
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.EndSeekCalled, null, {
|
|
338
|
+
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.EndSeekCalled, null, {
|
|
339
|
+
position: seekTo,
|
|
340
|
+
});
|
|
314
341
|
suspension.end(seekTo);
|
|
315
|
-
this.dispatchUserAction({ action:
|
|
342
|
+
this.dispatchUserAction({ action: "seekto", seekTime: seekTo });
|
|
316
343
|
}
|
|
317
344
|
/**
|
|
318
345
|
* Tells the group to begin playing the current video.
|
|
@@ -323,9 +350,9 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
323
350
|
*/
|
|
324
351
|
play() {
|
|
325
352
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayCalled);
|
|
326
|
-
this._expectedPlaybackState =
|
|
353
|
+
this._expectedPlaybackState = "playing";
|
|
327
354
|
this._mediaSession.coordinator.play();
|
|
328
|
-
this.dispatchUserAction({ action:
|
|
355
|
+
this.dispatchUserAction({ action: "play" });
|
|
329
356
|
}
|
|
330
357
|
/**
|
|
331
358
|
* Tells the group to pause the current video.
|
|
@@ -336,9 +363,9 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
336
363
|
*/
|
|
337
364
|
pause() {
|
|
338
365
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PauseCalled);
|
|
339
|
-
this._expectedPlaybackState =
|
|
366
|
+
this._expectedPlaybackState = "paused";
|
|
340
367
|
this._mediaSession.coordinator.pause();
|
|
341
|
-
this.dispatchUserAction({ action:
|
|
368
|
+
this.dispatchUserAction({ action: "pause" });
|
|
342
369
|
}
|
|
343
370
|
/**
|
|
344
371
|
* Tells the group to seek the current video to a new playback position.
|
|
@@ -354,7 +381,7 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
354
381
|
this._player.currentTime = time;
|
|
355
382
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SeekToCalled, null, { position: time });
|
|
356
383
|
this._mediaSession.coordinator.seekTo(time);
|
|
357
|
-
this.dispatchUserAction({ action:
|
|
384
|
+
this.dispatchUserAction({ action: "seekto", seekTime: time });
|
|
358
385
|
}
|
|
359
386
|
/**
|
|
360
387
|
* Tells the group to change to a new track.
|
|
@@ -366,7 +393,7 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
366
393
|
setTrack(track, waitPoints) {
|
|
367
394
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackCalled);
|
|
368
395
|
this._mediaSession.coordinator.setTrack(track, waitPoints);
|
|
369
|
-
this.dispatchUserAction({ action:
|
|
396
|
+
this.dispatchUserAction({ action: "settrack", metadata: track });
|
|
370
397
|
}
|
|
371
398
|
/**
|
|
372
399
|
* Updates the current tracks data object.
|
|
@@ -379,22 +406,36 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
379
406
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackDataCalled);
|
|
380
407
|
this._trackData = data;
|
|
381
408
|
this._mediaSession.coordinator.setTrackData(data);
|
|
382
|
-
this.dispatchUserAction({ action:
|
|
409
|
+
this.dispatchUserAction({ action: "datachange", data: data });
|
|
383
410
|
}
|
|
384
411
|
dispatchGroupAction(details, delay = false, error) {
|
|
385
412
|
if (delay) {
|
|
386
|
-
setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.groupaction, {
|
|
413
|
+
setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.groupaction, {
|
|
414
|
+
type: MediaPlayerSynchronizerEvents.groupaction,
|
|
415
|
+
details: details,
|
|
416
|
+
playerError: error,
|
|
417
|
+
}), 50);
|
|
387
418
|
}
|
|
388
419
|
else {
|
|
389
|
-
this.emit(MediaPlayerSynchronizerEvents.groupaction, {
|
|
420
|
+
this.emit(MediaPlayerSynchronizerEvents.groupaction, {
|
|
421
|
+
type: MediaPlayerSynchronizerEvents.groupaction,
|
|
422
|
+
details: details,
|
|
423
|
+
error,
|
|
424
|
+
});
|
|
390
425
|
}
|
|
391
426
|
}
|
|
392
427
|
dispatchUserAction(details, delay = false) {
|
|
393
428
|
if (delay) {
|
|
394
|
-
setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.useraction, {
|
|
429
|
+
setTimeout(() => this.emit(MediaPlayerSynchronizerEvents.useraction, {
|
|
430
|
+
type: MediaPlayerSynchronizerEvents.useraction,
|
|
431
|
+
details: details,
|
|
432
|
+
}), 50);
|
|
395
433
|
}
|
|
396
434
|
else {
|
|
397
|
-
this.emit(MediaPlayerSynchronizerEvents.useraction, {
|
|
435
|
+
this.emit(MediaPlayerSynchronizerEvents.useraction, {
|
|
436
|
+
type: MediaPlayerSynchronizerEvents.useraction,
|
|
437
|
+
details: details,
|
|
438
|
+
});
|
|
398
439
|
}
|
|
399
440
|
}
|
|
400
441
|
catchupPlayer(time) {
|
|
@@ -404,6 +445,22 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
404
445
|
}
|
|
405
446
|
}
|
|
406
447
|
exports.MediaPlayerSynchronizer = MediaPlayerSynchronizer;
|
|
407
|
-
MediaPlayerSynchronizer.SESSION_ACTIONS = [
|
|
408
|
-
|
|
448
|
+
MediaPlayerSynchronizer.SESSION_ACTIONS = [
|
|
449
|
+
"play",
|
|
450
|
+
"pause",
|
|
451
|
+
"seekto",
|
|
452
|
+
"settrack",
|
|
453
|
+
"datachange",
|
|
454
|
+
"catchup",
|
|
455
|
+
"wait",
|
|
456
|
+
];
|
|
457
|
+
MediaPlayerSynchronizer.PLAYER_EVENTS = [
|
|
458
|
+
"playing",
|
|
459
|
+
"pause",
|
|
460
|
+
"ratechange",
|
|
461
|
+
"timeupdate",
|
|
462
|
+
"ended",
|
|
463
|
+
"loadedmetadata",
|
|
464
|
+
"blocked",
|
|
465
|
+
];
|
|
409
466
|
//# sourceMappingURL=MediaPlayerSynchronizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaPlayerSynchronizer.js","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MediaPlayerSynchronizer.js","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
|
-
import { ExtendedMediaSessionActionDetails } from
|
|
5
|
+
import { ExtendedMediaSessionActionDetails } from "./MediaSessionExtensions";
|
|
6
6
|
/**
|
|
7
7
|
* Base class for action throttlers.
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSessionActionThrottler.d.ts","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAE7E;;GAEG;AACH,8BAAsB,2BAA2B;aAC7B,SAAS,
|
|
1
|
+
{"version":3,"file":"MediaSessionActionThrottler.d.ts","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAE7E;;GAEG;AACH,8BAAsB,2BAA2B;aAC7B,SAAS,CACrB,OAAO,EAAE,iCAAiC,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GACpC,IAAI;CACV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSessionActionThrottler.js","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACH,MAAsB,2BAA2B;
|
|
1
|
+
{"version":3,"file":"MediaSessionActionThrottler.js","sourceRoot":"","sources":["../src/MediaSessionActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACH,MAAsB,2BAA2B;CAKhD;AALD,kEAKC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSessionExtensions.d.ts","sourceRoot":"","sources":["../src/MediaSessionExtensions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iCAAiC;IAC9C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,oBAAY,4BAA4B,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3E,oBAAY,6BAA6B;IACrC,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;CAClC;AAED,oBAAY,0BAA0B,
|
|
1
|
+
{"version":3,"file":"MediaSessionExtensions.d.ts","sourceRoot":"","sources":["../src/MediaSessionExtensions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iCAAiC;IAC9C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,oBAAY,4BAA4B,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3E,oBAAY,6BAA6B;IACrC,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;CAClC;AAED,oBAAY,0BAA0B,GAChC,kBAAkB,GAClB,UAAU,GACV,MAAM,GACN,SAAS,GACT,YAAY,GACZ,SAAS,CAAC;AAEhB,oBAAY,iCAAiC,GACvC,yBAAyB,GACzB,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEd,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IACxD,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iCAAiC;IAC9C,MAAM,EAAE,0BAA0B,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,iCAAiC,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAC/C"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
|
-
import { MediaSessionActionThrottler } from
|
|
6
|
-
import { ExtendedMediaSessionActionDetails } from
|
|
5
|
+
import { MediaSessionActionThrottler } from "./MediaSessionActionThrottler";
|
|
6
|
+
import { ExtendedMediaSessionActionDetails } from "./MediaSessionExtensions";
|
|
7
7
|
/**
|
|
8
8
|
* A Throttler that passes through all actions but will only let an action be repeated once every 2 seconds.
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatedActionThrottler.d.ts","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"RepeatedActionThrottler.d.ts","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACH,iCAAiC,EAEpC,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,2BAA2B;IACpE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAK7B;IACF,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,MAAM,EAEtC;IAEM,SAAS,CACZ,OAAO,EAAE,iCAAiC,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GACpC,IAAI;IA4BP,OAAO,CAAC,YAAY;CAQvB"}
|
|
@@ -27,7 +27,8 @@ class RepeatedActionThrottler extends MediaSessionActionThrottler_1.MediaSession
|
|
|
27
27
|
const changeKey = this.getChangeKey(details);
|
|
28
28
|
const now = new Date().getTime();
|
|
29
29
|
if (this._lastActionSent && changeKey == this._lastActionSent) {
|
|
30
|
-
if (now - this._lastActionSentTime >=
|
|
30
|
+
if (now - this._lastActionSentTime >=
|
|
31
|
+
this._repeatInterval.milliseconds) {
|
|
31
32
|
handler(details);
|
|
32
33
|
this._lastActionSentTime = now;
|
|
33
34
|
}
|
|
@@ -45,7 +46,7 @@ class RepeatedActionThrottler extends MediaSessionActionThrottler_1.MediaSession
|
|
|
45
46
|
}
|
|
46
47
|
getChangeKey(details) {
|
|
47
48
|
switch (details.action) {
|
|
48
|
-
case
|
|
49
|
+
case "seekto":
|
|
49
50
|
return `seekto:${details.seekTime}`;
|
|
50
51
|
default:
|
|
51
52
|
return details.action;
|
|
@@ -53,5 +54,10 @@ class RepeatedActionThrottler extends MediaSessionActionThrottler_1.MediaSession
|
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
exports.RepeatedActionThrottler = RepeatedActionThrottler;
|
|
56
|
-
RepeatedActionThrottler.FILTERED_ACTIONS = [
|
|
57
|
+
RepeatedActionThrottler.FILTERED_ACTIONS = [
|
|
58
|
+
"play",
|
|
59
|
+
"pause",
|
|
60
|
+
"seekto",
|
|
61
|
+
"catchup",
|
|
62
|
+
];
|
|
57
63
|
//# sourceMappingURL=RepeatedActionThrottler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatedActionThrottler.js","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sDAAqD;AACrD,+EAA4E;
|
|
1
|
+
{"version":3,"file":"RepeatedActionThrottler.js","sourceRoot":"","sources":["../src/RepeatedActionThrottler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sDAAqD;AACrD,+EAA4E;AAM5E;;GAEG;AACH,MAAa,uBAAwB,SAAQ,yDAA2B;IAAxE;;QAOY,oBAAe,GAAG,IAAI,yBAAY,CAAC,IAAI,CAAC,CAAC;IAmDrD,CAAC;IA/CG,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,IAAW,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;IACzC,CAAC;IAEM,SAAS,CACZ,OAA0C,EAC1C,OAAmC;QAEnC,IAAI,OAAO,EAAE;YACT,IACI,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAC5C,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,EACR;gBACE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,eAAe,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;oBAC3D,IACI,GAAG,GAAG,IAAI,CAAC,mBAAoB;wBAC/B,IAAI,CAAC,eAAe,CAAC,YAAY,EACnC;wBACE,OAAO,CAAC,OAAoC,CAAC,CAAC;wBAC9C,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;qBAClC;iBACJ;qBAAM;oBACH,OAAO,CAAC,OAAoC,CAAC,CAAC;oBAC9C,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;oBACjC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;iBAClC;aACJ;iBAAM;gBACH,OAAO,CAAC,OAAoC,CAAC,CAAC;aACjD;SACJ;IACL,CAAC;IAEO,YAAY,CAAC,OAA0C;QAC3D,QAAQ,OAAO,CAAC,MAAM,EAAE;YACpB,KAAK,QAAQ;gBACT,OAAO,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxC;gBACI,OAAO,OAAO,CAAC,MAAM,CAAC;SAC7B;IACL,CAAC;;AAzDL,0DA0DC;AAzDkB,wCAAgB,GAAiC;IAC5D,MAAM;IACN,OAAO;IACP,QAAQ;IACR,SAAS;CACZ,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
|
+
*/
|
|
5
|
+
import { IMediaPlayer } from "./IMediaPlayer";
|
|
6
|
+
export declare enum LimitLevelType {
|
|
7
|
+
fixed = 0,
|
|
8
|
+
percentage = 1
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Smooth audio level changes when volume is modified, or if volume limiting has started/ended.
|
|
12
|
+
*/
|
|
13
|
+
export declare class VolumeManager {
|
|
14
|
+
private readonly _player;
|
|
15
|
+
private readonly _volumeChangeDuration;
|
|
16
|
+
private _volume;
|
|
17
|
+
private _isLimiting;
|
|
18
|
+
private _limitLevel;
|
|
19
|
+
private _limitLevelType;
|
|
20
|
+
private _startTime;
|
|
21
|
+
private _startVolume;
|
|
22
|
+
private _running;
|
|
23
|
+
constructor(player: IMediaPlayer);
|
|
24
|
+
/**
|
|
25
|
+
* The selected volume.
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* Expressed as a value between 0.0 and 1.0. The default value is 1.0.
|
|
29
|
+
* Can be used for things like volume sliders.
|
|
30
|
+
*
|
|
31
|
+
* Does not return the current volume if limiting is enabled, but the desired volume.
|
|
32
|
+
*/
|
|
33
|
+
get volume(): number;
|
|
34
|
+
set volume(value: number);
|
|
35
|
+
/**
|
|
36
|
+
* Target level to lower volume to.
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* Expressed as a value between 0.0 and 1.0. The value is applied based upon the configured
|
|
40
|
+
* `levelType`. The default value is 0.1.
|
|
41
|
+
*
|
|
42
|
+
* For a level type of `LevelType.fixed` the value is the exact level the volume will be
|
|
43
|
+
* lowered to. The default value of 0.1 would cause the volume to be lowered to 0.1.
|
|
44
|
+
*
|
|
45
|
+
* For a level type of `LevelType.percentage` the value is the percentage by which the volume
|
|
46
|
+
* level should be lowered to. The default value of 0.1 would cause the volume to be lowered
|
|
47
|
+
* to 10% of its starting value.
|
|
48
|
+
*/
|
|
49
|
+
get limitLevel(): number;
|
|
50
|
+
set limitLevel(value: number);
|
|
51
|
+
/**
|
|
52
|
+
* The type of level represented by the `limitLevel` property.
|
|
53
|
+
*/
|
|
54
|
+
get limitLevelType(): LimitLevelType;
|
|
55
|
+
set limitLevelType(value: LimitLevelType);
|
|
56
|
+
/**
|
|
57
|
+
* Amount of time, in seconds, it should take to change the volume up or down to the desired level.
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* Default `volumeChangeDuration` is 0.5 seconds.
|
|
61
|
+
*/
|
|
62
|
+
get volumeChangeDuration(): number;
|
|
63
|
+
set volumeChangeDuration(value: number);
|
|
64
|
+
/**
|
|
65
|
+
* Whether or not volume limiting is currently enabled.
|
|
66
|
+
*/
|
|
67
|
+
get isLimiting(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Limits volume based on `limitLevel` and `limitLevelType` properties.
|
|
70
|
+
* @see `limitLevel`
|
|
71
|
+
* @see `limitLevelType`
|
|
72
|
+
*/
|
|
73
|
+
startLimiting(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Disables volume limit.
|
|
76
|
+
*/
|
|
77
|
+
stopLimiting(): void;
|
|
78
|
+
private startAdjusting;
|
|
79
|
+
private scheduleAnimationFrame;
|
|
80
|
+
private computeInterpolatedVolume;
|
|
81
|
+
private computeTargetVolume;
|
|
82
|
+
private millisSinceVolumeChangeStart;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=VolumeManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VolumeManager.d.ts","sourceRoot":"","sources":["../src/VolumeManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,oBAAY,cAAc;IACtB,KAAK,IAAA;IACL,UAAU,IAAA;CACb;AAED;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyB;IAG/D,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,YAAY;IAKhC;;;;;;;;OAQG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAS9B;IAED;;;;;;;;;;;;;OAaG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,UAAU,CAAC,KAAK,EAAE,MAAM,EAQlC;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED,IAAW,cAAc,CAAC,KAAK,EAAE,cAAc,EAE9C;IAED;;;;;OAKG;IACH,IAAW,oBAAoB,IAAI,MAAM,CAExC;IAED,IAAW,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAE5C;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;;;OAIG;IACI,aAAa,IAAI,IAAI;IAK5B;;OAEG;IACI,YAAY,IAAI,IAAI;IAK3B,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,4BAA4B;CAIvC"}
|