@microsoft/live-share-media 0.1.2 → 0.2.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.
- package/.vscode/settings.json +2 -0
- package/LICENSE +87 -0
- package/README.md +118 -92
- package/bin/EphemeralMediaSession.d.ts +51 -4
- package/bin/EphemeralMediaSession.d.ts.map +1 -1
- package/bin/EphemeralMediaSession.js +91 -44
- package/bin/EphemeralMediaSession.js.map +1 -1
- package/bin/EphemeralMediaSessionCoordinator.d.ts +173 -6
- package/bin/EphemeralMediaSessionCoordinator.d.ts.map +1 -1
- package/bin/EphemeralMediaSessionCoordinator.js +170 -23
- package/bin/EphemeralMediaSessionCoordinator.js.map +1 -1
- package/bin/EphemeralMediaSessionCoordinatorSuspension.d.ts +1 -1
- package/bin/EphemeralMediaSessionCoordinatorSuspension.js +1 -1
- package/bin/IMediaPlayer.d.ts +1 -1
- package/bin/IMediaPlayer.js +1 -1
- package/bin/MediaPlayerSynchronizer.d.ts +95 -6
- package/bin/MediaPlayerSynchronizer.d.ts.map +1 -1
- package/bin/MediaPlayerSynchronizer.js +93 -31
- package/bin/MediaPlayerSynchronizer.js.map +1 -1
- package/bin/MediaSessionActionThrottler.d.ts +1 -1
- package/bin/MediaSessionActionThrottler.js +1 -1
- package/bin/MediaSessionExtensions.d.ts +1 -1
- package/bin/MediaSessionExtensions.js +1 -1
- package/bin/RepeatedActionThrottler.d.ts +1 -1
- package/bin/RepeatedActionThrottler.js +1 -1
- package/bin/VolumeLimiter.d.ts +2 -2
- package/bin/VolumeLimiter.js +2 -2
- package/bin/index.d.ts +1 -1
- package/bin/index.js +1 -1
- package/bin/internals/GroupCoordinatorState.d.ts +22 -1
- package/bin/internals/GroupCoordinatorState.d.ts.map +1 -1
- package/bin/internals/GroupCoordinatorState.js +10 -4
- package/bin/internals/GroupCoordinatorState.js.map +1 -1
- package/bin/internals/GroupPlaybackPosition.d.ts +8 -1
- package/bin/internals/GroupPlaybackPosition.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackPosition.js +5 -2
- package/bin/internals/GroupPlaybackPosition.js.map +1 -1
- package/bin/internals/GroupPlaybackTrack.d.ts +13 -1
- package/bin/internals/GroupPlaybackTrack.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackTrack.js +8 -2
- package/bin/internals/GroupPlaybackTrack.js.map +1 -1
- package/bin/internals/GroupPlaybackTrackData.d.ts +13 -1
- package/bin/internals/GroupPlaybackTrackData.d.ts.map +1 -1
- package/bin/internals/GroupPlaybackTrackData.js +8 -2
- package/bin/internals/GroupPlaybackTrackData.js.map +1 -1
- package/bin/internals/GroupTransportState.d.ts +13 -1
- package/bin/internals/GroupTransportState.d.ts.map +1 -1
- package/bin/internals/GroupTransportState.js +8 -2
- package/bin/internals/GroupTransportState.js.map +1 -1
- package/bin/internals/consts.d.ts +2 -1
- package/bin/internals/consts.d.ts.map +1 -1
- package/bin/internals/consts.js +5 -1
- package/bin/internals/consts.js.map +1 -1
- package/bin/internals/index.d.ts +1 -1
- package/bin/internals/index.js +1 -1
- package/package.json +14 -5
- package/src/EphemeralMediaSession.ts +95 -48
- package/src/EphemeralMediaSessionCoordinator.ts +190 -26
- package/src/EphemeralMediaSessionCoordinatorSuspension.ts +1 -1
- package/src/IMediaPlayer.ts +1 -1
- package/src/MediaPlayerSynchronizer.ts +101 -33
- package/src/MediaSessionActionThrottler.ts +1 -1
- package/src/MediaSessionExtensions.ts +1 -1
- package/src/RepeatedActionThrottler.ts +1 -1
- package/src/VolumeLimiter.ts +2 -2
- package/src/index.ts +1 -1
- package/src/internals/GroupCoordinatorState.ts +39 -18
- package/src/internals/GroupPlaybackPosition.ts +16 -10
- package/src/internals/GroupPlaybackTrack.ts +22 -9
- package/src/internals/GroupPlaybackTrackData.ts +20 -7
- package/src/internals/GroupTransportState.ts +20 -7
- package/src/internals/consts.ts +7 -3
- package/src/internals/index.ts +1 -1
- package/src/test/GroupPlaybackPosition.spec.ts +1 -1
- package/src/test/GroupPlaybackTrack.spec.ts +1 -1
- package/src/test/SharedMediaSession.spec.ts +1 -1
- package/src/test/SharedMediaSessionCoordinator.spec.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
5
|
/// <reference types="node" />
|
|
6
6
|
import { IEvent } from '@microsoft/live-share';
|
|
@@ -9,10 +9,22 @@ import { ExtendedMediaMetadata, CoordinationWaitPoint, ExtendedMediaSessionActio
|
|
|
9
9
|
import { EphemeralMediaSession } from './EphemeralMediaSession';
|
|
10
10
|
import { VolumeLimiter } from './VolumeLimiter';
|
|
11
11
|
import { IMediaPlayer } from './IMediaPlayer';
|
|
12
|
+
/**
|
|
13
|
+
* Event data returned by `MediaPlayerSynchronizer` object.
|
|
14
|
+
*/
|
|
12
15
|
export interface IMediaPlayerSynchronizerEvent extends IEvent {
|
|
16
|
+
/**
|
|
17
|
+
* Event details.
|
|
18
|
+
*/
|
|
13
19
|
details: ExtendedMediaSessionActionDetails;
|
|
14
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Events supported by `MediaPlayerSynchronizer` object.
|
|
23
|
+
*/
|
|
15
24
|
export declare enum MediaPlayerSynchronizerEvents {
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
16
28
|
coordinatorstatechange = "coordinatorstatechange",
|
|
17
29
|
groupaction = "groupaction",
|
|
18
30
|
useraction = "useraction"
|
|
@@ -35,7 +47,6 @@ export declare class MediaPlayerSynchronizer extends EventEmitter {
|
|
|
35
47
|
private _volumeLimiter;
|
|
36
48
|
private _onEnd?;
|
|
37
49
|
private _onPlayerEvent;
|
|
38
|
-
private _catchupFastSeekPeriod;
|
|
39
50
|
private _seekSuspension?;
|
|
40
51
|
private _viewOnly;
|
|
41
52
|
private _expectedPlaybackState;
|
|
@@ -47,22 +58,100 @@ export declare class MediaPlayerSynchronizer extends EventEmitter {
|
|
|
47
58
|
* @param onEnd Optional. Function to call when synchronizers `end()` method is called.
|
|
48
59
|
*/
|
|
49
60
|
constructor(player: IMediaPlayer, mediaSession: EphemeralMediaSession, onEnd: () => void);
|
|
50
|
-
|
|
51
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Media player being synchronized.
|
|
63
|
+
*/
|
|
52
64
|
get player(): IMediaPlayer;
|
|
65
|
+
/**
|
|
66
|
+
* Synchronizers media session.
|
|
67
|
+
*/
|
|
53
68
|
get mediaSession(): EphemeralMediaSession;
|
|
69
|
+
/**
|
|
70
|
+
* If true the client is in a view only mode.
|
|
71
|
+
*
|
|
72
|
+
* @remarks
|
|
73
|
+
* Toggling this value to true results in `mediaSession.coordinator.canPlayPause`,
|
|
74
|
+
* `mediaSession.coordinator.canSeek`, `mediaSession.coordinator.canSetTrack`, and
|
|
75
|
+
* `mediaSession.coordinator.canSetTrackData` all being set to false. For more fine
|
|
76
|
+
* grained control over the local clients policies, call the `mediaSession.coordinator`
|
|
77
|
+
* directly.
|
|
78
|
+
*/
|
|
54
79
|
get viewOnly(): boolean;
|
|
55
80
|
set viewOnly(value: boolean);
|
|
81
|
+
/**
|
|
82
|
+
* Volume limiter used to temporarily reduce the videos volume when someone speaks in a meeting.
|
|
83
|
+
*/
|
|
56
84
|
get volumeLimiter(): VolumeLimiter;
|
|
57
|
-
|
|
58
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Registers a new event listener.
|
|
87
|
+
* @param event Name of the event to add.
|
|
88
|
+
* @param listener Function to call when the event is triggered.
|
|
89
|
+
*/
|
|
90
|
+
addEventListener(event: MediaPlayerSynchronizerEvents, listener: (evt: IMediaPlayerSynchronizerEvent) => void): this;
|
|
91
|
+
/**
|
|
92
|
+
* Un-registers an existing event listener.
|
|
93
|
+
* @param event Name of the event to remove.
|
|
94
|
+
* @param listener Function that was registered in call to `addEventListener()`.
|
|
95
|
+
*/
|
|
96
|
+
removeEventListener(event: MediaPlayerSynchronizerEvents, listener: (evt: IMediaPlayerSynchronizerEvent) => void): this;
|
|
97
|
+
/**
|
|
98
|
+
* Ends synchronization of the current media player.
|
|
99
|
+
*/
|
|
59
100
|
end(): void;
|
|
101
|
+
/**
|
|
102
|
+
* Begin a local seek operation.
|
|
103
|
+
*
|
|
104
|
+
* @remarks
|
|
105
|
+
* UI can call this when a user grabs a timeline scrubber and starts scrubbing the video to a
|
|
106
|
+
* new playback position. The synchronizer will being a new suspension which temporarily
|
|
107
|
+
* disconnects the client for the rest of the group for synchronization purposes. Calling
|
|
108
|
+
* `endSeek()` will end the suspension and seek the group to the users final seek position.
|
|
109
|
+
*/
|
|
60
110
|
beginSeek(): void;
|
|
111
|
+
/**
|
|
112
|
+
* Ends a seek operation that was started by calling `beginSeek()`.
|
|
113
|
+
* @param seekTo Playback position in seconds to seek the group to.
|
|
114
|
+
*/
|
|
61
115
|
endSeek(seekTo: number): void;
|
|
116
|
+
/**
|
|
117
|
+
* Tells the group to begin playing the current video.
|
|
118
|
+
*
|
|
119
|
+
* @remarks
|
|
120
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.play()` directly
|
|
121
|
+
* and instead use the synchronizers `play()` method.
|
|
122
|
+
*/
|
|
62
123
|
play(): void;
|
|
124
|
+
/**
|
|
125
|
+
* Tells the group to pause the current video.
|
|
126
|
+
*
|
|
127
|
+
* @remarks
|
|
128
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.pause()` directly
|
|
129
|
+
* and instead use the synchronizers `pause()` method.
|
|
130
|
+
*/
|
|
63
131
|
pause(): void;
|
|
132
|
+
/**
|
|
133
|
+
* Tells the group to seek the current video to a new playback position.
|
|
134
|
+
*
|
|
135
|
+
* @remarks
|
|
136
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.seekTo()` directly
|
|
137
|
+
* and instead use the synchronizers `seekTo()` method.
|
|
138
|
+
*/
|
|
64
139
|
seekTo(time: number): void;
|
|
140
|
+
/**
|
|
141
|
+
* Tells the group to change to a new track.
|
|
142
|
+
*
|
|
143
|
+
* @remarks
|
|
144
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.setTrack()` directly
|
|
145
|
+
* and instead use the synchronizers `setTrack()` method.
|
|
146
|
+
*/
|
|
65
147
|
setTrack(track: ExtendedMediaMetadata, waitPoints?: CoordinationWaitPoint[]): void;
|
|
148
|
+
/**
|
|
149
|
+
* Updates the current tracks data object.
|
|
150
|
+
*
|
|
151
|
+
* @remarks
|
|
152
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.setTrackData()` directly
|
|
153
|
+
* and instead use the synchronizers `setTrackData()` method.
|
|
154
|
+
*/
|
|
66
155
|
setTrackData(data: object | null): void;
|
|
67
156
|
private dispatchGroupAction;
|
|
68
157
|
private dispatchUserAction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaPlayerSynchronizer.d.ts","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAA4B,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAiE,qBAAqB,EAAE,qBAAqB,EAAE,iCAAiC,EAAoE,MAAM,0BAA0B,CAAC;AAC5P,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,WAAW,6BAA8B,SAAQ,MAAM;IACzD,OAAO,EAAE,iCAAiC,CAAC;CAC9C;AAED,oBAAY,6BAA6B;IACrC,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,UAAU,eAAe;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACrD,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0G;IACxI,OAAO,CAAC,MAAM,CAAC,aAAa,CAAoG;IAEhI,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"MediaPlayerSynchronizer.d.ts","sourceRoot":"","sources":["../src/MediaPlayerSynchronizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAA4B,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAiE,qBAAqB,EAAE,qBAAqB,EAAE,iCAAiC,EAAoE,MAAM,0BAA0B,CAAC;AAC5P,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,MAAM;IACzD;;OAEG;IACH,OAAO,EAAE,iCAAiC,CAAC;CAC9C;AAED;;GAEG;AACH,oBAAY,6BAA6B;IACrC;;OAEG;IACH,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,UAAU,eAAe;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACrD,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0G;IACxI,OAAO,CAAC,MAAM,CAAC,aAAa,CAAoG;IAEhI,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAoC;IAC5D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,sBAAsB,CAA6C;IAC3E,OAAO,CAAC,UAAU,CAAqB;IAEvC;;;;;OAKG;gBACS,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,IAAI;IAqIxF;;OAEG;IACH,IAAW,MAAM,IAAI,YAAY,CAEhC;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,qBAAqB,CAE/C;IAED;;;;;;;;;OASG;IACH,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAMjC;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,aAAa,CAExC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,6BAA6B,KAAK,IAAI,GAAG,IAAI;IAK3H;;;;OAIG;IACI,mBAAmB,CAAC,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,6BAA6B,KAAK,IAAI,GAAG,IAAI;IAK9H;;OAEG;IACI,GAAG,IAAI,IAAI;IAqBlB;;;;;;;;OAQG;IACI,SAAS,IAAI,IAAI;IASxB;;;OAGG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBpC;;;;;;OAMG;IACI,IAAI,IAAI,IAAI;IAQnB;;;;;;OAMG;IACI,KAAK,IAAI,IAAI;IAQpB;;;;;;OAMG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAYjC;;;;;;OAMG;IACI,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,UAAU,CAAC,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAOzF;;;;;;OAMG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,GAAC,IAAI,GAAG,IAAI;IAQ5C,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;YAQZ,aAAa;CAG9B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the
|
|
4
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
5
5
|
*/
|
|
6
6
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
7
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -17,13 +17,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
};
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.MediaPlayerSynchronizer = exports.MediaPlayerSynchronizerEvents = void 0;
|
|
20
|
-
const live_share_1 = require("@microsoft/live-share");
|
|
21
20
|
const events_1 = __importDefault(require("events"));
|
|
22
21
|
const MediaSessionExtensions_1 = require("./MediaSessionExtensions");
|
|
23
22
|
const VolumeLimiter_1 = require("./VolumeLimiter");
|
|
24
23
|
const internals_1 = require("./internals");
|
|
24
|
+
/**
|
|
25
|
+
* Events supported by `MediaPlayerSynchronizer` object.
|
|
26
|
+
*/
|
|
25
27
|
var MediaPlayerSynchronizerEvents;
|
|
26
28
|
(function (MediaPlayerSynchronizerEvents) {
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
27
32
|
MediaPlayerSynchronizerEvents["coordinatorstatechange"] = "coordinatorstatechange";
|
|
28
33
|
MediaPlayerSynchronizerEvents["groupaction"] = "groupaction";
|
|
29
34
|
MediaPlayerSynchronizerEvents["useraction"] = "useraction";
|
|
@@ -46,7 +51,6 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
46
51
|
*/
|
|
47
52
|
constructor(player, mediaSession, onEnd) {
|
|
48
53
|
super();
|
|
49
|
-
this._catchupFastSeekPeriod = new live_share_1.TimeInterval(0);
|
|
50
54
|
this._viewOnly = false;
|
|
51
55
|
this._expectedPlaybackState = 'none';
|
|
52
56
|
this._trackData = null;
|
|
@@ -56,7 +60,7 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
56
60
|
this._volumeLimiter = new VolumeLimiter_1.VolumeLimiter(player);
|
|
57
61
|
this._onEnd = onEnd;
|
|
58
62
|
// Listen for player state requests
|
|
59
|
-
mediaSession.
|
|
63
|
+
mediaSession.setRequestPlayerStateHandler(() => {
|
|
60
64
|
// Find playback state
|
|
61
65
|
let playbackState;
|
|
62
66
|
const src = this._player.currentSrc || this._player.src;
|
|
@@ -83,7 +87,7 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
83
87
|
trackData: this._trackData
|
|
84
88
|
};
|
|
85
89
|
return state;
|
|
86
|
-
};
|
|
90
|
+
});
|
|
87
91
|
// Listen for player events
|
|
88
92
|
this._onPlayerEvent = (evt) => {
|
|
89
93
|
if (evt.type != 'timeupdate') {
|
|
@@ -98,7 +102,7 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
98
102
|
// Handle case for YouTube player where user can pause/play video by clicking on it.
|
|
99
103
|
// - Videos don't always start at 0.0 seconds.
|
|
100
104
|
if (this._expectedPlaybackState != 'playing') {
|
|
101
|
-
if (
|
|
105
|
+
if (this._mediaSession.coordinator.canPlayPause && this._player.currentTime < 1.0) {
|
|
102
106
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.UserTappedVideoToPlay);
|
|
103
107
|
this.play();
|
|
104
108
|
}
|
|
@@ -173,18 +177,28 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
173
177
|
}
|
|
174
178
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SynchronizationStarted);
|
|
175
179
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
set catchupFastSeekPeriod(value) {
|
|
180
|
-
this._catchupFastSeekPeriod.seconds = value;
|
|
181
|
-
}
|
|
180
|
+
/**
|
|
181
|
+
* Media player being synchronized.
|
|
182
|
+
*/
|
|
182
183
|
get player() {
|
|
183
184
|
return this._player;
|
|
184
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Synchronizers media session.
|
|
188
|
+
*/
|
|
185
189
|
get mediaSession() {
|
|
186
190
|
return this._mediaSession;
|
|
187
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* If true the client is in a view only mode.
|
|
194
|
+
*
|
|
195
|
+
* @remarks
|
|
196
|
+
* Toggling this value to true results in `mediaSession.coordinator.canPlayPause`,
|
|
197
|
+
* `mediaSession.coordinator.canSeek`, `mediaSession.coordinator.canSetTrack`, and
|
|
198
|
+
* `mediaSession.coordinator.canSetTrackData` all being set to false. For more fine
|
|
199
|
+
* grained control over the local clients policies, call the `mediaSession.coordinator`
|
|
200
|
+
* directly.
|
|
201
|
+
*/
|
|
188
202
|
get viewOnly() {
|
|
189
203
|
return this._viewOnly;
|
|
190
204
|
}
|
|
@@ -192,18 +206,36 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
192
206
|
this._viewOnly = value;
|
|
193
207
|
this.mediaSession.coordinator.canPlayPause = !value;
|
|
194
208
|
this.mediaSession.coordinator.canSeek = !value;
|
|
209
|
+
this.mediaSession.coordinator.canSetTrack = !value;
|
|
210
|
+
this.mediaSession.coordinator.canSetTrackData = !value;
|
|
195
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Volume limiter used to temporarily reduce the videos volume when someone speaks in a meeting.
|
|
214
|
+
*/
|
|
196
215
|
get volumeLimiter() {
|
|
197
216
|
return this._volumeLimiter;
|
|
198
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Registers a new event listener.
|
|
220
|
+
* @param event Name of the event to add.
|
|
221
|
+
* @param listener Function to call when the event is triggered.
|
|
222
|
+
*/
|
|
199
223
|
addEventListener(event, listener) {
|
|
200
224
|
this.on(event, listener);
|
|
201
225
|
return this;
|
|
202
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Un-registers an existing event listener.
|
|
229
|
+
* @param event Name of the event to remove.
|
|
230
|
+
* @param listener Function that was registered in call to `addEventListener()`.
|
|
231
|
+
*/
|
|
203
232
|
removeEventListener(event, listener) {
|
|
204
233
|
this.off(event, listener);
|
|
205
234
|
return this;
|
|
206
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Ends synchronization of the current media player.
|
|
238
|
+
*/
|
|
207
239
|
end() {
|
|
208
240
|
if (this._onEnd) {
|
|
209
241
|
try {
|
|
@@ -223,6 +255,15 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
223
255
|
}
|
|
224
256
|
}
|
|
225
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* Begin a local seek operation.
|
|
260
|
+
*
|
|
261
|
+
* @remarks
|
|
262
|
+
* UI can call this when a user grabs a timeline scrubber and starts scrubbing the video to a
|
|
263
|
+
* new playback position. The synchronizer will being a new suspension which temporarily
|
|
264
|
+
* disconnects the client for the rest of the group for synchronization purposes. Calling
|
|
265
|
+
* `endSeek()` will end the suspension and seek the group to the users final seek position.
|
|
266
|
+
*/
|
|
226
267
|
beginSeek() {
|
|
227
268
|
if (this._seekSuspension) {
|
|
228
269
|
throw new Error(`MediaPlayerSynchronizer: cannot begin seek. A seek is already in progress.`);
|
|
@@ -230,6 +271,10 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
230
271
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.BeginSeekCalled);
|
|
231
272
|
this._seekSuspension = this._mediaSession.coordinator.beginSuspension();
|
|
232
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Ends a seek operation that was started by calling `beginSeek()`.
|
|
276
|
+
* @param seekTo Playback position in seconds to seek the group to.
|
|
277
|
+
*/
|
|
233
278
|
endSeek(seekTo) {
|
|
234
279
|
if (!this._seekSuspension) {
|
|
235
280
|
throw new Error(`MediaPlayerSynchronizer: cannot end seek. No seek is in progress.`);
|
|
@@ -244,18 +289,39 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
244
289
|
suspension.end(seekTo);
|
|
245
290
|
this.dispatchUserAction({ action: 'seekto', seekTime: seekTo });
|
|
246
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Tells the group to begin playing the current video.
|
|
294
|
+
*
|
|
295
|
+
* @remarks
|
|
296
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.play()` directly
|
|
297
|
+
* and instead use the synchronizers `play()` method.
|
|
298
|
+
*/
|
|
247
299
|
play() {
|
|
248
300
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PlayCalled);
|
|
249
301
|
this._expectedPlaybackState = 'playing';
|
|
250
302
|
this._mediaSession.coordinator.play();
|
|
251
303
|
this.dispatchUserAction({ action: 'play' });
|
|
252
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Tells the group to pause the current video.
|
|
307
|
+
*
|
|
308
|
+
* @remarks
|
|
309
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.pause()` directly
|
|
310
|
+
* and instead use the synchronizers `pause()` method.
|
|
311
|
+
*/
|
|
253
312
|
pause() {
|
|
254
313
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.PauseCalled);
|
|
255
314
|
this._expectedPlaybackState = 'paused';
|
|
256
315
|
this._mediaSession.coordinator.pause();
|
|
257
316
|
this.dispatchUserAction({ action: 'pause' });
|
|
258
317
|
}
|
|
318
|
+
/**
|
|
319
|
+
* Tells the group to seek the current video to a new playback position.
|
|
320
|
+
*
|
|
321
|
+
* @remarks
|
|
322
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.seekTo()` directly
|
|
323
|
+
* and instead use the synchronizers `seekTo()` method.
|
|
324
|
+
*/
|
|
259
325
|
seekTo(time) {
|
|
260
326
|
// Always seek player to new time.
|
|
261
327
|
// - This resolves an issue where the timeline scrubber can temporarily snap back to the original
|
|
@@ -265,11 +331,25 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
265
331
|
this._mediaSession.coordinator.seekTo(time);
|
|
266
332
|
this.dispatchUserAction({ action: 'seekto', seekTime: time });
|
|
267
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Tells the group to change to a new track.
|
|
336
|
+
*
|
|
337
|
+
* @remarks
|
|
338
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.setTrack()` directly
|
|
339
|
+
* and instead use the synchronizers `setTrack()` method.
|
|
340
|
+
*/
|
|
268
341
|
setTrack(track, waitPoints) {
|
|
269
342
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackCalled);
|
|
270
343
|
this._mediaSession.coordinator.setTrack(track, waitPoints);
|
|
271
344
|
this.dispatchUserAction({ action: 'settrack', metadata: track });
|
|
272
345
|
}
|
|
346
|
+
/**
|
|
347
|
+
* Updates the current tracks data object.
|
|
348
|
+
*
|
|
349
|
+
* @remarks
|
|
350
|
+
* For proper operation apps should avoid calling `mediaSession.coordinator.setTrackData()` directly
|
|
351
|
+
* and instead use the synchronizers `setTrackData()` method.
|
|
352
|
+
*/
|
|
273
353
|
setTrackData(data) {
|
|
274
354
|
this._logger.sendTelemetryEvent(internals_1.TelemetryEvents.MediaPlayerSynchronizer.SetTrackDataCalled);
|
|
275
355
|
this._trackData = data;
|
|
@@ -294,25 +374,7 @@ class MediaPlayerSynchronizer extends events_1.default {
|
|
|
294
374
|
}
|
|
295
375
|
catchupPlayer(time) {
|
|
296
376
|
return __awaiter(this, void 0, void 0, function* () {
|
|
297
|
-
|
|
298
|
-
// - more then 2 seconds behind.
|
|
299
|
-
// - fast seek hasn't been disabled.
|
|
300
|
-
// - the current playback rate is 1.0.
|
|
301
|
-
if (time >= (this._player.currentTime + 2.0) && this.catchupFastSeekPeriod > 0 && this._player.playbackRate == 1.0) {
|
|
302
|
-
// Fast seek to new position
|
|
303
|
-
const suspension = yield this._mediaSession.coordinator.beginSuspension();
|
|
304
|
-
const seekPeriod = Math.min(time - this._player.currentTime, this.catchupFastSeekPeriod);
|
|
305
|
-
const startTime = time - seekPeriod;
|
|
306
|
-
this._player.currentTime = startTime;
|
|
307
|
-
this._player.playbackRate = 4.0;
|
|
308
|
-
setTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
309
|
-
this._player.playbackRate = 1.0;
|
|
310
|
-
yield suspension.end();
|
|
311
|
-
}), (seekPeriod * 0.25) * 1000);
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
this._player.currentTime = time;
|
|
315
|
-
}
|
|
377
|
+
this._player.currentTime = time;
|
|
316
378
|
});
|
|
317
379
|
}
|
|
318
380
|
}
|
|
@@ -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":";AAAA;;;GAGG;;;;;;;;;;;;;;;AAGH,oDAAkC;AAClC,qEAA4P;AAE5P,mDAAgD;AAEhD,2CAA8C;AAY9C;;GAEG;AACH,IAAY,6BAOX;AAPD,WAAY,6BAA6B;IACrC;;OAEG;IACH,kFAAiD,CAAA;IACjD,4DAA2B,CAAA;IAC3B,0DAAyB,CAAA;AAC7B,CAAC,EAPW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAOxC;AAED;;;;;;;;GAQG;AACH,MAAa,uBAAwB,SAAQ,gBAAY;IAerD;;;;;OAKG;IACH,YAAY,MAAoB,EAAE,YAAmC,EAAE,KAAiB;QACpF,KAAK,EAAE,CAAC;QAXJ,cAAS,GAAG,KAAK,CAAC;QAClB,2BAAsB,GAAsC,MAAM,CAAC;QACnE,eAAU,GAAgB,IAAI,CAAC;QAUnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,6BAAa,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,mCAAmC;QACnC,YAAY,CAAC,4BAA4B,CAAC,GAAG,EAAE;YAC3C,sBAAsB;YACtB,IAAI,aAAgD,CAAC;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YACxD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACpB,aAAa,GAAG,OAAO,CAAC;aAC3B;iBAAM,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE;gBACxE,aAAa,GAAG,MAAM,CAAC;aAC1B;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC5B,aAAa,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,aAAa,GAAG,SAAS,CAAC;aAC7B;YAED,MAAM,KAAK,GAAG;gBACV,QAAQ,EAAE,EAAE,eAAe,EAAE,GAAG,EAA2B;gBAC3D,aAAa,EAAE,aAAa;gBAC5B,aAAa,EAAE;oBACX,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;oBAClC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;oBACvC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;iBAClC;gBACD,SAAS,EAAE,IAAI,CAAC,UAAU;aAC7B,CAAC;YAEF,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,CAAC,cAAc,GAAG,CAAC,GAAU,EAAE,EAAE;YACjC,IAAI,GAAG,CAAC,IAAI,IAAI,YAAY,EAAE;gBAC1B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,WAAW,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC,CAAC,CAAC;aAChH;YAED,QAAQ,GAAG,CAAC,IAAI,EAAE;gBACd,KAAK,gBAAgB;oBACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;oBACxD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,MAAM;gBACV,KAAK,SAAS;oBACV,oFAAoF;oBACpF,8CAA8C;oBAC9C,IAAI,IAAI,CAAC,sBAAsB,IAAI,SAAS,EAAE;wBAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,EAAE;4BAC/E,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;4BAC/F,IAAI,CAAC,IAAI,EAAE,CAAC;yBACf;qBACJ;oBACD,MAAM;gBACV,KAAK,YAAY;oBACb,uCAAuC;oBACvC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE;wBACjF,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,CAAC;wBACnG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;qBACnC;oBACD,MAAM;gBACV,KAAK,SAAS;oBACV,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,CAAC;oBACnG,MAAM;aACb;QACL,CAAC,CAAC;QAEF,yCAAyC;QACzC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,sDAA6B,CAAC,sBAAsB,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAEzH,iCAAiC;QACjC,KAAK,MAAM,MAAM,IAAI,uBAAuB,CAAC,eAAe,EAAE;YAC1D,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,OAA0C,EAAE,EAAE;gBACvF,QAAQ,OAAO,CAAC,MAAM,EAAE;oBACpB,KAAK,MAAM;wBACP,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;wBACxC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;4BACrB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;4BACpF,IAAI,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,EAAE;gCACvE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,4BAA4B,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAA;gCACzI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,QAAS,CAAC;6BAChD;4BACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;yBACvB;wBACD,MAAM;oBACV,KAAK,OAAO;wBACR,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;wBACrF,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC;wBACvC,IAAI,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,EAAE;4BACvE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,4BAA4B,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAA;4BACzI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,QAAS,CAAC;yBAChD;wBACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBACrB,MAAM;oBACV,KAAK,QAAQ;wBACT,IAAI,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE;4BACrC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,YAAY,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAC;4BAC1H,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,QAAS,CAAC;yBAChD;wBACD,MAAM;oBACV,KAAK,UAAU;wBACX,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;wBACxF,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;wBACrC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,QAAS,CAAC,eAAe,CAAC;wBACrD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACpB,MAAM;oBACV,KAAK,YAAY;wBACb,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;wBAC1F,MAAM;oBACV,KAAK,SAAS;wBACV,IAAI,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE;4BACrC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,aAAa,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAC,CAAC,CAAC;4BAC3H,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAS,CAAC,CAAC;yBACzC;wBACD,MAAM;iBACb;gBAED,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;SACN;QAED,6BAA6B;QAC7B,KAAK,MAAM,KAAK,IAAI,uBAAuB,CAAC,aAAa,EAAE;YACvD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7D;QAED,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,CAAC;IACpG,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;;;;;;;;OASG;IACH,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,QAAQ,CAAC,KAAc;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,KAAoC,EAAE,QAAsD;QAChH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,KAAoC,EAAE,QAAsD;QACnH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,GAAG;QACN,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI;gBACA,8BAA8B;gBAC9B,KAAK,MAAM,MAAM,IAAI,uBAAuB,CAAC,eAAe,EAAE;oBAC1D,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;iBACrD;gBAED,6BAA6B;gBAC7B,KAAK,MAAM,KAAK,IAAI,uBAAuB,CAAC,aAAa,EAAE;oBACvD,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;iBAChE;gBAED,gBAAgB;gBAChB,IAAI,CAAC,MAAM,EAAE,CAAC;aACjB;oBAAS;gBACN,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;aAC3B;SACJ;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,SAAS;QACZ,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;SACjG;QAED,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACzF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,MAAc;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;SACxF;QAED,uCAAuC;QACvC,iGAAiG;QACjG,cAAc;QACd,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAElC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,aAAa,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;QACjH,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEvB,IAAI,CAAC,kBAAkB,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;OAMG;IACI,IAAI;QACP,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACpF,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAI,CAAC,kBAAkB,CAAC,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACI,KAAK;QACR,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACrF,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEvC,IAAI,CAAC,kBAAkB,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,IAAY;QACtB,kCAAkC;QAClC,iGAAiG;QACjG,cAAc;QACd,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,YAAY,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,kBAAkB,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAAC,KAA4B,EAAE,UAAoC;QAC9E,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QACxF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAE3D,IAAI,CAAC,kBAAkB,CAAC,EAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CAAC,IAAiB;QACjC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,2BAAe,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;QAC5F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,kBAAkB,CAAC,EAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IAChE,CAAC;IAEO,mBAAmB,CAAC,OAA0C,EAAE,KAAK,GAAG,KAAK;QACjF,IAAI,KAAK,EAAE;YACP,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,WAAW,EAAE,EAAC,IAAI,EAAE,6BAA6B,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACnJ;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,WAAW,EAAE,EAAC,IAAI,EAAE,6BAA6B,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;SAC7H;IACL,CAAC;IAEO,kBAAkB,CAAC,OAA0C,EAAE,KAAK,GAAG,KAAK;QAChF,IAAI,KAAK,EAAE;YACP,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,6BAA6B,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACjJ;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,6BAA6B,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;SAC3H;IACL,CAAC;IAEa,aAAa,CAAC,IAAY;;YACpC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QACpC,CAAC;KAAA;;AA1XL,0DA2XC;AA1XkB,uCAAe,GAAiC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACzH,qCAAa,GAAa,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the
|
|
4
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.MediaSessionActionThrottler = void 0;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the
|
|
4
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.MediaSessionCoordinatorEvents = void 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
5
|
import { MediaSessionActionThrottler } from './MediaSessionActionThrottler';
|
|
6
6
|
import { ExtendedMediaSessionActionDetails } from './MediaSessionExtensions';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the
|
|
4
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.RepeatedActionThrottler = void 0;
|
package/bin/VolumeLimiter.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
5
|
import { IMediaPlayer } from './IMediaPlayer';
|
|
6
6
|
export declare enum LevelType {
|
|
@@ -24,7 +24,7 @@ export declare class VolumeLimiter {
|
|
|
24
24
|
* Time, in seconds, that the volume should be lowered.
|
|
25
25
|
*
|
|
26
26
|
* @remarks
|
|
27
|
-
* Applications should periodically call `lowerVolume()` to keep
|
|
27
|
+
* Applications should periodically call `lowerVolume()` to keep the volume lowered.
|
|
28
28
|
*/
|
|
29
29
|
get duration(): number;
|
|
30
30
|
set duration(value: number);
|
package/bin/VolumeLimiter.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the
|
|
4
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.VolumeLimiter = exports.LevelType = void 0;
|
|
@@ -31,7 +31,7 @@ class VolumeLimiter {
|
|
|
31
31
|
* Time, in seconds, that the volume should be lowered.
|
|
32
32
|
*
|
|
33
33
|
* @remarks
|
|
34
|
-
* Applications should periodically call `lowerVolume()` to keep
|
|
34
|
+
* Applications should periodically call `lowerVolume()` to keep the volume lowered.
|
|
35
35
|
*/
|
|
36
36
|
get duration() {
|
|
37
37
|
return this._duration.seconds;
|
package/bin/index.d.ts
CHANGED
package/bin/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the
|
|
4
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
5
5
|
*/
|
|
6
6
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
7
|
if (k2 === undefined) k2 = k;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the
|
|
3
|
+
* Licensed under the Microsoft Live Share SDK License.
|
|
4
4
|
*/
|
|
5
5
|
/// <reference types="node" />
|
|
6
6
|
import { IEvent, IEphemeralEvent, TimeInterval, IRuntimeSignaler } from '@microsoft/live-share';
|
|
@@ -11,6 +11,9 @@ import { GroupTransportState, ITransportState } from './GroupTransportState';
|
|
|
11
11
|
import { GroupPlaybackPosition } from './GroupPlaybackPosition';
|
|
12
12
|
import { IMediaPlayerState } from '../EphemeralMediaSessionCoordinator';
|
|
13
13
|
import { GroupPlaybackTrackData, IPlaybackTrackData } from './GroupPlaybackTrackData';
|
|
14
|
+
/**
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
14
17
|
export interface IPositionUpdateEvent extends IEphemeralEvent {
|
|
15
18
|
track: IPlaybackTrack;
|
|
16
19
|
trackData: IPlaybackTrackData;
|
|
@@ -19,24 +22,42 @@ export interface IPositionUpdateEvent extends IEphemeralEvent {
|
|
|
19
22
|
position: number;
|
|
20
23
|
waitPoint?: CoordinationWaitPoint;
|
|
21
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* @hidden
|
|
27
|
+
*/
|
|
22
28
|
export interface ITransportCommandEvent extends IEphemeralEvent {
|
|
23
29
|
track: IPlaybackTrack;
|
|
24
30
|
position: number;
|
|
25
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* @hidden
|
|
34
|
+
*/
|
|
26
35
|
export interface ISetTrackEvent extends IEphemeralEvent {
|
|
27
36
|
metadata: ExtendedMediaMetadata | null;
|
|
28
37
|
waitPoints: CoordinationWaitPoint[];
|
|
29
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* @hidden
|
|
41
|
+
*/
|
|
30
42
|
export interface ISetTrackDataEvent extends IEphemeralEvent {
|
|
31
43
|
data: object | null;
|
|
32
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* @hidden
|
|
47
|
+
*/
|
|
33
48
|
export interface ITriggerActionEvent extends IEvent {
|
|
34
49
|
details: ExtendedMediaSessionActionDetails;
|
|
35
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* @hidden
|
|
53
|
+
*/
|
|
36
54
|
export declare enum GroupCoordinatorStateEvents {
|
|
37
55
|
newwaitpoint = "newwaitpoint",
|
|
38
56
|
triggeraction = "triggeraction"
|
|
39
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* @hidden
|
|
60
|
+
*/
|
|
40
61
|
export declare class GroupCoordinatorState extends EventEmitter {
|
|
41
62
|
private readonly _runtime;
|
|
42
63
|
private readonly _logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupCoordinatorState.d.ts","sourceRoot":"","sources":["../../src/internals/GroupCoordinatorState.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAkB,YAAY,EAAE,gBAAgB,EAA4B,MAAM,uBAAuB,CAAC;AAC1I,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC/J,OAAO,EAAE,kBAAkB,EAA4B,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAA4B,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAA2B,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG/G,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,eAAe,CAAC;IAC3B,aAAa,EAAE,iCAAiC,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC3D,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACnD,QAAQ,EAAE,qBAAqB,GAAC,IAAI,CAAC;IACrC,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACvD,IAAI,EAAE,MAAM,GAAC,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,MAAM;
|
|
1
|
+
{"version":3,"file":"GroupCoordinatorState.d.ts","sourceRoot":"","sources":["../../src/internals/GroupCoordinatorState.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAkB,YAAY,EAAE,gBAAgB,EAA4B,MAAM,uBAAuB,CAAC;AAC1I,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC/J,OAAO,EAAE,kBAAkB,EAA4B,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAA4B,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAA2B,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG/G;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,eAAe,CAAC;IAC3B,aAAa,EAAE,iCAAiC,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC3D,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe;IACnD,QAAQ,EAAE,qBAAqB,GAAC,IAAI,CAAC;IACrC,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACvD,IAAI,EAAE,MAAM,GAAC,IAAI,CAAC;CACrB;AAED;;GAEG;AACF,MAAM,WAAW,mBAAoB,SAAQ,MAAM;IAChD,OAAO,EAAE,iCAAiC,CAAC;CAC9C;AAED;;GAEG;AACH,oBAAY,2BAA2B;IACnC,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;CAClC;AAED;;GAEG;AACF,qBAAa,qBAAsB,SAAQ,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAe;IACjD,OAAO,CAAC,oBAAoB,CAA0B;IAGtD,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,iBAAiB,CAAwB;IAGjD,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,UAAU,CAAC,CAAwB;IAM3C,OAAO,CAAC,gBAAgB,CAA6C;IACrE,OAAO,CAAC,oBAAoB,CAAa;gBAE5B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB;IA8D1J,IAAW,aAAa,IAAI,kBAAkB,CAE7C;IAED,IAAW,iBAAiB,IAAI,sBAAsB,CAErD;IAED,IAAW,cAAc,IAAI,mBAAmB,CAE/C;IAED,IAAW,gBAAgB,IAAI,qBAAqB,CAEnD;IAED,IAAW,SAAS,IAAI,qBAAqB,GAAC,SAAS,CAEtD;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAEM,eAAe,CAAC,SAAS,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAYxD,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAYvC,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAyBlF,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAe3D,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAcnE,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IA2C3E,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IA+DjE,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgEnD,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,iBAAiB;CAO5B"}
|