@snap/camera-kit 1.0.1 → 1.2.0
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/README.md +1 -1
- package/dist/CameraKit.d.ts +17 -6
- package/dist/CameraKit.d.ts.map +1 -1
- package/dist/CameraKit.js +26 -4
- package/dist/CameraKit.js.map +1 -1
- package/dist/RootServices.d.ts +6 -2
- package/dist/RootServices.d.ts.map +1 -1
- package/dist/RootServices.js.map +1 -1
- package/dist/bootstrapCameraKit.d.ts.map +1 -1
- package/dist/bootstrapCameraKit.js +6 -2
- package/dist/bootstrapCameraKit.js.map +1 -1
- package/dist/clients/remoteApiSpecsClient.d.ts +10 -0
- package/dist/clients/remoteApiSpecsClient.d.ts.map +1 -0
- package/dist/clients/remoteApiSpecsClient.js +6 -0
- package/dist/clients/remoteApiSpecsClient.js.map +1 -0
- package/dist/common/typeguards.d.ts +3 -0
- package/dist/common/typeguards.d.ts.map +1 -1
- package/dist/common/typeguards.js +12 -0
- package/dist/common/typeguards.js.map +1 -1
- package/dist/configuration.d.ts +115 -0
- package/dist/configuration.d.ts.map +1 -1
- package/dist/configuration.js +1 -0
- package/dist/configuration.js.map +1 -1
- package/dist/environment.js +1 -1
- package/dist/environment.js.map +1 -1
- package/dist/extensions/extensionRequestContext.d.ts +6 -0
- package/dist/extensions/extensionRequestContext.d.ts.map +1 -1
- package/dist/extensions/extensionRequestContext.js +3 -2
- package/dist/extensions/extensionRequestContext.js.map +1 -1
- package/dist/geo/geoDataProvider.d.ts +32 -0
- package/dist/geo/geoDataProvider.d.ts.map +1 -0
- package/dist/geo/geoDataProvider.js +25 -0
- package/dist/geo/geoDataProvider.js.map +1 -0
- package/dist/geo/registerGeoDataProvider.d.ts +11 -0
- package/dist/geo/registerGeoDataProvider.d.ts.map +1 -0
- package/dist/geo/registerGeoDataProvider.js +22 -0
- package/dist/geo/registerGeoDataProvider.js.map +1 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/lens-core-module/generated-types.d.ts +28 -0
- package/dist/lens-core-module/generated-types.d.ts.map +1 -1
- package/dist/lens-core-module/generated-types.js.map +1 -1
- package/dist/lens-core-module/lensCore.d.ts.map +1 -1
- package/dist/lens-core-module/lensCore.js +1 -0
- package/dist/lens-core-module/lensCore.js.map +1 -1
- package/dist/lensCoreWasmVersions.js +3 -3
- package/dist/lensCoreWasmVersions.js.map +1 -1
- package/dist/platform/platformInfo.d.ts.map +1 -1
- package/dist/platform/platformInfo.js +1 -1
- package/dist/platform/platformInfo.js.map +1 -1
- package/dist/remote-configuration/cofHandler.js.map +1 -1
- package/dist/remote-configuration/remoteConfiguration.d.ts +4 -0
- package/dist/remote-configuration/remoteConfiguration.d.ts.map +1 -1
- package/dist/remote-configuration/remoteConfiguration.js +10 -0
- package/dist/remote-configuration/remoteConfiguration.js.map +1 -1
- package/dist/session/CameraKitSession.d.ts +9 -9
- package/dist/session/CameraKitSession.d.ts.map +1 -1
- package/dist/session/CameraKitSession.js +4 -2
- package/dist/session/CameraKitSession.js.map +1 -1
- package/dist/session/LensKeyboard.d.ts +75 -31
- package/dist/session/LensKeyboard.d.ts.map +1 -1
- package/dist/session/LensKeyboard.js +60 -38
- package/dist/session/LensKeyboard.js.map +1 -1
- package/dist/uri-handlers/UriHandlers.d.ts.map +1 -0
- package/dist/uri-handlers/UriHandlers.js.map +1 -0
- package/dist/uri-handlers/internal-handlers/httpUriHandler.d.ts +42 -0
- package/dist/uri-handlers/internal-handlers/httpUriHandler.d.ts.map +1 -0
- package/dist/uri-handlers/internal-handlers/httpUriHandler.js +149 -0
- package/dist/uri-handlers/internal-handlers/httpUriHandler.js.map +1 -0
- package/dist/uri-handlers/internal-handlers/httpValidators.d.ts +9 -0
- package/dist/uri-handlers/internal-handlers/httpValidators.d.ts.map +1 -0
- package/dist/uri-handlers/internal-handlers/httpValidators.js +115 -0
- package/dist/uri-handlers/internal-handlers/httpValidators.js.map +1 -0
- package/dist/{extensions/RemoteApiServices.d.ts → uri-handlers/internal-handlers/remoteApiUriHandler.d.ts} +8 -8
- package/dist/uri-handlers/internal-handlers/remoteApiUriHandler.d.ts.map +1 -0
- package/dist/uri-handlers/internal-handlers/remoteApiUriHandler.js +121 -0
- package/dist/uri-handlers/internal-handlers/remoteApiUriHandler.js.map +1 -0
- package/dist/{extensions → uri-handlers}/uriHandlersRegister.d.ts +6 -4
- package/dist/uri-handlers/uriHandlersRegister.d.ts.map +1 -0
- package/dist/{extensions → uri-handlers}/uriHandlersRegister.js +13 -3
- package/dist/uri-handlers/uriHandlersRegister.js.map +1 -0
- package/dist/uri-handlers/uriRequestProcessor.d.ts +37 -0
- package/dist/uri-handlers/uriRequestProcessor.d.ts.map +1 -0
- package/dist/uri-handlers/uriRequestProcessor.js +69 -0
- package/dist/uri-handlers/uriRequestProcessor.js.map +1 -0
- package/docs/html/assets/hierarchy.js +1 -0
- package/docs/html/assets/highlight.css +9 -2
- package/docs/html/assets/icons.js +18 -0
- package/docs/html/assets/icons.svg +1 -0
- package/docs/html/assets/main.js +5 -4
- package/docs/html/assets/navigation.js +1 -1
- package/docs/html/assets/search.js +1 -1
- package/docs/html/assets/style.css +1422 -1226
- package/docs/html/classes/CameraKit.html +18 -16
- package/docs/html/classes/CameraKitSession.html +79 -51
- package/docs/html/classes/CameraKitSource.html +18 -18
- package/docs/html/classes/LensPerformanceMeasurement.html +11 -11
- package/docs/html/classes/LensPerformanceMetrics.html +8 -7
- package/docs/html/classes/LensRepository.html +25 -23
- package/docs/html/classes/Transform2D.html +9 -9
- package/docs/html/classes/TypedCustomEvent.html +5 -4
- package/docs/html/classes/TypedEventTarget.html +6 -6
- package/docs/html/enums/Lens_CameraFacing.html +5 -5
- package/docs/html/functions/bootstrapCameraKit.html +11 -10
- package/docs/html/functions/createExtension.html +7 -6
- package/docs/html/functions/createImageSource.html +5 -5
- package/docs/html/functions/createMediaStreamSource.html +5 -5
- package/docs/html/functions/createVideoSource.html +5 -5
- package/docs/html/functions/estimateLensPerformance.html +2 -2
- package/docs/html/functions/filePickerFactory.html +2 -2
- package/docs/html/functions/getExtensionRequestContext.html +3 -0
- package/docs/html/functions/lensSourcesFactory.html +5 -4
- package/docs/html/functions/remoteApiServicesFactory.html +1 -1
- package/docs/html/hierarchy.html +1 -1
- package/docs/html/index.html +111 -88
- package/docs/html/interfaces/BitmojiUserInfo.html +3 -3
- package/docs/html/interfaces/CameraKitBootstrapConfiguration.html +40 -21
- package/docs/html/interfaces/CameraKitDeviceOptions.html +7 -7
- package/docs/html/interfaces/CameraKitSourceInfo.html +7 -7
- package/docs/html/interfaces/CameraKitSourceSubscriber.html +4 -4
- package/docs/html/interfaces/ComputedFrameMetrics.html +6 -6
- package/docs/html/interfaces/CreateSessionOptions.html +7 -7
- package/docs/html/interfaces/EstimatedLensPerformance.html +5 -5
- package/docs/html/interfaces/Font.html +6 -0
- package/docs/html/interfaces/FriendUserInfo.html +4 -4
- package/docs/html/interfaces/FunctionSourceOptions.html +4 -4
- package/docs/html/interfaces/Keyboard.html +29 -0
- package/docs/html/interfaces/KeyboardActiveEvent.html +12 -0
- package/docs/html/interfaces/Lens.html +21 -21
- package/docs/html/interfaces/LensCreator.html +3 -3
- package/docs/html/interfaces/LensHttpRequest.html +16 -0
- package/docs/html/interfaces/LensLaunchData.html +6 -6
- package/docs/html/interfaces/LensSource.html +5 -5
- package/docs/html/interfaces/LensUserData.html +10 -10
- package/docs/html/interfaces/LoadAssetRequest.html +10 -10
- package/docs/html/interfaces/MediaStreamSourceOptions.html +11 -11
- package/docs/html/interfaces/Preview.html +4 -4
- package/docs/html/interfaces/RemoteApiRequest.html +10 -10
- package/docs/html/interfaces/RemoteApiResponse.html +8 -8
- package/docs/html/interfaces/RemoteApiService.html +9 -9
- package/docs/html/interfaces/Snapcode.html +6 -6
- package/docs/html/interfaces/UriCancelRequest.html +3 -3
- package/docs/html/interfaces/UriRequest.html +7 -7
- package/docs/html/interfaces/UriResponse.html +6 -6
- package/docs/html/interfaces/VideoSourceOptions.html +9 -9
- package/docs/html/modules.html +1 -99
- package/docs/html/types/ArgumentValidationError.html +2 -2
- package/docs/html/types/AssetLoader.html +4 -4
- package/docs/html/types/AssetResponse.html +1 -1
- package/docs/html/types/AssetTiming.html +2 -2
- package/docs/html/types/BenchmarkError.html +1 -1
- package/docs/html/types/BootstrapError.html +2 -2
- package/docs/html/types/CacheKeyNotFoundError.html +1 -1
- package/docs/html/types/CameraKitSessionEventListener.html +2 -2
- package/docs/html/types/CameraKitSessionEvents.html +4 -3
- package/docs/html/types/CameraKitSourceError.html +1 -1
- package/docs/html/types/ConfigurationError.html +2 -2
- package/docs/html/types/FetchHandler.html +1 -1
- package/docs/html/types/FilePicker.html +5 -5
- package/docs/html/types/FilePickerOptions.html +2 -2
- package/docs/html/types/FilePickerResult.html +2 -2
- package/docs/html/types/KeyboardEventListener.html +2 -0
- package/docs/html/types/KeyboardEvents.html +2 -2
- package/docs/html/types/LegalError.html +1 -1
- package/docs/html/types/LensAbortError.html +6 -5
- package/docs/html/types/LensAssetError.html +2 -2
- package/docs/html/types/LensContentValidationError.html +1 -1
- package/docs/html/types/LensError.html +1 -1
- package/docs/html/types/LensExecutionError.html +6 -5
- package/docs/html/types/LensHttpHandler.html +9 -0
- package/docs/html/types/LensImagePickerError.html +2 -2
- package/docs/html/types/LensLaunchParams.html +2 -2
- package/docs/html/types/LensMetricsEvents.html +2 -2
- package/docs/html/types/LensPerformanceCluster.html +1 -1
- package/docs/html/types/LensView.html +3 -3
- package/docs/html/types/LensWait.html +2 -2
- package/docs/html/types/Matrix.html +2 -2
- package/docs/html/types/PersistentStoreError.html +2 -2
- package/docs/html/types/PlatformNotSupportedError.html +3 -3
- package/docs/html/types/PublicContainer.html +2 -2
- package/docs/html/types/PublicServices.html +2 -2
- package/docs/html/types/RemoteApiCancelRequestHandler.html +2 -2
- package/docs/html/types/RemoteApiRequestHandler.html +2 -2
- package/docs/html/types/RemoteApiServices.html +1 -1
- package/docs/html/types/RemoteApiStatus.html +2 -2
- package/docs/html/types/RenderTarget.html +3 -3
- package/docs/html/types/Uri.html +1 -1
- package/docs/html/types/WebGLError.html +1 -1
- package/docs/html/types/Zodiac.html +1 -1
- package/docs/html/variables/extensionRequestContext.html +3 -2
- package/docs/md/README.md +5 -3
- package/docs/md/classes/CameraKit.md +26 -37
- package/docs/md/classes/CameraKitSession.md +150 -108
- package/docs/md/classes/CameraKitSource.md +46 -37
- package/docs/md/classes/LensPerformanceMeasurement.md +18 -26
- package/docs/md/classes/LensPerformanceMetrics.md +8 -10
- package/docs/md/classes/LensRepository.md +66 -45
- package/docs/md/classes/Transform2D.md +19 -26
- package/docs/md/classes/TypedCustomEvent.md +24 -32
- package/docs/md/classes/TypedEventTarget.md +43 -54
- package/docs/md/enumerations/Lens_CameraFacing.md +31 -0
- package/docs/md/functions/bootstrapCameraKit.md +66 -0
- package/docs/md/functions/createExtension.md +50 -0
- package/docs/md/functions/createImageSource.md +30 -0
- package/docs/md/functions/createMediaStreamSource.md +30 -0
- package/docs/md/functions/createVideoSource.md +31 -0
- package/docs/md/functions/estimateLensPerformance.md +18 -0
- package/docs/md/functions/filePickerFactory.md +22 -0
- package/docs/md/functions/getExtensionRequestContext.md +21 -0
- package/docs/md/functions/lensSourcesFactory.md +37 -0
- package/docs/md/functions/remoteApiServicesFactory.md +19 -0
- package/docs/md/globals.md +124 -0
- package/docs/md/interfaces/BitmojiUserInfo.md +9 -12
- package/docs/md/interfaces/CameraKitBootstrapConfiguration.md +99 -40
- package/docs/md/interfaces/CameraKitDeviceOptions.md +11 -17
- package/docs/md/interfaces/CameraKitSourceInfo.md +14 -20
- package/docs/md/interfaces/CameraKitSourceSubscriber.md +23 -28
- package/docs/md/interfaces/ComputedFrameMetrics.md +13 -19
- package/docs/md/interfaces/CreateSessionOptions.md +10 -13
- package/docs/md/interfaces/EstimatedLensPerformance.md +10 -14
- package/docs/md/interfaces/Font.md +25 -0
- package/docs/md/interfaces/FriendUserInfo.md +12 -16
- package/docs/md/interfaces/FunctionSourceOptions.md +6 -8
- package/docs/md/interfaces/Keyboard.md +137 -0
- package/docs/md/interfaces/KeyboardActiveEvent.md +46 -0
- package/docs/md/interfaces/Lens.md +26 -37
- package/docs/md/interfaces/LensCreator.md +6 -8
- package/docs/md/interfaces/LensHttpRequest.md +60 -0
- package/docs/md/interfaces/LensLaunchData.md +13 -17
- package/docs/md/interfaces/LensSource.md +26 -27
- package/docs/md/interfaces/LensUserData.md +30 -40
- package/docs/md/interfaces/LoadAssetRequest.md +13 -18
- package/docs/md/interfaces/MediaStreamSourceOptions.md +15 -22
- package/docs/md/interfaces/Preview.md +6 -8
- package/docs/md/interfaces/RemoteApiRequest.md +12 -17
- package/docs/md/interfaces/RemoteApiResponse.md +10 -14
- package/docs/md/interfaces/RemoteApiService.md +20 -19
- package/docs/md/interfaces/Snapcode.md +8 -11
- package/docs/md/interfaces/UriCancelRequest.md +7 -10
- package/docs/md/interfaces/UriRequest.md +15 -22
- package/docs/md/interfaces/UriResponse.md +14 -20
- package/docs/md/interfaces/VideoSourceOptions.md +13 -19
- package/docs/md/type-aliases/ArgumentValidationError.md +11 -0
- package/docs/md/type-aliases/AssetLoader.md +26 -0
- package/docs/md/type-aliases/AssetResponse.md +9 -0
- package/docs/md/type-aliases/AssetTiming.md +18 -0
- package/docs/md/type-aliases/BenchmarkError.md +9 -0
- package/docs/md/type-aliases/BootstrapError.md +12 -0
- package/docs/md/type-aliases/CacheKeyNotFoundError.md +9 -0
- package/docs/md/type-aliases/CameraKitSessionEventListener.md +11 -0
- package/docs/md/type-aliases/CameraKitSessionEvents.md +17 -0
- package/docs/md/type-aliases/CameraKitSourceError.md +9 -0
- package/docs/md/type-aliases/ConfigurationError.md +11 -0
- package/docs/md/type-aliases/FetchHandler.md +27 -0
- package/docs/md/type-aliases/FilePicker.md +32 -0
- package/docs/md/type-aliases/FilePickerOptions.md +11 -0
- package/docs/md/type-aliases/FilePickerResult.md +11 -0
- package/docs/md/type-aliases/KeyboardEventListener.md +11 -0
- package/docs/md/type-aliases/KeyboardEvents.md +11 -0
- package/docs/md/type-aliases/LegalError.md +9 -0
- package/docs/md/type-aliases/LensAbortError.md +22 -0
- package/docs/md/type-aliases/LensAssetError.md +11 -0
- package/docs/md/type-aliases/LensContentValidationError.md +9 -0
- package/docs/md/type-aliases/LensError.md +9 -0
- package/docs/md/type-aliases/LensExecutionError.md +23 -0
- package/docs/md/type-aliases/LensHttpHandler.md +41 -0
- package/docs/md/type-aliases/LensImagePickerError.md +12 -0
- package/docs/md/type-aliases/LensLaunchParams.md +11 -0
- package/docs/md/type-aliases/LensMetricsEvents.md +13 -0
- package/docs/md/type-aliases/LensPerformanceCluster.md +9 -0
- package/docs/md/type-aliases/LensView.md +21 -0
- package/docs/md/type-aliases/LensWait.md +13 -0
- package/docs/md/type-aliases/Matrix.md +12 -0
- package/docs/md/type-aliases/PersistentStoreError.md +11 -0
- package/docs/md/type-aliases/PlatformNotSupportedError.md +13 -0
- package/docs/md/type-aliases/PublicContainer.md +12 -0
- package/docs/md/type-aliases/PublicServices.md +11 -0
- package/docs/md/type-aliases/RemoteApiCancelRequestHandler.md +15 -0
- package/docs/md/type-aliases/RemoteApiRequestHandler.md +24 -0
- package/docs/md/type-aliases/RemoteApiServices.md +9 -0
- package/docs/md/type-aliases/RemoteApiStatus.md +11 -0
- package/docs/md/type-aliases/RenderTarget.md +14 -0
- package/docs/md/type-aliases/Uri.md +9 -0
- package/docs/md/type-aliases/WebGLError.md +9 -0
- package/docs/md/type-aliases/Zodiac.md +9 -0
- package/docs/md/variables/extensionRequestContext.md +15 -0
- package/package.json +5 -5
- package/dist/extensions/RemoteApiServices.d.ts.map +0 -1
- package/dist/extensions/RemoteApiServices.js +0 -159
- package/dist/extensions/RemoteApiServices.js.map +0 -1
- package/dist/extensions/UriHandlers.d.ts.map +0 -1
- package/dist/extensions/UriHandlers.js.map +0 -1
- package/dist/extensions/uriHandlersRegister.d.ts.map +0 -1
- package/dist/extensions/uriHandlersRegister.js.map +0 -1
- package/docs/html/types/Keyboard.html +0 -26
- package/docs/md/.nojekyll +0 -1
- package/docs/md/enums/Lens_CameraFacing.md +0 -36
- package/docs/md/modules.md +0 -904
- /package/dist/{extensions → uri-handlers}/UriHandlers.d.ts +0 -0
- /package/dist/{extensions → uri-handlers}/UriHandlers.js +0 -0
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
[CameraKit Web SDK
|
|
1
|
+
[**CameraKit Web SDK v1.2.0**](../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[CameraKit Web SDK](../globals.md) / CameraKitSession
|
|
2
6
|
|
|
3
7
|
# Class: CameraKitSession
|
|
4
8
|
|
|
@@ -10,40 +14,18 @@ CameraKitSession is the primary object that applications interact with when inte
|
|
|
10
14
|
|
|
11
15
|
A CameraKitSession instance is obtained by calling [CameraKit.createSession](CameraKit.md#createsession).
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
## Example
|
|
14
18
|
|
|
15
19
|
```ts
|
|
16
20
|
const cameraKit = await bootstrapCameraKit(config)
|
|
17
21
|
const session = await cameraKit.createSession()
|
|
18
22
|
```
|
|
19
23
|
|
|
20
|
-
## Table of contents
|
|
21
|
-
|
|
22
|
-
### Properties
|
|
23
|
-
|
|
24
|
-
- [output](CameraKitSession.md#output)
|
|
25
|
-
- [playing](CameraKitSession.md#playing)
|
|
26
|
-
- [events](CameraKitSession.md#events)
|
|
27
|
-
- [metrics](CameraKitSession.md#metrics)
|
|
28
|
-
- [keyboard](CameraKitSession.md#keyboard)
|
|
29
|
-
|
|
30
|
-
### Methods
|
|
31
|
-
|
|
32
|
-
- [applyLens](CameraKitSession.md#applylens)
|
|
33
|
-
- [removeLens](CameraKitSession.md#removelens)
|
|
34
|
-
- [play](CameraKitSession.md#play)
|
|
35
|
-
- [pause](CameraKitSession.md#pause)
|
|
36
|
-
- [mute](CameraKitSession.md#mute)
|
|
37
|
-
- [unmute](CameraKitSession.md#unmute)
|
|
38
|
-
- [setSource](CameraKitSession.md#setsource)
|
|
39
|
-
- [setFPSLimit](CameraKitSession.md#setfpslimit)
|
|
40
|
-
- [destroy](CameraKitSession.md#destroy)
|
|
41
|
-
|
|
42
24
|
## Properties
|
|
43
25
|
|
|
44
26
|
### output
|
|
45
27
|
|
|
46
|
-
|
|
28
|
+
> `readonly` **output**: `object`
|
|
47
29
|
|
|
48
30
|
CameraKitSession renders video output to a `<canvas>` element. In fact, each session contains two canvas outputs
|
|
49
31
|
corresponding to the RenderTargets used by Lens creators, when using LensStudio to create a Lens.
|
|
@@ -55,42 +37,44 @@ other users (e.g. sent to the other members of a video call, or saved to disk fo
|
|
|
55
37
|
For many lenses, these outputs are identical – but each lens is free to render differently, based on its own
|
|
56
38
|
use-case.
|
|
57
39
|
|
|
58
|
-
####
|
|
40
|
+
#### live
|
|
59
41
|
|
|
60
|
-
|
|
61
|
-
| :------ | :------ |
|
|
62
|
-
| `live` | `HTMLCanvasElement` |
|
|
63
|
-
| `capture` | `HTMLCanvasElement` |
|
|
42
|
+
> **live**: `HTMLCanvasElement`
|
|
64
43
|
|
|
65
|
-
|
|
44
|
+
#### capture
|
|
45
|
+
|
|
46
|
+
> **capture**: `HTMLCanvasElement`
|
|
47
|
+
|
|
48
|
+
***
|
|
66
49
|
|
|
67
50
|
### playing
|
|
68
51
|
|
|
69
|
-
|
|
52
|
+
> **playing**: `object`
|
|
70
53
|
|
|
71
54
|
Indicates whether or not the session is currently rendering. If `false`, rendering is stopped. Otherwise the
|
|
72
55
|
value indicates which output is being rendered.
|
|
73
56
|
|
|
74
|
-
####
|
|
57
|
+
#### live
|
|
58
|
+
|
|
59
|
+
> **live**: `boolean`
|
|
60
|
+
|
|
61
|
+
#### capture
|
|
75
62
|
|
|
76
|
-
|
|
77
|
-
| :------ | :------ |
|
|
78
|
-
| `live` | `boolean` |
|
|
79
|
-
| `capture` | `boolean` |
|
|
63
|
+
> **capture**: `boolean`
|
|
80
64
|
|
|
81
|
-
|
|
65
|
+
***
|
|
82
66
|
|
|
83
67
|
### events
|
|
84
68
|
|
|
85
|
-
|
|
69
|
+
> `readonly` **events**: [`TypedEventTarget`](TypedEventTarget.md)\<[`CameraKitSessionEvents`](../type-aliases/CameraKitSessionEvents.md)\>
|
|
86
70
|
|
|
87
71
|
Add event listeners here to handle events which occur during the CameraKitSession.
|
|
88
72
|
|
|
89
73
|
**Note:** Applications may want to handle the `error` event, and check the contained error type -- if the type
|
|
90
|
-
is [LensExecutionError](../
|
|
74
|
+
is [LensExecutionError](../type-aliases/LensExecutionError.md), this means the current lens was unable to render and CameraKit will automatically
|
|
91
75
|
remove the lens.
|
|
92
76
|
|
|
93
|
-
|
|
77
|
+
#### Example
|
|
94
78
|
|
|
95
79
|
```ts
|
|
96
80
|
cameraKitSession.events.addEventListener('error', ({ detail }) => {
|
|
@@ -100,27 +84,30 @@ cameraKitSession.events.addEventListener('error', ({ detail }) => {
|
|
|
100
84
|
})
|
|
101
85
|
```
|
|
102
86
|
|
|
103
|
-
|
|
87
|
+
***
|
|
104
88
|
|
|
105
89
|
### metrics
|
|
106
90
|
|
|
107
|
-
|
|
91
|
+
> `readonly` **metrics**: [`LensPerformanceMetrics`](LensPerformanceMetrics.md)
|
|
108
92
|
|
|
109
93
|
Use this to measure current lens performance.
|
|
110
94
|
|
|
111
|
-
|
|
95
|
+
***
|
|
112
96
|
|
|
113
97
|
### keyboard
|
|
114
98
|
|
|
115
|
-
|
|
99
|
+
> `readonly` **keyboard**: [`Keyboard`](../interfaces/Keyboard.md)
|
|
116
100
|
|
|
117
|
-
|
|
101
|
+
The [Keyboard](../interfaces/Keyboard.md) API enables applications to handle keyboard input requests from lenses.
|
|
102
|
+
When a lens requests a keyboard, the app displays it in its preferred UI. As users type,
|
|
103
|
+
the app sends the text back to the lens for display. The lens can also request keyboard dismissal,
|
|
104
|
+
prompting the app to remove the displayed keyboard.
|
|
118
105
|
|
|
119
106
|
## Methods
|
|
120
107
|
|
|
121
|
-
### applyLens
|
|
108
|
+
### applyLens()
|
|
122
109
|
|
|
123
|
-
|
|
110
|
+
> **applyLens**(`lens`, `launchData`?): `Promise`\<`boolean`\>
|
|
124
111
|
|
|
125
112
|
Apply a Lens to this session.
|
|
126
113
|
|
|
@@ -131,7 +118,7 @@ when session playback in resumed.
|
|
|
131
118
|
Calling `applyLens` replaces any prior Lens – only one Lens is allowed at a time (per session).
|
|
132
119
|
|
|
133
120
|
**NOTE**: Errors may occur after the Lens is applied. If the Lens encounters errors while rendering,
|
|
134
|
-
Camera Kit will automatically remove the Lens from the session and emit a [LensExecutionError](../
|
|
121
|
+
Camera Kit will automatically remove the Lens from the session and emit a [LensExecutionError](../type-aliases/LensExecutionError.md) event.
|
|
135
122
|
Applications may want to listen for this error and, for example,
|
|
136
123
|
prevent the Lens from being selected again by the user.
|
|
137
124
|
|
|
@@ -146,10 +133,18 @@ session.events.addEventListener("error", ({ detail }) => {
|
|
|
146
133
|
|
|
147
134
|
#### Parameters
|
|
148
135
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
136
|
+
##### lens
|
|
137
|
+
|
|
138
|
+
[`Lens`](../interfaces/Lens.md)
|
|
139
|
+
|
|
140
|
+
The Lens to apply to this session.
|
|
141
|
+
|
|
142
|
+
##### launchData?
|
|
143
|
+
|
|
144
|
+
[`LensLaunchData`](../interfaces/LensLaunchData.md)
|
|
145
|
+
|
|
146
|
+
This can optionally be provided to pass some initial data to the Lens – only certain Lenses
|
|
147
|
+
expect launch data.
|
|
153
148
|
|
|
154
149
|
#### Returns
|
|
155
150
|
|
|
@@ -165,11 +160,11 @@ subsequent call to `applyLens` interrupted the Lens application.
|
|
|
165
160
|
- Lens content download fails, or the download of any required lens assets fails.
|
|
166
161
|
- An internal failure occurs in the Lens rendering engine when attempting to apply the Lens.
|
|
167
162
|
|
|
168
|
-
|
|
163
|
+
***
|
|
169
164
|
|
|
170
|
-
### removeLens
|
|
165
|
+
### removeLens()
|
|
171
166
|
|
|
172
|
-
|
|
167
|
+
> **removeLens**(): `Promise`\<`boolean`\>
|
|
173
168
|
|
|
174
169
|
Remove a Lens from this session.
|
|
175
170
|
|
|
@@ -187,11 +182,11 @@ session's rendered output will still have a (new) lens applied.
|
|
|
187
182
|
3. Rejected: the lens has failed to be removed. This can happen if an internal failure occurs in the Lens
|
|
188
183
|
rendering engine when attempting to remove the lens.
|
|
189
184
|
|
|
190
|
-
|
|
185
|
+
***
|
|
191
186
|
|
|
192
|
-
### play
|
|
187
|
+
### play()
|
|
193
188
|
|
|
194
|
-
|
|
189
|
+
> **play**(`target`): `Promise`\<`void`\>
|
|
195
190
|
|
|
196
191
|
Start/resume session playback – LensCore will begin rendering frames to the output.
|
|
197
192
|
|
|
@@ -200,9 +195,11 @@ processing will occur until `setSource()` is called.
|
|
|
200
195
|
|
|
201
196
|
#### Parameters
|
|
202
197
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
198
|
+
##### target
|
|
199
|
+
|
|
200
|
+
[`RenderTarget`](../type-aliases/RenderTarget.md) = `"live"`
|
|
201
|
+
|
|
202
|
+
Specify the [RenderTarget](../type-aliases/RenderTarget.md) to render. Defaults to the `live` RenderTarget.
|
|
206
203
|
|
|
207
204
|
#### Returns
|
|
208
205
|
|
|
@@ -211,7 +208,7 @@ processing will occur until `setSource()` is called.
|
|
|
211
208
|
Promise resolves when playback state has been updated. If no source has been set, this means `play` will
|
|
212
209
|
resolve before any frames are processed -- but once a source is set, frames will immediately begin processing.
|
|
213
210
|
|
|
214
|
-
|
|
211
|
+
#### Example
|
|
215
212
|
|
|
216
213
|
```ts
|
|
217
214
|
const cameraKitSession = await cameraKit.createSession()
|
|
@@ -222,19 +219,22 @@ await cameraKitSession.play()
|
|
|
222
219
|
// media source has been set.
|
|
223
220
|
```
|
|
224
221
|
|
|
225
|
-
|
|
222
|
+
***
|
|
226
223
|
|
|
227
|
-
### pause
|
|
224
|
+
### pause()
|
|
228
225
|
|
|
229
|
-
|
|
226
|
+
> **pause**(`target`): `Promise`\<`void`\>
|
|
230
227
|
|
|
231
228
|
Pause session playback – LensCore will stop rendering frames to the output.
|
|
232
229
|
|
|
233
230
|
#### Parameters
|
|
234
231
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
232
|
+
##### target
|
|
233
|
+
|
|
234
|
+
[`RenderTarget`](../type-aliases/RenderTarget.md) = `"live"`
|
|
235
|
+
|
|
236
|
+
Specify the RenderTarget to pause playback. May be either `'live'` or `'capture'`.
|
|
237
|
+
Default is `'live'`.
|
|
238
238
|
|
|
239
239
|
#### Returns
|
|
240
240
|
|
|
@@ -242,47 +242,53 @@ Pause session playback – LensCore will stop rendering frames to the output.
|
|
|
242
242
|
|
|
243
243
|
Promise resolves when playback has stopped.
|
|
244
244
|
|
|
245
|
-
|
|
245
|
+
***
|
|
246
246
|
|
|
247
|
-
### mute
|
|
247
|
+
### mute()
|
|
248
248
|
|
|
249
|
-
|
|
249
|
+
> **mute**(`fade`): `void`
|
|
250
250
|
|
|
251
251
|
Mute all sounds (default SDK state is unmuted).
|
|
252
252
|
|
|
253
253
|
#### Parameters
|
|
254
254
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
255
|
+
##### fade
|
|
256
|
+
|
|
257
|
+
`boolean` = `false`
|
|
258
|
+
|
|
259
|
+
Do we want audio to fade out?
|
|
258
260
|
|
|
259
261
|
#### Returns
|
|
260
262
|
|
|
261
263
|
`void`
|
|
262
264
|
|
|
263
|
-
|
|
265
|
+
***
|
|
264
266
|
|
|
265
|
-
### unmute
|
|
267
|
+
### unmute()
|
|
266
268
|
|
|
267
|
-
|
|
269
|
+
> **unmute**(`fade`): `void`
|
|
268
270
|
|
|
269
271
|
Unmute all sounds.
|
|
270
272
|
|
|
271
273
|
#### Parameters
|
|
272
274
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
275
|
+
##### fade
|
|
276
|
+
|
|
277
|
+
`boolean` = `false`
|
|
278
|
+
|
|
279
|
+
Do we want audio to fade in?
|
|
276
280
|
|
|
277
281
|
#### Returns
|
|
278
282
|
|
|
279
283
|
`void`
|
|
280
284
|
|
|
281
|
-
|
|
285
|
+
***
|
|
286
|
+
|
|
287
|
+
### setSource()
|
|
282
288
|
|
|
283
|
-
|
|
289
|
+
#### Call Signature
|
|
284
290
|
|
|
285
|
-
|
|
291
|
+
> **setSource**(`source`): `Promise`\<[`CameraKitSource`](CameraKitSource.md)\>
|
|
286
292
|
|
|
287
293
|
Set the media source for this session.
|
|
288
294
|
|
|
@@ -292,22 +298,26 @@ is already playing, setting the source will immediately begin rendering the new
|
|
|
292
298
|
|
|
293
299
|
The CameraKit SDK provides implementations for various common sources, which applications can create using the
|
|
294
300
|
following functions:
|
|
295
|
-
- [createMediaStreamSource](../
|
|
296
|
-
- [createVideoSource](../
|
|
297
|
-
- [createImageSource](../
|
|
301
|
+
- [createMediaStreamSource](../functions/createMediaStreamSource.md)
|
|
302
|
+
- [createVideoSource](../functions/createVideoSource.md)
|
|
303
|
+
- [createImageSource](../functions/createImageSource.md)
|
|
298
304
|
|
|
299
305
|
**Important:** Once a source has been set for a session, it cannot be set again, even if it has been replaced
|
|
300
306
|
by another one. You must provide a new instance of [CameraKitSource](CameraKitSource.md) to [CameraKitSession.setSource](CameraKitSession.md#setsource).
|
|
301
307
|
If you want to reuse the existing source, you can use its [CameraKitSource.copy](CameraKitSource.md#copy) method to create a new
|
|
302
308
|
instance.
|
|
303
309
|
|
|
304
|
-
|
|
310
|
+
##### Parameters
|
|
305
311
|
|
|
306
|
-
|
|
307
|
-
| :------ | :------ | :------ |
|
|
308
|
-
| `source` | [`CameraKitSource`](CameraKitSource.md) | A CameraKitSource object representing input media (e.g. a webcam stream, video, or some other source of image data), which CameraKit will supply to Lenses in order for them to render effects on top of that source. |
|
|
312
|
+
###### source
|
|
309
313
|
|
|
310
|
-
|
|
314
|
+
[`CameraKitSource`](CameraKitSource.md)
|
|
315
|
+
|
|
316
|
+
A CameraKitSource object representing input media (e.g. a webcam stream, video, or some other
|
|
317
|
+
source of image data), which CameraKit will supply to Lenses in order for them to render effects on top of that
|
|
318
|
+
source.
|
|
319
|
+
|
|
320
|
+
##### Returns
|
|
311
321
|
|
|
312
322
|
`Promise`\<[`CameraKitSource`](CameraKitSource.md)\>
|
|
313
323
|
|
|
@@ -315,24 +325,54 @@ Promise is resolved when the source has successfully been set. If the session wa
|
|
|
315
325
|
state, the Promise resolves when the first frame from the new source has been rendered. The resolved value is
|
|
316
326
|
the [CameraKitSource](CameraKitSource.md) object attached to the session.
|
|
317
327
|
|
|
318
|
-
|
|
328
|
+
#### Call Signature
|
|
319
329
|
|
|
320
|
-
|
|
330
|
+
> **setSource**(`source`, `options`?): `Promise`\<[`CameraKitSource`](CameraKitSource.md)\>
|
|
321
331
|
|
|
322
|
-
|
|
323
|
-
| :------ | :------ |
|
|
324
|
-
| `source` | `HTMLVideoElement` \| `MediaStream` |
|
|
325
|
-
| `options?` | `Partial`\<[`CameraKitDeviceOptions`](../interfaces/CameraKitDeviceOptions.md)\> |
|
|
332
|
+
Set the media source for this session.
|
|
326
333
|
|
|
327
|
-
|
|
334
|
+
Sessions may only have one source at a time - if `setSource` is called multiple times, subsequent calls replace
|
|
335
|
+
the prior source. Setting the source does not trigger rendering (that’s done by `session.play()`). If the session
|
|
336
|
+
is already playing, setting the source will immediately begin rendering the new source.
|
|
337
|
+
|
|
338
|
+
The CameraKit SDK provides implementations for various common sources, which applications can create using the
|
|
339
|
+
following functions:
|
|
340
|
+
- [createMediaStreamSource](../functions/createMediaStreamSource.md)
|
|
341
|
+
- [createVideoSource](../functions/createVideoSource.md)
|
|
342
|
+
- [createImageSource](../functions/createImageSource.md)
|
|
343
|
+
|
|
344
|
+
**Important:** Once a source has been set for a session, it cannot be set again, even if it has been replaced
|
|
345
|
+
by another one. You must provide a new instance of [CameraKitSource](CameraKitSource.md) to [CameraKitSession.setSource](CameraKitSession.md#setsource).
|
|
346
|
+
If you want to reuse the existing source, you can use its [CameraKitSource.copy](CameraKitSource.md#copy) method to create a new
|
|
347
|
+
instance.
|
|
348
|
+
|
|
349
|
+
##### Parameters
|
|
350
|
+
|
|
351
|
+
###### source
|
|
352
|
+
|
|
353
|
+
A CameraKitSource object representing input media (e.g. a webcam stream, video, or some other
|
|
354
|
+
source of image data), which CameraKit will supply to Lenses in order for them to render effects on top of that
|
|
355
|
+
source.
|
|
356
|
+
|
|
357
|
+
`HTMLVideoElement` | `MediaStream`
|
|
358
|
+
|
|
359
|
+
###### options?
|
|
360
|
+
|
|
361
|
+
`Partial`\<[`CameraKitDeviceOptions`](../interfaces/CameraKitDeviceOptions.md)\>
|
|
362
|
+
|
|
363
|
+
##### Returns
|
|
328
364
|
|
|
329
365
|
`Promise`\<[`CameraKitSource`](CameraKitSource.md)\>
|
|
330
366
|
|
|
331
|
-
|
|
367
|
+
Promise is resolved when the source has successfully been set. If the session was already in the playing
|
|
368
|
+
state, the Promise resolves when the first frame from the new source has been rendered. The resolved value is
|
|
369
|
+
the [CameraKitSource](CameraKitSource.md) object attached to the session.
|
|
332
370
|
|
|
333
|
-
|
|
371
|
+
***
|
|
334
372
|
|
|
335
|
-
|
|
373
|
+
### setFPSLimit()
|
|
374
|
+
|
|
375
|
+
> **setFPSLimit**(`fpsLimit`): `Promise`\<`void`\>
|
|
336
376
|
|
|
337
377
|
Set an FPS limit.
|
|
338
378
|
|
|
@@ -345,9 +385,11 @@ alternatives.
|
|
|
345
385
|
|
|
346
386
|
#### Parameters
|
|
347
387
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
388
|
+
##### fpsLimit
|
|
389
|
+
|
|
390
|
+
`number`
|
|
391
|
+
|
|
392
|
+
A maximum FPS, rendering will not exceed this limit
|
|
351
393
|
|
|
352
394
|
#### Returns
|
|
353
395
|
|
|
@@ -355,11 +397,11 @@ alternatives.
|
|
|
355
397
|
|
|
356
398
|
Promise is resolved when the limit is successfully set.
|
|
357
399
|
|
|
358
|
-
|
|
400
|
+
***
|
|
359
401
|
|
|
360
|
-
### destroy
|
|
402
|
+
### destroy()
|
|
361
403
|
|
|
362
|
-
|
|
404
|
+
> **destroy**(): `Promise`\<`void`\>
|
|
363
405
|
|
|
364
406
|
Destroy the session.
|
|
365
407
|
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
[CameraKit Web SDK
|
|
1
|
+
[**CameraKit Web SDK v1.2.0**](../README.md)
|
|
2
|
+
|
|
3
|
+
***
|
|
4
|
+
|
|
5
|
+
[CameraKit Web SDK](../globals.md) / CameraKitSource
|
|
2
6
|
|
|
3
7
|
# Class: CameraKitSource
|
|
4
8
|
|
|
@@ -15,31 +19,25 @@ even if it has been detached. You must supply a new instance of [CameraKitSource
|
|
|
15
19
|
If you want to reuse the existing source, you can use its [CameraKitSource.copy](CameraKitSource.md#copy) method to create a new
|
|
16
20
|
instance.
|
|
17
21
|
|
|
18
|
-
##
|
|
22
|
+
## Constructors
|
|
19
23
|
|
|
20
|
-
###
|
|
24
|
+
### new CameraKitSource()
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
> **new CameraKitSource**(`sourceInfo`, `subscriber`, `deviceInfo`): [`CameraKitSource`](CameraKitSource.md)
|
|
23
27
|
|
|
24
|
-
|
|
28
|
+
#### Parameters
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
- [setRenderSize](CameraKitSource.md#setrendersize)
|
|
28
|
-
- [setTransform](CameraKitSource.md#settransform)
|
|
30
|
+
##### sourceInfo
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
[`CameraKitSourceInfo`](../interfaces/CameraKitSourceInfo.md)
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
##### subscriber
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
[`CameraKitSourceSubscriber`](../interfaces/CameraKitSourceSubscriber.md) = `{}`
|
|
35
37
|
|
|
36
|
-
|
|
38
|
+
##### deviceInfo
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
| :------ | :------ |
|
|
40
|
-
| `sourceInfo` | [`CameraKitSourceInfo`](../interfaces/CameraKitSourceInfo.md) |
|
|
41
|
-
| `subscriber` | [`CameraKitSourceSubscriber`](../interfaces/CameraKitSourceSubscriber.md) |
|
|
42
|
-
| `deviceInfo` | `Partial`\<[`CameraKitDeviceOptions`](../interfaces/CameraKitDeviceOptions.md)\> |
|
|
40
|
+
`Partial`\<[`CameraKitDeviceOptions`](../interfaces/CameraKitDeviceOptions.md)\> = `{}`
|
|
43
41
|
|
|
44
42
|
#### Returns
|
|
45
43
|
|
|
@@ -47,17 +45,19 @@ instance.
|
|
|
47
45
|
|
|
48
46
|
## Methods
|
|
49
47
|
|
|
50
|
-
### copy
|
|
48
|
+
### copy()
|
|
51
49
|
|
|
52
|
-
|
|
50
|
+
> **copy**(`deviceInfo`): [`CameraKitSource`](CameraKitSource.md)
|
|
53
51
|
|
|
54
52
|
Make a copy of the source, sharing the same [CameraKitSourceSubscriber](../interfaces/CameraKitSourceSubscriber.md).
|
|
55
53
|
|
|
56
54
|
#### Parameters
|
|
57
55
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
##### deviceInfo
|
|
57
|
+
|
|
58
|
+
`Partial`\<[`CameraKitDeviceOptions`](../interfaces/CameraKitDeviceOptions.md)\> = `{}`
|
|
59
|
+
|
|
60
|
+
Optionally provide new device info for the copy (e.g. to change the camera type).
|
|
61
61
|
|
|
62
62
|
#### Returns
|
|
63
63
|
|
|
@@ -65,11 +65,11 @@ Make a copy of the source, sharing the same [CameraKitSourceSubscriber](../inter
|
|
|
65
65
|
|
|
66
66
|
The new [CameraKitSource](CameraKitSource.md)
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
***
|
|
69
69
|
|
|
70
|
-
### setRenderSize
|
|
70
|
+
### setRenderSize()
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
> **setRenderSize**(`width`, `height`): `Promise`\<`void`\>
|
|
73
73
|
|
|
74
74
|
Set the resolution used to render this source.
|
|
75
75
|
|
|
@@ -86,14 +86,21 @@ on a web page is determined by the CSS of the page. It is distinct from the size
|
|
|
86
86
|
Lenses. Performance is dominated by render size, while any display scaling (using CSS) can most often be thought
|
|
87
87
|
of as free.
|
|
88
88
|
|
|
89
|
-
The size of the Live and Capture [RenderTarget](../
|
|
89
|
+
The size of the Live and Capture [RenderTarget](../type-aliases/RenderTarget.md) is always the same.
|
|
90
90
|
|
|
91
91
|
#### Parameters
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
##### width
|
|
94
|
+
|
|
95
|
+
`number`
|
|
96
|
+
|
|
97
|
+
pixels
|
|
98
|
+
|
|
99
|
+
##### height
|
|
100
|
+
|
|
101
|
+
`number`
|
|
102
|
+
|
|
103
|
+
pixels
|
|
97
104
|
|
|
98
105
|
#### Returns
|
|
99
106
|
|
|
@@ -101,24 +108,26 @@ The size of the Live and Capture [RenderTarget](../modules.md#rendertarget) is a
|
|
|
101
108
|
|
|
102
109
|
Promise resolves when the render size has been successfully updated.
|
|
103
110
|
|
|
104
|
-
|
|
111
|
+
#### Todo
|
|
105
112
|
|
|
106
113
|
Currently it's only valid to call `setRenderSize` after `CameraKitSession.play` has been called. This
|
|
107
114
|
constraint should be removed, so callers don't have to understand the underlying LensCore state machine.
|
|
108
115
|
|
|
109
|
-
|
|
116
|
+
***
|
|
110
117
|
|
|
111
|
-
### setTransform
|
|
118
|
+
### setTransform()
|
|
112
119
|
|
|
113
|
-
|
|
120
|
+
> **setTransform**(`transform`): `Promise`\<`void`\>
|
|
114
121
|
|
|
115
122
|
Apply a 2D transformation to the source (e.g. translation, rotation, scale).
|
|
116
123
|
|
|
117
124
|
#### Parameters
|
|
118
125
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
126
|
+
##### transform
|
|
127
|
+
|
|
128
|
+
[`Transform2D`](Transform2D.md)
|
|
129
|
+
|
|
130
|
+
Specifies the 3x3 matrix describing the transformation.
|
|
122
131
|
|
|
123
132
|
#### Returns
|
|
124
133
|
|