timingsrc 1.1.17
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/LICENSE +21 -0
- package/README.md +47 -0
- package/build/es2019/factories/default-set-timingsrc.d.ts +3 -0
- package/build/es2019/factories/default-set-timingsrc.d.ts.map +1 -0
- package/build/es2019/factories/default-set-timingsrc.js +7 -0
- package/build/es2019/factories/default-set-timingsrc.js.map +1 -0
- package/build/es2019/factories/set-current-time.d.ts +3 -0
- package/build/es2019/factories/set-current-time.d.ts.map +1 -0
- package/build/es2019/factories/set-current-time.js +10 -0
- package/build/es2019/factories/set-current-time.js.map +1 -0
- package/build/es2019/factories/set-playback-rate.d.ts +3 -0
- package/build/es2019/factories/set-playback-rate.d.ts.map +1 -0
- package/build/es2019/factories/set-playback-rate.js +13 -0
- package/build/es2019/factories/set-playback-rate.js.map +1 -0
- package/build/es2019/factories/set-timingsrc-with-custom-update-function.d.ts +3 -0
- package/build/es2019/factories/set-timingsrc-with-custom-update-function.d.ts.map +1 -0
- package/build/es2019/factories/set-timingsrc-with-custom-update-function.js +10 -0
- package/build/es2019/factories/set-timingsrc-with-custom-update-function.js.map +1 -0
- package/build/es2019/factories/set-timingsrc.d.ts +3 -0
- package/build/es2019/factories/set-timingsrc.d.ts.map +1 -0
- package/build/es2019/factories/set-timingsrc.js +4 -0
- package/build/es2019/factories/set-timingsrc.js.map +1 -0
- package/build/es2019/factories/update-gradually.d.ts +3 -0
- package/build/es2019/factories/update-gradually.d.ts.map +1 -0
- package/build/es2019/factories/update-gradually.js +17 -0
- package/build/es2019/factories/update-gradually.js.map +1 -0
- package/build/es2019/factories/update-media-element.d.ts +3 -0
- package/build/es2019/factories/update-media-element.d.ts.map +1 -0
- package/build/es2019/factories/update-media-element.js +38 -0
- package/build/es2019/factories/update-media-element.js.map +1 -0
- package/build/es2019/factories/update-stepwise-factory.d.ts +3 -0
- package/build/es2019/factories/update-stepwise-factory.d.ts.map +1 -0
- package/build/es2019/factories/update-stepwise-factory.js +37 -0
- package/build/es2019/factories/update-stepwise-factory.js.map +1 -0
- package/build/es2019/factories/window.d.ts +3 -0
- package/build/es2019/factories/window.d.ts.map +1 -0
- package/build/es2019/factories/window.js +2 -0
- package/build/es2019/factories/window.js.map +1 -0
- package/build/es2019/functions/pause.d.ts +2 -0
- package/build/es2019/functions/pause.d.ts.map +1 -0
- package/build/es2019/functions/pause.js +6 -0
- package/build/es2019/functions/pause.js.map +1 -0
- package/build/es2019/functions/play.d.ts +2 -0
- package/build/es2019/functions/play.d.ts.map +1 -0
- package/build/es2019/functions/play.js +6 -0
- package/build/es2019/functions/play.js.map +1 -0
- package/build/es2019/interfaces/index.d.ts +2 -0
- package/build/es2019/interfaces/index.d.ts.map +1 -0
- package/build/es2019/interfaces/index.js +2 -0
- package/build/es2019/interfaces/index.js.map +1 -0
- package/build/es2019/interfaces/update-vector.d.ts +5 -0
- package/build/es2019/interfaces/update-vector.d.ts.map +1 -0
- package/build/es2019/interfaces/update-vector.js +2 -0
- package/build/es2019/interfaces/update-vector.js.map +1 -0
- package/build/es2019/module.d.ts +8 -0
- package/build/es2019/module.d.ts.map +1 -0
- package/build/es2019/module.js +20 -0
- package/build/es2019/module.js.map +1 -0
- package/build/es2019/types/default-timingsrc-factory.d.ts +7 -0
- package/build/es2019/types/default-timingsrc-factory.d.ts.map +1 -0
- package/build/es2019/types/default-timingsrc-factory.js +2 -0
- package/build/es2019/types/default-timingsrc-factory.js.map +1 -0
- package/build/es2019/types/index.d.ts +19 -0
- package/build/es2019/types/index.d.ts.map +1 -0
- package/build/es2019/types/index.js +19 -0
- package/build/es2019/types/index.js.map +1 -0
- package/build/es2019/types/pause-function.d.ts +2 -0
- package/build/es2019/types/pause-function.d.ts.map +1 -0
- package/build/es2019/types/pause-function.js +2 -0
- package/build/es2019/types/pause-function.js.map +1 -0
- package/build/es2019/types/play-function.d.ts +2 -0
- package/build/es2019/types/play-function.d.ts.map +1 -0
- package/build/es2019/types/play-function.js +2 -0
- package/build/es2019/types/play-function.js.map +1 -0
- package/build/es2019/types/prepare-timing-state-vector-function.d.ts +3 -0
- package/build/es2019/types/prepare-timing-state-vector-function.d.ts.map +1 -0
- package/build/es2019/types/prepare-timing-state-vector-function.js +2 -0
- package/build/es2019/types/prepare-timing-state-vector-function.js.map +1 -0
- package/build/es2019/types/set-current-time-factory.d.ts +3 -0
- package/build/es2019/types/set-current-time-factory.d.ts.map +1 -0
- package/build/es2019/types/set-current-time-factory.js +2 -0
- package/build/es2019/types/set-current-time-factory.js.map +1 -0
- package/build/es2019/types/set-current-time-function.d.ts +2 -0
- package/build/es2019/types/set-current-time-function.d.ts.map +1 -0
- package/build/es2019/types/set-current-time-function.js +2 -0
- package/build/es2019/types/set-current-time-function.js.map +1 -0
- package/build/es2019/types/set-playback-rate-factory.d.ts +3 -0
- package/build/es2019/types/set-playback-rate-factory.d.ts.map +1 -0
- package/build/es2019/types/set-playback-rate-factory.js +2 -0
- package/build/es2019/types/set-playback-rate-factory.js.map +1 -0
- package/build/es2019/types/set-playback-rate-function.d.ts +2 -0
- package/build/es2019/types/set-playback-rate-function.d.ts.map +1 -0
- package/build/es2019/types/set-playback-rate-function.js +2 -0
- package/build/es2019/types/set-playback-rate-function.js.map +1 -0
- package/build/es2019/types/set-timingsrc-factory.d.ts +5 -0
- package/build/es2019/types/set-timingsrc-factory.d.ts.map +1 -0
- package/build/es2019/types/set-timingsrc-factory.js +2 -0
- package/build/es2019/types/set-timingsrc-factory.js.map +1 -0
- package/build/es2019/types/set-timingsrc-function.d.ts +4 -0
- package/build/es2019/types/set-timingsrc-function.d.ts.map +1 -0
- package/build/es2019/types/set-timingsrc-function.js +2 -0
- package/build/es2019/types/set-timingsrc-function.js.map +1 -0
- package/build/es2019/types/set-timingsrc-with-custom-update-function-factory.d.ts +5 -0
- package/build/es2019/types/set-timingsrc-with-custom-update-function-factory.d.ts.map +1 -0
- package/build/es2019/types/set-timingsrc-with-custom-update-function-factory.js +2 -0
- package/build/es2019/types/set-timingsrc-with-custom-update-function-factory.js.map +1 -0
- package/build/es2019/types/set-timingsrc-with-custom-update-function-function.d.ts +5 -0
- package/build/es2019/types/set-timingsrc-with-custom-update-function-function.d.ts.map +1 -0
- package/build/es2019/types/set-timingsrc-with-custom-update-function-function.js +2 -0
- package/build/es2019/types/set-timingsrc-with-custom-update-function-function.js.map +1 -0
- package/build/es2019/types/update-function.d.ts +4 -0
- package/build/es2019/types/update-function.d.ts.map +1 -0
- package/build/es2019/types/update-function.js +2 -0
- package/build/es2019/types/update-function.js.map +1 -0
- package/build/es2019/types/update-gradually-factory.d.ts +3 -0
- package/build/es2019/types/update-gradually-factory.d.ts.map +1 -0
- package/build/es2019/types/update-gradually-factory.js +2 -0
- package/build/es2019/types/update-gradually-factory.js.map +1 -0
- package/build/es2019/types/update-media-element-factory.d.ts +7 -0
- package/build/es2019/types/update-media-element-factory.d.ts.map +1 -0
- package/build/es2019/types/update-media-element-factory.js +2 -0
- package/build/es2019/types/update-media-element-factory.js.map +1 -0
- package/build/es2019/types/update-media-element-function.d.ts +2 -0
- package/build/es2019/types/update-media-element-function.d.ts.map +1 -0
- package/build/es2019/types/update-media-element-function.js +2 -0
- package/build/es2019/types/update-media-element-function.js.map +1 -0
- package/build/es2019/types/update-stepwise-factory-factory.d.ts +4 -0
- package/build/es2019/types/update-stepwise-factory-factory.d.ts.map +1 -0
- package/build/es2019/types/update-stepwise-factory-factory.js +2 -0
- package/build/es2019/types/update-stepwise-factory-factory.js.map +1 -0
- package/build/es2019/types/update-stepwise-factory.d.ts +3 -0
- package/build/es2019/types/update-stepwise-factory.d.ts.map +1 -0
- package/build/es2019/types/update-stepwise-factory.js +2 -0
- package/build/es2019/types/update-stepwise-factory.js.map +1 -0
- package/build/es2019/types/window-factory.d.ts +2 -0
- package/build/es2019/types/window-factory.d.ts.map +1 -0
- package/build/es2019/types/window-factory.js +2 -0
- package/build/es2019/types/window-factory.js.map +1 -0
- package/build/es5/bundle.js +236 -0
- package/package.json +79 -0
- package/src/factories/default-set-timingsrc.ts +20 -0
- package/src/factories/set-current-time.ts +13 -0
- package/src/factories/set-playback-rate.ts +18 -0
- package/src/factories/set-timingsrc-with-custom-update-function.ts +19 -0
- package/src/factories/set-timingsrc.ts +6 -0
- package/src/factories/update-gradually.ts +22 -0
- package/src/factories/update-media-element.ts +38 -0
- package/src/factories/update-stepwise-factory.ts +51 -0
- package/src/factories/window.ts +3 -0
- package/src/functions/pause.ts +5 -0
- package/src/functions/play.ts +5 -0
- package/src/interfaces/index.ts +1 -0
- package/src/interfaces/update-vector.ts +5 -0
- package/src/module.ts +31 -0
- package/src/tsconfig.json +6 -0
- package/src/types/default-timingsrc-factory.ts +13 -0
- package/src/types/index.ts +18 -0
- package/src/types/pause-function.ts +1 -0
- package/src/types/play-function.ts +1 -0
- package/src/types/prepare-timing-state-vector-function.ts +3 -0
- package/src/types/set-current-time-factory.ts +3 -0
- package/src/types/set-current-time-function.ts +1 -0
- package/src/types/set-playback-rate-factory.ts +3 -0
- package/src/types/set-playback-rate-function.ts +1 -0
- package/src/types/set-timingsrc-factory.ts +8 -0
- package/src/types/set-timingsrc-function.ts +8 -0
- package/src/types/set-timingsrc-with-custom-update-function-factory.ts +8 -0
- package/src/types/set-timingsrc-with-custom-update-function-function.ts +10 -0
- package/src/types/update-function.ts +4 -0
- package/src/types/update-gradually-factory.ts +3 -0
- package/src/types/update-media-element-factory.ts +12 -0
- package/src/types/update-media-element-function.ts +8 -0
- package/src/types/update-stepwise-factory-factory.ts +4 -0
- package/src/types/update-stepwise-factory.ts +3 -0
- package/src/types/window-factory.ts +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Christoph Guttandin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# timingsrc
|
|
2
|
+
|
|
3
|
+
**A library to synchronize a MediaElement with a TimingObject.**
|
|
4
|
+
|
|
5
|
+
[](https://github.com/chrisguttandin/timingsrc/network/dependencies)
|
|
6
|
+
[](https://www.npmjs.com/package/timingsrc)
|
|
7
|
+
|
|
8
|
+
This libary is meant to synchronize a [`MediaElement`](https://html.spec.whatwg.org/multipage/media.html#htmlmediaelement) (aka an `<audio/>` or `<video/>` element) with a [`TimingObject`](https://webtiming.github.io/timingobject/#dfn-timing-object).
|
|
9
|
+
|
|
10
|
+
The [Timing Object specification](https://webtiming.github.io/timingobject/) defines an extension of the `MediaElement` which would add [`timingsrc`](https://webtiming.github.io/timingobject/#dom-htmlmediaelement-timingsrc) property. But so far this is not supported in any browser. Therefore this package can be used as a replacement as it provides the same functionality. But instead of patching the native protoypes this libary provides a function which can be used without modifying any built-in browser objects.
|
|
11
|
+
|
|
12
|
+
The code of this library is heavily inspired by the [`mediaSync()`](https://github.com/webtiming/timingsrc/blob/master/v1/mediasync/mediasync.js#L89) function that came with v1 of the [timingsrc](https://github.com/webtiming/timingsrc) library. However all the code has been completely rewritten in TypeScript with the goal to make it more testable and easier to reason about.
|
|
13
|
+
|
|
14
|
+
The actual synchronization is handled by two different algorithms. By default the `userAgent` string gets parsed to determine which algorithm to use. Since Safari is not capable of processing changes of the `currentTime` or the `plackbackRate` of a `MediaElement` in a timely manner the position in Safari is set abbruptly whenever it changes. Firefox and Chromium based browsers happily handle frequent changes of both properties which is why they are adjusted gradually to keep a `MediaElement` in sync with a `TimingObject` in these browsers. The technique for doing so has been taken from [Tom Jenkinon](https://github.com/tjenkinson)'s [media-element-syncer](https://github.com/tjenkinson/media-element-syncer).
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
The `timingsrc` package is published on [npm](https://www.npmjs.com/package/timingsrc) and can be installed as usual.
|
|
19
|
+
|
|
20
|
+
```shell
|
|
21
|
+
npm install timingsrc
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The main function exported by this package is the `setTimingsrc()` function. It can be thought of as the replacement of the `timingsrc` property on a `MediaElement`. It can for example be used with a `TimingObject` created with the [`timing-object`](https://github.com/chrisguttandin/timing-object) package.
|
|
25
|
+
|
|
26
|
+
```js
|
|
27
|
+
import { TimingObject } from 'timing-object';
|
|
28
|
+
import { setTimingsrc } from 'timingsrc';
|
|
29
|
+
|
|
30
|
+
const mediaElement = document.getElementsByTagName('video')[0];
|
|
31
|
+
const timingObject = new TimingObject();
|
|
32
|
+
|
|
33
|
+
const deleteTimingsrc = setTimingsrc(mediaElement, timingObject);
|
|
34
|
+
|
|
35
|
+
// The synchronization can be stopped again at any point in time.
|
|
36
|
+
deleteTimingsrc();
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
It is also possible to configure a custom version of the `setTimingsrc()` function. The following would build a `setTimingSrc()` function which does not include the fallback for stepwise updates which is necessary in Safari.
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
import { createSetTimingsrc, createUpdateGradually, setTimingsrcWithCustomUpdateFunction } from 'timingsrc';
|
|
43
|
+
|
|
44
|
+
const customSetTimingsrc = createSetTimingsrc(setTimingsrcWithCustomUpdateFunction, createUpdateGradually(0.5, 1, 0.025));
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Please take a look at the [video-synchronization-demo](https://github.com/chrisguttandin/video-synchronization-demo) for a more comprehensive example.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-set-timingsrc.d.ts","sourceRoot":"","sources":["../../../src/factories/default-set-timingsrc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAyB,MAAM,UAAU,CAAC;AAM9E,eAAO,MAAM,yBAAyB,EAAE,2BAa7B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const DEFAULT_THRESHOLD = 1;
|
|
2
|
+
const DEFAULT_TIME_CONSTANT = 0.5;
|
|
3
|
+
const DEFAULT_TOLERANCE = 0.025;
|
|
4
|
+
export const createDefaultSetTimingsrc = (createSetTimingsrc, createUpdateGradually, createUpdateStepwise, setTimingsrcWithCustomUpdateFunction, window) => window !== null && window.navigator.userAgent.includes('Safari') && !window.navigator.userAgent.includes('Chrome')
|
|
5
|
+
? (...args) => createSetTimingsrc(setTimingsrcWithCustomUpdateFunction, createUpdateStepwise(DEFAULT_TOLERANCE))(...args)
|
|
6
|
+
: createSetTimingsrc(setTimingsrcWithCustomUpdateFunction, createUpdateGradually(DEFAULT_TIME_CONSTANT, DEFAULT_THRESHOLD, DEFAULT_TOLERANCE));
|
|
7
|
+
//# sourceMappingURL=default-set-timingsrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-set-timingsrc.js","sourceRoot":"","sources":["../../../src/factories/default-set-timingsrc.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC,MAAM,CAAC,MAAM,yBAAyB,GAAgC,CAClE,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,oCAAoC,EACpC,MAAM,EACR,EAAE,CACA,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC9G,CAAC,CAAC,CAAC,GAAG,IAAuC,EAAE,EAAE,CAC3C,kBAAkB,CAAC,oCAAoC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAChH,CAAC,CAAC,kBAAkB,CACd,oCAAoC,EACpC,qBAAqB,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CACrF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-current-time.d.ts","sourceRoot":"","sources":["../../../src/factories/set-current-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,eAAO,MAAM,oBAAoB,EAAE,sBAUlC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const createSetCurrentTime = (currentTimeAssignments) => {
|
|
2
|
+
return (mediaElement, previousValue, nextValue) => {
|
|
3
|
+
const currentTimeAssignment = currentTimeAssignments.get(mediaElement);
|
|
4
|
+
if (currentTimeAssignment === undefined || currentTimeAssignment[0] !== previousValue || currentTimeAssignment[1] !== nextValue) {
|
|
5
|
+
mediaElement.currentTime = nextValue;
|
|
6
|
+
currentTimeAssignments.set(mediaElement, [mediaElement.currentTime, nextValue]);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=set-current-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-current-time.js","sourceRoot":"","sources":["../../../src/factories/set-current-time.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAA2B,CAAC,sBAAsB,EAAE,EAAE;IACnF,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QAC9C,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEvE,IAAI,qBAAqB,KAAK,SAAS,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,aAAa,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAC7H,YAAY,CAAC,WAAW,GAAG,SAAS,CAAC;YAErC,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;SACnF;IACL,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-playback-rate.d.ts","sourceRoot":"","sources":["../../../src/factories/set-playback-rate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,qBAAqB,EAAE,uBAenC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const createSetPlaybackRate = (playbackRateAssignments) => {
|
|
2
|
+
return (mediaElement, previousValue, nextValue) => {
|
|
3
|
+
const playbackRateAssignment = playbackRateAssignments.get(mediaElement);
|
|
4
|
+
if (playbackRateAssignment === undefined ||
|
|
5
|
+
playbackRateAssignment[0] !== previousValue ||
|
|
6
|
+
playbackRateAssignment[1] !== nextValue) {
|
|
7
|
+
// There is currently a bug in Firefox which causes problems when switching back to a playbackRate of exactly 1.
|
|
8
|
+
mediaElement.playbackRate = nextValue === 1 ? (previousValue > 1 ? 1.00001 : 0.99999) : nextValue;
|
|
9
|
+
playbackRateAssignments.set(mediaElement, [mediaElement.playbackRate, nextValue]);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=set-playback-rate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-playback-rate.js","sourceRoot":"","sources":["../../../src/factories/set-playback-rate.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAA4B,CAAC,uBAAuB,EAAE,EAAE;IACtF,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QAC9C,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEzE,IACI,sBAAsB,KAAK,SAAS;YACpC,sBAAsB,CAAC,CAAC,CAAC,KAAK,aAAa;YAC3C,sBAAsB,CAAC,CAAC,CAAC,KAAK,SAAS,EACzC;YACE,gHAAgH;YAChH,YAAY,CAAC,YAAY,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAElG,uBAAuB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;SACrF;IACL,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-timingsrc-with-custom-update-function.d.ts","sourceRoot":"","sources":["../../../src/factories/set-timingsrc-with-custom-update-function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4CAA4C,EAAE,MAAM,UAAU,CAAC;AAExE,eAAO,MAAM,0CAA0C,EAAE,4CAgBxD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const createSetTimingsrcWithCustomUpdateFunction = (animationFrame, updateMediaElement) => {
|
|
2
|
+
return (mediaElement, timingObject, updateFunction, prepareTimingStateVector = null) => animationFrame()(() => {
|
|
3
|
+
const { currentTime, duration, playbackRate } = mediaElement;
|
|
4
|
+
const timingStateVector = timingObject.query();
|
|
5
|
+
const { position, velocity } = updateFunction(prepareTimingStateVector === null ? timingStateVector : prepareTimingStateVector(timingStateVector), currentTime);
|
|
6
|
+
const sanitizedDuration = typeof duration === 'number' && !isNaN(duration) ? duration : 0;
|
|
7
|
+
updateMediaElement(currentTime, sanitizedDuration, mediaElement, playbackRate, position, velocity);
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=set-timingsrc-with-custom-update-function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-timingsrc-with-custom-update-function.js","sourceRoot":"","sources":["../../../src/factories/set-timingsrc-with-custom-update-function.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0CAA0C,GAAiD,CACpG,cAAc,EACd,kBAAkB,EACpB,EAAE;IACA,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,wBAAwB,GAAG,IAAI,EAAE,EAAE,CACnF,cAAc,EAAE,CAAC,GAAG,EAAE;QAClB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC;QAC7D,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QAC/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,cAAc,CACzC,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,EACnG,WAAW,CACd,CAAC;QACF,MAAM,iBAAiB,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1F,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;AACX,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-timingsrc.d.ts","sourceRoot":"","sources":["../../../src/factories/set-timingsrc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,eAAO,MAAM,kBAAkB,EAAE,oBAGhC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export const createSetTimingsrc = (setTimingsrcWithCustomUpdateFunction, update) => {
|
|
2
|
+
return (mediaElement, timingObject, prepareTimingStateVector = null) => setTimingsrcWithCustomUpdateFunction(mediaElement, timingObject, update, prepareTimingStateVector);
|
|
3
|
+
};
|
|
4
|
+
//# sourceMappingURL=set-timingsrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-timingsrc.js","sourceRoot":"","sources":["../../../src/factories/set-timingsrc.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAyB,CAAC,oCAAoC,EAAE,MAAM,EAAE,EAAE;IACrG,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,wBAAwB,GAAG,IAAI,EAAE,EAAE,CACnE,oCAAoC,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAC;AAC3G,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-gradually.d.ts","sourceRoot":"","sources":["../../../src/factories/update-gradually.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,qBAAqB,EAAE,uBAmBnC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const createUpdateGradually = (timeConstant, threshold, tolerance) => {
|
|
2
|
+
return ({ position, velocity }, currentTime) => {
|
|
3
|
+
if (position < 0 || velocity === 0) {
|
|
4
|
+
return { position, velocity };
|
|
5
|
+
}
|
|
6
|
+
const positionDifference = currentTime - position;
|
|
7
|
+
const absolutePositionDifference = Math.abs(positionDifference);
|
|
8
|
+
if (absolutePositionDifference > threshold) {
|
|
9
|
+
return { position, velocity };
|
|
10
|
+
}
|
|
11
|
+
if (absolutePositionDifference > tolerance) {
|
|
12
|
+
return { position: currentTime, velocity: ((timeConstant - positionDifference) / timeConstant) * velocity };
|
|
13
|
+
}
|
|
14
|
+
return { position: currentTime, velocity };
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=update-gradually.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-gradually.js","sourceRoot":"","sources":["../../../src/factories/update-gradually.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAA4B,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;IACjG,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE;QAC3C,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;YAChC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;SACjC;QAED,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,CAAC;QAClD,MAAM,0BAA0B,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEhE,IAAI,0BAA0B,GAAG,SAAS,EAAE;YACxC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;SACjC;QAED,IAAI,0BAA0B,GAAG,SAAS,EAAE;YACxC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,YAAY,GAAG,kBAAkB,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,EAAE,CAAC;SAC/G;QAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-media-element.d.ts","sourceRoot":"","sources":["../../../src/factories/update-media-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAEtD,eAAO,MAAM,wBAAwB,EAAE,0BAmCtC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export const createUpdateMediaElement = (pause, play, setCurrentTime, setPlaybackRate) => {
|
|
2
|
+
return (currentTime, duration, mediaElement, playbackRate, position, velocity) => {
|
|
3
|
+
if (position < 0) {
|
|
4
|
+
if (currentTime > 0) {
|
|
5
|
+
setCurrentTime(mediaElement, currentTime, 0);
|
|
6
|
+
}
|
|
7
|
+
pause(mediaElement);
|
|
8
|
+
}
|
|
9
|
+
else if (position >= duration) {
|
|
10
|
+
if (currentTime !== duration) {
|
|
11
|
+
setCurrentTime(mediaElement, currentTime, duration);
|
|
12
|
+
}
|
|
13
|
+
pause(mediaElement);
|
|
14
|
+
}
|
|
15
|
+
else if (currentTime !== position) {
|
|
16
|
+
setCurrentTime(mediaElement, currentTime, position);
|
|
17
|
+
if (velocity !== 0) {
|
|
18
|
+
if (playbackRate !== velocity) {
|
|
19
|
+
setPlaybackRate(mediaElement, playbackRate, velocity);
|
|
20
|
+
}
|
|
21
|
+
play(mediaElement);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
pause(mediaElement);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else if (playbackRate !== velocity) {
|
|
28
|
+
if (velocity !== 0) {
|
|
29
|
+
setPlaybackRate(mediaElement, playbackRate, velocity);
|
|
30
|
+
play(mediaElement);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
pause(mediaElement);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=update-media-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-media-element.js","sourceRoot":"","sources":["../../../src/factories/update-media-element.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAA+B,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE;IACjH,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAC7E,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,IAAI,WAAW,GAAG,CAAC,EAAE;gBACjB,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;aAChD;YAED,KAAK,CAAC,YAAY,CAAC,CAAC;SACvB;aAAM,IAAI,QAAQ,IAAI,QAAQ,EAAE;YAC7B,IAAI,WAAW,KAAK,QAAQ,EAAE;gBAC1B,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;aACvD;YAED,KAAK,CAAC,YAAY,CAAC,CAAC;SACvB;aAAM,IAAI,WAAW,KAAK,QAAQ,EAAE;YACjC,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAEpD,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAChB,IAAI,YAAY,KAAK,QAAQ,EAAE;oBAC3B,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;iBACzD;gBAED,IAAI,CAAC,YAAY,CAAC,CAAC;aACtB;iBAAM;gBACH,KAAK,CAAC,YAAY,CAAC,CAAC;aACvB;SACJ;aAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;YAClC,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAChB,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACtD,IAAI,CAAC,YAAY,CAAC,CAAC;aACtB;iBAAM;gBACH,KAAK,CAAC,YAAY,CAAC,CAAC;aACvB;SACJ;IACL,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-stepwise-factory.d.ts","sourceRoot":"","sources":["../../../src/factories/update-stepwise-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAEzD,eAAO,MAAM,2BAA2B,EAAE,6BAgDzC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export const createUpdateStepwiseFactory = (translateTimingStateVector) => {
|
|
2
|
+
return (tolerance) => {
|
|
3
|
+
let lastMotionUpdate = null;
|
|
4
|
+
let mediaElementDelay = 0;
|
|
5
|
+
return (timingStateVector, currentTime) => {
|
|
6
|
+
if (timingStateVector.position < 0 || timingStateVector.velocity === 0) {
|
|
7
|
+
lastMotionUpdate = null;
|
|
8
|
+
return { position: timingStateVector.position, velocity: timingStateVector.velocity };
|
|
9
|
+
}
|
|
10
|
+
if (lastMotionUpdate !== null) {
|
|
11
|
+
const playheadDifference = Math.abs(currentTime - lastMotionUpdate.position);
|
|
12
|
+
// Check if at least 10ms were played since the last motion update.
|
|
13
|
+
if (playheadDifference < 0.01) {
|
|
14
|
+
return { position: currentTime, velocity: lastMotionUpdate.velocity };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const positionDifference = Math.abs(currentTime - timingStateVector.position);
|
|
18
|
+
if (positionDifference > tolerance) {
|
|
19
|
+
if (lastMotionUpdate !== null) {
|
|
20
|
+
const elapsedTime = timingStateVector.timestamp - lastMotionUpdate.timestamp;
|
|
21
|
+
const { position } = translateTimingStateVector({ acceleration: 0, ...lastMotionUpdate }, elapsedTime);
|
|
22
|
+
mediaElementDelay = position - currentTime;
|
|
23
|
+
}
|
|
24
|
+
const positioWithDelay = timingStateVector.position + mediaElementDelay;
|
|
25
|
+
lastMotionUpdate = {
|
|
26
|
+
position: positioWithDelay,
|
|
27
|
+
timestamp: timingStateVector.timestamp,
|
|
28
|
+
velocity: timingStateVector.velocity
|
|
29
|
+
};
|
|
30
|
+
return { position: positioWithDelay, velocity: timingStateVector.velocity };
|
|
31
|
+
}
|
|
32
|
+
lastMotionUpdate = null;
|
|
33
|
+
return { position: currentTime, velocity: timingStateVector.velocity };
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=update-stepwise-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-stepwise-factory.js","sourceRoot":"","sources":["../../../src/factories/update-stepwise-factory.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,2BAA2B,GAAkC,CAAC,0BAA0B,EAAE,EAAE;IACrG,OAAO,CAAC,SAAS,EAAE,EAAE;QACjB,IAAI,gBAAgB,GAAqE,IAAI,CAAC;QAC9F,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,EAAE;YACtC,IAAI,iBAAiB,CAAC,QAAQ,GAAG,CAAC,IAAI,iBAAiB,CAAC,QAAQ,KAAK,CAAC,EAAE;gBACpE,gBAAgB,GAAG,IAAI,CAAC;gBAExB,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC;aACzF;YAED,IAAI,gBAAgB,KAAK,IAAI,EAAE;gBAC3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAE7E,mEAAmE;gBACnE,IAAI,kBAAkB,GAAG,IAAI,EAAE;oBAC3B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC;iBACzE;aACJ;YAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE9E,IAAI,kBAAkB,GAAG,SAAS,EAAE;gBAChC,IAAI,gBAAgB,KAAK,IAAI,EAAE;oBAC3B,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;oBAE7E,MAAM,EAAE,QAAQ,EAAE,GAAG,0BAA0B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAC;oBAEvG,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;iBAC9C;gBAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,QAAQ,GAAG,iBAAiB,CAAC;gBAExE,gBAAgB,GAAG;oBACf,QAAQ,EAAE,gBAAgB;oBAC1B,SAAS,EAAE,iBAAiB,CAAC,SAAS;oBACtC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;iBACvC,CAAC;gBAEF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC;aAC/E;YAED,gBAAgB,GAAG,IAAI,CAAC;YAExB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC3E,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/factories/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,eAAO,MAAM,YAAY,EAAE,cAAsE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.js","sourceRoot":"","sources":["../../../src/factories/window.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAmB,GAAG,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pause.d.ts","sourceRoot":"","sources":["../../../src/functions/pause.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,iBAAkB,gBAAgB,SAInD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pause.js","sourceRoot":"","sources":["../../../src/functions/pause.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,YAA8B,EAAE,EAAE;IACpD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACtB,YAAY,CAAC,KAAK,EAAE,CAAC;KACxB;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"play.d.ts","sourceRoot":"","sources":["../../../src/functions/play.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,iBAAkB,gBAAgB,SAIlD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"play.js","sourceRoot":"","sources":["../../../src/functions/play.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,YAA8B,EAAE,EAAE;IACnD,IAAI,YAAY,CAAC,MAAM,EAAE;QACrB,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iCAAiC;KAC5F;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-vector.d.ts","sourceRoot":"","sources":["../../../src/interfaces/update-vector.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IAEjB,QAAQ,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-vector.js","sourceRoot":"","sources":["../../../src/interfaces/update-vector.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createSetTimingsrc } from './factories/set-timingsrc';
|
|
2
|
+
import { createUpdateGradually } from './factories/update-gradually';
|
|
3
|
+
export { createSetTimingsrc };
|
|
4
|
+
export { createUpdateGradually };
|
|
5
|
+
export declare const createUpdateStepwise: import("./types").TUpdateStepwiseFactory;
|
|
6
|
+
export declare const setTimingsrcWithCustomUpdateFunction: import("./types").TSetTimingsrcWithCustomUpdateFunctionFunction;
|
|
7
|
+
export declare const setTimingsrc: import("./types").TSetTimingsrcFunction;
|
|
8
|
+
//# sourceMappingURL=module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAOrE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,eAAO,MAAM,oBAAoB,0CAA0D,CAAC;AAI5F,eAAO,MAAM,oCAAoC,iEAAiF,CAAC;AAEnI,eAAO,MAAM,YAAY,yCAMxB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { animationFrame } from 'subscribable-things';
|
|
2
|
+
import { translateTimingStateVector } from 'timing-object';
|
|
3
|
+
import { createDefaultSetTimingsrc } from './factories/default-set-timingsrc';
|
|
4
|
+
import { createSetCurrentTime } from './factories/set-current-time';
|
|
5
|
+
import { createSetPlaybackRate } from './factories/set-playback-rate';
|
|
6
|
+
import { createSetTimingsrc } from './factories/set-timingsrc';
|
|
7
|
+
import { createSetTimingsrcWithCustomUpdateFunction } from './factories/set-timingsrc-with-custom-update-function';
|
|
8
|
+
import { createUpdateGradually } from './factories/update-gradually';
|
|
9
|
+
import { createUpdateMediaElement } from './factories/update-media-element';
|
|
10
|
+
import { createUpdateStepwiseFactory } from './factories/update-stepwise-factory';
|
|
11
|
+
import { createWindow } from './factories/window';
|
|
12
|
+
import { pause } from './functions/pause';
|
|
13
|
+
import { play } from './functions/play';
|
|
14
|
+
export { createSetTimingsrc };
|
|
15
|
+
export { createUpdateGradually };
|
|
16
|
+
export const createUpdateStepwise = createUpdateStepwiseFactory(translateTimingStateVector);
|
|
17
|
+
const updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(new WeakMap()));
|
|
18
|
+
export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(animationFrame, updateMediaElement);
|
|
19
|
+
export const setTimingsrc = createDefaultSetTimingsrc(createSetTimingsrc, createUpdateGradually, createUpdateStepwise, setTimingsrcWithCustomUpdateFunction, createWindow());
|
|
20
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0CAA0C,EAAE,MAAM,uDAAuD,CAAC;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,0BAA0B,CAAC,CAAC;AAE5F,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,oBAAoB,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,qBAAqB,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;AAE5I,MAAM,CAAC,MAAM,oCAAoC,GAAG,0CAA0C,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAEnI,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CACjD,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,oCAAoC,EACpC,YAAY,EAAE,CACjB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TSetTimingsrcFactory } from './set-timingsrc-factory';
|
|
2
|
+
import { TSetTimingsrcFunction } from './set-timingsrc-function';
|
|
3
|
+
import { TSetTimingsrcWithCustomUpdateFunctionFunction } from './set-timingsrc-with-custom-update-function-function';
|
|
4
|
+
import { TUpdateGraduallyFactory } from './update-gradually-factory';
|
|
5
|
+
import { TUpdateStepwiseFactory } from './update-stepwise-factory';
|
|
6
|
+
export declare type TDefaultSetTimingsrcFactory = (createSetTimingsrc: TSetTimingsrcFactory, createUpdateGradually: TUpdateGraduallyFactory, createUpdateStepwise: TUpdateStepwiseFactory, setTimingsrcWithCustomUpdateFunction: TSetTimingsrcWithCustomUpdateFunctionFunction, window: null | Window) => TSetTimingsrcFunction;
|
|
7
|
+
//# sourceMappingURL=default-timingsrc-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-timingsrc-factory.d.ts","sourceRoot":"","sources":["../../../src/types/default-timingsrc-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,6CAA6C,EAAE,MAAM,sDAAsD,CAAC;AACrH,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,oBAAY,2BAA2B,GAAG,CACtC,kBAAkB,EAAE,oBAAoB,EACxC,qBAAqB,EAAE,uBAAuB,EAC9C,oBAAoB,EAAE,sBAAsB,EAC5C,oCAAoC,EAAE,6CAA6C,EACnF,MAAM,EAAE,IAAI,GAAG,MAAM,KACpB,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-timingsrc-factory.js","sourceRoot":"","sources":["../../../src/types/default-timingsrc-factory.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './default-timingsrc-factory';
|
|
2
|
+
export * from './pause-function';
|
|
3
|
+
export * from './play-function';
|
|
4
|
+
export * from './prepare-timing-state-vector-function';
|
|
5
|
+
export * from './set-current-time-factory';
|
|
6
|
+
export * from './set-current-time-function';
|
|
7
|
+
export * from './set-playback-rate-factory';
|
|
8
|
+
export * from './set-playback-rate-function';
|
|
9
|
+
export * from './set-timingsrc-factory';
|
|
10
|
+
export * from './set-timingsrc-function';
|
|
11
|
+
export * from './set-timingsrc-with-custom-update-function-factory';
|
|
12
|
+
export * from './set-timingsrc-with-custom-update-function-function';
|
|
13
|
+
export * from './update-function';
|
|
14
|
+
export * from './update-gradually-factory';
|
|
15
|
+
export * from './update-media-element-factory';
|
|
16
|
+
export * from './update-stepwise-factory';
|
|
17
|
+
export * from './update-stepwise-factory-factory';
|
|
18
|
+
export * from './window-factory';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './default-timingsrc-factory';
|
|
2
|
+
export * from './pause-function';
|
|
3
|
+
export * from './play-function';
|
|
4
|
+
export * from './prepare-timing-state-vector-function';
|
|
5
|
+
export * from './set-current-time-factory';
|
|
6
|
+
export * from './set-current-time-function';
|
|
7
|
+
export * from './set-playback-rate-factory';
|
|
8
|
+
export * from './set-playback-rate-function';
|
|
9
|
+
export * from './set-timingsrc-factory';
|
|
10
|
+
export * from './set-timingsrc-function';
|
|
11
|
+
export * from './set-timingsrc-with-custom-update-function-factory';
|
|
12
|
+
export * from './set-timingsrc-with-custom-update-function-function';
|
|
13
|
+
export * from './update-function';
|
|
14
|
+
export * from './update-gradually-factory';
|
|
15
|
+
export * from './update-media-element-factory';
|
|
16
|
+
export * from './update-stepwise-factory';
|
|
17
|
+
export * from './update-stepwise-factory-factory';
|
|
18
|
+
export * from './window-factory';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pause-function.d.ts","sourceRoot":"","sources":["../../../src/types/pause-function.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc,GAAG,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pause-function.js","sourceRoot":"","sources":["../../../src/types/pause-function.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"play-function.d.ts","sourceRoot":"","sources":["../../../src/types/play-function.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa,GAAG,CAAC,YAAY,EAAE,gBAAgB,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"play-function.js","sourceRoot":"","sources":["../../../src/types/play-function.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-timing-state-vector-function.d.ts","sourceRoot":"","sources":["../../../src/types/prepare-timing-state-vector-function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,oBAAY,iCAAiC,GAAG,CAAC,iBAAiB,EAAE,kBAAkB,KAAK,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-timing-state-vector-function.js","sourceRoot":"","sources":["../../../src/types/prepare-timing-state-vector-function.ts"],"names":[],"mappings":""}
|