From b7051169e97d7134d94f820320195c2375c4c4eb Mon Sep 17 00:00:00 2001 From: Jokubas Dargis <19291125+eleventigerssc@users.noreply.github.com> Date: Wed, 24 Apr 2024 16:45:39 -0700 Subject: [PATCH] [All] Sync changes for the 1.30.0 release (#64) Co-authored-by: bot-snapenginesc --- CHANGELOG.md | 10 + README.md | 2 +- VERSION | 2 +- docs/api/README.md | 8 +- .../-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html | 69 + .../amount.html | 69 + .../index.html | 121 + .../properties.html | 69 + .../-adjustment/-controller/-noop/index.html | 123 + .../-adjustment/-controller/-noop/set.html | 69 + .../-adjustment/-controller/index.html | 153 ++ .../-adjustment/-controller/set.html | 69 + .../-adjustment/-property/id.html | 69 + .../-adjustment/-property/index.html | 91 + .../-adjustment/index.html | 147 ++ .../-adjustment/properties.html | 69 + .../-adjustments-component/-noop/close.html | 69 + .../-adjustments-component/-noop/index.html | 108 + .../-noop/processor.html | 69 + .../-processor/-noop/apply.html | 69 + .../-processor/-noop/available.html | 69 + .../-processor/-noop/connect-input.html | 69 + .../-processor/-noop/connect-output.html | 69 + .../-processor/-noop/index.html | 166 ++ .../-noop/observe-required-capabilities.html | 69 + .../-processor/-noop/remove.html | 69 + .../-processor/-result/-applied/-applied.html | 69 + .../-result/-applied/adjustment.html | 69 + .../-result/-applied/controller.html | 69 + .../-processor/-result/-applied/equals.html | 69 + .../-result/-applied/hash-code.html | 69 + .../-processor/-result/-applied/index.html | 187 ++ .../-result/-applied/to-string.html | 69 + .../-result/-unavailable/-unavailable.html | 69 + .../-result/-unavailable/adjustment.html | 69 + .../-result/-unavailable/equals.html | 69 + .../-result/-unavailable/hash-code.html | 69 + .../-result/-unavailable/index.html | 172 ++ .../-result/-unavailable/to-string.html | 69 + .../-processor/-result/index.html | 147 ++ .../-processor/apply.html | 69 + .../-processor/available.html | 69 + .../-processor/index.html | 211 ++ .../-processor/remove.html | 69 + .../-adjustments-component/close.html | 69 + .../-adjustments-component/index.html | 168 ++ .../-adjustments-component/processor.html | 69 + .../-p-r-o-p-e-r-t-y_-b-l-u-r.html | 69 + .../-portrait-adjustment/blur.html | 69 + .../-portrait-adjustment/index.html | 121 + .../-portrait-adjustment/properties.html | 69 + .../com.snap.camerakit.adjustments/index.html | 137 + .../when-applied.html | 69 + .../-consumer/accept.html | 69 + .../-consumer/index.html | 126 + .../com.snap.camerakit.common/index.html | 90 + ...-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html | 69 + .../-adjustment/-volume/-mute/index.html | 91 + .../-adjustment/-volume/-mute/to-string.html | 69 + .../-adjustment/-volume/-un-mute/index.html | 91 + .../-volume/-un-mute/to-string.html | 69 + .../-audio/-adjustment/-volume/index.html | 130 + .../-audio/-adjustment/index.html | 104 + .../-audio/-noop/adjust.html | 69 + .../-lenses-component/-audio/-noop/index.html | 91 + .../-lenses-component/-audio/adjust.html | 69 + .../-lenses-component/-audio/index.html | 136 + .../-builder/attach-widgets-to.html | 69 + .../-lenses-component/-builder/build.html | 69 + .../-builder/configure-cache.html | 69 + .../-builder/configure-carousel.html | 69 + .../-builder/configure-hints.html | 69 + .../-builder/configure-loading-overlay.html | 69 + .../-builder/configure-media-picker.html | 69 + .../-builder/configure-processor.html | 69 + .../-builder/dispatch-touch-events-to.html | 69 + .../-lenses-component/-builder/index.html | 226 ++ .../-builder/remote-api-service-factory.html | 69 + .../-cache/-configuration/index.html | 91 + .../-configuration/lens-content-max-size.html | 69 + .../-lenses-component/-cache/index.html | 91 + .../-configuration/activate-idle.html | 69 + .../-configuration/activate-on-start.html | 69 + .../-configuration/activate-on-tap.html | 69 + .../-configuration/attach-view-to.html | 69 + .../-configuration/close-button-enabled.html | 69 + .../close-button-margin-bottom-dimen-res.html | 69 + .../-configuration/configure-each-item.html | 69 + .../-configuration/deactivate-on-close.html | 69 + .../-configuration/disable-idle.html | 69 + .../-carousel/-configuration/enabled.html | 69 + .../-configuration/height-dimen-res.html | 69 + .../-carousel/-configuration/index.html | 348 +++ .../margin-bottom-dimen-res.html | 69 + .../-configuration/observe-group-ids.html | 69 + .../observed-group-ids-provider.html | 69 + .../-configuration/observed-group-ids.html | 69 + .../padding-bottom-dimen-res.html | 69 + .../-configuration/padding-top-dimen-res.html | 69 + .../-carousel/-configuration/view.html | 69 + .../-event/-activated/-idle/index.html | 153 ++ .../-event/-activated/-idle/to-string.html | 69 + .../-activated/-with-lens/-with-lens.html | 69 + .../-event/-activated/-with-lens/equals.html | 69 + .../-activated/-with-lens/hash-code.html | 69 + .../-event/-activated/-with-lens/index.html | 217 ++ .../-event/-activated/-with-lens/lens.html | 69 + .../-activated/-with-lens/to-string.html | 69 + .../-carousel/-event/-activated/index.html | 192 ++ .../-carousel/-event/-deactivated/index.html | 153 ++ .../-event/-deactivated/to-string.html | 69 + .../-carousel/-event/index.html | 192 ++ .../-carousel/-item-options/--index--.html | 69 + .../-item-options/content-description.html | 69 + .../-carousel/-item-options/enabled.html | 69 + .../-carousel/-item-options/index.html | 198 ++ .../-carousel/-item-options/lens.html | 69 + .../-carousel/-item-options/lenses.html | 69 + .../-carousel/-item-options/move-to-left.html | 69 + .../-item-options/move-to-right.html | 69 + .../-carousel/-item-options/side.html | 69 + .../-layout-placement/-above/index.html | 91 + .../-layout-placement/-above/to-string.html | 69 + .../-layout-placement/-behind/index.html | 91 + .../-layout-placement/-behind/to-string.html | 69 + .../-layout-placement/-in-front/index.html | 91 + .../-in-front/to-string.html | 69 + .../-carousel/-layout-placement/index.html | 156 ++ .../-carousel/-noop/activate.html | 69 + .../-carousel/-noop/deactivate.html | 69 + .../-carousel/-noop/index.html | 121 + .../-carousel/-noop/observe.html | 69 + .../-carousel/-side/-l-e-f-t/index.html | 106 + .../-carousel/-side/-r-i-g-h-t/index.html | 106 + .../-carousel/-side/index.html | 170 ++ .../-carousel/-side/value-of.html | 69 + .../-carousel/-side/values.html | 69 + .../-event/-close-button-clicked/index.html | 91 + .../-close-button-clicked/to-string.html | 69 + .../-event/-item-selected/-item-selected.html | 69 + .../-view/-event/-item-selected/equals.html | 69 + .../-event/-item-selected/hash-code.html | 69 + .../-view/-event/-item-selected/index.html | 155 ++ .../-view/-event/-item-selected/item.html | 69 + .../-event/-item-selected/to-string.html | 69 + .../-visible-items-changed.html | 69 + .../-event/-visible-items-changed/equals.html | 69 + .../-visible-items-changed/hash-code.html | 69 + .../-event/-visible-items-changed/index.html | 155 ++ .../-visible-items-changed/to-string.html | 69 + .../-visible-items-changed/visible-items.html | 69 + .../-carousel/-view/-event/index.html | 156 ++ .../-carousel/-view/-item/-idle/id.html | 69 + .../-carousel/-view/-item/-idle/index.html | 108 + .../-view/-item/-idle/to-string.html | 69 + .../-item/-lens/content-description.html | 69 + .../-carousel/-view/-item/-lens/icon-uri.html | 69 + .../-carousel/-view/-item/-lens/index.html | 138 + .../-item/-lens/observe-loading-state.html | 69 + .../-item/-loading-state/-done/index.html | 91 + .../-item/-loading-state/-done/to-string.html | 69 + .../-item/-loading-state/-idle/index.html | 91 + .../-item/-loading-state/-idle/to-string.html | 69 + .../-loading-state/-in-progress/index.html | 91 + .../-in-progress/to-string.html | 69 + .../-view/-item/-loading-state/index.html | 156 ++ .../-carousel/-view/-item/id.html | 69 + .../-carousel/-view/-item/index.html | 162 ++ .../-carousel/-view/-model/-hidden/index.html | 91 + .../-view/-model/-hidden/to-string.html | 69 + .../-view/-model/-visible/-visible.html | 69 + .../-view/-model/-visible/closeable.html | 69 + .../-view/-model/-visible/equals.html | 69 + .../-view/-model/-visible/hash-code.html | 69 + .../-view/-model/-visible/index.html | 185 ++ .../-view/-model/-visible/items.html | 69 + .../-visible/selected-item-position.html | 69 + .../-view/-model/-visible/to-string.html | 69 + .../-carousel/-view/-model/index.html | 130 + .../-carousel/-view/index.html | 153 ++ .../-carousel/-view/observe.html | 69 + .../-lenses-component/-carousel/activate.html | 69 + .../-carousel/deactivate.html | 69 + .../-lenses-component/-carousel/index.html | 241 ++ .../-lenses-component/-carousel/observe.html | 69 + .../-hints/-configuration/enabled.html | 69 + .../-hints/-configuration/index.html | 106 + .../-hints/-configuration/view.html | 69 + .../-view/-model/-displayed/-displayed.html | 69 + .../-view/-model/-displayed/auto-hide.html | 69 + .../-view/-model/-displayed/equals.html | 69 + .../-view/-model/-displayed/hash-code.html | 69 + .../-hints/-view/-model/-displayed/id.html | 69 + .../-hints/-view/-model/-displayed/index.html | 200 ++ .../-hints/-view/-model/-displayed/text.html | 69 + .../-view/-model/-displayed/to-string.html | 69 + .../-hints/-view/-model/-hidden/index.html | 91 + .../-view/-model/-hidden/to-string.html | 69 + .../-hints/-view/-model/index.html | 130 + .../-lenses-component/-hints/-view/index.html | 108 + .../-lenses-component/-hints/index.html | 106 + .../-lens/-companion/index.html | 73 + .../-lens/-facing/-b-a-c-k/index.html | 106 + .../-lens/-facing/-f-r-o-n-t/index.html | 106 + .../-lens/-facing/index.html | 170 ++ .../-lens/-facing/value-of.html | 69 + .../-lens/-facing/values.html | 69 + .../-lens/-launch-data/-builder/build.html | 69 + .../-lens/-launch-data/-builder/index.html | 151 ++ .../-launch-data/-builder/put-number.html | 69 + .../-launch-data/-builder/put-numbers.html | 69 + .../-launch-data/-builder/put-string.html | 69 + .../-launch-data/-builder/put-strings.html | 69 + .../-lens/-launch-data/-companion/index.html | 73 + .../-lens/-launch-data/-empty/index.html | 91 + .../-lens/-launch-data/-empty/to-string.html | 69 + .../-lens/-launch-data/index.html | 134 + .../-lens/-media/-deep-link/-deep-link.html | 69 + .../-lens/-media/-deep-link/equals.html | 69 + .../-lens/-media/-deep-link/hash-code.html | 69 + .../-lens/-media/-deep-link/index.html | 155 ++ .../-lens/-media/-deep-link/to-string.html | 69 + .../-lens/-media/-deep-link/uri.html | 69 + .../-lens/-media/-image/-png/-png.html | 69 + .../-lens/-media/-image/-png/equals.html | 69 + .../-lens/-media/-image/-png/hash-code.html | 69 + .../-lens/-media/-image/-png/index.html | 155 ++ .../-lens/-media/-image/-png/to-string.html | 69 + .../-lens/-media/-image/-png/uri.html | 69 + .../-lens/-media/-image/-webp/-webp.html | 69 + .../-lens/-media/-image/-webp/equals.html | 69 + .../-lens/-media/-image/-webp/hash-code.html | 69 + .../-lens/-media/-image/-webp/index.html | 155 ++ .../-lens/-media/-image/-webp/to-string.html | 69 + .../-lens/-media/-image/-webp/uri.html | 69 + .../-lens/-media/-image/index.html | 147 ++ .../-lens/-media/-sequence/-webp/-webp.html | 69 + .../-lens/-media/-sequence/-webp/equals.html | 69 + .../-media/-sequence/-webp/hash-code.html | 69 + .../-lens/-media/-sequence/-webp/index.html | 170 ++ .../-media/-sequence/-webp/to-string.html | 69 + .../-lens/-media/-sequence/-webp/values.html | 69 + .../-lens/-media/-sequence/index.html | 140 + .../-lens/-media/-sequence/values.html | 69 + .../-lenses-component/-lens/-media/index.html | 177 ++ .../-lenses-component/-lens/-media/uri.html | 69 + .../-lens/-preview/-image/-image.html | 69 + .../-lens/-preview/-image/equals.html | 69 + .../-lens/-preview/-image/hash-code.html | 69 + .../-lens/-preview/-image/index.html | 155 ++ .../-lens/-preview/-image/to-string.html | 69 + .../-lens/-preview/-image/uri.html | 69 + .../-lens/-preview/index.html | 104 + .../-lens/facing-preference.html | 69 + .../-lenses-component/-lens/group-id.html | 69 + .../-lenses-component/-lens/icon-uri.html | 69 + .../-lenses-component/-lens/icons.html | 69 + .../-lenses-component/-lens/id.html | 69 + .../-lenses-component/-lens/index.html | 303 +++ .../-lenses-component/-lens/name.html | 69 + .../-lenses-component/-lens/preview.html | 69 + .../-lenses-component/-lens/previews.html | 69 + .../-lenses-component/-lens/snapcodes.html | 69 + .../-lenses-component/-lens/vendor-data.html | 69 + .../-configuration/enabled.html | 69 + .../-configuration/index.html | 91 + .../-loading-overlay/index.html | 91 + .../-media-picker/-configuration/enabled.html | 69 + .../-media-picker/-configuration/index.html | 106 + .../-media-picker/-configuration/view.html | 69 + .../-event/-item-selected/-item-selected.html | 69 + .../-view/-event/-item-selected/equals.html | 69 + .../-event/-item-selected/hash-code.html | 69 + .../-view/-event/-item-selected/index.html | 155 ++ .../-view/-event/-item-selected/item.html | 69 + .../-event/-item-selected/to-string.html | 69 + .../-event/-last-item-visible/index.html | 91 + .../-event/-last-item-visible/to-string.html | 69 + .../-media-picker/-view/-event/index.html | 130 + .../-view/-item/-loading/index.html | 91 + .../-view/-item/-loading/to-string.html | 69 + .../-view/-item/-media/-media.html | 69 + .../-view/-item/-media/crop-rect.html | 69 + .../-view/-item/-media/equals.html | 69 + .../-view/-item/-media/hash-code.html | 69 + .../-view/-item/-media/icon-uri.html | 69 + .../-media-picker/-view/-item/-media/id.html | 69 + .../-view/-item/-media/index.html | 215 ++ .../-view/-item/-media/label.html | 69 + .../-view/-item/-media/selected.html | 69 + .../-view/-item/-media/to-string.html | 69 + .../-media-picker/-view/-item/index.html | 130 + .../-view/-model/-hidden/index.html | 91 + .../-view/-model/-hidden/to-string.html | 69 + .../-view/-model/-visible/-visible.html | 69 + .../-view/-model/-visible/equals.html | 69 + .../-view/-model/-visible/hash-code.html | 69 + .../-view/-model/-visible/index.html | 155 ++ .../-view/-model/-visible/items.html | 69 + .../-view/-model/-visible/to-string.html | 69 + .../-media-picker/-view/-model/index.html | 130 + .../-media-picker/-view/index.html | 153 ++ .../-media-picker/-view/observe.html | 69 + .../-media-picker/index.html | 106 + .../-lenses-component/-noop/close.html | 69 + .../-lenses-component/-noop/index.html | 183 ++ .../-preferences/-noop/clear.html | 69 + .../-preferences/-noop/index.html | 91 + .../-lenses-component/-preferences/clear.html | 69 + .../-lenses-component/-preferences/index.html | 121 + .../-prefetcher/-noop/index.html | 106 + .../-prefetcher/-noop/observe.html | 69 + .../-prefetcher/-noop/run.html | 69 + .../-status/-l-o-a-d-e-d/index.html | 106 + .../-status/-l-o-a-d-i-n-g/index.html | 106 + .../-status/-u-n-l-o-a-d-e-d/index.html | 106 + .../-prefetcher/-status/index.html | 185 ++ .../-prefetcher/-status/value-of.html | 69 + .../-prefetcher/-status/values.html | 69 + .../-lenses-component/-prefetcher/index.html | 151 ++ .../-prefetcher/observe.html | 69 + .../-lenses-component/-prefetcher/run.html | 69 + .../-processor/-configuration/index.html | 106 + .../input-frame-rotation-behavior.html | 69 + ...device-orientation-for-face-detection.html | 69 + .../-processor/-event/-applied/-applied.html | 69 + .../-processor/-event/-applied/equals.html | 69 + .../-processor/-event/-applied/hash-code.html | 69 + .../-processor/-event/-applied/index.html | 202 ++ .../-processor/-event/-applied/lens.html | 69 + .../-processor/-event/-applied/to-string.html | 69 + .../-first-frame-processed.html | 69 + .../-event/-first-frame-processed/equals.html | 69 + .../-first-frame-processed/hash-code.html | 69 + .../-event/-first-frame-processed/index.html | 202 ++ .../-event/-first-frame-processed/lens.html | 69 + .../-first-frame-processed/to-string.html | 69 + .../-processor/-event/-idle/index.html | 138 + .../-processor/-event/-idle/to-string.html | 69 + .../-processor/-event/index.html | 203 ++ .../-failure/-internal/-internal.html | 69 + .../-processor/-failure/-internal/index.html | 245 ++ .../-processor/-failure/-lens/-lens.html | 69 + .../-processor/-failure/-lens/id.html | 69 + .../-processor/-failure/-lens/index.html | 260 ++ .../-library-loading/-library-loading.html | 69 + .../-failure/-library-loading/index.html | 245 ++ .../-processor/-failure/index.html | 310 +++ .../index.html | 106 + .../index.html | 106 + .../-input-frame-rotation-behavior/index.html | 170 ++ .../value-of.html | 69 + .../values.html | 69 + .../-processor/-noop/apply.html | 69 + .../-processor/-noop/clear.html | 69 + .../-processor/-noop/connect-input.html | 69 + .../-processor/-noop/connect-output.html | 69 + .../-processor/-noop/index.html | 166 ++ .../-noop/observe-required-capabilities.html | 69 + .../-processor/-noop/observe.html | 69 + .../-lenses-component/-processor/apply.html | 69 + .../-lenses-component/-processor/clear.html | 69 + .../-lenses-component/-processor/index.html | 256 ++ .../-lenses-component/-processor/observe.html | 69 + .../-call/-answered/index.html | 91 + .../-call/-answered/to-string.html | 69 + .../-call/-ignored/index.html | 91 + .../-call/-ignored/to-string.html | 69 + .../-call/-ongoing/-ongoing.html | 69 + .../-call/-ongoing/closeable.html | 69 + .../-call/-ongoing/index.html | 140 + .../-call/-ongoing/to-string.html | 69 + .../-remote-api-service/-call/index.html | 156 ++ .../-remote-api-service/-companion/index.html | 73 + .../-factory/-noop/create-for.html | 69 + .../-factory/-noop/index.html | 108 + .../-noop/supported-api-spec-ids.html | 69 + .../-factory/create-for.html | 69 + .../-remote-api-service/-factory/index.html | 138 + .../-factory/supported-api-spec-ids.html | 69 + .../-remote-api-service/-noop/close.html | 69 + .../-remote-api-service/-noop/index.html | 106 + .../-remote-api-service/-noop/process.html | 69 + .../-request/-request.html | 69 + .../-request/api-spec-id.html | 69 + .../-remote-api-service/-request/body.html | 69 + .../-request/endpoint-id.html | 69 + .../-remote-api-service/-request/equals.html | 69 + .../-request/hash-code.html | 69 + .../-remote-api-service/-request/id.html | 69 + .../-remote-api-service/-request/index.html | 219 ++ .../-request/parameters.html | 69 + .../-request/to-string.html | 69 + .../-response/-response.html | 69 + .../-a-c-c-e-s-s_-d-e-n-i-e-d/index.html | 106 + .../-status/-b-a-d_-r-e-q-u-e-s-t/index.html | 106 + .../-status/-c-a-n-c-e-l-l-e-d/index.html | 106 + .../index.html | 106 + .../-status/-n-o-t_-f-o-u-n-d/index.html | 106 + .../-status/-r-e-d-i-r-e-c-t-e-d/index.html | 106 + .../index.html | 106 + .../-status/-s-u-c-c-e-s-s/index.html | 106 + .../-status/-t-i-m-e-o-u-t/index.html | 106 + .../-response/-status/index.html | 275 ++ .../-response/-status/value-of.html | 69 + .../-response/-status/values.html | 69 + .../-remote-api-service/-response/body.html | 69 + .../-remote-api-service/-response/equals.html | 69 + .../-response/hash-code.html | 69 + .../-remote-api-service/-response/index.html | 221 ++ .../-response/metadata.html | 69 + .../-response/request.html | 69 + .../-remote-api-service/-response/status.html | 69 + .../-response/to-string.html | 69 + .../-remote-api-service/close.html | 69 + .../-remote-api-service/index.html | 211 ++ .../-remote-api-service/process.html | 69 + .../-repository/-noop/get.html | 69 + .../-repository/-noop/index.html | 106 + .../-repository/-noop/observe.html | 69 + .../-available/-available.html | 69 + .../-query-criteria/-available/equals.html | 69 + .../-query-criteria/-available/group-ids.html | 69 + .../-query-criteria/-available/hash-code.html | 69 + .../-query-criteria/-available/index.html | 170 ++ .../-query-criteria/-available/to-string.html | 69 + .../-query-criteria/-by-id/-by-id.html | 69 + .../-query-criteria/-by-id/equals.html | 69 + .../-query-criteria/-by-id/group-id.html | 69 + .../-query-criteria/-by-id/hash-code.html | 69 + .../-query-criteria/-by-id/id.html | 69 + .../-query-criteria/-by-id/index.html | 170 ++ .../-query-criteria/-by-id/to-string.html | 69 + .../-repository/-query-criteria/index.html | 130 + .../-repository/-result/-none/index.html | 123 + .../-repository/-result/-none/to-string.html | 69 + .../-repository/-result/-some/-some.html | 69 + .../-repository/-result/-some/equals.html | 69 + .../-repository/-result/-some/hash-code.html | 69 + .../-repository/-result/-some/index.html | 202 ++ .../-repository/-result/-some/lenses.html | 69 + .../-repository/-result/-some/to-string.html | 69 + .../-repository/-result/index.html | 162 ++ .../-lenses-component/-repository/get.html | 69 + .../-lenses-component/-repository/index.html | 166 ++ .../-repository/observe.html | 69 + .../-lenses-component/audio.html | 69 + .../-lenses-component/carousel.html | 69 + .../-lenses-component/close.html | 69 + .../-lenses-component/index.html | 408 +++ .../-lenses-component/preferences.html | 69 + .../-lenses-component/prefetcher.html | 69 + .../-lenses-component/processor.html | 69 + .../-lenses-component/repository.html | 69 + .../-lenses-launch-data/index.html | 91 + .../-lenses-launch-data/new-builder.html | 69 + .../com.snap.camerakit.lenses/index.html | 259 ++ .../when-activated-idle.html | 69 + .../when-activated-with-lens.html | 69 + .../when-activated.html | 69 + .../when-applied.html | 69 + .../when-deactivated.html | 69 + .../when-first-frame-processed.html | 69 + .../when-has-first.html | 69 + .../when-has-some.html | 69 + .../com.snap.camerakit.lenses/when-idle.html | 69 + .../-input/-frame/buffer.html | 69 + .../-audio-processor/-input/-frame/index.html | 123 + .../-input/-frame/recycle.html | 69 + .../-input/-frame/samples-count.html | 69 + .../-audio-processor/-input/buffer-size.html | 69 + .../-audio-processor/-input/channels.html | 69 + .../-audio-processor/-input/index.html | 155 ++ .../-audio-processor/-input/sample-rate.html | 69 + .../-audio-processor/-input/subscribe-to.html | 69 + .../-audio-processor/connect-input.html | 69 + .../-audio-processor/index.html | 132 + .../-experimental/index.html | 73 + .../-failure/-graphics/-graphics.html | 69 + .../-failure/-graphics/index.html | 245 ++ .../-image-processor/-failure/index.html | 258 ++ .../-backed-by-surface-texture.html | 69 + .../-backed-by-surface-texture/index.html | 230 ++ .../surface-texture.html | 69 + .../index.html | 106 + .../-input/-capability/index.html | 155 ++ .../-input/-capability/value-of.html | 69 + .../-input/-capability/values.html | 69 + .../-input/-companion/index.html | 73 + .../-frame/horizontal-field-of-view.html | 69 + .../-image-processor/-input/-frame/index.html | 153 ++ .../-input/-frame/recycle.html | 69 + .../-input/-frame/timestamp.html | 69 + .../-input/-frame/transformation-matrix.html | 69 + .../-input/-frame/vertical-field-of-view.html | 69 + .../-input/-option/-crop/-center/-center.html | 69 + .../-center/aspect-ratio-denominator.html | 69 + .../-crop/-center/aspect-ratio-numerator.html | 69 + .../-input/-option/-crop/-center/equals.html | 69 + .../-option/-crop/-center/hash-code.html | 69 + .../-input/-option/-crop/-center/index.html | 174 ++ .../-option/-crop/-center/to-string.html | 69 + .../-input/-option/-crop/index.html | 104 + .../-mirror-frames-horizontally/index.html | 73 + .../-mirror-frames-vertically/index.html | 73 + .../-input/-option/index.html | 156 ++ .../-input/-pausable/index.html | 243 ++ .../-input/-pausable/pause.html | 69 + .../-input/-pausable/resume.html | 69 + .../-input/attach-to-gl-context.html | 69 + .../-input/detach-from-gl-context.html | 69 + .../-image-processor/-input/facing-front.html | 69 + .../-image-processor/-input/height.html | 69 + .../-image-processor/-input/index.html | 314 +++ .../-image-processor/-input/read-frame.html | 69 + .../-input/rotation-degrees.html | 69 + .../-image-processor/-input/subscribe-to.html | 69 + .../-image-processor/-input/width.html | 69 + .../-backed-by-surface-texture.html | 69 + .../-backed-by-surface-texture/index.html | 155 ++ .../-backed-by-surface-texture/purpose.html | 69 + .../surface-texture.html | 69 + .../-backed-by-surface.html | 69 + .../-output/-backed-by-surface/index.html | 155 ++ .../-output/-backed-by-surface/purpose.html | 69 + .../-output/-backed-by-surface/surface.html | 69 + .../-output/-companion/index.html | 73 + .../-output/-frame/index.html | 108 + .../-output/-frame/recycle.html | 69 + .../-output/-frame/timestamp.html | 69 + .../-clear-on-disconnect.html | 69 + .../-option/-clear-on-disconnect/color.html | 69 + .../-option/-clear-on-disconnect/equals.html | 69 + .../-clear-on-disconnect/hash-code.html | 69 + .../-option/-clear-on-disconnect/index.html | 155 ++ .../-clear-on-disconnect/to-string.html | 69 + .../-ignore-device-rotation/index.html | 73 + .../-output/-option/index.html | 130 + .../-purpose/-p-r-e-v-i-e-w/index.html | 106 + .../-purpose/-r-e-c-o-r-d-i-n-g/index.html | 106 + .../-purpose/-s-n-a-p-s-h-o-t/index.html | 106 + .../-output/-purpose/index.html | 185 ++ .../-output/-purpose/value-of.html | 69 + .../-output/-purpose/values.html | 69 + .../-image-processor/-output/index.html | 239 ++ .../-image-processor/-output/purpose.html | 69 + .../-output/rotation-degrees.html | 69 + .../-image-processor/-output/write-frame.html | 69 + .../-image-processor/connect-input.html | 69 + .../-image-processor/connect-output.html | 69 + .../-image-processor/index.html | 203 ++ .../observe-required-capabilities.html | 69 + .../-input/-prompt/-prompt.html | 69 + .../-input/-prompt/equals.html | 69 + .../-input/-prompt/hash-code.html | 69 + .../-legal-processor/-input/-prompt/id.html | 69 + .../-input/-prompt/index.html | 170 ++ .../-input/-prompt/message.html | 69 + .../-input/-prompt/to-string.html | 69 + .../-request-update/-a-l-w-a-y-s/index.html | 106 + .../-request-update/-n-e-v-e-r/index.html | 106 + .../index.html | 106 + .../-input/-request-update/index.html | 185 ++ .../-input/-request-update/value-of.html | 69 + .../-input/-request-update/values.html | 69 + .../-input/-result/-accepted/index.html | 91 + .../-input/-result/-accepted/to-string.html | 69 + .../-input/-result/-dismissed/index.html | 91 + .../-input/-result/-dismissed/to-string.html | 69 + .../-input/-result/-missing/index.html | 91 + .../-input/-result/-missing/to-string.html | 69 + .../-input/-result/index.html | 156 ++ .../-legal-processor/-input/index.html | 138 + .../-legal-processor/-input/subscribe-to.html | 69 + .../-legal-processor/connect-input.html | 69 + .../-legal-processor/index.html | 151 ++ .../-legal-processor/observe.html | 69 + .../-legal-processor/wait-for.html | 69 + .../-tracking-requirements.html | 69 + .../-input/-tracking-requirements/equals.html | 69 + .../-tracking-requirements/hash-code.html | 69 + .../-input/-tracking-requirements/index.html | 170 ++ .../-tracking-requirements/to-string.html | 69 + .../update-interval-time-unit.html | 69 + .../update-interval.html | 69 + .../-location-processor/-input/index.html | 108 + .../-input/subscribe-to.html | 69 + .../-location-processor/connect-input.html | 69 + .../-location-processor/index.html | 132 + .../-media-type/-all-original/index.html | 73 + .../-media-type/-images/-original/index.html | 78 + .../-media-type/-images/-with-face/index.html | 78 + .../-media-type/-images/index.html | 130 + .../-media-type/-videos/-original/index.html | 78 + .../-media-type/-videos/index.html | 104 + .../-requirements/-media-type/index.html | 156 ++ .../-multiple-media-items-to-pick-from.html | 69 + .../equals.html | 69 + .../hash-code.html | 69 + .../index.html | 185 ++ .../media-type.html | 69 + .../media-types.html | 69 + .../to-string.html | 69 + .../-single-media-item.html | 69 + .../-single-media-item/equals.html | 69 + .../-single-media-item/hash-code.html | 69 + .../-single-media-item/index.html | 185 ++ .../-single-media-item/media-type.html | 69 + .../-single-media-item/media-types.html | 69 + .../-single-media-item/to-string.html | 69 + .../-input/-requirements/index.html | 145 ++ .../-with-media-items-to-pick-from.html | 69 + .../equals.html | 69 + .../hash-code.html | 69 + .../-with-media-items-to-pick-from/index.html | 170 ++ .../-with-media-items-to-pick-from/items.html | 69 + .../request-more.html | 69 + .../to-string.html | 69 + .../-with-single-media-item.html | 69 + .../-with-single-media-item/equals.html | 69 + .../-with-single-media-item/hash-code.html | 69 + .../-with-single-media-item/index.html | 155 ++ .../-result/-with-single-media-item/item.html | 69 + .../-with-single-media-item/to-string.html | 69 + .../-input/-result/index.html | 130 + .../-media-processor/-input/index.html | 123 + .../-media-processor/-input/subscribe-to.html | 69 + .../-media/-image/-face/-face.html | 69 + .../-media/-image/-face/equals.html | 69 + .../-media/-image/-face/hash-code.html | 69 + .../-media/-image/-face/height.html | 69 + .../-media/-image/-face/index.html | 204 ++ .../-media/-image/-face/to-string.html | 69 + .../-media/-image/-face/width.html | 69 + .../-media/-image/-face/x.html | 69 + .../-media/-image/-face/y.html | 69 + .../-image/-original/-by-uri/-by-uri.html | 69 + .../-image/-original/-by-uri/equals.html | 69 + .../-image/-original/-by-uri/hash-code.html | 69 + .../-image/-original/-by-uri/height.html | 69 + .../-image/-original/-by-uri/index.html | 204 ++ .../-original/-by-uri/rotation-degrees.html | 69 + .../-image/-original/-by-uri/to-string.html | 69 + .../-media/-image/-original/-by-uri/uri.html | 69 + .../-image/-original/-by-uri/width.html | 69 + .../-media/-image/-original/index.html | 104 + .../-media/-image/-with-face/-with-face.html | 69 + .../-media/-image/-with-face/equals.html | 69 + .../-media/-image/-with-face/face.html | 69 + .../-media/-image/-with-face/hash-code.html | 69 + .../-media/-image/-with-face/image.html | 69 + .../-media/-image/-with-face/index.html | 170 ++ .../-media/-image/-with-face/to-string.html | 69 + .../-media-processor/-media/-image/index.html | 145 ++ .../-video/-original/-by-uri/-by-uri.html | 69 + .../-original/-by-uri/duration-in-millis.html | 69 + .../-video/-original/-by-uri/equals.html | 69 + .../-video/-original/-by-uri/hash-code.html | 69 + .../-video/-original/-by-uri/index.html | 174 ++ .../-video/-original/-by-uri/to-string.html | 69 + .../-media/-video/-original/-by-uri/uri.html | 69 + .../-media/-video/-original/index.html | 104 + .../-media-processor/-media/-video/index.html | 104 + .../-media-processor/-media/index.html | 130 + .../-media-processor/connect-input.html | 69 + .../-media-processor/index.html | 147 ++ .../com.snap.camerakit/-processor/index.html | 153 ++ .../-input/index.html | 91 + .../-input/subscribe-to.html | 69 + .../connect-input.html | 69 + .../-safe-render-area-processor/index.html | 132 + .../-session/-builder/api-token.html | 69 + .../-session/-builder/application-id.html | 69 + .../-session/-builder/attach-to.html | 69 + .../-builder/audio-processor-source.html | 69 + .../-session/-builder/build.html | 69 + .../-session/-builder/configure-lenses.html | 69 + .../-session/-builder/configure-with.html | 69 + .../-session/-builder/handle-errors-with.html | 69 + .../-builder/image-processor-source.html | 69 + .../-session/-builder/index.html | 286 ++ .../-builder/legal-processor-source.html | 69 + .../-builder/location-processor-source.html | 69 + .../-builder/media-processor-source.html | 69 + .../safe-render-area-processor-source.html | 69 + .../-builder/user-processor-source.html | 69 + .../-session/-companion/index.html | 73 + .../-session/-processor/index.html | 151 ++ .../-session/adjustments.html | 69 + .../com.snap.camerakit/-session/close.html | 69 + .../com.snap.camerakit/-session/index.html | 185 ++ .../com.snap.camerakit/-session/lenses.html | 69 + .../-session/processor.html | 69 + .../-source/-noop/attach.html | 69 + .../com.snap.camerakit/-source/-noop/get.html | 69 + .../-source/-noop/index.html | 106 + .../com.snap.camerakit/-source/attach.html | 69 + .../com.snap.camerakit/-source/index.html | 121 + .../-unauthorized-application-exception.html | 69 + .../api-token.html | 69 + .../application-id.html | 69 + .../equals.html | 69 + .../hash-code.html | 69 + .../index.html | 335 +++ .../package-name.html | 69 + .../-user-processor/-input/-user/-user.html | 69 + .../-input/-user/birth-date.html | 69 + .../-input/-user/display-name.html | 69 + .../-user-processor/-input/-user/equals.html | 69 + .../-input/-user/hash-code.html | 69 + .../-user-processor/-input/-user/index.html | 170 ++ .../-input/-user/to-string.html | 69 + .../-user-processor/-input/index.html | 108 + .../-user-processor/-input/subscribe-to.html | 69 + .../-user-processor/connect-input.html | 69 + .../-user-processor/index.html | 132 + .../-version/-companion/index.html | 73 + .../com.snap.camerakit/-version/-version.html | 69 + .../-version/compare-to.html | 69 + .../com.snap.camerakit/-version/equals.html | 69 + .../-version/hash-code.html | 69 + .../com.snap.camerakit/-version/index.html | 236 ++ .../com.snap.camerakit/-version/major.html | 69 + .../com.snap.camerakit/-version/minor.html | 69 + .../com.snap.camerakit/-version/patch.html | 69 + .../-version/qualifier.html | 69 + .../-version/to-string.html | 69 + .../com.snap.camerakit/ar-core-input.html | 69 + .../com.snap.camerakit/connect-input.html | 69 + .../com.snap.camerakit/connect-output.html | 69 + .../-camera-kit/com.snap.camerakit/index.html | 499 ++++ .../com.snap.camerakit/input-frame-from.html | 69 + .../com.snap.camerakit/input-from.html | 69 + .../com.snap.camerakit/lens-core-version.html | 69 + .../microphone-source-for.html | 69 + .../com.snap.camerakit/new-builder.html | 69 + .../com.snap.camerakit/output-from.html | 69 + .../com.snap.camerakit/process-bitmap.html | 69 + .../com.snap.camerakit/process-image.html | 69 + .../com.snap.camerakit/source-from.html | 69 + .../com.snap.camerakit/supported.html | 69 + .../com.snap.camerakit/to-bitmap.html | 69 + .../com.snap.camerakit/version-from.html | 69 + .../android/1.30.0/-camera-kit/package-list | 767 ++++++ .../1.30.0/images/anchor-copy-button.svg | 4 + docs/api/android/1.30.0/images/arrow_down.svg | 3 + docs/api/android/1.30.0/images/copy-icon.svg | 3 + .../1.30.0/images/copy-successful-icon.svg | 3 + .../1.30.0/images/footer-go-to-link.svg | 3 + .../android/1.30.0/images/go-to-top-icon.svg | 4 + docs/api/android/1.30.0/images/logo-icon.svg | 10 + .../nav-icons/abstract-class-kotlin.svg | 22 + .../images/nav-icons/abstract-class.svg | 20 + .../images/nav-icons/annotation-kotlin.svg | 9 + .../1.30.0/images/nav-icons/annotation.svg | 7 + .../1.30.0/images/nav-icons/class-kotlin.svg | 9 + .../android/1.30.0/images/nav-icons/class.svg | 7 + .../1.30.0/images/nav-icons/enum-kotlin.svg | 9 + .../android/1.30.0/images/nav-icons/enum.svg | 7 + .../images/nav-icons/exception-class.svg | 7 + .../1.30.0/images/nav-icons/field-value.svg | 6 + .../images/nav-icons/field-variable.svg | 6 + .../1.30.0/images/nav-icons/function.svg | 7 + .../images/nav-icons/interface-kotlin.svg | 9 + .../1.30.0/images/nav-icons/interface.svg | 7 + .../1.30.0/images/nav-icons/object.svg | 9 + .../android/1.30.0/images/theme-toggle.svg | 4 + docs/api/android/1.30.0/index.html | 126 + docs/api/android/1.30.0/navigation.html | 788 ++++++ docs/api/android/1.30.0/scripts/clipboard.js | 52 + docs/api/android/1.30.0/scripts/main.js | 44 + .../1.30.0/scripts/navigation-loader.js | 91 + docs/api/android/1.30.0/scripts/pages.json | 1 + .../scripts/platform-content-handler.js | 359 +++ docs/api/android/1.30.0/scripts/prism.js | 22 + .../1.30.0/scripts/sourceset_dependencies.js | 1 + .../symbol-parameters-wrapper_deferred.js | 83 + .../android/1.30.0/styles/jetbrains-mono.css | 17 + .../api/android/1.30.0/styles/logo-styles.css | 15 + docs/api/android/1.30.0/styles/main.css | 118 + docs/api/android/1.30.0/styles/prism.css | 213 ++ docs/api/android/1.30.0/styles/style.css | 1293 +++++++++ docs/api/android/latest | 2 +- docs/api/index.html | 8 +- docs/api/ios/1.30.0/README.md | 17 + .../ios/1.30.0/SCSDKCameraKit/Classes.html | 1024 ++++++++ .../Classes/SCCameraKitARSessionInput.html | 595 +++++ .../Classes/SCCameraKitAVSessionInput.html | 658 +++++ .../Classes/SCCameraKitAVWriterOutput.html | 682 +++++ .../Classes/SCCameraKitCacheConfig.html | 515 ++++ .../SCCameraKitDataProviderComponent.html | 1085 ++++++++ .../SCCameraKitExplicitViewportProvider.html | 699 +++++ .../SCCameraKitLensLaunchDataBuilder.html | 763 ++++++ ...itLensMediaPickerProviderPhotoLibrary.html | 542 ++++ .../SCCameraKitLensRemoteApiResponse.html | 580 +++++ .../Classes/SCCameraKitLensesConfig.html | 510 ++++ .../SCCameraKitPhotoCaptureOutput.html | 689 +++++ .../SCCameraKitPortraitAdjustment.html | 453 ++++ .../Classes/SCCameraKitPreviewView.html | 657 +++++ .../Classes/SCCameraKitSession.html | 569 ++++ .../Classes/SCCameraKitSessionConfig.html | 901 +++++++ .../Classes/SCCameraKitToneMapAdjustment.html | 453 ++++ .../Classes/SCCameraKitUserData.html | 616 +++++ .../ios/1.30.0/SCSDKCameraKit/Constants.html | 962 +++++++ docs/api/ios/1.30.0/SCSDKCameraKit/Enums.html | 728 ++++++ .../SCCameraKitAdjustmentsComponentError.html | 462 ++++ .../SCCameraKitLensFacingPreference.html | 521 ++++ .../Enums/SCCameraKitLensFetchStatus.html | 524 ++++ .../SCCameraKitLensMediaPickerAssetType.html | 492 ++++ ...nsMediaPickerProviderAllowedMediaType.html | 562 ++++ ...CCameraKitLensRemoteApiResponseStatus.html | 713 +++++ ...meraKitLensRemoteApiServiceCallStatus.html | 522 ++++ .../SCCameraKitPreviewViewContentMode.html | 505 ++++ .../ios/1.30.0/SCSDKCameraKit/Extensions.html | 440 ++++ .../Extensions/AdjustmentsProcessor.html | 469 ++++ .../ios/1.30.0/SCSDKCameraKit/Protocols.html | 2316 +++++++++++++++++ .../SCSDKCameraKit/Protocols/Adjustment.html | 446 ++++ .../Protocols/SCCameraKitARInput.html | 568 ++++ .../Protocols/SCCameraKitARInputDelegate.html | 599 +++++ .../SCCameraKitAccessTokenProvider.html | 547 ++++ .../SCCameraKitAccessTokenProviderTask.html | 457 ++++ .../SCCameraKitAdjustmentsComponent.html | 457 ++++ .../SCCameraKitAdjustmentsProcessor.html | 670 +++++ ...CameraKitAdjustmentsProcessorObserver.html | 477 ++++ .../Protocols/SCCameraKitAgreementSet.html | 522 ++++ ...AgreementsPresentationContextProvider.html | 527 ++++ .../Protocols/SCCameraKitAgreementsStore.html | 591 +++++ .../SCCameraKitDeviceMotionDataProvider.html | 541 ++++ .../SCCameraKitDeviceMotionParameters.html | 457 ++++ .../Protocols/SCCameraKitErrorHandler.html | 476 ++++ .../Protocols/SCCameraKitInput.html | 743 ++++++ .../SCCameraKitInputDestination.html | 604 +++++ .../Protocols/SCCameraKitLens.html | 681 +++++ .../SCCameraKitLensHintDelegate.html | 579 +++++ .../SCCameraKitLensHintProvider.html | 489 ++++ .../SCCameraKitLensMediaPickerAsset.html | 553 ++++ .../SCCameraKitLensMediaPickerProvider.html | 852 ++++++ ...ickerProviderMediaApplicationDelegate.html | 526 ++++ ...aKitLensMediaPickerProviderUIDelegate.html | 529 ++++ .../Protocols/SCCameraKitLensPrefetcher.html | 622 +++++ .../SCCameraKitLensPrefetcherObserver.html | 502 ++++ .../SCCameraKitLensPrefetcherTask.html | 457 ++++ .../Protocols/SCCameraKitLensPreview.html | 457 ++++ .../Protocols/SCCameraKitLensProcessor.html | 977 +++++++ .../SCCameraKitLensProcessorObserver.html | 604 +++++ .../SCCameraKitLensRemoteApiRequest.html | 585 +++++ .../SCCameraKitLensRemoteApiResponse.html | 553 ++++ .../SCCameraKitLensRemoteApiService.html | 493 ++++ .../SCCameraKitLensRemoteApiServiceCall.html | 490 ++++ ...CameraKitLensRemoteApiServiceProvider.html | 510 ++++ .../Protocols/SCCameraKitLensRepository.html | 863 ++++++ ...CCameraKitLensRepositoryGroupObserver.html | 584 +++++ ...meraKitLensRepositorySpecificObserver.html | 592 +++++ .../Protocols/SCCameraKitLensSnapcodes.html | 489 ++++ .../Protocols/SCCameraKitLensesComponent.html | 553 ++++ .../SCCameraKitLocationDataProvider.html | 547 ++++ .../SCCameraKitLocationParameters.html | 521 ++++ .../Protocols/SCCameraKitOutput.html | 648 +++++ ...CameraKitPortraitAdjustmentController.html | 459 ++++ .../Protocols/SCCameraKitPreferences.html | 458 ++++ .../Protocols/SCCameraKitProtocol.html | 1204 +++++++++ .../SCCameraKitTextInputContextProvider.html | 491 ++++ ...KitTextInputKeyboardAccessoryProvider.html | 553 ++++ ...CCameraKitToneMapAdjustmentController.html | 460 ++++ .../SCCameraKitUserDataProvider.html | 489 ++++ .../SCCameraKitUserDataProviderDelegate.html | 490 ++++ .../ios/1.30.0/SCSDKCameraKit/Structs.html | 446 ++++ ...CameraKitLensMediaPickerAssetMetadata.html | 457 ++++ .../SCSDKCameraKit/Type Definitions.html | 442 ++++ ...CameraKitLensMediaPickerAssetMetadata.html | 454 ++++ ...CameraKitLensMediaPickerAssetMetadata.html | 457 ++++ docs/api/ios/1.30.0/SCSDKCameraKit/badge.svg | 28 + .../1.30.0/SCSDKCameraKit/css/highlight.css | 202 ++ .../ios/1.30.0/SCSDKCameraKit/css/jazzy.css | 404 +++ .../docsets/.docset/Contents/Info.plist | 20 + .../Contents/Resources/Documents/Classes.html | 1024 ++++++++ .../Classes/SCCameraKitARSessionInput.html | 595 +++++ .../Classes/SCCameraKitAVSessionInput.html | 658 +++++ .../Classes/SCCameraKitAVWriterOutput.html | 682 +++++ .../Classes/SCCameraKitCacheConfig.html | 515 ++++ .../SCCameraKitDataProviderComponent.html | 1085 ++++++++ .../SCCameraKitExplicitViewportProvider.html | 699 +++++ .../SCCameraKitLensLaunchDataBuilder.html | 763 ++++++ ...itLensMediaPickerProviderPhotoLibrary.html | 542 ++++ .../SCCameraKitLensRemoteApiResponse.html | 580 +++++ .../Classes/SCCameraKitLensesConfig.html | 510 ++++ .../SCCameraKitPhotoCaptureOutput.html | 689 +++++ .../SCCameraKitPortraitAdjustment.html | 453 ++++ .../Classes/SCCameraKitPreviewView.html | 657 +++++ .../Documents/Classes/SCCameraKitSession.html | 569 ++++ .../Classes/SCCameraKitSessionConfig.html | 901 +++++++ .../Classes/SCCameraKitToneMapAdjustment.html | 453 ++++ .../Classes/SCCameraKitUserData.html | 616 +++++ .../Resources/Documents/Constants.html | 962 +++++++ .../Contents/Resources/Documents/Enums.html | 728 ++++++ .../SCCameraKitAdjustmentsComponentError.html | 462 ++++ .../SCCameraKitLensFacingPreference.html | 521 ++++ .../Enums/SCCameraKitLensFetchStatus.html | 524 ++++ .../SCCameraKitLensMediaPickerAssetType.html | 492 ++++ ...nsMediaPickerProviderAllowedMediaType.html | 562 ++++ ...CCameraKitLensRemoteApiResponseStatus.html | 713 +++++ ...meraKitLensRemoteApiServiceCallStatus.html | 522 ++++ .../SCCameraKitPreviewViewContentMode.html | 505 ++++ .../Resources/Documents/Extensions.html | 440 ++++ .../Extensions/AdjustmentsProcessor.html | 469 ++++ .../Resources/Documents/Protocols.html | 2316 +++++++++++++++++ .../Documents/Protocols/Adjustment.html | 446 ++++ .../Protocols/SCCameraKitARInput.html | 568 ++++ .../Protocols/SCCameraKitARInputDelegate.html | 599 +++++ .../SCCameraKitAccessTokenProvider.html | 547 ++++ .../SCCameraKitAccessTokenProviderTask.html | 457 ++++ .../SCCameraKitAdjustmentsComponent.html | 457 ++++ .../SCCameraKitAdjustmentsProcessor.html | 670 +++++ ...CameraKitAdjustmentsProcessorObserver.html | 477 ++++ .../Protocols/SCCameraKitAgreementSet.html | 522 ++++ ...AgreementsPresentationContextProvider.html | 527 ++++ .../Protocols/SCCameraKitAgreementsStore.html | 591 +++++ .../SCCameraKitDeviceMotionDataProvider.html | 541 ++++ .../SCCameraKitDeviceMotionParameters.html | 457 ++++ .../Protocols/SCCameraKitErrorHandler.html | 476 ++++ .../Documents/Protocols/SCCameraKitInput.html | 743 ++++++ .../SCCameraKitInputDestination.html | 604 +++++ .../Documents/Protocols/SCCameraKitLens.html | 681 +++++ .../SCCameraKitLensHintDelegate.html | 579 +++++ .../SCCameraKitLensHintProvider.html | 489 ++++ .../SCCameraKitLensMediaPickerAsset.html | 553 ++++ .../SCCameraKitLensMediaPickerProvider.html | 852 ++++++ ...ickerProviderMediaApplicationDelegate.html | 526 ++++ ...aKitLensMediaPickerProviderUIDelegate.html | 529 ++++ .../Protocols/SCCameraKitLensPrefetcher.html | 622 +++++ .../SCCameraKitLensPrefetcherObserver.html | 502 ++++ .../SCCameraKitLensPrefetcherTask.html | 457 ++++ .../Protocols/SCCameraKitLensPreview.html | 457 ++++ .../Protocols/SCCameraKitLensProcessor.html | 977 +++++++ .../SCCameraKitLensProcessorObserver.html | 604 +++++ .../SCCameraKitLensRemoteApiRequest.html | 585 +++++ .../SCCameraKitLensRemoteApiResponse.html | 553 ++++ .../SCCameraKitLensRemoteApiService.html | 493 ++++ .../SCCameraKitLensRemoteApiServiceCall.html | 490 ++++ ...CameraKitLensRemoteApiServiceProvider.html | 510 ++++ .../Protocols/SCCameraKitLensRepository.html | 863 ++++++ ...CCameraKitLensRepositoryGroupObserver.html | 584 +++++ ...meraKitLensRepositorySpecificObserver.html | 592 +++++ .../Protocols/SCCameraKitLensSnapcodes.html | 489 ++++ .../Protocols/SCCameraKitLensesComponent.html | 553 ++++ .../SCCameraKitLocationDataProvider.html | 547 ++++ .../SCCameraKitLocationParameters.html | 521 ++++ .../Protocols/SCCameraKitOutput.html | 648 +++++ ...CameraKitPortraitAdjustmentController.html | 459 ++++ .../Protocols/SCCameraKitPreferences.html | 458 ++++ .../Protocols/SCCameraKitProtocol.html | 1204 +++++++++ .../SCCameraKitTextInputContextProvider.html | 491 ++++ ...KitTextInputKeyboardAccessoryProvider.html | 553 ++++ ...CCameraKitToneMapAdjustmentController.html | 460 ++++ .../SCCameraKitUserDataProvider.html | 489 ++++ .../SCCameraKitUserDataProviderDelegate.html | 490 ++++ .../Contents/Resources/Documents/Structs.html | 446 ++++ ...CameraKitLensMediaPickerAssetMetadata.html | 457 ++++ .../Resources/Documents/Type Definitions.html | 442 ++++ ...CameraKitLensMediaPickerAssetMetadata.html | 454 ++++ ...CameraKitLensMediaPickerAssetMetadata.html | 457 ++++ .../Resources/Documents/css/highlight.css | 202 ++ .../Resources/Documents/css/jazzy.css | 404 +++ .../Resources/Documents/img/carat.png | Bin 0 -> 274 bytes .../Contents/Resources/Documents/img/dash.png | Bin 0 -> 1338 bytes .../Resources/Documents/img/spinner.gif | Bin 0 -> 1849 bytes .../Contents/Resources/Documents/index.html | 501 ++++ .../Contents/Resources/Documents/js/jazzy.js | 74 + .../Resources/Documents/js/jazzy.search.js | 74 + .../Resources/Documents/js/jquery.min.js | 2 + .../Resources/Documents/js/lunr.min.js | 6 + .../Documents/js/typeahead.jquery.js | 1694 ++++++++++++ .../Contents/Resources/Documents/search.json | 1 + .../.docset/Contents/Resources/docSet.dsidx | Bin 0 -> 122880 bytes .../ios/1.30.0/SCSDKCameraKit/docsets/.tgz | Bin 0 -> 281033 bytes .../ios/1.30.0/SCSDKCameraKit/img/carat.png | Bin 0 -> 274 bytes .../ios/1.30.0/SCSDKCameraKit/img/dash.png | Bin 0 -> 1338 bytes .../ios/1.30.0/SCSDKCameraKit/img/spinner.gif | Bin 0 -> 1849 bytes docs/api/ios/1.30.0/SCSDKCameraKit/index.html | 501 ++++ .../api/ios/1.30.0/SCSDKCameraKit/js/jazzy.js | 74 + .../1.30.0/SCSDKCameraKit/js/jazzy.search.js | 74 + .../1.30.0/SCSDKCameraKit/js/jquery.min.js | 2 + .../ios/1.30.0/SCSDKCameraKit/js/lunr.min.js | 6 + .../SCSDKCameraKit/js/typeahead.jquery.js | 1694 ++++++++++++ .../api/ios/1.30.0/SCSDKCameraKit/search.json | 1 + .../1.30.0/SCSDKCameraKit/undocumented.json | 369 +++ .../Classes.html | 144 + .../Classes/CameraViewState.html | 411 +++ .../Structs.html | 311 +++ .../Structs/CameraButton.html | 227 ++ .../Structs/CameraButton/Coordinator.html | 225 ++ .../Structs/CameraView.html | 175 ++ .../Structs/CarouselView.html | 227 ++ .../Structs/CarouselView/Coordinator.html | 224 ++ .../Structs/ImagePreviewView.html | 232 ++ .../Structs/MediaPickerView.html | 194 ++ .../Structs/PreviewView.html | 232 ++ .../Structs/VideoPreviewView.html | 232 ++ .../SCSDKCameraKitReferenceSwiftUI/badge.svg | 28 + .../css/highlight.css | 202 ++ .../css/jazzy.css | 404 +++ .../Contents/Info.plist | 20 + .../Contents/Resources/Documents/Classes.html | 144 + .../Documents/Classes/CameraViewState.html | 411 +++ .../Contents/Resources/Documents/Structs.html | 311 +++ .../Documents/Structs/CameraButton.html | 227 ++ .../Structs/CameraButton/Coordinator.html | 225 ++ .../Documents/Structs/CameraView.html | 175 ++ .../Documents/Structs/CarouselView.html | 227 ++ .../Structs/CarouselView/Coordinator.html | 224 ++ .../Documents/Structs/ImagePreviewView.html | 232 ++ .../Documents/Structs/MediaPickerView.html | 194 ++ .../Documents/Structs/PreviewView.html | 232 ++ .../Documents/Structs/VideoPreviewView.html | 232 ++ .../Resources/Documents/css/highlight.css | 202 ++ .../Resources/Documents/css/jazzy.css | 404 +++ .../Resources/Documents/img/carat.png | Bin 0 -> 274 bytes .../Contents/Resources/Documents/img/dash.png | Bin 0 -> 1338 bytes .../Resources/Documents/img/spinner.gif | Bin 0 -> 1849 bytes .../Contents/Resources/Documents/index.html | 145 ++ .../Contents/Resources/Documents/js/jazzy.js | 74 + .../Resources/Documents/js/jazzy.search.js | 74 + .../Resources/Documents/js/jquery.min.js | 2 + .../Resources/Documents/js/lunr.min.js | 6 + .../Documents/js/typeahead.jquery.js | 1694 ++++++++++++ .../Contents/Resources/Documents/search.json | 1 + .../Contents/Resources/docSet.dsidx | Bin 0 -> 28672 bytes .../SCSDKCameraKitReferenceSwiftUI.tgz | Bin 0 -> 75926 bytes .../img/carat.png | Bin 0 -> 274 bytes .../img/dash.png | Bin 0 -> 1338 bytes .../img/spinner.gif | Bin 0 -> 1849 bytes .../SCSDKCameraKitReferenceSwiftUI/index.html | 145 ++ .../js/jazzy.js | 74 + .../js/jazzy.search.js | 74 + .../js/jquery.min.js | 2 + .../js/lunr.min.js | 6 + .../js/typeahead.jquery.js | 1694 ++++++++++++ .../search.json | 1 + .../undocumented.json | 96 + .../SCSDKCameraKitReferenceUI/Classes.html | 1230 +++++++++ .../Classes/AdjustmentControlView.html | 598 +++++ .../AdjustmentControlView/Variant.html | 396 +++ .../Classes/BundleHelper.html | 342 +++ .../Classes/CameraActionsView.html | 673 +++++ .../Classes/CameraBottomBar.html | 369 +++ .../Classes/CameraButton.html | 924 +++++++ .../Classes/CameraConfigurableActionView.html | 756 ++++++ .../Classes/CameraController.html | 2095 +++++++++++++++ .../Classes/CameraController/FlashMode.html | 368 +++ .../Classes/CameraController/FlashState.html | 422 +++ .../PointOfInterestOptions.html | 420 +++ .../Classes/CameraView.html | 1054 ++++++++ .../Classes/CameraViewController.html | 1578 +++++++++++ .../Classes/CarouselCollectionViewCell.html | 449 ++++ .../Classes/CarouselCollectionViewLayout.html | 455 ++++ .../Classes/CarouselItem.html | 557 ++++ .../Classes/CarouselView.html | 867 ++++++ .../Classes/ControlSlider.html | 482 ++++ .../Classes/DefaultCarouselImageLoader.html | 523 ++++ .../Classes/EmptyItem.html | 341 +++ .../Classes/FlashControlView.html | 649 +++++ .../Classes/FlashModeSelectionView.html | 408 +++ .../Classes/ImagePreviewViewController.html | 530 ++++ .../KeyboardAccessoryViewProvider.html | 423 +++ .../Classes/MediaPickerView.html | 545 ++++ .../Classes/MessageNotificationView.html | 368 +++ .../Classes/PreviewViewController.html | 514 ++++ .../Classes/Recorder.html | 470 ++++ .../Classes/RingLightColorSelectionView.html | 644 +++++ .../RingLightColorSelectionViewCell.html | 508 ++++ .../Classes/RingLightGradientView.html | 494 ++++ .../Classes/RingLightView.html | 541 ++++ .../Classes/SnapAttributionView.html | 368 +++ .../Classes/TapAnimationView.html | 368 +++ .../Classes/UserDataProvider.html | 368 +++ .../Classes/VideoPreviewViewController.html | 530 ++++ .../SCSDKCameraKitReferenceUI/Enums.html | 622 +++++ .../Enums/CameraBottomBarElements.html | 341 +++ .../Enums/CameraElements.html | 814 ++++++ .../Enums/CameraElements/CameraFlip.html | 368 +++ .../Enums/CarouselElements.html | 395 +++ .../Enums/FlashControlElements.html | 395 +++ .../Enums/MessageNotificationElements.html | 341 +++ .../Enums/OtherElements.html | 476 ++++ .../Enums/PreviewElements.html | 449 ++++ .../Enums/SnapchatScreen.html | 422 +++ .../SCSDKCameraKitReferenceUI/Extensions.html | 474 ++++ .../Extensions/NSString.html | 348 +++ .../Extensions/UIButton.html | 341 +++ .../Extensions/UIColor.html | 340 +++ .../Extensions/UIFont.html | 476 ++++ .../Extensions/UIImage.html | 376 +++ .../Extensions/UILabel.html | 345 +++ .../SCSDKCameraKitReferenceUI/Functions.html | 411 +++ .../SCSDKCameraKitReferenceUI/Protocols.html | 755 ++++++ .../AdjustmentControlViewDelegate.html | 372 +++ .../Protocols/AppOrientationDelegate.html | 387 +++ .../Protocols/CameraButtonDelegate.html | 499 ++++ .../Protocols/CameraControllerUIDelegate.html | 882 +++++++ ...arouselCollectionViewLayoutDataSource.html | 373 +++ .../CarouselCollectionViewLayoutDelegate.html | 372 +++ .../Protocols/CarouselImageLoader.html | 372 +++ .../Protocols/CarouselViewDataSource.html | 364 +++ .../Protocols/CarouselViewDelegate.html | 384 +++ .../Protocols/ControlSliderDelegate.html | 384 +++ .../Protocols/FlashControlViewDelegate.html | 488 ++++ .../FlashModeSelectionViewDelegate.html | 372 +++ .../Protocols/MediaPickerViewDelegate.html | 372 +++ .../RingLightColorSelectionViewDelegate.html | 372 +++ .../Protocols/SnapchatDelegate.html | 372 +++ .../Protocols/TestableElement.html | 341 +++ .../SCSDKCameraKitReferenceUI/badge.svg | 28 + .../css/highlight.css | 202 ++ .../SCSDKCameraKitReferenceUI/css/jazzy.css | 404 +++ .../Contents/Info.plist | 20 + .../Contents/Resources/Documents/Classes.html | 1230 +++++++++ .../Classes/AdjustmentControlView.html | 598 +++++ .../AdjustmentControlView/Variant.html | 396 +++ .../Documents/Classes/BundleHelper.html | 342 +++ .../Documents/Classes/CameraActionsView.html | 673 +++++ .../Documents/Classes/CameraBottomBar.html | 369 +++ .../Documents/Classes/CameraButton.html | 924 +++++++ .../Classes/CameraConfigurableActionView.html | 756 ++++++ .../Documents/Classes/CameraController.html | 2095 +++++++++++++++ .../Classes/CameraController/FlashMode.html | 368 +++ .../Classes/CameraController/FlashState.html | 422 +++ .../PointOfInterestOptions.html | 420 +++ .../Documents/Classes/CameraView.html | 1054 ++++++++ .../Classes/CameraViewController.html | 1578 +++++++++++ .../Classes/CarouselCollectionViewCell.html | 449 ++++ .../Classes/CarouselCollectionViewLayout.html | 455 ++++ .../Documents/Classes/CarouselItem.html | 557 ++++ .../Documents/Classes/CarouselView.html | 867 ++++++ .../Documents/Classes/ControlSlider.html | 482 ++++ .../Classes/DefaultCarouselImageLoader.html | 523 ++++ .../Documents/Classes/EmptyItem.html | 341 +++ .../Documents/Classes/FlashControlView.html | 649 +++++ .../Classes/FlashModeSelectionView.html | 408 +++ .../Classes/ImagePreviewViewController.html | 530 ++++ .../KeyboardAccessoryViewProvider.html | 423 +++ .../Documents/Classes/MediaPickerView.html | 545 ++++ .../Classes/MessageNotificationView.html | 368 +++ .../Classes/PreviewViewController.html | 514 ++++ .../Resources/Documents/Classes/Recorder.html | 470 ++++ .../Classes/RingLightColorSelectionView.html | 644 +++++ .../RingLightColorSelectionViewCell.html | 508 ++++ .../Classes/RingLightGradientView.html | 494 ++++ .../Documents/Classes/RingLightView.html | 541 ++++ .../Classes/SnapAttributionView.html | 368 +++ .../Documents/Classes/TapAnimationView.html | 368 +++ .../Documents/Classes/UserDataProvider.html | 368 +++ .../Classes/VideoPreviewViewController.html | 530 ++++ .../Contents/Resources/Documents/Enums.html | 622 +++++ .../Enums/CameraBottomBarElements.html | 341 +++ .../Documents/Enums/CameraElements.html | 814 ++++++ .../Enums/CameraElements/CameraFlip.html | 368 +++ .../Documents/Enums/CarouselElements.html | 395 +++ .../Documents/Enums/FlashControlElements.html | 395 +++ .../Enums/MessageNotificationElements.html | 341 +++ .../Documents/Enums/OtherElements.html | 476 ++++ .../Documents/Enums/PreviewElements.html | 449 ++++ .../Documents/Enums/SnapchatScreen.html | 422 +++ .../Resources/Documents/Extensions.html | 474 ++++ .../Documents/Extensions/NSString.html | 348 +++ .../Documents/Extensions/UIButton.html | 341 +++ .../Documents/Extensions/UIColor.html | 340 +++ .../Documents/Extensions/UIFont.html | 476 ++++ .../Documents/Extensions/UIImage.html | 376 +++ .../Documents/Extensions/UILabel.html | 345 +++ .../Resources/Documents/Functions.html | 411 +++ .../Resources/Documents/Protocols.html | 755 ++++++ .../AdjustmentControlViewDelegate.html | 372 +++ .../Protocols/AppOrientationDelegate.html | 387 +++ .../Protocols/CameraButtonDelegate.html | 499 ++++ .../Protocols/CameraControllerUIDelegate.html | 882 +++++++ ...arouselCollectionViewLayoutDataSource.html | 373 +++ .../CarouselCollectionViewLayoutDelegate.html | 372 +++ .../Protocols/CarouselImageLoader.html | 372 +++ .../Protocols/CarouselViewDataSource.html | 364 +++ .../Protocols/CarouselViewDelegate.html | 384 +++ .../Protocols/ControlSliderDelegate.html | 384 +++ .../Protocols/FlashControlViewDelegate.html | 488 ++++ .../FlashModeSelectionViewDelegate.html | 372 +++ .../Protocols/MediaPickerViewDelegate.html | 372 +++ .../RingLightColorSelectionViewDelegate.html | 372 +++ .../Documents/Protocols/SnapchatDelegate.html | 372 +++ .../Documents/Protocols/TestableElement.html | 341 +++ .../Resources/Documents/css/highlight.css | 202 ++ .../Resources/Documents/css/jazzy.css | 404 +++ .../Resources/Documents/img/carat.png | Bin 0 -> 274 bytes .../Contents/Resources/Documents/img/dash.png | Bin 0 -> 1338 bytes .../Resources/Documents/img/spinner.gif | Bin 0 -> 1849 bytes .../Contents/Resources/Documents/index.html | 334 +++ .../Contents/Resources/Documents/js/jazzy.js | 74 + .../Resources/Documents/js/jazzy.search.js | 74 + .../Resources/Documents/js/jquery.min.js | 2 + .../Resources/Documents/js/lunr.min.js | 6 + .../Documents/js/typeahead.jquery.js | 1694 ++++++++++++ .../Contents/Resources/Documents/search.json | 1 + .../Contents/Resources/docSet.dsidx | Bin 0 -> 155648 bytes .../docsets/SCSDKCameraKitReferenceUI.tgz | Bin 0 -> 198496 bytes .../SCSDKCameraKitReferenceUI/img/carat.png | Bin 0 -> 274 bytes .../SCSDKCameraKitReferenceUI/img/dash.png | Bin 0 -> 1338 bytes .../SCSDKCameraKitReferenceUI/img/spinner.gif | Bin 0 -> 1849 bytes .../SCSDKCameraKitReferenceUI/index.html | 334 +++ .../SCSDKCameraKitReferenceUI/js/jazzy.js | 74 + .../js/jazzy.search.js | 74 + .../js/jquery.min.js | 2 + .../SCSDKCameraKitReferenceUI/js/lunr.min.js | 6 + .../js/typeahead.jquery.js | 1694 ++++++++++++ .../SCSDKCameraKitReferenceUI/search.json | 1 + .../undocumented.json | 1321 ++++++++++ docs/api/ios/1.30.0/index.html | 390 +++ docs/api/ios/latest | 2 +- samples/android/gradle.properties | 4 +- .../CameraKitAlternateCarouselSample/Podfile | 2 +- .../Podfile.lock | 8 +- .../CustomizedCameraViewController.swift | 8 + samples/ios/CameraKitSample/Podfile | 14 +- samples/ios/CameraKitSample/Podfile.lock | 46 +- 1220 files changed, 277579 insertions(+), 49 deletions(-) create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/amount.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/properties.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/set.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/set.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/properties.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/close.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/processor.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/apply.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/available.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-output.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/observe-required-capabilities.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/remove.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/-applied.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/adjustment.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/controller.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/-unavailable.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/adjustment.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/apply.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/available.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/remove.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/close.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/processor.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/-p-r-o-p-e-r-t-y_-b-l-u-r.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/blur.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/properties.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/when-applied.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/-consumer/accept.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/-consumer/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-l-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/adjust.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/adjust.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/attach-widgets-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/build.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-cache.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-carousel.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-hints.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-loading-overlay.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-media-picker.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-processor.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/dispatch-touch-events-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/remote-api-service-factory.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/lens-content-max-size.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-idle.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-start.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-tap.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/attach-view-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-enabled.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-margin-bottom-dimen-res.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/configure-each-item.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/deactivate-on-close.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/disable-idle.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/enabled.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/height-dimen-res.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/margin-bottom-dimen-res.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observe-group-ids.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids-provider.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-bottom-dimen-res.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-top-dimen-res.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/view.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/-with-lens.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/lens.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/--index--.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/content-description.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/enabled.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lens.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lenses.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-left.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-right.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/side.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/activate.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/deactivate.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-l-e-f-t/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-r-i-g-h-t/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/value-of.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/-item-selected.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/item.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/-visible-items-changed.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/visible-items.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/content-description.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/icon-uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/observe-loading-state.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/-visible.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/closeable.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/items.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/selected-item-position.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/activate.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/deactivate.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/enabled.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/view.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/auto-hide.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/text.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-companion/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-b-a-c-k/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-f-r-o-n-t/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/value-of.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/build.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-number.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-numbers.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-strings.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-companion/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/-deep-link.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/-png.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/-webp.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/-webp.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/-image.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/facing-preference.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/group-id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icon-uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icons.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/name.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/preview.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/previews.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/snapcodes.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/vendor-data.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/enabled.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/enabled.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/view.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/-item-selected.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/item.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/-media.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/crop-rect.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/icon-uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/label.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/selected.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/-visible.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/items.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/close.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/clear.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/clear.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/run.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-e-d/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-i-n-g/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-u-n-l-o-a-d-e-d/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/value-of.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/run.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/input-frame-rotation-behavior.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/use-device-orientation-for-face-detection.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/-applied.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/lens.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/-first-frame-processed.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/lens.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/-internal.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/-lens.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/-library-loading.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-a-s-s-u-m-e_-p-o-r-t-r-a-i-t_-o-r-i-e-n-t-a-t-i-o-n/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-u-s-e_-s-c-r-e-e-n_-o-r-i-e-n-t-a-t-i-o-n/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/value-of.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/apply.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/clear.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-output.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe-required-capabilities.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/clear.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/-ongoing.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/closeable.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-companion/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/create-for.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/supported-api-spec-ids.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/create-for.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/supported-api-spec-ids.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/close.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/process.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/-request.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/api-spec-id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/body.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/endpoint-id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/parameters.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-response.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-a-c-c-e-s-s_-d-e-n-i-e-d/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-b-a-d_-r-e-q-u-e-s-t/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-c-a-n-c-e-l-l-e-d/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-i-n-t-e-r-n-a-l_-s-e-r-v-i-c-e_-e-r-r-o-r/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-n-o-t_-f-o-u-n-d/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-d-i-r-e-c-t-e-d/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-q-u-e-s-t_-t-o-o_-l-a-r-g-e/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-s-u-c-c-e-s-s/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-t-i-m-e-o-u-t/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/value-of.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/body.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/metadata.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/request.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/status.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/close.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/process.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/get.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/group-ids.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/-by-id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/group-id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/lenses.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/get.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/audio.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/carousel.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/close.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/preferences.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/prefetcher.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/processor.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/repository.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/new-builder.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated-idle.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated-with-lens.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-applied.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-deactivated.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-first-frame-processed.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-has-first.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-has-some.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-idle.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/buffer.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/recycle.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/samples-count.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/buffer-size.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/channels.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/sample-rate.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/subscribe-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-experimental/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/-graphics.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/-backed-by-surface-texture.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/surface-texture.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/-s-u-r-f-a-c-e_-t-r-a-c-k-i-n-g/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/value-of.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-companion/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/horizontal-field-of-view.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/recycle.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/timestamp.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/transformation-matrix.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/vertical-field-of-view.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/-center.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-denominator.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-numerator.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-horizontally/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-vertically/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/pause.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/resume.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/attach-to-gl-context.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/detach-from-gl-context.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/facing-front.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/height.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/read-frame.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/rotation-degrees.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/subscribe-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/width.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/-backed-by-surface-texture.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/purpose.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/surface-texture.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/-backed-by-surface.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/purpose.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/surface.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-companion/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/recycle.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/timestamp.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/-clear-on-disconnect.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/color.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-ignore-device-rotation/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-p-r-e-v-i-e-w/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-r-e-c-o-r-d-i-n-g/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-s-n-a-p-s-h-o-t/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/value-of.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/purpose.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/rotation-degrees.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/write-frame.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/observe-required-capabilities.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/-prompt.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/message.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-a-l-w-a-y-s/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-n-e-v-e-r/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-w-h-e-n_-d-i-s-m-i-s-s-e-d_-o-r_-m-i-s-s-i-n-g/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/value-of.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/values.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/subscribe-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/observe.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/wait-for.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/-tracking-requirements.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval-time-unit.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/subscribe-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-all-original/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-original/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-with-face/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/-original/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-type.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-types.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-type.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-types.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/-with-media-items-to-pick-from.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/items.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/request-more.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/-with-single-media-item.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/item.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/subscribe-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/-face.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/height.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/width.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/x.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/y.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/-by-uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/height.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/rotation-degrees.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/width.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/-with-face.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/face.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/image.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/-by-uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/duration-in-millis.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/uri.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/subscribe-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/api-token.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/application-id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/audio-processor-source.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/build.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-lenses.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-with.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/handle-errors-with.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/image-processor-source.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/legal-processor-source.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/location-processor-source.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/media-processor-source.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/safe-render-area-processor-source.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/user-processor-source.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-companion/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/adjustments.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/close.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/lenses.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/processor.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/attach.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/get.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/attach.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/api-token.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/application-id.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/package-name.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/-user.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/birth-date.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/display-name.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/subscribe-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/-companion/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/-version.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/compare-to.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/equals.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/hash-code.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/major.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/minor.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/patch.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/qualifier.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/to-string.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/ar-core-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/connect-input.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/connect-output.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/index.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/input-frame-from.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/input-from.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/lens-core-version.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/microphone-source-for.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/new-builder.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/output-from.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/process-bitmap.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/process-image.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/source-from.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/supported.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/to-bitmap.html create mode 100644 docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/version-from.html create mode 100644 docs/api/android/1.30.0/-camera-kit/package-list create mode 100644 docs/api/android/1.30.0/images/anchor-copy-button.svg create mode 100644 docs/api/android/1.30.0/images/arrow_down.svg create mode 100644 docs/api/android/1.30.0/images/copy-icon.svg create mode 100644 docs/api/android/1.30.0/images/copy-successful-icon.svg create mode 100644 docs/api/android/1.30.0/images/footer-go-to-link.svg create mode 100644 docs/api/android/1.30.0/images/go-to-top-icon.svg create mode 100644 docs/api/android/1.30.0/images/logo-icon.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/abstract-class-kotlin.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/abstract-class.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/annotation-kotlin.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/annotation.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/class-kotlin.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/class.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/enum-kotlin.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/enum.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/exception-class.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/field-value.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/field-variable.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/function.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/interface-kotlin.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/interface.svg create mode 100644 docs/api/android/1.30.0/images/nav-icons/object.svg create mode 100644 docs/api/android/1.30.0/images/theme-toggle.svg create mode 100644 docs/api/android/1.30.0/index.html create mode 100644 docs/api/android/1.30.0/navigation.html create mode 100644 docs/api/android/1.30.0/scripts/clipboard.js create mode 100644 docs/api/android/1.30.0/scripts/main.js create mode 100644 docs/api/android/1.30.0/scripts/navigation-loader.js create mode 100644 docs/api/android/1.30.0/scripts/pages.json create mode 100644 docs/api/android/1.30.0/scripts/platform-content-handler.js create mode 100644 docs/api/android/1.30.0/scripts/prism.js create mode 100644 docs/api/android/1.30.0/scripts/sourceset_dependencies.js create mode 100644 docs/api/android/1.30.0/scripts/symbol-parameters-wrapper_deferred.js create mode 100644 docs/api/android/1.30.0/styles/jetbrains-mono.css create mode 100644 docs/api/android/1.30.0/styles/logo-styles.css create mode 100644 docs/api/android/1.30.0/styles/main.css create mode 100644 docs/api/android/1.30.0/styles/prism.css create mode 100644 docs/api/android/1.30.0/styles/style.css create mode 100644 docs/api/ios/1.30.0/README.md create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitARSessionInput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitAVSessionInput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitAVWriterOutput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitCacheConfig.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitDataProviderComponent.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitExplicitViewportProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensLaunchDataBuilder.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensRemoteApiResponse.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensesConfig.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPhotoCaptureOutput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPortraitAdjustment.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPreviewView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitSession.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitSessionConfig.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitToneMapAdjustment.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitUserData.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Constants.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Enums.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitAdjustmentsComponentError.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensFacingPreference.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensFetchStatus.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerAssetType.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiResponseStatus.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitPreviewViewContentMode.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Extensions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Extensions/AdjustmentsProcessor.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/Adjustment.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitARInput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitARInputDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProviderTask.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsComponent.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessor.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessorObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementSet.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsPresentationContextProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsStore.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionDataProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionParameters.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitErrorHandler.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitInput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitInputDestination.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLens.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerAsset.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcher.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherTask.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPreview.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessor.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessorObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiRequest.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiResponse.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiService.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceCall.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepository.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositoryGroupObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositorySpecificObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensSnapcodes.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensesComponent.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLocationDataProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLocationParameters.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitOutput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitPortraitAdjustmentController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitPreferences.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitProtocol.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputContextProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitToneMapAdjustmentController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProviderDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Structs.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Structs/SCCameraKitLensMediaPickerAssetMetadata.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/badge.svg create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/css/highlight.css create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/css/jazzy.css create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Info.plist create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitARSessionInput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVSessionInput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVWriterOutput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitCacheConfig.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitDataProviderComponent.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitExplicitViewportProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensLaunchDataBuilder.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensRemoteApiResponse.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensesConfig.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPhotoCaptureOutput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPortraitAdjustment.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPreviewView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSession.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSessionConfig.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitToneMapAdjustment.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitUserData.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Constants.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitAdjustmentsComponentError.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFacingPreference.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFetchStatus.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerAssetType.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiResponseStatus.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitPreviewViewContentMode.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions/AdjustmentsProcessor.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/Adjustment.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInputDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProviderTask.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsComponent.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessor.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessorObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementSet.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsPresentationContextProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsStore.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionDataProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionParameters.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitErrorHandler.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInputDestination.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLens.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerAsset.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcher.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherTask.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPreview.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessor.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessorObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiRequest.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiResponse.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiService.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceCall.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepository.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositoryGroupObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositorySpecificObserver.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensSnapcodes.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensesComponent.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationDataProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationParameters.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitOutput.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPortraitAdjustmentController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPreferences.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitProtocol.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputContextProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitToneMapAdjustmentController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProviderDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs/SCCameraKitLensMediaPickerAssetMetadata.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/highlight.css create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/jazzy.css create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/carat.png create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/dash.png create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/spinner.gif create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/index.html create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.search.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/lunr.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/typeahead.jquery.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/search.json create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/docSet.dsidx create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.tgz create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKit/img/carat.png create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKit/img/dash.png create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/img/spinner.gif create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/index.html create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKit/js/jazzy.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/js/jazzy.search.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/js/jquery.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/js/lunr.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/js/typeahead.jquery.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/search.json create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKit/undocumented.json create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Classes.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Classes/CameraViewState.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton/Coordinator.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView/Coordinator.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/ImagePreviewView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/MediaPickerView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/PreviewView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/VideoPreviewView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/badge.svg create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/css/highlight.css create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/css/jazzy.css create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Info.plist create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes/CameraViewState.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton/Coordinator.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView/Coordinator.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/ImagePreviewView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/MediaPickerView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/PreviewView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/VideoPreviewView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/highlight.css create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/jazzy.css create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/carat.png create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/dash.png create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/spinner.gif create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/index.html create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.search.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jquery.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/lunr.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/search.json create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/docSet.dsidx create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.tgz create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/img/carat.png create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/img/dash.png create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/img/spinner.gif create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/index.html create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.search.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jquery.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/lunr.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/typeahead.jquery.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/search.json create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/undocumented.json create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView/Variant.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/BundleHelper.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraActionsView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraBottomBar.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraButton.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraConfigurableActionView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashMode.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashState.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/PointOfInterestOptions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraViewController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewCell.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewLayout.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselItem.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/ControlSlider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/DefaultCarouselImageLoader.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/EmptyItem.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/FlashControlView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/FlashModeSelectionView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/ImagePreviewViewController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/KeyboardAccessoryViewProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/MediaPickerView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/MessageNotificationView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/PreviewViewController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/Recorder.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionViewCell.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightGradientView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/SnapAttributionView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/TapAnimationView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/UserDataProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/VideoPreviewViewController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraBottomBarElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraElements/CameraFlip.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CarouselElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/FlashControlElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/MessageNotificationElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/OtherElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/PreviewElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/SnapchatScreen.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/NSString.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIButton.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIColor.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIFont.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIImage.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UILabel.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Functions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/AdjustmentControlViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/AppOrientationDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CameraButtonDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CameraControllerUIDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDataSource.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselImageLoader.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDataSource.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/ControlSliderDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/FlashControlViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/FlashModeSelectionViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/MediaPickerViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/RingLightColorSelectionViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/SnapchatDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/TestableElement.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/badge.svg create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/css/highlight.css create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/css/jazzy.css create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Info.plist create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView/Variant.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/BundleHelper.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraActionsView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraBottomBar.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraButton.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraConfigurableActionView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashMode.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashState.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/PointOfInterestOptions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraViewController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewCell.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewLayout.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselItem.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ControlSlider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/DefaultCarouselImageLoader.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/EmptyItem.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashControlView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashModeSelectionView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ImagePreviewViewController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/KeyboardAccessoryViewProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MediaPickerView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MessageNotificationView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/PreviewViewController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/Recorder.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionViewCell.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightGradientView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/SnapAttributionView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/TapAnimationView.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/UserDataProvider.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/VideoPreviewViewController.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraBottomBarElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements/CameraFlip.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CarouselElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/FlashControlElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/MessageNotificationElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/OtherElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/PreviewElements.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/SnapchatScreen.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/NSString.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIButton.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIColor.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIFont.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIImage.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UILabel.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Functions.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AdjustmentControlViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AppOrientationDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraButtonDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraControllerUIDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDataSource.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselImageLoader.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDataSource.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/ControlSliderDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashControlViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashModeSelectionViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/MediaPickerViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/RingLightColorSelectionViewDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/SnapchatDelegate.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/TestableElement.html create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/highlight.css create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/jazzy.css create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/carat.png create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/dash.png create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/spinner.gif create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/index.html create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.search.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jquery.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/lunr.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/search.json create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/docSet.dsidx create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.tgz create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/img/carat.png create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/img/dash.png create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/img/spinner.gif create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/index.html create mode 100755 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jazzy.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jazzy.search.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jquery.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/lunr.min.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/typeahead.jquery.js create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/search.json create mode 100644 docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/undocumented.json create mode 100644 docs/api/ios/1.30.0/index.html diff --git a/CHANGELOG.md b/CHANGELOG.md index 8aa64973..5d9e6e3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,16 @@ and the Camera Kit SDK adheres to [Semantic Versioning](https://semver.org/spec/ ## [Unreleased] + +## [1.30.0] - 2024-04-24 +### Features +- Lens Studio 5.0.10 support +- **iOS:** Added [Privacy manifest file](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files) describing data the SDK collects and reasons required APIs it uses. + +### Updates +- **Android** Added new `LensPushToDeviceService#initiatePairing` and `LensPushToDeviceService#unpair` methods to pair and unpair Push-to-Device without using default UI. +- **iOS:** Added new `SCCameraKitPushToDeviceProtocol#unpair` method to unpair from Push-to-Device. + ## [1.29.0] - 2024-03-20 - **Android:** Fix for incorrect processing size that sometimes resulted in pixelated image on some of the Android devices diff --git a/README.md b/README.md index 621a684a..3ab0428d 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,4 @@
-This repository contains [documentation](./docs) as well as [sample applications](./samples) demonstrating how to integrate the 1.29.0 version of the [Camera Kit](https://kit.snapchat.com/camera-kit) SDK. +This repository contains [documentation](./docs) as well as [sample applications](./samples) demonstrating how to integrate the 1.30.0 version of the [Camera Kit](https://kit.snapchat.com/camera-kit) SDK. diff --git a/VERSION b/VERSION index 5e57fb89..034552a8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.29.0 +1.30.0 diff --git a/docs/api/README.md b/docs/api/README.md index 4826be85..a51c124a 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -5,7 +5,7 @@ - [**Android**](./android/latest) - [**iOS**](./ios/latest) - -## 1.29.0 -- [**Android**](./android/1.29.0) -- [**iOS**](./ios/1.29.0) \ No newline at end of file + +## 1.30.0 +- [**Android**](./android/1.30.0) +- [**iOS**](./ios/1.30.0) \ No newline at end of file diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html new file mode 100644 index 00000000..c5426544 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html @@ -0,0 +1,69 @@ + + + + + PROPERTY_AMOUNT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

PROPERTY_AMOUNT

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/amount.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/amount.html new file mode 100644 index 00000000..bebb838e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/amount.html @@ -0,0 +1,69 @@ + + + + + amount + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/index.html new file mode 100644 index 00000000..06aad1dc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/index.html @@ -0,0 +1,121 @@ + + + + + AdaptiveToneMappingAdjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

AdaptiveToneMappingAdjustment

+

AdjustmentsComponent.Adjustment model which provides an image processing algorithm that remaps image color space to better highlight a person's face based on its skin tone.

Since

1.12.0

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of properties which specify how this adjustment can be modified.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/properties.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/properties.html new file mode 100644 index 00000000..d30c7531 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/properties.html @@ -0,0 +1,69 @@ + + + + + properties + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

properties

+
+

A set of properties which specify how this adjustment can be modified.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/index.html new file mode 100644 index 00000000..72459eed --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/index.html @@ -0,0 +1,123 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of Controller which does nothing.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun <T : Any> set(property: AdjustmentsComponent.Adjustment.Property<T>, value: T)

Attempts to set the provided property of an adjustment to the value.

+
+
+
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/set.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/set.html new file mode 100644 index 00000000..690b208f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/set.html @@ -0,0 +1,69 @@ + + + + + set + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

set

+
+
open override fun <T : Any> set(property: AdjustmentsComponent.Adjustment.Property<T>, value: T)

Attempts to set the provided property of an adjustment to the value.

Throws

if property is not supported by the Adjustment that this controller is associated with.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/index.html new file mode 100644 index 00000000..8ea8a726 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/index.html @@ -0,0 +1,153 @@ + + + + + Controller + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Controller

+
interface Controller

Provides a way to modify Adjustment properties.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of Controller which does nothing.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun <T : Any> set(property: AdjustmentsComponent.Adjustment.Property<T>, value: T)

Attempts to set the provided property of an adjustment to the value.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/set.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/set.html new file mode 100644 index 00000000..1e901b9d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/set.html @@ -0,0 +1,69 @@ + + + + + set + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

set

+
+
abstract fun <T : Any> set(property: AdjustmentsComponent.Adjustment.Property<T>, value: T)

Attempts to set the provided property of an adjustment to the value.

Throws

if property is not supported by the Adjustment that this controller is associated with.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/id.html new file mode 100644 index 00000000..f2872cf3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
abstract val id: String

Non-empty identifier of a unique property.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/index.html new file mode 100644 index 00000000..20f5e9be --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/index.html @@ -0,0 +1,91 @@ + + + + + Property + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Property

+
interface Property<T>

Represents a modifiable property exposed from a adjustment.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val id: String

Non-empty identifier of a unique property.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/index.html new file mode 100644 index 00000000..8ca6bb4a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/index.html @@ -0,0 +1,147 @@ + + + + + Adjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Adjustment

+
interface Adjustment

Defines the data model of an adjustment that is available to be used by AdjustmentsComponent exposed features.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Controller

Provides a way to modify Adjustment properties.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Property<T>

Represents a modifiable property exposed from a adjustment.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of properties which specify how this adjustment can be modified.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/properties.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/properties.html new file mode 100644 index 00000000..a617b461 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/properties.html @@ -0,0 +1,69 @@ + + + + + properties + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

properties

+
+

A set of properties which specify how this adjustment can be modified.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/close.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/close.html new file mode 100644 index 00000000..42cf43f2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
open override fun close()

Closes all resources allocated for this AdjustmentsComponent. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/index.html new file mode 100644 index 00000000..2f1273e8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/index.html @@ -0,0 +1,108 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of AdjustmentsComponent that does nothing.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun close()

Closes all resources allocated for this AdjustmentsComponent. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides adjustments specific Processor which allows to process image input with applied adjustments while rendering results to connected outputs. If this AdjustmentsComponent is closed then the returned Processor is expected to be no-op.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/processor.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/processor.html new file mode 100644 index 00000000..f20e3895 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/processor.html @@ -0,0 +1,69 @@ + + + + + processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processor

+
+

Provides adjustments specific Processor which allows to process image input with applied adjustments while rendering results to connected outputs. If this AdjustmentsComponent is closed then the returned Processor is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/apply.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/apply.html new file mode 100644 index 00000000..e72b1770 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/apply.html @@ -0,0 +1,69 @@ + + + + + apply + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apply

+
+

Attempts to apply the provided adjustment model. The operation is async with the result provided as Result.Applied or Result.Unavailable to the callback.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/available.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/available.html new file mode 100644 index 00000000..8fc3496e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/available.html @@ -0,0 +1,69 @@ + + + + + available + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

available

+
+
open override fun available(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Checks whether the provided adjustment is available to the current client environment. The result of the async operation is success if adjustment is available, false otherwise. If adjustment is not available, calls to apply will always lead to a Result.Unavailable.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-input.html new file mode 100644 index 00000000..0cc05db9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+
open override fun connectInput(input: ImageProcessor.Input): Closeable

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-output.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-output.html new file mode 100644 index 00000000..3f9a2889 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-output.html @@ -0,0 +1,69 @@ + + + + + connectOutput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectOutput

+
+
open override fun connectOutput(output: ImageProcessor.Output): Closeable

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/index.html new file mode 100644 index 00000000..2c7c328a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/index.html @@ -0,0 +1,166 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of Processor that does nothing.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Attempts to apply the provided adjustment model. The operation is async with the result provided as Result.Applied or Result.Unavailable to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun available(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Checks whether the provided adjustment is available to the current client environment. The result of the async operation is success if adjustment is available, false otherwise. If adjustment is not available, calls to apply will always lead to a Result.Unavailable.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun connectInput(input: ImageProcessor.Input): Closeable

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun connectOutput(output: ImageProcessor.Output): Closeable

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun remove(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Removes the provided adjustment model, if applied. The result of the async operation is success if adjustment was removed or failure when there were was no Adjustment to be removed or operation failed to execute.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/observe-required-capabilities.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/observe-required-capabilities.html new file mode 100644 index 00000000..2b082723 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/observe-required-capabilities.html @@ -0,0 +1,69 @@ + + + + + observeRequiredCapabilities + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeRequiredCapabilities

+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

When capabilities are requested client can connect different Input which provides those capabilities, or ignore that request. In case the capabilities request is ignored some image processing functionality may not work.

It is essential to manage the returned Closeable to avoid leaking resources.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/remove.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/remove.html new file mode 100644 index 00000000..0530e988 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/remove.html @@ -0,0 +1,69 @@ + + + + + remove + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

remove

+
+
open override fun remove(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Removes the provided adjustment model, if applied. The result of the async operation is success if adjustment was removed or failure when there were was no Adjustment to be removed or operation failed to execute.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/-applied.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/-applied.html new file mode 100644 index 00000000..d20ba72e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/-applied.html @@ -0,0 +1,69 @@ + + + + + Applied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Applied

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/adjustment.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/adjustment.html new file mode 100644 index 00000000..4ef8ca75 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/adjustment.html @@ -0,0 +1,69 @@ + + + + + adjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjustment

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/controller.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/controller.html new file mode 100644 index 00000000..e4b7e902 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/controller.html @@ -0,0 +1,69 @@ + + + + + controller + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/equals.html new file mode 100644 index 00000000..de0c8632 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/hash-code.html new file mode 100644 index 00000000..286d0004 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/index.html new file mode 100644 index 00000000..3a8e8f7b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/index.html @@ -0,0 +1,187 @@ + + + + + Applied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Applied

+

The adjustment was successfully applied. The associated controller can be used to modify the adjustment's properties until it the adjustment is removed.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/to-string.html new file mode 100644 index 00000000..231d4839 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/-unavailable.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/-unavailable.html new file mode 100644 index 00000000..38ef88c2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/-unavailable.html @@ -0,0 +1,69 @@ + + + + + Unavailable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Unavailable

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/adjustment.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/adjustment.html new file mode 100644 index 00000000..4c8e7bfe --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/adjustment.html @@ -0,0 +1,69 @@ + + + + + adjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjustment

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/equals.html new file mode 100644 index 00000000..cd810a97 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/hash-code.html new file mode 100644 index 00000000..f98ee3ed --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/index.html new file mode 100644 index 00000000..fc27fc8c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/index.html @@ -0,0 +1,172 @@ + + + + + Unavailable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Unavailable

+

The adjustment could not be applied as it is unavailable or unsupported in the current client environment.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/to-string.html new file mode 100644 index 00000000..b7b3a8a3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/index.html new file mode 100644 index 00000000..185cfe27 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/index.html @@ -0,0 +1,147 @@ + + + + + Result + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Result

+

Defines the possible outcomes of the apply operation.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

The adjustment was successfully applied. The associated controller can be used to modify the adjustment's properties until it the adjustment is removed.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The adjustment could not be applied as it is unavailable or unsupported in the current client environment.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/apply.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/apply.html new file mode 100644 index 00000000..6f85cc43 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/apply.html @@ -0,0 +1,69 @@ + + + + + apply + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apply

+
+
abstract fun <T : AdjustmentsComponent.Adjustment> apply(adjustment: T, callback: Consumer<AdjustmentsComponent.Processor.Result<T>> = Consumer {})

Attempts to apply the provided adjustment model. The operation is async with the result provided as Result.Applied or Result.Unavailable to the callback.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/available.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/available.html new file mode 100644 index 00000000..95730b1a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/available.html @@ -0,0 +1,69 @@ + + + + + available + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

available

+
+
abstract fun available(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Checks whether the provided adjustment is available to the current client environment. The result of the async operation is success if adjustment is available, false otherwise. If adjustment is not available, calls to apply will always lead to a Result.Unavailable.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/index.html new file mode 100644 index 00000000..a1d4d22b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/index.html @@ -0,0 +1,211 @@ + + + + + Processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Processor

+

Extension of ImageProcessor that allows to apply and remove adjustments on top of the incoming image input stream rendered to connected outputs.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of Processor that does nothing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines the possible outcomes of the apply operation.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun <T : AdjustmentsComponent.Adjustment> apply(adjustment: T, callback: Consumer<AdjustmentsComponent.Processor.Result<T>> = Consumer {})

Attempts to apply the provided adjustment model. The operation is async with the result provided as Result.Applied or Result.Unavailable to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun available(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean>)

Checks whether the provided adjustment is available to the current client environment. The result of the async operation is success if adjustment is available, false otherwise. If adjustment is not available, calls to apply will always lead to a Result.Unavailable.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun remove(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean> = Consumer {})

Removes the provided adjustment model, if applied. The result of the async operation is success if adjustment was removed or failure when there were was no Adjustment to be removed or operation failed to execute.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/remove.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/remove.html new file mode 100644 index 00000000..6b9b7a7f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/remove.html @@ -0,0 +1,69 @@ + + + + + remove + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

remove

+
+
abstract fun remove(adjustment: AdjustmentsComponent.Adjustment, callback: Consumer<Boolean> = Consumer {})

Removes the provided adjustment model, if applied. The result of the async operation is success if adjustment was removed or failure when there were was no Adjustment to be removed or operation failed to execute.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/close.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/close.html new file mode 100644 index 00000000..c4601ac6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
abstract override fun close()

Closes all resources allocated for this AdjustmentsComponent. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/index.html new file mode 100644 index 00000000..45386ed6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/index.html @@ -0,0 +1,168 @@ + + + + + AdjustmentsComponent + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

AdjustmentsComponent

+

Provides access to all available features of adjustments. Normally, an instance of a component is acquired through com.snap.camerakit.Session which manages the lifecycle of the component.

Since

1.12.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Adjustment

Defines the data model of an adjustment that is available to be used by AdjustmentsComponent exposed features.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of AdjustmentsComponent that does nothing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Extension of ImageProcessor that allows to apply and remove adjustments on top of the incoming image input stream rendered to connected outputs.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()

Closes all resources allocated for this AdjustmentsComponent. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides adjustments specific Processor which allows to process image input with applied adjustments while rendering results to connected outputs. If this AdjustmentsComponent is closed then the returned Processor is expected to be no-op.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/processor.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/processor.html new file mode 100644 index 00000000..6d1d17b2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/processor.html @@ -0,0 +1,69 @@ + + + + + processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processor

+
+

Provides adjustments specific Processor which allows to process image input with applied adjustments while rendering results to connected outputs. If this AdjustmentsComponent is closed then the returned Processor is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/-p-r-o-p-e-r-t-y_-b-l-u-r.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/-p-r-o-p-e-r-t-y_-b-l-u-r.html new file mode 100644 index 00000000..be709a3d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/-p-r-o-p-e-r-t-y_-b-l-u-r.html @@ -0,0 +1,69 @@ + + + + + PROPERTY_BLUR + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

PROPERTY_BLUR

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/blur.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/blur.html new file mode 100644 index 00000000..40b53d1c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/blur.html @@ -0,0 +1,69 @@ + + + + + blur + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/index.html new file mode 100644 index 00000000..449a42cd --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/index.html @@ -0,0 +1,121 @@ + + + + + PortraitAdjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

PortraitAdjustment

+

AdjustmentsComponent.Adjustment model which provides an image processing algorithm that adds a bokeh-like blur around a person subject.

Since

1.12.0

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of properties which specify how this adjustment can be modified.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/properties.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/properties.html new file mode 100644 index 00000000..21118904 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/properties.html @@ -0,0 +1,69 @@ + + + + + properties + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

properties

+
+

A set of properties which specify how this adjustment can be modified.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/index.html new file mode 100644 index 00000000..996b13f6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/index.html @@ -0,0 +1,137 @@ + + + + + com.snap.camerakit.adjustments + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Package-level declarations

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

AdjustmentsComponent.Adjustment model which provides an image processing algorithm that remaps image color space to better highlight a person's face based on its skin tone.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides access to all available features of adjustments. Normally, an instance of a component is acquired through com.snap.camerakit.Session which manages the lifecycle of the component.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

AdjustmentsComponent.Adjustment model which provides an image processing algorithm that adds a bokeh-like blur around a person subject.

+
+
+
+
+
+

Functions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/when-applied.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/when-applied.html new file mode 100644 index 00000000..2fdb50c2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.adjustments/when-applied.html @@ -0,0 +1,69 @@ + + + + + whenApplied + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/-consumer/accept.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/-consumer/accept.html new file mode 100644 index 00000000..e2454eaf --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/-consumer/accept.html @@ -0,0 +1,69 @@ + + + + + accept + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

accept

+
+
abstract fun accept(t: T)

Consumes the given value of type T.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/-consumer/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/-consumer/index.html new file mode 100644 index 00000000..a1ac0e38 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/-consumer/index.html @@ -0,0 +1,126 @@ + + + + + Consumer + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Consumer

+
interface Consumer<T>

Convenience interface for cases where it is not possible to use neither Kotlin lambda nor Java8 functional interfaces to interact with CameraKit APIs.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun accept(t: T)
Consumes the given value of type T.
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/index.html new file mode 100644 index 00000000..dc16789c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.common/index.html @@ -0,0 +1,90 @@ + + + + + com.snap.camerakit.common + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Package-level declarations

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Consumer<T>
Convenience interface for cases where it is not possible to use neither Kotlin lambda nor Java8 functional interfaces to interact with CameraKit APIs.
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-l-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-l-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html new file mode 100644 index 00000000..6d2874ba --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-l-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html @@ -0,0 +1,69 @@ + + + + + LENS_GROUP_ID_BUNDLED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LENS_GROUP_ID_BUNDLED

+
+

Identifies bundled lens group which which is optionally provided to CameraKit from assets.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/index.html new file mode 100644 index 00000000..c7f76eb2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/index.html @@ -0,0 +1,91 @@ + + + + + Mute + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Mute

+

Turns off lenses audio output.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/to-string.html new file mode 100644 index 00000000..dfd8f56e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/index.html new file mode 100644 index 00000000..d27e29ec --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/index.html @@ -0,0 +1,91 @@ + + + + + UnMute + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UnMute

+

Turns on lenses output output.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/to-string.html new file mode 100644 index 00000000..1278ee99 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/index.html new file mode 100644 index 00000000..8ef90045 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/index.html @@ -0,0 +1,130 @@ + + + + + Volume + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Volume

+

Defines all adjustments for lenses sound volume.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Turns off lenses audio output.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Turns on lenses output output.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/index.html new file mode 100644 index 00000000..281d5c98 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/index.html @@ -0,0 +1,104 @@ + + + + + Adjustment + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Adjustment

+
sealed class Adjustment

Defines all possible ways to adjust lenses audio state.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all adjustments for lenses sound volume.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/adjust.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/adjust.html new file mode 100644 index 00000000..3fd7855b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/adjust.html @@ -0,0 +1,69 @@ + + + + + adjust + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjust

+
+
open override fun adjust(adjustment: LensesComponent.Audio.Adjustment, callback: Consumer<Boolean>)

Adjusts lenses audio state using an adjustment value. The operation is async with the result provided as success or failure flag to the callback.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/index.html new file mode 100644 index 00000000..ddae3cbc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/index.html @@ -0,0 +1,91 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun adjust(adjustment: LensesComponent.Audio.Adjustment, callback: Consumer<Boolean>)

Adjusts lenses audio state using an adjustment value. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/adjust.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/adjust.html new file mode 100644 index 00000000..1276ba2b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/adjust.html @@ -0,0 +1,69 @@ + + + + + adjust + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjust

+
+
abstract fun adjust(adjustment: LensesComponent.Audio.Adjustment, callback: Consumer<Boolean> = Consumer {})

Adjusts lenses audio state using an adjustment value. The operation is async with the result provided as success or failure flag to the callback.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/index.html new file mode 100644 index 00000000..30f46f37 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/index.html @@ -0,0 +1,136 @@ + + + + + Audio + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Audio

+
interface Audio

Provides control over the lenses audio.

Since

1.8.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Adjustment

Defines all possible ways to adjust lenses audio state.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun adjust(adjustment: LensesComponent.Audio.Adjustment, callback: Consumer<Boolean> = Consumer {})

Adjusts lenses audio state using an adjustment value. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/attach-widgets-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/attach-widgets-to.html new file mode 100644 index 00000000..bf93fac4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/attach-widgets-to.html @@ -0,0 +1,69 @@ + + + + + attachWidgetsTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attachWidgetsTo

+
+

Uses the provided viewStub to inflate view hierarchy of the lens widgets (like media picker) which otherwise appear above the lenses carousel.

Since

1.7.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/build.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/build.html new file mode 100644 index 00000000..92c9f156 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/build.html @@ -0,0 +1,69 @@ + + + + + build + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

build

+
+

Builds an instance of LensesComponent with the configuration of this builder and starts the internal lifecycle which can be disposed by calling LensesComponent.close.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-cache.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-cache.html new file mode 100644 index 00000000..38d2f842 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-cache.html @@ -0,0 +1,69 @@ + + + + + configureCache + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureCache

+
+

Allows to configure lenses cache by receiving Cache.Configuration in the provided Consumer.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-carousel.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-carousel.html new file mode 100644 index 00000000..2d2412a1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-carousel.html @@ -0,0 +1,69 @@ + + + + + configureCarousel + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureCarousel

+
+

Allows to enable and configure lenses carousel feature by receiving Carousel.Configuration in the provided Consumer.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-hints.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-hints.html new file mode 100644 index 00000000..da4dc6d1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-hints.html @@ -0,0 +1,69 @@ + + + + + configureHints + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureHints

+
+

Allows to enable and configure lens hints feature by receiving Hints.Configuration in the provided Consumer.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-loading-overlay.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-loading-overlay.html new file mode 100644 index 00000000..2a22e68d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-loading-overlay.html @@ -0,0 +1,69 @@ + + + + + configureLoadingOverlay + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureLoadingOverlay

+
+

Allows to enable and configure lens loading overlay feature by receiving LoadingOverlay.Configuration in the provided Consumer.

Since

1.5.4

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-media-picker.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-media-picker.html new file mode 100644 index 00000000..b427295a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-media-picker.html @@ -0,0 +1,69 @@ + + + + + configureMediaPicker + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureMediaPicker

+
+

Allows to enable and configure lens media picker feature by receiving MediaPicker.Configuration in the provided Consumer.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-processor.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-processor.html new file mode 100644 index 00000000..df10bc19 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-processor.html @@ -0,0 +1,69 @@ + + + + + configureProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureProcessor

+
+

Allows to configure lenses processor by receiving Processor.Configuration in the provided Consumer.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/dispatch-touch-events-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/dispatch-touch-events-to.html new file mode 100644 index 00000000..c0884f0b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/dispatch-touch-events-to.html @@ -0,0 +1,69 @@ + + + + + dispatchTouchEventsTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

dispatchTouchEventsTo

+
+

Allows to receive touch events that were not handled by LensesComponent, if any views are configured to be shown, see com.snap.camerakit.Session.Builder.imageProcessorSource.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/index.html new file mode 100644 index 00000000..baf7173e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/index.html @@ -0,0 +1,226 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Builder

+
interface Builder
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided viewStub to inflate view hierarchy of the lens widgets (like media picker) which otherwise appear above the lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Builds an instance of LensesComponent with the configuration of this builder and starts the internal lifecycle which can be disposed by calling LensesComponent.close.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to configure lenses cache by receiving Cache.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to enable and configure lenses carousel feature by receiving Carousel.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to enable and configure lens hints feature by receiving Hints.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to enable and configure lens loading overlay feature by receiving LoadingOverlay.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to enable and configure lens media picker feature by receiving MediaPicker.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to configure lenses processor by receiving Processor.Configuration in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to receive touch events that were not handled by LensesComponent, if any views are configured to be shown, see com.snap.camerakit.Session.Builder.imageProcessorSource.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to provide a RemoteApiService.Factory called per each lifecycle of a lens which sends requests to a remote API service.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/remote-api-service-factory.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/remote-api-service-factory.html new file mode 100644 index 00000000..85eb2fdd --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/remote-api-service-factory.html @@ -0,0 +1,69 @@ + + + + + remoteApiServiceFactory + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

remoteApiServiceFactory

+
+

Allows to provide a RemoteApiService.Factory called per each lifecycle of a lens which sends requests to a remote API service.

Since

1.13.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/index.html new file mode 100644 index 00000000..9524d277 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/index.html @@ -0,0 +1,91 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lenses cache.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var lensContentMaxSize: Long

Maximum size for cached lenses content, in bytes.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/lens-content-max-size.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/lens-content-max-size.html new file mode 100644 index 00000000..52c5aa06 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/lens-content-max-size.html @@ -0,0 +1,69 @@ + + + + + lensContentMaxSize + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lensContentMaxSize

+
+
abstract var lensContentMaxSize: Long

Maximum size for cached lenses content, in bytes.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/index.html new file mode 100644 index 00000000..0ba8a872 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/index.html @@ -0,0 +1,91 @@ + + + + + Cache + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Cache

+
interface Cache

Provides ability to interact with lenses content cache used by LensesComponent.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lenses cache.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-idle.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-idle.html new file mode 100644 index 00000000..451f849a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-idle.html @@ -0,0 +1,69 @@ + + + + + activateIdle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activateIdle

+
+
abstract var activateIdle: Boolean

Deprecated

Idle state can be disabled using 'disableIdle' which makes this option lose it's actual meaning, please use 'activateOnStart' instead

Replace with

activateOnStart

By default, carousel reacts to interactions of processor and displays any applied lens as selected, while this option enables carousel to start in the idle state where no lens is yet applied and selected.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-start.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-start.html new file mode 100644 index 00000000..363df4d2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-start.html @@ -0,0 +1,69 @@ + + + + + activateOnStart + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activateOnStart

+
+
abstract var activateOnStart: Boolean

By default, carousel reacts to interactions of processor and displays any applied lens as selected, while this option enables carousel to start in an activated state - idle or with a lens selected if disableIdle is true.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-tap.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-tap.html new file mode 100644 index 00000000..7884e6e7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-tap.html @@ -0,0 +1,69 @@ + + + + + activateOnTap + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activateOnTap

+
+
abstract var activateOnTap: Boolean

Enables activation of lenses carousel by a tap gesture on the root view that the CameraKit views are inflated to. True by default and activate only when lenses carousel is deactivated.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/attach-view-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/attach-view-to.html new file mode 100644 index 00000000..d9def994 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/attach-view-to.html @@ -0,0 +1,69 @@ + + + + + attachViewTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attachViewTo

+
+
abstract fun attachViewTo(layoutPlacement: LensesComponent.Carousel.LayoutPlacement, onViewStub: Consumer<ViewStub>)

Allows placing of views relative to the carousel based on a given LayoutPlacement. When a ViewStub has been attached to the carousel, the Consumer will provide that available ViewStub to inflate the views into.

Since

1.11.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-enabled.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-enabled.html new file mode 100644 index 00000000..1bc9690f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-enabled.html @@ -0,0 +1,69 @@ + + + + + closeButtonEnabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

closeButtonEnabled

+
+

Sets whether the carousel close button should be visible and operational or completely disabled, invisible.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-margin-bottom-dimen-res.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-margin-bottom-dimen-res.html new file mode 100644 index 00000000..f8977592 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-margin-bottom-dimen-res.html @@ -0,0 +1,69 @@ + + + + + closeButtonMarginBottomDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

closeButtonMarginBottomDimenRes

+
+

Sets the carousel close button bottom margin to the value of provided dimension resource. This parameter has no effect if closeButtonEnabled value is false. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/configure-each-item.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/configure-each-item.html new file mode 100644 index 00000000..c8f6ad20 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/configure-each-item.html @@ -0,0 +1,69 @@ + + + + + configureEachItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureEachItem

+
+

Allows to configure each lenses carousel item by receiving ItemOptions in the provided Consumer.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/deactivate-on-close.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/deactivate-on-close.html new file mode 100644 index 00000000..95b5e065 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/deactivate-on-close.html @@ -0,0 +1,69 @@ + + + + + deactivateOnClose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

deactivateOnClose

+
+

Enables deactivation of lenses carousel by clicking on close button when closeButtonEnabled is true. False by default, meaning that a click on the close button resets lenses carousel to idle, no lens selected state.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/disable-idle.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/disable-idle.html new file mode 100644 index 00000000..7225763b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/disable-idle.html @@ -0,0 +1,69 @@ + + + + + disableIdle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

disableIdle

+
+
abstract var disableIdle: Boolean

Disables presentation of the idle state - an empty item which can be selected to remove any previously applied lens.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/enabled.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/enabled.html new file mode 100644 index 00000000..0a487b92 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

True if carousel feature should be enabled. Typically, it is True when observedGroupIds is not empty, False otherwise.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/height-dimen-res.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/height-dimen-res.html new file mode 100644 index 00000000..8380f02a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/height-dimen-res.html @@ -0,0 +1,69 @@ + + + + + heightDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

heightDimenRes

+
+
abstract var heightDimenRes: Int?

Sets the carousel height to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/index.html new file mode 100644 index 00000000..7a1e5bd7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/index.html @@ -0,0 +1,348 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lenses carousel feature.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun attachViewTo(layoutPlacement: LensesComponent.Carousel.LayoutPlacement, onViewStub: Consumer<ViewStub>)

Allows placing of views relative to the carousel based on a given LayoutPlacement. When a ViewStub has been attached to the carousel, the Consumer will provide that available ViewStub to inflate the views into.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to configure each lenses carousel item by receiving ItemOptions in the provided Consumer.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var activateIdle: Boolean

By default, carousel reacts to interactions of processor and displays any applied lens as selected, while this option enables carousel to start in the idle state where no lens is yet applied and selected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var activateOnStart: Boolean

By default, carousel reacts to interactions of processor and displays any applied lens as selected, while this option enables carousel to start in an activated state - idle or with a lens selected if disableIdle is true.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var activateOnTap: Boolean

Enables activation of lenses carousel by a tap gesture on the root view that the CameraKit views are inflated to. True by default and activate only when lenses carousel is deactivated.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets whether the carousel close button should be visible and operational or completely disabled, invisible.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the carousel close button bottom margin to the value of provided dimension resource. This parameter has no effect if closeButtonEnabled value is false. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Enables deactivation of lenses carousel by clicking on close button when closeButtonEnabled is true. False by default, meaning that a click on the close button resets lenses carousel to idle, no lens selected state.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var disableIdle: Boolean

Disables presentation of the idle state - an empty item which can be selected to remove any previously applied lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

True if carousel feature should be enabled. Typically, it is True when observedGroupIds is not empty, False otherwise.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var heightDimenRes: Int?

Sets the carousel height to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var marginBottomDimenRes: Int?

Sets the carousel bottom margin to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var observedGroupIds: Set<String>

Uses the provided observedGroupIds to present lenses in carousel. If observedGroupIds is empty (default) then the carousel feature is considered to be disabled, any interaction with Carousel is no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to asynchronously provide lens group IDs to present lenses in carousel. By default, the observedGroupIdsProvider is backed by a Callable which returns the observedGroupIds set as is, however, if custom observedGroupIdsProvider is supplied, then its results are merged with the observedGroupIds to a final set of lens groups that appear in the carousel. Any Exception thrown in the provided observedGroupIdsProvider is suppressed resulting in only the observedGroupIds used as the final set of group IDs that appear in the carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the carousel bottom padding to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var paddingTopDimenRes: Int?

Sets the carousel top padding to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Custom implementation of Carousel.View to be used as a delegate to show and hide lenses carousel. By default, the internal carousel view implementation is used.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/margin-bottom-dimen-res.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/margin-bottom-dimen-res.html new file mode 100644 index 00000000..900b5f4b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/margin-bottom-dimen-res.html @@ -0,0 +1,69 @@ + + + + + marginBottomDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

marginBottomDimenRes

+
+
abstract var marginBottomDimenRes: Int?

Sets the carousel bottom margin to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observe-group-ids.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observe-group-ids.html new file mode 100644 index 00000000..379049b8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observe-group-ids.html @@ -0,0 +1,69 @@ + + + + + observeGroupIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeGroupIds

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids-provider.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids-provider.html new file mode 100644 index 00000000..34126f59 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids-provider.html @@ -0,0 +1,69 @@ + + + + + observedGroupIdsProvider + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observedGroupIdsProvider

+
+

Allows to asynchronously provide lens group IDs to present lenses in carousel. By default, the observedGroupIdsProvider is backed by a Callable which returns the observedGroupIds set as is, however, if custom observedGroupIdsProvider is supplied, then its results are merged with the observedGroupIds to a final set of lens groups that appear in the carousel. Any Exception thrown in the provided observedGroupIdsProvider is suppressed resulting in only the observedGroupIds used as the final set of group IDs that appear in the carousel.

Since

1.7.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids.html new file mode 100644 index 00000000..3389f91b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids.html @@ -0,0 +1,69 @@ + + + + + observedGroupIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observedGroupIds

+
+
abstract var observedGroupIds: Set<String>

Uses the provided observedGroupIds to present lenses in carousel. If observedGroupIds is empty (default) then the carousel feature is considered to be disabled, any interaction with Carousel is no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-bottom-dimen-res.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-bottom-dimen-res.html new file mode 100644 index 00000000..12ba3c9d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-bottom-dimen-res.html @@ -0,0 +1,69 @@ + + + + + paddingBottomDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

paddingBottomDimenRes

+
+

Sets the carousel bottom padding to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-top-dimen-res.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-top-dimen-res.html new file mode 100644 index 00000000..8ff25e49 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-top-dimen-res.html @@ -0,0 +1,69 @@ + + + + + paddingTopDimenRes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

paddingTopDimenRes

+
+
abstract var paddingTopDimenRes: Int?

Sets the carousel top padding to the value of provided dimension resource. This parameter has no effect if custom view is set.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/view.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/view.html new file mode 100644 index 00000000..64f51657 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/view.html @@ -0,0 +1,69 @@ + + + + + view + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

view

+
+

Custom implementation of Carousel.View to be used as a delegate to show and hide lenses carousel. By default, the internal carousel view implementation is used.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/index.html new file mode 100644 index 00000000..0b2f0b04 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/index.html @@ -0,0 +1,153 @@ + + + + + Idle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Idle

+

Emitted when lenses carousel is activated without a lens selected.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/to-string.html new file mode 100644 index 00000000..91496105 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/-with-lens.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/-with-lens.html new file mode 100644 index 00000000..a64989e9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/-with-lens.html @@ -0,0 +1,69 @@ + + + + + WithLens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithLens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/equals.html new file mode 100644 index 00000000..46e782cb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/hash-code.html new file mode 100644 index 00000000..8a5ca590 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/index.html new file mode 100644 index 00000000..65e9f57b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/index.html @@ -0,0 +1,217 @@ + + + + + WithLens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithLens

+

Emitted when lenses carousel is activated with a lens selected.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/lens.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/lens.html new file mode 100644 index 00000000..c3195ffd --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/lens.html @@ -0,0 +1,69 @@ + + + + + lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/to-string.html new file mode 100644 index 00000000..d543c875 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/index.html new file mode 100644 index 00000000..957b91ef --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/index.html @@ -0,0 +1,192 @@ + + + + + Activated + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Activated

+

Emitted when lenses carousel is activated or, in other words, visible to user.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when lenses carousel is activated without a lens selected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when lenses carousel is activated with a lens selected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/index.html new file mode 100644 index 00000000..b48f67d6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/index.html @@ -0,0 +1,153 @@ + + + + + Deactivated + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Deactivated

+

Emitted when lenses carousel is deactivated or, in other words, not visible to user.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/to-string.html new file mode 100644 index 00000000..70380b93 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/index.html new file mode 100644 index 00000000..74336d2f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/index.html @@ -0,0 +1,192 @@ + + + + + Event + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Event

+
sealed class Event

All lenses carousel lifecycle events available to observe.

Since

1.4.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when lenses carousel is activated or, in other words, visible to user.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when lenses carousel is deactivated or, in other words, not visible to user.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/--index--.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/--index--.html new file mode 100644 index 00000000..81a3900e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/--index--.html @@ -0,0 +1,69 @@ + + + + + index + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

index

+
+
abstract var index: Int

Absolute position of this item in the lenses list. Can be modified to any positive number that represents distance to the center of lenses carousel relative to the item's side.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/content-description.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/content-description.html new file mode 100644 index 00000000..511766e5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/content-description.html @@ -0,0 +1,69 @@ + + + + + contentDescription + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

contentDescription

+
+

Brief description of this item that is primarily used for accessibility support. By default it is equal to `Lens.name Lens' if lens name is not empty, empty string otherwise.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/enabled.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/enabled.html new file mode 100644 index 00000000..b9201471 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

Specifies if this item should be presented in lenses carousel, true by default.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/index.html new file mode 100644 index 00000000..55a2035f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/index.html @@ -0,0 +1,198 @@ + + + + + ItemOptions + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemOptions

+
interface ItemOptions

Represents options to customize lenses carousel item appearance.

Since

1.4.0

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open fun moveToLeft()

Specifies that this item should be presented on the left side of lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open fun moveToRight()

Specifies that this item should be presented on the right side of lenses carousel.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Brief description of this item that is primarily used for accessibility support. By default it is equal to `Lens.name Lens' if lens name is not empty, empty string otherwise.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

Specifies if this item should be presented in lenses carousel, true by default.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var index: Int

Absolute position of this item in the lenses list. Can be modified to any positive number that represents distance to the center of lenses carousel relative to the item's side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lens model that represents this item.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Full list of available lenses that the item's lens belongs to.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies the side of lenses carousel this item should be presented in, typically Side.RIGHT.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lens.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lens.html new file mode 100644 index 00000000..05af5571 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lens.html @@ -0,0 +1,69 @@ + + + + + lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lens

+
+

Lens model that represents this item.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lenses.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lenses.html new file mode 100644 index 00000000..721f43f6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lenses.html @@ -0,0 +1,69 @@ + + + + + lenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lenses

+
+

Full list of available lenses that the item's lens belongs to.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-left.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-left.html new file mode 100644 index 00000000..318c8d3f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-left.html @@ -0,0 +1,69 @@ + + + + + moveToLeft + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

moveToLeft

+
+
open fun moveToLeft()

Specifies that this item should be presented on the left side of lenses carousel.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-right.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-right.html new file mode 100644 index 00000000..9907efb0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-right.html @@ -0,0 +1,69 @@ + + + + + moveToRight + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

moveToRight

+
+
open fun moveToRight()

Specifies that this item should be presented on the right side of lenses carousel.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/side.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/side.html new file mode 100644 index 00000000..e12ef3ed --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/side.html @@ -0,0 +1,69 @@ + + + + + side + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

side

+
+

Specifies the side of lenses carousel this item should be presented in, typically Side.RIGHT.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/index.html new file mode 100644 index 00000000..570231df --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/index.html @@ -0,0 +1,91 @@ + + + + + Above + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Above

+

Placement for attaching above the lens carousel.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/to-string.html new file mode 100644 index 00000000..1b0a8e49 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/index.html new file mode 100644 index 00000000..420ac3b2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/index.html @@ -0,0 +1,91 @@ + + + + + Behind + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Behind

+

Placement for attaching behind the lens carousel.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/to-string.html new file mode 100644 index 00000000..3756610e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/index.html new file mode 100644 index 00000000..1dce1ff7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/index.html @@ -0,0 +1,91 @@ + + + + + InFront + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

InFront

+

Placement for attaching in front of the lens carousel.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/to-string.html new file mode 100644 index 00000000..23ecb5c4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/index.html new file mode 100644 index 00000000..b81f5adc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/index.html @@ -0,0 +1,156 @@ + + + + + LayoutPlacement + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LayoutPlacement

+
sealed class LayoutPlacement

Describes directional placement relative to the lens carousel.

Since

1.11.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Placement for attaching above the lens carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Placement for attaching behind the lens carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Placement for attaching in front of the lens carousel.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/activate.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/activate.html new file mode 100644 index 00000000..8d63cbe3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/activate.html @@ -0,0 +1,69 @@ + + + + + activate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activate

+
+
open override fun activate(lens: LensesComponent.Lens?, callback: Consumer<Boolean>)

Attempts to activate lenses carousel with an optional Lens pre-selected. The operation is async with the result provided as success or failure flag to the callback.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/deactivate.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/deactivate.html new file mode 100644 index 00000000..b03d1aa7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/deactivate.html @@ -0,0 +1,69 @@ + + + + + deactivate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

deactivate

+
+
open override fun deactivate(callback: Consumer<Boolean>)

Attempts to deactivate lenses carousel. The operation is async with the result provided as success or failure flag to the callback.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/index.html new file mode 100644 index 00000000..bb8b9ca5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/index.html @@ -0,0 +1,121 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun activate(lens: LensesComponent.Lens?, callback: Consumer<Boolean>)

Attempts to activate lenses carousel with an optional Lens pre-selected. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun deactivate(callback: Consumer<Boolean>)

Attempts to deactivate lenses carousel. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lenses carousel lifecycle events defined in Event.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/observe.html new file mode 100644 index 00000000..f42374af --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lenses carousel lifecycle events defined in Event.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-l-e-f-t/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-l-e-f-t/index.html new file mode 100644 index 00000000..b7177c7c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-l-e-f-t/index.html @@ -0,0 +1,106 @@ + + + + + LEFT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LEFT

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-r-i-g-h-t/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-r-i-g-h-t/index.html new file mode 100644 index 00000000..d5343e2a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-r-i-g-h-t/index.html @@ -0,0 +1,106 @@ + + + + + RIGHT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

RIGHT

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/index.html new file mode 100644 index 00000000..29dd7c1a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/index.html @@ -0,0 +1,170 @@ + + + + + Side + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Side

+

Describes position on the left or right to the center of lenses carousel.

Since

1.4.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/value-of.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/value-of.html new file mode 100644 index 00000000..24295c1d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/values.html new file mode 100644 index 00000000..f27e0724 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/index.html new file mode 100644 index 00000000..46a3c5b6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/index.html @@ -0,0 +1,91 @@ + + + + + CloseButtonClicked + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

CloseButtonClicked

+

Emitted when carousel close button clicked.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/to-string.html new file mode 100644 index 00000000..5ac3132c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/-item-selected.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/-item-selected.html new file mode 100644 index 00000000..19e0610e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/-item-selected.html @@ -0,0 +1,69 @@ + + + + + ItemSelected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemSelected

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/equals.html new file mode 100644 index 00000000..08013257 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/hash-code.html new file mode 100644 index 00000000..fd959de9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/index.html new file mode 100644 index 00000000..23b6f379 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/index.html @@ -0,0 +1,155 @@ + + + + + ItemSelected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemSelected

+

Emitted when a carousel item is selected.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/item.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/item.html new file mode 100644 index 00000000..2b24674a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/item.html @@ -0,0 +1,69 @@ + + + + + item + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/to-string.html new file mode 100644 index 00000000..00bdf6c7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/-visible-items-changed.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/-visible-items-changed.html new file mode 100644 index 00000000..94b26c65 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/-visible-items-changed.html @@ -0,0 +1,69 @@ + + + + + VisibleItemsChanged + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

VisibleItemsChanged

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/equals.html new file mode 100644 index 00000000..fe65f37d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/hash-code.html new file mode 100644 index 00000000..b78934a6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/index.html new file mode 100644 index 00000000..6d27d657 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/index.html @@ -0,0 +1,155 @@ + + + + + VisibleItemsChanged + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

VisibleItemsChanged

+

Emitted when carousel visible items have been changed.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/to-string.html new file mode 100644 index 00000000..66b5c247 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/visible-items.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/visible-items.html new file mode 100644 index 00000000..77953b16 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/visible-items.html @@ -0,0 +1,69 @@ + + + + + visibleItems + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

visibleItems

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/index.html new file mode 100644 index 00000000..a619bbb3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/index.html @@ -0,0 +1,156 @@ + + + + + Event + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Event

+
sealed class Event

All lenses carousel view events available to observe.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when carousel close button clicked.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when a carousel item is selected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when carousel visible items have been changed.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/id.html new file mode 100644 index 00000000..1ec9560b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
open override val id: String

An identifier for an Item.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/index.html new file mode 100644 index 00000000..1c74a310 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/index.html @@ -0,0 +1,108 @@ + + + + + Idle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Idle

+

Represents the idle state - an empty item which can be selected to remove any previously applied lens.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val id: String

An identifier for an Item.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/to-string.html new file mode 100644 index 00000000..1d83e0b4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/content-description.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/content-description.html new file mode 100644 index 00000000..211c43b4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/content-description.html @@ -0,0 +1,69 @@ + + + + + contentDescription + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

contentDescription

+
+

Brief description of the Lens that is primarily used for accessibility support.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/icon-uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/icon-uri.html new file mode 100644 index 00000000..a1d48f35 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/icon-uri.html @@ -0,0 +1,69 @@ + + + + + iconUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

iconUri

+
+
abstract val iconUri: String?

Icon resource URI that represents the Lens, null when not available.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/index.html new file mode 100644 index 00000000..e679c2b5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/index.html @@ -0,0 +1,138 @@ + + + + + Lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Lens

+

Represents the lens displayed in the lenses carousel.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lenses content loading states defined in LoadingState.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Brief description of the Lens that is primarily used for accessibility support.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val iconUri: String?

Icon resource URI that represents the Lens, null when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val id: String

An identifier for an Item.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/observe-loading-state.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/observe-loading-state.html new file mode 100644 index 00000000..1b3f4074 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/observe-loading-state.html @@ -0,0 +1,69 @@ + + + + + observeLoadingState + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeLoadingState

+
+

Allows to observe lenses content loading states defined in LoadingState.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/index.html new file mode 100644 index 00000000..adc2dbb8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/index.html @@ -0,0 +1,91 @@ + + + + + Done + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Done

+

Emitted when content is loaded.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/to-string.html new file mode 100644 index 00000000..478eaa93 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/index.html new file mode 100644 index 00000000..d51ee6e1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/index.html @@ -0,0 +1,91 @@ + + + + + Idle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Idle

+

Emitted when content is not loading.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/to-string.html new file mode 100644 index 00000000..baa20dfa --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/index.html new file mode 100644 index 00000000..9a5d6a46 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/index.html @@ -0,0 +1,91 @@ + + + + + InProgress + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

InProgress

+

Emitted when content loading in progress.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/to-string.html new file mode 100644 index 00000000..5cd2835a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/index.html new file mode 100644 index 00000000..1055b78f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/index.html @@ -0,0 +1,156 @@ + + + + + LoadingState + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LoadingState

+
sealed class LoadingState

All loading states for the carousel Item content.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when content is loaded.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when content is not loading.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when content loading in progress.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/id.html new file mode 100644 index 00000000..7066074b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
abstract val id: String

An identifier for an Item.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/index.html new file mode 100644 index 00000000..620efa8e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/index.html @@ -0,0 +1,162 @@ + + + + + Item + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Item

+
interface Item

Defines all possible item types that can be displayed in the lenses carousel.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Represents the idle state - an empty item which can be selected to remove any previously applied lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Represents the lens displayed in the lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class LoadingState

All loading states for the carousel Item content.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val id: String

An identifier for an Item.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/index.html new file mode 100644 index 00000000..4b1988bc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/index.html @@ -0,0 +1,91 @@ + + + + + Hidden + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Hidden

+

Lenses carousel should not be displayed, hide any if shown already.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/to-string.html new file mode 100644 index 00000000..2e2a7047 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/-visible.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/-visible.html new file mode 100644 index 00000000..75661d73 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/-visible.html @@ -0,0 +1,69 @@ + + + + + Visible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Visible

+
+
fun Visible(items: List<LensesComponent.Carousel.View.Item>, selectedItemPosition: Int = 0, closeable: Boolean = true)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/closeable.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/closeable.html new file mode 100644 index 00000000..a1a1a36b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/closeable.html @@ -0,0 +1,69 @@ + + + + + closeable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

closeable

+
+
val closeable: Boolean = true
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/equals.html new file mode 100644 index 00000000..28300a14 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/hash-code.html new file mode 100644 index 00000000..fa49578a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/index.html new file mode 100644 index 00000000..a9b143b8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/index.html @@ -0,0 +1,185 @@ + + + + + Visible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Visible

+
class Visible(val items: List<LensesComponent.Carousel.View.Item>, val selectedItemPosition: Int = 0, val closeable: Boolean = true) : LensesComponent.Carousel.View.Model

Lenses carousel should be displayed with the provided items. selectedItemPosition is the position of the Item withing the items that should be selected. closeable determines if the lenses carousel can be closed either by user or programmatically.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Visible(items: List<LensesComponent.Carousel.View.Item>, selectedItemPosition: Int = 0, closeable: Boolean = true)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val closeable: Boolean = true
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/items.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/items.html new file mode 100644 index 00000000..03d372ed --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/items.html @@ -0,0 +1,69 @@ + + + + + items + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

items

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/selected-item-position.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/selected-item-position.html new file mode 100644 index 00000000..cc4b2d45 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/selected-item-position.html @@ -0,0 +1,69 @@ + + + + + selectedItemPosition + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

selectedItemPosition

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/to-string.html new file mode 100644 index 00000000..f81a5167 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/index.html new file mode 100644 index 00000000..cb59ccdf --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/index.html @@ -0,0 +1,130 @@ + + + + + Model + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Model

+
sealed class Model

Defines possible states of the lenses carousel view.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lenses carousel should not be displayed, hide any if shown already.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Visible(val items: List<LensesComponent.Carousel.View.Item>, val selectedItemPosition: Int = 0, val closeable: Boolean = true) : LensesComponent.Carousel.View.Model

Lenses carousel should be displayed with the provided items. selectedItemPosition is the position of the Item withing the items that should be selected. closeable determines if the lenses carousel can be closed either by user or programmatically.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/index.html new file mode 100644 index 00000000..8d3234c9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/index.html @@ -0,0 +1,153 @@ + + + + + View + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

View

+

Defines a contract of a view that is called to show and hide lenses carousel.

Since

1.7.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Event

All lenses carousel view events available to observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Item

Defines all possible item types that can be displayed in the lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Model

Defines possible states of the lenses carousel view.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Consumes the given value of type T.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lenses carousel view events defined in Event.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/observe.html new file mode 100644 index 00000000..dd5c204b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lenses carousel view events defined in Event.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/activate.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/activate.html new file mode 100644 index 00000000..ed6e56d1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/activate.html @@ -0,0 +1,69 @@ + + + + + activate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

activate

+
+
abstract fun activate(lens: LensesComponent.Lens? = null, callback: Consumer<Boolean> = Consumer {})

Attempts to activate lenses carousel with an optional Lens pre-selected. The operation is async with the result provided as success or failure flag to the callback.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/deactivate.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/deactivate.html new file mode 100644 index 00000000..5c514b28 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/deactivate.html @@ -0,0 +1,69 @@ + + + + + deactivate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

deactivate

+
+
abstract fun deactivate(callback: Consumer<Boolean> = Consumer {})

Attempts to deactivate lenses carousel. The operation is async with the result provided as success or failure flag to the callback.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/index.html new file mode 100644 index 00000000..02b95f85 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/index.html @@ -0,0 +1,241 @@ + + + + + Carousel + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Carousel

+
interface Carousel

Provides ability to interact with lenses carousel feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureCarousel method.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lenses carousel feature.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Event

All lenses carousel lifecycle events available to observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface ItemOptions

Represents options to customize lenses carousel item appearance.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class LayoutPlacement

Describes directional placement relative to the lens carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Describes position on the left or right to the center of lenses carousel.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a contract of a view that is called to show and hide lenses carousel.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun activate(lens: LensesComponent.Lens? = null, callback: Consumer<Boolean> = Consumer {})

Attempts to activate lenses carousel with an optional Lens pre-selected. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun deactivate(callback: Consumer<Boolean> = Consumer {})

Attempts to deactivate lenses carousel. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lenses carousel lifecycle events defined in Event.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/observe.html new file mode 100644 index 00000000..7a46c142 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lenses carousel lifecycle events defined in Event.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/enabled.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/enabled.html new file mode 100644 index 00000000..d128abdf --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

True if lens hints feature should be enabled. Typically, it is True when view is not null, False otherwise.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/index.html new file mode 100644 index 00000000..e57fafde --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/index.html @@ -0,0 +1,106 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lens hints feature.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

True if lens hints feature should be enabled. Typically, it is True when view is not null, False otherwise.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Custom implementation of Hints.View to be used as a delegate to show and hide lens hints.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/view.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/view.html new file mode 100644 index 00000000..6a2a7f58 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/view.html @@ -0,0 +1,69 @@ + + + + + view + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

view

+
+

Custom implementation of Hints.View to be used as a delegate to show and hide lens hints.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html new file mode 100644 index 00000000..c3b83f83 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html @@ -0,0 +1,69 @@ + + + + + Displayed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Displayed

+
+
fun Displayed(id: String, text: String, autoHide: Boolean)


fun Displayed(text: String, autoHide: Boolean)

Deprecated

Constructor that is missing 'id' parameter is not used anymore

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/auto-hide.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/auto-hide.html new file mode 100644 index 00000000..e5f81597 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/auto-hide.html @@ -0,0 +1,69 @@ + + + + + autoHide + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

autoHide

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/equals.html new file mode 100644 index 00000000..34cf272b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/hash-code.html new file mode 100644 index 00000000..278b0ab0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/id.html new file mode 100644 index 00000000..d665738d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/index.html new file mode 100644 index 00000000..29236f05 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/index.html @@ -0,0 +1,200 @@ + + + + + Displayed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Displayed

+
class Displayed(val id: String, val text: String, val autoHide: Boolean) : LensesComponent.Hints.View.Model

Lens hint displayed using the provided text which is translated to match the current device locale. id represents a unique string that can be used to look up custom text for a specific hint in case the provided text is not suitable. autoHide indicates that this hint should get hidden after some amount of time which is long enough for user to read the hint text. When autoHide is False, it is expected that the hint will remain displayed until Model.Hidden is received by Hints.View.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Displayed(text: String, autoHide: Boolean)
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Displayed(id: String, text: String, autoHide: Boolean)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/text.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/text.html new file mode 100644 index 00000000..919f1c91 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/text.html @@ -0,0 +1,69 @@ + + + + + text + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

text

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/to-string.html new file mode 100644 index 00000000..7e7f15ad --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/index.html new file mode 100644 index 00000000..7c681d31 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/index.html @@ -0,0 +1,91 @@ + + + + + Hidden + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Hidden

+

No lens hint should be displayed, hide any if shown already.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/to-string.html new file mode 100644 index 00000000..05f07fbc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/index.html new file mode 100644 index 00000000..0a91f27e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/index.html @@ -0,0 +1,130 @@ + + + + + Model + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Model

+
sealed class Model

Defines possible states of lens hints view.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Displayed(val id: String, val text: String, val autoHide: Boolean) : LensesComponent.Hints.View.Model

Lens hint displayed using the provided text which is translated to match the current device locale. id represents a unique string that can be used to look up custom text for a specific hint in case the provided text is not suitable. autoHide indicates that this hint should get hidden after some amount of time which is long enough for user to read the hint text. When autoHide is False, it is expected that the hint will remain displayed until Model.Hidden is received by Hints.View.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

No lens hint should be displayed, hide any if shown already.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/index.html new file mode 100644 index 00000000..f14f660f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/index.html @@ -0,0 +1,108 @@ + + + + + View + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

View

+

Defines a contract of a view that is called to show and hide textual hints requested by individual lenses.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Model

Defines possible states of lens hints view.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Consumes the given value of type T.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/index.html new file mode 100644 index 00000000..2896a428 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/index.html @@ -0,0 +1,106 @@ + + + + + Hints + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Hints

+
interface Hints

Provides ability to interact with lens hints feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureHints method.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lens hints feature.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a contract of a view that is called to show and hide textual hints requested by individual lenses.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-companion/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-companion/index.html new file mode 100644 index 00000000..7ae367bf --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides ability to attach utility functions to the Lens interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-b-a-c-k/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-b-a-c-k/index.html new file mode 100644 index 00000000..d79d9272 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-b-a-c-k/index.html @@ -0,0 +1,106 @@ + + + + + BACK + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BACK

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-f-r-o-n-t/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-f-r-o-n-t/index.html new file mode 100644 index 00000000..72c6fc1e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-f-r-o-n-t/index.html @@ -0,0 +1,106 @@ + + + + + FRONT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

FRONT

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/index.html new file mode 100644 index 00000000..5b6746d5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/index.html @@ -0,0 +1,170 @@ + + + + + Facing + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Facing

+

Defines all possible facings (inversely relative to user) that a lens can be designed for.

Since

1.10.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/value-of.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/value-of.html new file mode 100644 index 00000000..4d68dec0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/values.html new file mode 100644 index 00000000..b66040e3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/build.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/build.html new file mode 100644 index 00000000..e169a1b6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/build.html @@ -0,0 +1,69 @@ + + + + + build + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

build

+
+

Builds an instance of LaunchData with all provided key-value pairs.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/index.html new file mode 100644 index 00000000..16f4bc93 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/index.html @@ -0,0 +1,151 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Builder

+
interface Builder
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Builds an instance of LaunchData with all provided key-value pairs.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Puts number key-value pair to launch data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Puts number array key-value pair to launch data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Puts string key-value pair to launch data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Puts string array key-value pair to launch data.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-number.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-number.html new file mode 100644 index 00000000..15d7a220 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-number.html @@ -0,0 +1,69 @@ + + + + + putNumber + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

putNumber

+
+

Puts number key-value pair to launch data.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-numbers.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-numbers.html new file mode 100644 index 00000000..6fa29af3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-numbers.html @@ -0,0 +1,69 @@ + + + + + putNumbers + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

putNumbers

+
+

Puts number array key-value pair to launch data.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-string.html new file mode 100644 index 00000000..d3edc078 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-string.html @@ -0,0 +1,69 @@ + + + + + putString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

putString

+
+

Puts string key-value pair to launch data.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-strings.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-strings.html new file mode 100644 index 00000000..2c7bb351 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-strings.html @@ -0,0 +1,69 @@ + + + + + putStrings + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

putStrings

+
+

Puts string array key-value pair to launch data.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-companion/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-companion/index.html new file mode 100644 index 00000000..001c84f1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides ability to attach utility functions to the LaunchData interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/index.html new file mode 100644 index 00000000..7340ba4d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/index.html @@ -0,0 +1,91 @@ + + + + + Empty + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Empty

+

Defines empty launch data. No additional data is passed when lens is launched.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/to-string.html new file mode 100644 index 00000000..afaef6b7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/index.html new file mode 100644 index 00000000..8cb7dc08 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/index.html @@ -0,0 +1,134 @@ + + + + + LaunchData + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LaunchData

+
interface LaunchData

Represents an additional data that is passed to a lens at its launch time.

Since

1.1.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Builder
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides ability to attach utility functions to the LaunchData interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines empty launch data. No additional data is passed when lens is launched.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/-deep-link.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/-deep-link.html new file mode 100644 index 00000000..1d15ccfa --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/-deep-link.html @@ -0,0 +1,69 @@ + + + + + DeepLink + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

DeepLink

+
+
fun DeepLink(uri: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/equals.html new file mode 100644 index 00000000..83fe3433 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/hash-code.html new file mode 100644 index 00000000..e0cd82a8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/index.html new file mode 100644 index 00000000..0e2fdaaa --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/index.html @@ -0,0 +1,155 @@ + + + + + DeepLink + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

DeepLink

+

Defines a deeplink media resource, typically leading to a web page or in-app content, accessible by the uri that can be associated with a Lens.

Since

1.24.0

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun DeepLink(uri: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val uri: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/to-string.html new file mode 100644 index 00000000..8baa2b01 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/uri.html new file mode 100644 index 00000000..6fb6fb68 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
open override val uri: String

Parameters

uri

Represents a local or remote resource for this media instance, typically a URL.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/-png.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/-png.html new file mode 100644 index 00000000..2ac37c0e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/-png.html @@ -0,0 +1,69 @@ + + + + + Png + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Png

+
+
fun Png(uri: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/equals.html new file mode 100644 index 00000000..44140775 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/hash-code.html new file mode 100644 index 00000000..fce617ac --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/index.html new file mode 100644 index 00000000..661abb52 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/index.html @@ -0,0 +1,155 @@ + + + + + Png + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Png

+

Image media encoded in the PNG format, accessible by the uri.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Png(uri: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val uri: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/to-string.html new file mode 100644 index 00000000..e3d4916f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/uri.html new file mode 100644 index 00000000..cffb04bc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
open override val uri: String

Parameters

uri

Represents a local or remote resource for this media instance, typically a URL.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/-webp.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/-webp.html new file mode 100644 index 00000000..742a551e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/-webp.html @@ -0,0 +1,69 @@ + + + + + Webp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Webp

+
+
fun Webp(uri: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/equals.html new file mode 100644 index 00000000..fb03bf6b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/hash-code.html new file mode 100644 index 00000000..22ba996a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/index.html new file mode 100644 index 00000000..03463349 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/index.html @@ -0,0 +1,155 @@ + + + + + Webp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Webp

+

Image media encoded in the WebP format, accessible by the uri.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Webp(uri: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val uri: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/to-string.html new file mode 100644 index 00000000..c52547d8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/uri.html new file mode 100644 index 00000000..3a296c7c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
open override val uri: String

Parameters

uri

Represents a local or remote resource for this media instance, typically a URL.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/index.html new file mode 100644 index 00000000..39e01a9c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/index.html @@ -0,0 +1,147 @@ + + + + + Image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Image

+

Defines all expected image media resources that can be associated with a Lens.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Image media encoded in the PNG format, accessible by the uri.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Image media encoded in the WebP format, accessible by the uri.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val uri: String
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/-webp.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/-webp.html new file mode 100644 index 00000000..d2529a44 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/-webp.html @@ -0,0 +1,69 @@ + + + + + Webp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Webp

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/equals.html new file mode 100644 index 00000000..326ba002 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/hash-code.html new file mode 100644 index 00000000..613c905d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/index.html new file mode 100644 index 00000000..70d23a1c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/index.html @@ -0,0 +1,170 @@ + + + + + Webp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Webp

+

Image sequence media encoded in the WebP format, each frame provided in the values collection.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val uri: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/to-string.html new file mode 100644 index 00000000..e8743085 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/values.html new file mode 100644 index 00000000..c16e51a2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Parameters

values

Represents a collection of frames of a media type T.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/index.html new file mode 100644 index 00000000..a62f748e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/index.html @@ -0,0 +1,140 @@ + + + + + Sequence + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Sequence

+

Defines all expected sequence media resources that can be associated with a Lens.

Since

1.23.0

+
+
+
+
+

Parameters

+
+
values

Represents a collection of frames of a media type T.

+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Image sequence media encoded in the WebP format, each frame provided in the values collection.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val uri: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val values: Collection<T>
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/values.html new file mode 100644 index 00000000..dd4e7b62 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+
open val values: Collection<T>

Parameters

values

Represents a collection of frames of a media type T.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/index.html new file mode 100644 index 00000000..3d0db0cb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/index.html @@ -0,0 +1,177 @@ + + + + + Media + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Media

+
sealed class Media

Represents all expected media resources that can be associated with a Lens.

Since

1.17.0

+
+
+
+
+

Parameters

+
+
uri

Represents a local or remote resource for this media instance, typically a URL.

+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a deeplink media resource, typically leading to a web page or in-app content, accessible by the uri that can be associated with a Lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all expected image media resources that can be associated with a Lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all expected sequence media resources that can be associated with a Lens.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val uri: String
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/uri.html new file mode 100644 index 00000000..81e449da --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
open val uri: String

Parameters

uri

Represents a local or remote resource for this media instance, typically a URL.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/-image.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/-image.html new file mode 100644 index 00000000..90732f7b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/-image.html @@ -0,0 +1,69 @@ + + + + + Image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Image

+
+
fun Image(uri: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/equals.html new file mode 100644 index 00000000..04b6f908 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/hash-code.html new file mode 100644 index 00000000..be77746b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/index.html new file mode 100644 index 00000000..128a63be --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/index.html @@ -0,0 +1,155 @@ + + + + + Image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Image

+

Single image, lens preview accessible as uri resource.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Image(uri: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val uri: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/to-string.html new file mode 100644 index 00000000..b4492808 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/uri.html new file mode 100644 index 00000000..1d7eb53b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
val uri: String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/index.html new file mode 100644 index 00000000..28689c7a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/index.html @@ -0,0 +1,104 @@ + + + + + Preview + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Preview

+
sealed class Preview

Deprecated

Replaced by LensesComponent.Lens.Media which represents all available formats. To be removed in 1.19.0.

Represents data that can be used to display lens preview to a user.

Since

1.4.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Single image, lens preview accessible as uri resource.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/facing-preference.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/facing-preference.html new file mode 100644 index 00000000..5f1880cc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/facing-preference.html @@ -0,0 +1,69 @@ + + + + + facingPreference + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

facingPreference

+
+

Specifies a Facing that this lens is designed for, null when no preference is expressed.

Since

1.10.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/group-id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/group-id.html new file mode 100644 index 00000000..81ed6641 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/group-id.html @@ -0,0 +1,69 @@ + + + + + groupId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

groupId

+
+
abstract val groupId: String

Non-empty identifier of a group this lens belongs to.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icon-uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icon-uri.html new file mode 100644 index 00000000..c6e1cbd9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icon-uri.html @@ -0,0 +1,69 @@ + + + + + iconUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

iconUri

+
+
abstract val iconUri: String?

Deprecated

Use the icons member field which provides access to all available icon media formats. Note that the PNG icon resources are deprecated, the WebP icon resources are recommended due to their smaller binary size.

Replace with

icons.find { it is LensesComponent.Lens.Media.Image.Png }?.uri

Icon resource URI that represents this lens, null when not available.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icons.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icons.html new file mode 100644 index 00000000..e0107eca --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icons.html @@ -0,0 +1,69 @@ + + + + + icons + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

icons

+
+

A set of icon image resources that represent this lens, empty when not available.

Since

1.17.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/id.html new file mode 100644 index 00000000..41bcde20 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
abstract val id: String

Non-empty identifier of a unique lens available to be applied through processor.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/index.html new file mode 100644 index 00000000..dafee900 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/index.html @@ -0,0 +1,303 @@ + + + + + Lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Lens

+
interface Lens

Defines the data model of a lens that is available to be used by LensesComponent exposed features.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides ability to attach utility functions to the Lens interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all possible facings (inversely relative to user) that a lens can be designed for.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface LaunchData

Represents an additional data that is passed to a lens at its launch time.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Media

Represents all expected media resources that can be associated with a Lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Preview

Represents data that can be used to display lens preview to a user.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies a Facing that this lens is designed for, null when no preference is expressed.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val groupId: String

Non-empty identifier of a group this lens belongs to.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of icon image resources that represent this lens, empty when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val iconUri: String?

Icon resource URI that represents this lens, null when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val id: String

Non-empty identifier of a unique lens available to be applied through processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val name: String?

Human readable name of this lens, null when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Preview that represents this lens, null when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of preview media resources that represent this lens, empty when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of snapcodes that represent this lens, empty when not available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val vendorData: Map<String, String>

Vendor specific metadata associated with this lens, empty by default.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/name.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/name.html new file mode 100644 index 00000000..34def879 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/name.html @@ -0,0 +1,69 @@ + + + + + name + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

name

+
+
abstract val name: String?

Human readable name of this lens, null when not available.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/preview.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/preview.html new file mode 100644 index 00000000..55db48b5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/preview.html @@ -0,0 +1,69 @@ + + + + + preview + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

preview

+
+

Deprecated

Use the previews member field which provides access to all available preview media formats.

Replace with

previews.find { it is LensesComponent.Lens.Media.Image.Webp }?.let { LensesComponent.Lens.Preview.Image(it.uri) }

Preview that represents this lens, null when not available.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/previews.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/previews.html new file mode 100644 index 00000000..b7953e44 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/previews.html @@ -0,0 +1,69 @@ + + + + + previews + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

previews

+
+

A set of preview media resources that represent this lens, empty when not available.

Since

1.17.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/snapcodes.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/snapcodes.html new file mode 100644 index 00000000..6f15a8c0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/snapcodes.html @@ -0,0 +1,69 @@ + + + + + snapcodes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

snapcodes

+
+

A set of snapcodes that represent this lens, empty when not available.

A snapcode is typically represented as Media.Image.Png and Media.DeepLink which points to the lens content in the Snapchat app, when installed, or a dedicated web page.

Since

1.24.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/vendor-data.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/vendor-data.html new file mode 100644 index 00000000..97d8f3a7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/vendor-data.html @@ -0,0 +1,69 @@ + + + + + vendorData + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

vendorData

+
+
abstract val vendorData: Map<String, String>

Vendor specific metadata associated with this lens, empty by default.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/enabled.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/enabled.html new file mode 100644 index 00000000..ad5c8af4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

True if lens overlay feature should be enabled. Typically, it is True by default.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/index.html new file mode 100644 index 00000000..161146b4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/index.html @@ -0,0 +1,91 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lens loading overlay feature.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

True if lens overlay feature should be enabled. Typically, it is True by default.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/index.html new file mode 100644 index 00000000..efc0fcb6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/index.html @@ -0,0 +1,91 @@ + + + + + LoadingOverlay + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LoadingOverlay

+
interface LoadingOverlay

Provides ability to interact with lens loading overlay feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureLoadingOverlay method. If enabled, loading overlay is shown when a lens that is being applied via Processor.apply or selected via Carousel is loading resources from network or other sources.

Since

1.5.4

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lens loading overlay feature.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/enabled.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/enabled.html new file mode 100644 index 00000000..5a395d8c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/enabled.html @@ -0,0 +1,69 @@ + + + + + enabled + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

enabled

+
+
abstract var enabled: Boolean

True if lens media picker should be enabled. Typically, it is True by default.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/index.html new file mode 100644 index 00000000..83e46239 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/index.html @@ -0,0 +1,106 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lens media picker feature.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract var enabled: Boolean

True if lens media picker should be enabled. Typically, it is True by default.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Custom implementation of MediaPicker.View to be used as a delegate to show and hide media picker.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/view.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/view.html new file mode 100644 index 00000000..e30ce481 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/view.html @@ -0,0 +1,69 @@ + + + + + view + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

view

+
+

Custom implementation of MediaPicker.View to be used as a delegate to show and hide media picker.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/-item-selected.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/-item-selected.html new file mode 100644 index 00000000..2b5ce7ea --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/-item-selected.html @@ -0,0 +1,69 @@ + + + + + ItemSelected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemSelected

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/equals.html new file mode 100644 index 00000000..a8c3528f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/hash-code.html new file mode 100644 index 00000000..467ea1af --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/index.html new file mode 100644 index 00000000..26ffaeaa --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/index.html @@ -0,0 +1,155 @@ + + + + + ItemSelected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ItemSelected

+

Emitted when a media picker item is selected.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/item.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/item.html new file mode 100644 index 00000000..f446c176 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/item.html @@ -0,0 +1,69 @@ + + + + + item + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/to-string.html new file mode 100644 index 00000000..fbb3d262 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/index.html new file mode 100644 index 00000000..928a3032 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/index.html @@ -0,0 +1,91 @@ + + + + + LastItemVisible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LastItemVisible

+

Emitted when the last media picker item is visible. Can be used as a signal to load more items for the media picker.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/to-string.html new file mode 100644 index 00000000..a97d26c2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/index.html new file mode 100644 index 00000000..446713b4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/index.html @@ -0,0 +1,130 @@ + + + + + Event + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Event

+
sealed class Event

All media picker view events available to observe.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when a media picker item is selected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when the last media picker item is visible. Can be used as a signal to load more items for the media picker.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/index.html new file mode 100644 index 00000000..9a8a1f1b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/index.html @@ -0,0 +1,91 @@ + + + + + Loading + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Loading

+

Represents a loading item.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/to-string.html new file mode 100644 index 00000000..cf5420a0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/-media.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/-media.html new file mode 100644 index 00000000..9078a3c4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/-media.html @@ -0,0 +1,69 @@ + + + + + Media + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Media

+
+
fun Media(id: String, iconUri: String?, cropRect: RectF?, label: String, selected: Boolean)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/crop-rect.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/crop-rect.html new file mode 100644 index 00000000..fa883a8a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/crop-rect.html @@ -0,0 +1,69 @@ + + + + + cropRect + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

cropRect

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/equals.html new file mode 100644 index 00000000..24a1a2df --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/hash-code.html new file mode 100644 index 00000000..ebb50525 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/icon-uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/icon-uri.html new file mode 100644 index 00000000..53eca494 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/icon-uri.html @@ -0,0 +1,69 @@ + + + + + iconUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

iconUri

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/id.html new file mode 100644 index 00000000..d9dbcdc4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/index.html new file mode 100644 index 00000000..548dbbe4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/index.html @@ -0,0 +1,215 @@ + + + + + Media + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Media

+
class Media(val id: String, val iconUri: String?, val cropRect: RectF?, val label: String, val selected: Boolean) : LensesComponent.MediaPicker.View.Item

Represents a media item with a unique id. iconUri is an icon resource URI of the media item. cropRect is a rect to crop media item icon when displaying. label is a text to be displayed on a media item view. selected defines if the media item is selected in media picker.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Media(id: String, iconUri: String?, cropRect: RectF?, label: String, selected: Boolean)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/label.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/label.html new file mode 100644 index 00000000..86d3c09c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/label.html @@ -0,0 +1,69 @@ + + + + + label + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

label

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/selected.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/selected.html new file mode 100644 index 00000000..d76da335 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/selected.html @@ -0,0 +1,69 @@ + + + + + selected + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

selected

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/to-string.html new file mode 100644 index 00000000..3b7acafe --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/index.html new file mode 100644 index 00000000..39b04912 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/index.html @@ -0,0 +1,130 @@ + + + + + Item + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Item

+
sealed class Item

Defines all possible item types that can be displayed in the media picker.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Represents a loading item.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Media(val id: String, val iconUri: String?, val cropRect: RectF?, val label: String, val selected: Boolean) : LensesComponent.MediaPicker.View.Item

Represents a media item with a unique id. iconUri is an icon resource URI of the media item. cropRect is a rect to crop media item icon when displaying. label is a text to be displayed on a media item view. selected defines if the media item is selected in media picker.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/index.html new file mode 100644 index 00000000..c6d97f5b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/index.html @@ -0,0 +1,91 @@ + + + + + Hidden + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Hidden

+

Media picker should not be displayed, hide any if shown already.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/to-string.html new file mode 100644 index 00000000..39a6f427 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/-visible.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/-visible.html new file mode 100644 index 00000000..3b9ce81a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/-visible.html @@ -0,0 +1,69 @@ + + + + + Visible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Visible

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/equals.html new file mode 100644 index 00000000..48bc1c91 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/hash-code.html new file mode 100644 index 00000000..be7c1a04 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/index.html new file mode 100644 index 00000000..9e49cd8f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/index.html @@ -0,0 +1,155 @@ + + + + + Visible + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Visible

+

Media picker should be displayed with the provided items.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/items.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/items.html new file mode 100644 index 00000000..a53d225c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/items.html @@ -0,0 +1,69 @@ + + + + + items + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/to-string.html new file mode 100644 index 00000000..a3b2d548 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/index.html new file mode 100644 index 00000000..b552891b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/index.html @@ -0,0 +1,130 @@ + + + + + Model + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Model

+
sealed class Model

Defines possible states of the media picker view.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Media picker should not be displayed, hide any if shown already.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Media picker should be displayed with the provided items.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/index.html new file mode 100644 index 00000000..81f53bdb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/index.html @@ -0,0 +1,153 @@ + + + + + View + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

View

+

Defines a contract of a view that is called to show and hide media picker.

Since

1.26.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Event

All media picker view events available to observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Item

Defines all possible item types that can be displayed in the media picker.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Model

Defines possible states of the media picker view.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Consumes the given value of type T.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe media picker view events defined in Event.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/observe.html new file mode 100644 index 00000000..d4c995e3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe media picker view events defined in Event.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/index.html new file mode 100644 index 00000000..37d3e370 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/index.html @@ -0,0 +1,106 @@ + + + + + MediaPicker + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MediaPicker

+
interface MediaPicker

Provides ability to interact with lens media picker feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureMediaPicker method. If enabled, media picker is shown when an applied lens requires media data and displays media items which MediaProcessor receives from MediaProcessor.Input.

Since

1.6.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lens media picker feature.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a contract of a view that is called to show and hide media picker.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/close.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/close.html new file mode 100644 index 00000000..45725d7e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
open override fun close()

Closes all resources allocated for this LensesComponent. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/index.html new file mode 100644 index 00000000..2148ebd9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/index.html @@ -0,0 +1,183 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Implementation of LensesComponent which does nothing.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun close()

Closes all resources allocated for this LensesComponent. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides control over the lenses audio. If this LensesComponent is closed then the returned Audio is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Carousel of lenses available to interact with during this component lifecycle. If this LensesComponent is closed or if this LensesComponent was not configured to enable carousel using LensesComponent.Builder.configureCarousel then the returned Carousel is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Preferences of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Preferences is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Prefetcher of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Prefetcher is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides lenses specific Processor which allows to process image and audio input with applied lenses while rendering results to connected outputs. If this LensesComponent is closed then the returned Processor is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Repository of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Repository is expected to be no-op.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/clear.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/clear.html new file mode 100644 index 00000000..1d46e794 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/clear.html @@ -0,0 +1,69 @@ + + + + + clear + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

clear

+
+
open override fun clear(callback: Consumer<Boolean>)

Clears all persistent data stored by lenses. After this operation completes, lenses can be re-applied with no state restored.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/index.html new file mode 100644 index 00000000..eed56c60 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/index.html @@ -0,0 +1,91 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun clear(callback: Consumer<Boolean>)

Clears all persistent data stored by lenses. After this operation completes, lenses can be re-applied with no state restored.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/clear.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/clear.html new file mode 100644 index 00000000..88d1302b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/clear.html @@ -0,0 +1,69 @@ + + + + + clear + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

clear

+
+
abstract fun clear(callback: Consumer<Boolean> = Consumer {})

Clears all persistent data stored by lenses. After this operation completes, lenses can be re-applied with no state restored.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/index.html new file mode 100644 index 00000000..4c757097 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/index.html @@ -0,0 +1,121 @@ + + + + + Preferences + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Preferences

+
interface Preferences

Provides ability to interact with storage used by lenses to store user specific data such as game or on-boarding state, options etc.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun clear(callback: Consumer<Boolean> = Consumer {})

Clears all persistent data stored by lenses. After this operation completes, lenses can be re-applied with no state restored.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/index.html new file mode 100644 index 00000000..8d80782d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/index.html @@ -0,0 +1,106 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe individual lens content loading Status.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun run(lenses: List<LensesComponent.Lens>, callback: Consumer<Boolean>): Closeable

Starts a new operation to prefetch content for the provided list of lenses. The callback receives True when operation completes successfully or False if it fails or is interrupted before completion. The returned Closeable can be used to cancel the operation. However, if Closeable is ignored, then any incomplete prefetch operation will be cancelled once LensesComponent is closed.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/observe.html new file mode 100644 index 00000000..92bc2be1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe individual lens content loading Status.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/run.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/run.html new file mode 100644 index 00000000..117142c7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/run.html @@ -0,0 +1,69 @@ + + + + + run + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

run

+
+
open override fun run(lenses: List<LensesComponent.Lens>, callback: Consumer<Boolean>): Closeable

Starts a new operation to prefetch content for the provided list of lenses. The callback receives True when operation completes successfully or False if it fails or is interrupted before completion. The returned Closeable can be used to cancel the operation. However, if Closeable is ignored, then any incomplete prefetch operation will be cancelled once LensesComponent is closed.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-e-d/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-e-d/index.html new file mode 100644 index 00000000..0ff169ae --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-e-d/index.html @@ -0,0 +1,106 @@ + + + + + LOADED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LOADED

+

Lens content has been loaded for local use.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-i-n-g/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-i-n-g/index.html new file mode 100644 index 00000000..35655dad --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-i-n-g/index.html @@ -0,0 +1,106 @@ + + + + + LOADING + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LOADING

+

Lens content is being loaded for local use.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-u-n-l-o-a-d-e-d/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-u-n-l-o-a-d-e-d/index.html new file mode 100644 index 00000000..75ae0c27 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-u-n-l-o-a-d-e-d/index.html @@ -0,0 +1,106 @@ + + + + + UNLOADED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UNLOADED

+

Lens content is not loaded locally yet.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/index.html new file mode 100644 index 00000000..99321420 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/index.html @@ -0,0 +1,185 @@ + + + + + Status + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Status

+

Possible states of lens content availability for local use.

Since

1.6.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lens content is not loaded locally yet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lens content is being loaded for local use.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Lens content has been loaded for local use.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/value-of.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/value-of.html new file mode 100644 index 00000000..d9ecc34a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/values.html new file mode 100644 index 00000000..73e56818 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/index.html new file mode 100644 index 00000000..4aad8f97 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/index.html @@ -0,0 +1,151 @@ + + + + + Prefetcher + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Prefetcher

+
interface Prefetcher

Provides ability to prefetch content of lenses before they are applied using a Processor. The amount of lenses content that gets prefetched is limited by the Cache.Configuration provided to LensesComponent.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Possible states of lens content availability for local use.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe individual lens content loading Status.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun run(lenses: List<LensesComponent.Lens>, callback: Consumer<Boolean> = Consumer {}): Closeable

Starts a new operation to prefetch content for the provided list of lenses. The callback receives True when operation completes successfully or False if it fails or is interrupted before completion. The returned Closeable can be used to cancel the operation. However, if Closeable is ignored, then any incomplete prefetch operation will be cancelled once LensesComponent is closed.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/observe.html new file mode 100644 index 00000000..ce59d9c3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe individual lens content loading Status.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/run.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/run.html new file mode 100644 index 00000000..30db38d4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/run.html @@ -0,0 +1,69 @@ + + + + + run + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

run

+
+
abstract fun run(lenses: List<LensesComponent.Lens>, callback: Consumer<Boolean> = Consumer {}): Closeable

Starts a new operation to prefetch content for the provided list of lenses. The callback receives True when operation completes successfully or False if it fails or is interrupted before completion. The returned Closeable can be used to cancel the operation. However, if Closeable is ignored, then any incomplete prefetch operation will be cancelled once LensesComponent is closed.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/index.html new file mode 100644 index 00000000..f89e381c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/index.html @@ -0,0 +1,106 @@ + + + + + Configuration + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Configuration

+
interface Configuration

Exposes configuration options available to lenses processor.

Since

1.4.0

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies the way processor rotates input frame before processing. InputFrameRotationBehavior.USE_SCREEN_ORIENTATION by default, meaning processor rotates input frames relative to current screen orientation.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies if face detection and further tracking should be performed on input frames rotated correspondingly to real orientation of the device, while screen orientation is locked to either portrait or landscape. Since 1.6.0 face detection performed by default in portrait, landscape and reverse landscape device orientation. This option should be used only to enable face detection for the reverse portrait orientation. False by default.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/input-frame-rotation-behavior.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/input-frame-rotation-behavior.html new file mode 100644 index 00000000..5adb061d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/input-frame-rotation-behavior.html @@ -0,0 +1,69 @@ + + + + + inputFrameRotationBehavior + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

inputFrameRotationBehavior

+
+

Specifies the way processor rotates input frame before processing. InputFrameRotationBehavior.USE_SCREEN_ORIENTATION by default, meaning processor rotates input frames relative to current screen orientation.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/use-device-orientation-for-face-detection.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/use-device-orientation-for-face-detection.html new file mode 100644 index 00000000..ca747788 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/use-device-orientation-for-face-detection.html @@ -0,0 +1,69 @@ + + + + + useDeviceOrientationForFaceDetection + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

useDeviceOrientationForFaceDetection

+
+

Specifies if face detection and further tracking should be performed on input frames rotated correspondingly to real orientation of the device, while screen orientation is locked to either portrait or landscape. Since 1.6.0 face detection performed by default in portrait, landscape and reverse landscape device orientation. This option should be used only to enable face detection for the reverse portrait orientation. False by default.

NOTE: Enabling this option may increase resource usage and degrade processing performance so it should be used cautiously.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/-applied.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/-applied.html new file mode 100644 index 00000000..9b3a4be4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/-applied.html @@ -0,0 +1,69 @@ + + + + + Applied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Applied

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/equals.html new file mode 100644 index 00000000..50c224e9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/hash-code.html new file mode 100644 index 00000000..29e96655 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/index.html new file mode 100644 index 00000000..54891ef4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/index.html @@ -0,0 +1,202 @@ + + + + + Applied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Applied

+

Emitted when the specified lens is applied or, in other words, active.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/lens.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/lens.html new file mode 100644 index 00000000..a76b9485 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/lens.html @@ -0,0 +1,69 @@ + + + + + lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/to-string.html new file mode 100644 index 00000000..4a2970c7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/-first-frame-processed.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/-first-frame-processed.html new file mode 100644 index 00000000..63d656dc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/-first-frame-processed.html @@ -0,0 +1,69 @@ + + + + + FirstFrameProcessed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

FirstFrameProcessed

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/equals.html new file mode 100644 index 00000000..c472700f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/hash-code.html new file mode 100644 index 00000000..e462176d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/index.html new file mode 100644 index 00000000..b8c29d19 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/index.html @@ -0,0 +1,202 @@ + + + + + FirstFrameProcessed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

FirstFrameProcessed

+

Emitted after the specified lens is applied to the first input frame.

Since

1.5.0

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/lens.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/lens.html new file mode 100644 index 00000000..f15a0731 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/lens.html @@ -0,0 +1,69 @@ + + + + + lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/to-string.html new file mode 100644 index 00000000..79d0a1aa --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/index.html new file mode 100644 index 00000000..90cc4a27 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/index.html @@ -0,0 +1,138 @@ + + + + + Idle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Idle

+

Emitted when no Lens is currently applied.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/to-string.html new file mode 100644 index 00000000..8537c8ee --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/index.html new file mode 100644 index 00000000..accc37d5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/index.html @@ -0,0 +1,203 @@ + + + + + Event + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Event

+
sealed class Event

All lens lifecycle events available to observe.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when the specified lens is applied or, in other words, active.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted after the specified lens is applied to the first input frame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Emitted when no Lens is currently applied.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+ +
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/-internal.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/-internal.html new file mode 100644 index 00000000..ab71c57d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/-internal.html @@ -0,0 +1,69 @@ + + + + + Internal + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Internal

+
+
fun Internal(cause: Throwable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/index.html new file mode 100644 index 00000000..bf62a55d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/index.html @@ -0,0 +1,245 @@ + + + + + Internal + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Internal

+

Reported when processing fails due to an internal error. Cause of such errors can be bugs in the lenses processing engine or resource (memory, disk) exhaustion.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Internal(cause: Throwable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/-lens.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/-lens.html new file mode 100644 index 00000000..cbac5a46 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/-lens.html @@ -0,0 +1,69 @@ + + + + + Lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Lens

+
+
fun Lens(id: String, cause: Throwable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/id.html new file mode 100644 index 00000000..5d9f5879 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/index.html new file mode 100644 index 00000000..04996354 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/index.html @@ -0,0 +1,260 @@ + + + + + Lens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Lens

+
class Lens(val id: String, cause: Throwable? = null) : LensesComponent.Processor.Failure

Reported when processing fails due to a lens error. Lens errors are normally caused by dynamic scripting errors or missing resources in lens bundle.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Lens(id: String, cause: Throwable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/-library-loading.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/-library-loading.html new file mode 100644 index 00000000..d47b6b2e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/-library-loading.html @@ -0,0 +1,69 @@ + + + + + LibraryLoading + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LibraryLoading

+
+
fun LibraryLoading(cause: Throwable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/index.html new file mode 100644 index 00000000..71c74f24 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/index.html @@ -0,0 +1,245 @@ + + + + + LibraryLoading + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LibraryLoading

+

Unrecoverable error indicating that libraries required to run lenses processing failed to load.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun LibraryLoading(cause: Throwable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/index.html new file mode 100644 index 00000000..30c5a999 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/index.html @@ -0,0 +1,310 @@ + + + + + Failure + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Failure

+
sealed class Failure : RuntimeException

Defines known failure modes of a lenses processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Reported when processing fails due to an internal error. Cause of such errors can be bugs in the lenses processing engine or resource (memory, disk) exhaustion.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Lens(val id: String, cause: Throwable? = null) : LensesComponent.Processor.Failure

Reported when processing fails due to a lens error. Lens errors are normally caused by dynamic scripting errors or missing resources in lens bundle.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Unrecoverable error indicating that libraries required to run lenses processing failed to load.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-a-s-s-u-m-e_-p-o-r-t-r-a-i-t_-o-r-i-e-n-t-a-t-i-o-n/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-a-s-s-u-m-e_-p-o-r-t-r-a-i-t_-o-r-i-e-n-t-a-t-i-o-n/index.html new file mode 100644 index 00000000..9a17eca5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-a-s-s-u-m-e_-p-o-r-t-r-a-i-t_-o-r-i-e-n-t-a-t-i-o-n/index.html @@ -0,0 +1,106 @@ + + + + + ASSUME_PORTRAIT_ORIENTATION + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ASSUME_PORTRAIT_ORIENTATION

+

Processor rotates each input frame assuming screen orientation is portrait no matter what real screen orientation is. The value can be used in case an activity handles orientation changes itself, otherwise some lenses may work incorrectly.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-u-s-e_-s-c-r-e-e-n_-o-r-i-e-n-t-a-t-i-o-n/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-u-s-e_-s-c-r-e-e-n_-o-r-i-e-n-t-a-t-i-o-n/index.html new file mode 100644 index 00000000..7d22d747 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-u-s-e_-s-c-r-e-e-n_-o-r-i-e-n-t-a-t-i-o-n/index.html @@ -0,0 +1,106 @@ + + + + + USE_SCREEN_ORIENTATION + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

USE_SCREEN_ORIENTATION

+

Processor rotates each input frame relative to current screen orientation. The value should be used in most cases unless an activity handles orientation changes itself.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/index.html new file mode 100644 index 00000000..5a4f0df0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/index.html @@ -0,0 +1,170 @@ + + + + + InputFrameRotationBehavior + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

InputFrameRotationBehavior

+

Defines how each input frame should be rotated relative to device rotation while processing.

Since

1.4.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Processor rotates each input frame assuming screen orientation is portrait no matter what real screen orientation is. The value can be used in case an activity handles orientation changes itself, otherwise some lenses may work incorrectly.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Processor rotates each input frame relative to current screen orientation. The value should be used in most cases unless an activity handles orientation changes itself.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/value-of.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/value-of.html new file mode 100644 index 00000000..bd9b3e80 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/values.html new file mode 100644 index 00000000..c826f63f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/apply.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/apply.html new file mode 100644 index 00000000..d61d5fbe --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/apply.html @@ -0,0 +1,69 @@ + + + + + apply + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apply

+
+
open override fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData, reset: Boolean, callback: Consumer<Boolean>)

Attempts to apply the provided lens model with launchData and the reset flag which determines whether lens state should be reset if the same lens is currently applied. The operation is async with the result provided as success or failure flag to the callback.

Since

1.15.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/clear.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/clear.html new file mode 100644 index 00000000..edd01145 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/clear.html @@ -0,0 +1,69 @@ + + + + + clear + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

clear

+
+
open override fun clear(callback: Consumer<Boolean>)

Removes any applied Lens models. The result of the async operation is success if any Lens was removed or failure when there were no lenses to be removed or operation failed to execute.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html new file mode 100644 index 00000000..a9bb0e79 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+
open override fun connectInput(input: ImageProcessor.Input): Closeable
open override fun connectInput(input: AudioProcessor.Input): Closeable
open override fun connectInput(input: UserProcessor.Input): Closeable
open override fun connectInput(input: MediaProcessor.Input): Closeable

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-output.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-output.html new file mode 100644 index 00000000..59f6f819 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-output.html @@ -0,0 +1,69 @@ + + + + + connectOutput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectOutput

+
+
open override fun connectOutput(output: ImageProcessor.Output): Closeable

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/index.html new file mode 100644 index 00000000..314c11ae --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/index.html @@ -0,0 +1,166 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of Processor which does nothing but notify operation callbacks with failure.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open fun apply(lens: LensesComponent.Lens, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with Lens.LaunchData.Empty. The operation is async with the result provided as success or failure flag to the callback.

open fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData. The operation is async with the result provided as success or failure flag to the callback.

open override fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData, reset: Boolean, callback: Consumer<Boolean>)

Attempts to apply the provided lens model with launchData and the reset flag which determines whether lens state should be reset if the same lens is currently applied. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun clear(callback: Consumer<Boolean>)

Removes any applied Lens models. The result of the async operation is success if any Lens was removed or failure when there were no lenses to be removed or operation failed to execute.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun connectInput(input: AudioProcessor.Input): Closeable
open override fun connectInput(input: ImageProcessor.Input): Closeable
open override fun connectInput(input: MediaProcessor.Input): Closeable
open override fun connectInput(input: UserProcessor.Input): Closeable

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun connectOutput(output: ImageProcessor.Output): Closeable

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lens lifecycle events defined in Event.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe-required-capabilities.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe-required-capabilities.html new file mode 100644 index 00000000..31ab4040 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe-required-capabilities.html @@ -0,0 +1,69 @@ + + + + + observeRequiredCapabilities + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeRequiredCapabilities

+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

When capabilities are requested client can connect different Input which provides those capabilities, or ignore that request. In case the capabilities request is ignored some image processing functionality may not work.

It is essential to manage the returned Closeable to avoid leaking resources.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe.html new file mode 100644 index 00000000..9f787f3c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lens lifecycle events defined in Event.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html new file mode 100644 index 00000000..fe1e81a6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html @@ -0,0 +1,69 @@ + + + + + apply + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apply

+
+
open fun apply(lens: LensesComponent.Lens, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with Lens.LaunchData.Empty. The operation is async with the result provided as success or failure flag to the callback.


open fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData. The operation is async with the result provided as success or failure flag to the callback.


abstract fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, reset: Boolean = false, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData and the reset flag which determines whether lens state should be reset if the same lens is currently applied. The operation is async with the result provided as success or failure flag to the callback.

Since

1.15.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/clear.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/clear.html new file mode 100644 index 00000000..68b21bf2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/clear.html @@ -0,0 +1,69 @@ + + + + + clear + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

clear

+
+
abstract fun clear(callback: Consumer<Boolean> = Consumer {})

Removes any applied Lens models. The result of the async operation is success if any Lens was removed or failure when there were no lenses to be removed or operation failed to execute.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/index.html new file mode 100644 index 00000000..2562fb45 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/index.html @@ -0,0 +1,256 @@ + + + + + Processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Processor

+

Extension of ImageProcessor that allows to apply and remove lenses on top of the incoming image and audio input stream rendered to connected outputs.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Configuration

Exposes configuration options available to lenses processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Event

All lens lifecycle events available to observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Failure : RuntimeException

Defines known failure modes of a lenses processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines how each input frame should be rotated relative to device rotation while processing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of Processor which does nothing but notify operation callbacks with failure.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open fun apply(lens: LensesComponent.Lens, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with Lens.LaunchData.Empty. The operation is async with the result provided as success or failure flag to the callback.

open fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData. The operation is async with the result provided as success or failure flag to the callback.

abstract fun apply(lens: LensesComponent.Lens, launchData: LensesComponent.Lens.LaunchData = Lens.LaunchData.Empty, reset: Boolean = false, callback: Consumer<Boolean> = Consumer {})

Attempts to apply the provided lens model with launchData and the reset flag which determines whether lens state should be reset if the same lens is currently applied. The operation is async with the result provided as success or failure flag to the callback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun clear(callback: Consumer<Boolean> = Consumer {})

Removes any applied Lens models. The result of the async operation is success if any Lens was removed or failure when there were no lenses to be removed or operation failed to execute.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to observe lens lifecycle events defined in Event.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/observe.html new file mode 100644 index 00000000..4e16395e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Allows to observe lens lifecycle events defined in Event.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/index.html new file mode 100644 index 00000000..d2d42d62 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/index.html @@ -0,0 +1,91 @@ + + + + + Answered + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Answered

+

Request was received and a single Response was sent indicating that call is complete.

NOTE: a single Response must be sent to the onResponse Consumer parameter of the process method before returning Answered, no Response will lead to an exception being thrown. If more than one Response is sent before returning Answered then only the first Response will be sent to a lens.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/to-string.html new file mode 100644 index 00000000..efc1b37d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/index.html new file mode 100644 index 00000000..1bb85b07 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/index.html @@ -0,0 +1,91 @@ + + + + + Ignored + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Ignored

+

Request was ignored. Typically used when RemoteApiService is not interested to handle a Request, allowing other RemoteApiService instances that are associated with the same RemoteApiService.Factory.supportedApiSpecIds to process it.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/to-string.html new file mode 100644 index 00000000..d92ba2d3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/-ongoing.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/-ongoing.html new file mode 100644 index 00000000..d4f6ff39 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/-ongoing.html @@ -0,0 +1,69 @@ + + + + + Ongoing + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Ongoing

+
+
fun Ongoing(closeable: Closeable)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/closeable.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/closeable.html new file mode 100644 index 00000000..e7f262b6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/closeable.html @@ -0,0 +1,69 @@ + + + + + closeable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

closeable

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/index.html new file mode 100644 index 00000000..d7b26f3f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/index.html @@ -0,0 +1,140 @@ + + + + + Ongoing + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Ongoing

+

Request was received but one or more Responses are yet to be sent. The associated closeable is closed when the Request sender terminates the call.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Ongoing(closeable: Closeable)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun close()
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/to-string.html new file mode 100644 index 00000000..cd329350 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/index.html new file mode 100644 index 00000000..4bc7f591 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/index.html @@ -0,0 +1,156 @@ + + + + + Call + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Call

+
sealed class Call

Represents all the possible outcomes when RemoteApiService processes a Request.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request was received and a single Response was sent indicating that call is complete.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request was ignored. Typically used when RemoteApiService is not interested to handle a Request, allowing other RemoteApiService instances that are associated with the same RemoteApiService.Factory.supportedApiSpecIds to process it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request was received but one or more Responses are yet to be sent. The associated closeable is closed when the Request sender terminates the call.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-companion/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-companion/index.html new file mode 100644 index 00000000..991115ca --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides ability to attach utility functions to the RemoteApiService interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/create-for.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/create-for.html new file mode 100644 index 00000000..6f1fc998 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/create-for.html @@ -0,0 +1,69 @@ + + + + + createFor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

createFor

+
+

Called to create a new instance of RemoteApiService scoped to a lifecycle of the provided lens. The returned RemoteApiService is closed when the associated lens is removed from the processing pipeline.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/index.html new file mode 100644 index 00000000..7862b808 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/index.html @@ -0,0 +1,108 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of RemoteApiService.Factory which does not support any API spec IDs and always returns RemoteApiService.Noop.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Called to create a new instance of RemoteApiService scoped to a lifecycle of the provided lens. The returned RemoteApiService is closed when the associated lens is removed from the processing pipeline.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override val supportedApiSpecIds: Set<String>

A set of API spec IDs that are supported by RemoteApiService instances created by this Factory. NOTE: API spec ID can be obtained from a Lens Studio project which uses a particular remote API service associated to an API spec ID.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/supported-api-spec-ids.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/supported-api-spec-ids.html new file mode 100644 index 00000000..7771f1e6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/supported-api-spec-ids.html @@ -0,0 +1,69 @@ + + + + + supportedApiSpecIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

supportedApiSpecIds

+
+
open override val supportedApiSpecIds: Set<String>

A set of API spec IDs that are supported by RemoteApiService instances created by this Factory. NOTE: API spec ID can be obtained from a Lens Studio project which uses a particular remote API service associated to an API spec ID.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/create-for.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/create-for.html new file mode 100644 index 00000000..5aa5d2b1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/create-for.html @@ -0,0 +1,69 @@ + + + + + createFor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

createFor

+
+

Called to create a new instance of RemoteApiService scoped to a lifecycle of the provided lens. The returned RemoteApiService is closed when the associated lens is removed from the processing pipeline.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/index.html new file mode 100644 index 00000000..dad7bff8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/index.html @@ -0,0 +1,138 @@ + + + + + Factory + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Factory

+
interface Factory

Creates instances of RemoteApiService scoped to a lifecycle of a single lens.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of RemoteApiService.Factory which does not support any API spec IDs and always returns RemoteApiService.Noop.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Called to create a new instance of RemoteApiService scoped to a lifecycle of the provided lens. The returned RemoteApiService is closed when the associated lens is removed from the processing pipeline.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

A set of API spec IDs that are supported by RemoteApiService instances created by this Factory. NOTE: API spec ID can be obtained from a Lens Studio project which uses a particular remote API service associated to an API spec ID.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/supported-api-spec-ids.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/supported-api-spec-ids.html new file mode 100644 index 00000000..f79ebabb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/supported-api-spec-ids.html @@ -0,0 +1,69 @@ + + + + + supportedApiSpecIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

supportedApiSpecIds

+
+

A set of API spec IDs that are supported by RemoteApiService instances created by this Factory. NOTE: API spec ID can be obtained from a Lens Studio project which uses a particular remote API service associated to an API spec ID.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/close.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/close.html new file mode 100644 index 00000000..41f4c9b4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
open override fun close()

Closes all resources allocated for this RemoteApiService. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/index.html new file mode 100644 index 00000000..3b838850 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/index.html @@ -0,0 +1,106 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of RemoteApiService which ignores all requests.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun close()

Closes all resources allocated for this RemoteApiService. Overridden to indicate that calling close will not throw.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Attempts to process the request with one or multiple Responses sent back to the provided onResponse. The returned Call indicates how this RemoteApiService handled the request so that callers can act accordingly:

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/process.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/process.html new file mode 100644 index 00000000..e247d684 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/process.html @@ -0,0 +1,69 @@ + + + + + process + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

process

+
+

Attempts to process the request with one or multiple Responses sent back to the provided onResponse. The returned Call indicates how this RemoteApiService handled the request so that callers can act accordingly:

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/-request.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/-request.html new file mode 100644 index 00000000..9fa34fc8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/-request.html @@ -0,0 +1,69 @@ + + + + + Request + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Request

+
+
fun Request(id: String, apiSpecId: String, endpointId: String, parameters: Map<String, String>, body: ByteArray)

Parameters

id

Unique id of the request.

apiSpecId

Unique id of the remote API service specification.

endpointId

Unique id of the remote API service endpoint requested by this request.

parameters

A map of named parameters associated with the request.

body

Additional request payload as a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/api-spec-id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/api-spec-id.html new file mode 100644 index 00000000..f419bf69 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/api-spec-id.html @@ -0,0 +1,69 @@ + + + + + apiSpecId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apiSpecId

+
+

Parameters

apiSpecId

Unique id of the remote API service specification.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/body.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/body.html new file mode 100644 index 00000000..c9598000 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/body.html @@ -0,0 +1,69 @@ + + + + + body + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

body

+
+

Parameters

body

Additional request payload as a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/endpoint-id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/endpoint-id.html new file mode 100644 index 00000000..42923338 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/endpoint-id.html @@ -0,0 +1,69 @@ + + + + + endpointId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

endpointId

+
+

Parameters

endpointId

Unique id of the remote API service endpoint requested by this request.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/equals.html new file mode 100644 index 00000000..e0cf11a4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/hash-code.html new file mode 100644 index 00000000..35044722 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/id.html new file mode 100644 index 00000000..40edf367 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String

Parameters

id

Unique id of the request.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/index.html new file mode 100644 index 00000000..ae32287b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/index.html @@ -0,0 +1,219 @@ + + + + + Request + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Request

+
class Request(val id: String, val apiSpecId: String, val endpointId: String, val parameters: Map<String, String>, val body: ByteArray)

Defines the data model for a request sent by a lens.

+
+
+
+
+

Parameters

+
+
id

Unique id of the request.

apiSpecId

Unique id of the remote API service specification.

endpointId

Unique id of the remote API service endpoint requested by this request.

parameters

A map of named parameters associated with the request.

body

Additional request payload as a ByteArray.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Request(id: String, apiSpecId: String, endpointId: String, parameters: Map<String, String>, body: ByteArray)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/parameters.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/parameters.html new file mode 100644 index 00000000..2cd38430 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/parameters.html @@ -0,0 +1,69 @@ + + + + + parameters + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

parameters

+
+

Parameters

parameters

A map of named parameters associated with the request.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/to-string.html new file mode 100644 index 00000000..c74d9f0e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-response.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-response.html new file mode 100644 index 00000000..c27470a9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-response.html @@ -0,0 +1,69 @@ + + + + + Response + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Response

+
+

Parameters

request

Request that triggered this response.

status

Status of the response.

metadata

A map of named metadata associated with the response.

body

Additional response payload as a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-a-c-c-e-s-s_-d-e-n-i-e-d/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-a-c-c-e-s-s_-d-e-n-i-e-d/index.html new file mode 100644 index 00000000..7b94f22b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-a-c-c-e-s-s_-d-e-n-i-e-d/index.html @@ -0,0 +1,106 @@ + + + + + ACCESS_DENIED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ACCESS_DENIED

+

Caller doesn't have permission to access resource.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-b-a-d_-r-e-q-u-e-s-t/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-b-a-d_-r-e-q-u-e-s-t/index.html new file mode 100644 index 00000000..b9cc7fef --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-b-a-d_-r-e-q-u-e-s-t/index.html @@ -0,0 +1,106 @@ + + + + + BAD_REQUEST + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BAD_REQUEST

+

Invalid request.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-c-a-n-c-e-l-l-e-d/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-c-a-n-c-e-l-l-e-d/index.html new file mode 100644 index 00000000..1e882d60 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-c-a-n-c-e-l-l-e-d/index.html @@ -0,0 +1,106 @@ + + + + + CANCELLED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

CANCELLED

+

Request cancelled by caller.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-i-n-t-e-r-n-a-l_-s-e-r-v-i-c-e_-e-r-r-o-r/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-i-n-t-e-r-n-a-l_-s-e-r-v-i-c-e_-e-r-r-o-r/index.html new file mode 100644 index 00000000..e3badb8c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-i-n-t-e-r-n-a-l_-s-e-r-v-i-c-e_-e-r-r-o-r/index.html @@ -0,0 +1,106 @@ + + + + + INTERNAL_SERVICE_ERROR + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

INTERNAL_SERVICE_ERROR

+

Internal service error.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-n-o-t_-f-o-u-n-d/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-n-o-t_-f-o-u-n-d/index.html new file mode 100644 index 00000000..0f331d68 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-n-o-t_-f-o-u-n-d/index.html @@ -0,0 +1,106 @@ + + + + + NOT_FOUND + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

NOT_FOUND

+

Resource not found.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-d-i-r-e-c-t-e-d/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-d-i-r-e-c-t-e-d/index.html new file mode 100644 index 00000000..e3e6a3d6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-d-i-r-e-c-t-e-d/index.html @@ -0,0 +1,106 @@ + + + + + REDIRECTED + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

REDIRECTED

+

Request was redirected.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-q-u-e-s-t_-t-o-o_-l-a-r-g-e/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-q-u-e-s-t_-t-o-o_-l-a-r-g-e/index.html new file mode 100644 index 00000000..b1d6f07a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-q-u-e-s-t_-t-o-o_-l-a-r-g-e/index.html @@ -0,0 +1,106 @@ + + + + + REQUEST_TOO_LARGE + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

REQUEST_TOO_LARGE

+

Request too large.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-s-u-c-c-e-s-s/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-s-u-c-c-e-s-s/index.html new file mode 100644 index 00000000..60e5232e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-s-u-c-c-e-s-s/index.html @@ -0,0 +1,106 @@ + + + + + SUCCESS + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SUCCESS

+

Request succeeded.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-t-i-m-e-o-u-t/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-t-i-m-e-o-u-t/index.html new file mode 100644 index 00000000..908f1ff9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-t-i-m-e-o-u-t/index.html @@ -0,0 +1,106 @@ + + + + + TIMEOUT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

TIMEOUT

+

Request timed out.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/index.html new file mode 100644 index 00000000..72b58a08 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/index.html @@ -0,0 +1,275 @@ + + + + + Status + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Status

+

Defines all the available statuses that a Response can carry.

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request succeeded.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request was redirected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Invalid request.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Caller doesn't have permission to access resource.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Resource not found.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request timed out.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request too large.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Internal service error.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Request cancelled by caller.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/value-of.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/value-of.html new file mode 100644 index 00000000..e8e6058d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/values.html new file mode 100644 index 00000000..ae475d69 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/body.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/body.html new file mode 100644 index 00000000..82ccec6c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/body.html @@ -0,0 +1,69 @@ + + + + + body + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

body

+
+

Parameters

body

Additional response payload as a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/equals.html new file mode 100644 index 00000000..cabce731 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/hash-code.html new file mode 100644 index 00000000..da0a405a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/index.html new file mode 100644 index 00000000..d30d1b0e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/index.html @@ -0,0 +1,221 @@ + + + + + Response + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Response

+

Defines the data model for a response to a request sent by a lens.

+
+
+
+
+

Parameters

+
+
request

Request that triggered this response.

status

Status of the response.

metadata

A map of named metadata associated with the response.

body

Additional response payload as a ByteArray.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all the available statuses that a Response can carry.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/metadata.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/metadata.html new file mode 100644 index 00000000..2e36753c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/metadata.html @@ -0,0 +1,69 @@ + + + + + metadata + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

metadata

+
+

Parameters

metadata

A map of named metadata associated with the response.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/request.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/request.html new file mode 100644 index 00000000..ae4457ce --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/request.html @@ -0,0 +1,69 @@ + + + + + request + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

request

+
+

Parameters

request

Request that triggered this response.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/status.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/status.html new file mode 100644 index 00000000..dad516c4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/status.html @@ -0,0 +1,69 @@ + + + + + status + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

status

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/to-string.html new file mode 100644 index 00000000..99c38b30 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/close.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/close.html new file mode 100644 index 00000000..c2f8546f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
abstract override fun close()

Closes all resources allocated for this RemoteApiService. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/index.html new file mode 100644 index 00000000..818e3830 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/index.html @@ -0,0 +1,211 @@ + + + + + RemoteApiService + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

RemoteApiService

+

Provides ability to handle remote API requests that originate within lenses. Lifecycle of a RemoteApiService is scoped to a lifecycle of a single lens. To provide RemoteApiService instances, register a RemoteApiService.Factory via the Builder.remoteApiServiceFactory method.

Since

1.13.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Call

Represents all the possible outcomes when RemoteApiService processes a Request.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides ability to attach utility functions to the RemoteApiService interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Factory

Creates instances of RemoteApiService scoped to a lifecycle of a single lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of RemoteApiService which ignores all requests.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Request(val id: String, val apiSpecId: String, val endpointId: String, val parameters: Map<String, String>, val body: ByteArray)

Defines the data model for a request sent by a lens.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines the data model for a response to a request sent by a lens.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()

Closes all resources allocated for this RemoteApiService. Overridden to indicate that calling close will not throw.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Attempts to process the request with one or multiple Responses sent back to the provided onResponse. The returned Call indicates how this RemoteApiService handled the request so that callers can act accordingly:

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/process.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/process.html new file mode 100644 index 00000000..5fc6169e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/process.html @@ -0,0 +1,69 @@ + + + + + process + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

process

+
+

Attempts to process the request with one or multiple Responses sent back to the provided onResponse. The returned Call indicates how this RemoteApiService handled the request so that callers can act accordingly:

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/get.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/get.html new file mode 100644 index 00000000..de7b4238 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/get.html @@ -0,0 +1,69 @@ + + + + + get + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

get

+
+

Submits a query for QueryCriteria to receive the most up-to-date results into the provided onResult callback. When querying for multiple groups via QueryCriteria.Available it is not guaranteed that results will contain data for all underlying lens group sources - some maybe empty in case of network errors etc. To avoid incomplete data, prefer continuous observation of a specific QueryCriteria through observe.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/index.html new file mode 100644 index 00000000..f648fcc0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/index.html @@ -0,0 +1,106 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+

Convenience implementation of Repository which always returns empty results for any submitted query.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submits a query for QueryCriteria to receive the most up-to-date results into the provided onResult callback. When querying for multiple groups via QueryCriteria.Available it is not guaranteed that results will contain data for all underlying lens group sources - some maybe empty in case of network errors etc. To avoid incomplete data, prefer continuous observation of a specific QueryCriteria through observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submits a query for QueryCriteria to receive results into the provided onResult callback. The callback is invoked every time there is a change in the underlying Repository data. The returned Closeable allows to cancel the ongoing subscription by calling Closeable.close. If Closeable is ignored then subscription is cancelled once LensesComponent is closed via LensesComponent.close or its parent.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/observe.html new file mode 100644 index 00000000..324404c4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Submits a query for QueryCriteria to receive results into the provided onResult callback. The callback is invoked every time there is a change in the underlying Repository data. The returned Closeable allows to cancel the ongoing subscription by calling Closeable.close. If Closeable is ignored then subscription is cancelled once LensesComponent is closed via LensesComponent.close or its parent.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html new file mode 100644 index 00000000..3ceaddb7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html @@ -0,0 +1,69 @@ + + + + + Available + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Available

+
+
fun Available(vararg groupIds: String)
fun Available(groupIds: Set<String>)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/equals.html new file mode 100644 index 00000000..ae338441 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/group-ids.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/group-ids.html new file mode 100644 index 00000000..eb7c91d2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/group-ids.html @@ -0,0 +1,69 @@ + + + + + groupIds + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

groupIds

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/hash-code.html new file mode 100644 index 00000000..78e7fc33 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/index.html new file mode 100644 index 00000000..cbfd1012 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/index.html @@ -0,0 +1,170 @@ + + + + + Available + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Available

+

Query for all available lenses in groups matching provided group IDs.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Available(vararg groupIds: String)
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Available(groupIds: Set<String>)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/to-string.html new file mode 100644 index 00000000..cc00a796 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/-by-id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/-by-id.html new file mode 100644 index 00000000..dd2e3288 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/-by-id.html @@ -0,0 +1,69 @@ + + + + + ById + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ById

+
+
fun ById(id: String, groupId: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/equals.html new file mode 100644 index 00000000..95d52196 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/group-id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/group-id.html new file mode 100644 index 00000000..7436ce19 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/group-id.html @@ -0,0 +1,69 @@ + + + + + groupId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

groupId

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/hash-code.html new file mode 100644 index 00000000..8ffd4ee9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/id.html new file mode 100644 index 00000000..c8d10459 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/index.html new file mode 100644 index 00000000..44dc843a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/index.html @@ -0,0 +1,170 @@ + + + + + ById + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ById

+

Query for a lens matching the provided id and groupId.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun ById(id: String, groupId: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/to-string.html new file mode 100644 index 00000000..46a57ad2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/index.html new file mode 100644 index 00000000..dc4b72d8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/index.html @@ -0,0 +1,130 @@ + + + + + QueryCriteria + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

QueryCriteria

+
sealed class QueryCriteria

Defines all possible ways this repository can be queried for lenses.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Query for all available lenses in groups matching provided group IDs.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Query for a lens matching the provided id and groupId.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/index.html new file mode 100644 index 00000000..909316a6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/index.html @@ -0,0 +1,123 @@ + + + + + None + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

None

+

Indicates that no lenses are available at the moment of querying.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/to-string.html new file mode 100644 index 00000000..4d887425 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html new file mode 100644 index 00000000..5c69a26e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html @@ -0,0 +1,69 @@ + + + + + Some + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Some

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/equals.html new file mode 100644 index 00000000..4c0ad645 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/hash-code.html new file mode 100644 index 00000000..732ba5b0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/index.html new file mode 100644 index 00000000..c1e1dcc4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/index.html @@ -0,0 +1,202 @@ + + + + + Some + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Some

+

Indicates that some lenses are available at the moment of querying. The lenses list is guaranteed to be non-empty.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/lenses.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/lenses.html new file mode 100644 index 00000000..4c9e6015 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/lenses.html @@ -0,0 +1,69 @@ + + + + + lenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lenses

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/to-string.html new file mode 100644 index 00000000..928bf298 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/index.html new file mode 100644 index 00000000..96fcc98e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/index.html @@ -0,0 +1,162 @@ + + + + + Result + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Result

+
sealed class Result

Defines all possible results that queries for lenses can yield.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Indicates that no lenses are available at the moment of querying.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Indicates that some lenses are available at the moment of querying. The lenses list is guaranteed to be non-empty.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+

Extensions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/get.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/get.html new file mode 100644 index 00000000..b5982a31 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/get.html @@ -0,0 +1,69 @@ + + + + + get + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

get

+
+

Submits a query for QueryCriteria to receive the most up-to-date results into the provided onResult callback. When querying for multiple groups via QueryCriteria.Available it is not guaranteed that results will contain data for all underlying lens group sources - some maybe empty in case of network errors etc. To avoid incomplete data, prefer continuous observation of a specific QueryCriteria through observe.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/index.html new file mode 100644 index 00000000..3e5ff7ea --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/index.html @@ -0,0 +1,166 @@ + + + + + Repository + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Repository

+
interface Repository

Provides ability to query lenses that are available to interact with by specific criteria.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience implementation of Repository which always returns empty results for any submitted query.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class QueryCriteria

Defines all possible ways this repository can be queried for lenses.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Result

Defines all possible results that queries for lenses can yield.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submits a query for QueryCriteria to receive the most up-to-date results into the provided onResult callback. When querying for multiple groups via QueryCriteria.Available it is not guaranteed that results will contain data for all underlying lens group sources - some maybe empty in case of network errors etc. To avoid incomplete data, prefer continuous observation of a specific QueryCriteria through observe.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submits a query for QueryCriteria to receive results into the provided onResult callback. The callback is invoked every time there is a change in the underlying Repository data. The returned Closeable allows to cancel the ongoing subscription by calling Closeable.close. If Closeable is ignored then subscription is cancelled once LensesComponent is closed via LensesComponent.close or its parent.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/observe.html new file mode 100644 index 00000000..bd20b1ec --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Submits a query for QueryCriteria to receive results into the provided onResult callback. The callback is invoked every time there is a change in the underlying Repository data. The returned Closeable allows to cancel the ongoing subscription by calling Closeable.close. If Closeable is ignored then subscription is cancelled once LensesComponent is closed via LensesComponent.close or its parent.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/audio.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/audio.html new file mode 100644 index 00000000..a336f0bf --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/audio.html @@ -0,0 +1,69 @@ + + + + + audio + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

audio

+
+

Provides control over the lenses audio. If this LensesComponent is closed then the returned Audio is expected to be no-op.

NOTE: by default lenses audio output is turned on.

Since

1.8.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/carousel.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/carousel.html new file mode 100644 index 00000000..cba01693 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/carousel.html @@ -0,0 +1,69 @@ + + + + + carousel + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

carousel

+
+

Provides a Carousel of lenses available to interact with during this component lifecycle. If this LensesComponent is closed or if this LensesComponent was not configured to enable carousel using LensesComponent.Builder.configureCarousel then the returned Carousel is expected to be no-op.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/close.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/close.html new file mode 100644 index 00000000..23138308 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
abstract override fun close()

Closes all resources allocated for this LensesComponent. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/index.html new file mode 100644 index 00000000..75bee296 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/index.html @@ -0,0 +1,408 @@ + + + + + LensesComponent + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LensesComponent

+

Provides access to all available features of lenses. Normally, an instance of a component is acquired through com.snap.camerakit.Session which manages the lifecycle of the component.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Audio

Provides control over the lenses audio.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Builder
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Cache

Provides ability to interact with lenses content cache used by LensesComponent.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Carousel

Provides ability to interact with lenses carousel feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureCarousel method.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Hints

Provides ability to interact with lens hints feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureHints method.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Lens

Defines the data model of a lens that is available to be used by LensesComponent exposed features.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface LoadingOverlay

Provides ability to interact with lens loading overlay feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureLoadingOverlay method. If enabled, loading overlay is shown when a lens that is being applied via Processor.apply or selected via Carousel is loading resources from network or other sources.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface MediaPicker

Provides ability to interact with lens media picker feature which can be enabled with Configuration supplied to LensesComponent.Builder.configureMediaPicker method. If enabled, media picker is shown when an applied lens requires media data and displays media items which MediaProcessor receives from MediaProcessor.Input.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Implementation of LensesComponent which does nothing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Preferences

Provides ability to interact with storage used by lenses to store user specific data such as game or on-boarding state, options etc.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Prefetcher

Provides ability to prefetch content of lenses before they are applied using a Processor. The amount of lenses content that gets prefetched is limited by the Cache.Configuration provided to LensesComponent.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Extension of ImageProcessor that allows to apply and remove lenses on top of the incoming image and audio input stream rendered to connected outputs.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides ability to handle remote API requests that originate within lenses. Lifecycle of a RemoteApiService is scoped to a lifecycle of a single lens. To provide RemoteApiService instances, register a RemoteApiService.Factory via the Builder.remoteApiServiceFactory method.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Repository

Provides ability to query lenses that are available to interact with by specific criteria.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()

Closes all resources allocated for this LensesComponent. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides control over the lenses audio. If this LensesComponent is closed then the returned Audio is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Carousel of lenses available to interact with during this component lifecycle. If this LensesComponent is closed or if this LensesComponent was not configured to enable carousel using LensesComponent.Builder.configureCarousel then the returned Carousel is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Preferences of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Preferences is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Prefetcher of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Prefetcher is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides lenses specific Processor which allows to process image and audio input with applied lenses while rendering results to connected outputs. If this LensesComponent is closed then the returned Processor is expected to be no-op.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Repository of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Repository is expected to be no-op.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/preferences.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/preferences.html new file mode 100644 index 00000000..9e5b036c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/preferences.html @@ -0,0 +1,69 @@ + + + + + preferences + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

preferences

+
+

Provides a Preferences of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Preferences is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/prefetcher.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/prefetcher.html new file mode 100644 index 00000000..8366d275 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/prefetcher.html @@ -0,0 +1,69 @@ + + + + + prefetcher + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

prefetcher

+
+

Provides a Prefetcher of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Prefetcher is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/processor.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/processor.html new file mode 100644 index 00000000..2fbad75c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/processor.html @@ -0,0 +1,69 @@ + + + + + processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processor

+
+

Provides lenses specific Processor which allows to process image and audio input with applied lenses while rendering results to connected outputs. If this LensesComponent is closed then the returned Processor is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/repository.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/repository.html new file mode 100644 index 00000000..b19f2a28 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-component/repository.html @@ -0,0 +1,69 @@ + + + + + repository + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

repository

+
+

Provides a Repository of lenses available to interact with during this component lifecycle. If this LensesComponent is closed then the returned Repository is expected to be no-op.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/index.html new file mode 100644 index 00000000..1d469416 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/index.html @@ -0,0 +1,91 @@ + + + + + LensesLaunchData + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LensesLaunchData

+

Convenience methods to create LensesComponent.Lens.LaunchData instances.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/new-builder.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/new-builder.html new file mode 100644 index 00000000..b3358dc4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/new-builder.html @@ -0,0 +1,69 @@ + + + + + newBuilder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

newBuilder

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/index.html new file mode 100644 index 00000000..07c52974 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/index.html @@ -0,0 +1,259 @@ + + + + + com.snap.camerakit.lenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Package-level declarations

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides access to all available features of lenses. Normally, an instance of a component is acquired through com.snap.camerakit.Session which manages the lifecycle of the component.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
Convenience methods to create LensesComponent.Lens.LaunchData instances.
+
+
+
+
+
+

Functions

+
+ + + + + + + + + + + + +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Identifies bundled lens group which which is optionally provided to CameraKit from assets.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated-idle.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated-idle.html new file mode 100644 index 00000000..269c1b98 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated-idle.html @@ -0,0 +1,69 @@ + + + + + whenActivatedIdle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenActivatedIdle

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated-with-lens.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated-with-lens.html new file mode 100644 index 00000000..aad151be --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated-with-lens.html @@ -0,0 +1,69 @@ + + + + + whenActivatedWithLens + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenActivatedWithLens

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated.html new file mode 100644 index 00000000..a6f69b2e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-activated.html @@ -0,0 +1,69 @@ + + + + + whenActivated + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenActivated

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-applied.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-applied.html new file mode 100644 index 00000000..e93cb4a3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-applied.html @@ -0,0 +1,69 @@ + + + + + whenApplied + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenApplied

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-deactivated.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-deactivated.html new file mode 100644 index 00000000..74f82219 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-deactivated.html @@ -0,0 +1,69 @@ + + + + + whenDeactivated + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenDeactivated

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-first-frame-processed.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-first-frame-processed.html new file mode 100644 index 00000000..bbce6faa --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-first-frame-processed.html @@ -0,0 +1,69 @@ + + + + + whenFirstFrameProcessed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenFirstFrameProcessed

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-has-first.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-has-first.html new file mode 100644 index 00000000..5daa25c1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-has-first.html @@ -0,0 +1,69 @@ + + + + + whenHasFirst + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenHasFirst

+
+

Notifies when LensesComponent.Repository has some available lenses calling back with the first one.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-has-some.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-has-some.html new file mode 100644 index 00000000..022a3a52 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-has-some.html @@ -0,0 +1,69 @@ + + + + + whenHasSome + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenHasSome

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-idle.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-idle.html new file mode 100644 index 00000000..df33ce5b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit.lenses/when-idle.html @@ -0,0 +1,69 @@ + + + + + whenIdle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

whenIdle

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/buffer.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/buffer.html new file mode 100644 index 00000000..3d526434 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/buffer.html @@ -0,0 +1,69 @@ + + + + + buffer + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

buffer

+
+
abstract val buffer: ByteArray

Audio data samples where each sample is encoded in PCM_16, stored in a ByteArray.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/index.html new file mode 100644 index 00000000..9c708103 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/index.html @@ -0,0 +1,123 @@ + + + + + Frame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Frame

+
interface Frame

Defines the properties of a single audio input Frame. The buffer in each Frame is mutable which allows to apply audio processing operations to the input audio before it gets written / played somewhere else.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val buffer: ByteArray

Audio data samples where each sample is encoded in PCM_16, stored in a ByteArray.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val samplesCount: Int

The count of samples present in the buffer. This is normally buffer.size / bytesPerChannel where bytesPerChannel = 2 for PCM_16 data.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/recycle.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/recycle.html new file mode 100644 index 00000000..9f10bcbb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/recycle.html @@ -0,0 +1,69 @@ + + + + + recycle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

recycle

+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/samples-count.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/samples-count.html new file mode 100644 index 00000000..8353ed36 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/samples-count.html @@ -0,0 +1,69 @@ + + + + + samplesCount + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

samplesCount

+
+
abstract val samplesCount: Int

The count of samples present in the buffer. This is normally buffer.size / bytesPerChannel where bytesPerChannel = 2 for PCM_16 data.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/buffer-size.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/buffer-size.html new file mode 100644 index 00000000..fe6415ca --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/buffer-size.html @@ -0,0 +1,69 @@ + + + + + bufferSize + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

bufferSize

+
+
abstract val bufferSize: Int

Size of audio data expected to be delivered per frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/channels.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/channels.html new file mode 100644 index 00000000..923dd528 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/channels.html @@ -0,0 +1,69 @@ + + + + + channels + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

channels

+
+
abstract val channels: Int

Number of channels in audio data.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/index.html new file mode 100644 index 00000000..a7234db2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/index.html @@ -0,0 +1,155 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the audio input source model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Frame

Defines the properties of a single audio input Frame. The buffer in each Frame is mutable which allows to apply audio processing operations to the input audio before it gets written / played somewhere else.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val bufferSize: Int

Size of audio data expected to be delivered per frame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val channels: Int

Number of channels in audio data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val sampleRate: Int

Number of samples for each audio channel per second, typically 44100Hz.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/sample-rate.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/sample-rate.html new file mode 100644 index 00000000..91eb167a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/sample-rate.html @@ -0,0 +1,69 @@ + + + + + sampleRate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

sampleRate

+
+
abstract val sampleRate: Int

Number of samples for each audio channel per second, typically 44100Hz.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/subscribe-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/subscribe-to.html new file mode 100644 index 00000000..8797d70b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/connect-input.html new file mode 100644 index 00000000..dabc2b10 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/index.html new file mode 100644 index 00000000..137867b8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-audio-processor/index.html @@ -0,0 +1,132 @@ + + + + + AudioProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

AudioProcessor

+

Defines a Processor that is able to take AudioProcessor.Input and run audio processing operations that analyze data to detect patterns and/or mutate the provided AudioProcessor.Input.Frames to apply effects such as filtering, pitch correction etc.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the audio input source model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-experimental/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-experimental/index.html new file mode 100644 index 00000000..41ff394a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-experimental/index.html @@ -0,0 +1,73 @@ + + + + + Experimental + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Experimental

+
annotation class Experimental

Indicates that the annotated feature is experimental: it may be removed, its signature or behavior may be changed without warning from one release to the next.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/-graphics.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/-graphics.html new file mode 100644 index 00000000..2fa396b6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/-graphics.html @@ -0,0 +1,69 @@ + + + + + Graphics + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Graphics

+
+
fun Graphics(message: String? = null, cause: Throwable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/index.html new file mode 100644 index 00000000..d232f03d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/index.html @@ -0,0 +1,245 @@ + + + + + Graphics + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Graphics

+
class Graphics(message: String? = null, cause: Throwable? = null) : ImageProcessor.Failure

A case when image processing fails due to graphics, most likely OpenGL, error. Normally unrecoverable, device specific failure which means that further image processing will always fail.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Graphics(message: String? = null, cause: Throwable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/index.html new file mode 100644 index 00000000..1cdef841 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-failure/index.html @@ -0,0 +1,258 @@ + + + + + Failure + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Failure

+
sealed class Failure : RuntimeException

Defines known failure modes of an image processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Graphics(message: String? = null, cause: Throwable? = null) : ImageProcessor.Failure

A case when image processing fails due to graphics, most likely OpenGL, error. Normally unrecoverable, device specific failure which means that further image processing will always fail.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/-backed-by-surface-texture.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/-backed-by-surface-texture.html new file mode 100644 index 00000000..becff148 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/-backed-by-surface-texture.html @@ -0,0 +1,69 @@ + + + + + BackedBySurfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurfaceTexture

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/index.html new file mode 100644 index 00000000..e7188166 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/index.html @@ -0,0 +1,230 @@ + + + + + BackedBySurfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurfaceTexture

+
abstract class BackedBySurfaceTexture(val surfaceTexture: SurfaceTexture) : ImageProcessor.Input

Convenience base Input that is backed by android.graphics.SurfaceTexture.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to read a Frame when notified by in a callback subscribed via subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val facingFront: Boolean

True indicates whether a Frame is facing front in relation to user that is observing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val height: Int

The expected height in pixels of a Frame that is read once available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val rotationDegrees: Int

The natural orientation of a Frame in relation to a device that is providing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val width: Int

The expected width in pixels of a Frame that is read once available.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/surface-texture.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/surface-texture.html new file mode 100644 index 00000000..7432f389 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/surface-texture.html @@ -0,0 +1,69 @@ + + + + + surfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

surfaceTexture

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/-s-u-r-f-a-c-e_-t-r-a-c-k-i-n-g/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/-s-u-r-f-a-c-e_-t-r-a-c-k-i-n-g/index.html new file mode 100644 index 00000000..2abf58dc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/-s-u-r-f-a-c-e_-t-r-a-c-k-i-n-g/index.html @@ -0,0 +1,106 @@ + + + + + SURFACE_TRACKING + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SURFACE_TRACKING

+

Provides tracking data such as positions of physical surfaces or depth images.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/index.html new file mode 100644 index 00000000..e1700c8d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/index.html @@ -0,0 +1,155 @@ + + + + + Capability + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Capability

+

Defines all capabilities that Input may provide in addition to image data.

Since

1.6.0

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides tracking data such as positions of physical surfaces or depth images.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/value-of.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/value-of.html new file mode 100644 index 00000000..57b334e3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/values.html new file mode 100644 index 00000000..061c19b7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-companion/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-companion/index.html new file mode 100644 index 00000000..cd2aa7ac --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Allows to attach extension functions to the Input interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/horizontal-field-of-view.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/horizontal-field-of-view.html new file mode 100644 index 00000000..60170c33 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/horizontal-field-of-view.html @@ -0,0 +1,69 @@ + + + + + horizontalFieldOfView + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

horizontalFieldOfView

+
+

The horizontal field of view in degrees of this image frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/index.html new file mode 100644 index 00000000..3986869c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/index.html @@ -0,0 +1,153 @@ + + + + + Frame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Frame

+
interface Frame

Defines the properties of a single image input Frame available from Input.readFrame.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

The horizontal field of view in degrees of this image frame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val timestamp: Long

Monotonically increasing timestamp of this frame in nanoseconds.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The 4x4 texture coordinate transform matrix of this image frame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The vertical field of view in degrees of this image frame.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/recycle.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/recycle.html new file mode 100644 index 00000000..959ce041 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/recycle.html @@ -0,0 +1,69 @@ + + + + + recycle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

recycle

+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/timestamp.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/timestamp.html new file mode 100644 index 00000000..b60621bf --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/timestamp.html @@ -0,0 +1,69 @@ + + + + + timestamp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

timestamp

+
+
abstract val timestamp: Long

Monotonically increasing timestamp of this frame in nanoseconds.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/transformation-matrix.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/transformation-matrix.html new file mode 100644 index 00000000..0a9374a9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/transformation-matrix.html @@ -0,0 +1,69 @@ + + + + + transformationMatrix + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

transformationMatrix

+
+

The 4x4 texture coordinate transform matrix of this image frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/vertical-field-of-view.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/vertical-field-of-view.html new file mode 100644 index 00000000..82ca4164 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/vertical-field-of-view.html @@ -0,0 +1,69 @@ + + + + + verticalFieldOfView + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

verticalFieldOfView

+
+

The vertical field of view in degrees of this image frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/-center.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/-center.html new file mode 100644 index 00000000..99792990 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/-center.html @@ -0,0 +1,69 @@ + + + + + Center + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Center

+
+
fun Center(aspectRatioNumerator: Int, aspectRatioDenominator: Int)

Parameters

aspectRatioNumerator

should be greater than 0.

aspectRatioDenominator

should be greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-denominator.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-denominator.html new file mode 100644 index 00000000..22bebd76 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-denominator.html @@ -0,0 +1,69 @@ + + + + + aspectRatioDenominator + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

aspectRatioDenominator

+
+

Parameters

aspectRatioDenominator

should be greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-numerator.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-numerator.html new file mode 100644 index 00000000..c943e002 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-numerator.html @@ -0,0 +1,69 @@ + + + + + aspectRatioNumerator + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

aspectRatioNumerator

+
+

Parameters

aspectRatioNumerator

should be greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/equals.html new file mode 100644 index 00000000..46678647 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/hash-code.html new file mode 100644 index 00000000..c64b1769 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/index.html new file mode 100644 index 00000000..e48d8c67 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/index.html @@ -0,0 +1,174 @@ + + + + + Center + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Center

+
class Center(val aspectRatioNumerator: Int, val aspectRatioDenominator: Int) : ImageProcessor.Input.Option.Crop

An option to crop each Input.Frame around the central point to match aspectRatioNumerator/aspectRatioDenominator aspect ratio.

+
+
+
+
+

Parameters

+
+
aspectRatioNumerator

should be greater than 0.

aspectRatioDenominator

should be greater than 0.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Center(aspectRatioNumerator: Int, aspectRatioDenominator: Int)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/to-string.html new file mode 100644 index 00000000..e2a71e67 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/index.html new file mode 100644 index 00000000..ee0f1eb8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/index.html @@ -0,0 +1,104 @@ + + + + + Crop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Crop

+

ImageProcessor should crop each Input.Frame before processing. Only a single Crop option can be passed while calling ImageProcessor.connectInput.

Since

1.12.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Center(val aspectRatioNumerator: Int, val aspectRatioDenominator: Int) : ImageProcessor.Input.Option.Crop

An option to crop each Input.Frame around the central point to match aspectRatioNumerator/aspectRatioDenominator aspect ratio.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-horizontally/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-horizontally/index.html new file mode 100644 index 00000000..866aeea2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-horizontally/index.html @@ -0,0 +1,73 @@ + + + + + MirrorFramesHorizontally + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MirrorFramesHorizontally

+

ImageProcessor should mirror each Input.Frame horizontally before processing.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-vertically/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-vertically/index.html new file mode 100644 index 00000000..8043fec3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-vertically/index.html @@ -0,0 +1,73 @@ + + + + + MirrorFramesVertically + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MirrorFramesVertically

+

ImageProcessor should mirror each Input.Frame vertically before processing.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/index.html new file mode 100644 index 00000000..1c132881 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/index.html @@ -0,0 +1,156 @@ + + + + + Option + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Option

+
sealed class Option

Defines possible Input usage options that ImageProcessor should consider when interacting with it.

Since

1.7.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

ImageProcessor should crop each Input.Frame before processing. Only a single Crop option can be passed while calling ImageProcessor.connectInput.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

ImageProcessor should mirror each Input.Frame horizontally before processing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

ImageProcessor should mirror each Input.Frame vertically before processing.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/index.html new file mode 100644 index 00000000..353d6532 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/index.html @@ -0,0 +1,243 @@ + + + + + Pausable + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Pausable

+

Defines an Input that provides an ability to pause and resume frame updates. Once done using an instance of Pausable, close must be called to avoid leaking resources.

Since

1.6.0

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun pause()

Pauses frame updates made available to listeners through subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to read a Frame when notified by in a callback subscribed via subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun resume()

Starts or resumes frame updates made available to listeners through subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val facingFront: Boolean

True indicates whether a Frame is facing front in relation to user that is observing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val height: Int

The expected height in pixels of a Frame that is read once available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val rotationDegrees: Int

The natural orientation of a Frame in relation to a device that is providing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val width: Int

The expected width in pixels of a Frame that is read once available.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/pause.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/pause.html new file mode 100644 index 00000000..786133be --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/pause.html @@ -0,0 +1,69 @@ + + + + + pause + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

pause

+
+
abstract fun pause()

Pauses frame updates made available to listeners through subscribeTo.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/resume.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/resume.html new file mode 100644 index 00000000..92146c0a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/resume.html @@ -0,0 +1,69 @@ + + + + + resume + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

resume

+
+
abstract fun resume()

Starts or resumes frame updates made available to listeners through subscribeTo.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/attach-to-gl-context.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/attach-to-gl-context.html new file mode 100644 index 00000000..d2c53785 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/attach-to-gl-context.html @@ -0,0 +1,69 @@ + + + + + attachToGlContext + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attachToGlContext

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/detach-from-gl-context.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/detach-from-gl-context.html new file mode 100644 index 00000000..e65306f2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/detach-from-gl-context.html @@ -0,0 +1,69 @@ + + + + + detachFromGlContext + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

detachFromGlContext

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/facing-front.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/facing-front.html new file mode 100644 index 00000000..d58b6eff --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/facing-front.html @@ -0,0 +1,69 @@ + + + + + facingFront + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

facingFront

+
+
abstract val facingFront: Boolean

True indicates whether a Frame is facing front in relation to user that is observing it.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/height.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/height.html new file mode 100644 index 00000000..4abfdd6a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/height.html @@ -0,0 +1,69 @@ + + + + + height + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

height

+
+
abstract val height: Int

The expected height in pixels of a Frame that is read once available.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/index.html new file mode 100644 index 00000000..a69c2a5b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/index.html @@ -0,0 +1,314 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the image input source model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract class BackedBySurfaceTexture(val surfaceTexture: SurfaceTexture) : ImageProcessor.Input

Convenience base Input that is backed by android.graphics.SurfaceTexture.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all capabilities that Input may provide in addition to image data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Allows to attach extension functions to the Input interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Frame

Defines the properties of a single image input Frame available from Input.readFrame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Option

Defines possible Input usage options that ImageProcessor should consider when interacting with it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines an Input that provides an ability to pause and resume frame updates. Once done using an instance of Pausable, close must be called to avoid leaking resources.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to read a Frame when notified by in a callback subscribed via subscribeTo.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val facingFront: Boolean

True indicates whether a Frame is facing front in relation to user that is observing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val height: Int

The expected height in pixels of a Frame that is read once available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val rotationDegrees: Int

The natural orientation of a Frame in relation to a device that is providing it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val width: Int

The expected width in pixels of a Frame that is read once available.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/read-frame.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/read-frame.html new file mode 100644 index 00000000..ee617f15 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/read-frame.html @@ -0,0 +1,69 @@ + + + + + readFrame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

readFrame

+
+

Allows to read a Frame when notified by in a callback subscribed via subscribeTo.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/rotation-degrees.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/rotation-degrees.html new file mode 100644 index 00000000..db427b87 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/rotation-degrees.html @@ -0,0 +1,69 @@ + + + + + rotationDegrees + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

rotationDegrees

+
+
abstract val rotationDegrees: Int

The natural orientation of a Frame in relation to a device that is providing it.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/subscribe-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/subscribe-to.html new file mode 100644 index 00000000..4fa62305 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onFrameAvailable to be notified when a new Frame is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/width.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/width.html new file mode 100644 index 00000000..a4d98bc3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-input/width.html @@ -0,0 +1,69 @@ + + + + + width + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

width

+
+
abstract val width: Int

The expected width in pixels of a Frame that is read once available.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/-backed-by-surface-texture.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/-backed-by-surface-texture.html new file mode 100644 index 00000000..4f035dd9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/-backed-by-surface-texture.html @@ -0,0 +1,69 @@ + + + + + BackedBySurfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurfaceTexture

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/index.html new file mode 100644 index 00000000..c609c354 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/index.html @@ -0,0 +1,155 @@ + + + + + BackedBySurfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurfaceTexture

+

Convenience base Output that is backed by android.graphics.SurfaceTexture.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Prepares a Frame to obtain information that is required for ImageProcessor to render.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The natural orientation of a Frame in relation to a device that is rendering it. If returned value is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to adjust the rendered output.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/purpose.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/purpose.html new file mode 100644 index 00000000..0201beac --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/purpose.html @@ -0,0 +1,69 @@ + + + + + purpose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

purpose

+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/surface-texture.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/surface-texture.html new file mode 100644 index 00000000..398b2566 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/surface-texture.html @@ -0,0 +1,69 @@ + + + + + surfaceTexture + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

surfaceTexture

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/-backed-by-surface.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/-backed-by-surface.html new file mode 100644 index 00000000..a69475eb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/-backed-by-surface.html @@ -0,0 +1,69 @@ + + + + + BackedBySurface + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurface

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/index.html new file mode 100644 index 00000000..10016538 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/index.html @@ -0,0 +1,155 @@ + + + + + BackedBySurface + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

BackedBySurface

+
abstract class BackedBySurface(val surface: Surface, val purpose: ImageProcessor.Output.Purpose) : ImageProcessor.Output

Convenience base Output that is backed by android.view.Surface.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Prepares a Frame to obtain information that is required for ImageProcessor to render.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The natural orientation of a Frame in relation to a device that is rendering it. If returned value is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to adjust the rendered output.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val surface: Surface
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/purpose.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/purpose.html new file mode 100644 index 00000000..694105c8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/purpose.html @@ -0,0 +1,69 @@ + + + + + purpose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

purpose

+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/surface.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/surface.html new file mode 100644 index 00000000..7e9a3cfb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/surface.html @@ -0,0 +1,69 @@ + + + + + surface + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

surface

+
+
open val surface: Surface
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-companion/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-companion/index.html new file mode 100644 index 00000000..f3700b08 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Allows to attach extension functions to the Input interface on implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/index.html new file mode 100644 index 00000000..c24dadb0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/index.html @@ -0,0 +1,108 @@ + + + + + Frame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Frame

+
interface Frame

Defines properties of a single image output Frame available from Output.writeFrame.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val timestamp: Long

A timestamp of this frame in nanoseconds.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/recycle.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/recycle.html new file mode 100644 index 00000000..691ca055 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/recycle.html @@ -0,0 +1,69 @@ + + + + + recycle + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

recycle

+
+
abstract fun recycle()

Allows to recycle the instance of this frame for a new frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/timestamp.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/timestamp.html new file mode 100644 index 00000000..183c3aa9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/timestamp.html @@ -0,0 +1,69 @@ + + + + + timestamp + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

timestamp

+
+
abstract val timestamp: Long

A timestamp of this frame in nanoseconds.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/-clear-on-disconnect.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/-clear-on-disconnect.html new file mode 100644 index 00000000..f2a88e9b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/-clear-on-disconnect.html @@ -0,0 +1,69 @@ + + + + + ClearOnDisconnect + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ClearOnDisconnect

+
+
fun ClearOnDisconnect(@ColorInt color: Int = Color.BLACK)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/color.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/color.html new file mode 100644 index 00000000..51d67450 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/color.html @@ -0,0 +1,69 @@ + + + + + color + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

color

+
+
val color: Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/equals.html new file mode 100644 index 00000000..2573d042 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/hash-code.html new file mode 100644 index 00000000..437d402c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/index.html new file mode 100644 index 00000000..6989a97f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/index.html @@ -0,0 +1,155 @@ + + + + + ClearOnDisconnect + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ClearOnDisconnect

+
class ClearOnDisconnect(@ColorInt val color: Int = Color.BLACK) : ImageProcessor.Output.Option

When ImageProcessor disconnects an Output, its contents should be cleared to the specified color. When not provided, the color is opaque black, by default.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun ClearOnDisconnect(@ColorInt color: Int = Color.BLACK)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val color: Int
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/to-string.html new file mode 100644 index 00000000..185d7eb8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-ignore-device-rotation/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-ignore-device-rotation/index.html new file mode 100644 index 00000000..820bbd91 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-ignore-device-rotation/index.html @@ -0,0 +1,73 @@ + + + + + IgnoreDeviceRotation + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

IgnoreDeviceRotation

+

When ImageProcessor renders an Output, the current device rotation should not be taken into account when applying the provided rotationDegrees to the output's final transformation.

Since

1.5.1

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/index.html new file mode 100644 index 00000000..1650e69a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/index.html @@ -0,0 +1,130 @@ + + + + + Option + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Option

+
sealed class Option

Defines possible Output usage options that ImageProcessor should consider when interacting with it.

Since

1.5.1

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class ClearOnDisconnect(@ColorInt val color: Int = Color.BLACK) : ImageProcessor.Output.Option

When ImageProcessor disconnects an Output, its contents should be cleared to the specified color. When not provided, the color is opaque black, by default.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

When ImageProcessor renders an Output, the current device rotation should not be taken into account when applying the provided rotationDegrees to the output's final transformation.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-p-r-e-v-i-e-w/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-p-r-e-v-i-e-w/index.html new file mode 100644 index 00000000..7e810a4b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-p-r-e-v-i-e-w/index.html @@ -0,0 +1,106 @@ + + + + + PREVIEW + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

PREVIEW

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-r-e-c-o-r-d-i-n-g/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-r-e-c-o-r-d-i-n-g/index.html new file mode 100644 index 00000000..04448514 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-r-e-c-o-r-d-i-n-g/index.html @@ -0,0 +1,106 @@ + + + + + RECORDING + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

RECORDING

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-s-n-a-p-s-h-o-t/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-s-n-a-p-s-h-o-t/index.html new file mode 100644 index 00000000..7f370bb7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-s-n-a-p-s-h-o-t/index.html @@ -0,0 +1,106 @@ + + + + + SNAPSHOT + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SNAPSHOT

+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/index.html new file mode 100644 index 00000000..9b473e30 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/index.html @@ -0,0 +1,185 @@ + + + + + Purpose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Purpose

+

Defines all known purposes that this output can be used for.

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/value-of.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/value-of.html new file mode 100644 index 00000000..5cd9f20c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/values.html new file mode 100644 index 00000000..69a7a7b0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/index.html new file mode 100644 index 00000000..942701b3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/index.html @@ -0,0 +1,239 @@ + + + + + Output + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Output

+
interface Output

Defines the image output model that is available to write to by a ImageProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract class BackedBySurface(val surface: Surface, val purpose: ImageProcessor.Output.Purpose) : ImageProcessor.Output

Convenience base Output that is backed by android.view.Surface.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Convenience base Output that is backed by android.graphics.SurfaceTexture.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Allows to attach extension functions to the Input interface on implementation side.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Frame

Defines properties of a single image output Frame available from Output.writeFrame.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Option

Defines possible Output usage options that ImageProcessor should consider when interacting with it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all known purposes that this output can be used for.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Prepares a Frame to obtain information that is required for ImageProcessor to render.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The natural orientation of a Frame in relation to a device that is rendering it. If returned value is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to adjust the rendered output.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/purpose.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/purpose.html new file mode 100644 index 00000000..30eadc5f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/purpose.html @@ -0,0 +1,69 @@ + + + + + purpose + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

purpose

+
+

Provides the single purpose of this output so that ImageProcessor can adjust its internal implementation to write image data optimized for it.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/rotation-degrees.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/rotation-degrees.html new file mode 100644 index 00000000..ac8efcf3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/rotation-degrees.html @@ -0,0 +1,69 @@ + + + + + rotationDegrees + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

rotationDegrees

+
+

The natural orientation of a Frame in relation to a device that is rendering it. If returned value is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to adjust the rendered output.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/write-frame.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/write-frame.html new file mode 100644 index 00000000..03ed6934 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/-output/write-frame.html @@ -0,0 +1,69 @@ + + + + + writeFrame + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

writeFrame

+
+

Prepares a Frame to obtain information that is required for ImageProcessor to render.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html new file mode 100644 index 00000000..f93709b4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.


Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

A set of options can be provided to inform this processor how it should manipulate the connected input.

Since

1.7.0

See also

for all available options.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html new file mode 100644 index 00000000..e6854978 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html @@ -0,0 +1,69 @@ + + + + + connectOutput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectOutput

+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

It is essential to manage the returned Closeable to avoid leaking resources.


Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

It is essential to manage the returned Closeable to avoid leaking resources.

A set of options can be provided to inform this processor how it should manipulate the connected output.

Since

1.5.1

See also

for all available options.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/index.html new file mode 100644 index 00000000..7082486c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/index.html @@ -0,0 +1,203 @@ + + + + + ImageProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ImageProcessor

+

Defines a Processor that is able to take ImageProcessor.Input, run some image processing operations on it and render the final result to ImageProcessor.Output.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Failure : RuntimeException

Defines known failure modes of an image processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the image input source model that is available to be read from by the processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Output

Defines the image output model that is available to write to by a ImageProcessor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/observe-required-capabilities.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/observe-required-capabilities.html new file mode 100644 index 00000000..0913afd6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-image-processor/observe-required-capabilities.html @@ -0,0 +1,69 @@ + + + + + observeRequiredCapabilities + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observeRequiredCapabilities

+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

When capabilities are requested client can connect different Input which provides those capabilities, or ignore that request. In case the capabilities request is ignored some image processing functionality may not work.

It is essential to manage the returned Closeable to avoid leaking resources.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/-prompt.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/-prompt.html new file mode 100644 index 00000000..f16f2dd5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/-prompt.html @@ -0,0 +1,69 @@ + + + + + Prompt + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Prompt

+
+
fun Prompt(id: String, message: String)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/equals.html new file mode 100644 index 00000000..237d2ae7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/hash-code.html new file mode 100644 index 00000000..690ec7ee --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/id.html new file mode 100644 index 00000000..d18d1714 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/id.html @@ -0,0 +1,69 @@ + + + + + id + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

id

+
+
val id: String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/index.html new file mode 100644 index 00000000..91b66a8c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/index.html @@ -0,0 +1,170 @@ + + + + + Prompt + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Prompt

+
class Prompt(val id: String, val message: String)

Defines the content in the form of a localized and HTML formatted message to prompt a user for a legal agreement. The provided id uniquely identifies the backing content of the message, it should be used as a key when saving user response and determining whether a user needs to be re-prompted instead of serving a saved response.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Prompt(id: String, message: String)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val id: String
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/message.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/message.html new file mode 100644 index 00000000..66efe6f5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/message.html @@ -0,0 +1,69 @@ + + + + + message + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

message

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/to-string.html new file mode 100644 index 00000000..8c72f5f6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-a-l-w-a-y-s/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-a-l-w-a-y-s/index.html new file mode 100644 index 00000000..6e7b1ffc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-a-l-w-a-y-s/index.html @@ -0,0 +1,106 @@ + + + + + ALWAYS + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ALWAYS

+

Force re-prompt to update user response.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-n-e-v-e-r/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-n-e-v-e-r/index.html new file mode 100644 index 00000000..c86c2183 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-n-e-v-e-r/index.html @@ -0,0 +1,106 @@ + + + + + NEVER + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

NEVER

+

No update is necessary, respond with a previous saved response, if any.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-w-h-e-n_-d-i-s-m-i-s-s-e-d_-o-r_-m-i-s-s-i-n-g/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-w-h-e-n_-d-i-s-m-i-s-s-e-d_-o-r_-m-i-s-s-i-n-g/index.html new file mode 100644 index 00000000..3035e9fc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-w-h-e-n_-d-i-s-m-i-s-s-e-d_-o-r_-m-i-s-s-i-n-g/index.html @@ -0,0 +1,106 @@ + + + + + WHEN_DISMISSED_OR_MISSING + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WHEN_DISMISSED_OR_MISSING

+

Force re-prompt to update user response only if it was previously dismissed or is missing.

+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/index.html new file mode 100644 index 00000000..c5aa1197 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/index.html @@ -0,0 +1,185 @@ + + + + + RequestUpdate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

RequestUpdate

+

Specifies when a LegalProcessor.Input implementation should re-prompt user to get a new response.

+
+
+
+
+

Entries

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

No update is necessary, respond with a previous saved response, if any.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Force re-prompt to update user response.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Force re-prompt to update user response only if it was previously dismissed or is missing.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Returns an array containing the constants of this enum type, in the order they're declared.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/value-of.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/value-of.html new file mode 100644 index 00000000..2d31e7ab --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/value-of.html @@ -0,0 +1,69 @@ + + + + + valueOf + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

valueOf

+
+

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

if this enum type has no constant with the specified name

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/values.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/values.html new file mode 100644 index 00000000..a034ba2e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/values.html @@ -0,0 +1,69 @@ + + + + + values + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

values

+
+

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/index.html new file mode 100644 index 00000000..8ce78e18 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/index.html @@ -0,0 +1,91 @@ + + + + + Accepted + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Accepted

+

User has accepted a prompt.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/to-string.html new file mode 100644 index 00000000..5c3f0c3e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/index.html new file mode 100644 index 00000000..6a4fb925 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/index.html @@ -0,0 +1,91 @@ + + + + + Dismissed + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Dismissed

+

User has declined or ignored a prompt.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/to-string.html new file mode 100644 index 00000000..b6d52dfa --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/index.html new file mode 100644 index 00000000..c87ab75b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/index.html @@ -0,0 +1,91 @@ + + + + + Missing + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Missing

+

No user response is available yet.

Since

1.8.3

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/to-string.html new file mode 100644 index 00000000..4a785a82 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/index.html new file mode 100644 index 00000000..02f762c9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/index.html @@ -0,0 +1,156 @@ + + + + + Result + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Result

+
sealed class Result

Represents all the available responses to a prompt produced by the LegalProcessor.Input.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

User has accepted a prompt.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

User has declined or ignored a prompt.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

No user response is available yet.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/index.html new file mode 100644 index 00000000..2643fe0e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/index.html @@ -0,0 +1,138 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the legal input model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Prompt(val id: String, val message: String)

Defines the content in the form of a localized and HTML formatted message to prompt a user for a legal agreement. The provided id uniquely identifies the backing content of the message, it should be used as a key when saving user response and determining whether a user needs to be re-prompted instead of serving a saved response.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Specifies when a LegalProcessor.Input implementation should re-prompt user to get a new response.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Result

Represents all the available responses to a prompt produced by the LegalProcessor.Input.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onResult to be notified when a new Result is available for this input. The subscriber specifies a Prompt that must be taken into account when presenting a UI or calling back with a previously saved user response for the provided unique Prompt.id. Even though a saved user response may exist for a specific Prompt.id when the requestUpdate option is RequestUpdate.ALWAYS it is expected that the underlying LegalProcessor.Input implementation will re-prompt user to get a new response. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/subscribe-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/subscribe-to.html new file mode 100644 index 00000000..23d80679 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onResult to be notified when a new Result is available for this input. The subscriber specifies a Prompt that must be taken into account when presenting a UI or calling back with a previously saved user response for the provided unique Prompt.id. Even though a saved user response may exist for a specific Prompt.id when the requestUpdate option is RequestUpdate.ALWAYS it is expected that the underlying LegalProcessor.Input implementation will re-prompt user to get a new response. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/connect-input.html new file mode 100644 index 00000000..4ab72dd8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/index.html new file mode 100644 index 00000000..31cb4209 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/index.html @@ -0,0 +1,151 @@ + + + + + LegalProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LegalProcessor

+

Defines a Processor that subscribes to LegalProcessor.Input to receive results from a user responding to a LegalProcessor.Input.Prompt for a legal agreement.

Since

1.8.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the legal input model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies the provided onResult callback when this LegalProcessor obtains a Input.Result until the returned Closeable is closed.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies the provided onResult callback when this LegalProcessor handles a Input.Result. When the requestUpdate option is LegalProcessor.Input.RequestUpdate.ALWAYS the processor will attempt to subscribe to a LegalProcessor.Input eagerly in order to obtain a Input.Result earlier than typically required.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/observe.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/observe.html new file mode 100644 index 00000000..fe178861 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/observe.html @@ -0,0 +1,69 @@ + + + + + observe + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

observe

+
+

Notifies the provided onResult callback when this LegalProcessor obtains a Input.Result until the returned Closeable is closed.

Since

1.8.3

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/wait-for.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/wait-for.html new file mode 100644 index 00000000..f19100f8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-legal-processor/wait-for.html @@ -0,0 +1,69 @@ + + + + + waitFor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

waitFor

+
+

Notifies the provided onResult callback when this LegalProcessor handles a Input.Result. When the requestUpdate option is LegalProcessor.Input.RequestUpdate.ALWAYS the processor will attempt to subscribe to a LegalProcessor.Input eagerly in order to obtain a Input.Result earlier than typically required.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/-tracking-requirements.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/-tracking-requirements.html new file mode 100644 index 00000000..c00264ab --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/-tracking-requirements.html @@ -0,0 +1,69 @@ + + + + + TrackingRequirements + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

TrackingRequirements

+
+
fun TrackingRequirements(updateInterval: Long, updateIntervalTimeUnit: TimeUnit)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/equals.html new file mode 100644 index 00000000..249df15d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/hash-code.html new file mode 100644 index 00000000..fcbe38f2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/index.html new file mode 100644 index 00000000..207bcf82 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/index.html @@ -0,0 +1,170 @@ + + + + + TrackingRequirements + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

TrackingRequirements

+
class TrackingRequirements(val updateInterval: Long, val updateIntervalTimeUnit: TimeUnit)

Defines a set of requirements that LocationProcessor expects to be satisfied by Location tracking implementation.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun TrackingRequirements(updateInterval: Long, updateIntervalTimeUnit: TimeUnit)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Fixed period of time that is used to refresh Location data, typically every few seconds. If the value is 0 then it is expected for Location data to be refreshed as fast as possible.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/to-string.html new file mode 100644 index 00000000..f4163a73 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval-time-unit.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval-time-unit.html new file mode 100644 index 00000000..46a8ba46 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval-time-unit.html @@ -0,0 +1,69 @@ + + + + + updateIntervalTimeUnit + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

updateIntervalTimeUnit

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval.html new file mode 100644 index 00000000..034992a8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval.html @@ -0,0 +1,69 @@ + + + + + updateInterval + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

updateInterval

+
+

Fixed period of time that is used to refresh Location data, typically every few seconds. If the value is 0 then it is expected for Location data to be refreshed as fast as possible.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/index.html new file mode 100644 index 00000000..0a7be109 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/index.html @@ -0,0 +1,108 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the current device Location model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class TrackingRequirements(val updateInterval: Long, val updateIntervalTimeUnit: TimeUnit)

Defines a set of requirements that LocationProcessor expects to be satisfied by Location tracking implementation.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun subscribeTo(trackingRequirements: LocationProcessor.Input.TrackingRequirements, onLocationAvailable: Consumer<Location>): Closeable

Subscribes to the provided onLocationAvailable to be notified when a new Location is available for this input. The subscriber provides its TrackingRequirements that must be taken into account when configuring location tracking implementation to make sure that subscriber receives Location data as expected. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/subscribe-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/subscribe-to.html new file mode 100644 index 00000000..c55080ae --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+
abstract fun subscribeTo(trackingRequirements: LocationProcessor.Input.TrackingRequirements, onLocationAvailable: Consumer<Location>): Closeable

Subscribes to the provided onLocationAvailable to be notified when a new Location is available for this input. The subscriber provides its TrackingRequirements that must be taken into account when configuring location tracking implementation to make sure that subscriber receives Location data as expected. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/connect-input.html new file mode 100644 index 00000000..42199a93 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/index.html new file mode 100644 index 00000000..a87f0bb5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-location-processor/index.html @@ -0,0 +1,132 @@ + + + + + LocationProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

LocationProcessor

+

Defines a Processor that subscribes to LocationProcessor.Input to receive information about the current device Location, when available.

Since

1.6.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the current device Location model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-all-original/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-all-original/index.html new file mode 100644 index 00000000..73e65c94 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-all-original/index.html @@ -0,0 +1,73 @@ + + + + + AllOriginal + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

AllOriginal

+

Deprecated

MediaProcessor enumerates all required media types explicitly, which makes this type redundant.

Generic type for original images and/or videos.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-original/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-original/index.html new file mode 100644 index 00000000..94cf0183 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-original/index.html @@ -0,0 +1,78 @@ + + + + + Original + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Original

+ +
+
+
+ +
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-with-face/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-with-face/index.html new file mode 100644 index 00000000..163ceb68 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-with-face/index.html @@ -0,0 +1,78 @@ + + + + + WithFace + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithFace

+ +
+
+
+ +
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/index.html new file mode 100644 index 00000000..2f239d09 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/index.html @@ -0,0 +1,130 @@ + + + + + Images + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Images

+

Defines all images-related media types.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/-original/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/-original/index.html new file mode 100644 index 00000000..ab457ec2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/-original/index.html @@ -0,0 +1,78 @@ + + + + + Original + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Original

+ +
+
+
+ +
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/index.html new file mode 100644 index 00000000..b00082fc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/index.html @@ -0,0 +1,104 @@ + + + + + Videos + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Videos

+

Defines all videos-related media types.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/index.html new file mode 100644 index 00000000..31f164db --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/index.html @@ -0,0 +1,156 @@ + + + + + MediaType + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MediaType

+
sealed class MediaType

Defines all media types that Processor can require.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Generic type for original images and/or videos.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all images-related media types.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all videos-related media types.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html new file mode 100644 index 00000000..41e49b33 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html @@ -0,0 +1,69 @@ + + + + + MultipleMediaItemsToPickFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MultipleMediaItemsToPickFrom

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/equals.html new file mode 100644 index 00000000..d85ebdad --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/hash-code.html new file mode 100644 index 00000000..6d58b4e9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/index.html new file mode 100644 index 00000000..afb87cda --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/index.html @@ -0,0 +1,185 @@ + + + + + MultipleMediaItemsToPickFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MultipleMediaItemsToPickFrom

+

Processor requires multiple media items of any of the mediaTypes so user can pick one for processing.

NOTE: for backward compatibility purposes, MediaType.AllOriginal is used as first item of a set when mediaTypes contains both MediaType.Videos.Original and MediaType.Images.Original types.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-type.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-type.html new file mode 100644 index 00000000..317093ec --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-type.html @@ -0,0 +1,69 @@ + + + + + mediaType + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

mediaType

+
+

Deprecated

MediaProcessor can require media items of the multiple media types, which makes this field lose it's actuality. Please use the 'mediaTypes' instead.

Represents the first item of the mediaTypes.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-types.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-types.html new file mode 100644 index 00000000..60f7a221 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-types.html @@ -0,0 +1,69 @@ + + + + + mediaTypes + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/to-string.html new file mode 100644 index 00000000..482a6404 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html new file mode 100644 index 00000000..70f464a3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html @@ -0,0 +1,69 @@ + + + + + SingleMediaItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SingleMediaItem

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/equals.html new file mode 100644 index 00000000..feb8b887 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/hash-code.html new file mode 100644 index 00000000..ae05a343 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/index.html new file mode 100644 index 00000000..4056fa46 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/index.html @@ -0,0 +1,185 @@ + + + + + SingleMediaItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SingleMediaItem

+

Processor requires a single media item of any of the mediaTypes.

NOTE: for backward compatibility purposes, MediaType.AllOriginal is used as first item of a set when mediaTypes contains both MediaType.Videos.Original and MediaType.Images.Original types.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-type.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-type.html new file mode 100644 index 00000000..612150a5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-type.html @@ -0,0 +1,69 @@ + + + + + mediaType + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

mediaType

+
+

Deprecated

MediaProcessor can require media items of the multiple media types, which makes this field lose it's actuality. Please use the 'mediaTypes' instead.

Represents the first item of the mediaTypes.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-types.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-types.html new file mode 100644 index 00000000..9374f98e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-types.html @@ -0,0 +1,69 @@ + + + + + mediaTypes + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

mediaTypes

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/to-string.html new file mode 100644 index 00000000..60c6233d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/index.html new file mode 100644 index 00000000..5c3f8a94 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/index.html @@ -0,0 +1,145 @@ + + + + + Requirements + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Requirements

+
sealed class Requirements

Defines all possible requirements to Media items that MediaProcessor expects to be satisfied by provided Result.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class MediaType

Defines all media types that Processor can require.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Processor requires multiple media items of any of the mediaTypes so user can pick one for processing.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/-with-media-items-to-pick-from.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/-with-media-items-to-pick-from.html new file mode 100644 index 00000000..4f350221 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/-with-media-items-to-pick-from.html @@ -0,0 +1,69 @@ + + + + + WithMediaItemsToPickFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithMediaItemsToPickFrom

+
+
fun WithMediaItemsToPickFrom(items: List<MediaProcessor.Media>, requestMore: Runnable? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/equals.html new file mode 100644 index 00000000..89f36efc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/hash-code.html new file mode 100644 index 00000000..487993d9 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/index.html new file mode 100644 index 00000000..8c51738b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/index.html @@ -0,0 +1,170 @@ + + + + + WithMediaItemsToPickFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithMediaItemsToPickFrom

+

Contains a list of Media items from which user can pick one for processing. requestMore can be provided optionally, when Input has more Media items available.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun WithMediaItemsToPickFrom(items: List<MediaProcessor.Media>, requestMore: Runnable? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val requestMore: Runnable? = null
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/items.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/items.html new file mode 100644 index 00000000..7f1560af --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/items.html @@ -0,0 +1,69 @@ + + + + + items + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

items

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/request-more.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/request-more.html new file mode 100644 index 00000000..a6cc81a0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/request-more.html @@ -0,0 +1,69 @@ + + + + + requestMore + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

requestMore

+
+
val requestMore: Runnable? = null
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/to-string.html new file mode 100644 index 00000000..0e1569ea --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/-with-single-media-item.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/-with-single-media-item.html new file mode 100644 index 00000000..88031120 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/-with-single-media-item.html @@ -0,0 +1,69 @@ + + + + + WithSingleMediaItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithSingleMediaItem

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/equals.html new file mode 100644 index 00000000..46e0ed9e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/hash-code.html new file mode 100644 index 00000000..1eb3fcec --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/index.html new file mode 100644 index 00000000..1ab2ecc5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/index.html @@ -0,0 +1,155 @@ + + + + + WithSingleMediaItem + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithSingleMediaItem

+

Contains a single Media item which will be used for processing.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/item.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/item.html new file mode 100644 index 00000000..f03df9f4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/item.html @@ -0,0 +1,69 @@ + + + + + item + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

item

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/to-string.html new file mode 100644 index 00000000..0080a5eb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/index.html new file mode 100644 index 00000000..ee20bf04 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/index.html @@ -0,0 +1,130 @@ + + + + + Result + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Result

+
sealed class Result

Defines all results accepted by MediaProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Contains a list of Media items from which user can pick one for processing. requestMore can be provided optionally, when Input has more Media items available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Contains a single Media item which will be used for processing.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/index.html new file mode 100644 index 00000000..5e136328 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/index.html @@ -0,0 +1,123 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the media input model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Requirements

Defines all possible requirements to Media items that MediaProcessor expects to be satisfied by provided Result.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Result

Defines all results accepted by MediaProcessor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onResult to be notified when a new Result is available for this input. The subscriber specifies its Requirements that must be taken into account when selecting media items to pass as a Result to make sure that subscriber receives expected media data. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/subscribe-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/subscribe-to.html new file mode 100644 index 00000000..b39e250a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onResult to be notified when a new Result is available for this input. The subscriber specifies its Requirements that must be taken into account when selecting media items to pass as a Result to make sure that subscriber receives expected media data. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/-face.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/-face.html new file mode 100644 index 00000000..7d995799 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/-face.html @@ -0,0 +1,69 @@ + + + + + Face + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Face

+
+
fun Face(x: Float, y: Float, width: Float, height: Float)

Parameters

x

the left position of the face.

y

the top position of the face.

width

the width of the face. Image width should be less or equal to 4096.

height

the height of the face. Image height should be less or equal to 4096.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/equals.html new file mode 100644 index 00000000..385b2837 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/hash-code.html new file mode 100644 index 00000000..89c26bcc --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/height.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/height.html new file mode 100644 index 00000000..977314d0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/height.html @@ -0,0 +1,69 @@ + + + + + height + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

height

+
+

Parameters

height

the height of the face. Image height should be less or equal to 4096.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/index.html new file mode 100644 index 00000000..3876b1af --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/index.html @@ -0,0 +1,204 @@ + + + + + Face + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Face

+
class Face(val x: Float, val y: Float, val width: Float, val height: Float)

A face detected in an image. All parameters values should be in 0, 1 range.

+
+
+
+
+

Parameters

+
+
x

the left position of the face.

y

the top position of the face.

width

the width of the face. Image width should be less or equal to 4096.

height

the height of the face. Image height should be less or equal to 4096.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Face(x: Float, y: Float, width: Float, height: Float)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val x: Float
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val y: Float
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/to-string.html new file mode 100644 index 00000000..0746fe05 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/width.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/width.html new file mode 100644 index 00000000..767b45c1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/width.html @@ -0,0 +1,69 @@ + + + + + width + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

width

+
+

Parameters

width

the width of the face. Image width should be less or equal to 4096.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/x.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/x.html new file mode 100644 index 00000000..051b90a8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/x.html @@ -0,0 +1,69 @@ + + + + + x + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

x

+
+
val x: Float

Parameters

x

the left position of the face.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/y.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/y.html new file mode 100644 index 00000000..1bfd64f3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/y.html @@ -0,0 +1,69 @@ + + + + + y + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

y

+
+
val y: Float

Parameters

y

the top position of the face.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/-by-uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/-by-uri.html new file mode 100644 index 00000000..cee8c9c6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/-by-uri.html @@ -0,0 +1,69 @@ + + + + + ByUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ByUri

+
+
fun ByUri(uri: Uri, width: Int, height: Int, rotationDegrees: Int = 0)

Parameters

uri

an identifier for the image content. There are the URI schemes accepted: file://, asset://, res:// and content://.

width

the width of the image in pixels.

height

the height of the image in pixels.

rotationDegrees

rotation that should be applied on the image after decoding.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/equals.html new file mode 100644 index 00000000..d616e86a --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/hash-code.html new file mode 100644 index 00000000..8a905691 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/height.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/height.html new file mode 100644 index 00000000..05101e34 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/height.html @@ -0,0 +1,69 @@ + + + + + height + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

height

+
+
val height: Int

Parameters

height

the height of the image in pixels.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/index.html new file mode 100644 index 00000000..0348a7e6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/index.html @@ -0,0 +1,204 @@ + + + + + ByUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ByUri

+
class ByUri(val uri: Uri, val width: Int, val height: Int, val rotationDegrees: Int = 0) : MediaProcessor.Media.Image.Original

An Image specified by Uri.

+
+
+
+
+

Parameters

+
+
uri

an identifier for the image content. There are the URI schemes accepted: file://, asset://, res:// and content://.

width

the width of the image in pixels.

height

the height of the image in pixels.

rotationDegrees

rotation that should be applied on the image after decoding.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun ByUri(uri: Uri, width: Int, height: Int, rotationDegrees: Int = 0)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val height: Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val uri: Uri
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val width: Int
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/rotation-degrees.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/rotation-degrees.html new file mode 100644 index 00000000..f78bc01f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/rotation-degrees.html @@ -0,0 +1,69 @@ + + + + + rotationDegrees + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

rotationDegrees

+
+

Parameters

rotationDegrees

rotation that should be applied on the image after decoding.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/to-string.html new file mode 100644 index 00000000..36bc5600 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/uri.html new file mode 100644 index 00000000..8f4c3a0c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
val uri: Uri

Parameters

uri

an identifier for the image content. There are the URI schemes accepted: file://, asset://, res:// and content://.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/width.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/width.html new file mode 100644 index 00000000..efd7c3a8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/width.html @@ -0,0 +1,69 @@ + + + + + width + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

width

+
+
val width: Int

Parameters

width

the width of the image in pixels.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/index.html new file mode 100644 index 00000000..ebd54249 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/index.html @@ -0,0 +1,104 @@ + + + + + Original + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Original

+

Defines all representations of an original Image.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class ByUri(val uri: Uri, val width: Int, val height: Int, val rotationDegrees: Int = 0) : MediaProcessor.Media.Image.Original

An Image specified by Uri.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/-with-face.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/-with-face.html new file mode 100644 index 00000000..0da87167 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/-with-face.html @@ -0,0 +1,69 @@ + + + + + WithFace + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithFace

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/equals.html new file mode 100644 index 00000000..a5acaf8b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/face.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/face.html new file mode 100644 index 00000000..733ee75e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/face.html @@ -0,0 +1,69 @@ + + + + + face + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

face

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/hash-code.html new file mode 100644 index 00000000..6f7f5e6b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/image.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/image.html new file mode 100644 index 00000000..03f49aed --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/image.html @@ -0,0 +1,69 @@ + + + + + image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

image

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/index.html new file mode 100644 index 00000000..b94180a3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/index.html @@ -0,0 +1,170 @@ + + + + + WithFace + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

WithFace

+

An Image which contains a face data in addition to the original image data.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+ +
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/to-string.html new file mode 100644 index 00000000..a499d205 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/index.html new file mode 100644 index 00000000..dac00838 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/index.html @@ -0,0 +1,145 @@ + + + + + Image + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Image

+

Defines all image media types accepted by MediaProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Face(val x: Float, val y: Float, val width: Float, val height: Float)

A face detected in an image. All parameters values should be in 0, 1 range.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all representations of an original Image.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

An Image which contains a face data in addition to the original image data.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/-by-uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/-by-uri.html new file mode 100644 index 00000000..1b3dfb64 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/-by-uri.html @@ -0,0 +1,69 @@ + + + + + ByUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ByUri

+
+
fun ByUri(uri: Uri, durationInMillis: Long)

Parameters

uri

an identifier for the video content. There are the URI schemes accepted: file://, asset://, res:// and content://.

durationInMillis

a video duration in milliseconds.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/duration-in-millis.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/duration-in-millis.html new file mode 100644 index 00000000..6aae8723 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/duration-in-millis.html @@ -0,0 +1,69 @@ + + + + + durationInMillis + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

durationInMillis

+
+

Parameters

durationInMillis

a video duration in milliseconds.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/equals.html new file mode 100644 index 00000000..5c8c8495 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/hash-code.html new file mode 100644 index 00000000..523a5096 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/index.html new file mode 100644 index 00000000..34b6fc5f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/index.html @@ -0,0 +1,174 @@ + + + + + ByUri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

ByUri

+
class ByUri(val uri: Uri, val durationInMillis: Long) : MediaProcessor.Media.Video.Original

A Video specified by Uri.

+
+
+
+
+

Parameters

+
+
uri

an identifier for the video content. There are the URI schemes accepted: file://, asset://, res:// and content://.

durationInMillis

a video duration in milliseconds.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun ByUri(uri: Uri, durationInMillis: Long)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val uri: Uri
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/to-string.html new file mode 100644 index 00000000..6b0c3e86 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/uri.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/uri.html new file mode 100644 index 00000000..9096ccd1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/uri.html @@ -0,0 +1,69 @@ + + + + + uri + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

uri

+
+
val uri: Uri

Parameters

uri

an identifier for the video content. There are the URI schemes accepted: file://, asset://, res:// and content://.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/index.html new file mode 100644 index 00000000..92ca15d0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/index.html @@ -0,0 +1,104 @@ + + + + + Original + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Original

+

Defines all representations of an original Video.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class ByUri(val uri: Uri, val durationInMillis: Long) : MediaProcessor.Media.Video.Original

A Video specified by Uri.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/index.html new file mode 100644 index 00000000..57dda87b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/index.html @@ -0,0 +1,104 @@ + + + + + Video + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Video

+

Defines all video media types accepted by MediaProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all representations of an original Video.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/index.html new file mode 100644 index 00000000..89202437 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/-media/index.html @@ -0,0 +1,130 @@ + + + + + Media + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Media

+
sealed class Media

Defines all media types accepted by MediaProcessor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all image media types accepted by MediaProcessor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines all video media types accepted by MediaProcessor.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/connect-input.html new file mode 100644 index 00000000..db8b7381 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/index.html new file mode 100644 index 00000000..25b46b2f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-media-processor/index.html @@ -0,0 +1,147 @@ + + + + + MediaProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

MediaProcessor

+

Defines a Processor that subscribes to MediaProcessor.Input to receive Media data.

Since

1.6.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the media input model that is available to be read from by the processor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
sealed class Media

Defines all media types accepted by MediaProcessor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-processor/index.html new file mode 100644 index 00000000..d52e26ee --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-processor/index.html @@ -0,0 +1,153 @@ + + + + + Processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Processor

+
interface Processor

Marker interface for all processors that can be attached to a specific Source.

+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/index.html new file mode 100644 index 00000000..3c4ef73c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/index.html @@ -0,0 +1,91 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the safe render area model that is available to be read from by the processor.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun subscribeTo(onSafeRenderAreaAvailable: Consumer<Rect>): Closeable

Subscribes to the provided onSafeRenderAreaAvailable to be notified when a new safe render area Rect is available for this input. The submitted Rect area is considered to be relative to the currently attached, largest ImageProcessor.Output's rendered area. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/subscribe-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/subscribe-to.html new file mode 100644 index 00000000..0d686211 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+
abstract fun subscribeTo(onSafeRenderAreaAvailable: Consumer<Rect>): Closeable

Subscribes to the provided onSafeRenderAreaAvailable to be notified when a new safe render area Rect is available for this input. The submitted Rect area is considered to be relative to the currently attached, largest ImageProcessor.Output's rendered area. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/connect-input.html new file mode 100644 index 00000000..55ed9674 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/index.html new file mode 100644 index 00000000..2f09cec3 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-safe-render-area-processor/index.html @@ -0,0 +1,132 @@ + + + + + SafeRenderAreaProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

SafeRenderAreaProcessor

+

Defines a Processor that subscribes to SafeRenderAreaProcessor.Input to receive updates on the area that the client considers to be safe for rendering content such as lens UI elements where they can not overlap or interfere with the client's own UI.

Since

1.6.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the safe render area model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/api-token.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/api-token.html new file mode 100644 index 00000000..79825ac2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/api-token.html @@ -0,0 +1,69 @@ + + + + + apiToken + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apiToken

+
+
abstract fun apiToken(value: String?): Session.Builder

Uses the provided API token value to associate with Session. When no value is provided then the application's Android manifest will be queried for com.snap.camerakit.api.token meta-data field. If no value is provided or found in the manifest, CameraKit will attempt to use built-in authorization token however it is scheduled to be removed in future releases, making this a required property to provide.

Since

1.8.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/application-id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/application-id.html new file mode 100644 index 00000000..4e73b6b7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/application-id.html @@ -0,0 +1,69 @@ + + + + + applicationId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

applicationId

+
+
abstract fun applicationId(value: String?): Session.Builder

Deprecated

Application ID does not need to be provided anymore.

Uses the provided application ID value to associate with Session.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html new file mode 100644 index 00000000..6eb0480f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html @@ -0,0 +1,69 @@ + + + + + attachTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attachTo

+
+
abstract fun attachTo(viewStub: ViewStub?): Session.Builder

Uses the provided viewStub with a non-null parent view to inflate view hierarchy of Session which includes rendering camera preview with lenses. If no viewStub is provided then Session does not attempt to render any views while the output of camera preview can be attached to using ImageProcessor.connectOutput.

Calling this method with a non-null viewStub value is equivalent to:

attachTo(viewStub, withPreview = true)

abstract fun attachTo(viewStub: ViewStub, withPreview: Boolean): Session.Builder

Uses the provided viewStub with a non-null parent view to inflate view hierarchy of Session. If withPreview is false then Session will not render camera preview within the inflated view hierarchy. To render camera preview, an output can be attached explicitly using ImageProcessor.connectOutput.

Since

1.4.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/audio-processor-source.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/audio-processor-source.html new file mode 100644 index 00000000..ab654e36 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/audio-processor-source.html @@ -0,0 +1,69 @@ + + + + + audioProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

audioProcessorSource

+
+

Uses the provided value to attach the Session audio processing pipeline to once built. The provided Source is normally attached to when audio input is required to either mutate it by applying audio effects (lenses voice changer) or/and process it to detect loudness, spectrum information etc. Providing the Source is optional as it is possible to connect input to Session.processor manually, once Session is built and running, if required.

NOTE: If no Source is provided, Session will attempt to use a default implementation backed by device's microphone input as long as android.Manifest.permission.RECORD_AUDIO permission is granted.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/build.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/build.html new file mode 100644 index 00000000..b352b247 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/build.html @@ -0,0 +1,69 @@ + + + + + build + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

build

+
+
abstract fun build(): Session

Builds an instance of Session with the configuration of this builder and starts the internal lifecycle which can be disposed by calling Session.close. If configuration issues are detected then it should be expected that this method will throw an exception or deliver it to an error handler provided via handleErrorsWith, if any.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-lenses.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-lenses.html new file mode 100644 index 00000000..9f45084e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-lenses.html @@ -0,0 +1,69 @@ + + + + + configureLenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureLenses

+
+

Allows to pre-configure LensesComponent with options that are applied to build the final LensesComponent available through Session.lenses.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-with.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-with.html new file mode 100644 index 00000000..27615bb2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/configure-with.html @@ -0,0 +1,69 @@ + + + + + configureWith + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

configureWith

+
+
abstract fun configureWith(key: String, value: String): Session.Builder

Uses the provided key associated with a value to configure additional Session parameters which are typically internal and/or experimental.

NOTE: Use only as directed by CameraKit developer support contact.

Since

1.8.3

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/handle-errors-with.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/handle-errors-with.html new file mode 100644 index 00000000..d6b9a7e4 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/handle-errors-with.html @@ -0,0 +1,69 @@ + + + + + handleErrorsWith + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

handleErrorsWith

+
+
abstract fun handleErrorsWith(errorHandler: Consumer<Throwable>): Session.Builder

Allows to provide a custom error handler that will be notified when this session and/or its sub-components encounter issues that are most likely unrecoverable. If no custom error handler is provided here, then all errors will be re-thrown to the main thread, leading to an immediate crash.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/image-processor-source.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/image-processor-source.html new file mode 100644 index 00000000..a7c2fb21 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/image-processor-source.html @@ -0,0 +1,69 @@ + + + + + imageProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

imageProcessorSource

+
+

Uses the provided value to attach the Session image processing pipeline to once built. The provided Source will be attached to as soon as Session is created and de-attached from once the Session is closed. Providing a Source is optional as it is possible to connect input to Session.processor manually, if required.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/index.html new file mode 100644 index 00000000..b064d06e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/index.html @@ -0,0 +1,286 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Builder

+
interface Builder
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun apiToken(value: String?): Session.Builder

Uses the provided API token value to associate with Session. When no value is provided then the application's Android manifest will be queried for com.snap.camerakit.api.token meta-data field. If no value is provided or found in the manifest, CameraKit will attempt to use built-in authorization token however it is scheduled to be removed in future releases, making this a required property to provide.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun applicationId(value: String?): Session.Builder

Uses the provided application ID value to associate with Session.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun attachTo(viewStub: ViewStub?): Session.Builder

Uses the provided viewStub with a non-null parent view to inflate view hierarchy of Session which includes rendering camera preview with lenses. If no viewStub is provided then Session does not attempt to render any views while the output of camera preview can be attached to using ImageProcessor.connectOutput.

abstract fun attachTo(viewStub: ViewStub, withPreview: Boolean): Session.Builder

Uses the provided viewStub with a non-null parent view to inflate view hierarchy of Session. If withPreview is false then Session will not render camera preview within the inflated view hierarchy. To render camera preview, an output can be attached explicitly using ImageProcessor.connectOutput.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session audio processing pipeline to once built. The provided Source is normally attached to when audio input is required to either mutate it by applying audio effects (lenses voice changer) or/and process it to detect loudness, spectrum information etc. Providing the Source is optional as it is possible to connect input to Session.processor manually, once Session is built and running, if required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun build(): Session

Builds an instance of Session with the configuration of this builder and starts the internal lifecycle which can be disposed by calling Session.close. If configuration issues are detected then it should be expected that this method will throw an exception or deliver it to an error handler provided via handleErrorsWith, if any.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Allows to pre-configure LensesComponent with options that are applied to build the final LensesComponent available through Session.lenses.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun configureWith(key: String, value: String): Session.Builder

Uses the provided key associated with a value to configure additional Session parameters which are typically internal and/or experimental.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun handleErrorsWith(errorHandler: Consumer<Throwable>): Session.Builder

Allows to provide a custom error handler that will be notified when this session and/or its sub-components encounter issues that are most likely unrecoverable. If no custom error handler is provided here, then all errors will be re-thrown to the main thread, leading to an immediate crash.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session image processing pipeline to once built. The provided Source will be attached to as soon as Session is created and de-attached from once the Session is closed. Providing a Source is optional as it is possible to connect input to Session.processor manually, if required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session legal processing pipeline to once built. The provided Source is normally attached to when legal prompts are to be presented and de-attached once legal prompt response is obtained.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session optional location data processing pipeline to once built. The provided Source is normally attached to when location data is required to be presented as part of image processing and de-attached once the location data is not needed anymore. Providing the Source is optional as location data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of location data is to enable certain types of location specific content such as Landmarker lenses that augment real life objects pinned to geographic co-ordinates.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session optional media data processing pipeline to once built. The provided Source is normally attached to when media data is required to be presented as part of image processing and de-attached once the media data is not needed anymore. Providing the Source is optional as media data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of media data is to enable certain content such as Image Picker lenses.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session optional safe render area processing pipeline to once built. The provided Source is normally attached to as soon as the Session is built and de-attached when Session is closed. Providing the Source is optional however certain content such as UI elements in lenses will be rendered without any consideration for the client's UI, possibly interfering with it, when no Source is provided.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Uses the provided value to attach the Session optional user data processing pipeline to once built. The provided Source is normally attached to when user data is required to be presented as part of image processing and de-attached once the user data is not needed anymore. Providing the Source is optional as user data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of user data is to get extra personalization in generated content such as displaying user name in lenses.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/legal-processor-source.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/legal-processor-source.html new file mode 100644 index 00000000..91e08a43 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/legal-processor-source.html @@ -0,0 +1,69 @@ + + + + + legalProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

legalProcessorSource

+
+

Uses the provided value to attach the Session legal processing pipeline to once built. The provided Source is normally attached to when legal prompts are to be presented and de-attached once legal prompt response is obtained.

NOTE: The Source provided via this method is only considered if the host application has been granted a special permission which can be obtained from the CameraKit developer support contact.

Since

1.8.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/location-processor-source.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/location-processor-source.html new file mode 100644 index 00000000..481267a6 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/location-processor-source.html @@ -0,0 +1,69 @@ + + + + + locationProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

locationProcessorSource

+
+

Uses the provided value to attach the Session optional location data processing pipeline to once built. The provided Source is normally attached to when location data is required to be presented as part of image processing and de-attached once the location data is not needed anymore. Providing the Source is optional as location data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of location data is to enable certain types of location specific content such as Landmarker lenses that augment real life objects pinned to geographic co-ordinates.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/media-processor-source.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/media-processor-source.html new file mode 100644 index 00000000..de7af435 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/media-processor-source.html @@ -0,0 +1,69 @@ + + + + + mediaProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

mediaProcessorSource

+
+

Uses the provided value to attach the Session optional media data processing pipeline to once built. The provided Source is normally attached to when media data is required to be presented as part of image processing and de-attached once the media data is not needed anymore. Providing the Source is optional as media data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of media data is to enable certain content such as Image Picker lenses.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/safe-render-area-processor-source.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/safe-render-area-processor-source.html new file mode 100644 index 00000000..1711f7e1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/safe-render-area-processor-source.html @@ -0,0 +1,69 @@ + + + + + safeRenderAreaProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

safeRenderAreaProcessorSource

+
+

Uses the provided value to attach the Session optional safe render area processing pipeline to once built. The provided Source is normally attached to as soon as the Session is built and de-attached when Session is closed. Providing the Source is optional however certain content such as UI elements in lenses will be rendered without any consideration for the client's UI, possibly interfering with it, when no Source is provided.

Since

1.6.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/user-processor-source.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/user-processor-source.html new file mode 100644 index 00000000..1d038bf0 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-builder/user-processor-source.html @@ -0,0 +1,69 @@ + + + + + userProcessorSource + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

userProcessorSource

+
+

Uses the provided value to attach the Session optional user data processing pipeline to once built. The provided Source is normally attached to when user data is required to be presented as part of image processing and de-attached once the user data is not needed anymore. Providing the Source is optional as user data is optional, it does not change the any aspect of business logic. The main advantage of providing the Source of user data is to get extra personalization in generated content such as displaying user name in lenses.

Since

1.1.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-companion/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-companion/index.html new file mode 100644 index 00000000..ecce8c78 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides a way for implementations to attach static extension functions to the Session interface for better discoverability. It is expected that implementation will extend this object with methods to instantiate a Builder and similar.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-processor/index.html new file mode 100644 index 00000000..415fe865 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/-processor/index.html @@ -0,0 +1,151 @@ + + + + + Processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Processor

+ +
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided output to this processor and returns a Closeable to release the connection when required. Similarly to connectInput, it is not guaranteed that the provided output will receive results as soon as it is connected, the processor may do it async.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies the provided onResult callback when this LegalProcessor obtains a Input.Result until the returned Closeable is closed.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Takes in onCapabilitiesRequested that will be notified when image processing operations require additional data from connected Input. Right after observeRequiredCapabilities is called onCapabilitiesRequested consumer will be invoked on the caller thread with the current set of required capabilities. emptySet is used to represent that additional capabilities aren't required.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Notifies the provided onResult callback when this LegalProcessor handles a Input.Result. When the requestUpdate option is LegalProcessor.Input.RequestUpdate.ALWAYS the processor will attempt to subscribe to a LegalProcessor.Input eagerly in order to obtain a Input.Result earlier than typically required.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/adjustments.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/adjustments.html new file mode 100644 index 00000000..00238d52 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/adjustments.html @@ -0,0 +1,69 @@ + + + + + adjustments + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

adjustments

+
+

Provides an AdjustmentsComponent that contains all accessible features of adjustments. The returned AdjustmentsComponent can be closed to release resources however it is not necessary to do it explicitly as calling Session.close will also close the underlying AdjustmentsComponent.

Since

1.12.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/close.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/close.html new file mode 100644 index 00000000..e3f87667 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/close.html @@ -0,0 +1,69 @@ + + + + + close + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

close

+
+
abstract override fun close()

Closes all resources allocated for this Session. Overridden to indicate that calling close will not throw.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/index.html new file mode 100644 index 00000000..9d0f5233 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/index.html @@ -0,0 +1,185 @@ + + + + + Session + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Session

+
interface Session : Closeable

Entry point to all CameraKit features. To obtain Session implementations must provide methods to get a new instance of Builder which exposes options to customize Session instance once it is built by calling Builder.build. Once done using an instance of Session, Session.close must be called to avoid leaking resources.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Builder
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides a way for implementations to attach static extension functions to the Session interface for better discoverability. It is expected that implementation will extend this object with methods to instantiate a Builder and similar.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+ +
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract override fun close()

Closes all resources allocated for this Session. Overridden to indicate that calling close will not throw.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides an AdjustmentsComponent that contains all accessible features of adjustments. The returned AdjustmentsComponent can be closed to release resources however it is not necessary to do it explicitly as calling Session.close will also close the underlying AdjustmentsComponent.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract val lenses: LensesComponent

Provides a LensesComponent that contains all accessible features of lenses. The returned LensesComponent can be closed to release resources however it is not necessary to do it explicitly as calling Session.close will also close the underlying LensesComponent.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Provides a Processor to run this Session's image, audio and other data processing operations over a connected input with the results observed through any connected outputs. If no input is connected then it is expected that certain Session features such as lenses will produce no results as they require continuous input frames to process and produce output frames.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/lenses.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/lenses.html new file mode 100644 index 00000000..a7075d4d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/lenses.html @@ -0,0 +1,69 @@ + + + + + lenses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lenses

+
+
abstract val lenses: LensesComponent

Provides a LensesComponent that contains all accessible features of lenses. The returned LensesComponent can be closed to release resources however it is not necessary to do it explicitly as calling Session.close will also close the underlying LensesComponent.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/processor.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/processor.html new file mode 100644 index 00000000..08275b62 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-session/processor.html @@ -0,0 +1,69 @@ + + + + + processor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processor

+
+

Provides a Processor to run this Session's image, audio and other data processing operations over a connected input with the results observed through any connected outputs. If no input is connected then it is expected that certain Session features such as lenses will produce no results as they require continuous input frames to process and produce output frames.

To simplify management of input connection to this processor, Sources for ImageProcessor, AudioProcessor and other processors can be provided to Builder.imageProcessorSource and Builder.audioProcessorSource when configuring a new Session.

NOTE: Actual processing of any inputs and outputs connected to this processor is delegated to a multiple of underlying implementations such as LensesComponent.Processor and AdjustmentsComponent.Processor.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/attach.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/attach.html new file mode 100644 index 00000000..839fec77 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/attach.html @@ -0,0 +1,69 @@ + + + + + attach + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attach

+
+
open override fun attach(processor: Processor): Closeable

Attaches the provided processor and returns a Closeable to release the connection once required. The source does not need to guarantee that the provided processor will be connected to as soon as attached since the the source may need to pull input data asynchronously.

It is essential to managed to returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/get.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/get.html new file mode 100644 index 00000000..bec42e76 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/get.html @@ -0,0 +1,69 @@ + + + + + get + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

get

+
+
fun <P : Processor> get(): Source<P>

Provides a generic Source which does nothing.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/index.html new file mode 100644 index 00000000..05b600b8 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/-noop/index.html @@ -0,0 +1,106 @@ + + + + + Noop + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Noop

+
object Noop : Source<Processor>

Convenience implementation of Source which does nothing when a Processor is provided to be attached.

+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun attach(processor: Processor): Closeable

Attaches the provided processor and returns a Closeable to release the connection once required. The source does not need to guarantee that the provided processor will be connected to as soon as attached since the the source may need to pull input data asynchronously.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : Processor> get(): Source<P>

Provides a generic Source which does nothing.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/attach.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/attach.html new file mode 100644 index 00000000..871e6c6f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/attach.html @@ -0,0 +1,69 @@ + + + + + attach + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

attach

+
+
abstract fun attach(processor: P): Closeable

Attaches the provided processor and returns a Closeable to release the connection once required. The source does not need to guarantee that the provided processor will be connected to as soon as attached since the the source may need to pull input data asynchronously.

It is essential to managed to returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/index.html new file mode 100644 index 00000000..9fabb2ec --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-source/index.html @@ -0,0 +1,121 @@ + + + + + Source + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Source

+
interface Source<P : Processor>

Defines a provider of generic inputs that a Processor of type P can be attached to process over.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Noop : Source<Processor>

Convenience implementation of Source which does nothing when a Processor is provided to be attached.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
abstract fun attach(processor: P): Closeable

Attaches the provided processor and returns a Closeable to release the connection once required. The source does not need to guarantee that the provided processor will be connected to as soon as attached since the the source may need to pull input data asynchronously.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html new file mode 100644 index 00000000..35c07dad --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html @@ -0,0 +1,69 @@ + + + + + UnauthorizedApplicationException + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UnauthorizedApplicationException

+
+
fun UnauthorizedApplicationException(applicationId: String, apiToken: String, packageName: String?)


fun UnauthorizedApplicationException(applicationId: String, packageName: String?)

Deprecated

Application ID is not available anymore. Please use the constructor which takes explicit apiToken instead.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/api-token.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/api-token.html new file mode 100644 index 00000000..159e9792 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/api-token.html @@ -0,0 +1,69 @@ + + + + + apiToken + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

apiToken

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/application-id.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/application-id.html new file mode 100644 index 00000000..54f3fd18 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/application-id.html @@ -0,0 +1,69 @@ + + + + + applicationId + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

applicationId

+
+

Deprecated

Application ID is not available anymore.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/equals.html new file mode 100644 index 00000000..16ad3096 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/hash-code.html new file mode 100644 index 00000000..8a28a232 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/index.html new file mode 100644 index 00000000..8e9a9ff2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/index.html @@ -0,0 +1,335 @@ + + + + + UnauthorizedApplicationException + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UnauthorizedApplicationException

+
class UnauthorizedApplicationException(val applicationId: String, val apiToken: String, val packageName: String?) : RuntimeException

If application with a specific ID and package name is not authorized to use CameraKit this exception will be thrown, normally ending up in the error handler provided via Session.Builder.handleErrorsWith.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun UnauthorizedApplicationException(applicationId: String, packageName: String?)
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun UnauthorizedApplicationException(applicationId: String, apiToken: String, packageName: String?)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val cause: Throwable?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open val message: String?
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/package-name.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/package-name.html new file mode 100644 index 00000000..e3cf7c01 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/package-name.html @@ -0,0 +1,69 @@ + + + + + packageName + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

packageName

+
+ +
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/-user.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/-user.html new file mode 100644 index 00000000..02549f94 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/-user.html @@ -0,0 +1,69 @@ + + + + + User + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

User

+
+
fun User(displayName: String? = null, birthDate: Date? = null)
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/birth-date.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/birth-date.html new file mode 100644 index 00000000..aee6fc5b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/birth-date.html @@ -0,0 +1,69 @@ + + + + + birthDate + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

birthDate

+
+
val birthDate: Date? = null

Optional birth date of the current user.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/display-name.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/display-name.html new file mode 100644 index 00000000..d4a17733 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/display-name.html @@ -0,0 +1,69 @@ + + + + + displayName + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

displayName

+
+
val displayName: String? = null

Optional name of the current user.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/equals.html new file mode 100644 index 00000000..bb5ce387 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/hash-code.html new file mode 100644 index 00000000..80ee4e19 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/index.html new file mode 100644 index 00000000..e2e793e7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/index.html @@ -0,0 +1,170 @@ + + + + + User + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

User

+
class User(val displayName: String? = null, val birthDate: Date? = null)

Defines the current user properties available to process, typically used for presentation purposes.

+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun User(displayName: String? = null, birthDate: Date? = null)
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val birthDate: Date? = null

Optional birth date of the current user.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val displayName: String? = null

Optional name of the current user.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/to-string.html new file mode 100644 index 00000000..89944f22 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/index.html new file mode 100644 index 00000000..dcf5139e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/index.html @@ -0,0 +1,108 @@ + + + + + Input + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Input

+
interface Input

Defines the current user model that is available to be read from by the processor.

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
class User(val displayName: String? = null, val birthDate: Date? = null)

Defines the current user properties available to process, typically used for presentation purposes.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Subscribes to the provided onUserAvailable to be notified when a new User is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/subscribe-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/subscribe-to.html new file mode 100644 index 00000000..07e65163 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/-input/subscribe-to.html @@ -0,0 +1,69 @@ + + + + + subscribeTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

subscribeTo

+
+

Subscribes to the provided onUserAvailable to be notified when a new User is available for this input. The returned Closeable must be closed when done working with this input otherwise underlying resources will be leaked.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/connect-input.html new file mode 100644 index 00000000..4f541e24 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

It is essential to manage the returned Closeable to avoid leaking resources.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/index.html new file mode 100644 index 00000000..7316b3d1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-user-processor/index.html @@ -0,0 +1,132 @@ + + + + + UserProcessor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

UserProcessor

+

Defines a Processor that subscribes to UserProcessor.Input to receive information about the current user, when available.

Since

1.1.0

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Input

Defines the current user model that is available to be read from by the processor.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Connects the provided input to this processor and returns a Closeable to release the connection when required. Normally, processing of the provided input starts instantly however certain processors may do it async so it is not guaranteed that any work will be done as soon as input is connected.

+
+
+
+
+
+

Inheritors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/-companion/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/-companion/index.html new file mode 100644 index 00000000..32c20f62 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/-companion/index.html @@ -0,0 +1,73 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Companion

+
object Companion

Provides ability to attach Version instantiation functions on the implementation side.

+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/-version.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/-version.html new file mode 100644 index 00000000..6352bfed --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/-version.html @@ -0,0 +1,69 @@ + + + + + Version + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Version

+
+
fun Version(major: Int, minor: Int, patch: Int, qualifier: String? = null)

Parameters

major

An Int which must be equal or greater than 0.

minor

An Int which must be equal or greater than 0.

patch

An Int which must be equal or greater than 0.

qualifier

An optional String that contains pre-release and/or build metadata version information.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/compare-to.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/compare-to.html new file mode 100644 index 00000000..554497bb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/compare-to.html @@ -0,0 +1,69 @@ + + + + + compareTo + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

compareTo

+
+
open operator override fun compareTo(other: Version): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/equals.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/equals.html new file mode 100644 index 00000000..0ade140c --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/equals.html @@ -0,0 +1,69 @@ + + + + + equals + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/hash-code.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/hash-code.html new file mode 100644 index 00000000..9f45c360 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/hash-code.html @@ -0,0 +1,69 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/index.html new file mode 100644 index 00000000..0d506452 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/index.html @@ -0,0 +1,236 @@ + + + + + Version + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Version

+
class Version @JvmOverloads constructor(val major: Int, val minor: Int, val patch: Int, val qualifier: String? = null) : Comparable<Version>

Represents a version of the CameraKit library. Versions are Comparable between each other by following the SemVer 2.0.0 specification.

Since

1.14.0

+
+
+
+
+

Parameters

+
+
major

An Int which must be equal or greater than 0.

minor

An Int which must be equal or greater than 0.

patch

An Int which must be equal or greater than 0.

qualifier

An optional String that contains pre-release and/or build metadata version information.

+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun Version(major: Int, minor: Int, patch: Int, qualifier: String? = null)
+
+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion

Provides ability to attach Version instantiation functions on the implementation side.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun compareTo(other: Version): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
val major: Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val minor: Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val patch: Int
+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
val qualifier: String? = null
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/major.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/major.html new file mode 100644 index 00000000..e5b37518 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/major.html @@ -0,0 +1,69 @@ + + + + + major + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

major

+
+
val major: Int

Parameters

major

An Int which must be equal or greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/minor.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/minor.html new file mode 100644 index 00000000..8b499fdb --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/minor.html @@ -0,0 +1,69 @@ + + + + + minor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

minor

+
+
val minor: Int

Parameters

minor

An Int which must be equal or greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/patch.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/patch.html new file mode 100644 index 00000000..d9cc0db7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/patch.html @@ -0,0 +1,69 @@ + + + + + patch + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

patch

+
+
val patch: Int

Parameters

patch

An Int which must be equal or greater than 0.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/qualifier.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/qualifier.html new file mode 100644 index 00000000..428f53e1 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/qualifier.html @@ -0,0 +1,69 @@ + + + + + qualifier + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

qualifier

+
+
val qualifier: String? = null

Parameters

qualifier

An optional String that contains pre-release and/or build metadata version information.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/to-string.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/to-string.html new file mode 100644 index 00000000..c345350b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/-version/to-string.html @@ -0,0 +1,69 @@ + + + + + toString + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toString

+
+
open override fun toString(): String
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/ar-core-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/ar-core-input.html new file mode 100644 index 00000000..7f3412df --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/ar-core-input.html @@ -0,0 +1,69 @@ + + + + + arCoreInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

arCoreInput

+
+

Creates a ImageProcessor.Input.Pausable instance that uses ARCore development kit to provide surface tracking capabilities.

Return

null if ARCore initialization failed. A ImageProcessor.Input.Pausable input instance otherwise.

Since

1.6.0


Creates a ImageProcessor.Input.Pausable instance that uses ARCore development kit to provide surface tracking capabilities. Uses a mp4DataSetFile to play back instead of using the live camera feed and IMU sensor data.

Return

null if ARCore initialization failed. A ImageProcessor.Input.Pausable input instance otherwise.

Since

1.17.0

See also

Recording and Playback to capture mp4DataSetFile for the ARCore based input.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/connect-input.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/connect-input.html new file mode 100644 index 00000000..558d9442 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/connect-input.html @@ -0,0 +1,69 @@ + + + + + connectInput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectInput

+
+
fun <P : ImageProcessor> P.connectInput(context: Context, file: File, rotationDegrees: Int = Int.MIN_VALUE, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Closeable

Connects the provided file and associated optional parameters as a video based ImageProcessor.Input. Invoking Closeable.close on the returned Closeable stops the video playback and releases any resources associated with it.

Note: this is intended to be used only for testing purposes, full set of image processing features is supported only when using live camera input Source.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/connect-output.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/connect-output.html new file mode 100644 index 00000000..26909488 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/connect-output.html @@ -0,0 +1,69 @@ + + + + + connectOutput + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

connectOutput

+
+
fun <P : ImageProcessor> P.connectOutput(textureView: TextureView, outputOptions: Set<ImageProcessor.Output.Option> = Collections.emptySet()): Closeable

Allows to connect TextureView as output to ImageProcessor.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/index.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/index.html new file mode 100644 index 00000000..b524b994 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/index.html @@ -0,0 +1,499 @@ + + + + + com.snap.camerakit + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

Package-level declarations

+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that is able to take AudioProcessor.Input and run audio processing operations that analyze data to detect patterns and/or mutate the provided AudioProcessor.Input.Frames to apply effects such as filtering, pitch correction etc.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
annotation class Experimental

Indicates that the annotated feature is experimental: it may be removed, its signature or behavior may be changed without warning from one release to the next.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that is able to take ImageProcessor.Input, run some image processing operations on it and render the final result to ImageProcessor.Output.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to LegalProcessor.Input to receive results from a user responding to a LegalProcessor.Input.Prompt for a legal agreement.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to LocationProcessor.Input to receive information about the current device Location, when available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to MediaProcessor.Input to receive Media data.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Processor

Marker interface for all processors that can be attached to a specific Source.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to SafeRenderAreaProcessor.Input to receive updates on the area that the client considers to be safe for rendering content such as lens UI elements where they can not overlap or interfere with the client's own UI.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Session : Closeable

Entry point to all CameraKit features. To obtain Session implementations must provide methods to get a new instance of Builder which exposes options to customize Session instance once it is built by calling Builder.build. Once done using an instance of Session, Session.close must be called to avoid leaking resources.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
interface Source<P : Processor>

Defines a provider of generic inputs that a Processor of type P can be attached to process over.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class UnauthorizedApplicationException(val applicationId: String, val apiToken: String, val packageName: String?) : RuntimeException

If application with a specific ID and package name is not authorized to use CameraKit this exception will be thrown, normally ending up in the error handler provided via Session.Builder.handleErrorsWith.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Defines a Processor that subscribes to UserProcessor.Input to receive information about the current user, when available.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class Version @JvmOverloads constructor(val major: Int, val minor: Int, val patch: Int, val qualifier: String? = null) : Comparable<Version>

Represents a version of the CameraKit library. Versions are Comparable between each other by following the SemVer 2.0.0 specification.

+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Creates a ImageProcessor.Input.Pausable instance that uses ARCore development kit to provide surface tracking capabilities. Uses a mp4DataSetFile to play back instead of using the live camera feed and IMU sensor data.

Creates a ImageProcessor.Input.Pausable instance that uses ARCore development kit to provide surface tracking capabilities.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.connectInput(context: Context, file: File, rotationDegrees: Int = Int.MIN_VALUE, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Closeable

Connects the provided file and associated optional parameters as a video based ImageProcessor.Input. Invoking Closeable.close on the returned Closeable stops the video playback and releases any resources associated with it.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.connectOutput(textureView: TextureView, outputOptions: Set<ImageProcessor.Output.Option> = Collections.emptySet()): Closeable

Allows to connect TextureView as output to ImageProcessor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Creates or uses a recycled AudioProcessor.Input.Frame that gets populated with the provided parameters.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun inputFrom(surfaceTexture: SurfaceTexture, width: Int, height: Int, rotationDegrees: Int, facingFront: Boolean, horizontalFieldOfView: Callable<Float>, verticalFieldOfView: Callable<Float>): ImageProcessor.Input
fun inputFrom(surfaceTexture: SurfaceTexture, width: Int, height: Int, rotationDegrees: Int, facingFront: Boolean, horizontalFieldOfView: Float, verticalFieldOfView: Float): ImageProcessor.Input

Creates SurfaceTexture backed ImageProcessor.Input with the provided properties.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
@RequiresPermission(value = "android.permission.RECORD_AUDIO", conditional = true)
fun microphoneSourceFor(executorService: ExecutorService): Source<AudioProcessor>

Creates a new Source that attempts to use device microphone to read audio data and provide it to an attached AudioProcessor.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun newBuilder(context: Context, lifecycleOwner: LifecycleOwner? = context as? LifecycleOwner): Session.Builder

Creates a new Session.Builder with the provided context. An optional LifecycleOwner can be provided as an aid to tie behaviours such as audio playback to application lifecycle. If no LifecycleOwner is provided then the context will be checked for LifecycleOwner implementation to be used as a fallback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun outputFrom(surfaceTexture: SurfaceTexture, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.PREVIEW, rotationDegrees: Int = Int.MIN_VALUE): ImageProcessor.Output

Creates SurfaceTexture backed ImageProcessor.Output with the provided purpose and rotationDegrees.

fun outputFrom(surface: Surface, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.PREVIEW, rotationDegrees: Int = Int.MIN_VALUE): ImageProcessor.Output

Creates Surface backed ImageProcessor.Output with the provided purpose and rotationDegrees.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.processBitmap(connectedInput: ImageProcessor.Input, bitmap: Bitmap, outputRotationDegrees: Int = 0, timeout: Long = 10, timeoutUnit: TimeUnit = TimeUnit.SECONDS, mirrorHorizontally: Boolean = false, mirrorVertically: Boolean = false, allowDownscaling: Boolean = true): Bitmap?

If connectedInput is currently connected to this processor, process the bitmap and output the result as Bitmap. Source bitmap will be cropped to match connectedInput aspect ratio if they are different. Source bitmap will be rotated on ImageProcessor.Input.rotationDegrees of the connectedInput during processing. outputRotationDegrees can be used to apply an additional rotation to the resulting Bitmap. This method is a blocking operation therefore it is expected to run on a worker thread.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.processImage(connectedInput: ImageProcessor.Input, image: Image, outputRotationDegrees: Int = 0, timeout: Long = 10, timeoutUnit: TimeUnit = TimeUnit.SECONDS, mirrorHorizontally: Boolean = false, mirrorVertically: Boolean = false, allowDownscaling: Boolean = true): Bitmap?

If connectedInput is currently connected to this processor, process the image and output the result as Bitmap. Source image will be cropped to match connectedInput aspect ratio if they are different. Source image will be rotated on ImageProcessor.Input.rotationDegrees of the connectedInput during processing. outputRotationDegrees can be used to apply an additional rotation to the resulting Bitmap. Only images of android.graphics.ImageFormat.JPEG format are currently supported. This method is a blocking operation therefore it is expected to run on a worker thread.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun sourceFrom(context: Context, file: File, rotationDegrees: Int = Int.MIN_VALUE, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a video file based Source for ImageProcessor. The returned Source attempts to read and play video as soon as ImageProcessor is attached to it. When ImageProcessor is de-attached, the Source stops the video and releases all resources associated with it.

fun sourceFrom(bitmap: Bitmap, choreographer: Choreographer = Choreographer.getInstance(), rotationDegrees: Int = 0, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a bitmap based Source for ImageProcessor. The returned Source simply renders the provided bitmap as ImageProcessor.Input using callbacks queued via Choreographer for synchronization.

fun sourceFrom(@ColorInt color: Int, width: Int = 1280, height: Int = 1920, choreographer: Choreographer = Choreographer.getInstance(), rotationDegrees: Int = 0, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a color based Source for ImageProcessor. The returned Source simply renders the provided color as ImageProcessor.Input using callbacks queued via Choreographer for synchronization.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun supported(context: Context): Boolean

Allows to check if the current environment is supported to run CameraKit Session. Attempts to build and run Session in unsupported environment will lead to undefined behavior and exceptions routed to an error handler, if one is supplied using Session.Builder.handleErrorsWith.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun <P : ImageProcessor> P.toBitmap(width: Int, height: Int, rotationDegrees: Int = Int.MIN_VALUE, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.SNAPSHOT): Bitmap?

If ImageProcessor.Input is currently connected to this processor, process the input and outputs the result as Bitmap for the specified width and height dimensions and an optional rotationDegrees as well as purpose. This method is a blocking operation therefore it is expected to run on a worker thread.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun versionFrom(context: Context): Version

Obtains the current Version of CameraKit library using the information from the provided context.

+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

LensCore version code (ie 243).

+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/input-frame-from.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/input-frame-from.html new file mode 100644 index 00000000..8f14769d --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/input-frame-from.html @@ -0,0 +1,69 @@ + + + + + inputFrameFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

inputFrameFrom

+
+

Creates or uses a recycled AudioProcessor.Input.Frame that gets populated with the provided parameters.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/input-from.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/input-from.html new file mode 100644 index 00000000..8906c373 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/input-from.html @@ -0,0 +1,69 @@ + + + + + inputFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

inputFrom

+
+
fun inputFrom(surfaceTexture: SurfaceTexture, width: Int, height: Int, rotationDegrees: Int, facingFront: Boolean, horizontalFieldOfView: Float, verticalFieldOfView: Float): ImageProcessor.Input

Creates SurfaceTexture backed ImageProcessor.Input with the provided properties.


fun inputFrom(surfaceTexture: SurfaceTexture, width: Int, height: Int, rotationDegrees: Int, facingFront: Boolean, horizontalFieldOfView: Callable<Float>, verticalFieldOfView: Callable<Float>): ImageProcessor.Input

Creates SurfaceTexture backed ImageProcessor.Input with the provided properties.

Since

1.4.0

Parameters

horizontalFieldOfView

a Callable to obtain the horizontal field of view of a ImageProcessor.Input.Frame.

verticalFieldOfView

a Callable to obtain the vertical field of view of a ImageProcessor.Input.Frame.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/lens-core-version.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/lens-core-version.html new file mode 100644 index 00000000..538d47c5 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/lens-core-version.html @@ -0,0 +1,69 @@ + + + + + lensCoreVersion + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

lensCoreVersion

+
+

LensCore version code (ie 243).

Since

1.28.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/microphone-source-for.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/microphone-source-for.html new file mode 100644 index 00000000..f04592e7 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/microphone-source-for.html @@ -0,0 +1,69 @@ + + + + + microphoneSourceFor + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

microphoneSourceFor

+
+
@RequiresPermission(value = "android.permission.RECORD_AUDIO", conditional = true)
fun microphoneSourceFor(executorService: ExecutorService): Source<AudioProcessor>

Creates a new Source that attempts to use device microphone to read audio data and provide it to an attached AudioProcessor.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/new-builder.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/new-builder.html new file mode 100644 index 00000000..6f973856 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/new-builder.html @@ -0,0 +1,69 @@ + + + + + newBuilder + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

newBuilder

+
+
fun newBuilder(context: Context, lifecycleOwner: LifecycleOwner? = context as? LifecycleOwner): Session.Builder

Creates a new Session.Builder with the provided context. An optional LifecycleOwner can be provided as an aid to tie behaviours such as audio playback to application lifecycle. If no LifecycleOwner is provided then the context will be checked for LifecycleOwner implementation to be used as a fallback.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/output-from.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/output-from.html new file mode 100644 index 00000000..4afb206e --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/output-from.html @@ -0,0 +1,69 @@ + + + + + outputFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

outputFrom

+
+
fun outputFrom(surfaceTexture: SurfaceTexture, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.PREVIEW, rotationDegrees: Int = Int.MIN_VALUE): ImageProcessor.Output

Creates SurfaceTexture backed ImageProcessor.Output with the provided purpose and rotationDegrees.

See also


fun outputFrom(surface: Surface, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.PREVIEW, rotationDegrees: Int = Int.MIN_VALUE): ImageProcessor.Output

Creates Surface backed ImageProcessor.Output with the provided purpose and rotationDegrees.

See also

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/process-bitmap.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/process-bitmap.html new file mode 100644 index 00000000..1dd264be --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/process-bitmap.html @@ -0,0 +1,69 @@ + + + + + processBitmap + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processBitmap

+
+
fun <P : ImageProcessor> P.processBitmap(connectedInput: ImageProcessor.Input, bitmap: Bitmap, outputRotationDegrees: Int = 0, timeout: Long = 10, timeoutUnit: TimeUnit = TimeUnit.SECONDS, mirrorHorizontally: Boolean = false, mirrorVertically: Boolean = false, allowDownscaling: Boolean = true): Bitmap?

If connectedInput is currently connected to this processor, process the bitmap and output the result as Bitmap. Source bitmap will be cropped to match connectedInput aspect ratio if they are different. Source bitmap will be rotated on ImageProcessor.Input.rotationDegrees of the connectedInput during processing. outputRotationDegrees can be used to apply an additional rotation to the resulting Bitmap. This method is a blocking operation therefore it is expected to run on a worker thread.

Return

processed bitmap as Bitmap or null in case of timeout exceeded, failure occurred or the provided parameters are not supported. Returns the source bitmap if there is no effect applied and source bitmap should not be transformed.

Since

1.3.0

Parameters

outputRotationDegrees

defines the natural orientation of the result Bitmap in relation to a device that is rendering it. If outputRotationDegrees is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to determine of the result Bitmap.

mirrorHorizontally

defines if the bitmap should be mirrored horizontally before processing.

mirrorVertically

defines if the bitmap should be mirrored vertically before processing.

allowDownscaling

defines if source bitmap can be downscaled before processing to optimize performance and reduce memory usage. If allowDownscaling is False, then full size bitmap will be processed that may cause issues with rendered textures and/or graphics memory.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/process-image.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/process-image.html new file mode 100644 index 00000000..d73c432b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/process-image.html @@ -0,0 +1,69 @@ + + + + + processImage + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

processImage

+
+
fun <P : ImageProcessor> P.processImage(connectedInput: ImageProcessor.Input, image: Image, outputRotationDegrees: Int = 0, timeout: Long = 10, timeoutUnit: TimeUnit = TimeUnit.SECONDS, mirrorHorizontally: Boolean = false, mirrorVertically: Boolean = false, allowDownscaling: Boolean = true): Bitmap?

If connectedInput is currently connected to this processor, process the image and output the result as Bitmap. Source image will be cropped to match connectedInput aspect ratio if they are different. Source image will be rotated on ImageProcessor.Input.rotationDegrees of the connectedInput during processing. outputRotationDegrees can be used to apply an additional rotation to the resulting Bitmap. Only images of android.graphics.ImageFormat.JPEG format are currently supported. This method is a blocking operation therefore it is expected to run on a worker thread.

Return

processed image as Bitmap or null in case of timeout exceeded, failure occurred or the provided parameters are not supported.

Since

1.3.0

Parameters

outputRotationDegrees

defines the natural orientation of the result Bitmap in relation to a device that is rendering it. If outputRotationDegrees is Int.MIN_VALUE (the default) then implementation is expected to use the current device rotation to determine of the result Bitmap.

mirrorHorizontally

defines if the image should be mirrored horizontally before processing.

mirrorVertically

defines if the image should be mirrored vertically before processing.

allowDownscaling

defines if source image can be downscaled before processing to optimize performance and reduce memory usage. If allowDownscaling is False, then full size image will be processed that may cause issues with rendered textures and/or graphics memory.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/source-from.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/source-from.html new file mode 100644 index 00000000..468f4a14 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/source-from.html @@ -0,0 +1,69 @@ + + + + + sourceFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

sourceFrom

+
+
fun sourceFrom(context: Context, file: File, rotationDegrees: Int = Int.MIN_VALUE, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a video file based Source for ImageProcessor. The returned Source attempts to read and play video as soon as ImageProcessor is attached to it. When ImageProcessor is de-attached, the Source stops the video and releases all resources associated with it.

The rotationDegrees, facingFront, horizontalFieldOfView, verticalFieldOfView and options parameters are optional and can be used to override the defaults when the defaults do not match the provided video file content.

Note: this is intended to be used only for testing purposes, full set of image processing features is supported only when using live camera input Source.


fun sourceFrom(@ColorInt color: Int, width: Int = 1280, height: Int = 1920, choreographer: Choreographer = Choreographer.getInstance(), rotationDegrees: Int = 0, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a color based Source for ImageProcessor. The returned Source simply renders the provided color as ImageProcessor.Input using callbacks queued via Choreographer for synchronization.

The rotationDegrees, facingFront, horizontalFieldOfView, verticalFieldOfView and options parameters are optional and can be used to override the defaults when the defaults do not match the expected results.

Note: The intent of this Source is for testing purposes as well as simple use cases such as basic 3D model rendering, games etc. where real camera input is not necessary but a uniform color background is sufficient.

Since

1.21.0


fun sourceFrom(bitmap: Bitmap, choreographer: Choreographer = Choreographer.getInstance(), rotationDegrees: Int = 0, facingFront: Boolean = true, horizontalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.width, verticalFieldOfView: Float = DEFAULT_FIELD_OF_VIEW.height, options: Set<ImageProcessor.Input.Option> = emptySet()): Source<ImageProcessor>

Creates a bitmap based Source for ImageProcessor. The returned Source simply renders the provided bitmap as ImageProcessor.Input using callbacks queued via Choreographer for synchronization.

The rotationDegrees, facingFront, horizontalFieldOfView, verticalFieldOfView and options parameters are optional and can be used to override the defaults when the defaults do not match the expected results.

Note: The intent of this Source is for testing purposes as well as simple use cases such as basic 3D model rendering, games etc. where real camera input is not necessary but a static image background is sufficient.

Since

1.21.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/supported.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/supported.html new file mode 100644 index 00000000..9b270d6b --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/supported.html @@ -0,0 +1,69 @@ + + + + + supported + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

supported

+
+
fun supported(context: Context): Boolean

Allows to check if the current environment is supported to run CameraKit Session. Attempts to build and run Session in unsupported environment will lead to undefined behavior and exceptions routed to an error handler, if one is supplied using Session.Builder.handleErrorsWith.

Return

true if supported, false otherwise.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/to-bitmap.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/to-bitmap.html new file mode 100644 index 00000000..0350f58f --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/to-bitmap.html @@ -0,0 +1,69 @@ + + + + + toBitmap + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

toBitmap

+
+
fun <P : ImageProcessor> P.toBitmap(width: Int, height: Int, rotationDegrees: Int = Int.MIN_VALUE, purpose: ImageProcessor.Output.Purpose = ImageProcessor.Output.Purpose.SNAPSHOT): Bitmap?

If ImageProcessor.Input is currently connected to this processor, process the input and outputs the result as Bitmap for the specified width and height dimensions and an optional rotationDegrees as well as purpose. This method is a blocking operation therefore it is expected to run on a worker thread.

Return

processed input result as Bitmap or null in case of failure or the provided parameters are not supported.

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/version-from.html b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/version-from.html new file mode 100644 index 00000000..e11122a2 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/com.snap.camerakit/version-from.html @@ -0,0 +1,69 @@ + + + + + versionFrom + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

versionFrom

+
+
fun versionFrom(context: Context): Version

Obtains the current Version of CameraKit library using the information from the provided context.

Since

1.14.0

+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/-camera-kit/package-list b/docs/api/android/1.30.0/-camera-kit/package-list new file mode 100644 index 00000000..5bc0d590 --- /dev/null +++ b/docs/api/android/1.30.0/-camera-kit/package-list @@ -0,0 +1,767 @@ +$dokka.format:html-v1 +$dokka.linkExtension:html +$dokka.location:com.snap.camerakit.adjustments////PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/index.html +$dokka.location:com.snap.camerakit.adjustments//whenApplied/com.snap.camerakit.adjustments.AdjustmentsComponent.Processor.Result[TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])]#com.snap.camerakit.common.Consumer[com.snap.camerakit.adjustments.AdjustmentsComponent.Processor.Result.Applied[TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/when-applied.html +$dokka.location:com.snap.camerakit.adjustments/AdaptiveToneMappingAdjustment///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/index.html +$dokka.location:com.snap.camerakit.adjustments/AdaptiveToneMappingAdjustment/PROPERTY_AMOUNT/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/-p-r-o-p-e-r-t-y_-a-m-o-u-n-t.html +$dokka.location:com.snap.camerakit.adjustments/AdaptiveToneMappingAdjustment/amount/com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Controller#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/amount.html +$dokka.location:com.snap.camerakit.adjustments/AdaptiveToneMappingAdjustment/properties/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adaptive-tone-mapping-adjustment/properties.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Controller.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Controller.Noop/set/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Property[TypeParam(bounds=[kotlin.Any])]#TypeParam(bounds=[kotlin.Any])/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/-noop/set.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Controller///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Controller/set/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Property[TypeParam(bounds=[kotlin.Any])]#TypeParam(bounds=[kotlin.Any])/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-controller/set.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Property///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment.Property/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/-property/id.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Adjustment/properties/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-adjustment/properties.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Noop/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/close.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Noop/processor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-noop/processor.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/apply/#TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])#com.snap.camerakit.common.Consumer[com.snap.camerakit.adjustments.AdjustmentsComponent.Processor.Result[TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/apply.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/available/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/available.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/connectInput/#com.snap.camerakit.ImageProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/connectOutput/#com.snap.camerakit.ImageProcessor.Output/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/connect-output.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/observeRequiredCapabilities/#com.snap.camerakit.common.Consumer[kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Capability]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/observe-required-capabilities.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Noop/remove/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-noop/remove.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/Applied/#TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Controller/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/-applied.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/adjustment/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/adjustment.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/controller/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/controller.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/equals.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/hash-code.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Applied/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-applied/to-string.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/Unavailable/#TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/-unavailable.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/adjustment/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/adjustment.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/equals.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/hash-code.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result.Unavailable/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/-unavailable/to-string.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor.Result///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/-result/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor/apply/#TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])#com.snap.camerakit.common.Consumer[com.snap.camerakit.adjustments.AdjustmentsComponent.Processor.Result[TypeParam(bounds=[com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment])]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/apply.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor/available/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/available.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent.Processor/remove/#com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/-processor/remove.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/index.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/close.html +$dokka.location:com.snap.camerakit.adjustments/AdjustmentsComponent/processor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-adjustments-component/processor.html +$dokka.location:com.snap.camerakit.adjustments/PortraitAdjustment///PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/index.html +$dokka.location:com.snap.camerakit.adjustments/PortraitAdjustment/PROPERTY_BLUR/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/-p-r-o-p-e-r-t-y_-b-l-u-r.html +$dokka.location:com.snap.camerakit.adjustments/PortraitAdjustment/blur/com.snap.camerakit.adjustments.AdjustmentsComponent.Adjustment.Controller#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/blur.html +$dokka.location:com.snap.camerakit.adjustments/PortraitAdjustment/properties/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.adjustments/-portrait-adjustment/properties.html +$dokka.location:com.snap.camerakit.common////PointingToDeclaration/-camera-kit/com.snap.camerakit.common/index.html +$dokka.location:com.snap.camerakit.common/Consumer///PointingToDeclaration/-camera-kit/com.snap.camerakit.common/-consumer/index.html +$dokka.location:com.snap.camerakit.common/Consumer/accept/#T/PointingToDeclaration/-camera-kit/com.snap.camerakit.common/-consumer/accept.html +$dokka.location:com.snap.camerakit.lenses////PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/index.html +$dokka.location:com.snap.camerakit.lenses//LENS_GROUP_ID_BUNDLED/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-l-e-n-s_-g-r-o-u-p_-i-d_-b-u-n-d-l-e-d.html +$dokka.location:com.snap.camerakit.lenses//whenActivated/com.snap.camerakit.lenses.LensesComponent.Carousel.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event.Activated]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-activated.html +$dokka.location:com.snap.camerakit.lenses//whenActivatedIdle/com.snap.camerakit.lenses.LensesComponent.Carousel.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event.Activated.Idle]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-activated-idle.html +$dokka.location:com.snap.camerakit.lenses//whenActivatedWithLens/com.snap.camerakit.lenses.LensesComponent.Carousel.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event.Activated.WithLens]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-activated-with-lens.html +$dokka.location:com.snap.camerakit.lenses//whenApplied/com.snap.camerakit.lenses.LensesComponent.Processor.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event.Applied]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-applied.html +$dokka.location:com.snap.camerakit.lenses//whenDeactivated/com.snap.camerakit.lenses.LensesComponent.Carousel.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event.Deactivated]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-deactivated.html +$dokka.location:com.snap.camerakit.lenses//whenFirstFrameProcessed/com.snap.camerakit.lenses.LensesComponent.Processor.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event.FirstFrameProcessed]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-first-frame-processed.html +$dokka.location:com.snap.camerakit.lenses//whenHasFirst/com.snap.camerakit.lenses.LensesComponent.Repository.Result#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Lens]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-has-first.html +$dokka.location:com.snap.camerakit.lenses//whenHasSome/com.snap.camerakit.lenses.LensesComponent.Repository.Result#com.snap.camerakit.common.Consumer[kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Lens]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-has-some.html +$dokka.location:com.snap.camerakit.lenses//whenIdle/com.snap.camerakit.lenses.LensesComponent.Processor.Event#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event.Idle]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/when-idle.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume.Mute///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume.Mute/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-mute/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume.UnMute///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume.UnMute/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/-un-mute/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment.Volume///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/-volume/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Adjustment///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-adjustment/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio.Noop/adjust/#com.snap.camerakit.lenses.LensesComponent.Audio.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/-noop/adjust.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Audio/adjust/#com.snap.camerakit.lenses.LensesComponent.Audio.Adjustment#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-audio/adjust.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/attachWidgetsTo/#android.view.ViewStub?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/attach-widgets-to.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/build/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/build.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureCache/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Cache.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-cache.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureCarousel/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-carousel.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureHints/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Hints.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-hints.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureLoadingOverlay/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.LoadingOverlay.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-loading-overlay.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureMediaPicker/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.MediaPicker.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-media-picker.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/configureProcessor/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Configuration]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/configure-processor.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/dispatchTouchEventsTo/#android.view.View?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/dispatch-touch-events-to.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Builder/remoteApiServiceFactory/#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Factory/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-builder/remote-api-service-factory.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Cache.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Cache.Configuration/lensContentMaxSize/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/-configuration/lens-content-max-size.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Cache///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-cache/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/activateIdle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-idle.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/activateOnStart/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-start.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/activateOnTap/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/activate-on-tap.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/attachViewTo/#com.snap.camerakit.lenses.LensesComponent.Carousel.LayoutPlacement#com.snap.camerakit.common.Consumer[android.view.ViewStub]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/attach-view-to.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/closeButtonEnabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/closeButtonMarginBottomDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/close-button-margin-bottom-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/configureEachItem/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.ItemOptions]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/configure-each-item.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/deactivateOnClose/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/deactivate-on-close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/disableIdle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/disable-idle.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/heightDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/height-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/marginBottomDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/margin-bottom-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/observeGroupIds/#kotlin.Array[kotlin.String]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observe-group-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/observedGroupIds/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/observedGroupIdsProvider/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/observed-group-ids-provider.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/paddingBottomDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-bottom-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/paddingTopDimenRes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/padding-top-dimen-res.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Configuration/view/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-configuration/view.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.Idle///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.Idle/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-idle/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/WithLens/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/-with-lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/lens/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated.WithLens/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/-with-lens/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Activated///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-activated/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Deactivated///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event.Deactivated/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/-deactivated/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Event///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-event/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/contentDescription/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/content-description.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/index/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/--index--.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/lens/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/lenses/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/lenses.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/moveToLeft/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-left.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/moveToRight/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/move-to-right.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.ItemOptions/side/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-item-options/side.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.Above///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.Above/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-above/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.Behind///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.Behind/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-behind/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.InFront///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement.InFront/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/-in-front/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.LayoutPlacement///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-layout-placement/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Noop/activate/#com.snap.camerakit.lenses.LensesComponent.Lens?#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/activate.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Noop/deactivate/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/deactivate.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Noop/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-noop/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side.LEFT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-l-e-f-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side.RIGHT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/-r-i-g-h-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.Side/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-side/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.CloseButtonClicked///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.CloseButtonClicked/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-close-button-clicked/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/ItemSelected/#com.snap.camerakit.lenses.LensesComponent.Carousel.View.Item/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/-item-selected.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/item/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/item.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.ItemSelected/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-item-selected/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/VisibleItemsChanged/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Carousel.View.Item]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/-visible-items-changed.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event.VisibleItemsChanged/visibleItems/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/-visible-items-changed/visible-items.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Event///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-event/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Idle///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Idle/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Idle/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-idle/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Lens///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Lens/contentDescription/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/content-description.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Lens/iconUri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/icon-uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.Lens/observeLoadingState/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.View.Item.LoadingState]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-lens/observe-loading-state.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.Done///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.Done/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-done/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.Idle///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.Idle/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-idle/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.InProgress///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState.InProgress/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/-in-progress/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item.LoadingState///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/-loading-state/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Item/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-item/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Hidden///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Hidden/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-hidden/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/Visible/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Carousel.View.Item]#kotlin.Int#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/-visible.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/closeable/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/closeable.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/items/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/items.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/selectedItemPosition/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/selected-item-position.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model.Visible/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/-visible/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View.Model///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/-model/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel.View/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.View.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/-view/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel/activate/#com.snap.camerakit.lenses.LensesComponent.Lens?#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/activate.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel/deactivate/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/deactivate.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Carousel/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Carousel.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-carousel/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.Configuration/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.Configuration/view/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-configuration/view.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/Displayed/#kotlin.String#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/Displayed/#kotlin.String#kotlin.String#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/-displayed.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/autoHide/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/auto-hide.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/text/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/text.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Displayed/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-displayed/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Hidden///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model.Hidden/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/-hidden/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View.Model///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/-model/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints.View///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/-view/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Hints///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-hints/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-companion/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing.BACK///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-b-a-c-k/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing.FRONT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/-f-r-o-n-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Facing/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-facing/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/build/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/build.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/putNumber/#kotlin.String#kotlin.Number/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-number.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/putNumbers/#kotlin.String#kotlin.Array[kotlin.Number]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-numbers.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/putString/#kotlin.String#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Builder/putStrings/#kotlin.String#kotlin.Array[kotlin.String]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-builder/put-strings.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-companion/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Empty///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData.Empty/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/-empty/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.LaunchData///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-launch-data/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/DeepLink/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/-deep-link.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.DeepLink/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-deep-link/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/Png/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/-png.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Png/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-png/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/Webp/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/-webp.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image.Webp/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/-webp/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Image///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-image/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/Webp/#kotlin.String#kotlin.collections.Collection[com.snap.camerakit.lenses.LensesComponent.Lens.Media.Image.Webp]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/-webp.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence.Webp/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/-webp/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media.Sequence/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/-sequence/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Media/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-media/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/Image/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/-image.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview.Image/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/-image/uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens.Preview///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/-preview/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/facingPreference/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/facing-preference.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/groupId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/group-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/iconUri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icon-uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/icons/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/icons.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/name/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/name.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/preview/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/preview.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/previews/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/previews.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/snapcodes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/snapcodes.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Lens/vendorData/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-lens/vendor-data.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.LoadingOverlay.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.LoadingOverlay.Configuration/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/-configuration/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.LoadingOverlay///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-loading-overlay/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.Configuration/enabled/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/enabled.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.Configuration/view/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-configuration/view.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/ItemSelected/#com.snap.camerakit.lenses.LensesComponent.MediaPicker.View.Item/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/-item-selected.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/item/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/item.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.ItemSelected/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-item-selected/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.LastItemVisible///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event.LastItemVisible/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/-last-item-visible/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Event///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-event/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Loading///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Loading/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-loading/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/Media/#kotlin.String#kotlin.String?#android.graphics.RectF?#kotlin.String#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/-media.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/cropRect/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/crop-rect.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/iconUri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/icon-uri.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/label/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/label.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/selected/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/selected.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item.Media/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/-media/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Item///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-item/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Hidden///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Hidden/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-hidden/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/Visible/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.MediaPicker.View.Item]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/-visible.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/items/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/items.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model.Visible/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/-visible/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View.Model///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/-model/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker.View/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.MediaPicker.View.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/-view/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.MediaPicker///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-media-picker/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Noop/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-noop/close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Preferences.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Preferences.Noop/clear/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/-noop/clear.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Preferences///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Preferences/clear/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-preferences/clear.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Noop/observe/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Prefetcher.Status]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Noop/run/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Lens]#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-noop/run.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status.LOADED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status.LOADING///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-l-o-a-d-i-n-g/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status.UNLOADED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/-u-n-l-o-a-d-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher.Status/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/-status/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher/observe/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Prefetcher.Status]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Prefetcher/run/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Lens]#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-prefetcher/run.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Configuration///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Configuration/inputFrameRotationBehavior/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/input-frame-rotation-behavior.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Configuration/useDeviceOrientationForFaceDetection/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-configuration/use-device-orientation-for-face-detection.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/Applied/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/-applied.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/lens/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Applied/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-applied/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/FirstFrameProcessed/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/-first-frame-processed.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/lens/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.FirstFrameProcessed/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-first-frame-processed/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Idle///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event.Idle/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/-idle/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Event///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-event/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Internal///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Internal/Internal/#kotlin.Throwable?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-internal/-internal.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Lens///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Lens/Lens/#kotlin.String#kotlin.Throwable?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/-lens.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.Lens/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-lens/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.LibraryLoading///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure.LibraryLoading/LibraryLoading/#kotlin.Throwable?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/-library-loading/-library-loading.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Failure///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-failure/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior.ASSUME_PORTRAIT_ORIENTATION///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-a-s-s-u-m-e_-p-o-r-t-r-a-i-t_-o-r-i-e-n-t-a-t-i-o-n/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior.USE_SCREEN_ORIENTATION///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/-u-s-e_-s-c-r-e-e-n_-o-r-i-e-n-t-a-t-i-o-n/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.InputFrameRotationBehavior/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-input-frame-rotation-behavior/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/apply/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.lenses.LensesComponent.Lens.LaunchData#kotlin.Boolean#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/apply.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/clear/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/clear.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.AudioProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.ImageProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.LocationProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.MediaProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.SafeRenderAreaProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectInput/#com.snap.camerakit.UserProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-input.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/connectOutput/#com.snap.camerakit.ImageProcessor.Output/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/connect-output.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor.Noop/observeRequiredCapabilities/#com.snap.camerakit.common.Consumer[kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Capability]]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/-noop/observe-required-capabilities.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/apply/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/apply/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.lenses.LensesComponent.Lens.LaunchData#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/apply/#com.snap.camerakit.lenses.LensesComponent.Lens#com.snap.camerakit.lenses.LensesComponent.Lens.LaunchData#kotlin.Boolean#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/apply.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/clear/#com.snap.camerakit.common.Consumer[kotlin.Boolean]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/clear.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Processor/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Processor.Event]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-processor/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Answered///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Answered/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-answered/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ignored///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ignored/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ignored/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ongoing///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ongoing/Ongoing/#java.io.Closeable/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/-ongoing.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ongoing/closeable/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/closeable.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call.Ongoing/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/-ongoing/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Call///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-call/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-companion/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory.Noop/createFor/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/create-for.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory.Noop/supportedApiSpecIds/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/-noop/supported-api-spec-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory/createFor/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/create-for.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Factory/supportedApiSpecIds/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-factory/supported-api-spec-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Noop/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Noop/process/#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Request#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Response]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-noop/process.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/Request/#kotlin.String#kotlin.String#kotlin.String#kotlin.collections.Map[kotlin.String,kotlin.String]#kotlin.ByteArray/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/-request.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/apiSpecId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/api-spec-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/body/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/body.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/endpointId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/endpoint-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/parameters/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/parameters.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Request/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-request/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.ACCESS_DENIED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-a-c-c-e-s-s_-d-e-n-i-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.BAD_REQUEST///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-b-a-d_-r-e-q-u-e-s-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.CANCELLED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-c-a-n-c-e-l-l-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.INTERNAL_SERVICE_ERROR///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-i-n-t-e-r-n-a-l_-s-e-r-v-i-c-e_-e-r-r-o-r/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.NOT_FOUND///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-n-o-t_-f-o-u-n-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.REDIRECTED///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-d-i-r-e-c-t-e-d/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.REQUEST_TOO_LARGE///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-r-e-q-u-e-s-t_-t-o-o_-l-a-r-g-e/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.SUCCESS///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-s-u-c-c-e-s-s/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status.TIMEOUT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/-t-i-m-e-o-u-t/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/value-of.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response.Status/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-status/values.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/Response/#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Request#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Response.Status#kotlin.collections.Map[kotlin.String,kotlin.String]#kotlin.ByteArray/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/-response.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/body/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/body.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/metadata/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/metadata.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/request/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/request.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/status/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/status.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService.Response/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/-response/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.RemoteApiService/process/#com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Request#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.RemoteApiService.Response]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-remote-api-service/process.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Noop/get/#com.snap.camerakit.lenses.LensesComponent.Repository.QueryCriteria#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Repository.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/get.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Noop/observe/#com.snap.camerakit.lenses.LensesComponent.Repository.QueryCriteria#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Repository.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-noop/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/Available/#kotlin.Array[kotlin.String]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/Available/#kotlin.collections.Set[kotlin.String]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/-available.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/groupIds/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/group-ids.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.Available/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-available/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/ById/#kotlin.String#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/-by-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/groupId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/group-id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/id.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria.ById/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/-by-id/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.QueryCriteria///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-query-criteria/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.None///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.None/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-none/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/Some/#com.snap.camerakit.lenses.LensesComponent.Lens/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/Some/#kotlin.collections.List[com.snap.camerakit.lenses.LensesComponent.Lens]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/-some.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/equals.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/hash-code.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/lenses/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/lenses.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result.Some/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/-some/to-string.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository.Result///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/-result/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository/get/#com.snap.camerakit.lenses.LensesComponent.Repository.QueryCriteria#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Repository.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/get.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent.Repository/observe/#com.snap.camerakit.lenses.LensesComponent.Repository.QueryCriteria#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Repository.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/-repository/observe.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/index.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/audio/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/audio.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/carousel/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/carousel.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/close.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/preferences/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/preferences.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/prefetcher/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/prefetcher.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/processor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/processor.html +$dokka.location:com.snap.camerakit.lenses/LensesComponent/repository/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-component/repository.html +$dokka.location:com.snap.camerakit.lenses/LensesLaunchData///PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/index.html +$dokka.location:com.snap.camerakit.lenses/LensesLaunchData/newBuilder/#/PointingToDeclaration/-camera-kit/com.snap.camerakit.lenses/-lenses-launch-data/new-builder.html +$dokka.location:com.snap.camerakit////PointingToDeclaration/-camera-kit/com.snap.camerakit/index.html +$dokka.location:com.snap.camerakit//arCoreInput/#android.content.Context#java.io.File/PointingToDeclaration/-camera-kit/com.snap.camerakit/ar-core-input.html +$dokka.location:com.snap.camerakit//arCoreInput/#android.content.Context#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit/ar-core-input.html +$dokka.location:com.snap.camerakit//connectInput/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#android.content.Context#java.io.File#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/connect-input.html +$dokka.location:com.snap.camerakit//connectOutput/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#android.view.TextureView#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Output.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/connect-output.html +$dokka.location:com.snap.camerakit//inputFrameFrom/#kotlin.ByteArray#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/input-frame-from.html +$dokka.location:com.snap.camerakit//inputFrom/#android.graphics.SurfaceTexture#kotlin.Int#kotlin.Int#kotlin.Int#kotlin.Boolean#java.util.concurrent.Callable[kotlin.Float]#java.util.concurrent.Callable[kotlin.Float]/PointingToDeclaration/-camera-kit/com.snap.camerakit/input-from.html +$dokka.location:com.snap.camerakit//inputFrom/#android.graphics.SurfaceTexture#kotlin.Int#kotlin.Int#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float/PointingToDeclaration/-camera-kit/com.snap.camerakit/input-from.html +$dokka.location:com.snap.camerakit//lensCoreVersion/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/lens-core-version.html +$dokka.location:com.snap.camerakit//microphoneSourceFor/#java.util.concurrent.ExecutorService/PointingToDeclaration/-camera-kit/com.snap.camerakit/microphone-source-for.html +$dokka.location:com.snap.camerakit//newBuilder/#android.content.Context#androidx.lifecycle.LifecycleOwner?/PointingToDeclaration/-camera-kit/com.snap.camerakit/new-builder.html +$dokka.location:com.snap.camerakit//outputFrom/#android.graphics.SurfaceTexture#com.snap.camerakit.ImageProcessor.Output.Purpose#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/output-from.html +$dokka.location:com.snap.camerakit//outputFrom/#android.view.Surface#com.snap.camerakit.ImageProcessor.Output.Purpose#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/output-from.html +$dokka.location:com.snap.camerakit//processBitmap/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#com.snap.camerakit.ImageProcessor.Input#android.graphics.Bitmap#kotlin.Int#kotlin.Long#java.util.concurrent.TimeUnit#kotlin.Boolean#kotlin.Boolean#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit/process-bitmap.html +$dokka.location:com.snap.camerakit//processImage/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#com.snap.camerakit.ImageProcessor.Input#android.media.Image#kotlin.Int#kotlin.Long#java.util.concurrent.TimeUnit#kotlin.Boolean#kotlin.Boolean#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit/process-image.html +$dokka.location:com.snap.camerakit//sourceFrom/#android.content.Context#java.io.File#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/source-from.html +$dokka.location:com.snap.camerakit//sourceFrom/#android.graphics.Bitmap#android.view.Choreographer#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/source-from.html +$dokka.location:com.snap.camerakit//sourceFrom/#kotlin.Int#kotlin.Int#kotlin.Int#android.view.Choreographer#kotlin.Int#kotlin.Boolean#kotlin.Float#kotlin.Float#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/source-from.html +$dokka.location:com.snap.camerakit//supported/#android.content.Context/PointingToDeclaration/-camera-kit/com.snap.camerakit/supported.html +$dokka.location:com.snap.camerakit//toBitmap/TypeParam(bounds=[com.snap.camerakit.ImageProcessor])#kotlin.Int#kotlin.Int#kotlin.Int#com.snap.camerakit.ImageProcessor.Output.Purpose/PointingToDeclaration/-camera-kit/com.snap.camerakit/to-bitmap.html +$dokka.location:com.snap.camerakit//versionFrom/#android.content.Context/PointingToDeclaration/-camera-kit/com.snap.camerakit/version-from.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input.Frame///PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/index.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input.Frame/buffer/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/buffer.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input.Frame/recycle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/recycle.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input.Frame/samplesCount/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/-frame/samples-count.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/index.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input/bufferSize/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/buffer-size.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input/channels/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/channels.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input/sampleRate/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/sample-rate.html +$dokka.location:com.snap.camerakit/AudioProcessor.Input/subscribeTo/#com.snap.camerakit.common.Consumer[com.snap.camerakit.AudioProcessor.Input.Frame]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/AudioProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/index.html +$dokka.location:com.snap.camerakit/AudioProcessor/connectInput/#com.snap.camerakit.AudioProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-audio-processor/connect-input.html +$dokka.location:com.snap.camerakit/Experimental///PointingToDeclaration/-camera-kit/com.snap.camerakit/-experimental/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Failure.Graphics///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Failure.Graphics/Graphics/#kotlin.String?#kotlin.Throwable?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-failure/-graphics/-graphics.html +$dokka.location:com.snap.camerakit/ImageProcessor.Failure///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-failure/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.BackedBySurfaceTexture///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.BackedBySurfaceTexture/BackedBySurfaceTexture/#android.graphics.SurfaceTexture/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/-backed-by-surface-texture.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.BackedBySurfaceTexture/surfaceTexture/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-backed-by-surface-texture/surface-texture.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Capability.SURFACE_TRACKING///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/-s-u-r-f-a-c-e_-t-r-a-c-k-i-n-g/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Capability///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Capability/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/value-of.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Capability/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-capability/values.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-companion/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/horizontalFieldOfView/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/horizontal-field-of-view.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/recycle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/recycle.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/timestamp/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/timestamp.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/transformationMatrix/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/transformation-matrix.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Frame/verticalFieldOfView/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-frame/vertical-field-of-view.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/Center/#kotlin.Int#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/-center.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/aspectRatioDenominator/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-denominator.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/aspectRatioNumerator/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/aspect-ratio-numerator.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/equals.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/hash-code.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop.Center/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/-center/to-string.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.Crop///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-crop/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.MirrorFramesHorizontally///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-horizontally/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option.MirrorFramesVertically///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/-mirror-frames-vertically/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Option///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-option/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Pausable///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Pausable/pause/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/pause.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input.Pausable/resume/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/-pausable/resume.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/attachToGlContext/#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/attach-to-gl-context.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/detachFromGlContext/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/detach-from-gl-context.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/facingFront/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/facing-front.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/height/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/height.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/readFrame/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/read-frame.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/rotationDegrees/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/rotation-degrees.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/subscribeTo/#com.snap.camerakit.common.Consumer[com.snap.camerakit.ImageProcessor.Input]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/ImageProcessor.Input/width/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-input/width.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurface///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurface/BackedBySurface/#android.view.Surface#com.snap.camerakit.ImageProcessor.Output.Purpose/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/-backed-by-surface.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurface/purpose/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/purpose.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurface/surface/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface/surface.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurfaceTexture///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurfaceTexture/BackedBySurfaceTexture/#android.graphics.SurfaceTexture#com.snap.camerakit.ImageProcessor.Output.Purpose/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/-backed-by-surface-texture.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurfaceTexture/purpose/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/purpose.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.BackedBySurfaceTexture/surfaceTexture/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-backed-by-surface-texture/surface-texture.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-companion/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Frame///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Frame/recycle/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/recycle.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Frame/timestamp/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-frame/timestamp.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/ClearOnDisconnect/#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/-clear-on-disconnect.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/color/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/color.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/equals.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/hash-code.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.ClearOnDisconnect/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-clear-on-disconnect/to-string.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option.IgnoreDeviceRotation///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/-ignore-device-rotation/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Option///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-option/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose.PREVIEW///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-p-r-e-v-i-e-w/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose.RECORDING///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-r-e-c-o-r-d-i-n-g/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose.SNAPSHOT///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/-s-n-a-p-s-h-o-t/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/value-of.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output.Purpose/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/-purpose/values.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/index.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output/purpose/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/purpose.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output/rotationDegrees/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/rotation-degrees.html +$dokka.location:com.snap.camerakit/ImageProcessor.Output/writeFrame/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/-output/write-frame.html +$dokka.location:com.snap.camerakit/ImageProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/index.html +$dokka.location:com.snap.camerakit/ImageProcessor/connectInput/#com.snap.camerakit.ImageProcessor.Input#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html +$dokka.location:com.snap.camerakit/ImageProcessor/connectInput/#com.snap.camerakit.ImageProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/connect-input.html +$dokka.location:com.snap.camerakit/ImageProcessor/connectOutput/#com.snap.camerakit.ImageProcessor.Output#kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Output.Option]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html +$dokka.location:com.snap.camerakit/ImageProcessor/connectOutput/#com.snap.camerakit.ImageProcessor.Output/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/connect-output.html +$dokka.location:com.snap.camerakit/ImageProcessor/observeRequiredCapabilities/#com.snap.camerakit.common.Consumer[kotlin.collections.Set[com.snap.camerakit.ImageProcessor.Input.Capability]]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-image-processor/observe-required-capabilities.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/Prompt/#kotlin.String#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/-prompt.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/equals.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/hash-code.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/id/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/id.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/message/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/message.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Prompt/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-prompt/to-string.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate.ALWAYS///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-a-l-w-a-y-s/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate.NEVER///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-n-e-v-e-r/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate.WHEN_DISMISSED_OR_MISSING///PointingToDeclaration/{"org.jetbrains.dokka.links.EnumEntryDRIExtra":{"key":"org.jetbrains.dokka.links.EnumEntryDRIExtra"}}-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/-w-h-e-n_-d-i-s-m-i-s-s-e-d_-o-r_-m-i-s-s-i-n-g/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate/valueOf/#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/value-of.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.RequestUpdate/values/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-request-update/values.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Accepted///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Accepted/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-accepted/to-string.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Dismissed///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Dismissed/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-dismissed/to-string.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Missing///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result.Missing/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/-missing/to-string.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input.Result///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/-result/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/index.html +$dokka.location:com.snap.camerakit/LegalProcessor.Input/subscribeTo/#com.snap.camerakit.LegalProcessor.Input.Prompt#com.snap.camerakit.LegalProcessor.Input.RequestUpdate#com.snap.camerakit.common.Consumer[com.snap.camerakit.LegalProcessor.Input.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/LegalProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/index.html +$dokka.location:com.snap.camerakit/LegalProcessor/connectInput/#com.snap.camerakit.LegalProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/connect-input.html +$dokka.location:com.snap.camerakit/LegalProcessor/observe/#com.snap.camerakit.common.Consumer[com.snap.camerakit.LegalProcessor.Input.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/observe.html +$dokka.location:com.snap.camerakit/LegalProcessor/waitFor/#com.snap.camerakit.LegalProcessor.Input.RequestUpdate#com.snap.camerakit.common.Consumer[com.snap.camerakit.LegalProcessor.Input.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-legal-processor/wait-for.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements///PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/index.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/TrackingRequirements/#kotlin.Long#java.util.concurrent.TimeUnit/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/-tracking-requirements.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/equals.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/hash-code.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/to-string.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/updateInterval/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input.TrackingRequirements/updateIntervalTimeUnit/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/-tracking-requirements/update-interval-time-unit.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/index.html +$dokka.location:com.snap.camerakit/LocationProcessor.Input/subscribeTo/#com.snap.camerakit.LocationProcessor.Input.TrackingRequirements#com.snap.camerakit.common.Consumer[android.location.Location]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/LocationProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/index.html +$dokka.location:com.snap.camerakit/LocationProcessor/connectInput/#com.snap.camerakit.LocationProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-location-processor/connect-input.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.AllOriginal///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-all-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Images.Original///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Images.WithFace///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/-with-face/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Images///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-images/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Videos.Original///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType.Videos///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/-videos/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MediaType///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-media-type/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/MultipleMediaItemsToPickFrom/#kotlin.Array[com.snap.camerakit.MediaProcessor.Input.Requirements.MediaType]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/MultipleMediaItemsToPickFrom/#kotlin.collections.Set[com.snap.camerakit.MediaProcessor.Input.Requirements.MediaType]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/-multiple-media-items-to-pick-from.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/mediaType/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-type.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/mediaTypes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/media-types.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.MultipleMediaItemsToPickFrom/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-multiple-media-items-to-pick-from/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/SingleMediaItem/#kotlin.Array[com.snap.camerakit.MediaProcessor.Input.Requirements.MediaType]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/SingleMediaItem/#kotlin.collections.Set[com.snap.camerakit.MediaProcessor.Input.Requirements.MediaType]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/-single-media-item.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/mediaType/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-type.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/mediaTypes/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/media-types.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements.SingleMediaItem/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/-single-media-item/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Requirements///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-requirements/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/WithMediaItemsToPickFrom/#kotlin.collections.List[com.snap.camerakit.MediaProcessor.Media]#java.lang.Runnable?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/-with-media-items-to-pick-from.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/items/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/items.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/requestMore/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/request-more.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithMediaItemsToPickFrom/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-media-items-to-pick-from/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/WithSingleMediaItem/#com.snap.camerakit.MediaProcessor.Media/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/-with-single-media-item.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/item/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/item.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result.WithSingleMediaItem/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/-with-single-media-item/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input.Result///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/-result/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Input/subscribeTo/#com.snap.camerakit.MediaProcessor.Input.Requirements#com.snap.camerakit.common.Consumer[com.snap.camerakit.MediaProcessor.Input.Result]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/Face/#kotlin.Float#kotlin.Float#kotlin.Float#kotlin.Float/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/-face.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/height/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/height.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/width/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/width.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/x/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/x.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Face/y/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-face/y.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/ByUri/#android.net.Uri#kotlin.Int#kotlin.Int#kotlin.Int/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/-by-uri.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/height/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/height.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/rotationDegrees/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/rotation-degrees.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/uri.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original.ByUri/width/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/-by-uri/width.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.Original///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/WithFace/#com.snap.camerakit.MediaProcessor.Media.Image.Original#com.snap.camerakit.MediaProcessor.Media.Image.Face/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/-with-face.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/face/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/face.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/image/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/image.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image.WithFace/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/-with-face/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Image///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-image/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/ByUri/#android.net.Uri#kotlin.Long/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/-by-uri.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/durationInMillis/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/duration-in-millis.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/equals.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/hash-code.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/to-string.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original.ByUri/uri/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/-by-uri/uri.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video.Original///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/-original/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media.Video///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/-video/index.html +$dokka.location:com.snap.camerakit/MediaProcessor.Media///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/-media/index.html +$dokka.location:com.snap.camerakit/MediaProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/index.html +$dokka.location:com.snap.camerakit/MediaProcessor/connectInput/#com.snap.camerakit.MediaProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-media-processor/connect-input.html +$dokka.location:com.snap.camerakit/Processor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-processor/index.html +$dokka.location:com.snap.camerakit/SafeRenderAreaProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/index.html +$dokka.location:com.snap.camerakit/SafeRenderAreaProcessor.Input/subscribeTo/#com.snap.camerakit.common.Consumer[android.graphics.Rect]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-safe-render-area-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/SafeRenderAreaProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-safe-render-area-processor/index.html +$dokka.location:com.snap.camerakit/SafeRenderAreaProcessor/connectInput/#com.snap.camerakit.SafeRenderAreaProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-safe-render-area-processor/connect-input.html +$dokka.location:com.snap.camerakit/Session.Builder///PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/index.html +$dokka.location:com.snap.camerakit/Session.Builder/apiToken/#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/api-token.html +$dokka.location:com.snap.camerakit/Session.Builder/applicationId/#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/application-id.html +$dokka.location:com.snap.camerakit/Session.Builder/attachTo/#android.view.ViewStub#kotlin.Boolean/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html +$dokka.location:com.snap.camerakit/Session.Builder/attachTo/#android.view.ViewStub?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/attach-to.html +$dokka.location:com.snap.camerakit/Session.Builder/audioProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.AudioProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/audio-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/build/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/build.html +$dokka.location:com.snap.camerakit/Session.Builder/configureLenses/#com.snap.camerakit.common.Consumer[com.snap.camerakit.lenses.LensesComponent.Builder]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/configure-lenses.html +$dokka.location:com.snap.camerakit/Session.Builder/configureWith/#kotlin.String#kotlin.String/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/configure-with.html +$dokka.location:com.snap.camerakit/Session.Builder/handleErrorsWith/#com.snap.camerakit.common.Consumer[kotlin.Throwable]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/handle-errors-with.html +$dokka.location:com.snap.camerakit/Session.Builder/imageProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.ImageProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/image-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/legalProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.LegalProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/legal-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/locationProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.LocationProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/location-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/mediaProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.MediaProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/media-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/safeRenderAreaProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.SafeRenderAreaProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/safe-render-area-processor-source.html +$dokka.location:com.snap.camerakit/Session.Builder/userProcessorSource/#com.snap.camerakit.Source[com.snap.camerakit.UserProcessor]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-builder/user-processor-source.html +$dokka.location:com.snap.camerakit/Session.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-companion/index.html +$dokka.location:com.snap.camerakit/Session.Processor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/-processor/index.html +$dokka.location:com.snap.camerakit/Session///PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/index.html +$dokka.location:com.snap.camerakit/Session/adjustments/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/adjustments.html +$dokka.location:com.snap.camerakit/Session/close/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/close.html +$dokka.location:com.snap.camerakit/Session/lenses/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/lenses.html +$dokka.location:com.snap.camerakit/Session/processor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-session/processor.html +$dokka.location:com.snap.camerakit/Source.Noop///PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/-noop/index.html +$dokka.location:com.snap.camerakit/Source.Noop/attach/#com.snap.camerakit.Processor/PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/-noop/attach.html +$dokka.location:com.snap.camerakit/Source.Noop/get/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/-noop/get.html +$dokka.location:com.snap.camerakit/Source///PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/index.html +$dokka.location:com.snap.camerakit/Source/attach/#TypeParam(bounds=[com.snap.camerakit.Processor])/PointingToDeclaration/-camera-kit/com.snap.camerakit/-source/attach.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException///PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/index.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/UnauthorizedApplicationException/#kotlin.String#kotlin.String#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/UnauthorizedApplicationException/#kotlin.String#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/-unauthorized-application-exception.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/apiToken/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/api-token.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/applicationId/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/application-id.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/equals.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/hash-code.html +$dokka.location:com.snap.camerakit/UnauthorizedApplicationException/packageName/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-unauthorized-application-exception/package-name.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User///PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/index.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/User/#kotlin.String?#java.util.Date?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/-user.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/birthDate/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/birth-date.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/displayName/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/display-name.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/equals.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/hash-code.html +$dokka.location:com.snap.camerakit/UserProcessor.Input.User/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/-user/to-string.html +$dokka.location:com.snap.camerakit/UserProcessor.Input///PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/index.html +$dokka.location:com.snap.camerakit/UserProcessor.Input/subscribeTo/#com.snap.camerakit.common.Consumer[com.snap.camerakit.UserProcessor.Input.User]/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/-input/subscribe-to.html +$dokka.location:com.snap.camerakit/UserProcessor///PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/index.html +$dokka.location:com.snap.camerakit/UserProcessor/connectInput/#com.snap.camerakit.UserProcessor.Input/PointingToDeclaration/-camera-kit/com.snap.camerakit/-user-processor/connect-input.html +$dokka.location:com.snap.camerakit/Version.Companion///PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/-companion/index.html +$dokka.location:com.snap.camerakit/Version///PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/index.html +$dokka.location:com.snap.camerakit/Version/Version/#kotlin.Int#kotlin.Int#kotlin.Int#kotlin.String?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/-version.html +$dokka.location:com.snap.camerakit/Version/compareTo/#com.snap.camerakit.Version/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/compare-to.html +$dokka.location:com.snap.camerakit/Version/equals/#kotlin.Any?/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/equals.html +$dokka.location:com.snap.camerakit/Version/hashCode/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/hash-code.html +$dokka.location:com.snap.camerakit/Version/major/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/major.html +$dokka.location:com.snap.camerakit/Version/minor/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/minor.html +$dokka.location:com.snap.camerakit/Version/patch/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/patch.html +$dokka.location:com.snap.camerakit/Version/qualifier/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/qualifier.html +$dokka.location:com.snap.camerakit/Version/toString/#/PointingToDeclaration/-camera-kit/com.snap.camerakit/-version/to-string.html +com.snap.camerakit +com.snap.camerakit.adjustments +com.snap.camerakit.common +com.snap.camerakit.lenses + diff --git a/docs/api/android/1.30.0/images/anchor-copy-button.svg b/docs/api/android/1.30.0/images/anchor-copy-button.svg new file mode 100644 index 00000000..bab9d747 --- /dev/null +++ b/docs/api/android/1.30.0/images/anchor-copy-button.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/api/android/1.30.0/images/arrow_down.svg b/docs/api/android/1.30.0/images/arrow_down.svg new file mode 100644 index 00000000..c0388dee --- /dev/null +++ b/docs/api/android/1.30.0/images/arrow_down.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.30.0/images/copy-icon.svg b/docs/api/android/1.30.0/images/copy-icon.svg new file mode 100644 index 00000000..61440f0a --- /dev/null +++ b/docs/api/android/1.30.0/images/copy-icon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.30.0/images/copy-successful-icon.svg b/docs/api/android/1.30.0/images/copy-successful-icon.svg new file mode 100644 index 00000000..1865f739 --- /dev/null +++ b/docs/api/android/1.30.0/images/copy-successful-icon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.30.0/images/footer-go-to-link.svg b/docs/api/android/1.30.0/images/footer-go-to-link.svg new file mode 100644 index 00000000..0137e223 --- /dev/null +++ b/docs/api/android/1.30.0/images/footer-go-to-link.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.30.0/images/go-to-top-icon.svg b/docs/api/android/1.30.0/images/go-to-top-icon.svg new file mode 100644 index 00000000..d987f3ea --- /dev/null +++ b/docs/api/android/1.30.0/images/go-to-top-icon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/api/android/1.30.0/images/logo-icon.svg b/docs/api/android/1.30.0/images/logo-icon.svg new file mode 100644 index 00000000..1fea0877 --- /dev/null +++ b/docs/api/android/1.30.0/images/logo-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/docs/api/android/1.30.0/images/nav-icons/abstract-class-kotlin.svg b/docs/api/android/1.30.0/images/nav-icons/abstract-class-kotlin.svg new file mode 100644 index 00000000..a2069b8f --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/abstract-class-kotlin.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/abstract-class.svg b/docs/api/android/1.30.0/images/nav-icons/abstract-class.svg new file mode 100644 index 00000000..60182030 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/abstract-class.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/annotation-kotlin.svg b/docs/api/android/1.30.0/images/nav-icons/annotation-kotlin.svg new file mode 100644 index 00000000..932f1d3d --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/annotation-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/annotation.svg b/docs/api/android/1.30.0/images/nav-icons/annotation.svg new file mode 100644 index 00000000..b80c54b4 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/annotation.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/class-kotlin.svg b/docs/api/android/1.30.0/images/nav-icons/class-kotlin.svg new file mode 100644 index 00000000..46a21f65 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/class-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/class.svg b/docs/api/android/1.30.0/images/nav-icons/class.svg new file mode 100644 index 00000000..3f1ad167 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/class.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/enum-kotlin.svg b/docs/api/android/1.30.0/images/nav-icons/enum-kotlin.svg new file mode 100644 index 00000000..4a854596 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/enum-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/enum.svg b/docs/api/android/1.30.0/images/nav-icons/enum.svg new file mode 100644 index 00000000..fa7f2476 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/enum.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/exception-class.svg b/docs/api/android/1.30.0/images/nav-icons/exception-class.svg new file mode 100644 index 00000000..c0b2bdeb --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/exception-class.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/field-value.svg b/docs/api/android/1.30.0/images/nav-icons/field-value.svg new file mode 100644 index 00000000..20449c94 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/field-value.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/field-variable.svg b/docs/api/android/1.30.0/images/nav-icons/field-variable.svg new file mode 100644 index 00000000..3b074500 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/field-variable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/function.svg b/docs/api/android/1.30.0/images/nav-icons/function.svg new file mode 100644 index 00000000..f0da64a0 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/function.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/interface-kotlin.svg b/docs/api/android/1.30.0/images/nav-icons/interface-kotlin.svg new file mode 100644 index 00000000..bf07a148 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/interface-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/interface.svg b/docs/api/android/1.30.0/images/nav-icons/interface.svg new file mode 100644 index 00000000..32063ba2 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/interface.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/api/android/1.30.0/images/nav-icons/object.svg b/docs/api/android/1.30.0/images/nav-icons/object.svg new file mode 100644 index 00000000..9f427de4 --- /dev/null +++ b/docs/api/android/1.30.0/images/nav-icons/object.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/api/android/1.30.0/images/theme-toggle.svg b/docs/api/android/1.30.0/images/theme-toggle.svg new file mode 100644 index 00000000..2a8d750e --- /dev/null +++ b/docs/api/android/1.30.0/images/theme-toggle.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/docs/api/android/1.30.0/index.html b/docs/api/android/1.30.0/index.html new file mode 100644 index 00000000..6c702cd6 --- /dev/null +++ b/docs/api/android/1.30.0/index.html @@ -0,0 +1,126 @@ + + + + + CameraKit + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ +
+

CameraKit

+
+

Packages

+
+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+ +
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+ +
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+ +
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + diff --git a/docs/api/android/1.30.0/navigation.html b/docs/api/android/1.30.0/navigation.html new file mode 100644 index 00000000..d7011008 --- /dev/null +++ b/docs/api/android/1.30.0/navigation.html @@ -0,0 +1,788 @@ +
+ +
+ + +
+ +
+ +
+ +
+
+
+ + + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+
+ + +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+
+
+ +
+
+
+ +
+ +
+ +
+
+
+
+
+ + + + + +
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+ +
+
+ + + + +
+ +
+ +
+ +
+
+
+
+ +
+ +
+
+ +
+ + +
+ + +
+ +
+ +
+ +
+ +
+ +
+
+ +
+
+
+
+ +
+
+
+ +
+
+ + +
+
+ + +
+ +
+ +
+ +
+
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+ +
+
+ +
+
+
+ + +
+ +
+ +
+
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + +
+ +
+ +
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ + +
+ + +
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + + + + + + + + + +
+
+ diff --git a/docs/api/android/1.30.0/scripts/clipboard.js b/docs/api/android/1.30.0/scripts/clipboard.js new file mode 100644 index 00000000..b00ce246 --- /dev/null +++ b/docs/api/android/1.30.0/scripts/clipboard.js @@ -0,0 +1,52 @@ +window.addEventListener('load', () => { + document.querySelectorAll('span.copy-icon').forEach(element => { + element.addEventListener('click', (el) => copyElementsContentToClipboard(element)); + }) + + document.querySelectorAll('span.anchor-icon').forEach(element => { + element.addEventListener('click', (el) => { + if(element.hasAttribute('pointing-to')){ + const location = hrefWithoutCurrentlyUsedAnchor() + '#' + element.getAttribute('pointing-to') + copyTextToClipboard(element, location) + } + }); + }) +}) + +const copyElementsContentToClipboard = (element) => { + const selection = window.getSelection(); + const range = document.createRange(); + range.selectNodeContents(element.parentNode.parentNode); + selection.removeAllRanges(); + selection.addRange(range); + + copyAndShowPopup(element, () => selection.removeAllRanges()) +} + +const copyTextToClipboard = (element, text) => { + var textarea = document.createElement("textarea"); + textarea.textContent = text; + textarea.style.position = "fixed"; + document.body.appendChild(textarea); + textarea.select(); + + copyAndShowPopup(element, () => document.body.removeChild(textarea)) +} + +const copyAndShowPopup = (element, after) => { + try { + document.execCommand('copy'); + element.nextElementSibling.classList.add('active-popup'); + setTimeout(() => { + element.nextElementSibling.classList.remove('active-popup'); + }, 1200); + } catch (e) { + console.error('Failed to write to clipboard:', e) + } + finally { + if(after) after() + } +} + +const hrefWithoutCurrentlyUsedAnchor = () => window.location.href.split('#')[0] + diff --git a/docs/api/android/1.30.0/scripts/main.js b/docs/api/android/1.30.0/scripts/main.js new file mode 100644 index 00000000..ca7ae018 --- /dev/null +++ b/docs/api/android/1.30.0/scripts/main.js @@ -0,0 +1,44 @@ +(()=>{var e={8527:e=>{e.exports=''},5570:e=>{e.exports=''},107:e=>{e.exports=''},7224:e=>{e.exports=''},538:e=>{e.exports=''},1924:(e,n,t)=>{"use strict";var r=t(210),o=t(5559),i=o(r("String.prototype.indexOf"));e.exports=function(e,n){var t=r(e,!!n);return"function"==typeof t&&i(e,".prototype.")>-1?o(t):t}},5559:(e,n,t)=>{"use strict";var r=t(8612),o=t(210),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),l=o("%Reflect.apply%",!0)||r.call(a,i),c=o("%Object.getOwnPropertyDescriptor%",!0),u=o("%Object.defineProperty%",!0),s=o("%Math.max%");if(u)try{u({},"a",{value:1})}catch(e){u=null}e.exports=function(e){var n=l(r,a,arguments);if(c&&u){var t=c(n,"length");t.configurable&&u(n,"length",{value:1+s(0,e.length-(arguments.length-1))})}return n};var f=function(){return l(r,i,arguments)};u?u(e.exports,"apply",{value:f}):e.exports.apply=f},4184:(e,n)=>{var t; +/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],n=0;n{"use strict";e.exports=function(e,n){var t=this,r=t.constructor;return t.options=Object.assign({storeInstancesGlobally:!0},n||{}),t.callbacks={},t.directMap={},t.sequenceLevels={},t.resetTimer=null,t.ignoreNextKeyup=!1,t.ignoreNextKeypress=!1,t.nextExpectedAction=!1,t.element=e,t.addEvents(),t.options.storeInstancesGlobally&&r.instances.push(t),t},e.exports.prototype.bind=t(2207),e.exports.prototype.bindMultiple=t(3396),e.exports.prototype.unbind=t(9208),e.exports.prototype.trigger=t(9855),e.exports.prototype.reset=t(6214),e.exports.prototype.stopCallback=t(3450),e.exports.prototype.handleKey=t(3067),e.exports.prototype.addEvents=t(718),e.exports.prototype.bindSingle=t(8763),e.exports.prototype.getKeyInfo=t(5825),e.exports.prototype.pickBestAction=t(8608),e.exports.prototype.getReverseMap=t(3956),e.exports.prototype.getMatches=t(3373),e.exports.prototype.resetSequences=t(3346),e.exports.prototype.fireCallback=t(2684),e.exports.prototype.bindSequence=t(7103),e.exports.prototype.resetSequenceTimer=t(7309),e.exports.prototype.detach=t(7554),e.exports.instances=[],e.exports.reset=t(1822),e.exports.REVERSE_MAP=null},718:(e,n,t)=>{"use strict";e.exports=function(){var e=this,n=t(4323),r=e.element;e.eventHandler=t(9646).bind(e),n(r,"keypress",e.eventHandler),n(r,"keydown",e.eventHandler),n(r,"keyup",e.eventHandler)}},2207:e=>{"use strict";e.exports=function(e,n,t){return e=e instanceof Array?e:[e],this.bindMultiple(e,n,t),this}},3396:e=>{"use strict";e.exports=function(e,n,t){for(var r=0;r{"use strict";e.exports=function(e,n,r,o){var i=this;function a(n){return function(){i.nextExpectedAction=n,++i.sequenceLevels[e],i.resetSequenceTimer()}}function l(n){var a;i.fireCallback(r,n,e),"keyup"!==o&&(a=t(6770),i.ignoreNextKeyup=a(n)),setTimeout((function(){i.resetSequences()}),10)}i.sequenceLevels[e]=0;for(var c=0;c{"use strict";e.exports=function(e,n,t,r,o){var i=this;i.directMap[e+":"+t]=n;var a,l=(e=e.replace(/\s+/g," ")).split(" ");l.length>1?i.bindSequence(e,l,n,t):(a=i.getKeyInfo(e,t),i.callbacks[a.key]=i.callbacks[a.key]||[],i.getMatches(a.key,a.modifiers,{type:a.action},r,e,o),i.callbacks[a.key][r?"unshift":"push"]({callback:n,modifiers:a.modifiers,action:a.action,seq:r,level:o,combo:e}))}},7554:(e,n,t)=>{var r=t(4323).off;e.exports=function(){var e=this,n=e.element;r(n,"keypress",e.eventHandler),r(n,"keydown",e.eventHandler),r(n,"keyup",e.eventHandler)}},4323:e=>{function n(e,n,t,r){return!e.addEventListener&&(n="on"+n),(e.addEventListener||e.attachEvent).call(e,n,t,r),t}e.exports=n,e.exports.on=n,e.exports.off=function(e,n,t,r){return!e.removeEventListener&&(n="on"+n),(e.removeEventListener||e.detachEvent).call(e,n,t,r),t}},2684:(e,n,t)=>{"use strict";e.exports=function(e,n,r,o){this.stopCallback(n,n.target||n.srcElement,r,o)||!1===e(n,r)&&(t(1350)(n),t(6103)(n))}},5825:(e,n,t)=>{"use strict";e.exports=function(e,n){var r,o,i,a,l,c,u=[];for(r=t(4520)(e),a=t(7549),l=t(5355),c=t(8581),i=0;i{"use strict";e.exports=function(e,n,r,o,i,a){var l,c,u,s,f=this,p=[],d=r.type;"keypress"!==d||r.code&&"Arrow"===r.code.slice(0,5)||(f.callbacks["any-character"]||[]).forEach((function(e){p.push(e)}));if(!f.callbacks[e])return p;for(u=t(8581),"keyup"===d&&u(e)&&(n=[e]),l=0;l{"use strict";e.exports=function(){var e,n=this.constructor;if(!n.REVERSE_MAP)for(var r in n.REVERSE_MAP={},e=t(4766))r>95&&r<112||e.hasOwnProperty(r)&&(n.REVERSE_MAP[e[r]]=r);return n.REVERSE_MAP}},3067:(e,n,t)=>{"use strict";e.exports=function(e,n,r){var o,i,a,l,c=this,u={},s=0,f=!1;for(o=c.getMatches(e,n,r),i=0;i{"use strict";e.exports=function(e){var n,r=this;"number"!=typeof e.which&&(e.which=e.keyCode);var o=t(6770)(e);void 0!==o&&("keyup"!==e.type||r.ignoreNextKeyup!==o?(n=t(4610),r.handleKey(o,n(e),e)):r.ignoreNextKeyup=!1)}},5532:e=>{"use strict";e.exports=function(e,n){return e.sort().join(",")===n.sort().join(",")}},8608:e=>{"use strict";e.exports=function(e,n,t){return t||(t=this.getReverseMap()[e]?"keydown":"keypress"),"keypress"===t&&n.length&&(t="keydown"),t}},6214:e=>{"use strict";e.exports=function(){return this.callbacks={},this.directMap={},this}},7309:e=>{"use strict";e.exports=function(){var e=this;clearTimeout(e.resetTimer),e.resetTimer=setTimeout((function(){e.resetSequences()}),1e3)}},3346:e=>{"use strict";e.exports=function(e){var n=this;e=e||{};var t,r=!1;for(t in n.sequenceLevels)e[t]?r=!0:n.sequenceLevels[t]=0;r||(n.nextExpectedAction=!1)}},3450:e=>{"use strict";e.exports=function(e,n){if((" "+n.className+" ").indexOf(" combokeys ")>-1)return!1;var t=n.tagName.toLowerCase();return"input"===t||"select"===t||"textarea"===t||n.isContentEditable}},9855:e=>{"use strict";e.exports=function(e,n){return this.directMap[e+":"+n]&&this.directMap[e+":"+n]({},e),this}},9208:e=>{"use strict";e.exports=function(e,n){return this.bind(e,(function(){}),n)}},1822:e=>{"use strict";e.exports=function(){this.instances.forEach((function(e){e.reset()}))}},6770:(e,n,t)=>{"use strict";e.exports=function(e){var n,r;if(n=t(4766),r=t(5295),"keypress"===e.type){var o=String.fromCharCode(e.which);return e.shiftKey||(o=o.toLowerCase()),o}return void 0!==n[e.which]?n[e.which]:void 0!==r[e.which]?r[e.which]:String.fromCharCode(e.which).toLowerCase()}},4610:e=>{"use strict";e.exports=function(e){var n=[];return e.shiftKey&&n.push("shift"),e.altKey&&n.push("alt"),e.ctrlKey&&n.push("ctrl"),e.metaKey&&n.push("meta"),n}},8581:e=>{"use strict";e.exports=function(e){return"shift"===e||"ctrl"===e||"alt"===e||"meta"===e}},4520:e=>{"use strict";e.exports=function(e){return"+"===e?["+"]:e.split("+")}},1350:e=>{"use strict";e.exports=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1}},5355:e=>{"use strict";e.exports={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"}},7549:e=>{"use strict";e.exports={option:"alt",command:"meta",return:"enter",escape:"esc",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"}},5295:e=>{"use strict";e.exports={106:"*",107:"plus",109:"minus",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}},4766:e=>{"use strict";e.exports={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",173:"minus",187:"plus",189:"minus",224:"meta"};for(var n=1;n<20;++n)e.exports[111+n]="f"+n;for(n=0;n<=9;++n)e.exports[n+96]=n},6103:e=>{"use strict";e.exports=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}},3362:()=>{var e;!function(){var e=Math.PI,n=2*e,t=e/180,r=document.createElement("div");document.head.appendChild(r);var o=self.ConicGradient=function(e){o.all.push(this),e=e||{},this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.repeating=!!e.repeating,this.size=e.size||Math.max(innerWidth,innerHeight),this.canvas.width=this.canvas.height=this.size;var n=e.stops;this.stops=(n||"").split(/\s*,(?![^(]*\))\s*/),this.from=0;for(var t=0;t0){var i=this.stops[0].clone();i.pos=0,this.stops.unshift(i)}if(void 0===this.stops[this.stops.length-1].pos)this.stops[this.stops.length-1].pos=1;else if(!this.repeating&&this.stops[this.stops.length-1].pos<1){var a=this.stops[this.stops.length-1].clone();a.pos=1,this.stops.push(a)}if(this.stops.forEach((function(e,n){if(void 0===e.pos){for(var t=n+1;this[t];t++)if(void 0!==this[t].pos){e.pos=this[n-1].pos+(this[t].pos-this[n-1].pos)/(t-n+1);break}}else n>0&&(e.pos=Math.max(e.pos,this[n-1].pos))}),this.stops),this.repeating){var l=(n=this.stops.slice())[n.length-1].pos-n[0].pos;for(t=0;this.stops[this.stops.length-1].pos<1&&t<1e4;t++)for(var c=0;c'},get png(){return this.canvas.toDataURL()},get r(){return Math.sqrt(2)*this.size/2},paint:function(){var e,n,r,o=this.context,i=this.r,a=this.size/2,l=0,c=this.stops[l];o.translate(this.size/2,this.size/2),o.rotate(-90*t),o.rotate(this.from*t),o.translate(-this.size/2,-this.size/2);for(var u=0;u<360;){if(u/360+1e-5>=c.pos){do{e=c,l++,c=this.stops[l]}while(c&&c!=e&&c.pos===e.pos);if(!c)break;var s=e.color+""==c.color+""&&e!=c;n=e.color.map((function(e,n){return c.color[n]-e}))}r=(u/360-e.pos)/(c.pos-e.pos);var f=s?c.color:n.map((function(n,t){var o=n*r+e.color[t];return t<3?255&o:o}));if(o.fillStyle="rgba("+f.join(",")+")",o.beginPath(),o.moveTo(a,a),s)var p=360*(c.pos-e.pos);else p=.5;var d=u*t,h=(d=Math.min(360*t,d))+p*t;h=Math.min(360*t,h+.02),o.arc(a,a,i,d,h),o.closePath(),o.fill(),u+=p}}},o.ColorStop=function(e,t){if(this.gradient=e,t){var r=t.match(/^(.+?)(?:\s+([\d.]+)(%|deg|turn|grad|rad)?)?(?:\s+([\d.]+)(%|deg|turn|grad|rad)?)?\s*$/);if(this.color=o.ColorStop.colorToRGBA(r[1]),r[2]){var i=r[3];"%"==i||"0"===r[2]&&!i?this.pos=r[2]/100:"turn"==i?this.pos=+r[2]:"deg"==i?this.pos=r[2]/360:"grad"==i?this.pos=r[2]/400:"rad"==i&&(this.pos=r[2]/n)}r[4]&&(this.next=new o.ColorStop(e,r[1]+" "+r[4]+r[5]))}},o.ColorStop.prototype={clone:function(){var e=new o.ColorStop(this.gradient);return e.color=this.color,e.pos=this.pos,e},toString:function(){return"rgba("+this.color.join(", ")+") "+100*this.pos+"%"}},o.ColorStop.colorToRGBA=function(e){if(!Array.isArray(e)&&-1==e.indexOf("from")){r.style.color=e;var n=getComputedStyle(r).color.match(/rgba?\(([\d.]+), ([\d.]+), ([\d.]+)(?:, ([\d.]+))?\)/);return n&&(n.shift(),(n=n.map((function(e){return+e})))[3]=isNaN(n[3])?1:n[3]),n||[0,0,0,0]}return e}}(),self.StyleFix&&((e=document.createElement("p")).style.backgroundImage="conic-gradient(white, black)",e.style.backgroundImage=PrefixFree.prefix+"conic-gradient(white, black)",e.style.backgroundImage||StyleFix.register((function(e,n){return e.indexOf("conic-gradient")>-1&&(e=e.replace(/(?:repeating-)?conic-gradient\(\s*((?:\([^()]+\)|[^;()}])+?)\)/g,(function(e,n){return new ConicGradient({stops:n,repeating:e.indexOf("repeating-")>-1})}))),e})))},9662:(e,n,t)=>{var r=t(7854),o=t(614),i=t(6330),a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not a function")}},9483:(e,n,t)=>{var r=t(7854),o=t(4411),i=t(6330),a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not a constructor")}},6077:(e,n,t)=>{var r=t(7854),o=t(614),i=r.String,a=r.TypeError;e.exports=function(e){if("object"==typeof e||o(e))return e;throw a("Can't set "+i(e)+" as a prototype")}},1223:(e,n,t)=>{var r=t(5112),o=t(30),i=t(3070),a=r("unscopables"),l=Array.prototype;null==l[a]&&i.f(l,a,{configurable:!0,value:o(null)}),e.exports=function(e){l[a][e]=!0}},1530:(e,n,t)=>{"use strict";var r=t(8710).charAt;e.exports=function(e,n,t){return n+(t?r(e,n).length:1)}},5787:(e,n,t)=>{var r=t(7854),o=t(7976),i=r.TypeError;e.exports=function(e,n){if(o(n,e))return e;throw i("Incorrect invocation")}},9670:(e,n,t)=>{var r=t(7854),o=t(111),i=r.String,a=r.TypeError;e.exports=function(e){if(o(e))return e;throw a(i(e)+" is not an object")}},7556:(e,n,t)=>{var r=t(7293);e.exports=r((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))},8533:(e,n,t)=>{"use strict";var r=t(2092).forEach,o=t(9341)("forEach");e.exports=o?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},8457:(e,n,t)=>{"use strict";var r=t(7854),o=t(9974),i=t(6916),a=t(7908),l=t(3411),c=t(7659),u=t(4411),s=t(6244),f=t(6135),p=t(8554),d=t(1246),h=r.Array;e.exports=function(e){var n=a(e),t=u(this),r=arguments.length,g=r>1?arguments[1]:void 0,v=void 0!==g;v&&(g=o(g,r>2?arguments[2]:void 0));var A,b,m,y,E,_,C=d(n),w=0;if(!C||this==h&&c(C))for(A=s(n),b=t?new this(A):h(A);A>w;w++)_=v?g(n[w],w):n[w],f(b,w,_);else for(E=(y=p(n,C)).next,b=t?new this:[];!(m=i(E,y)).done;w++)_=v?l(y,g,[m.value,w],!0):m.value,f(b,w,_);return b.length=w,b}},1318:(e,n,t)=>{var r=t(5656),o=t(1400),i=t(6244),a=function(e){return function(n,t,a){var l,c=r(n),u=i(c),s=o(a,u);if(e&&t!=t){for(;u>s;)if((l=c[s++])!=l)return!0}else for(;u>s;s++)if((e||s in c)&&c[s]===t)return e||s||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},2092:(e,n,t)=>{var r=t(9974),o=t(1702),i=t(8361),a=t(7908),l=t(6244),c=t(5417),u=o([].push),s=function(e){var n=1==e,t=2==e,o=3==e,s=4==e,f=6==e,p=7==e,d=5==e||f;return function(h,g,v,A){for(var b,m,y=a(h),E=i(y),_=r(g,v),C=l(E),w=0,x=A||c,k=n?x(h,C):t||p?x(h,0):void 0;C>w;w++)if((d||w in E)&&(m=_(b=E[w],w,y),e))if(n)k[w]=m;else if(m)switch(e){case 3:return!0;case 5:return b;case 6:return w;case 2:u(k,b)}else switch(e){case 4:return!1;case 7:u(k,b)}return f?-1:o||s?s:k}};e.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6),filterReject:s(7)}},1194:(e,n,t)=>{var r=t(7293),o=t(5112),i=t(7392),a=o("species");e.exports=function(e){return i>=51||!r((function(){var n=[];return(n.constructor={})[a]=function(){return{foo:1}},1!==n[e](Boolean).foo}))}},9341:(e,n,t)=>{"use strict";var r=t(7293);e.exports=function(e,n){var t=[][e];return!!t&&r((function(){t.call(null,n||function(){throw 1},1)}))}},3671:(e,n,t)=>{var r=t(7854),o=t(9662),i=t(7908),a=t(8361),l=t(6244),c=r.TypeError,u=function(e){return function(n,t,r,u){o(t);var s=i(n),f=a(s),p=l(s),d=e?p-1:0,h=e?-1:1;if(r<2)for(;;){if(d in f){u=f[d],d+=h;break}if(d+=h,e?d<0:p<=d)throw c("Reduce of empty array with no initial value")}for(;e?d>=0:p>d;d+=h)d in f&&(u=t(u,f[d],d,s));return u}};e.exports={left:u(!1),right:u(!0)}},206:(e,n,t)=>{var r=t(1702);e.exports=r([].slice)},4362:(e,n,t)=>{var r=t(206),o=Math.floor,i=function(e,n){var t=e.length,c=o(t/2);return t<8?a(e,n):l(e,i(r(e,0,c),n),i(r(e,c),n),n)},a=function(e,n){for(var t,r,o=e.length,i=1;i0;)e[r]=e[--r];r!==i++&&(e[r]=t)}return e},l=function(e,n,t,r){for(var o=n.length,i=t.length,a=0,l=0;a{var r=t(7854),o=t(3157),i=t(4411),a=t(111),l=t(5112)("species"),c=r.Array;e.exports=function(e){var n;return o(e)&&(n=e.constructor,(i(n)&&(n===c||o(n.prototype))||a(n)&&null===(n=n[l]))&&(n=void 0)),void 0===n?c:n}},5417:(e,n,t)=>{var r=t(7475);e.exports=function(e,n){return new(r(e))(0===n?0:n)}},3411:(e,n,t)=>{var r=t(9670),o=t(9212);e.exports=function(e,n,t,i){try{return i?n(r(t)[0],t[1]):n(t)}catch(n){o(e,"throw",n)}}},7072:(e,n,t)=>{var r=t(5112)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,n){if(!n&&!o)return!1;var t=!1;try{var i={};i[r]=function(){return{next:function(){return{done:t=!0}}}},e(i)}catch(e){}return t}},4326:(e,n,t)=>{var r=t(1702),o=r({}.toString),i=r("".slice);e.exports=function(e){return i(o(e),8,-1)}},648:(e,n,t)=>{var r=t(7854),o=t(1694),i=t(614),a=t(4326),l=t(5112)("toStringTag"),c=r.Object,u="Arguments"==a(function(){return arguments}());e.exports=o?a:function(e){var n,t,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,n){try{return e[n]}catch(e){}}(n=c(e),l))?t:u?a(n):"Object"==(r=a(n))&&i(n.callee)?"Arguments":r}},5631:(e,n,t)=>{"use strict";var r=t(3070).f,o=t(30),i=t(2248),a=t(9974),l=t(5787),c=t(408),u=t(654),s=t(6340),f=t(9781),p=t(2423).fastKey,d=t(9909),h=d.set,g=d.getterFor;e.exports={getConstructor:function(e,n,t,u){var s=e((function(e,r){l(e,d),h(e,{type:n,index:o(null),first:void 0,last:void 0,size:0}),f||(e.size=0),null!=r&&c(r,e[u],{that:e,AS_ENTRIES:t})})),d=s.prototype,v=g(n),A=function(e,n,t){var r,o,i=v(e),a=b(e,n);return a?a.value=t:(i.last=a={index:o=p(n,!0),key:n,value:t,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),f?i.size++:e.size++,"F"!==o&&(i.index[o]=a)),e},b=function(e,n){var t,r=v(e),o=p(n);if("F"!==o)return r.index[o];for(t=r.first;t;t=t.next)if(t.key==n)return t};return i(d,{clear:function(){for(var e=v(this),n=e.index,t=e.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=void 0),delete n[t.index],t=t.next;e.first=e.last=void 0,f?e.size=0:this.size=0},delete:function(e){var n=this,t=v(n),r=b(n,e);if(r){var o=r.next,i=r.previous;delete t.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),t.first==r&&(t.first=o),t.last==r&&(t.last=i),f?t.size--:n.size--}return!!r},forEach:function(e){for(var n,t=v(this),r=a(e,arguments.length>1?arguments[1]:void 0);n=n?n.next:t.first;)for(r(n.value,n.key,this);n&&n.removed;)n=n.previous},has:function(e){return!!b(this,e)}}),i(d,t?{get:function(e){var n=b(this,e);return n&&n.value},set:function(e,n){return A(this,0===e?0:e,n)}}:{add:function(e){return A(this,e=0===e?0:e,e)}}),f&&r(d,"size",{get:function(){return v(this).size}}),s},setStrong:function(e,n,t){var r=n+" Iterator",o=g(n),i=g(r);u(e,n,(function(e,n){h(this,{type:r,target:e,state:o(e),kind:n,last:void 0})}),(function(){for(var e=i(this),n=e.kind,t=e.last;t&&t.removed;)t=t.previous;return e.target&&(e.last=t=t?t.next:e.state.first)?"keys"==n?{value:t.key,done:!1}:"values"==n?{value:t.value,done:!1}:{value:[t.key,t.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),t?"entries":"values",!t,!0),s(n)}}},9320:(e,n,t)=>{"use strict";var r=t(1702),o=t(2248),i=t(2423).getWeakData,a=t(9670),l=t(111),c=t(5787),u=t(408),s=t(2092),f=t(2597),p=t(9909),d=p.set,h=p.getterFor,g=s.find,v=s.findIndex,A=r([].splice),b=0,m=function(e){return e.frozen||(e.frozen=new y)},y=function(){this.entries=[]},E=function(e,n){return g(e.entries,(function(e){return e[0]===n}))};y.prototype={get:function(e){var n=E(this,e);if(n)return n[1]},has:function(e){return!!E(this,e)},set:function(e,n){var t=E(this,e);t?t[1]=n:this.entries.push([e,n])},delete:function(e){var n=v(this.entries,(function(n){return n[0]===e}));return~n&&A(this.entries,n,1),!!~n}},e.exports={getConstructor:function(e,n,t,r){var s=e((function(e,o){c(e,p),d(e,{type:n,id:b++,frozen:void 0}),null!=o&&u(o,e[r],{that:e,AS_ENTRIES:t})})),p=s.prototype,g=h(n),v=function(e,n,t){var r=g(e),o=i(a(n),!0);return!0===o?m(r).set(n,t):o[r.id]=t,e};return o(p,{delete:function(e){var n=g(this);if(!l(e))return!1;var t=i(e);return!0===t?m(n).delete(e):t&&f(t,n.id)&&delete t[n.id]},has:function(e){var n=g(this);if(!l(e))return!1;var t=i(e);return!0===t?m(n).has(e):t&&f(t,n.id)}}),o(p,t?{get:function(e){var n=g(this);if(l(e)){var t=i(e);return!0===t?m(n).get(e):t?t[n.id]:void 0}},set:function(e,n){return v(this,e,n)}}:{add:function(e){return v(this,e,!0)}}),s}}},7710:(e,n,t)=>{"use strict";var r=t(2109),o=t(7854),i=t(1702),a=t(4705),l=t(1320),c=t(2423),u=t(408),s=t(5787),f=t(614),p=t(111),d=t(7293),h=t(7072),g=t(8003),v=t(9587);e.exports=function(e,n,t){var A=-1!==e.indexOf("Map"),b=-1!==e.indexOf("Weak"),m=A?"set":"add",y=o[e],E=y&&y.prototype,_=y,C={},w=function(e){var n=i(E[e]);l(E,e,"add"==e?function(e){return n(this,0===e?0:e),this}:"delete"==e?function(e){return!(b&&!p(e))&&n(this,0===e?0:e)}:"get"==e?function(e){return b&&!p(e)?void 0:n(this,0===e?0:e)}:"has"==e?function(e){return!(b&&!p(e))&&n(this,0===e?0:e)}:function(e,t){return n(this,0===e?0:e,t),this})};if(a(e,!f(y)||!(b||E.forEach&&!d((function(){(new y).entries().next()})))))_=t.getConstructor(n,e,A,m),c.enable();else if(a(e,!0)){var x=new _,k=x[m](b?{}:-0,1)!=x,S=d((function(){x.has(1)})),O=h((function(e){new y(e)})),B=!b&&d((function(){for(var e=new y,n=5;n--;)e[m](n,n);return!e.has(-0)}));O||((_=n((function(e,n){s(e,E);var t=v(new y,e,_);return null!=n&&u(n,t[m],{that:t,AS_ENTRIES:A}),t}))).prototype=E,E.constructor=_),(S||B)&&(w("delete"),w("has"),A&&w("get")),(B||k)&&w(m),b&&E.clear&&delete E.clear}return C[e]=_,r({global:!0,forced:_!=y},C),g(_,e),b||t.setStrong(_,e,A),_}},9920:(e,n,t)=>{var r=t(2597),o=t(3887),i=t(1236),a=t(3070);e.exports=function(e,n){for(var t=o(n),l=a.f,c=i.f,u=0;u{var r=t(5112)("match");e.exports=function(e){var n=/./;try{"/./"[e](n)}catch(t){try{return n[r]=!1,"/./"[e](n)}catch(e){}}return!1}},8544:(e,n,t)=>{var r=t(7293);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},4230:(e,n,t)=>{var r=t(1702),o=t(4488),i=t(1340),a=/"/g,l=r("".replace);e.exports=function(e,n,t,r){var c=i(o(e)),u="<"+n;return""!==t&&(u+=" "+t+'="'+l(i(r),a,""")+'"'),u+">"+c+""}},4994:(e,n,t)=>{"use strict";var r=t(3383).IteratorPrototype,o=t(30),i=t(9114),a=t(8003),l=t(7497),c=function(){return this};e.exports=function(e,n,t){var u=n+" Iterator";return e.prototype=o(r,{next:i(1,t)}),a(e,u,!1,!0),l[u]=c,e}},8880:(e,n,t)=>{var r=t(9781),o=t(3070),i=t(9114);e.exports=r?function(e,n,t){return o.f(e,n,i(1,t))}:function(e,n,t){return e[n]=t,e}},9114:e=>{e.exports=function(e,n){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:n}}},6135:(e,n,t)=>{"use strict";var r=t(4948),o=t(3070),i=t(9114);e.exports=function(e,n,t){var a=r(n);a in e?o.f(e,a,i(0,t)):e[a]=t}},8709:(e,n,t)=>{"use strict";var r=t(7854),o=t(9670),i=t(2140),a=r.TypeError;e.exports=function(e){if(o(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw a("Incorrect hint");return i(this,e)}},654:(e,n,t)=>{"use strict";var r=t(2109),o=t(6916),i=t(1913),a=t(6530),l=t(614),c=t(4994),u=t(9518),s=t(7674),f=t(8003),p=t(8880),d=t(1320),h=t(5112),g=t(7497),v=t(3383),A=a.PROPER,b=a.CONFIGURABLE,m=v.IteratorPrototype,y=v.BUGGY_SAFARI_ITERATORS,E=h("iterator"),_="keys",C="values",w="entries",x=function(){return this};e.exports=function(e,n,t,a,h,v,k){c(t,n,a);var S,O,B,I=function(e){if(e===h&&R)return R;if(!y&&e in j)return j[e];switch(e){case _:case C:case w:return function(){return new t(this,e)}}return function(){return new t(this)}},T=n+" Iterator",P=!1,j=e.prototype,z=j[E]||j["@@iterator"]||h&&j[h],R=!y&&z||I(h),M="Array"==n&&j.entries||z;if(M&&(S=u(M.call(new e)))!==Object.prototype&&S.next&&(i||u(S)===m||(s?s(S,m):l(S[E])||d(S,E,x)),f(S,T,!0,!0),i&&(g[T]=x)),A&&h==C&&z&&z.name!==C&&(!i&&b?p(j,"name",C):(P=!0,R=function(){return o(z,this)})),h)if(O={values:I(C),keys:v?R:I(_),entries:I(w)},k)for(B in O)(y||P||!(B in j))&&d(j,B,O[B]);else r({target:n,proto:!0,forced:y||P},O);return i&&!k||j[E]===R||d(j,E,R,{name:h}),g[n]=R,O}},7235:(e,n,t)=>{var r=t(857),o=t(2597),i=t(6061),a=t(3070).f;e.exports=function(e){var n=r.Symbol||(r.Symbol={});o(n,e)||a(n,e,{value:i.f(e)})}},9781:(e,n,t)=>{var r=t(7293);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},317:(e,n,t)=>{var r=t(7854),o=t(111),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},8324:e=>{e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},8509:(e,n,t)=>{var r=t(317)("span").classList,o=r&&r.constructor&&r.constructor.prototype;e.exports=o===Object.prototype?void 0:o},8886:(e,n,t)=>{var r=t(8113).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},256:(e,n,t)=>{var r=t(8113);e.exports=/MSIE|Trident/.test(r)},5268:(e,n,t)=>{var r=t(4326),o=t(7854);e.exports="process"==r(o.process)},8113:(e,n,t)=>{var r=t(5005);e.exports=r("navigator","userAgent")||""},7392:(e,n,t)=>{var r,o,i=t(7854),a=t(8113),l=i.process,c=i.Deno,u=l&&l.versions||c&&c.version,s=u&&u.v8;s&&(o=(r=s.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),e.exports=o},8008:(e,n,t)=>{var r=t(8113).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},748:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:(e,n,t)=>{var r=t(7854),o=t(1236).f,i=t(8880),a=t(1320),l=t(3505),c=t(9920),u=t(4705);e.exports=function(e,n){var t,s,f,p,d,h=e.target,g=e.global,v=e.stat;if(t=g?r:v?r[h]||l(h,{}):(r[h]||{}).prototype)for(s in n){if(p=n[s],f=e.noTargetGet?(d=o(t,s))&&d.value:t[s],!u(g?s:h+(v?".":"#")+s,e.forced)&&void 0!==f){if(typeof p==typeof f)continue;c(p,f)}(e.sham||f&&f.sham)&&i(p,"sham",!0),a(t,s,p,e)}}},7293:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},7007:(e,n,t)=>{"use strict";t(4916);var r=t(1702),o=t(1320),i=t(2261),a=t(7293),l=t(5112),c=t(8880),u=l("species"),s=RegExp.prototype;e.exports=function(e,n,t,f){var p=l(e),d=!a((function(){var n={};return n[p]=function(){return 7},7!=""[e](n)})),h=d&&!a((function(){var n=!1,t=/a/;return"split"===e&&((t={}).constructor={},t.constructor[u]=function(){return t},t.flags="",t[p]=/./[p]),t.exec=function(){return n=!0,null},t[p](""),!n}));if(!d||!h||t){var g=r(/./[p]),v=n(p,""[e],(function(e,n,t,o,a){var l=r(e),c=n.exec;return c===i||c===s.exec?d&&!a?{done:!0,value:g(n,t,o)}:{done:!0,value:l(t,n,o)}:{done:!1}}));o(String.prototype,e,v[0]),o(s,p,v[1])}f&&c(s[p],"sham",!0)}},6677:(e,n,t)=>{var r=t(7293);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},2104:e=>{var n=Function.prototype,t=n.apply,r=n.bind,o=n.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?o.bind(t):function(){return o.apply(t,arguments)})},9974:(e,n,t)=>{var r=t(1702),o=t(9662),i=r(r.bind);e.exports=function(e,n){return o(e),void 0===n?e:i?i(e,n):function(){return e.apply(n,arguments)}}},7065:(e,n,t)=>{"use strict";var r=t(7854),o=t(1702),i=t(9662),a=t(111),l=t(2597),c=t(206),u=r.Function,s=o([].concat),f=o([].join),p={},d=function(e,n,t){if(!l(p,n)){for(var r=[],o=0;o{var n=Function.prototype.call;e.exports=n.bind?n.bind(n):function(){return n.apply(n,arguments)}},6530:(e,n,t)=>{var r=t(9781),o=t(2597),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,l=o(i,"name"),c=l&&"something"===function(){}.name,u=l&&(!r||r&&a(i,"name").configurable);e.exports={EXISTS:l,PROPER:c,CONFIGURABLE:u}},1702:e=>{var n=Function.prototype,t=n.bind,r=n.call,o=t&&t.bind(r);e.exports=t?function(e){return e&&o(r,e)}:function(e){return e&&function(){return r.apply(e,arguments)}}},5005:(e,n,t)=>{var r=t(7854),o=t(614),i=function(e){return o(e)?e:void 0};e.exports=function(e,n){return arguments.length<2?i(r[e]):r[e]&&r[e][n]}},1246:(e,n,t)=>{var r=t(648),o=t(8173),i=t(7497),a=t(5112)("iterator");e.exports=function(e){if(null!=e)return o(e,a)||o(e,"@@iterator")||i[r(e)]}},8554:(e,n,t)=>{var r=t(7854),o=t(6916),i=t(9662),a=t(9670),l=t(6330),c=t(1246),u=r.TypeError;e.exports=function(e,n){var t=arguments.length<2?c(e):n;if(i(t))return a(o(t,e));throw u(l(e)+" is not iterable")}},8173:(e,n,t)=>{var r=t(9662);e.exports=function(e,n){var t=e[n];return null==t?void 0:r(t)}},647:(e,n,t)=>{var r=t(1702),o=t(7908),i=Math.floor,a=r("".charAt),l=r("".replace),c=r("".slice),u=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,s=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,n,t,r,f,p){var d=t+e.length,h=r.length,g=s;return void 0!==f&&(f=o(f),g=u),l(p,g,(function(o,l){var u;switch(a(l,0)){case"$":return"$";case"&":return e;case"`":return c(n,0,t);case"'":return c(n,d);case"<":u=f[c(l,1,-1)];break;default:var s=+l;if(0===s)return o;if(s>h){var p=i(s/10);return 0===p?o:p<=h?void 0===r[p-1]?a(l,1):r[p-1]+a(l,1):o}u=r[s-1]}return void 0===u?"":u}))}},7854:(e,n,t)=>{var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t.g&&t.g)||function(){return this}()||Function("return this")()},2597:(e,n,t)=>{var r=t(1702),o=t(7908),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,n){return i(o(e),n)}},3501:e=>{e.exports={}},490:(e,n,t)=>{var r=t(5005);e.exports=r("document","documentElement")},4664:(e,n,t)=>{var r=t(9781),o=t(7293),i=t(317);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},8361:(e,n,t)=>{var r=t(7854),o=t(1702),i=t(7293),a=t(4326),l=r.Object,c=o("".split);e.exports=i((function(){return!l("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?c(e,""):l(e)}:l},9587:(e,n,t)=>{var r=t(614),o=t(111),i=t(7674);e.exports=function(e,n,t){var a,l;return i&&r(a=n.constructor)&&a!==t&&o(l=a.prototype)&&l!==t.prototype&&i(e,l),e}},2788:(e,n,t)=>{var r=t(1702),o=t(614),i=t(5465),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},2423:(e,n,t)=>{var r=t(2109),o=t(1702),i=t(3501),a=t(111),l=t(2597),c=t(3070).f,u=t(8006),s=t(1156),f=t(2050),p=t(9711),d=t(6677),h=!1,g=p("meta"),v=0,A=function(e){c(e,g,{value:{objectID:"O"+v++,weakData:{}}})},b=e.exports={enable:function(){b.enable=function(){},h=!0;var e=u.f,n=o([].splice),t={};t[g]=1,e(t).length&&(u.f=function(t){for(var r=e(t),o=0,i=r.length;o{var r,o,i,a=t(8536),l=t(7854),c=t(1702),u=t(111),s=t(8880),f=t(2597),p=t(5465),d=t(6200),h=t(3501),g="Object already initialized",v=l.TypeError,A=l.WeakMap;if(a||p.state){var b=p.state||(p.state=new A),m=c(b.get),y=c(b.has),E=c(b.set);r=function(e,n){if(y(b,e))throw new v(g);return n.facade=e,E(b,e,n),n},o=function(e){return m(b,e)||{}},i=function(e){return y(b,e)}}else{var _=d("state");h[_]=!0,r=function(e,n){if(f(e,_))throw new v(g);return n.facade=e,s(e,_,n),n},o=function(e){return f(e,_)?e[_]:{}},i=function(e){return f(e,_)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(n){var t;if(!u(n)||(t=o(n)).type!==e)throw v("Incompatible receiver, "+e+" required");return t}}}},7659:(e,n,t)=>{var r=t(5112),o=t(7497),i=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||a[i]===e)}},3157:(e,n,t)=>{var r=t(4326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},614:e=>{e.exports=function(e){return"function"==typeof e}},4411:(e,n,t)=>{var r=t(1702),o=t(7293),i=t(614),a=t(648),l=t(5005),c=t(2788),u=function(){},s=[],f=l("Reflect","construct"),p=/^\s*(?:class|function)\b/,d=r(p.exec),h=!p.exec(u),g=function(e){if(!i(e))return!1;try{return f(u,s,e),!0}catch(e){return!1}};e.exports=!f||o((function(){var e;return g(g.call)||!g(Object)||!g((function(){e=!0}))||e}))?function(e){if(!i(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}return h||!!d(p,c(e))}:g},4705:(e,n,t)=>{var r=t(7293),o=t(614),i=/#|\.prototype\./,a=function(e,n){var t=c[l(e)];return t==s||t!=u&&(o(n)?r(n):!!n)},l=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},c=a.data={},u=a.NATIVE="N",s=a.POLYFILL="P";e.exports=a},111:(e,n,t)=>{var r=t(614);e.exports=function(e){return"object"==typeof e?null!==e:r(e)}},1913:e=>{e.exports=!1},7850:(e,n,t)=>{var r=t(111),o=t(4326),i=t(5112)("match");e.exports=function(e){var n;return r(e)&&(void 0!==(n=e[i])?!!n:"RegExp"==o(e))}},2190:(e,n,t)=>{var r=t(7854),o=t(5005),i=t(614),a=t(7976),l=t(3307),c=r.Object;e.exports=l?function(e){return"symbol"==typeof e}:function(e){var n=o("Symbol");return i(n)&&a(n.prototype,c(e))}},408:(e,n,t)=>{var r=t(7854),o=t(9974),i=t(6916),a=t(9670),l=t(6330),c=t(7659),u=t(6244),s=t(7976),f=t(8554),p=t(1246),d=t(9212),h=r.TypeError,g=function(e,n){this.stopped=e,this.result=n},v=g.prototype;e.exports=function(e,n,t){var r,A,b,m,y,E,_,C=t&&t.that,w=!(!t||!t.AS_ENTRIES),x=!(!t||!t.IS_ITERATOR),k=!(!t||!t.INTERRUPTED),S=o(n,C),O=function(e){return r&&d(r,"normal",e),new g(!0,e)},B=function(e){return w?(a(e),k?S(e[0],e[1],O):S(e[0],e[1])):k?S(e,O):S(e)};if(x)r=e;else{if(!(A=p(e)))throw h(l(e)+" is not iterable");if(c(A)){for(b=0,m=u(e);m>b;b++)if((y=B(e[b]))&&s(v,y))return y;return new g(!1)}r=f(e,A)}for(E=r.next;!(_=i(E,r)).done;){try{y=B(_.value)}catch(e){d(r,"throw",e)}if("object"==typeof y&&y&&s(v,y))return y}return new g(!1)}},9212:(e,n,t)=>{var r=t(6916),o=t(9670),i=t(8173);e.exports=function(e,n,t){var a,l;o(e);try{if(!(a=i(e,"return"))){if("throw"===n)throw t;return t}a=r(a,e)}catch(e){l=!0,a=e}if("throw"===n)throw t;if(l)throw a;return o(a),t}},3383:(e,n,t)=>{"use strict";var r,o,i,a=t(7293),l=t(614),c=t(30),u=t(9518),s=t(1320),f=t(5112),p=t(1913),d=f("iterator"),h=!1;[].keys&&("next"in(i=[].keys())?(o=u(u(i)))!==Object.prototype&&(r=o):h=!0),null==r||a((function(){var e={};return r[d].call(e)!==e}))?r={}:p&&(r=c(r)),l(r[d])||s(r,d,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},7497:e=>{e.exports={}},6244:(e,n,t)=>{var r=t(7466);e.exports=function(e){return r(e.length)}},133:(e,n,t)=>{var r=t(7392),o=t(7293);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},8536:(e,n,t)=>{var r=t(7854),o=t(614),i=t(2788),a=r.WeakMap;e.exports=o(a)&&/native code/.test(i(a))},3929:(e,n,t)=>{var r=t(7854),o=t(7850),i=r.TypeError;e.exports=function(e){if(o(e))throw i("The method doesn't accept regular expressions");return e}},1574:(e,n,t)=>{"use strict";var r=t(9781),o=t(1702),i=t(6916),a=t(7293),l=t(1956),c=t(5181),u=t(5296),s=t(7908),f=t(8361),p=Object.assign,d=Object.defineProperty,h=o([].concat);e.exports=!p||a((function(){if(r&&1!==p({b:1},p(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},n={},t=Symbol(),o="abcdefghijklmnopqrst";return e[t]=7,o.split("").forEach((function(e){n[e]=e})),7!=p({},e)[t]||l(p({},n)).join("")!=o}))?function(e,n){for(var t=s(e),o=arguments.length,a=1,p=c.f,d=u.f;o>a;)for(var g,v=f(arguments[a++]),A=p?h(l(v),p(v)):l(v),b=A.length,m=0;b>m;)g=A[m++],r&&!i(d,v,g)||(t[g]=v[g]);return t}:p},30:(e,n,t)=>{var r,o=t(9670),i=t(6048),a=t(748),l=t(3501),c=t(490),u=t(317),s=t(6200),f=s("IE_PROTO"),p=function(){},d=function(e){return" + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitToneMapAdjustment : NSObject <SCCameraKitAdjustment>
    +
    extension ToneMapAdjustment: Adjustment
    + +
    +
    +

    Swift

    +
    class ToneMapAdjustment : NSObject, __Adjustment
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An adjustment which allows users to blur the background on their input.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPortraitAdjustment : NSObject <SCCameraKitAdjustment>
    +
    extension PortraitAdjustment: Adjustment
    + +
    +
    +

    Swift

    +
    class PortraitAdjustment : NSObject, __Adjustment
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitSession + +
    +
    +
    +
    +
    +
    +

    CameraKit handles interaction with the camera and contains several components like lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitSession : NSObject <SCCameraKitProtocol>
    + +
    +
    +

    Swift

    +
    class Session : NSObject, CameraKitProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    ARSessionInput is a CameraKit provided wrapper for ARSession.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitARSessionInput : NSObject <SCCameraKitARInput>
    + +
    +
    +

    Swift

    +
    class ARSessionInput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color +formats in order to process frames. You are still responsible for doing the general configuration of the capture +session, such as adding devices.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitAVSessionInput : NSObject <SCCameraKitInput>
    + +
    +
    +

    Swift

    +
    class AVSessionInput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of +the writer.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitAVWriterOutput : NSObject
    + +
    +
    +

    Swift

    +
    class AVWriterOutput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Component for user’s custom data providers

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitDataProviderComponent : NSObject
    + +
    +
    +

    Swift

    +
    class DataProviderComponent : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Enables the configuration of a custom viewport for SCCameraKitPreviewView.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitExplicitViewportProvider : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to build lens launch data to pass to processor when applying

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensLaunchDataBuilder : NSObject
    + +
    +
    +

    Swift

    +
    class LensLaunchDataBuilder : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Final, opaque data class to reset persisted launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitEmptyLensLaunchData : NSObject <SCCameraKitLensLaunchData>
    + +
    +
    +

    Swift

    +
    class EmptyLensLaunchData : NSObject, LensLaunchData
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensMediaPickerProviderPhotoLibrary
    +    : NSObject <SCCameraKitLensMediaPickerProvider>
    + +
    +
    +

    Swift

    +
    class LensMediaPickerProviderPhotoLibrary : NSObject, LensMediaPickerProvider
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete data class for the remote api service response to a request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensRemoteApiResponse
    +    : NSObject <SCCameraKitLensRemoteApiResponse>
    + +
    +
    +

    Swift

    +
    class LensRemoteApiResponse : NSObject, LensRemoteApiResponseProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to configure camera kit cache

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitCacheConfig : NSObject
    + +
    +
    +

    Swift

    +
    class CacheConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to configure all available, user-configurable properties within the lenses component

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensesConfig : NSObject
    + +
    +
    +

    Swift

    +
    class LensesConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An output that will capture photos. You should add this as an output for your CameraKit instance.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPhotoCaptureOutput : NSObject
    + +
    +
    +

    Swift

    +
    class PhotoCaptureOutput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit +instance.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPreviewView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Data class that is used to pass in a configuration for the CameraKit Session. +Use this data class if you would like to be able to dynamically update config values like application id and api +token or overwrite the ones that are passed into Info.plist.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitSessionConfig : NSObject
    + +
    +
    +

    Swift

    +
    class SessionConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitUserData + +
    +
    +
    +
    +
    +
    +

    Concrete user data class to pass in user data that can be used by some lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitUserData : NSObject
    + +
    +
    +

    Swift

    +
    class UserData : NSObject
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitARSessionInput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitARSessionInput.html new file mode 100644 index 00000000..362a8b37 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitARSessionInput.html @@ -0,0 +1,595 @@ + + + + SCCameraKitARSessionInput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARSessionInput

+
+
+

Objective-C

+

+@interface SCCameraKitARSessionInput : NSObject <SCCameraKitARInput>
+ +
+
+

Swift

+
class ARSessionInput : NSObject
+ +
+
+

ARSessionInput is a CameraKit provided wrapper for ARSession.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Create an AR Session input. +Inits with a managed ARSession

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +

    Swift

    +
    init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithSession: + +
    +
    +
    +
    +
    +
    +

    Create an AR Session input with a preexisting session.

    +
    +

    Note

    + the input will overwrite the preexisting settings for delegate and delegateQueue + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull ARSession *)session;
    + +
    +
    +

    Swift

    +
    init(session: ARSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + session + + +
    +

    the ARSession to use.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AR Session input with a preexisting session.

    +
    +

    Note

    + the input will overwrite the preexisting settings for delegate and delegateQueue + +
    +

    Warning

    + if your app supports lenses with true sizing, you MUST set this to be an instance of +ARFaceTrackingConfiguration (additionally, we recommend setting the number of tracked faces to 0) + +
    +

    Warning

    + using an instance of ARFaceTrackingConfiguration in this method will subject your app to additional app +review, concerning your usage of the TrueDepth camera. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull ARSession *)session
    +               frontCameraConfiguration:
    +                   (nullable ARConfiguration *)frontCameraConfiguration;
    + +
    +
    +

    Swift

    +
    init(session: ARSession, frontCameraConfiguration: ARConfiguration?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + session + + +
    +

    the ARSession to use.

    +
    +
    + + frontCameraConfiguration + + +
    +

    The ARConfiguration to use when using the front

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitAVSessionInput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitAVSessionInput.html new file mode 100644 index 00000000..ec8d9c96 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitAVSessionInput.html @@ -0,0 +1,658 @@ + + + + SCCameraKitAVSessionInput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAVSessionInput

+
+
+

Objective-C

+

+@interface SCCameraKitAVSessionInput : NSObject <SCCameraKitInput>
+ +
+
+

Swift

+
class AVSessionInput : NSObject
+ +
+
+

AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color +formats in order to process frames. You are still responsible for doing the general configuration of the capture +session, such as adding devices.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + videoMirrored + +
    +
    +
    +
    +
    +
    +

    Describes whether the current video frames are mirrored

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL videoMirrored;
    + +
    +
    +

    Swift

    +
    var videoMirrored: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes whether it should automatically configure outputted video frames to be mirrored. +If set to YES - it will update the videoMirrored property based on input device position (front is mirrored, back +is not)

    +
    +

    Note

    + By default this property is set to YES, you can change it while the session is running and it will update the +future video frames + +
    +

    Note

    + If you change this property to NO, make sure you also change videoMirrored property as well + +
    +

    See

    + videoMirrored + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresVideoMirrored;
    + +
    +
    +

    Swift

    +
    var automaticallyConfiguresVideoMirrored: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + audioEnabled + +
    +
    +
    +
    +
    +
    +

    Determines whether or not this input will capture audio and pass audio buffer data to CameraKit. +If YES then it will automatically configure a capture session, audio input device, etc. and start capturing data. +If NO then no audio data will be captured.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL audioEnabled;
    + +
    +
    +

    Swift

    +
    var audioEnabled: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithSession: + +
    +
    +
    +
    +
    +
    +

    Create an AV Session input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull AVCaptureSession *)session;
    + +
    +
    +

    Swift

    +
    init(session: AVCaptureSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + session + + +
    +

    the AVCaptureSession to use.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AV Session input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull AVCaptureSession *)session
    +                           audioEnabled:(BOOL)audioEnabled;
    + +
    +
    +

    Swift

    +
    init(session: AVCaptureSession, audioEnabled: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + session + + +
    +

    The AVCaptureSession to use.

    +
    +
    + + audioEnabled + + +
    +

    Determines whether or not this input will capture audio and pass audio buffer data to CameraKit. +Default is YES.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitAVWriterOutput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitAVWriterOutput.html new file mode 100644 index 00000000..ae5e6884 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitAVWriterOutput.html @@ -0,0 +1,682 @@ + + + + SCCameraKitAVWriterOutput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAVWriterOutput

+
+
+

Objective-C

+

+@interface SCCameraKitAVWriterOutput : NSObject
+ +
+
+

Swift

+
class AVWriterOutput : NSObject
+ +
+
+

AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of +the writer.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + startDate + +
    +
    +
    +
    +
    +
    +

    Date and time of first video buffer recorded (ie. start recording time)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) NSDate *startDate;
    + +
    +
    +

    Swift

    +
    var startDate: Date? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AVWriterOutput

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithAVAssetWriter:(nonnull AVAssetWriter *)assetWriter
    +         pixelBufferInput:
    +             (nonnull AVAssetWriterInputPixelBufferAdaptor *)pixelBufferInput
    +               audioInput:(nullable AVAssetWriterInput *)audioInput;
    + +
    +
    +

    Swift

    +
    init(avAssetWriter assetWriter: AVAssetWriter, pixelBufferInput: AVAssetWriterInputPixelBufferAdaptor, audioInput: AVAssetWriterInput?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + assetWriter + + +
    +

    the configured AVAssetWRiter

    +
    +
    + + pixelBufferInput + + +
    +

    the configured AVAssetWriterInputPixelBufferAdaptor to write video to.

    +
    +
    + + audioInput + + +
    +

    the configured AVAssetWriterInput to write audio to. May be nullable if the video does not contain +audio. +@note: audioInput is currently unused. This will change in a future build.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init to pass in required writer and inputs

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (nonnull instancetype)new;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -startRecording + +
    +
    +
    +
    +
    +
    +

    Call this after you start recording on the AVAssetWriter. This will indicate that the output should start recording +data it receives from CameraKit.

    +
    +

    Note

    + DO NOT call startSession on the asset writer, this output class will do so when it receives the first video +frame. This is to ensure that there are no empty frames from the time the session is started and the first video +buffer is written + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startRecording;
    + +
    +
    +

    Swift

    +
    func startRecording()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopRecording + +
    +
    +
    +
    +
    +
    +

    Call this before you stop recording on the AVAssetWriter. This will cause the output to stop recording data from +CameraKit.

    +
    +

    Note

    + DO NOT call endSession on the asset writer, this output class will do so with the timestamp of the last +video frame This is to ensure that there are no empty frames from the time the last video buffer is written to the +end of the session + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopRecording;
    + +
    +
    +

    Swift

    +
    func stopRecording()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitCacheConfig.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitCacheConfig.html new file mode 100644 index 00000000..88a984b1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitCacheConfig.html @@ -0,0 +1,515 @@ + + + + SCCameraKitCacheConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitCacheConfig

+
+
+

Objective-C

+

+@interface SCCameraKitCacheConfig : NSObject
+ +
+
+

Swift

+
class CacheConfig : NSObject
+ +
+
+

Concrete class to configure camera kit cache

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lensContentMaxSize + +
    +
    +
    +
    +
    +
    +

    Max size in bytes for lens content cache

    +
    +

    Note

    + Default max is 100MB and min is at least 50MB + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSUInteger lensContentMaxSize;
    + +
    +
    +

    Swift

    +
    var lensContentMaxSize: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with specifed max size for lens content cache

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithLensContentMaxSize:
    +    (NSUInteger)lensContentMaxSize;
    + +
    +
    +

    Swift

    +
    init(lensContentMaxSize: UInt)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lensContentMaxSize + + +
    +

    max size for lens content cache

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitDataProviderComponent.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitDataProviderComponent.html new file mode 100644 index 00000000..35585941 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitDataProviderComponent.html @@ -0,0 +1,1085 @@ + + + + SCCameraKitDataProviderComponent Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDataProviderComponent

+
+
+

Objective-C

+

+@interface SCCameraKitDataProviderComponent : NSObject
+ +
+
+

Swift

+
class DataProviderComponent : NSObject
+ +
+
+

Component for user’s custom data providers

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitExplicitViewportProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitExplicitViewportProvider.html new file mode 100644 index 00000000..7a3a2488 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitExplicitViewportProvider.html @@ -0,0 +1,699 @@ + + + + SCCameraKitExplicitViewportProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitExplicitViewportProvider

+
+
+ +

+@interface SCCameraKitExplicitViewportProvider : NSObject
+ +
+
+

Enables the configuration of a custom viewport for SCCameraKitPreviewView.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes the ExplicitViewportProvider with the specified viewportSize, outputResolution, and safeArea.

    +
    +

    Note

    + The delegate will be set automatically when this class is used to configure SCCameraKitPreviewView +so that any change to viewportSize, outputResolution, and safeArea is propagated. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithViewportSize:(CGSize)viewportSize
    +                            outputResolution:(CGSize)outputResolution
    +                                    safeArea:(CGRect)safeArea;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + viewportSize + + +
    +

    Output viewport frame size.

    +
    +
    + + outputResolution + + +
    +

    Output resolution size in pixels, not points (i.e. 1125x2436 not 375x812).

    +
    +
    + + safeArea + + +
    +

    A CGRect describing an area that the host app will not draw on top of.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setViewportSize: + +
    +
    +
    +
    +
    +
    +

    Sets the output viewport size and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setViewportSize:(CGSize)viewportSize;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + viewportSize + + +
    +

    Output viewport frame size.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setOutputResolution: + +
    +
    +
    +
    +
    +
    +

    Sets the output resolution and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setOutputResolution:(CGSize)outputResolution;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + outputResolution + + +
    +

    Output resolution size in pixels, not points (i.e. 1125x2436 not 375x812).

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setSafeArea: + +
    +
    +
    +
    +
    +
    +

    Sets the safe area and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setSafeArea:(CGRect)safeArea;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + safeArea + + +
    +

    A CGRect describing an area that the host app will not draw on top of.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use the designated initializer to pass in the required properties.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensLaunchDataBuilder.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensLaunchDataBuilder.html new file mode 100644 index 00000000..141f1815 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensLaunchDataBuilder.html @@ -0,0 +1,763 @@ + + + + SCCameraKitLensLaunchDataBuilder Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensLaunchDataBuilder

+
+
+

Objective-C

+

+@interface SCCameraKitLensLaunchDataBuilder : NSObject
+ +
+
+

Swift

+
class LensLaunchDataBuilder : NSObject
+ +
+
+

Concrete class to build lens launch data to pass to processor when applying

+ +
+
+ +
+
+
+
    +
  • +
    + + + + launchData + +
    +
    +
    +
    +
    +
    +

    Builds and get launch data from current builder state

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitLensLaunchData> launchData;
    + +
    +
    +

    Swift

    +
    var launchData: LensLaunchData? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -addNumber:forKey: + +
    +
    +
    +
    +
    +
    +

    Add number key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addNumber:(nonnull NSNumber *)value forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(number value: NSNumber, key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    number value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add number array key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addNumberArray:(nonnull NSArray<NSNumber *> *)value
    +                forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(numberArray value: [NSNumber], key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    number array value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addString:forKey: + +
    +
    +
    +
    +
    +
    +

    Add string key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addString:(nonnull NSString *)value forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(string value: String, key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    string value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add string array key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addStringArray:(nonnull NSArray<NSString *> *)value
    +                forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(stringArray value: [String], key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    string array value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeValueForKey: + +
    +
    +
    +
    +
    +
    +

    Removes key-value pair from launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeValueForKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func removeValue(key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + key + + +
    +

    key for value to remove

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html new file mode 100644 index 00000000..2aa306a6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html @@ -0,0 +1,542 @@ + + + + SCCameraKitLensMediaPickerProviderPhotoLibrary Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderPhotoLibrary

+
+
+

Objective-C

+

+@interface SCCameraKitLensMediaPickerProviderPhotoLibrary
+    : NSObject <SCCameraKitLensMediaPickerProvider>
+ +
+
+

Swift

+
class LensMediaPickerProviderPhotoLibrary : NSObject, LensMediaPickerProvider
+ +
+
+

A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes the photo library provider.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithDefaultAssetTypes:
    +    (SCCameraKitLensMediaPickerProviderAllowedMediaType)defaultAssetTypes;
    + +
    +
    +

    Swift

    +
    init(defaultAssetTypes: SCCameraKitLensMediaPickerProviderAllowedMediaType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + defaultAssetTypes + + +
    +

    a bitmask specifying which types of assets the picker will display when the lens does not +indicate interest in a specific type of asset. MUST not be LensMediaPickerProviderAllowedMediaTypeNoneSpecified.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensRemoteApiResponse.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensRemoteApiResponse.html new file mode 100644 index 00000000..f10ff630 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensRemoteApiResponse.html @@ -0,0 +1,580 @@ + + + + SCCameraKitLensRemoteApiResponse Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponse

+
+
+

Objective-C

+

+@interface SCCameraKitLensRemoteApiResponse
+    : NSObject <SCCameraKitLensRemoteApiResponse>
+ +
+
+

Swift

+
class LensRemoteApiResponse : NSObject, LensRemoteApiResponseProtocol
+ +
+
+

Concrete data class for the remote api service response to a request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in required properties for the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithRequest:(nonnull id<SCCameraKitLensRemoteApiRequest>)request
    +             status:(SCCameraKitLensRemoteApiResponseStatus)status
    +           metadata:(nonnull NSDictionary<NSString *, NSString *> *)metadata
    +               body:(nullable NSData *)body;
    + +
    +
    +

    Swift

    +
    init(request: LensRemoteApiRequest, status: SCCameraKitLensRemoteApiResponseStatus, metadata: [String : String], body: Data?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + request + + +
    +

    Remote api service request sent by a lens.

    +
    +
    + + status + + +
    +

    Status of the response.

    +
    +
    + + metadata + + +
    +

    A map of named metadata associated with the response.

    +
    +
    + + body + + +
    +

    Additional response payload as bytes.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init to pass in required properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensesConfig.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensesConfig.html new file mode 100644 index 00000000..694787a1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitLensesConfig.html @@ -0,0 +1,510 @@ + + + + SCCameraKitLensesConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensesConfig

+
+
+

Objective-C

+

+@interface SCCameraKitLensesConfig : NSObject
+ +
+
+

Swift

+
class LensesConfig : NSObject
+ +
+
+

Concrete class to configure all available, user-configurable properties within the lenses component

+ +
+
+ +
+
+
+
    +
  • +
    + + + + cacheConfig + +
    +
    +
    +
    +
    +
    +

    Cache config instance to configure cache properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) SCCameraKitCacheConfig *_Nonnull cacheConfig;
    + +
    +
    +

    Swift

    +
    var cacheConfig: CacheConfig { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithCacheConfig: + +
    +
    +
    +
    +
    +
    +

    Init with cache config instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithCacheConfig:
    +    (nonnull SCCameraKitCacheConfig *)cacheConfig;
    + +
    +
    +

    Swift

    +
    init(cacheConfig: CacheConfig)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cacheConfig + + +
    +

    cache config instance

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPhotoCaptureOutput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPhotoCaptureOutput.html new file mode 100644 index 00000000..acc453ef --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPhotoCaptureOutput.html @@ -0,0 +1,689 @@ + + + + SCCameraKitPhotoCaptureOutput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPhotoCaptureOutput

+
+
+

Objective-C

+

+@interface SCCameraKitPhotoCaptureOutput : NSObject
+ +
+
+

Swift

+
class PhotoCaptureOutput : NSObject
+ +
+
+

An output that will capture photos. You should add this as an output for your CameraKit instance.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Instantiates a capturer with the specified AVCapturePhotoOutput and capture settings.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithCapturePhotoOutput:
    +    (nullable AVCapturePhotoOutput *)output;
    + +
    +
    +

    Swift

    +
    init(capturePhotoOutput output: AVCapturePhotoOutput?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + output + + +
    +

    the photo output to be used if possible. May be nil (in which case a frame from the video stream will +be captured).

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Capture a photo and call a completion with the resulting image when done.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    capturePhotoWithCaptureSettings:(nullable AVCapturePhotoSettings *)settings
    +                         outputSize:(CGSize)outputSize
    +                         completion:
    +                             (nonnull void (^)(UIImage *_Nullable,
    +                                               NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func capture(with settings: AVCapturePhotoSettings?, outputSize: CGSize) async throws -> UIImage
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + settings + + +
    +

    the photo capture settings to be used. If nil, the default settings will be used.

    +
    +
    + + outputSize + + +
    +

    the size of the captured photo that should be outputted. Defaults to CGSizeZero which means +default system size.

    +
    +
    + + completion + + +
    +

    the completion block called with the captured image.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Capture a photo and call a completion with the resulting image when done.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    capturePhotoWithCaptureSettings:(nullable AVCapturePhotoSettings *)settings
    +                         completion:
    +                             (nonnull void (^)(UIImage *_Nullable,
    +                                               NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func capture(with settings: AVCapturePhotoSettings?) async throws -> UIImage
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + settings + + +
    +

    the photo capture settings to be used. If nil, the default settings will be used.

    +
    +
    + + completion + + +
    +

    the completion block called with the captured image.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPortraitAdjustment.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPortraitAdjustment.html new file mode 100644 index 00000000..cca08cec --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPortraitAdjustment.html @@ -0,0 +1,453 @@ + + + + SCCameraKitPortraitAdjustment Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPortraitAdjustment

+
+
+

Objective-C

+

+@interface SCCameraKitPortraitAdjustment : NSObject <SCCameraKitAdjustment>
+
extension PortraitAdjustment: Adjustment
+ +
+
+

Swift

+
class PortraitAdjustment : NSObject, __Adjustment
+ +
+
+

An adjustment which allows users to blur the background on their input.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Controller = PortraitAdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPreviewView.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPreviewView.html new file mode 100644 index 00000000..ed176daa --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitPreviewView.html @@ -0,0 +1,657 @@ + + + + SCCameraKitPreviewView Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreviewView

+
+
+ +

+@interface SCCameraKitPreviewView : UIView
+ +
+
+

A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit +instance.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Configures the neccessary gesture recognizers for handling touch input in lenses. +If set to YES, will automatically add gesture reconizers and configure them to pass events to lenses.

    +
    +

    Note

    + by default, this is NO. You may change this to YES while cameraKit is running, and it will be configured on +the next frame. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresTouchHandler;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the viewport upon changes to the view’s frame. +If set to YES, this will automatically adjust viewportSize, outputResolution, and safeArea according to the +view’s frame.

    +
    +

    Note

    + By default, this is YES. If the viewport is explicitly defined via explicitViewportProvider, this will be set +to NO. + +
    +

    Note

    + If you change this property without setting explicitViewportProvider, the view will keep the last derived +viewportSize, outputResolution, and safeArea. + +
    +

    Warning

    + If there is a mismatch between viewportSize and the view’s frame size, part of the lens may +be cut off on the screen. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresViewport;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + contentMode + +
    +
    +
    +
    +
    +
    +

    Configures the content mode the preview view will use to render.

    +
    +

    Note

    + SCCameraKitPreviewViewContentModeAspectFill by default. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) SCCameraKitPreviewViewContentMode contentMode;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + safeArea + +
    +
    +
    +
    +
    +
    +

    Configures the safe area to an explicitly specified rect.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGRect safeArea;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Setting this property configures the preview view to use its viewportSize, outputResolution, and safeArea.

    +
    +

    Note

    + Calling this method will set automaticallyConfiguresViewport to NO. + +
    +

    Warning

    + If there is a mismatch between viewportSize and the view’s frame size, part of the lens may be cut off +the screen. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, nullable) SCCameraKitExplicitViewportProvider *explicitViewportProvider;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Automatically configures the safeArea property to avoid the specified views.

    +
    +

    Note

    + the preview view maintain a weak reference to the provided views and update the safe area automatically as +needed. + +
    +

    Warning

    + this method will reevaluate periodically (during bounds changes, etc), but will NOT actively track +changes to occluding views between those intervals. If you move an occluding view without affecting the preview +view, call this method again to reevaluate. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)configureSafeAreaWithOccludingViews:
    +    (nonnull NSArray<UIView *> *)occludingViews;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + occludingViews + + +
    +

    any views that may be displayed in front of lenses content, such as the carousel, camera flip +button, etc. If the preview view itself is part of this array, it will be ignored.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitSession.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitSession.html new file mode 100644 index 00000000..0ff8ddae --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitSession.html @@ -0,0 +1,569 @@ + + + + SCCameraKitSession Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitSession

+
+
+

Objective-C

+

+@interface SCCameraKitSession : NSObject <SCCameraKitProtocol>
+ +
+
+

Swift

+
class Session : NSObject, CameraKitProtocol
+ +
+
+

CameraKit handles interaction with the camera and contains several components like lenses.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Init with session and lenses config instance to configure properties within lenses component

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithSessionConfig:(nullable SCCameraKitSessionConfig *)sessionConfig
    +             lensesConfig:(nonnull SCCameraKitLensesConfig *)lensesConfig
    +             errorHandler:(nullable id<SCCameraKitErrorHandler>)errorHandler;
    + +
    +
    +

    Swift

    +
    init(sessionConfig: SCCameraKitSessionConfig?, lensesConfig: SCCameraKitLensesConfig, errorHandler: SCCameraKitErrorHandler?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + sessionConfig + + +
    +

    session config to configure session with application id and api token

    +
    +
    + + lensesConfig + + +
    +

    lenses config to configure lenses component such as caches

    +
    +
    + + errorHandler + + +
    +

    optional error handler instance to handle exceptions thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with lenses config instance to configure properties within lenses component

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithLensesConfig:(nonnull SCCameraKitLensesConfig *)lensesConfig
    +            errorHandler:(nullable id<SCCameraKitErrorHandler>)errorHandler;
    + +
    +
    +

    Swift

    +
    init(lensesConfig: SCCameraKitLensesConfig, errorHandler: SCCameraKitErrorHandler?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensesConfig + + +
    +

    lenses config to configure lenses components such as caches

    +
    +
    + + errorHandler + + +
    +

    optional error handler instance to handle exceptions thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitSessionConfig.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitSessionConfig.html new file mode 100644 index 00000000..15d97832 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitSessionConfig.html @@ -0,0 +1,901 @@ + + + + SCCameraKitSessionConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitSessionConfig

+
+
+

Objective-C

+

+@interface SCCameraKitSessionConfig : NSObject
+ +
+
+

Swift

+
class SessionConfig : NSObject
+ +
+
+

Data class that is used to pass in a configuration for the CameraKit Session. +Use this data class if you would like to be able to dynamically update config values like application id and api +token or overwrite the ones that are passed into Info.plist.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + apiToken + +
    +
    +
    +
    +
    +
    +

    API token that is found in the dev portal

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull apiToken;
    + +
    +
    +

    Swift

    +
    var apiToken: String { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSDictionary<NSString *, id> *_Nonnull additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    var additionalConfigurationAttributes: [String : Any] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithApiToken: + +
    +
    +
    +
    +
    +
    +

    Designated init to pass in apiToken

    +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApiToken:(nonnull NSString *)apiToken;
    + +
    +
    +

    Swift

    +
    init(apiToken: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init to pass in apiToken

    +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApiToken:(nonnull NSString *)apiToken
    +       additionalConfigurationAttributes:
    +           (nullable NSDictionary<NSString *, id> *)
    +               additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    convenience init(apiToken: String, additionalConfigurationAttributes: [String : Any]? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    + + additionalConfigurationAttributes + + +
    +

    additional configuration

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init to pass in require applicationID and apiToken

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (nonnull instancetype)new;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + applicationId + +
    +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use apiToken instead.

    + +
    +
    +

    applicationID/clientID that is found in the dev portal

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull applicationId;
    + +
    +
    +

    Swift

    +
    var applicationId: String { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use initWithApiToken: instead.

    + +
    +
    +

    Designated init to pass in applicationID and apiToken

    +
    +

    Note

    + this will override the applicationID passed into Info.plist with the key SCCameraKitClientID + +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApplicationID:(nonnull NSString *)applicationID
    +                                     apiToken:(nonnull NSString *)apiToken;
    + +
    +
    +

    Swift

    +
    convenience init(applicationID: String, apiToken: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + applicationID + + +
    +

    applicationID/clientID that is found in the dev portal

    +
    +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use initWithApiToken:additionalConfigurationAttributes: instead.

    + +
    +
    +

    Init to pass in applicationID and apiToken

    +
    +

    Note

    + this will override the applicationID passed into Info.plist with the key SCCameraKitClientID + +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApplicationID:(nonnull NSString *)applicationID
    +                                     apiToken:(nonnull NSString *)apiToken
    +            additionalConfigurationAttributes:
    +                (nullable NSDictionary<NSString *, id> *)
    +                    additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    convenience init(applicationID: String, apiToken: String, additionalConfigurationAttributes: [String : Any]? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + applicationID + + +
    +

    applicationID/clientID that is found in the dev portal

    +
    +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    + + additionalConfigurationAttributes + + +
    +

    additional configuration

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitToneMapAdjustment.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitToneMapAdjustment.html new file mode 100644 index 00000000..4f6b0959 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitToneMapAdjustment.html @@ -0,0 +1,453 @@ + + + + SCCameraKitToneMapAdjustment Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitToneMapAdjustment

+
+
+

Objective-C

+

+@interface SCCameraKitToneMapAdjustment : NSObject <SCCameraKitAdjustment>
+
extension ToneMapAdjustment: Adjustment
+ +
+
+

Swift

+
class ToneMapAdjustment : NSObject, __Adjustment
+ +
+
+

An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Controller = ToneMapAdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitUserData.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitUserData.html new file mode 100644 index 00000000..4215f868 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Classes/SCCameraKitUserData.html @@ -0,0 +1,616 @@ + + + + SCCameraKitUserData Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserData

+
+
+

Objective-C

+

+@interface SCCameraKitUserData : NSObject
+ +
+
+

Swift

+
class UserData : NSObject
+ +
+
+

Concrete user data class to pass in user data that can be used by some lenses

+ +
+
+ +
+
+
+
    +
  • +
    + + + + displayName + +
    +
    +
    +
    +
    +
    +

    User’s full display name

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull displayName;
    + +
    +
    +

    Swift

    +
    var displayName: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + birthDate + +
    +
    +
    +
    +
    +
    +

    User’s birth date (optional)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) NSDate *birthDate;
    + +
    +
    +

    Swift

    +
    var birthDate: Date? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in user data fields

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithDisplayName:(nonnull NSString *)displayName
    +                                  birthDate:(nullable NSDate *)birthDate;
    + +
    +
    +

    Swift

    +
    init(displayName: String, birthDate: Date?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + displayName + + +
    +

    user’s full display name

    +
    +
    + + birthDate + + +
    +

    user’s birth date (optional)

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init to pass in required user properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Constants.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Constants.html new file mode 100644 index 00000000..81304a1b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Constants.html @@ -0,0 +1,962 @@ + + + + Constants Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Constants

+

The following constants are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SCCameraKitVersion + +
    +
    +
    +
    +
    +
    +

    Short CameraKit version (ie 1.8.0)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitVersion
    + +
    +
    +

    Swift

    +
    let CameraKitVersion: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    LensCore version (ie 243)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern const NSInteger SCCameraKitLensCoreVersion
    + +
    +
    +

    Swift

    +
    let CameraKitLensCoreVersion: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXTERN NSErrorDomain const
    +    SCCameraKitAdjustmentsComponentErrorDomain
    + +
    +
    +

    Swift

    +
    let AdjustmentsComponentErrorDomain: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorUnspecified
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorUnspecified: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensMetadataNotFound
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensMetadataNotFound: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensContentNotFound
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensContentNotFound: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensContentUrlMissing
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensContentUrlMissing: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensChecksumMissing
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensChecksumMissing: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorCannotWriteToFile
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorCannotWriteToFile: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when SCCameraKitClientID in Info.plist is missing or invalid.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionUnauthorized
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionUnauthorized: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when backend fails to authenticate client. +This could be due to numerous different reasons, one of the most common is due to having an invalid system date and +time settings.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidApplicationState
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidApplicationState: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when trying to pass an invalid lens class that’s different than the internal ones we support.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidLens
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidLens: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when trying to draw an invalid texture class that’s different than the internal ones we support.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidTexture
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidTexture: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported whne processing fails due to a lens error. Lens errors are normally caused by +dynamic scripting errors or missing resources in lens bundle.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionProcessingLensFailure
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionProcessingLensFailure: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when processing fails due to an internal error. Cause of such errors can be bugs in the +lenses processing engine or resource (memory, disk) exhaustion.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionProcessingInternalFailure
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionProcessingInternalFailure: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSString *const SCCameraKitLensRepositoryBundledGroup
    + +
    +
    +

    Swift

    +
    let SCCameraKitLensRepositoryBundledGroup: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSString *const SCCameraKitLensesComponentErrorDomain
    + +
    +
    +

    Swift

    +
    let SCCameraKitLensesComponentErrorDomain: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Enums.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums.html new file mode 100644 index 00000000..d4dc174a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums.html @@ -0,0 +1,728 @@ + + + + Enumerations Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + ARSessionRunOptions + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_OPTIONS(NSUInteger
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ERROR_ENUM(SCCameraKitAdjustmentsComponentErrorDomain, SCCameraKitAdjustmentsComponentError){
    +
    +    // An unsupported adjustment was supplied. Check isAdjustmentAvailable before applying to avoid this.
    +    SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment = 0,
    +
    +}
    + +
    +
    +

    Swift

    +
    typealias AdjustmentsComponentError.Code._ErrorType = AdjustmentsComponentError
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes all posible facings (inversely relative to the user) that a lens can be designed for.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensFacingPreference : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensFacingPreference : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_OPTIONS(NSInteger, SCCameraKitLensMediaPickerProviderAllowedMediaType) {
    +    // The current lens has not provided any specific indication of the type of picker that should be shown.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified = 0,
    +
    +    // Images should be shown in the picker.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage = 1 << 0,
    +
    +    // If LensMediaPickerProviderAllowedMediaTypeImage is specified, the provider should ONLY show images with a
    +    // person's face in them
    +    // If LensMediaPickerProviderAllowedMediaTypeImage is not specified, this option is ignored.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace = 1 << 1,
    +
    +    // Videos should be shown in the picker
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo = 1 << 2,
    +}
    + +
    +
    +

    Swift

    +
    struct SCCameraKitLensMediaPickerProviderAllowedMediaType : OptionSet, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ENUM(NSInteger, SCCameraKitLensMediaPickerAssetType) {
    +    SCCameraKitLensMediaPickerAssetTypeImage,
    +    SCCameraKitLensMediaPickerAssetTypeVideo,
    +}
    + +
    +
    +

    Swift

    +
    enum SCCameraKitLensMediaPickerAssetType : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the fetch status for the lens +Unloaded - lens content has not been fetched or loaded +Loading - lens content is currently being downloaded +Loaded - lens content has already been downloaded and fetched

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensFetchStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensFetchStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the status of the response sent to the lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensRemoteApiResponseStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum SCCameraKitLensRemoteApiResponseStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the status of the call for the request handled by a remote api service.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensRemoteApiServiceCallStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensRemoteApiServiceCallStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ENUM(NSInteger, SCCameraKitPreviewViewContentMode) {
    +    SCCameraKitPreviewViewContentModeScaleToFill,
    +    SCCameraKitPreviewViewContentModeAspectFill,
    +    SCCameraKitPreviewViewContentModeAspectFit
    +}
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitAdjustmentsComponentError.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitAdjustmentsComponentError.html new file mode 100644 index 00000000..2d550c65 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitAdjustmentsComponentError.html @@ -0,0 +1,462 @@ + + + + SCCameraKitAdjustmentsComponentError Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsComponentError

+
+
+

Objective-C

+
NS_ERROR_ENUM(SCCameraKitAdjustmentsComponentErrorDomain, SCCameraKitAdjustmentsComponentError){
+
+    // An unsupported adjustment was supplied. Check isAdjustmentAvailable before applying to avoid this.
+    SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment = 0,
+
+}
+ +
+
+

Swift

+
typealias AdjustmentsComponentError.Code._ErrorType = AdjustmentsComponentError
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensFacingPreference.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensFacingPreference.html new file mode 100644 index 00000000..1fe45b28 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensFacingPreference.html @@ -0,0 +1,521 @@ + + + + SCCameraKitLensFacingPreference Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensFacingPreference

+
+
+

Objective-C

+
enum SCCameraKitLensFacingPreference : NSInteger {}
+ +
+
+

Swift

+
enum LensFacingPreference : Int, @unchecked Sendable
+ +
+
+

Describes all posible facings (inversely relative to the user) that a lens can be designed for.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceNone = 0
    + +
    +
    +

    Swift

    +
    case none = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceFront = 1
    + +
    +
    +

    Swift

    +
    case front = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceBack = 2
    + +
    +
    +

    Swift

    +
    case back = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensFetchStatus.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensFetchStatus.html new file mode 100644 index 00000000..56527e1c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensFetchStatus.html @@ -0,0 +1,524 @@ + + + + SCCameraKitLensFetchStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensFetchStatus

+
+
+

Objective-C

+
enum SCCameraKitLensFetchStatus : NSInteger {}
+ +
+
+

Swift

+
enum LensFetchStatus : Int, @unchecked Sendable
+ +
+
+

Describes the fetch status for the lens +Unloaded - lens content has not been fetched or loaded +Loading - lens content is currently being downloaded +Loaded - lens content has already been downloaded and fetched

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusUnloaded
    + +
    +
    +

    Swift

    +
    case unloaded = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusLoading
    + +
    +
    +

    Swift

    +
    case loading = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusLoaded
    + +
    +
    +

    Swift

    +
    case loaded = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerAssetType.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerAssetType.html new file mode 100644 index 00000000..9ac3b333 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerAssetType.html @@ -0,0 +1,492 @@ + + + + SCCameraKitLensMediaPickerAssetType Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetType

+
+
+

Objective-C

+
NS_ENUM(NSInteger, SCCameraKitLensMediaPickerAssetType) {
+    SCCameraKitLensMediaPickerAssetTypeImage,
+    SCCameraKitLensMediaPickerAssetTypeVideo,
+}
+ +
+
+

Swift

+
enum SCCameraKitLensMediaPickerAssetType : Int, @unchecked Sendable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensMediaPickerAssetTypeImage
    + +
    +
    +

    Swift

    +
    case image = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensMediaPickerAssetTypeVideo
    + +
    +
    +

    Swift

    +
    case video = 1
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html new file mode 100644 index 00000000..4814f002 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html @@ -0,0 +1,562 @@ + + + + SCCameraKitLensMediaPickerProviderAllowedMediaType Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderAllowedMediaType

+
+
+

Objective-C

+
NS_OPTIONS(NSInteger, SCCameraKitLensMediaPickerProviderAllowedMediaType) {
+    // The current lens has not provided any specific indication of the type of picker that should be shown.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified = 0,
+
+    // Images should be shown in the picker.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage = 1 << 0,
+
+    // If LensMediaPickerProviderAllowedMediaTypeImage is specified, the provider should ONLY show images with a
+    // person's face in them
+    // If LensMediaPickerProviderAllowedMediaTypeImage is not specified, this option is ignored.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace = 1 << 1,
+
+    // Videos should be shown in the picker
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo = 1 << 2,
+}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerProviderAllowedMediaType : OptionSet, @unchecked Sendable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiResponseStatus.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiResponseStatus.html new file mode 100644 index 00000000..4d3e2597 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiResponseStatus.html @@ -0,0 +1,713 @@ + + + + SCCameraKitLensRemoteApiResponseStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponseStatus

+
+
+

Objective-C

+
enum SCCameraKitLensRemoteApiResponseStatus : NSInteger {}
+ +
+
+

Swift

+
enum SCCameraKitLensRemoteApiResponseStatus : Int, @unchecked Sendable
+ +
+
+

Describes the status of the response sent to the lens.

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html new file mode 100644 index 00000000..206060ef --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html @@ -0,0 +1,522 @@ + + + + SCCameraKitLensRemoteApiServiceCallStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceCallStatus

+
+
+

Objective-C

+
enum SCCameraKitLensRemoteApiServiceCallStatus : NSInteger {}
+ +
+
+

Swift

+
enum LensRemoteApiServiceCallStatus : Int, @unchecked Sendable
+ +
+
+

Describes the status of the call for the request handled by a remote api service.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Request was ignored typically due to a remote api service not interested in handling such request to allow other + services to handle the same request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusIgnored
    + +
    +
    +

    Swift

    +
    case ignored = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Request was received but one or more responses are yet to be sent.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusOngoing
    + +
    +
    +

    Swift

    +
    case ongoing = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Request was received and a single response was sent indicating that the call is complete.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusAnswered
    + +
    +
    +

    Swift

    +
    case answered = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitPreviewViewContentMode.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitPreviewViewContentMode.html new file mode 100644 index 00000000..70c306b2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Enums/SCCameraKitPreviewViewContentMode.html @@ -0,0 +1,505 @@ + + + + SCCameraKitPreviewViewContentMode Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreviewViewContentMode

+
+
+ +
NS_ENUM(NSInteger, SCCameraKitPreviewViewContentMode) {
+    SCCameraKitPreviewViewContentModeScaleToFill,
+    SCCameraKitPreviewViewContentModeAspectFill,
+    SCCameraKitPreviewViewContentModeAspectFit
+}
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Extensions.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Extensions.html new file mode 100644 index 00000000..a403ce81 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Extensions.html @@ -0,0 +1,440 @@ + + + + Extensions Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + AdjustmentsProcessor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension AdjustmentsProcessor
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Extensions/AdjustmentsProcessor.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Extensions/AdjustmentsProcessor.html new file mode 100644 index 00000000..73f16014 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Extensions/AdjustmentsProcessor.html @@ -0,0 +1,469 @@ + + + + AdjustmentsProcessor Extension Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentsProcessor

+
+
+ +
public extension AdjustmentsProcessor
+ +
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + apply(adjustment:) + +
    +
    +
    +
    +
    +
    +

    Applies a given adjustment and returns a controller which allows runtime configuration of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func apply<AdjustmentType>(adjustment: AdjustmentType) throws -> AdjustmentType.Controller where AdjustmentType : Adjustment
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustment + + +
    +

    The adjustment to apply.

    +
    +
    +
    +
    +

    Return Value

    +

    A controller to configure the adjustment.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols.html new file mode 100644 index 00000000..d4fd87b5 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols.html @@ -0,0 +1,2316 @@ + + + + Protocols Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SCCameraKitProtocol + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitProtocol <NSObject>
    +
    +/// Contains lenses related objects.
    +@property (strong, nonatomic, readonly) id<SCCameraKitLensesComponent> lenses;
    +
    +/// Contains adjustment related objects.
    +@property (strong, nonatomic, readonly) id<SCCameraKitAdjustmentsComponent> adjustments;
    +
    +/// Begin processing input frames with front camera position and portrait video orientation
    +/// @param input the input to configure.
    +/// @param arInput the ARKit input to configure.
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +               arInput:(id<SCCameraKitARInput>)arInput NS_SWIFT_NAME(start(input:arInput:));
    +
    +/// Deprecated. Use
    +/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +               arInput:(id<SCCameraKitARInput>)arInput
    +        cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +      videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +          dataProvider:(SCCameraKitDataProviderComponent *)dataProvider
    +          hintDelegate:(id<SCCameraKitLensHintDelegate>)hintDelegate __attribute__((deprecated));
    +
    +/// Deprecated. Use
    +/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +                                  arInput:(id<SCCameraKitARInput>)arInput
    +                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
    +                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
    +    agreementsPresentationContextProvider:
    +        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
    +    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:))
    +        __attribute__((deprecated));
    +;
    +
    +/// Begin processing input frames.
    +/// @param input the input to configure.
    +/// @param arInput the ARKit input to configure.
    +/// @param cameraPosition the camera position in use
    +/// @param videoOrientation the orientation for the outputted video buffers
    +/// @param dataProvider data provider component to pass in custom data providers (optional -- will create and handle
    +/// data providers by default if nil)
    +/// @param hintDelegate lens hint delegate to show/hide hints for applied lenses
    +/// @param textInputContextProvider context provider for providing keyboard access to lenses
    +/// @param agreementsPresentationContextProvider context provider for presenting agreements screens
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +                                  arInput:(id<SCCameraKitARInput>)arInput
    +                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
    +                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
    +                 textInputContextProvider:(nullable id<SCCameraKitTextInputContextProvider>)textInputContextProvider
    +    agreementsPresentationContextProvider:
    +        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
    +    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:));
    +
    +/// End processing input frames.
    +- (void)stop;
    +
    +/// End processing input frames.
    +/// @param completion Block to be called after processing is finished and session is stopped
    +- (void)stopWithCompletion:(nullable void (^)(void))completion NS_SWIFT_NAME(stop(completion:));
    +
    +/// Add an output. Frames will still be processed if no outputs exist.
    +- (void)addOutput:(id<SCCameraKitOutput>)output NS_SWIFT_NAME(add(output:));
    +
    +/// Remove an output.
    +- (void)removeOutput:(id<SCCameraKitOutput>)listener NS_SWIFT_NAME(remove(output:));
    +
    +/// The camera position in use. Setting will automatically update the input.
    +@property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
    +
    +/// The orientation for the outputted video buffers
    +@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
    +
    +/// The active input. May be either standard camera input or the AR input, depending on lens requirements.
    +@property (nonatomic, readonly) id<SCCameraKitInput> activeInput;
    +
    +/// Store containing information above the acceptance state of terms of service
    +@property (nonatomic, readonly) id<SCCameraKitAgreementsStore> agreementsStore;
    +
    +/// Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.
    +/// @note CameraKit will present this when the user applies a lens if they have new agreements to accept. You can call
    +/// this explicitly if you wish to present the terms before then (eg during an onboarding experience, alongside your own
    +/// app's Terms of Service)
    +- (void)presentAgreementsImmediately;
    +
    +@end
    + +
    +
    +

    Swift

    +
    protocol CameraKitProtocol : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Propogates ARKit session delegate methods back to CameraKit. +If you implement your own AR Input, you MUST call these methods when their corresponding ARKit delegate methods +are called.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitARInputDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitARInput + +
    +
    +
    +
    +
    +
    +

    Describes a source of AR data for CameraKit.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitARInput <SCCameraKitInput>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that will handle fetching the access token.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAccessTokenProviderTask <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AccessTokenProviderTask : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected +lenses, push to device, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAccessTokenProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AccessTokenProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitAdjustment + +
    +
    +
    +
    +
    +
    +

    Protocol describing the Objective-C interface to an Adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustment <NSObject>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol describing the Objective-C interface to an Adjustment Controller.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentController <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentController : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A controller to control the tone map adjustment.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol
    +    SCCameraKitToneMapAdjustmentController <SCCameraKitAdjustmentController>
    + +
    +
    +

    Swift

    +
    protocol ToneMapAdjustmentController : AdjustmentController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A controller to control the portrait adjustment.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol
    +    SCCameraKitPortraitAdjustmentController <SCCameraKitAdjustmentController>
    + +
    +
    +

    Swift

    +
    protocol PortraitAdjustmentController : AdjustmentController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The adjustments processor handles adjusting camera frames before they are processed by lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsProcessor <NSObject>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The adjustments component wraps several adjustment-related classes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsComponent <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentsComponent : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to adjustments processor state

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsProcessorObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentsProcessorObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to interface with agreements by CameraKit +This interface should not be used directly.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementSet <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementSet : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide presentation context for CameraKit to present agreements.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementsPresentationContextProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementsPresentationContextProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol describing the CameraKit agreements store.

    +
    +

    Warning

    + DO NOT attempt to directly use this protocol. Attempting to do so WILL CAUSE YOUR APP TO CRASH. Use +SCCameraKitAgreementsPresentationContextProvider to define how CameraKit will show agreements on your behalf. + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementsStore <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementsStore : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Params for device motion interface

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitDeviceMotionParameters <NSObject>
    + +
    +
    +

    Swift

    +
    protocol DeviceMotionParameters : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide device motion data and handle starting/updating/stopping

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitDeviceMotionDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol DeviceMotionDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to handler errors and exceptions related to CameraKit

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitErrorHandler
    + +
    +
    +

    Swift

    +
    protocol ErrorHandler
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The input destination is an intermediary for frame data.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitInputDestination
    + +
    +
    +

    Swift

    +
    protocol InputDestination
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitInput + +
    +
    +
    +
    +
    +
    +

    Describes a source of frames for CameraKit. Can be a camera, file, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitInput
    + +
    +
    +

    Swift

    +
    protocol Input
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that contains lens preview data

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPreview <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPreview : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that contains lens snapcodes data

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensSnapcodes <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensSnapcodes : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitLens + +
    +
    +
    +
    +
    +
    +

    Describes a lens object.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLens <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Lens : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensHintDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensHintDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface used to provide lens hint localizations from hint ids

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensHintProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensHintProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An opaque protocol used to pass launch data to processor when applying lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensLaunchData <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensLaunchData : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProvider <NSObject>
    +
    +/// A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.
    +/// @warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.
    +@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> mediaApplicationDelegate;
    +
    +/// A delegate that will be notified when picker-related UI should be shown or hidden.
    +@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderUIDelegate> uiDelegate;
    +
    +/// The number of assets that have been fetched and may be displayed by the picker UI.
    +@property (readonly, nonatomic, assign) NSInteger fetchedAssetCount;
    +
    +/// Whether or not the data provider has more assets available to fetch.
    +@property (readonly, nonatomic, assign) BOOL hasMoreAssetsToFetch;
    +
    +/// Fetches a new batch of assets.
    +/// @param batchSize How many items to fetch. A provider may return less than this if it exhausts available assets
    +/// without reaching the desired batch size
    +/// @param queue a dispatch queue to receive callbacks on
    +/// @param completion a completion block to be called when the fetch has completed
    +- (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
    +                            queue:(dispatch_queue_t)queue
    +                       completion:(void (^)(NSArray<id<SCCameraKitLensMediaPickerAsset>> *))completion
    +    NS_SWIFT_NAME(fetchNextAssetBatch(size:queue:completion:));
    +
    +/// Retrieves a fetched asset at a given index.
    +/// @param index the index to fetch.
    +- (id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:(NSInteger)index NS_SWIFT_NAME(fetchedAsset(at:));
    +
    +/// Loads the full resolution backing asset of a specified asset and applies it to lenses.
    +/// @param asset the asset to load and apply
    +/// @param completion a completion block called when application is complete
    +/// @note Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed
    +/// in order for the lens to succesfully apply the media.
    +- (void)loadAndApplyOriginalMediaFromAsset:(id<SCCameraKitLensMediaPickerAsset>)asset
    +                                completion:(nullable void (^)(void))completion
    +    NS_SWIFT_NAME(loadAndApplyOriginalMedia(from:completion:));
    +
    +/// Invalidates and resets internal state of the provider with a newly specified allowed media type option set.
    +/// @param assetType The asset types to allow in results.
    +- (void)reconfigureWithAllowedTypes:(SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
    +
    +@end
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerAsset <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderAsset : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProviderUIDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderUIDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate responsible for applying media to a lens. This should not be implemented directly.

    +
    +

    Note

    + If you create a custom provider, you’ll need to call the methods here from your provider. See notes on +provider.uiDelegate for more details. + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProviderMediaApplicationDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderMediaApplicationDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface used to observe changes in lens fetch status

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcherObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcherObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the interface used to cancel an ongoing prefetch task

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcherTask <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcherTask : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the interface used to prefetch lens content

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcher <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcher : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The lens processor handles transforming camera frames and adding effects to them.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensProcessor <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensProcessor : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to lens processor state

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensProcessorObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol ProcessorObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the remote api service request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiRequest <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiRequest : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the remote api service response to a request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiResponse <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiResponseProtocol : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the call that is sent in response to a remote api request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiServiceCall <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiServiceCall : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes a remote api service used to process requests sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiService <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiService : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide remote api services for specific lenses and api spec identifiers.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiServiceProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiServiceProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to lens groups the repository has available.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepositoryGroupObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepositoryGroupObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to specific lenses in groups the repository has available.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepositorySpecificObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepositorySpecificObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The lenses component wraps several lens-related classes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensesComponent <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensesComponent : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Lens Repository for listing lenses, getting lenses, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepository <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepository : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Params for device motion interface

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLocationParameters <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LocationParameters : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide device motion data and handle starting/updating/stopping

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLocationDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LocationDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitOutput + +
    +
    +
    +
    +
    +
    +

    Allows conformers to be notified of new frame data from CameraKit.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitOutput <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Output : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to interface with preferences stored by CameraKit +This interface is intentionally opaque and should only be used to clear out stored preferences

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitPreferences <NSObject>
    + +
    +
    +

    Swift

    +
    protocol SCCameraKitPreferences : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol for representing a text input view on-screen for lenses that request it.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTextInputKeyboardAccessoryProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol TextInputKeyboardAccessoryProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide keyboard input data to lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTextInputContextProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol TextInputContextProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitTexture + +
    +
    +
    +
    +
    +
    +

    An opaque protocol describing CameraKit output.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTexture <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Texture : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    User data provider delegate to provide receivers with new user data on updates

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitUserDataProviderDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol UserDataProviderDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that provides user data to lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitUserDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol UserDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Adjustment + +
    +
    +
    +
    +
    +
    +

    Swift protocol for an adjustment. Specifies an associated Controller type.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol Adjustment : __Adjustment
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/Adjustment.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/Adjustment.html new file mode 100644 index 00000000..a5135a81 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/Adjustment.html @@ -0,0 +1,446 @@ + + + + Adjustment Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Adjustment

+
+
+ +
public protocol Adjustment : __Adjustment
+ +
+
+

Swift protocol for an adjustment. Specifies an associated Controller type.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    associatedtype Controller : AdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitARInput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitARInput.html new file mode 100644 index 00000000..b9c8abf8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitARInput.html @@ -0,0 +1,568 @@ + + + + SCCameraKitARInput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARInput

+
+
+ +
@protocol SCCameraKitARInput <SCCameraKitInput>
+ +
+
+

Describes a source of AR data for CameraKit.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + session + +
    +
    +
    +
    +
    +
    +

    The managed ARSession.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) ARSession *_Nonnull session;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arDelegate + +
    +
    +
    +
    +
    +
    +

    The intermediate destination for ARKit delegate methods. See the protocol definition for more details. +This property should NOT be set directly. CameraKit will assign this as appropriate.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitARInputDelegate> _Nullable arDelegate;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The ARConfiguration to use when using the front camera.

    +
    +

    Warning

    + if your app supports lenses with true sizing, you MUST return an instance of ARFaceTrackingConfiguration +(additionally, we recommend setting the number of tracked faces to 0) + +
    +

    Note

    + this is nil by default, as adding ARFaceTrackingConfiguration will subject your app to additional app review, +concerning your usage of the TrueDepth camera. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) ARConfiguration *_Nonnull frontCameraConfiguration;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Runs the session with the provided configuration and options.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)runWithConfiguration:(nonnull ARConfiguration *)configuration
    +                     options:(ARSessionRunOptions)options;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -pause + +
    +
    +
    +
    +
    +
    +

    Pauses the session.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)pause;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitARInputDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitARInputDelegate.html new file mode 100644 index 00000000..2ec92edc --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitARInputDelegate.html @@ -0,0 +1,599 @@ + + + + SCCameraKitARInputDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARInputDelegate

+
+
+ +
@protocol SCCameraKitARInputDelegate
+ +
+
+

Propogates ARKit session delegate methods back to CameraKit. +If you implement your own AR Input, you MUST call these methods when their corresponding ARKit delegate methods +are called.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -input:didAddAnchors: + +
    +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didAddAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didAddAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didUpdateAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didUpdateAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didRemoveAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didRemoveAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProvider.html new file mode 100644 index 00000000..23a70820 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProvider.html @@ -0,0 +1,547 @@ + + + + SCCameraKitAccessTokenProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAccessTokenProvider

+
+
+

Objective-C

+
@protocol SCCameraKitAccessTokenProvider <NSObject>
+ +
+
+

Swift

+
protocol AccessTokenProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected +lenses, push to device, etc.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    If the user is already authenticated, fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc. +Returns an access token task if the fetch token task is cancellable or nil if the task is not cancellable.

    +
    +

    Note

    + It is up to the provider to ensure that the access token will be active for the lifetime of the feature using +the token. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAccessTokenProviderTask>)
    +    fetchAccessTokenIfAuthenticatedWithCompletion:
    +        (nonnull void (^)(NSString *_Nullable, NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func fetchAccessTokenIfAuthenticated(completion: @escaping (String?, Error?) -> Void) -> AccessTokenProviderTask?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    Callback on completion with access token on success or error on failure.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc. +May take the user through an authentication flow if the user is not already authenticated. +Returns an access token task if the fetch token task is cancellable or nil if the task is not cancellable.

    +
    +

    Note

    + It is up to the provider to ensure that the access token will be active for the lifetime of the feature using +the token. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAccessTokenProviderTask>)
    +    fetchAccessTokenWithCompletion:
    +        (nonnull void (^)(NSString *_Nullable, NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func fetchAccessToken(completion: @escaping (String?, Error?) -> Void) -> AccessTokenProviderTask?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    Callback on completion with access token on success or error on failure.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProviderTask.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProviderTask.html new file mode 100644 index 00000000..058e8831 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAccessTokenProviderTask.html @@ -0,0 +1,457 @@ + + + + SCCameraKitAccessTokenProviderTask Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAccessTokenProviderTask

+
+
+

Objective-C

+
@protocol SCCameraKitAccessTokenProviderTask <NSObject>
+ +
+
+

Swift

+
protocol AccessTokenProviderTask : NSObjectProtocol
+ +
+
+

Describes an interface that will handle fetching the access token.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -cancel + +
    +
    +
    +
    +
    +
    +

    Cancels fetching access token if it’s currently in progress;

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancel;
    + +
    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsComponent.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsComponent.html new file mode 100644 index 00000000..b902164c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsComponent.html @@ -0,0 +1,457 @@ + + + + SCCameraKitAdjustmentsComponent Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsComponent

+
+
+

Objective-C

+
@protocol SCCameraKitAdjustmentsComponent <NSObject>
+ +
+
+

Swift

+
protocol AdjustmentsComponent : NSObjectProtocol
+ +
+
+

The adjustments component wraps several adjustment-related classes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + processor + +
    +
    +
    +
    +
    +
    +

    Handles the actual adjustment application. Will be null if CameraKit is not running with a valid input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitAdjustmentsProcessor> processor;
    + +
    +
    +

    Swift

    +
    var processor: AdjustmentsProcessor? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessor.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessor.html new file mode 100644 index 00000000..f25263b8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessor.html @@ -0,0 +1,670 @@ + + + + SCCameraKitAdjustmentsProcessor Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsProcessor

+
+
+ +
@protocol SCCameraKitAdjustmentsProcessor <NSObject>
+ +
+
+

The adjustments processor handles adjusting camera frames before they are processed by lenses.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Checks if an adjustment is available and supported by the current device. Some adjustments are performance sensitive +or require specific hardware which may mean they are unavailable on specific devices. You should call this method +before showing any UI associated with the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)isAdjustmentAvailable:(nonnull id<SCCameraKitAdjustment>)adjustment;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustment + + +
    +

    the adjustment to check.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Applies the specified adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAdjustmentController>)
    +    applyAdjustment:(nonnull id<SCCameraKitAdjustment>)adjustment
    +              error:(NSError *_Nullable *_Nullable)error;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + adjustment + + +
    +

    The adjustment to apply.

    +
    +
    + + error + + +
    +

    Any error that may occur during application.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Removes an adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeAdjustmentController:
    +    (nonnull id<SCCameraKitAdjustmentController>)adjustmentController;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustmentController + + +
    +

    the controller associated with the adjustment you wish to remove.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addObserver: + +
    +
    +
    +
    +
    +
    +

    Adds observer to receive notifications of changes to adjustments processor state. +Returns if observer got successfully added

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)addObserver:
    +    (nonnull id<SCCameraKitAdjustmentsProcessorObserver>)observer;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to receive callbacks.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeObserver: + +
    +
    +
    +
    +
    +
    +

    Removes observer from receiving notifications of changes to adjustments availability.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +    (nonnull id<SCCameraKitAdjustmentsProcessorObserver>)observer;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to stop receiving callbacks.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessorObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessorObserver.html new file mode 100644 index 00000000..c5b95e0c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAdjustmentsProcessorObserver.html @@ -0,0 +1,477 @@ + + + + SCCameraKitAdjustmentsProcessorObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsProcessorObserver

+
+
+

Objective-C

+
@protocol SCCameraKitAdjustmentsProcessorObserver <NSObject>
+ +
+
+

Swift

+
protocol AdjustmentsProcessorObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to adjustments processor state

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that the adjustments processor updated the state of available adjustments

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processorUpdatedAdjustmentsAvailability:
    +    (nonnull id<SCCameraKitAdjustmentsProcessor>)adjustmentsProcessor;
    + +
    +
    +

    Swift

    +
    func processorUpdatedAdjustmentsAvailability(_ adjustmentsProcessor: SCCameraKitAdjustmentsProcessor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustmentsProcessor + + +
    +

    the adjustments processor instance

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementSet.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementSet.html new file mode 100644 index 00000000..b0d8768b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementSet.html @@ -0,0 +1,522 @@ + + + + SCCameraKitAgreementSet Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementSet

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementSet <NSObject>
+ +
+
+

Swift

+
protocol AgreementSet : NSObjectProtocol
+ +
+
+

Protocol to interface with agreements by CameraKit +This interface should not be used directly.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + termsOfServiceURL + +
    +
    +
    +
    +
    +
    +

    A URL to the terms of service agreement for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull termsOfServiceURL;
    + +
    +
    +

    Swift

    +
    var termsOfServiceURL: URL { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + privacyPolicyURL + +
    +
    +
    +
    +
    +
    +

    A URL to the privacy policy for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull privacyPolicyURL;
    + +
    +
    +

    Swift

    +
    var privacyPolicyURL: URL { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + learnMoreURL + +
    +
    +
    +
    +
    +
    +

    A URL to the learn more page for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull learnMoreURL;
    + +
    +
    +

    Swift

    +
    var learnMoreURL: URL { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsPresentationContextProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsPresentationContextProvider.html new file mode 100644 index 00000000..d13a1595 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsPresentationContextProvider.html @@ -0,0 +1,527 @@ + + + + SCCameraKitAgreementsPresentationContextProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementsPresentationContextProvider

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementsPresentationContextProvider <NSObject>
+ +
+
+

Swift

+
protocol AgreementsPresentationContextProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide presentation context for CameraKit to present agreements.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    The view controller to present the agreements view controller from.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIViewController *_Nonnull viewControllerForPresentingAgreements;
    + +
    +
    +

    Swift

    +
    var viewControllerForPresentingAgreements: UIViewController { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Requests that the view controller passed be dismissed, with acceptance status.

    +
    +

    Warning

    + the implementer of this protocol is responsible for dismissing the view controller. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)dismissAgreementsViewController:
    +            (nonnull UIViewController *)agreementsViewController
    +                               accepted:(BOOL)accepted;
    + +
    +
    +

    Swift

    +
    func dismissAgreementsViewController(_ agreementsViewController: UIViewController, accepted: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + agreementsViewController + + +
    +

    the view controller to dismiss.

    +
    +
    + + accepted + + +
    +

    whether or not the user accepted all the agreements presented.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsStore.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsStore.html new file mode 100644 index 00000000..faff3906 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitAgreementsStore.html @@ -0,0 +1,591 @@ + + + + SCCameraKitAgreementsStore Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementsStore

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementsStore <NSObject>
+ +
+
+

Swift

+
protocol AgreementsStore : NSObjectProtocol
+ +
+
+

Protocol describing the CameraKit agreements store.

+
+

Warning

+ DO NOT attempt to directly use this protocol. Attempting to do so WILL CAUSE YOUR APP TO CRASH. Use +SCCameraKitAgreementsPresentationContextProvider to define how CameraKit will show agreements on your behalf. + +
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) BOOL requiresNewAgreementAcceptance
    + +
    +
    +

    Swift

    +
    var requiresNewAgreementAcceptance: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) BOOL childrenProtectionActRestricted
    + +
    +
    +

    Swift

    +
    var childrenProtectionActRestricted: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) id<SCCameraKitAgreementSet> newestAvailableAgreements
    + +
    +
    +

    Swift

    +
    var newestAvailableAgreements: SCCameraKitAgreementSet { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -acceptAgreements: + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)acceptAgreements:(id<SCCameraKitAgreementSet>)agreements;
    + +
    +
    +

    Swift

    +
    func acceptAgreements(_ agreements: SCCameraKitAgreementSet)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -declineAgreements: + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)declineAgreements:(id<SCCameraKitAgreementSet>)agreements;
    + +
    +
    +

    Swift

    +
    func declineAgreements(_ agreements: SCCameraKitAgreementSet)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionDataProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionDataProvider.html new file mode 100644 index 00000000..3ee798f1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionDataProvider.html @@ -0,0 +1,541 @@ + + + + SCCameraKitDeviceMotionDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDeviceMotionDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitDeviceMotionDataProvider <NSObject>
+ +
+
+

Swift

+
protocol DeviceMotionDataProvider : NSObjectProtocol
+ +
+
+

Protocol to provide device motion data and handle starting/updating/stopping

+ +
+
+ +
+
+
+
    +
  • +
    + + + + deviceMotion + +
    +
    +
    +
    +
    +
    +

    Current device motion data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) CMDeviceMotion *deviceMotion;
    + +
    +
    +

    Swift

    +
    var deviceMotion: CMDeviceMotion? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Start updating device motion with params

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startUpdatingWithParameters:
    +    (nonnull id<SCCameraKitDeviceMotionParameters>)parameters;
    + +
    +
    +

    Swift

    +
    func startUpdating(with parameters: DeviceMotionParameters)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + parameters + + +
    +

    device motion params

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopUpdating + +
    +
    +
    +
    +
    +
    +

    Stop updating device motion

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopUpdating;
    + +
    +
    +

    Swift

    +
    func stopUpdating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionParameters.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionParameters.html new file mode 100644 index 00000000..0a09de82 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitDeviceMotionParameters.html @@ -0,0 +1,457 @@ + + + + SCCameraKitDeviceMotionParameters Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDeviceMotionParameters

+
+
+

Objective-C

+
@protocol SCCameraKitDeviceMotionParameters <NSObject>
+ +
+
+

Swift

+
protocol DeviceMotionParameters : NSObjectProtocol
+ +
+
+

Params for device motion interface

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Requires device motion interface to be aligned with compass

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL requiresCompassAlignment;
    + +
    +
    +

    Swift

    +
    var requiresCompassAlignment: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitErrorHandler.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitErrorHandler.html new file mode 100644 index 00000000..c3d65048 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitErrorHandler.html @@ -0,0 +1,476 @@ + + + + SCCameraKitErrorHandler Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitErrorHandler

+
+
+

Objective-C

+
@protocol SCCameraKitErrorHandler
+ +
+
+

Swift

+
protocol ErrorHandler
+ +
+
+

Describes an interface to handler errors and exceptions related to CameraKit

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -handleError: + +
    +
    +
    +
    +
    +
    +

    Handle error thrown by CameraKit

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)handleError:(nonnull NSException *)error;
    + +
    +
    +

    Swift

    +
    func handleError(_ error: NSException)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + error + + +
    +

    exception thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitInput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitInput.html new file mode 100644 index 00000000..cb237a04 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitInput.html @@ -0,0 +1,743 @@ + + + + SCCameraKitInput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitInput

+
+
+

Objective-C

+
@protocol SCCameraKitInput
+ +
+
+

Swift

+
protocol Input
+ +
+
+

Describes a source of frames for CameraKit. Can be a camera, file, etc.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + destination + +
    +
    +
    +
    +
    +
    +

    The intermediate destination for frame data. See the protocol definition for more details. +This property should NOT be set directly. CameraKit will assign this as appropriate.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitInputDestination> _Nullable destination;
    + +
    +
    +

    Swift

    +
    weak var destination: InputDestination? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + horizontalFieldOfView + +
    +
    +
    +
    +
    +
    +

    The horizontal field of view for the input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGFloat horizontalFieldOfView;
    + +
    +
    +

    Swift

    +
    var horizontalFieldOfView: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frameSize + +
    +
    +
    +
    +
    +
    +

    The size for input frame

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGSize frameSize;
    + +
    +
    +

    Swift

    +
    var frameSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frameOrientation + +
    +
    +
    +
    +
    +
    +

    The orientation of frame data for the input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) AVCaptureVideoOrientation frameOrientation;
    + +
    +
    +

    Swift

    +
    var frameOrientation: AVCaptureVideoOrientation { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + position + +
    +
    +
    +
    +
    +
    +

    The camera position that the frames are sourced from.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) AVCaptureDevicePosition position;
    + +
    +
    +

    Swift

    +
    var position: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isRunning + +
    +
    +
    +
    +
    +
    +

    Whether or not the session is currently running.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL isRunning;
    + +
    +
    +

    Swift

    +
    var isRunning: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -startRunning + +
    +
    +
    +
    +
    +
    +

    Indiciates that the input should begin running if it is not currently. If the input is aleady running, this should +be a noop. +@warning: This method is SYNCHRONOUS and should not be called on the main thread.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startRunning;
    + +
    +
    +

    Swift

    +
    func startRunning()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopRunning + +
    +
    +
    +
    +
    +
    +

    Indiciates that the input should MUST stop running if it currently is running. If the input is not already running, +this should be a noop. +@warning: This method is SYNCHRONOUS and should not be called on the main thread.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopRunning;
    + +
    +
    +

    Swift

    +
    func stopRunning()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -setVideoOrientation: + +
    +
    +
    +
    +
    +
    +

    Set the orientation for the outputted video buffers

    +
    +

    Note

    + this may be different than the actual frame data orientation +since inputs may map frame data orientation to video orientation differently + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setVideoOrientation:(AVCaptureVideoOrientation)videoOrientation;
    + +
    +
    +

    Swift

    +
    func setVideoOrientation(_ videoOrientation: AVCaptureVideoOrientation)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + videoOrientation + + +
    +

    orientation for the outputted video buffers

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitInputDestination.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitInputDestination.html new file mode 100644 index 00000000..33224b30 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitInputDestination.html @@ -0,0 +1,604 @@ + + + + SCCameraKitInputDestination Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitInputDestination

+
+
+

Objective-C

+
@protocol SCCameraKitInputDestination
+ +
+
+

Swift

+
protocol InputDestination
+ +
+
+

The input destination is an intermediary for frame data.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Pass new video frame data into CameraKit. Call this every time your input generates new video frames.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitInput>)input
    +    receivedVideoSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func input(_ input: Input, receivedVideoSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the input providing data.

    +
    +
    + + sampleBuffer + + +
    +

    a sample buffer containing new video frame data.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Pass new audio frame data into CameraKit. Call this every time your input generates new audio frames.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitInput>)input
    +    receivedAudioSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func input(_ input: Input, receivedAudioSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the input providing data.

    +
    +
    + + sampleBuffer + + +
    +

    a sample buffer containing new audio frame data.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Indicates that the input has changed some attribute and that CameraKit should reconfigure itself accordingly.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)inputChangedAttributes:(nonnull id<SCCameraKitInput>)input;
    + +
    +
    +

    Swift

    +
    func inputChangedAttributes(_ input: Input)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + input + + +
    +

    the input that changed.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLens.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLens.html new file mode 100644 index 00000000..16c58b63 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLens.html @@ -0,0 +1,681 @@ + + + + SCCameraKitLens Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLens

+
+
+

Objective-C

+
@protocol SCCameraKitLens <NSObject>
+ +
+
+

Swift

+
protocol Lens : NSObjectProtocol
+ +
+
+

Describes a lens object.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + identifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NS_SWIFT_NAME(id) NSString *identifier;
    + +
    +
    +

    Swift

    +
    var id: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupIdentifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the group that the lens belongs to

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NS_SWIFT_NAME(groupId) NSString *groupIdentifier;
    + +
    +
    +

    Swift

    +
    var groupId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + name + +
    +
    +
    +
    +
    +
    +

    The name for the lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSString *name;
    + +
    +
    +

    Swift

    +
    var name: String? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + iconUrl + +
    +
    +
    +
    +
    +
    +

    URL for icon image

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *iconUrl;
    + +
    +
    +

    Swift

    +
    var iconUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preview + +
    +
    +
    +
    +
    +
    +

    Lens preview instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensPreview> _Nonnull preview;
    + +
    +
    +

    Swift

    +
    var preview: LensPreview { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + vendorData + +
    +
    +
    +
    +
    +
    +

    Extra metadata provided from vendor

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull vendorData;
    + +
    +
    +

    Swift

    +
    var vendorData: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + facingPreference + +
    +
    +
    +
    +
    +
    +

    Specifies which facing a lens is designed for.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensFacingPreference facingPreference;
    + +
    +
    +

    Swift

    +
    var facingPreference: LensFacingPreference { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapcodes + +
    +
    +
    +
    +
    +
    +

    Lens Snapcodes instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensSnapcodes> _Nonnull snapcodes;
    + +
    +
    +

    Swift

    +
    var snapcodes: LensSnapcodes { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintDelegate.html new file mode 100644 index 00000000..47129045 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintDelegate.html @@ -0,0 +1,579 @@ + + + + SCCameraKitLensHintDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensHintDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensHintDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensHintDelegate : NSObjectProtocol
+ +
+
+

Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies receiver that they should show hint for current lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)lensProcessor:(nonnull id<SCCameraKitLensProcessor>)lensProcessor
    +    shouldDisplayHint:(nonnull NSString *)hint
    +              forLens:(nonnull id<SCCameraKitLens>)lens
    +             autohide:(BOOL)autohide;
    + +
    +
    +

    Swift

    +
    func lensProcessor(_ lensProcessor: SCCameraKitLensProcessor, shouldDisplayHint hint: String, for lens: SCCameraKitLens, autohide: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + lensProcessor + + +
    +

    curent lens processor instance

    +
    +
    + + hint + + +
    +

    localized hint text to display

    +
    +
    + + lens + + +
    +

    current lens applied

    +
    +
    + + autohide + + +
    +

    should autohide hint

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies receiver that they should remove all hints for current lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)lensProcessor:(nonnull id<SCCameraKitLensProcessor>)lensProcessor
    +    shouldHideAllHintsForLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func lensProcessor(_ lensProcessor: SCCameraKitLensProcessor, shouldHideAllHintsFor lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensProcessor + + +
    +

    curent lens processor instance

    +
    +
    + + lens + + +
    +

    current lens applied

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintProvider.html new file mode 100644 index 00000000..7deae15e --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensHintProvider.html @@ -0,0 +1,489 @@ + + + + SCCameraKitLensHintProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensHintProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensHintProvider <NSObject>
+ +
+
+

Swift

+
protocol LensHintProvider : NSObjectProtocol
+ +
+
+

Describes an interface used to provide lens hint localizations from hint ids

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Get localized hint for hint id

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable NSString *)localizedHintForHintId:(nonnull NSString *)hintId
    +                                         lens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func localizedHint(for hintId: String, lens: SCCameraKitLens) -> String?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hintId + + +
    +

    unique id for lens hint

    +
    +
    + + lens + + +
    +

    lens instance which the hint belongs to

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerAsset.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerAsset.html new file mode 100644 index 00000000..48bc4410 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerAsset.html @@ -0,0 +1,553 @@ + + + + SCCameraKitLensMediaPickerAsset Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAsset

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerAsset <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderAsset : NSObjectProtocol
+ +
+
+

An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + identifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the asset.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull identifier;
    + +
    +
    +

    Swift

    +
    var identifier: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + type + +
    +
    +
    +
    +
    +
    +

    Whether the asset is an image or video.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensMediaPickerAssetType type;
    + +
    +
    +

    Swift

    +
    var type: SCCameraKitLensMediaPickerAssetType { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + duration + +
    +
    +
    +
    +
    +
    +

    If the asset is a video, the length of the video in seconds. Otherwise 0.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSTimeInterval duration;
    + +
    +
    +

    Swift

    +
    var duration: TimeInterval { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + previewImage + +
    +
    +
    +
    +
    +
    +

    A thumbnail for the image or video. For images, this will be cropped to show any detected faces.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIImage *_Nonnull previewImage;
    + +
    +
    +

    Swift

    +
    var previewImage: UIImage { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProvider.html new file mode 100644 index 00000000..e52cabb9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProvider.html @@ -0,0 +1,852 @@ + + + + SCCameraKitLensMediaPickerProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProvider <NSObject>
+
+/// A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.
+/// @warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.
+@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> mediaApplicationDelegate;
+
+/// A delegate that will be notified when picker-related UI should be shown or hidden.
+@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderUIDelegate> uiDelegate;
+
+/// The number of assets that have been fetched and may be displayed by the picker UI.
+@property (readonly, nonatomic, assign) NSInteger fetchedAssetCount;
+
+/// Whether or not the data provider has more assets available to fetch.
+@property (readonly, nonatomic, assign) BOOL hasMoreAssetsToFetch;
+
+/// Fetches a new batch of assets.
+/// @param batchSize How many items to fetch. A provider may return less than this if it exhausts available assets
+/// without reaching the desired batch size
+/// @param queue a dispatch queue to receive callbacks on
+/// @param completion a completion block to be called when the fetch has completed
+- (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
+                            queue:(dispatch_queue_t)queue
+                       completion:(void (^)(NSArray<id<SCCameraKitLensMediaPickerAsset>> *))completion
+    NS_SWIFT_NAME(fetchNextAssetBatch(size:queue:completion:));
+
+/// Retrieves a fetched asset at a given index.
+/// @param index the index to fetch.
+- (id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:(NSInteger)index NS_SWIFT_NAME(fetchedAsset(at:));
+
+/// Loads the full resolution backing asset of a specified asset and applies it to lenses.
+/// @param asset the asset to load and apply
+/// @param completion a completion block called when application is complete
+/// @note Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed
+/// in order for the lens to succesfully apply the media.
+- (void)loadAndApplyOriginalMediaFromAsset:(id<SCCameraKitLensMediaPickerAsset>)asset
+                                completion:(nullable void (^)(void))completion
+    NS_SWIFT_NAME(loadAndApplyOriginalMedia(from:completion:));
+
+/// Invalidates and resets internal state of the provider with a newly specified allowed media type option set.
+/// @param assetType The asset types to allow in results.
+- (void)reconfigureWithAllowedTypes:(SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
+
+@end
+ +
+
+

Swift

+
protocol LensMediaPickerProvider : NSObjectProtocol
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset. +@warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id< SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> _Nullable mediaApplicationDelegate;
    + +
    +
    +

    Swift

    +
    weak var mediaApplicationDelegate: LensMediaPickerProviderMediaApplicationDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + uiDelegate + +
    +
    +
    +
    +
    +
    +

    A delegate that will be notified when picker-related UI should be shown or hidden.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitLensMediaPickerProviderUIDelegate> _Nullable uiDelegate;
    + +
    +
    +

    Swift

    +
    weak var uiDelegate: LensMediaPickerProviderUIDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + fetchedAssetCount + +
    +
    +
    +
    +
    +
    +

    The number of assets that have been fetched and may be displayed by the picker UI.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSInteger fetchedAssetCount;
    + +
    +
    +

    Swift

    +
    var fetchedAssetCount: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hasMoreAssetsToFetch + +
    +
    +
    +
    +
    +
    +

    Whether or not the data provider has more assets available to fetch.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL hasMoreAssetsToFetch;
    + +
    +
    +

    Swift

    +
    var hasMoreAssetsToFetch: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Fetches a new batch of assets.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
    +                            queue:(nonnull dispatch_queue_t)queue
    +                       completion:
    +                           (nonnull void (^)(
    +                               NSArray<id<SCCameraKitLensMediaPickerAsset>>
    +                                   *_Nonnull))completion;
    + +
    +
    +

    Swift

    +
    func fetchNextAssetBatch(size batchSize: Int, queue: dispatch_queue_t) async -> [LensMediaPickerProviderAsset]
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + batchSize + + +
    +

    How many items to fetch. A provider may return less than this if it exhausts available assets +without reaching the desired batch size

    +
    +
    + + queue + + +
    +

    a dispatch queue to receive callbacks on

    +
    +
    + + completion + + +
    +

    a completion block to be called when the fetch has completed

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -fetchedAssetAtIndex: + +
    +
    +
    +
    +
    +
    +

    Retrieves a fetched asset at a given index.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:
    +    (NSInteger)index;
    + +
    +
    +

    Swift

    +
    func fetchedAsset(at index: Int) -> LensMediaPickerProviderAsset
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + index + + +
    +

    the index to fetch.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Loads the full resolution backing asset of a specified asset and applies it to lenses.

    +
    +

    Note

    + Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed +in order for the lens to succesfully apply the media. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)loadAndApplyOriginalMediaFromAsset:
    +            (nonnull id<SCCameraKitLensMediaPickerAsset>)asset
    +                                completion:(nullable void (^)(void))completion;
    + +
    +
    +

    Swift

    +
    func loadAndApplyOriginalMedia(from asset: LensMediaPickerProviderAsset) async
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + asset + + +
    +

    the asset to load and apply

    +
    +
    + + completion + + +
    +

    a completion block called when application is complete

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Invalidates and resets internal state of the provider with a newly specified allowed media type option set.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)reconfigureWithAllowedTypes:
    +    (SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
    + +
    +
    +

    Swift

    +
    func reconfigure(withAllowedTypes assetType: SCCameraKitLensMediaPickerProviderAllowedMediaType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + assetType + + +
    +

    The asset types to allow in results.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html new file mode 100644 index 00000000..0c0fe6d1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html @@ -0,0 +1,526 @@ + + + + SCCameraKitLensMediaPickerProviderMediaApplicationDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderMediaApplicationDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProviderMediaApplicationDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderMediaApplicationDelegate : NSObjectProtocol
+ +
+
+

Delegate responsible for applying media to a lens. This should not be implemented directly.

+
+

Note

+ If you create a custom provider, you’ll need to call the methods here from your provider. See notes on +provider.uiDelegate for more details. + +
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies lenses that the media picker provider has loaded the full resolution version of an asset and is ready for +it to be applied.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProvider:
    +            (nonnull id<SCCameraKitLensMediaPickerProvider>)provider
    +    requestedApplicationOfOriginalAssets:
    +        (nonnull id<SCCameraKitLensMediaPickerAsset>)asset
    +                                     url:(nonnull NSURL *)url
    +                                metadata:
    +                                    (SCCameraKitLensMediaPickerAssetMetadata)
    +                                        metadata;
    + +
    +
    +

    Swift

    +
    func mediaPickerProvider(_ provider: LensMediaPickerProvider, requestedApplicationOfOriginalAssets asset: LensMediaPickerProviderAsset, url: URL, metadata: SCCameraKitLensMediaPickerAssetMetadata)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + provider + + +
    +

    the provider sending the reequest

    +
    +
    + + asset + + +
    +

    the asset provided by the provider

    +
    +
    + + url + + +
    +

    the URL to a full-resolution image or video for lenses to apply

    +
    +
    + + metadata + + +
    +

    any metadata associated with the asset

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html new file mode 100644 index 00000000..6dfdf9a1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html @@ -0,0 +1,529 @@ + + + + SCCameraKitLensMediaPickerProviderUIDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderUIDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProviderUIDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderUIDelegate : NSObjectProtocol
+ +
+
+

Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Requests media picker UI be displayed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProviderRequestedUIPresentation:
    +    (nonnull id<SCCameraKitLensMediaPickerProvider>)provider;
    + +
    +
    +

    Swift

    +
    func mediaPickerProviderRequestedUIPresentation(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider sending the request

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Requests media picker UI be dismissed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProviderRequestedUIDismissal:
    +    (nonnull id<SCCameraKitLensMediaPickerProvider>)provider;
    + +
    +
    +

    Swift

    +
    func mediaPickerProviderRequestedUIDismissal(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider sending the request

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcher.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcher.html new file mode 100644 index 00000000..2d199d36 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcher.html @@ -0,0 +1,622 @@ + + + + SCCameraKitLensPrefetcher Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcher

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcher <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcher : NSObjectProtocol
+ +
+
+

Describes the interface used to prefetch lens content

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Queues up a new fetch task for each of the lenses in order to prefetch their content. +A successful callback indiciates that all the content for the list of lenses is ready to be used/applied in lens +processor

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensPrefetcherTask>)
    +    prefetchLenses:(nonnull NSArray<id<SCCameraKitLens>> *)lenses
    +        completion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func prefetch(lenses: [SCCameraKitLens], completion: ((Bool) -> Void)? = nil) -> LensPrefetcherTask
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lenses + + +
    +

    lenses to prefetch content for

    +
    +
    + + completion + + +
    +

    callback on completion with success or failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add observer to observe changes in lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addStatusObserver:
    +            (nonnull id<SCCameraKitLensPrefetcherObserver>)observer
    +                  forLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func addStatusObserver(_ observer: LensPrefetcherObserver, lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer instance which will receive updates

    +
    +
    + + lens + + +
    +

    lens to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove observer to stop observing changes in lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeStatusObserver:
    +            (nonnull id<SCCameraKitLensPrefetcherObserver>)observer
    +                     forLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func removeStatusObserver(_ observer: LensPrefetcherObserver, lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer instance which will stop receiving updates

    +
    +
    + + lens + + +
    +

    lens to stop observing

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherObserver.html new file mode 100644 index 00000000..4248c4c6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherObserver.html @@ -0,0 +1,502 @@ + + + + SCCameraKitLensPrefetcherObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcherObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcherObserver <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcherObserver : NSObjectProtocol
+ +
+
+

Describes an interface used to observe changes in lens fetch status

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notification when fetcher updates lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)prefetcher:(nonnull id<SCCameraKitLensPrefetcher>)prefetcher
    +     didUpdateLens:(nonnull id<SCCameraKitLens>)lens
    +            status:(SCCameraKitLensFetchStatus)status;
    + +
    +
    +

    Swift

    +
    func prefetcher(_ prefetcher: LensPrefetcher, didUpdate lens: SCCameraKitLens, status: LensFetchStatus)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + prefetcher + + +
    +

    LensPrefetcher instance that updated lens fetch status

    +
    +
    + + lens + + +
    +

    lens whose fetch status was updated

    +
    +
    + + status + + +
    +

    new fetch status for lens

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherTask.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherTask.html new file mode 100644 index 00000000..37e7fedf --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPrefetcherTask.html @@ -0,0 +1,457 @@ + + + + SCCameraKitLensPrefetcherTask Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcherTask

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcherTask <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcherTask : NSObjectProtocol
+ +
+
+

Describes the interface used to cancel an ongoing prefetch task

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -cancel + +
    +
    +
    +
    +
    +
    +

    Cancel prefetch task if it’s ongoing

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancel;
    + +
    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPreview.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPreview.html new file mode 100644 index 00000000..feafca42 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensPreview.html @@ -0,0 +1,457 @@ + + + + SCCameraKitLensPreview Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPreview

+
+
+

Objective-C

+
@protocol SCCameraKitLensPreview <NSObject>
+ +
+
+

Swift

+
protocol LensPreview : NSObjectProtocol
+ +
+
+

Describes an interface that contains lens preview data

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    URL for image preview

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *imageUrl;
    + +
    +
    +

    Swift

    +
    var imageUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessor.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessor.html new file mode 100644 index 00000000..95bb659a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessor.html @@ -0,0 +1,977 @@ + + + + SCCameraKitLensProcessor Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensProcessor

+
+
+

Objective-C

+
@protocol SCCameraKitLensProcessor <NSObject>
+ +
+
+

Swift

+
protocol LensProcessor : NSObjectProtocol
+ +
+
+

The lens processor handles transforming camera frames and adding effects to them.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + hintDelegate + +
    +
    +
    +
    +
    +
    +

    Lens hint delegate to show/hide hints for applied lenses

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitLensHintDelegate> _Nullable hintDelegate;
    + +
    +
    +

    Swift

    +
    weak var hintDelegate: SCCameraKitLensHintDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + audioMuted + +
    +
    +
    +
    +
    +
    +

    Specifies whether lenses will have their audio muted. NO by default. +@note: Does NOT mute the device microphone, only prevents lenses from producing audio output.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL audioMuted;
    + +
    +
    +

    Swift

    +
    var audioMuted: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Applies a specified lens.

    +
    +

    Note

    + Launch data for a specific lens gets persisted automatically so passing nil will reuse the launch data passed +to the lens from the previous time applied. + +
    +

    Note

    + To reset launch data passed to the lens from the previous time applied pass in EmptyLensLaunchData instance. + +
    +

    Warning

    + If the lens provided is NOT provided by the repository, and simply conforms to the protocol, a runtime +error will occur. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)applyLens:(nonnull id<SCCameraKitLens>)lens
    +       launchData:(nullable id<SCCameraKitLensLaunchData>)launchData
    +       completion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func apply(lens: SCCameraKitLens, launchData: SCCameraKitLensLaunchData?) async -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + lens + + +
    +

    the lens to apply. This should be a lens provided by the repository.

    +
    +
    + + launchData + + +
    +

    launch data to pass to lens.

    +
    +
    + + completion + + +
    +

    a completion handler called once the operation finishes.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -clearWithCompletion: + +
    +
    +
    +
    +
    +
    +

    Removes any applied lenses.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)clearWithCompletion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func clear() async -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    a completion handler called once the operation finishes.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures touch handling for a given view.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)configureTouchHandlingInView:(nonnull UIView *)view
    +           gestureRecognizerDelegate:(nullable id<UIGestureRecognizerDelegate>)
    +                                         gestureRecognizerDelegate;
    + +
    +
    +

    Swift

    +
    func configureTouchHandling(in view: UIView, gestureRecognizerDelegate: UIGestureRecognizerDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    the view to configure.

    +
    +
    + + gestureRecognizerDelegate + + +
    +

    an optional gesture recognizer delegate. +@note: this method modifies the UIView so it must be called on the main thread

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Clears all touch handling for a given view

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeTouchHandlingInView:(nonnull UIView *)view;
    + +
    +
    +

    Swift

    +
    func removeTouchHandling(in view: UIView)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + view + + +
    +

    the view to configure +@note: this method modifies the UIView so it must be called on the main thread

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Mutes or unmutes audio. +@note: Does NOT mute the device microphone, only prevents lenses from producing audio output. +@note: Muting/unmuting is async. The audioMuted property may not immediately reflect your change, but will once +completion is called.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setAudioMuted:(BOOL)audioMuted
    +           completion:(nullable void (^)(void))completion;
    + +
    +
    +

    Swift

    +
    func setAudioMuted(_ audioMuted: Bool) async
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + audioMuted + + +
    +

    whether audio should be muted or not.

    +
    +
    + + completion + + +
    +

    an optional completion block to be called when the mute/unmute has taken effect.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -processImage: + +
    +
    +
    +
    +
    +
    +

    Process image with lens effect using current camera session configuration

    +
    +

    Note

    + because this uses current session configuration this should mainly be used to process captured photos + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable UIImage *)processImage:(nonnull UIImage *)image;
    + +
    +
    +

    Swift

    +
    func processImage(_ image: UIImage) -> UIImage?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + image + + +
    +

    image to process with current lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addObserver: + +
    +
    +
    +
    +
    +
    +

    Adds observer to receive notifications of changes to lens processor state. +Returns if observer got successfully added

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)addObserver:(nonnull id<SCCameraKitLensProcessorObserver>)observer;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensProcessorObserver) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to receive callbacks.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeObserver: + +
    +
    +
    +
    +
    +
    +

    Removes observer from receiving notifications of changes to lens availability.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:(nonnull id<SCCameraKitLensProcessorObserver>)observer;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensProcessorObserver)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to stop receiving callbacks.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessorObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessorObserver.html new file mode 100644 index 00000000..69030c01 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensProcessorObserver.html @@ -0,0 +1,604 @@ + + + + SCCameraKitLensProcessorObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensProcessorObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensProcessorObserver <NSObject>
+ +
+
+

Swift

+
protocol ProcessorObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to lens processor state

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that the lens processor did apply lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processor:(nonnull id<SCCameraKitLensProcessor>)processor
    +     didApplyLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func processor(_ processor: SCCameraKitLensProcessor, didApplyLens lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    + + lens + + +
    +

    lens applied instance

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -processorDidIdle: + +
    +
    +
    +
    +
    +
    +

    Notifies that the lens processor did clear any active lens and is now in an “idle” state

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processorDidIdle:(nonnull id<SCCameraKitLensProcessor>)processor;
    + +
    +
    +

    Swift

    +
    func processorDidIdle(_ processor: SCCameraKitLensProcessor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the listener that the first frame with the lens applied is ready

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processor:(nonnull id<SCCameraKitLensProcessor>)processor
    +    firstFrameDidBecomeReadyForLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    optional func processor(_ processor: SCCameraKitLensProcessor, firstFrameDidBecomeReadyFor lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    + + lens + + +
    +

    current lens applied whose frame is ready for

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiRequest.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiRequest.html new file mode 100644 index 00000000..0484e19a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiRequest.html @@ -0,0 +1,585 @@ + + + + SCCameraKitLensRemoteApiRequest Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiRequest

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiRequest <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiRequest : NSObjectProtocol
+ +
+
+

Describes the remote api service request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + requestId + +
    +
    +
    +
    +
    +
    +

    Unique id of the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull requestId;
    + +
    +
    +

    Swift

    +
    var requestId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + apiSpecId + +
    +
    +
    +
    +
    +
    +

    Unique id of the remote API service specification.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull apiSpecId;
    + +
    +
    +

    Swift

    +
    var apiSpecId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + endpointId + +
    +
    +
    +
    +
    +
    +

    Unique id of the remote API service endpoint requested by this request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull endpointId;
    + +
    +
    +

    Swift

    +
    var endpointId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + parameters + +
    +
    +
    +
    +
    +
    +

    A map of named parameters associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull parameters;
    + +
    +
    +

    Swift

    +
    var parameters: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    +

    Additional request payload as bytes.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSData *_Nonnull body;
    + +
    +
    +

    Swift

    +
    var body: Data { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiResponse.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiResponse.html new file mode 100644 index 00000000..67d1fa81 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiResponse.html @@ -0,0 +1,553 @@ + + + + SCCameraKitLensRemoteApiResponse Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponse

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiResponse <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiResponseProtocol : NSObjectProtocol
+ +
+
+

Describes the remote api service response to a request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + request + +
    +
    +
    +
    +
    +
    +

    Remote api service request sent by a lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensRemoteApiRequest> _Nonnull request;
    + +
    +
    +

    Swift

    +
    var request: LensRemoteApiRequest { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + status + +
    +
    +
    +
    +
    +
    +

    Status of the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensRemoteApiResponseStatus status;
    + +
    +
    +

    Swift

    +
    var status: SCCameraKitLensRemoteApiResponseStatus { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metadata + +
    +
    +
    +
    +
    +
    +

    A map of named metadata associated with the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull metadata;
    + +
    +
    +

    Swift

    +
    var metadata: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    +

    Additional response payload as bytes.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSData *body;
    + +
    +
    +

    Swift

    +
    var body: Data? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiService.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiService.html new file mode 100644 index 00000000..82ad6ef9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiService.html @@ -0,0 +1,493 @@ + + + + SCCameraKitLensRemoteApiService Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiService

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiService <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiService : NSObjectProtocol
+ +
+
+

Describes a remote api service used to process requests sent by a lens.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Process the remote api request sent by a lens. Returns a call associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensRemoteApiServiceCall>)
    +     processRequest:(nonnull id<SCCameraKitLensRemoteApiRequest>)request
    +    responseHandler:
    +        (nonnull void (^)(SCCameraKitLensRemoteApiServiceCallStatus,
    +                          id<SCCameraKitLensRemoteApiResponse> _Nonnull))
    +            responseHandler;
    + +
    +
    +

    Swift

    +
    func processRequest(_ request: LensRemoteApiRequest, responseHandler: @escaping (LensRemoteApiServiceCallStatus, LensRemoteApiResponseProtocol) -> Void) -> LensRemoteApiServiceCall
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + request + + +
    +

    The remote api request sent by a lens.

    +
    +
    + + responseHandler + + +
    +

    Callback to send responses back to the lens who sent the remote api request.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceCall.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceCall.html new file mode 100644 index 00000000..626a67b4 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceCall.html @@ -0,0 +1,490 @@ + + + + SCCameraKitLensRemoteApiServiceCall Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceCall

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiServiceCall <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiServiceCall : NSObjectProtocol
+ +
+
+

Describes the call that is sent in response to a remote api request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + status + +
    +
    +
    +
    +
    +
    +

    The status of the call associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensRemoteApiServiceCallStatus status;
    + +
    +
    +

    Swift

    +
    var status: LensRemoteApiServiceCallStatus { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -cancelRequest + +
    +
    +
    +
    +
    +
    +

    Cancel the request call. This is usually sent if the lens no longer needs a response to the remote api request it +sent or if the lens is no longer active all active requests/calls should be cancelled.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancelRequest;
    + +
    +
    +

    Swift

    +
    func cancelRequest()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceProvider.html new file mode 100644 index 00000000..3c714fc6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRemoteApiServiceProvider.html @@ -0,0 +1,510 @@ + + + + SCCameraKitLensRemoteApiServiceProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiServiceProvider <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiServiceProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide remote api services for specific lenses and api spec identifiers.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + supportedApiSpecIds + +
    +
    +
    +
    +
    +
    +

    The set of api spec identifiers that this provider supports.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSSet<NSString *> *_Nonnull supportedApiSpecIds;
    + +
    +
    +

    Swift

    +
    var supportedApiSpecIds: Set<String> { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Returns the remote api service used for processing requests sent by the lens. +Lifecycle of the remote api service will be tied to the lifecycle of the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensRemoteApiService>)remoteApiServiceForLens:
    +    (nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func remoteApiService(for lens: SCCameraKitLens) -> LensRemoteApiService
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    The active lens whose requests the remote api service will be processing.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepository.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepository.html new file mode 100644 index 00000000..f0de00b9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepository.html @@ -0,0 +1,863 @@ + + + + SCCameraKitLensRepository Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepository

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepository <NSObject>
+ +
+
+

Swift

+
protocol LensRepository : NSObjectProtocol
+ +
+
+

Lens Repository for listing lenses, getting lenses, etc.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Add an observer to receive updates to a lens group

    +
    +

    Note

    + you should expect to receive at least one call to the observer after you add it (either success with list of +lenses or failure with error) + +
    +

    Note

    + after you add an observer for a lens group you will receive updates for all lenses in that group (ie. you do +not have to add an observer for specific lenses in the group) + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addObserver:(nonnull id<SCCameraKitLensRepositoryGroupObserver>)observer
    +         forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensRepositoryGroupObserver, groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer to receive updates

    +
    +
    + + groupID + + +
    +

    id of lens group to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove an observer from receiving updates for a lens group

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +            (nonnull id<SCCameraKitLensRepositoryGroupObserver>)observer
    +            forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensRepositoryGroupObserver, groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer to remove from receiving updates

    +
    +
    + + groupID + + +
    +

    id of lens group to stop observing

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add an observer to receive updates for a specific lens in a group

    +
    +

    Note

    + you should expect to receive at least one call to the observer after you add it (either success with lens obj +or failure with error) + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addObserver:
    +            (nonnull id<SCCameraKitLensRepositorySpecificObserver>)observer
    +    forSpecificLensID:(nonnull NSString *)lensID
    +            inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensRepositorySpecificObserver, specificLensID lensID: String, inGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + observer + + +
    +

    observer to receive updates

    +
    +
    + + lensID + + +
    +

    id of lens to receive updates for

    +
    +
    + + groupID + + +
    +

    id of group which lens is in that you want to receive updates for

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove an observer from receiving updates for a specific lens in a group

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +            (nonnull id<SCCameraKitLensRepositorySpecificObserver>)observer
    +     forSpecificLensID:(nonnull NSString *)lensID
    +             inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensRepositorySpecificObserver, specificLensID lensID: String, inGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + observer + + +
    +

    observer to remove from receiving updates

    +
    +
    + + lensID + + +
    +

    id of lens to stop observing

    +
    +
    + + groupID + + +
    +

    if of group which lens is in that you want to stop observing

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -lensesForGroupID: + +
    +
    +
    +
    +
    +
    +

    Any available lenses for the group ID specified.

    +
    +

    Note

    + this method will not return any lenses until the user has expressed interest in a group by calling +beginObservingGroupID: + +
    +

    Note

    + for updates on when the return value of this method changes, add a observer in addObserver: + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull NSArray<id<SCCameraKitLens>> *)lensesForGroupID:
    +    (nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func lenses(groupID: String) -> [SCCameraKitLens]
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + groupID + + +
    +

    the group ID containing the desired lenses.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Specific lens in group ID specified

    +
    +

    Note

    + this method will not return any lenses until the user has expressed interest in a group by calling +beginObservingGroupID: or beginObservingLens:inGroup: + +
    +

    Note

    + for updates on when the return value of this method changes, add a observer in addObserver: + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitLens>)lensWithID:(nonnull NSString *)lensID
    +                                 inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func lens(id lensID: String, groupID: String) -> SCCameraKitLens?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensID + + +
    +

    id of lens

    +
    +
    + + groupID + + +
    +

    id of group lens is in

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositoryGroupObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositoryGroupObserver.html new file mode 100644 index 00000000..4f6fe7ae --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositoryGroupObserver.html @@ -0,0 +1,584 @@ + + + + SCCameraKitLensRepositoryGroupObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepositoryGroupObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepositoryGroupObserver <NSObject>
+ +
+
+

Swift

+
protocol LensRepositoryGroupObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to lens groups the repository has available.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed group’s lenses have changed.

    +
    +

    Note

    + observers may receive notifications for lens groups they do not care about. Check groupID. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didUpdateLenses:(nonnull NSArray<id<SCCameraKitLens>> *)lenses
    +         forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didUpdateLenses lenses: [SCCameraKitLens], forGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lenses + + +
    +

    the updated lenses in the group.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed group’s lenses failed to be fetched.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didFailToUpdateLensesForGroupID:(nonnull NSString *)groupID
    +                              error:(nullable NSError *)error;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didFailToUpdateLensesForGroupID groupID: String, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    + + error + + +
    +

    a detailed error message of what went wrong, if available.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositorySpecificObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositorySpecificObserver.html new file mode 100644 index 00000000..76a42929 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensRepositorySpecificObserver.html @@ -0,0 +1,592 @@ + + + + SCCameraKitLensRepositorySpecificObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepositorySpecificObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepositorySpecificObserver <NSObject>
+ +
+
+

Swift

+
protocol LensRepositorySpecificObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to specific lenses in groups the repository has available.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed specific lens in a group has changed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +     didUpdateLens:(nonnull id<SCCameraKitLens>)lens
    +        forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didUpdate lens: SCCameraKitLens, forGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lens + + +
    +

    the newly updated lens object.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed specific lens in a group has failed to be fetched.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didFailToUpdateLensID:(nonnull NSString *)lensID
    +               forGroupID:(nonnull NSString *)groupID
    +                    error:(nullable NSError *)error;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didFailToUpdateLensID lensID: String, forGroupID groupID: String, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lensID + + +
    +

    the lens ID that failed to update.

    +
    +
    + + groupID + + +
    +

    the group ID that failed to update.

    +
    +
    + + error + + +
    +

    a detailed error message of what went wrong, if available.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensSnapcodes.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensSnapcodes.html new file mode 100644 index 00000000..41ac959b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensSnapcodes.html @@ -0,0 +1,489 @@ + + + + SCCameraKitLensSnapcodes Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensSnapcodes

+
+
+

Objective-C

+
@protocol SCCameraKitLensSnapcodes <NSObject>
+ +
+
+

Swift

+
protocol LensSnapcodes : NSObjectProtocol
+ +
+
+

Describes an interface that contains lens snapcodes data

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    Image URL for Snapcode

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *imageUrl;
    + +
    +
    +

    Swift

    +
    var imageUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + deeplink + +
    +
    +
    +
    +
    +
    +

    Deeplink URL for Snapcode

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *deeplink;
    + +
    +
    +

    Swift

    +
    var deeplink: URL? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensesComponent.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensesComponent.html new file mode 100644 index 00000000..b48b6735 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLensesComponent.html @@ -0,0 +1,553 @@ + + + + SCCameraKitLensesComponent Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensesComponent

+
+
+

Objective-C

+
@protocol SCCameraKitLensesComponent <NSObject>
+ +
+
+

Swift

+
protocol LensesComponent : NSObjectProtocol
+ +
+
+

The lenses component wraps several lens-related classes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + repository + +
    +
    +
    +
    +
    +
    +

    The repository for lenses. Lists available lenses, etc. in the lenses folder

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensRepository> _Nonnull repository;
    + +
    +
    +

    Swift

    +
    var repository: LensRepository { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + processor + +
    +
    +
    +
    +
    +
    +

    Handles the actual effect application. Will be null if CameraKit is not running with a valid input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitLensProcessor> processor;
    + +
    +
    +

    Swift

    +
    var processor: SCCameraKitLensProcessor? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + prefetcher + +
    +
    +
    +
    +
    +
    +

    Prefetcher to prefetch lens content to reduce time when applying lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensPrefetcher> _Nonnull prefetcher;
    + +
    +
    +

    Swift

    +
    var prefetcher: SCCameraKitLensPrefetcher { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preferences + +
    +
    +
    +
    +
    +
    +

    Property to deal with preferences (ie. clear stored preferences)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitPreferences> _Nonnull preferences;
    + +
    +
    +

    Swift

    +
    var preferences: SCCameraKitPreferences { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLocationDataProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLocationDataProvider.html new file mode 100644 index 00000000..0c63bdd2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLocationDataProvider.html @@ -0,0 +1,547 @@ + + + + SCCameraKitLocationDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLocationDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLocationDataProvider <NSObject>
+ +
+
+

Swift

+
protocol LocationDataProvider : NSObjectProtocol
+ +
+
+

Protocol to provide device motion data and handle starting/updating/stopping

+ +
+
+ +
+
+
+
    +
  • +
    + + + + location + +
    +
    +
    +
    +
    +
    +

    Current location data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) CLLocation *location;
    + +
    +
    +

    Swift

    +
    var location: CLLocation? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Start updating location data with params

    +
    +

    Warning

    + If the user has not been prompted for location permission, it is the class’s responsibility +to prompt them. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startUpdatingWithParameters:
    +    (nonnull id<SCCameraKitLocationParameters>)parameters;
    + +
    +
    +

    Swift

    +
    func startUpdating(with parameters: LocationParameters)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + parameters + + +
    +

    location params

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopUpdating + +
    +
    +
    +
    +
    +
    +

    Stop updating location

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopUpdating;
    + +
    +
    +

    Swift

    +
    func stopUpdating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLocationParameters.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLocationParameters.html new file mode 100644 index 00000000..9c9d1eea --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitLocationParameters.html @@ -0,0 +1,521 @@ + + + + SCCameraKitLocationParameters Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLocationParameters

+
+
+

Objective-C

+
@protocol SCCameraKitLocationParameters <NSObject>
+ +
+
+

Swift

+
protocol LocationParameters : NSObjectProtocol
+ +
+
+

Params for device motion interface

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Minimum interval between consecutive location updates

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) int32_t updateIntervalMilliseconds;
    + +
    +
    +

    Swift

    +
    var updateIntervalMilliseconds: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + distanceFilterMeters + +
    +
    +
    +
    +
    +
    +

    Minimum distance between consecutive location updates

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CLLocationDistance distanceFilterMeters;
    + +
    +
    +

    Swift

    +
    var distanceFilterMeters: CLLocationDistance { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + desiredAccuracy + +
    +
    +
    +
    +
    +
    +

    Desired accuracy

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CLLocationAccuracy desiredAccuracy;
    + +
    +
    +

    Swift

    +
    var desiredAccuracy: CLLocationAccuracy { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitOutput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitOutput.html new file mode 100644 index 00000000..38cbff6d --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitOutput.html @@ -0,0 +1,648 @@ + + + + SCCameraKitOutput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitOutput

+
+
+

Objective-C

+
@protocol SCCameraKitOutput <NSObject>
+ +
+
+

Swift

+
protocol Output : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of new frame data from CameraKit.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new frame is available.

    +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid textures that may crash when drawing the frame or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputTexture:(nonnull id<SCCameraKitTexture>)texture;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputTexture texture: SCCameraKitTexture)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the frame.

    +
    +
    + + texture + + +
    +

    a texture describing processed input. SCCameraKitPreviewView is able to render this, and future +classes will be provided for additional functionality (eg, video recording).

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new video frame is available.

    +
    +

    Note

    + This method WILL NOT BE CALLED unless you have indicated you need sample buffer output (for situations like +recording). This incurs performance overhead, so do not use it unless you require it. + +
    +

    See

    + SCCameraKitOutputRequiringPixelBuffer + +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid/released video buffers or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputVideoSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputVideoSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the frame.

    +
    +
    + + sampleBuffer + + +
    +

    a CMSampleBuffer describing the video output.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new audio buffer is available

    +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid/released audio buffers or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputAudioSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputAudioSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the audio buffer

    +
    +
    + + sampleBuffer + + +
    +

    a CMSampleBuffer describing the audio output

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitPortraitAdjustmentController.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitPortraitAdjustmentController.html new file mode 100644 index 00000000..aa6135f0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitPortraitAdjustmentController.html @@ -0,0 +1,459 @@ + + + + SCCameraKitPortraitAdjustmentController Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPortraitAdjustmentController

+
+
+

Objective-C

+
@protocol
+    SCCameraKitPortraitAdjustmentController <SCCameraKitAdjustmentController>
+ +
+
+

Swift

+
protocol PortraitAdjustmentController : AdjustmentController
+ +
+
+

A controller to control the portrait adjustment.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + blur + +
    +
    +
    +
    +
    +
    +

    How blurred the background is. Ranges from 0.0 to 1.0. A value of 0.0 is “not blurred at all” while 1.0 is +“extremely blurred.”

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGFloat blur;
    + +
    +
    +

    Swift

    +
    var blur: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitPreferences.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitPreferences.html new file mode 100644 index 00000000..c6311475 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitPreferences.html @@ -0,0 +1,458 @@ + + + + SCCameraKitPreferences Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreferences

+
+
+

Objective-C

+
@protocol SCCameraKitPreferences <NSObject>
+ +
+
+

Swift

+
protocol SCCameraKitPreferences : NSObjectProtocol
+ +
+
+

Protocol to interface with preferences stored by CameraKit +This interface is intentionally opaque and should only be used to clear out stored preferences

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -clear + +
    +
    +
    +
    +
    +
    +

    Clear all stored preferences

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)clear;
    + +
    +
    +

    Swift

    +
    func clear()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitProtocol.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitProtocol.html new file mode 100644 index 00000000..9cfb6666 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitProtocol.html @@ -0,0 +1,1204 @@ + + + + SCCameraKitProtocol Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitProtocol

+
+
+

Objective-C

+
@protocol SCCameraKitProtocol <NSObject>
+
+/// Contains lenses related objects.
+@property (strong, nonatomic, readonly) id<SCCameraKitLensesComponent> lenses;
+
+/// Contains adjustment related objects.
+@property (strong, nonatomic, readonly) id<SCCameraKitAdjustmentsComponent> adjustments;
+
+/// Begin processing input frames with front camera position and portrait video orientation
+/// @param input the input to configure.
+/// @param arInput the ARKit input to configure.
+- (void)startWithInput:(id<SCCameraKitInput>)input
+               arInput:(id<SCCameraKitARInput>)arInput NS_SWIFT_NAME(start(input:arInput:));
+
+/// Deprecated. Use
+/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:
+- (void)startWithInput:(id<SCCameraKitInput>)input
+               arInput:(id<SCCameraKitARInput>)arInput
+        cameraPosition:(AVCaptureDevicePosition)cameraPosition
+      videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+          dataProvider:(SCCameraKitDataProviderComponent *)dataProvider
+          hintDelegate:(id<SCCameraKitLensHintDelegate>)hintDelegate __attribute__((deprecated));
+
+/// Deprecated. Use
+/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:
+- (void)startWithInput:(id<SCCameraKitInput>)input
+                                  arInput:(id<SCCameraKitARInput>)arInput
+                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
+                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
+                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
+    agreementsPresentationContextProvider:
+        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
+    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:))
+        __attribute__((deprecated));
+;
+
+/// Begin processing input frames.
+/// @param input the input to configure.
+/// @param arInput the ARKit input to configure.
+/// @param cameraPosition the camera position in use
+/// @param videoOrientation the orientation for the outputted video buffers
+/// @param dataProvider data provider component to pass in custom data providers (optional -- will create and handle
+/// data providers by default if nil)
+/// @param hintDelegate lens hint delegate to show/hide hints for applied lenses
+/// @param textInputContextProvider context provider for providing keyboard access to lenses
+/// @param agreementsPresentationContextProvider context provider for presenting agreements screens
+- (void)startWithInput:(id<SCCameraKitInput>)input
+                                  arInput:(id<SCCameraKitARInput>)arInput
+                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
+                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
+                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
+                 textInputContextProvider:(nullable id<SCCameraKitTextInputContextProvider>)textInputContextProvider
+    agreementsPresentationContextProvider:
+        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
+    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:));
+
+/// End processing input frames.
+- (void)stop;
+
+/// End processing input frames.
+/// @param completion Block to be called after processing is finished and session is stopped
+- (void)stopWithCompletion:(nullable void (^)(void))completion NS_SWIFT_NAME(stop(completion:));
+
+/// Add an output. Frames will still be processed if no outputs exist.
+- (void)addOutput:(id<SCCameraKitOutput>)output NS_SWIFT_NAME(add(output:));
+
+/// Remove an output.
+- (void)removeOutput:(id<SCCameraKitOutput>)listener NS_SWIFT_NAME(remove(output:));
+
+/// The camera position in use. Setting will automatically update the input.
+@property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
+
+/// The orientation for the outputted video buffers
+@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
+
+/// The active input. May be either standard camera input or the AR input, depending on lens requirements.
+@property (nonatomic, readonly) id<SCCameraKitInput> activeInput;
+
+/// Store containing information above the acceptance state of terms of service
+@property (nonatomic, readonly) id<SCCameraKitAgreementsStore> agreementsStore;
+
+/// Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.
+/// @note CameraKit will present this when the user applies a lens if they have new agreements to accept. You can call
+/// this explicitly if you wish to present the terms before then (eg during an onboarding experience, alongside your own
+/// app's Terms of Service)
+- (void)presentAgreementsImmediately;
+
+@end
+ +
+
+

Swift

+
protocol CameraKitProtocol : NSObjectProtocol
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputContextProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputContextProvider.html new file mode 100644 index 00000000..21a98f87 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputContextProvider.html @@ -0,0 +1,491 @@ + + + + SCCameraKitTextInputContextProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitTextInputContextProvider

+
+
+

Objective-C

+
@protocol SCCameraKitTextInputContextProvider <NSObject>
+ +
+
+

Swift

+
protocol TextInputContextProvider : NSObjectProtocol
+ +
+
+

Protocol to provide keyboard input data to lenses.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + parentView + +
    +
    +
    +
    +
    +
    +

    A parent view in which to embed a text view. Unless reconfigured by providing a keyboardAccessoryProvider, this text +view will not be visible to the user.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak, readonly) UIView *_Nullable parentView;
    + +
    +
    +

    Swift

    +
    weak var parentView: UIView? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Object which describes a user-visible input view for text input. Typically, this is a styled text view that appears +above the keyboard interface.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitTextInputKeyboardAccessoryProvider> keyboardAccessoryProvider;
    + +
    +
    +

    Swift

    +
    var keyboardAccessoryProvider: TextInputKeyboardAccessoryProvider? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html new file mode 100644 index 00000000..cfe6b7f7 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html @@ -0,0 +1,553 @@ + + + + SCCameraKitTextInputKeyboardAccessoryProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitTextInputKeyboardAccessoryProvider

+
+
+

Objective-C

+
@protocol SCCameraKitTextInputKeyboardAccessoryProvider <NSObject>
+ +
+
+

Swift

+
protocol TextInputKeyboardAccessoryProvider : NSObjectProtocol
+ +
+
+

Protocol for representing a text input view on-screen for lenses that request it.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + accessoryView + +
    +
    +
    +
    +
    +
    +

    The view to show on top of the keyboard.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIView *_Nonnull accessoryView;
    + +
    +
    +

    Swift

    +
    var accessoryView: UIView { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textView + +
    +
    +
    +
    +
    +
    +

    The text view associated with the input being provided.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UITextView *_Nonnull textView;
    + +
    +
    +

    Swift

    +
    var textView: UITextView { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + placeholderText + +
    +
    +
    +
    +
    +
    +

    Placeholder text to show in the text view before the user has input any text. May be empty.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, nullable) NSString *placeholderText;
    + +
    +
    +

    Swift

    +
    var placeholderText: String? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maximumHeight + +
    +
    +
    +
    +
    +
    +

    The maximum height the accessoryView can grow to. This will be considered when setting the safe area for the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGFloat maximumHeight;
    + +
    +
    +

    Swift

    +
    var maximumHeight: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitToneMapAdjustmentController.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitToneMapAdjustmentController.html new file mode 100644 index 00000000..ee16d4b2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitToneMapAdjustmentController.html @@ -0,0 +1,460 @@ + + + + SCCameraKitToneMapAdjustmentController Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitToneMapAdjustmentController

+
+
+

Objective-C

+
@protocol
+    SCCameraKitToneMapAdjustmentController <SCCameraKitAdjustmentController>
+ +
+
+

Swift

+
protocol ToneMapAdjustmentController : AdjustmentController
+ +
+
+

A controller to control the tone map adjustment.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + amount + +
    +
    +
    +
    +
    +
    +

    The “amount” of adjustment applied to the tone mapping algorithm. Ranges from 0.0 to 1.0. A value of 0.5 is the +“best guess” of the tone mapping algorithm. Users may wish to adjust this amount up or down to reflect their true +skin tone.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGFloat amount;
    + +
    +
    +

    Swift

    +
    var amount: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProvider.html new file mode 100644 index 00000000..9ea61a4c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProvider.html @@ -0,0 +1,489 @@ + + + + SCCameraKitUserDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitUserDataProvider <NSObject>
+ +
+
+

Swift

+
protocol UserDataProvider : NSObjectProtocol
+ +
+
+

Describes an interface that provides user data to lenses

+ +
+
+ +
+
+
+
    +
  • +
    + + + + userData + +
    +
    +
    +
    +
    +
    +

    Current user data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) SCCameraKitUserData *userData;
    + +
    +
    +

    Swift

    +
    var userData: UserData? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate to receive updates on user data changes

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak, nullable) id<SCCameraKitUserDataProviderDelegate> delegate;
    + +
    +
    +

    Swift

    +
    weak var delegate: UserDataProviderDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProviderDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProviderDelegate.html new file mode 100644 index 00000000..cb1d73dd --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Protocols/SCCameraKitUserDataProviderDelegate.html @@ -0,0 +1,490 @@ + + + + SCCameraKitUserDataProviderDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserDataProviderDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitUserDataProviderDelegate <NSObject>
+ +
+
+

Swift

+
protocol UserDataProviderDelegate : NSObjectProtocol
+ +
+
+

User data provider delegate to provide receivers with new user data on updates

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Update delegate receivers with new user data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)userDataProvider:
    +            (nonnull id<SCCameraKitUserDataProvider>)userDataProvider
    +       didUpdateUserData:(nonnull SCCameraKitUserData *)userData;
    + +
    +
    +

    Swift

    +
    func userDataProvider(_ userDataProvider: UserDataProvider, didUpdate userData: UserData)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + userDataProvider + + +
    +

    current user data provider instance

    +
    +
    + + userData + + +
    +

    new user data

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Structs.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Structs.html new file mode 100644 index 00000000..7750c712 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Structs.html @@ -0,0 +1,446 @@ + + + + Structures Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Structures

+

The following structures are available globally.

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Structs/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Structs/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 00000000..61841ac6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Structs/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,457 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Structure Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetMetadata

+
+
+

Objective-C

+
struct {}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerAssetMetadata
+ +
+
+

Metadata for a media asset

+ +
+
+ +
+
+
+
    +
  • +
    + + + + faceRect + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    CGRect faceRect
    + +
    +
    +

    Swift

    +
    var faceRect: CGRect
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions.html new file mode 100644 index 00000000..207cf1a8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions.html @@ -0,0 +1,442 @@ + + + + Type Definitions Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ + +
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 00000000..8468a513 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Type Definition Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ + +
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 00000000..9c791f18 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,457 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Structure Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetMetadata

+
+
+

Objective-C

+
struct {}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerAssetMetadata
+ +
+
+

Metadata for a media asset

+ +
+
+ +
+
+
+
    +
  • +
    + + + + faceRect + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    CGRect faceRect
    + +
    +
    +

    Swift

    +
    var faceRect: CGRect
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/badge.svg b/docs/api/ios/1.30.0/SCSDKCameraKit/badge.svg new file mode 100644 index 00000000..be498fa5 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 86% + + + 86% + + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/css/highlight.css b/docs/api/ios/1.30.0/SCSDKCameraKit/css/highlight.css new file mode 100644 index 00000000..c170357c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/css/jazzy.css b/docs/api/ios/1.30.0/SCSDKCameraKit/css/jazzy.css new file mode 100644 index 00000000..c7bb9fe2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Info.plist b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Info.plist new file mode 100644 index 00000000..61863ec4 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy. + CFBundleName + + DocSetPlatformFamily + + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes.html new file mode 100644 index 00000000..0f602b81 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes.html @@ -0,0 +1,1024 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitToneMapAdjustment : NSObject <SCCameraKitAdjustment>
    +
    extension ToneMapAdjustment: Adjustment
    + +
    +
    +

    Swift

    +
    class ToneMapAdjustment : NSObject, __Adjustment
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An adjustment which allows users to blur the background on their input.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPortraitAdjustment : NSObject <SCCameraKitAdjustment>
    +
    extension PortraitAdjustment: Adjustment
    + +
    +
    +

    Swift

    +
    class PortraitAdjustment : NSObject, __Adjustment
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitSession + +
    +
    +
    +
    +
    +
    +

    CameraKit handles interaction with the camera and contains several components like lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitSession : NSObject <SCCameraKitProtocol>
    + +
    +
    +

    Swift

    +
    class Session : NSObject, CameraKitProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    ARSessionInput is a CameraKit provided wrapper for ARSession.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitARSessionInput : NSObject <SCCameraKitARInput>
    + +
    +
    +

    Swift

    +
    class ARSessionInput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color +formats in order to process frames. You are still responsible for doing the general configuration of the capture +session, such as adding devices.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitAVSessionInput : NSObject <SCCameraKitInput>
    + +
    +
    +

    Swift

    +
    class AVSessionInput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of +the writer.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitAVWriterOutput : NSObject
    + +
    +
    +

    Swift

    +
    class AVWriterOutput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Component for user’s custom data providers

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitDataProviderComponent : NSObject
    + +
    +
    +

    Swift

    +
    class DataProviderComponent : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Enables the configuration of a custom viewport for SCCameraKitPreviewView.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitExplicitViewportProvider : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to build lens launch data to pass to processor when applying

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensLaunchDataBuilder : NSObject
    + +
    +
    +

    Swift

    +
    class LensLaunchDataBuilder : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Final, opaque data class to reset persisted launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitEmptyLensLaunchData : NSObject <SCCameraKitLensLaunchData>
    + +
    +
    +

    Swift

    +
    class EmptyLensLaunchData : NSObject, LensLaunchData
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensMediaPickerProviderPhotoLibrary
    +    : NSObject <SCCameraKitLensMediaPickerProvider>
    + +
    +
    +

    Swift

    +
    class LensMediaPickerProviderPhotoLibrary : NSObject, LensMediaPickerProvider
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete data class for the remote api service response to a request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensRemoteApiResponse
    +    : NSObject <SCCameraKitLensRemoteApiResponse>
    + +
    +
    +

    Swift

    +
    class LensRemoteApiResponse : NSObject, LensRemoteApiResponseProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to configure camera kit cache

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitCacheConfig : NSObject
    + +
    +
    +

    Swift

    +
    class CacheConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Concrete class to configure all available, user-configurable properties within the lenses component

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitLensesConfig : NSObject
    + +
    +
    +

    Swift

    +
    class LensesConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An output that will capture photos. You should add this as an output for your CameraKit instance.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPhotoCaptureOutput : NSObject
    + +
    +
    +

    Swift

    +
    class PhotoCaptureOutput : NSObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit +instance.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitPreviewView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Data class that is used to pass in a configuration for the CameraKit Session. +Use this data class if you would like to be able to dynamically update config values like application id and api +token or overwrite the ones that are passed into Info.plist.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitSessionConfig : NSObject
    + +
    +
    +

    Swift

    +
    class SessionConfig : NSObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitUserData + +
    +
    +
    +
    +
    +
    +

    Concrete user data class to pass in user data that can be used by some lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    
    +@interface SCCameraKitUserData : NSObject
    + +
    +
    +

    Swift

    +
    class UserData : NSObject
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitARSessionInput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitARSessionInput.html new file mode 100644 index 00000000..362a8b37 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitARSessionInput.html @@ -0,0 +1,595 @@ + + + + SCCameraKitARSessionInput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARSessionInput

+
+
+

Objective-C

+

+@interface SCCameraKitARSessionInput : NSObject <SCCameraKitARInput>
+ +
+
+

Swift

+
class ARSessionInput : NSObject
+ +
+
+

ARSessionInput is a CameraKit provided wrapper for ARSession.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Create an AR Session input. +Inits with a managed ARSession

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +

    Swift

    +
    init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithSession: + +
    +
    +
    +
    +
    +
    +

    Create an AR Session input with a preexisting session.

    +
    +

    Note

    + the input will overwrite the preexisting settings for delegate and delegateQueue + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull ARSession *)session;
    + +
    +
    +

    Swift

    +
    init(session: ARSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + session + + +
    +

    the ARSession to use.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AR Session input with a preexisting session.

    +
    +

    Note

    + the input will overwrite the preexisting settings for delegate and delegateQueue + +
    +

    Warning

    + if your app supports lenses with true sizing, you MUST set this to be an instance of +ARFaceTrackingConfiguration (additionally, we recommend setting the number of tracked faces to 0) + +
    +

    Warning

    + using an instance of ARFaceTrackingConfiguration in this method will subject your app to additional app +review, concerning your usage of the TrueDepth camera. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull ARSession *)session
    +               frontCameraConfiguration:
    +                   (nullable ARConfiguration *)frontCameraConfiguration;
    + +
    +
    +

    Swift

    +
    init(session: ARSession, frontCameraConfiguration: ARConfiguration?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + session + + +
    +

    the ARSession to use.

    +
    +
    + + frontCameraConfiguration + + +
    +

    The ARConfiguration to use when using the front

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVSessionInput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVSessionInput.html new file mode 100644 index 00000000..ec8d9c96 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVSessionInput.html @@ -0,0 +1,658 @@ + + + + SCCameraKitAVSessionInput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAVSessionInput

+
+
+

Objective-C

+

+@interface SCCameraKitAVSessionInput : NSObject <SCCameraKitInput>
+ +
+
+

Swift

+
class AVSessionInput : NSObject
+ +
+
+

AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color +formats in order to process frames. You are still responsible for doing the general configuration of the capture +session, such as adding devices.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + videoMirrored + +
    +
    +
    +
    +
    +
    +

    Describes whether the current video frames are mirrored

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL videoMirrored;
    + +
    +
    +

    Swift

    +
    var videoMirrored: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes whether it should automatically configure outputted video frames to be mirrored. +If set to YES - it will update the videoMirrored property based on input device position (front is mirrored, back +is not)

    +
    +

    Note

    + By default this property is set to YES, you can change it while the session is running and it will update the +future video frames + +
    +

    Note

    + If you change this property to NO, make sure you also change videoMirrored property as well + +
    +

    See

    + videoMirrored + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresVideoMirrored;
    + +
    +
    +

    Swift

    +
    var automaticallyConfiguresVideoMirrored: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + audioEnabled + +
    +
    +
    +
    +
    +
    +

    Determines whether or not this input will capture audio and pass audio buffer data to CameraKit. +If YES then it will automatically configure a capture session, audio input device, etc. and start capturing data. +If NO then no audio data will be captured.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL audioEnabled;
    + +
    +
    +

    Swift

    +
    var audioEnabled: Bool { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithSession: + +
    +
    +
    +
    +
    +
    +

    Create an AV Session input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull AVCaptureSession *)session;
    + +
    +
    +

    Swift

    +
    init(session: AVCaptureSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + session + + +
    +

    the AVCaptureSession to use.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AV Session input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithSession:(nonnull AVCaptureSession *)session
    +                           audioEnabled:(BOOL)audioEnabled;
    + +
    +
    +

    Swift

    +
    init(session: AVCaptureSession, audioEnabled: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + session + + +
    +

    The AVCaptureSession to use.

    +
    +
    + + audioEnabled + + +
    +

    Determines whether or not this input will capture audio and pass audio buffer data to CameraKit. +Default is YES.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVWriterOutput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVWriterOutput.html new file mode 100644 index 00000000..ae5e6884 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitAVWriterOutput.html @@ -0,0 +1,682 @@ + + + + SCCameraKitAVWriterOutput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAVWriterOutput

+
+
+

Objective-C

+

+@interface SCCameraKitAVWriterOutput : NSObject
+ +
+
+

Swift

+
class AVWriterOutput : NSObject
+ +
+
+

AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of +the writer.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + startDate + +
    +
    +
    +
    +
    +
    +

    Date and time of first video buffer recorded (ie. start recording time)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) NSDate *startDate;
    + +
    +
    +

    Swift

    +
    var startDate: Date? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Create an AVWriterOutput

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithAVAssetWriter:(nonnull AVAssetWriter *)assetWriter
    +         pixelBufferInput:
    +             (nonnull AVAssetWriterInputPixelBufferAdaptor *)pixelBufferInput
    +               audioInput:(nullable AVAssetWriterInput *)audioInput;
    + +
    +
    +

    Swift

    +
    init(avAssetWriter assetWriter: AVAssetWriter, pixelBufferInput: AVAssetWriterInputPixelBufferAdaptor, audioInput: AVAssetWriterInput?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + assetWriter + + +
    +

    the configured AVAssetWRiter

    +
    +
    + + pixelBufferInput + + +
    +

    the configured AVAssetWriterInputPixelBufferAdaptor to write video to.

    +
    +
    + + audioInput + + +
    +

    the configured AVAssetWriterInput to write audio to. May be nullable if the video does not contain +audio. +@note: audioInput is currently unused. This will change in a future build.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init to pass in required writer and inputs

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (nonnull instancetype)new;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -startRecording + +
    +
    +
    +
    +
    +
    +

    Call this after you start recording on the AVAssetWriter. This will indicate that the output should start recording +data it receives from CameraKit.

    +
    +

    Note

    + DO NOT call startSession on the asset writer, this output class will do so when it receives the first video +frame. This is to ensure that there are no empty frames from the time the session is started and the first video +buffer is written + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startRecording;
    + +
    +
    +

    Swift

    +
    func startRecording()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopRecording + +
    +
    +
    +
    +
    +
    +

    Call this before you stop recording on the AVAssetWriter. This will cause the output to stop recording data from +CameraKit.

    +
    +

    Note

    + DO NOT call endSession on the asset writer, this output class will do so with the timestamp of the last +video frame This is to ensure that there are no empty frames from the time the last video buffer is written to the +end of the session + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopRecording;
    + +
    +
    +

    Swift

    +
    func stopRecording()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitCacheConfig.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitCacheConfig.html new file mode 100644 index 00000000..88a984b1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitCacheConfig.html @@ -0,0 +1,515 @@ + + + + SCCameraKitCacheConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitCacheConfig

+
+
+

Objective-C

+

+@interface SCCameraKitCacheConfig : NSObject
+ +
+
+

Swift

+
class CacheConfig : NSObject
+ +
+
+

Concrete class to configure camera kit cache

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lensContentMaxSize + +
    +
    +
    +
    +
    +
    +

    Max size in bytes for lens content cache

    +
    +

    Note

    + Default max is 100MB and min is at least 50MB + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSUInteger lensContentMaxSize;
    + +
    +
    +

    Swift

    +
    var lensContentMaxSize: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with specifed max size for lens content cache

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithLensContentMaxSize:
    +    (NSUInteger)lensContentMaxSize;
    + +
    +
    +

    Swift

    +
    init(lensContentMaxSize: UInt)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lensContentMaxSize + + +
    +

    max size for lens content cache

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitDataProviderComponent.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitDataProviderComponent.html new file mode 100644 index 00000000..35585941 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitDataProviderComponent.html @@ -0,0 +1,1085 @@ + + + + SCCameraKitDataProviderComponent Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDataProviderComponent

+
+
+

Objective-C

+

+@interface SCCameraKitDataProviderComponent : NSObject
+ +
+
+

Swift

+
class DataProviderComponent : NSObject
+ +
+
+

Component for user’s custom data providers

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitExplicitViewportProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitExplicitViewportProvider.html new file mode 100644 index 00000000..7a3a2488 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitExplicitViewportProvider.html @@ -0,0 +1,699 @@ + + + + SCCameraKitExplicitViewportProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitExplicitViewportProvider

+
+
+ +

+@interface SCCameraKitExplicitViewportProvider : NSObject
+ +
+
+

Enables the configuration of a custom viewport for SCCameraKitPreviewView.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes the ExplicitViewportProvider with the specified viewportSize, outputResolution, and safeArea.

    +
    +

    Note

    + The delegate will be set automatically when this class is used to configure SCCameraKitPreviewView +so that any change to viewportSize, outputResolution, and safeArea is propagated. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithViewportSize:(CGSize)viewportSize
    +                            outputResolution:(CGSize)outputResolution
    +                                    safeArea:(CGRect)safeArea;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + viewportSize + + +
    +

    Output viewport frame size.

    +
    +
    + + outputResolution + + +
    +

    Output resolution size in pixels, not points (i.e. 1125x2436 not 375x812).

    +
    +
    + + safeArea + + +
    +

    A CGRect describing an area that the host app will not draw on top of.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setViewportSize: + +
    +
    +
    +
    +
    +
    +

    Sets the output viewport size and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setViewportSize:(CGSize)viewportSize;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + viewportSize + + +
    +

    Output viewport frame size.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setOutputResolution: + +
    +
    +
    +
    +
    +
    +

    Sets the output resolution and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setOutputResolution:(CGSize)outputResolution;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + outputResolution + + +
    +

    Output resolution size in pixels, not points (i.e. 1125x2436 not 375x812).

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -setSafeArea: + +
    +
    +
    +
    +
    +
    +

    Sets the safe area and propagates the change to SCCameraKitPreviewView.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setSafeArea:(CGRect)safeArea;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + safeArea + + +
    +

    A CGRect describing an area that the host app will not draw on top of.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use the designated initializer to pass in the required properties.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensLaunchDataBuilder.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensLaunchDataBuilder.html new file mode 100644 index 00000000..141f1815 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensLaunchDataBuilder.html @@ -0,0 +1,763 @@ + + + + SCCameraKitLensLaunchDataBuilder Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensLaunchDataBuilder

+
+
+

Objective-C

+

+@interface SCCameraKitLensLaunchDataBuilder : NSObject
+ +
+
+

Swift

+
class LensLaunchDataBuilder : NSObject
+ +
+
+

Concrete class to build lens launch data to pass to processor when applying

+ +
+
+ +
+
+
+
    +
  • +
    + + + + launchData + +
    +
    +
    +
    +
    +
    +

    Builds and get launch data from current builder state

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitLensLaunchData> launchData;
    + +
    +
    +

    Swift

    +
    var launchData: LensLaunchData? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -addNumber:forKey: + +
    +
    +
    +
    +
    +
    +

    Add number key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addNumber:(nonnull NSNumber *)value forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(number value: NSNumber, key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    number value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add number array key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addNumberArray:(nonnull NSArray<NSNumber *> *)value
    +                forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(numberArray value: [NSNumber], key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    number array value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addString:forKey: + +
    +
    +
    +
    +
    +
    +

    Add string key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addString:(nonnull NSString *)value forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(string value: String, key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    string value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add string array key-value pair to launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addStringArray:(nonnull NSArray<NSString *> *)value
    +                forKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func add(stringArray value: [String], key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + value + + +
    +

    string array value

    +
    +
    + + key + + +
    +

    key for value

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeValueForKey: + +
    +
    +
    +
    +
    +
    +

    Removes key-value pair from launch data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeValueForKey:(nonnull NSString *)key;
    + +
    +
    +

    Swift

    +
    func removeValue(key: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + key + + +
    +

    key for value to remove

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html new file mode 100644 index 00000000..2aa306a6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html @@ -0,0 +1,542 @@ + + + + SCCameraKitLensMediaPickerProviderPhotoLibrary Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderPhotoLibrary

+
+
+

Objective-C

+

+@interface SCCameraKitLensMediaPickerProviderPhotoLibrary
+    : NSObject <SCCameraKitLensMediaPickerProvider>
+ +
+
+

Swift

+
class LensMediaPickerProviderPhotoLibrary : NSObject, LensMediaPickerProvider
+ +
+
+

A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes the photo library provider.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithDefaultAssetTypes:
    +    (SCCameraKitLensMediaPickerProviderAllowedMediaType)defaultAssetTypes;
    + +
    +
    +

    Swift

    +
    init(defaultAssetTypes: SCCameraKitLensMediaPickerProviderAllowedMediaType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + defaultAssetTypes + + +
    +

    a bitmask specifying which types of assets the picker will display when the lens does not +indicate interest in a specific type of asset. MUST not be LensMediaPickerProviderAllowedMediaTypeNoneSpecified.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensRemoteApiResponse.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensRemoteApiResponse.html new file mode 100644 index 00000000..f10ff630 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensRemoteApiResponse.html @@ -0,0 +1,580 @@ + + + + SCCameraKitLensRemoteApiResponse Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponse

+
+
+

Objective-C

+

+@interface SCCameraKitLensRemoteApiResponse
+    : NSObject <SCCameraKitLensRemoteApiResponse>
+ +
+
+

Swift

+
class LensRemoteApiResponse : NSObject, LensRemoteApiResponseProtocol
+ +
+
+

Concrete data class for the remote api service response to a request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in required properties for the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithRequest:(nonnull id<SCCameraKitLensRemoteApiRequest>)request
    +             status:(SCCameraKitLensRemoteApiResponseStatus)status
    +           metadata:(nonnull NSDictionary<NSString *, NSString *> *)metadata
    +               body:(nullable NSData *)body;
    + +
    +
    +

    Swift

    +
    init(request: LensRemoteApiRequest, status: SCCameraKitLensRemoteApiResponseStatus, metadata: [String : String], body: Data?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + request + + +
    +

    Remote api service request sent by a lens.

    +
    +
    + + status + + +
    +

    Status of the response.

    +
    +
    + + metadata + + +
    +

    A map of named metadata associated with the response.

    +
    +
    + + body + + +
    +

    Additional response payload as bytes.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init to pass in required properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensesConfig.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensesConfig.html new file mode 100644 index 00000000..694787a1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitLensesConfig.html @@ -0,0 +1,510 @@ + + + + SCCameraKitLensesConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensesConfig

+
+
+

Objective-C

+

+@interface SCCameraKitLensesConfig : NSObject
+ +
+
+

Swift

+
class LensesConfig : NSObject
+ +
+
+

Concrete class to configure all available, user-configurable properties within the lenses component

+ +
+
+ +
+
+
+
    +
  • +
    + + + + cacheConfig + +
    +
    +
    +
    +
    +
    +

    Cache config instance to configure cache properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) SCCameraKitCacheConfig *_Nonnull cacheConfig;
    + +
    +
    +

    Swift

    +
    var cacheConfig: CacheConfig { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithCacheConfig: + +
    +
    +
    +
    +
    +
    +

    Init with cache config instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithCacheConfig:
    +    (nonnull SCCameraKitCacheConfig *)cacheConfig;
    + +
    +
    +

    Swift

    +
    init(cacheConfig: CacheConfig)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cacheConfig + + +
    +

    cache config instance

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPhotoCaptureOutput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPhotoCaptureOutput.html new file mode 100644 index 00000000..acc453ef --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPhotoCaptureOutput.html @@ -0,0 +1,689 @@ + + + + SCCameraKitPhotoCaptureOutput Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPhotoCaptureOutput

+
+
+

Objective-C

+

+@interface SCCameraKitPhotoCaptureOutput : NSObject
+ +
+
+

Swift

+
class PhotoCaptureOutput : NSObject
+ +
+
+

An output that will capture photos. You should add this as an output for your CameraKit instance.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Instantiates a capturer with the specified AVCapturePhotoOutput and capture settings.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithCapturePhotoOutput:
    +    (nullable AVCapturePhotoOutput *)output;
    + +
    +
    +

    Swift

    +
    init(capturePhotoOutput output: AVCapturePhotoOutput?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + output + + +
    +

    the photo output to be used if possible. May be nil (in which case a frame from the video stream will +be captured).

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Capture a photo and call a completion with the resulting image when done.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    capturePhotoWithCaptureSettings:(nullable AVCapturePhotoSettings *)settings
    +                         outputSize:(CGSize)outputSize
    +                         completion:
    +                             (nonnull void (^)(UIImage *_Nullable,
    +                                               NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func capture(with settings: AVCapturePhotoSettings?, outputSize: CGSize) async throws -> UIImage
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + settings + + +
    +

    the photo capture settings to be used. If nil, the default settings will be used.

    +
    +
    + + outputSize + + +
    +

    the size of the captured photo that should be outputted. Defaults to CGSizeZero which means +default system size.

    +
    +
    + + completion + + +
    +

    the completion block called with the captured image.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Capture a photo and call a completion with the resulting image when done.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    capturePhotoWithCaptureSettings:(nullable AVCapturePhotoSettings *)settings
    +                         completion:
    +                             (nonnull void (^)(UIImage *_Nullable,
    +                                               NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func capture(with settings: AVCapturePhotoSettings?) async throws -> UIImage
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + settings + + +
    +

    the photo capture settings to be used. If nil, the default settings will be used.

    +
    +
    + + completion + + +
    +

    the completion block called with the captured image.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPortraitAdjustment.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPortraitAdjustment.html new file mode 100644 index 00000000..cca08cec --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPortraitAdjustment.html @@ -0,0 +1,453 @@ + + + + SCCameraKitPortraitAdjustment Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPortraitAdjustment

+
+
+

Objective-C

+

+@interface SCCameraKitPortraitAdjustment : NSObject <SCCameraKitAdjustment>
+
extension PortraitAdjustment: Adjustment
+ +
+
+

Swift

+
class PortraitAdjustment : NSObject, __Adjustment
+ +
+
+

An adjustment which allows users to blur the background on their input.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Controller = PortraitAdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPreviewView.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPreviewView.html new file mode 100644 index 00000000..ed176daa --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitPreviewView.html @@ -0,0 +1,657 @@ + + + + SCCameraKitPreviewView Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreviewView

+
+
+ +

+@interface SCCameraKitPreviewView : UIView
+ +
+
+

A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit +instance.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Configures the neccessary gesture recognizers for handling touch input in lenses. +If set to YES, will automatically add gesture reconizers and configure them to pass events to lenses.

    +
    +

    Note

    + by default, this is NO. You may change this to YES while cameraKit is running, and it will be configured on +the next frame. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresTouchHandler;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the viewport upon changes to the view’s frame. +If set to YES, this will automatically adjust viewportSize, outputResolution, and safeArea according to the +view’s frame.

    +
    +

    Note

    + By default, this is YES. If the viewport is explicitly defined via explicitViewportProvider, this will be set +to NO. + +
    +

    Note

    + If you change this property without setting explicitViewportProvider, the view will keep the last derived +viewportSize, outputResolution, and safeArea. + +
    +

    Warning

    + If there is a mismatch between viewportSize and the view’s frame size, part of the lens may +be cut off on the screen. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) BOOL automaticallyConfiguresViewport;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + contentMode + +
    +
    +
    +
    +
    +
    +

    Configures the content mode the preview view will use to render.

    +
    +

    Note

    + SCCameraKitPreviewViewContentModeAspectFill by default. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) SCCameraKitPreviewViewContentMode contentMode;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + safeArea + +
    +
    +
    +
    +
    +
    +

    Configures the safe area to an explicitly specified rect.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGRect safeArea;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Setting this property configures the preview view to use its viewportSize, outputResolution, and safeArea.

    +
    +

    Note

    + Calling this method will set automaticallyConfiguresViewport to NO. + +
    +

    Warning

    + If there is a mismatch between viewportSize and the view’s frame size, part of the lens may be cut off +the screen. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, nullable) SCCameraKitExplicitViewportProvider *explicitViewportProvider;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Automatically configures the safeArea property to avoid the specified views.

    +
    +

    Note

    + the preview view maintain a weak reference to the provided views and update the safe area automatically as +needed. + +
    +

    Warning

    + this method will reevaluate periodically (during bounds changes, etc), but will NOT actively track +changes to occluding views between those intervals. If you move an occluding view without affecting the preview +view, call this method again to reevaluate. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)configureSafeAreaWithOccludingViews:
    +    (nonnull NSArray<UIView *> *)occludingViews;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + occludingViews + + +
    +

    any views that may be displayed in front of lenses content, such as the carousel, camera flip +button, etc. If the preview view itself is part of this array, it will be ignored.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSession.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSession.html new file mode 100644 index 00000000..0ff8ddae --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSession.html @@ -0,0 +1,569 @@ + + + + SCCameraKitSession Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitSession

+
+
+

Objective-C

+

+@interface SCCameraKitSession : NSObject <SCCameraKitProtocol>
+ +
+
+

Swift

+
class Session : NSObject, CameraKitProtocol
+ +
+
+

CameraKit handles interaction with the camera and contains several components like lenses.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Init with session and lenses config instance to configure properties within lenses component

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithSessionConfig:(nullable SCCameraKitSessionConfig *)sessionConfig
    +             lensesConfig:(nonnull SCCameraKitLensesConfig *)lensesConfig
    +             errorHandler:(nullable id<SCCameraKitErrorHandler>)errorHandler;
    + +
    +
    +

    Swift

    +
    init(sessionConfig: SCCameraKitSessionConfig?, lensesConfig: SCCameraKitLensesConfig, errorHandler: SCCameraKitErrorHandler?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + sessionConfig + + +
    +

    session config to configure session with application id and api token

    +
    +
    + + lensesConfig + + +
    +

    lenses config to configure lenses component such as caches

    +
    +
    + + errorHandler + + +
    +

    optional error handler instance to handle exceptions thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with lenses config instance to configure properties within lenses component

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)
    +    initWithLensesConfig:(nonnull SCCameraKitLensesConfig *)lensesConfig
    +            errorHandler:(nullable id<SCCameraKitErrorHandler>)errorHandler;
    + +
    +
    +

    Swift

    +
    init(lensesConfig: SCCameraKitLensesConfig, errorHandler: SCCameraKitErrorHandler?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensesConfig + + +
    +

    lenses config to configure lenses components such as caches

    +
    +
    + + errorHandler + + +
    +

    optional error handler instance to handle exceptions thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSessionConfig.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSessionConfig.html new file mode 100644 index 00000000..15d97832 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitSessionConfig.html @@ -0,0 +1,901 @@ + + + + SCCameraKitSessionConfig Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitSessionConfig

+
+
+

Objective-C

+

+@interface SCCameraKitSessionConfig : NSObject
+ +
+
+

Swift

+
class SessionConfig : NSObject
+ +
+
+

Data class that is used to pass in a configuration for the CameraKit Session. +Use this data class if you would like to be able to dynamically update config values like application id and api +token or overwrite the ones that are passed into Info.plist.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + apiToken + +
    +
    +
    +
    +
    +
    +

    API token that is found in the dev portal

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull apiToken;
    + +
    +
    +

    Swift

    +
    var apiToken: String { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSDictionary<NSString *, id> *_Nonnull additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    var additionalConfigurationAttributes: [String : Any] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -initWithApiToken: + +
    +
    +
    +
    +
    +
    +

    Designated init to pass in apiToken

    +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApiToken:(nonnull NSString *)apiToken;
    + +
    +
    +

    Swift

    +
    init(apiToken: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init to pass in apiToken

    +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApiToken:(nonnull NSString *)apiToken
    +       additionalConfigurationAttributes:
    +           (nullable NSDictionary<NSString *, id> *)
    +               additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    convenience init(apiToken: String, additionalConfigurationAttributes: [String : Any]? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    + + additionalConfigurationAttributes + + +
    +

    additional configuration

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init to pass in require applicationID and apiToken

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (nonnull instancetype)new;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (instancetype)init NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + applicationId + +
    +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use apiToken instead.

    + +
    +
    +

    applicationID/clientID that is found in the dev portal

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull applicationId;
    + +
    +
    +

    Swift

    +
    var applicationId: String { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use initWithApiToken: instead.

    + +
    +
    +

    Designated init to pass in applicationID and apiToken

    +
    +

    Note

    + this will override the applicationID passed into Info.plist with the key SCCameraKitClientID + +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApplicationID:(nonnull NSString *)applicationID
    +                                     apiToken:(nonnull NSString *)apiToken;
    + +
    +
    +

    Swift

    +
    convenience init(applicationID: String, apiToken: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + applicationID + + +
    +

    applicationID/clientID that is found in the dev portal

    +
    +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Application ID-based authentication is no longer supported. Use initWithApiToken:additionalConfigurationAttributes: instead.

    + +
    +
    +

    Init to pass in applicationID and apiToken

    +
    +

    Note

    + this will override the applicationID passed into Info.plist with the key SCCameraKitClientID + +
    +

    Note

    + as well as overwrite the apiToken passed into Info.plist with the key SCCameraKitAPIToken + +
    +

    Warning

    + USE ONLY AS DIRECTED BY SNAP SUPPORT. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithApplicationID:(nonnull NSString *)applicationID
    +                                     apiToken:(nonnull NSString *)apiToken
    +            additionalConfigurationAttributes:
    +                (nullable NSDictionary<NSString *, id> *)
    +                    additionalConfigurationAttributes;
    + +
    +
    +

    Swift

    +
    convenience init(applicationID: String, apiToken: String, additionalConfigurationAttributes: [String : Any]? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + applicationID + + +
    +

    applicationID/clientID that is found in the dev portal

    +
    +
    + + apiToken + + +
    +

    api token that is found in the dev portal

    +
    +
    + + additionalConfigurationAttributes + + +
    +

    additional configuration

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitToneMapAdjustment.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitToneMapAdjustment.html new file mode 100644 index 00000000..4f6b0959 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitToneMapAdjustment.html @@ -0,0 +1,453 @@ + + + + SCCameraKitToneMapAdjustment Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitToneMapAdjustment

+
+
+

Objective-C

+

+@interface SCCameraKitToneMapAdjustment : NSObject <SCCameraKitAdjustment>
+
extension ToneMapAdjustment: Adjustment
+ +
+
+

Swift

+
class ToneMapAdjustment : NSObject, __Adjustment
+ +
+
+

An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Controller = ToneMapAdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitUserData.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitUserData.html new file mode 100644 index 00000000..4215f868 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Classes/SCCameraKitUserData.html @@ -0,0 +1,616 @@ + + + + SCCameraKitUserData Class Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserData

+
+
+

Objective-C

+

+@interface SCCameraKitUserData : NSObject
+ +
+
+

Swift

+
class UserData : NSObject
+ +
+
+

Concrete user data class to pass in user data that can be used by some lenses

+ +
+
+ +
+
+
+
    +
  • +
    + + + + displayName + +
    +
    +
    +
    +
    +
    +

    User’s full display name

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull displayName;
    + +
    +
    +

    Swift

    +
    var displayName: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + birthDate + +
    +
    +
    +
    +
    +
    +

    User’s birth date (optional)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) NSDate *birthDate;
    + +
    +
    +

    Swift

    +
    var birthDate: Date? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in user data fields

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)initWithDisplayName:(nonnull NSString *)displayName
    +                                  birthDate:(nullable NSDate *)birthDate;
    + +
    +
    +

    Swift

    +
    init(displayName: String, birthDate: Date?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + displayName + + +
    +

    user’s full display name

    +
    +
    + + birthDate + + +
    +

    user’s birth date (optional)

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -init + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Use designated init or convenience init to pass in required user properties

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull instancetype)init;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + +new + +
    +
    +
    +
    +
    +
    +

    Unavailable

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    + (instancetype)new NS_UNAVAILABLE;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Constants.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Constants.html new file mode 100644 index 00000000..81304a1b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Constants.html @@ -0,0 +1,962 @@ + + + + Constants Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Constants

+

The following constants are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SCCameraKitVersion + +
    +
    +
    +
    +
    +
    +

    Short CameraKit version (ie 1.8.0)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitVersion
    + +
    +
    +

    Swift

    +
    let CameraKitVersion: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    LensCore version (ie 243)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern const NSInteger SCCameraKitLensCoreVersion
    + +
    +
    +

    Swift

    +
    let CameraKitLensCoreVersion: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXTERN NSErrorDomain const
    +    SCCameraKitAdjustmentsComponentErrorDomain
    + +
    +
    +

    Swift

    +
    let AdjustmentsComponentErrorDomain: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorUnspecified
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorUnspecified: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensMetadataNotFound
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensMetadataNotFound: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensContentNotFound
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensContentNotFound: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensContentUrlMissing
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensContentUrlMissing: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorLensChecksumMissing
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorLensChecksumMissing: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSInteger const SCCameraKitErrorCannotWriteToFile
    + +
    +
    +

    Swift

    +
    let SCCameraKitErrorCannotWriteToFile: Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when SCCameraKitClientID in Info.plist is missing or invalid.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionUnauthorized
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionUnauthorized: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when backend fails to authenticate client. +This could be due to numerous different reasons, one of the most common is due to having an invalid system date and +time settings.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidApplicationState
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidApplicationState: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when trying to pass an invalid lens class that’s different than the internal ones we support.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidLens
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidLens: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when trying to draw an invalid texture class that’s different than the internal ones we support.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionInvalidTexture
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionInvalidTexture: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported whne processing fails due to a lens error. Lens errors are normally caused by +dynamic scripting errors or missing resources in lens bundle.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionProcessingLensFailure
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionProcessingLensFailure: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reported when processing fails due to an internal error. Cause of such errors can be bugs in the +lenses processing engine or resource (memory, disk) exhaustion.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    extern NSString *const _Nonnull SCCameraKitExceptionProcessingInternalFailure
    + +
    +
    +

    Swift

    +
    let SCCameraKitExceptionProcessingInternalFailure: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSString *const SCCameraKitLensRepositoryBundledGroup
    + +
    +
    +

    Swift

    +
    let SCCameraKitLensRepositoryBundledGroup: String
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    FOUNDATION_EXPORT NSString *const SCCameraKitLensesComponentErrorDomain
    + +
    +
    +

    Swift

    +
    let SCCameraKitLensesComponentErrorDomain: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums.html new file mode 100644 index 00000000..d4dc174a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums.html @@ -0,0 +1,728 @@ + + + + Enumerations Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + ARSessionRunOptions + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_OPTIONS(NSUInteger
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ERROR_ENUM(SCCameraKitAdjustmentsComponentErrorDomain, SCCameraKitAdjustmentsComponentError){
    +
    +    // An unsupported adjustment was supplied. Check isAdjustmentAvailable before applying to avoid this.
    +    SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment = 0,
    +
    +}
    + +
    +
    +

    Swift

    +
    typealias AdjustmentsComponentError.Code._ErrorType = AdjustmentsComponentError
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes all posible facings (inversely relative to the user) that a lens can be designed for.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensFacingPreference : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensFacingPreference : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_OPTIONS(NSInteger, SCCameraKitLensMediaPickerProviderAllowedMediaType) {
    +    // The current lens has not provided any specific indication of the type of picker that should be shown.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified = 0,
    +
    +    // Images should be shown in the picker.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage = 1 << 0,
    +
    +    // If LensMediaPickerProviderAllowedMediaTypeImage is specified, the provider should ONLY show images with a
    +    // person's face in them
    +    // If LensMediaPickerProviderAllowedMediaTypeImage is not specified, this option is ignored.
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace = 1 << 1,
    +
    +    // Videos should be shown in the picker
    +    SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo = 1 << 2,
    +}
    + +
    +
    +

    Swift

    +
    struct SCCameraKitLensMediaPickerProviderAllowedMediaType : OptionSet, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ENUM(NSInteger, SCCameraKitLensMediaPickerAssetType) {
    +    SCCameraKitLensMediaPickerAssetTypeImage,
    +    SCCameraKitLensMediaPickerAssetTypeVideo,
    +}
    + +
    +
    +

    Swift

    +
    enum SCCameraKitLensMediaPickerAssetType : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the fetch status for the lens +Unloaded - lens content has not been fetched or loaded +Loading - lens content is currently being downloaded +Loaded - lens content has already been downloaded and fetched

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensFetchStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensFetchStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the status of the response sent to the lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensRemoteApiResponseStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum SCCameraKitLensRemoteApiResponseStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the status of the call for the request handled by a remote api service.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    enum SCCameraKitLensRemoteApiServiceCallStatus : NSInteger {}
    + +
    +
    +

    Swift

    +
    enum LensRemoteApiServiceCallStatus : Int, @unchecked Sendable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    NS_ENUM(NSInteger, SCCameraKitPreviewViewContentMode) {
    +    SCCameraKitPreviewViewContentModeScaleToFill,
    +    SCCameraKitPreviewViewContentModeAspectFill,
    +    SCCameraKitPreviewViewContentModeAspectFit
    +}
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitAdjustmentsComponentError.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitAdjustmentsComponentError.html new file mode 100644 index 00000000..2d550c65 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitAdjustmentsComponentError.html @@ -0,0 +1,462 @@ + + + + SCCameraKitAdjustmentsComponentError Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsComponentError

+
+
+

Objective-C

+
NS_ERROR_ENUM(SCCameraKitAdjustmentsComponentErrorDomain, SCCameraKitAdjustmentsComponentError){
+
+    // An unsupported adjustment was supplied. Check isAdjustmentAvailable before applying to avoid this.
+    SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment = 0,
+
+}
+ +
+
+

Swift

+
typealias AdjustmentsComponentError.Code._ErrorType = AdjustmentsComponentError
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFacingPreference.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFacingPreference.html new file mode 100644 index 00000000..1fe45b28 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFacingPreference.html @@ -0,0 +1,521 @@ + + + + SCCameraKitLensFacingPreference Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensFacingPreference

+
+
+

Objective-C

+
enum SCCameraKitLensFacingPreference : NSInteger {}
+ +
+
+

Swift

+
enum LensFacingPreference : Int, @unchecked Sendable
+ +
+
+

Describes all posible facings (inversely relative to the user) that a lens can be designed for.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceNone = 0
    + +
    +
    +

    Swift

    +
    case none = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceFront = 1
    + +
    +
    +

    Swift

    +
    case front = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFacingPreferenceBack = 2
    + +
    +
    +

    Swift

    +
    case back = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFetchStatus.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFetchStatus.html new file mode 100644 index 00000000..56527e1c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensFetchStatus.html @@ -0,0 +1,524 @@ + + + + SCCameraKitLensFetchStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensFetchStatus

+
+
+

Objective-C

+
enum SCCameraKitLensFetchStatus : NSInteger {}
+ +
+
+

Swift

+
enum LensFetchStatus : Int, @unchecked Sendable
+ +
+
+

Describes the fetch status for the lens +Unloaded - lens content has not been fetched or loaded +Loading - lens content is currently being downloaded +Loaded - lens content has already been downloaded and fetched

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusUnloaded
    + +
    +
    +

    Swift

    +
    case unloaded = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusLoading
    + +
    +
    +

    Swift

    +
    case loading = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensFetchStatusLoaded
    + +
    +
    +

    Swift

    +
    case loaded = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerAssetType.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerAssetType.html new file mode 100644 index 00000000..9ac3b333 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerAssetType.html @@ -0,0 +1,492 @@ + + + + SCCameraKitLensMediaPickerAssetType Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetType

+
+
+

Objective-C

+
NS_ENUM(NSInteger, SCCameraKitLensMediaPickerAssetType) {
+    SCCameraKitLensMediaPickerAssetTypeImage,
+    SCCameraKitLensMediaPickerAssetTypeVideo,
+}
+ +
+
+

Swift

+
enum SCCameraKitLensMediaPickerAssetType : Int, @unchecked Sendable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensMediaPickerAssetTypeImage
    + +
    +
    +

    Swift

    +
    case image = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensMediaPickerAssetTypeVideo
    + +
    +
    +

    Swift

    +
    case video = 1
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html new file mode 100644 index 00000000..4814f002 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html @@ -0,0 +1,562 @@ + + + + SCCameraKitLensMediaPickerProviderAllowedMediaType Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderAllowedMediaType

+
+
+

Objective-C

+
NS_OPTIONS(NSInteger, SCCameraKitLensMediaPickerProviderAllowedMediaType) {
+    // The current lens has not provided any specific indication of the type of picker that should be shown.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified = 0,
+
+    // Images should be shown in the picker.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage = 1 << 0,
+
+    // If LensMediaPickerProviderAllowedMediaTypeImage is specified, the provider should ONLY show images with a
+    // person's face in them
+    // If LensMediaPickerProviderAllowedMediaTypeImage is not specified, this option is ignored.
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace = 1 << 1,
+
+    // Videos should be shown in the picker
+    SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo = 1 << 2,
+}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerProviderAllowedMediaType : OptionSet, @unchecked Sendable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiResponseStatus.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiResponseStatus.html new file mode 100644 index 00000000..4d3e2597 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiResponseStatus.html @@ -0,0 +1,713 @@ + + + + SCCameraKitLensRemoteApiResponseStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponseStatus

+
+
+

Objective-C

+
enum SCCameraKitLensRemoteApiResponseStatus : NSInteger {}
+ +
+
+

Swift

+
enum SCCameraKitLensRemoteApiResponseStatus : Int, @unchecked Sendable
+ +
+
+

Describes the status of the response sent to the lens.

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html new file mode 100644 index 00000000..206060ef --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitLensRemoteApiServiceCallStatus.html @@ -0,0 +1,522 @@ + + + + SCCameraKitLensRemoteApiServiceCallStatus Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceCallStatus

+
+
+

Objective-C

+
enum SCCameraKitLensRemoteApiServiceCallStatus : NSInteger {}
+ +
+
+

Swift

+
enum LensRemoteApiServiceCallStatus : Int, @unchecked Sendable
+ +
+
+

Describes the status of the call for the request handled by a remote api service.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Request was ignored typically due to a remote api service not interested in handling such request to allow other + services to handle the same request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusIgnored
    + +
    +
    +

    Swift

    +
    case ignored = 0
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Request was received but one or more responses are yet to be sent.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusOngoing
    + +
    +
    +

    Swift

    +
    case ongoing = 1
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Request was received and a single response was sent indicating that the call is complete.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SCCameraKitLensRemoteApiServiceCallStatusAnswered
    + +
    +
    +

    Swift

    +
    case answered = 2
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitPreviewViewContentMode.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitPreviewViewContentMode.html new file mode 100644 index 00000000..70c306b2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Enums/SCCameraKitPreviewViewContentMode.html @@ -0,0 +1,505 @@ + + + + SCCameraKitPreviewViewContentMode Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreviewViewContentMode

+
+
+ +
NS_ENUM(NSInteger, SCCameraKitPreviewViewContentMode) {
+    SCCameraKitPreviewViewContentModeScaleToFill,
+    SCCameraKitPreviewViewContentModeAspectFill,
+    SCCameraKitPreviewViewContentModeAspectFit
+}
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions.html new file mode 100644 index 00000000..a403ce81 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions.html @@ -0,0 +1,440 @@ + + + + Extensions Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + AdjustmentsProcessor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension AdjustmentsProcessor
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions/AdjustmentsProcessor.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions/AdjustmentsProcessor.html new file mode 100644 index 00000000..73f16014 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Extensions/AdjustmentsProcessor.html @@ -0,0 +1,469 @@ + + + + AdjustmentsProcessor Extension Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentsProcessor

+
+
+ +
public extension AdjustmentsProcessor
+ +
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + apply(adjustment:) + +
    +
    +
    +
    +
    +
    +

    Applies a given adjustment and returns a controller which allows runtime configuration of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func apply<AdjustmentType>(adjustment: AdjustmentType) throws -> AdjustmentType.Controller where AdjustmentType : Adjustment
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustment + + +
    +

    The adjustment to apply.

    +
    +
    +
    +
    +

    Return Value

    +

    A controller to configure the adjustment.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols.html new file mode 100644 index 00000000..d4fd87b5 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols.html @@ -0,0 +1,2316 @@ + + + + Protocols Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SCCameraKitProtocol + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitProtocol <NSObject>
    +
    +/// Contains lenses related objects.
    +@property (strong, nonatomic, readonly) id<SCCameraKitLensesComponent> lenses;
    +
    +/// Contains adjustment related objects.
    +@property (strong, nonatomic, readonly) id<SCCameraKitAdjustmentsComponent> adjustments;
    +
    +/// Begin processing input frames with front camera position and portrait video orientation
    +/// @param input the input to configure.
    +/// @param arInput the ARKit input to configure.
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +               arInput:(id<SCCameraKitARInput>)arInput NS_SWIFT_NAME(start(input:arInput:));
    +
    +/// Deprecated. Use
    +/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +               arInput:(id<SCCameraKitARInput>)arInput
    +        cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +      videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +          dataProvider:(SCCameraKitDataProviderComponent *)dataProvider
    +          hintDelegate:(id<SCCameraKitLensHintDelegate>)hintDelegate __attribute__((deprecated));
    +
    +/// Deprecated. Use
    +/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +                                  arInput:(id<SCCameraKitARInput>)arInput
    +                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
    +                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
    +    agreementsPresentationContextProvider:
    +        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
    +    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:))
    +        __attribute__((deprecated));
    +;
    +
    +/// Begin processing input frames.
    +/// @param input the input to configure.
    +/// @param arInput the ARKit input to configure.
    +/// @param cameraPosition the camera position in use
    +/// @param videoOrientation the orientation for the outputted video buffers
    +/// @param dataProvider data provider component to pass in custom data providers (optional -- will create and handle
    +/// data providers by default if nil)
    +/// @param hintDelegate lens hint delegate to show/hide hints for applied lenses
    +/// @param textInputContextProvider context provider for providing keyboard access to lenses
    +/// @param agreementsPresentationContextProvider context provider for presenting agreements screens
    +- (void)startWithInput:(id<SCCameraKitInput>)input
    +                                  arInput:(id<SCCameraKitARInput>)arInput
    +                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
    +                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
    +                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
    +                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
    +                 textInputContextProvider:(nullable id<SCCameraKitTextInputContextProvider>)textInputContextProvider
    +    agreementsPresentationContextProvider:
    +        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
    +    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:));
    +
    +/// End processing input frames.
    +- (void)stop;
    +
    +/// End processing input frames.
    +/// @param completion Block to be called after processing is finished and session is stopped
    +- (void)stopWithCompletion:(nullable void (^)(void))completion NS_SWIFT_NAME(stop(completion:));
    +
    +/// Add an output. Frames will still be processed if no outputs exist.
    +- (void)addOutput:(id<SCCameraKitOutput>)output NS_SWIFT_NAME(add(output:));
    +
    +/// Remove an output.
    +- (void)removeOutput:(id<SCCameraKitOutput>)listener NS_SWIFT_NAME(remove(output:));
    +
    +/// The camera position in use. Setting will automatically update the input.
    +@property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
    +
    +/// The orientation for the outputted video buffers
    +@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
    +
    +/// The active input. May be either standard camera input or the AR input, depending on lens requirements.
    +@property (nonatomic, readonly) id<SCCameraKitInput> activeInput;
    +
    +/// Store containing information above the acceptance state of terms of service
    +@property (nonatomic, readonly) id<SCCameraKitAgreementsStore> agreementsStore;
    +
    +/// Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.
    +/// @note CameraKit will present this when the user applies a lens if they have new agreements to accept. You can call
    +/// this explicitly if you wish to present the terms before then (eg during an onboarding experience, alongside your own
    +/// app's Terms of Service)
    +- (void)presentAgreementsImmediately;
    +
    +@end
    + +
    +
    +

    Swift

    +
    protocol CameraKitProtocol : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Propogates ARKit session delegate methods back to CameraKit. +If you implement your own AR Input, you MUST call these methods when their corresponding ARKit delegate methods +are called.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitARInputDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitARInput + +
    +
    +
    +
    +
    +
    +

    Describes a source of AR data for CameraKit.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitARInput <SCCameraKitInput>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that will handle fetching the access token.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAccessTokenProviderTask <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AccessTokenProviderTask : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected +lenses, push to device, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAccessTokenProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AccessTokenProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitAdjustment + +
    +
    +
    +
    +
    +
    +

    Protocol describing the Objective-C interface to an Adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustment <NSObject>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol describing the Objective-C interface to an Adjustment Controller.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentController <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentController : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A controller to control the tone map adjustment.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol
    +    SCCameraKitToneMapAdjustmentController <SCCameraKitAdjustmentController>
    + +
    +
    +

    Swift

    +
    protocol ToneMapAdjustmentController : AdjustmentController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A controller to control the portrait adjustment.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol
    +    SCCameraKitPortraitAdjustmentController <SCCameraKitAdjustmentController>
    + +
    +
    +

    Swift

    +
    protocol PortraitAdjustmentController : AdjustmentController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The adjustments processor handles adjusting camera frames before they are processed by lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsProcessor <NSObject>
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The adjustments component wraps several adjustment-related classes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsComponent <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentsComponent : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to adjustments processor state

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAdjustmentsProcessorObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AdjustmentsProcessorObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to interface with agreements by CameraKit +This interface should not be used directly.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementSet <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementSet : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide presentation context for CameraKit to present agreements.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementsPresentationContextProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementsPresentationContextProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol describing the CameraKit agreements store.

    +
    +

    Warning

    + DO NOT attempt to directly use this protocol. Attempting to do so WILL CAUSE YOUR APP TO CRASH. Use +SCCameraKitAgreementsPresentationContextProvider to define how CameraKit will show agreements on your behalf. + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitAgreementsStore <NSObject>
    + +
    +
    +

    Swift

    +
    protocol AgreementsStore : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Params for device motion interface

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitDeviceMotionParameters <NSObject>
    + +
    +
    +

    Swift

    +
    protocol DeviceMotionParameters : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide device motion data and handle starting/updating/stopping

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitDeviceMotionDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol DeviceMotionDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to handler errors and exceptions related to CameraKit

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitErrorHandler
    + +
    +
    +

    Swift

    +
    protocol ErrorHandler
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The input destination is an intermediary for frame data.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitInputDestination
    + +
    +
    +

    Swift

    +
    protocol InputDestination
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitInput + +
    +
    +
    +
    +
    +
    +

    Describes a source of frames for CameraKit. Can be a camera, file, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitInput
    + +
    +
    +

    Swift

    +
    protocol Input
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that contains lens preview data

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPreview <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPreview : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that contains lens snapcodes data

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensSnapcodes <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensSnapcodes : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitLens + +
    +
    +
    +
    +
    +
    +

    Describes a lens object.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLens <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Lens : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensHintDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensHintDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface used to provide lens hint localizations from hint ids

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensHintProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensHintProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An opaque protocol used to pass launch data to processor when applying lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensLaunchData <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensLaunchData : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProvider <NSObject>
    +
    +/// A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.
    +/// @warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.
    +@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> mediaApplicationDelegate;
    +
    +/// A delegate that will be notified when picker-related UI should be shown or hidden.
    +@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderUIDelegate> uiDelegate;
    +
    +/// The number of assets that have been fetched and may be displayed by the picker UI.
    +@property (readonly, nonatomic, assign) NSInteger fetchedAssetCount;
    +
    +/// Whether or not the data provider has more assets available to fetch.
    +@property (readonly, nonatomic, assign) BOOL hasMoreAssetsToFetch;
    +
    +/// Fetches a new batch of assets.
    +/// @param batchSize How many items to fetch. A provider may return less than this if it exhausts available assets
    +/// without reaching the desired batch size
    +/// @param queue a dispatch queue to receive callbacks on
    +/// @param completion a completion block to be called when the fetch has completed
    +- (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
    +                            queue:(dispatch_queue_t)queue
    +                       completion:(void (^)(NSArray<id<SCCameraKitLensMediaPickerAsset>> *))completion
    +    NS_SWIFT_NAME(fetchNextAssetBatch(size:queue:completion:));
    +
    +/// Retrieves a fetched asset at a given index.
    +/// @param index the index to fetch.
    +- (id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:(NSInteger)index NS_SWIFT_NAME(fetchedAsset(at:));
    +
    +/// Loads the full resolution backing asset of a specified asset and applies it to lenses.
    +/// @param asset the asset to load and apply
    +/// @param completion a completion block called when application is complete
    +/// @note Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed
    +/// in order for the lens to succesfully apply the media.
    +- (void)loadAndApplyOriginalMediaFromAsset:(id<SCCameraKitLensMediaPickerAsset>)asset
    +                                completion:(nullable void (^)(void))completion
    +    NS_SWIFT_NAME(loadAndApplyOriginalMedia(from:completion:));
    +
    +/// Invalidates and resets internal state of the provider with a newly specified allowed media type option set.
    +/// @param assetType The asset types to allow in results.
    +- (void)reconfigureWithAllowedTypes:(SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
    +
    +@end
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerAsset <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderAsset : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProviderUIDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderUIDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate responsible for applying media to a lens. This should not be implemented directly.

    +
    +

    Note

    + If you create a custom provider, you’ll need to call the methods here from your provider. See notes on +provider.uiDelegate for more details. + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensMediaPickerProviderMediaApplicationDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensMediaPickerProviderMediaApplicationDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface used to observe changes in lens fetch status

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcherObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcherObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the interface used to cancel an ongoing prefetch task

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcherTask <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcherTask : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the interface used to prefetch lens content

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensPrefetcher <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensPrefetcher : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The lens processor handles transforming camera frames and adding effects to them.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensProcessor <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensProcessor : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to lens processor state

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensProcessorObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol ProcessorObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the remote api service request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiRequest <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiRequest : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the remote api service response to a request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiResponse <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiResponseProtocol : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes the call that is sent in response to a remote api request sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiServiceCall <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiServiceCall : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes a remote api service used to process requests sent by a lens.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiService <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiService : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to provide remote api services for specific lenses and api spec identifiers.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRemoteApiServiceProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRemoteApiServiceProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to lens groups the repository has available.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepositoryGroupObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepositoryGroupObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Allows conformers to be notified of changes to specific lenses in groups the repository has available.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepositorySpecificObserver <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepositorySpecificObserver : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The lenses component wraps several lens-related classes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensesComponent <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensesComponent : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Lens Repository for listing lenses, getting lenses, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLensRepository <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LensRepository : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Params for device motion interface

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLocationParameters <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LocationParameters : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide device motion data and handle starting/updating/stopping

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitLocationDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol LocationDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitOutput + +
    +
    +
    +
    +
    +
    +

    Allows conformers to be notified of new frame data from CameraKit.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitOutput <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Output : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to interface with preferences stored by CameraKit +This interface is intentionally opaque and should only be used to clear out stored preferences

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitPreferences <NSObject>
    + +
    +
    +

    Swift

    +
    protocol SCCameraKitPreferences : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol for representing a text input view on-screen for lenses that request it.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTextInputKeyboardAccessoryProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol TextInputKeyboardAccessoryProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol to provide keyboard input data to lenses.

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTextInputContextProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol TextInputContextProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SCCameraKitTexture + +
    +
    +
    +
    +
    +
    +

    An opaque protocol describing CameraKit output.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitTexture <NSObject>
    + +
    +
    +

    Swift

    +
    protocol Texture : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    User data provider delegate to provide receivers with new user data on updates

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitUserDataProviderDelegate <NSObject>
    + +
    +
    +

    Swift

    +
    protocol UserDataProviderDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface that provides user data to lenses

    + + See more +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @protocol SCCameraKitUserDataProvider <NSObject>
    + +
    +
    +

    Swift

    +
    protocol UserDataProvider : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Adjustment + +
    +
    +
    +
    +
    +
    +

    Swift protocol for an adjustment. Specifies an associated Controller type.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol Adjustment : __Adjustment
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/Adjustment.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/Adjustment.html new file mode 100644 index 00000000..a5135a81 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/Adjustment.html @@ -0,0 +1,446 @@ + + + + Adjustment Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Adjustment

+
+
+ +
public protocol Adjustment : __Adjustment
+ +
+
+

Swift protocol for an adjustment. Specifies an associated Controller type.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Controller + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    associatedtype Controller : AdjustmentController
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInput.html new file mode 100644 index 00000000..b9c8abf8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInput.html @@ -0,0 +1,568 @@ + + + + SCCameraKitARInput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARInput

+
+
+ +
@protocol SCCameraKitARInput <SCCameraKitInput>
+ +
+
+

Describes a source of AR data for CameraKit.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + session + +
    +
    +
    +
    +
    +
    +

    The managed ARSession.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) ARSession *_Nonnull session;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arDelegate + +
    +
    +
    +
    +
    +
    +

    The intermediate destination for ARKit delegate methods. See the protocol definition for more details. +This property should NOT be set directly. CameraKit will assign this as appropriate.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitARInputDelegate> _Nullable arDelegate;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The ARConfiguration to use when using the front camera.

    +
    +

    Warning

    + if your app supports lenses with true sizing, you MUST return an instance of ARFaceTrackingConfiguration +(additionally, we recommend setting the number of tracked faces to 0) + +
    +

    Note

    + this is nil by default, as adding ARFaceTrackingConfiguration will subject your app to additional app review, +concerning your usage of the TrueDepth camera. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) ARConfiguration *_Nonnull frontCameraConfiguration;
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Runs the session with the provided configuration and options.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)runWithConfiguration:(nonnull ARConfiguration *)configuration
    +                     options:(ARSessionRunOptions)options;
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -pause + +
    +
    +
    +
    +
    +
    +

    Pauses the session.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)pause;
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInputDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInputDelegate.html new file mode 100644 index 00000000..2ec92edc --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitARInputDelegate.html @@ -0,0 +1,599 @@ + + + + SCCameraKitARInputDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitARInputDelegate

+
+
+ +
@protocol SCCameraKitARInputDelegate
+ +
+
+

Propogates ARKit session delegate methods back to CameraKit. +If you implement your own AR Input, you MUST call these methods when their corresponding ARKit delegate methods +are called.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -input:didAddAnchors: + +
    +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didAddAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didAddAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didUpdateAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didUpdateAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Method to call when the input receives session:didRemoveAnchors:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitARInput>)input
    +    didRemoveAnchors:(nonnull NSArray<ARAnchor *> *)anchors;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the sending input

    +
    +
    + + anchors + + +
    +

    the anchors passed to the delegate

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProvider.html new file mode 100644 index 00000000..23a70820 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProvider.html @@ -0,0 +1,547 @@ + + + + SCCameraKitAccessTokenProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAccessTokenProvider

+
+
+

Objective-C

+
@protocol SCCameraKitAccessTokenProvider <NSObject>
+ +
+
+

Swift

+
protocol AccessTokenProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected +lenses, push to device, etc.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    If the user is already authenticated, fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc. +Returns an access token task if the fetch token task is cancellable or nil if the task is not cancellable.

    +
    +

    Note

    + It is up to the provider to ensure that the access token will be active for the lifetime of the feature using +the token. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAccessTokenProviderTask>)
    +    fetchAccessTokenIfAuthenticatedWithCompletion:
    +        (nonnull void (^)(NSString *_Nullable, NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func fetchAccessTokenIfAuthenticated(completion: @escaping (String?, Error?) -> Void) -> AccessTokenProviderTask?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    Callback on completion with access token on success or error on failure.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc. +May take the user through an authentication flow if the user is not already authenticated. +Returns an access token task if the fetch token task is cancellable or nil if the task is not cancellable.

    +
    +

    Note

    + It is up to the provider to ensure that the access token will be active for the lifetime of the feature using +the token. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAccessTokenProviderTask>)
    +    fetchAccessTokenWithCompletion:
    +        (nonnull void (^)(NSString *_Nullable, NSError *_Nullable))completion;
    + +
    +
    +

    Swift

    +
    func fetchAccessToken(completion: @escaping (String?, Error?) -> Void) -> AccessTokenProviderTask?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    Callback on completion with access token on success or error on failure.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProviderTask.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProviderTask.html new file mode 100644 index 00000000..058e8831 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAccessTokenProviderTask.html @@ -0,0 +1,457 @@ + + + + SCCameraKitAccessTokenProviderTask Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAccessTokenProviderTask

+
+
+

Objective-C

+
@protocol SCCameraKitAccessTokenProviderTask <NSObject>
+ +
+
+

Swift

+
protocol AccessTokenProviderTask : NSObjectProtocol
+ +
+
+

Describes an interface that will handle fetching the access token.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -cancel + +
    +
    +
    +
    +
    +
    +

    Cancels fetching access token if it’s currently in progress;

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancel;
    + +
    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsComponent.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsComponent.html new file mode 100644 index 00000000..b902164c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsComponent.html @@ -0,0 +1,457 @@ + + + + SCCameraKitAdjustmentsComponent Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsComponent

+
+
+

Objective-C

+
@protocol SCCameraKitAdjustmentsComponent <NSObject>
+ +
+
+

Swift

+
protocol AdjustmentsComponent : NSObjectProtocol
+ +
+
+

The adjustments component wraps several adjustment-related classes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + processor + +
    +
    +
    +
    +
    +
    +

    Handles the actual adjustment application. Will be null if CameraKit is not running with a valid input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitAdjustmentsProcessor> processor;
    + +
    +
    +

    Swift

    +
    var processor: AdjustmentsProcessor? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessor.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessor.html new file mode 100644 index 00000000..f25263b8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessor.html @@ -0,0 +1,670 @@ + + + + SCCameraKitAdjustmentsProcessor Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsProcessor

+
+
+ +
@protocol SCCameraKitAdjustmentsProcessor <NSObject>
+ +
+
+

The adjustments processor handles adjusting camera frames before they are processed by lenses.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Checks if an adjustment is available and supported by the current device. Some adjustments are performance sensitive +or require specific hardware which may mean they are unavailable on specific devices. You should call this method +before showing any UI associated with the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)isAdjustmentAvailable:(nonnull id<SCCameraKitAdjustment>)adjustment;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustment + + +
    +

    the adjustment to check.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Applies the specified adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitAdjustmentController>)
    +    applyAdjustment:(nonnull id<SCCameraKitAdjustment>)adjustment
    +              error:(NSError *_Nullable *_Nullable)error;
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + adjustment + + +
    +

    The adjustment to apply.

    +
    +
    + + error + + +
    +

    Any error that may occur during application.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Removes an adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeAdjustmentController:
    +    (nonnull id<SCCameraKitAdjustmentController>)adjustmentController;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustmentController + + +
    +

    the controller associated with the adjustment you wish to remove.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addObserver: + +
    +
    +
    +
    +
    +
    +

    Adds observer to receive notifications of changes to adjustments processor state. +Returns if observer got successfully added

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)addObserver:
    +    (nonnull id<SCCameraKitAdjustmentsProcessorObserver>)observer;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to receive callbacks.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeObserver: + +
    +
    +
    +
    +
    +
    +

    Removes observer from receiving notifications of changes to adjustments availability.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +    (nonnull id<SCCameraKitAdjustmentsProcessorObserver>)observer;
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to stop receiving callbacks.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessorObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessorObserver.html new file mode 100644 index 00000000..c5b95e0c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAdjustmentsProcessorObserver.html @@ -0,0 +1,477 @@ + + + + SCCameraKitAdjustmentsProcessorObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAdjustmentsProcessorObserver

+
+
+

Objective-C

+
@protocol SCCameraKitAdjustmentsProcessorObserver <NSObject>
+ +
+
+

Swift

+
protocol AdjustmentsProcessorObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to adjustments processor state

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that the adjustments processor updated the state of available adjustments

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processorUpdatedAdjustmentsAvailability:
    +    (nonnull id<SCCameraKitAdjustmentsProcessor>)adjustmentsProcessor;
    + +
    +
    +

    Swift

    +
    func processorUpdatedAdjustmentsAvailability(_ adjustmentsProcessor: SCCameraKitAdjustmentsProcessor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + adjustmentsProcessor + + +
    +

    the adjustments processor instance

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementSet.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementSet.html new file mode 100644 index 00000000..b0d8768b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementSet.html @@ -0,0 +1,522 @@ + + + + SCCameraKitAgreementSet Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementSet

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementSet <NSObject>
+ +
+
+

Swift

+
protocol AgreementSet : NSObjectProtocol
+ +
+
+

Protocol to interface with agreements by CameraKit +This interface should not be used directly.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + termsOfServiceURL + +
    +
    +
    +
    +
    +
    +

    A URL to the terms of service agreement for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull termsOfServiceURL;
    + +
    +
    +

    Swift

    +
    var termsOfServiceURL: URL { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + privacyPolicyURL + +
    +
    +
    +
    +
    +
    +

    A URL to the privacy policy for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull privacyPolicyURL;
    + +
    +
    +

    Swift

    +
    var privacyPolicyURL: URL { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + learnMoreURL + +
    +
    +
    +
    +
    +
    +

    A URL to the learn more page for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) NSURL *_Nonnull learnMoreURL;
    + +
    +
    +

    Swift

    +
    var learnMoreURL: URL { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsPresentationContextProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsPresentationContextProvider.html new file mode 100644 index 00000000..d13a1595 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsPresentationContextProvider.html @@ -0,0 +1,527 @@ + + + + SCCameraKitAgreementsPresentationContextProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementsPresentationContextProvider

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementsPresentationContextProvider <NSObject>
+ +
+
+

Swift

+
protocol AgreementsPresentationContextProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide presentation context for CameraKit to present agreements.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    The view controller to present the agreements view controller from.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIViewController *_Nonnull viewControllerForPresentingAgreements;
    + +
    +
    +

    Swift

    +
    var viewControllerForPresentingAgreements: UIViewController { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Requests that the view controller passed be dismissed, with acceptance status.

    +
    +

    Warning

    + the implementer of this protocol is responsible for dismissing the view controller. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)dismissAgreementsViewController:
    +            (nonnull UIViewController *)agreementsViewController
    +                               accepted:(BOOL)accepted;
    + +
    +
    +

    Swift

    +
    func dismissAgreementsViewController(_ agreementsViewController: UIViewController, accepted: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + agreementsViewController + + +
    +

    the view controller to dismiss.

    +
    +
    + + accepted + + +
    +

    whether or not the user accepted all the agreements presented.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsStore.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsStore.html new file mode 100644 index 00000000..faff3906 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitAgreementsStore.html @@ -0,0 +1,591 @@ + + + + SCCameraKitAgreementsStore Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitAgreementsStore

+
+
+

Objective-C

+
@protocol SCCameraKitAgreementsStore <NSObject>
+ +
+
+

Swift

+
protocol AgreementsStore : NSObjectProtocol
+ +
+
+

Protocol describing the CameraKit agreements store.

+
+

Warning

+ DO NOT attempt to directly use this protocol. Attempting to do so WILL CAUSE YOUR APP TO CRASH. Use +SCCameraKitAgreementsPresentationContextProvider to define how CameraKit will show agreements on your behalf. + +
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) BOOL requiresNewAgreementAcceptance
    + +
    +
    +

    Swift

    +
    var requiresNewAgreementAcceptance: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) BOOL childrenProtectionActRestricted
    + +
    +
    +

    Swift

    +
    var childrenProtectionActRestricted: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (readonly, nonatomic) id<SCCameraKitAgreementSet> newestAvailableAgreements
    + +
    +
    +

    Swift

    +
    var newestAvailableAgreements: SCCameraKitAgreementSet { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -acceptAgreements: + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)acceptAgreements:(id<SCCameraKitAgreementSet>)agreements;
    + +
    +
    +

    Swift

    +
    func acceptAgreements(_ agreements: SCCameraKitAgreementSet)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -declineAgreements: + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)declineAgreements:(id<SCCameraKitAgreementSet>)agreements;
    + +
    +
    +

    Swift

    +
    func declineAgreements(_ agreements: SCCameraKitAgreementSet)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionDataProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionDataProvider.html new file mode 100644 index 00000000..3ee798f1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionDataProvider.html @@ -0,0 +1,541 @@ + + + + SCCameraKitDeviceMotionDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDeviceMotionDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitDeviceMotionDataProvider <NSObject>
+ +
+
+

Swift

+
protocol DeviceMotionDataProvider : NSObjectProtocol
+ +
+
+

Protocol to provide device motion data and handle starting/updating/stopping

+ +
+
+ +
+
+
+
    +
  • +
    + + + + deviceMotion + +
    +
    +
    +
    +
    +
    +

    Current device motion data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) CMDeviceMotion *deviceMotion;
    + +
    +
    +

    Swift

    +
    var deviceMotion: CMDeviceMotion? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Start updating device motion with params

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startUpdatingWithParameters:
    +    (nonnull id<SCCameraKitDeviceMotionParameters>)parameters;
    + +
    +
    +

    Swift

    +
    func startUpdating(with parameters: DeviceMotionParameters)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + parameters + + +
    +

    device motion params

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopUpdating + +
    +
    +
    +
    +
    +
    +

    Stop updating device motion

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopUpdating;
    + +
    +
    +

    Swift

    +
    func stopUpdating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionParameters.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionParameters.html new file mode 100644 index 00000000..0a09de82 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitDeviceMotionParameters.html @@ -0,0 +1,457 @@ + + + + SCCameraKitDeviceMotionParameters Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitDeviceMotionParameters

+
+
+

Objective-C

+
@protocol SCCameraKitDeviceMotionParameters <NSObject>
+ +
+
+

Swift

+
protocol DeviceMotionParameters : NSObjectProtocol
+ +
+
+

Params for device motion interface

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Requires device motion interface to be aligned with compass

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL requiresCompassAlignment;
    + +
    +
    +

    Swift

    +
    var requiresCompassAlignment: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitErrorHandler.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitErrorHandler.html new file mode 100644 index 00000000..c3d65048 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitErrorHandler.html @@ -0,0 +1,476 @@ + + + + SCCameraKitErrorHandler Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitErrorHandler

+
+
+

Objective-C

+
@protocol SCCameraKitErrorHandler
+ +
+
+

Swift

+
protocol ErrorHandler
+ +
+
+

Describes an interface to handler errors and exceptions related to CameraKit

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -handleError: + +
    +
    +
    +
    +
    +
    +

    Handle error thrown by CameraKit

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)handleError:(nonnull NSException *)error;
    + +
    +
    +

    Swift

    +
    func handleError(_ error: NSException)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + error + + +
    +

    exception thrown by CameraKit

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInput.html new file mode 100644 index 00000000..cb237a04 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInput.html @@ -0,0 +1,743 @@ + + + + SCCameraKitInput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitInput

+
+
+

Objective-C

+
@protocol SCCameraKitInput
+ +
+
+

Swift

+
protocol Input
+ +
+
+

Describes a source of frames for CameraKit. Can be a camera, file, etc.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + destination + +
    +
    +
    +
    +
    +
    +

    The intermediate destination for frame data. See the protocol definition for more details. +This property should NOT be set directly. CameraKit will assign this as appropriate.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitInputDestination> _Nullable destination;
    + +
    +
    +

    Swift

    +
    weak var destination: InputDestination? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + horizontalFieldOfView + +
    +
    +
    +
    +
    +
    +

    The horizontal field of view for the input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGFloat horizontalFieldOfView;
    + +
    +
    +

    Swift

    +
    var horizontalFieldOfView: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frameSize + +
    +
    +
    +
    +
    +
    +

    The size for input frame

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGSize frameSize;
    + +
    +
    +

    Swift

    +
    var frameSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frameOrientation + +
    +
    +
    +
    +
    +
    +

    The orientation of frame data for the input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) AVCaptureVideoOrientation frameOrientation;
    + +
    +
    +

    Swift

    +
    var frameOrientation: AVCaptureVideoOrientation { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + position + +
    +
    +
    +
    +
    +
    +

    The camera position that the frames are sourced from.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) AVCaptureDevicePosition position;
    + +
    +
    +

    Swift

    +
    var position: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + isRunning + +
    +
    +
    +
    +
    +
    +

    Whether or not the session is currently running.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL isRunning;
    + +
    +
    +

    Swift

    +
    var isRunning: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -startRunning + +
    +
    +
    +
    +
    +
    +

    Indiciates that the input should begin running if it is not currently. If the input is aleady running, this should +be a noop. +@warning: This method is SYNCHRONOUS and should not be called on the main thread.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startRunning;
    + +
    +
    +

    Swift

    +
    func startRunning()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopRunning + +
    +
    +
    +
    +
    +
    +

    Indiciates that the input should MUST stop running if it currently is running. If the input is not already running, +this should be a noop. +@warning: This method is SYNCHRONOUS and should not be called on the main thread.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopRunning;
    + +
    +
    +

    Swift

    +
    func stopRunning()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -setVideoOrientation: + +
    +
    +
    +
    +
    +
    +

    Set the orientation for the outputted video buffers

    +
    +

    Note

    + this may be different than the actual frame data orientation +since inputs may map frame data orientation to video orientation differently + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setVideoOrientation:(AVCaptureVideoOrientation)videoOrientation;
    + +
    +
    +

    Swift

    +
    func setVideoOrientation(_ videoOrientation: AVCaptureVideoOrientation)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + videoOrientation + + +
    +

    orientation for the outputted video buffers

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInputDestination.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInputDestination.html new file mode 100644 index 00000000..33224b30 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitInputDestination.html @@ -0,0 +1,604 @@ + + + + SCCameraKitInputDestination Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitInputDestination

+
+
+

Objective-C

+
@protocol SCCameraKitInputDestination
+ +
+
+

Swift

+
protocol InputDestination
+ +
+
+

The input destination is an intermediary for frame data.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Pass new video frame data into CameraKit. Call this every time your input generates new video frames.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitInput>)input
    +    receivedVideoSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func input(_ input: Input, receivedVideoSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the input providing data.

    +
    +
    + + sampleBuffer + + +
    +

    a sample buffer containing new video frame data.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Pass new audio frame data into CameraKit. Call this every time your input generates new audio frames.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)input:(nonnull id<SCCameraKitInput>)input
    +    receivedAudioSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func input(_ input: Input, receivedAudioSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + input + + +
    +

    the input providing data.

    +
    +
    + + sampleBuffer + + +
    +

    a sample buffer containing new audio frame data.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Indicates that the input has changed some attribute and that CameraKit should reconfigure itself accordingly.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)inputChangedAttributes:(nonnull id<SCCameraKitInput>)input;
    + +
    +
    +

    Swift

    +
    func inputChangedAttributes(_ input: Input)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + input + + +
    +

    the input that changed.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLens.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLens.html new file mode 100644 index 00000000..16c58b63 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLens.html @@ -0,0 +1,681 @@ + + + + SCCameraKitLens Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLens

+
+
+

Objective-C

+
@protocol SCCameraKitLens <NSObject>
+ +
+
+

Swift

+
protocol Lens : NSObjectProtocol
+ +
+
+

Describes a lens object.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + identifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NS_SWIFT_NAME(id) NSString *identifier;
    + +
    +
    +

    Swift

    +
    var id: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupIdentifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the group that the lens belongs to

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NS_SWIFT_NAME(groupId) NSString *groupIdentifier;
    + +
    +
    +

    Swift

    +
    var groupId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + name + +
    +
    +
    +
    +
    +
    +

    The name for the lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSString *name;
    + +
    +
    +

    Swift

    +
    var name: String? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + iconUrl + +
    +
    +
    +
    +
    +
    +

    URL for icon image

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *iconUrl;
    + +
    +
    +

    Swift

    +
    var iconUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preview + +
    +
    +
    +
    +
    +
    +

    Lens preview instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensPreview> _Nonnull preview;
    + +
    +
    +

    Swift

    +
    var preview: LensPreview { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + vendorData + +
    +
    +
    +
    +
    +
    +

    Extra metadata provided from vendor

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull vendorData;
    + +
    +
    +

    Swift

    +
    var vendorData: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + facingPreference + +
    +
    +
    +
    +
    +
    +

    Specifies which facing a lens is designed for.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensFacingPreference facingPreference;
    + +
    +
    +

    Swift

    +
    var facingPreference: LensFacingPreference { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapcodes + +
    +
    +
    +
    +
    +
    +

    Lens Snapcodes instance

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensSnapcodes> _Nonnull snapcodes;
    + +
    +
    +

    Swift

    +
    var snapcodes: LensSnapcodes { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintDelegate.html new file mode 100644 index 00000000..47129045 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintDelegate.html @@ -0,0 +1,579 @@ + + + + SCCameraKitLensHintDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensHintDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensHintDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensHintDelegate : NSObjectProtocol
+ +
+
+

Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies receiver that they should show hint for current lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)lensProcessor:(nonnull id<SCCameraKitLensProcessor>)lensProcessor
    +    shouldDisplayHint:(nonnull NSString *)hint
    +              forLens:(nonnull id<SCCameraKitLens>)lens
    +             autohide:(BOOL)autohide;
    + +
    +
    +

    Swift

    +
    func lensProcessor(_ lensProcessor: SCCameraKitLensProcessor, shouldDisplayHint hint: String, for lens: SCCameraKitLens, autohide: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + lensProcessor + + +
    +

    curent lens processor instance

    +
    +
    + + hint + + +
    +

    localized hint text to display

    +
    +
    + + lens + + +
    +

    current lens applied

    +
    +
    + + autohide + + +
    +

    should autohide hint

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies receiver that they should remove all hints for current lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)lensProcessor:(nonnull id<SCCameraKitLensProcessor>)lensProcessor
    +    shouldHideAllHintsForLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func lensProcessor(_ lensProcessor: SCCameraKitLensProcessor, shouldHideAllHintsFor lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensProcessor + + +
    +

    curent lens processor instance

    +
    +
    + + lens + + +
    +

    current lens applied

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintProvider.html new file mode 100644 index 00000000..7deae15e --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensHintProvider.html @@ -0,0 +1,489 @@ + + + + SCCameraKitLensHintProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensHintProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensHintProvider <NSObject>
+ +
+
+

Swift

+
protocol LensHintProvider : NSObjectProtocol
+ +
+
+

Describes an interface used to provide lens hint localizations from hint ids

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Get localized hint for hint id

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable NSString *)localizedHintForHintId:(nonnull NSString *)hintId
    +                                         lens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func localizedHint(for hintId: String, lens: SCCameraKitLens) -> String?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hintId + + +
    +

    unique id for lens hint

    +
    +
    + + lens + + +
    +

    lens instance which the hint belongs to

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerAsset.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerAsset.html new file mode 100644 index 00000000..48bc4410 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerAsset.html @@ -0,0 +1,553 @@ + + + + SCCameraKitLensMediaPickerAsset Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAsset

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerAsset <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderAsset : NSObjectProtocol
+ +
+
+

An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + identifier + +
    +
    +
    +
    +
    +
    +

    A unique identifier for the asset.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull identifier;
    + +
    +
    +

    Swift

    +
    var identifier: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + type + +
    +
    +
    +
    +
    +
    +

    Whether the asset is an image or video.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensMediaPickerAssetType type;
    + +
    +
    +

    Swift

    +
    var type: SCCameraKitLensMediaPickerAssetType { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + duration + +
    +
    +
    +
    +
    +
    +

    If the asset is a video, the length of the video in seconds. Otherwise 0.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSTimeInterval duration;
    + +
    +
    +

    Swift

    +
    var duration: TimeInterval { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + previewImage + +
    +
    +
    +
    +
    +
    +

    A thumbnail for the image or video. For images, this will be cropped to show any detected faces.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIImage *_Nonnull previewImage;
    + +
    +
    +

    Swift

    +
    var previewImage: UIImage { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProvider.html new file mode 100644 index 00000000..e52cabb9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProvider.html @@ -0,0 +1,852 @@ + + + + SCCameraKitLensMediaPickerProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProvider <NSObject>
+
+/// A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.
+/// @warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.
+@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> mediaApplicationDelegate;
+
+/// A delegate that will be notified when picker-related UI should be shown or hidden.
+@property (weak, nonatomic) id<SCCameraKitLensMediaPickerProviderUIDelegate> uiDelegate;
+
+/// The number of assets that have been fetched and may be displayed by the picker UI.
+@property (readonly, nonatomic, assign) NSInteger fetchedAssetCount;
+
+/// Whether or not the data provider has more assets available to fetch.
+@property (readonly, nonatomic, assign) BOOL hasMoreAssetsToFetch;
+
+/// Fetches a new batch of assets.
+/// @param batchSize How many items to fetch. A provider may return less than this if it exhausts available assets
+/// without reaching the desired batch size
+/// @param queue a dispatch queue to receive callbacks on
+/// @param completion a completion block to be called when the fetch has completed
+- (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
+                            queue:(dispatch_queue_t)queue
+                       completion:(void (^)(NSArray<id<SCCameraKitLensMediaPickerAsset>> *))completion
+    NS_SWIFT_NAME(fetchNextAssetBatch(size:queue:completion:));
+
+/// Retrieves a fetched asset at a given index.
+/// @param index the index to fetch.
+- (id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:(NSInteger)index NS_SWIFT_NAME(fetchedAsset(at:));
+
+/// Loads the full resolution backing asset of a specified asset and applies it to lenses.
+/// @param asset the asset to load and apply
+/// @param completion a completion block called when application is complete
+/// @note Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed
+/// in order for the lens to succesfully apply the media.
+- (void)loadAndApplyOriginalMediaFromAsset:(id<SCCameraKitLensMediaPickerAsset>)asset
+                                completion:(nullable void (^)(void))completion
+    NS_SWIFT_NAME(loadAndApplyOriginalMedia(from:completion:));
+
+/// Invalidates and resets internal state of the provider with a newly specified allowed media type option set.
+/// @param assetType The asset types to allow in results.
+- (void)reconfigureWithAllowedTypes:(SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
+
+@end
+ +
+
+

Swift

+
protocol LensMediaPickerProvider : NSObjectProtocol
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset. +@warning: DO NOT set this delegate manually. CameraKit will set this property appropriately.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id< SCCameraKitLensMediaPickerProviderMediaApplicationDelegate> _Nullable mediaApplicationDelegate;
    + +
    +
    +

    Swift

    +
    weak var mediaApplicationDelegate: LensMediaPickerProviderMediaApplicationDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + uiDelegate + +
    +
    +
    +
    +
    +
    +

    A delegate that will be notified when picker-related UI should be shown or hidden.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitLensMediaPickerProviderUIDelegate> _Nullable uiDelegate;
    + +
    +
    +

    Swift

    +
    weak var uiDelegate: LensMediaPickerProviderUIDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + fetchedAssetCount + +
    +
    +
    +
    +
    +
    +

    The number of assets that have been fetched and may be displayed by the picker UI.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) NSInteger fetchedAssetCount;
    + +
    +
    +

    Swift

    +
    var fetchedAssetCount: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hasMoreAssetsToFetch + +
    +
    +
    +
    +
    +
    +

    Whether or not the data provider has more assets available to fetch.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL hasMoreAssetsToFetch;
    + +
    +
    +

    Swift

    +
    var hasMoreAssetsToFetch: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Fetches a new batch of assets.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)fetchNextAssetBatchOfSize:(NSInteger)batchSize
    +                            queue:(nonnull dispatch_queue_t)queue
    +                       completion:
    +                           (nonnull void (^)(
    +                               NSArray<id<SCCameraKitLensMediaPickerAsset>>
    +                                   *_Nonnull))completion;
    + +
    +
    +

    Swift

    +
    func fetchNextAssetBatch(size batchSize: Int, queue: dispatch_queue_t) async -> [LensMediaPickerProviderAsset]
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + batchSize + + +
    +

    How many items to fetch. A provider may return less than this if it exhausts available assets +without reaching the desired batch size

    +
    +
    + + queue + + +
    +

    a dispatch queue to receive callbacks on

    +
    +
    + + completion + + +
    +

    a completion block to be called when the fetch has completed

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -fetchedAssetAtIndex: + +
    +
    +
    +
    +
    +
    +

    Retrieves a fetched asset at a given index.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensMediaPickerAsset>)fetchedAssetAtIndex:
    +    (NSInteger)index;
    + +
    +
    +

    Swift

    +
    func fetchedAsset(at index: Int) -> LensMediaPickerProviderAsset
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + index + + +
    +

    the index to fetch.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Loads the full resolution backing asset of a specified asset and applies it to lenses.

    +
    +

    Note

    + Implementors of this method MUST call the appropriate method on the uiDelegate when the loading is completed +in order for the lens to succesfully apply the media. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)loadAndApplyOriginalMediaFromAsset:
    +            (nonnull id<SCCameraKitLensMediaPickerAsset>)asset
    +                                completion:(nullable void (^)(void))completion;
    + +
    +
    +

    Swift

    +
    func loadAndApplyOriginalMedia(from asset: LensMediaPickerProviderAsset) async
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + asset + + +
    +

    the asset to load and apply

    +
    +
    + + completion + + +
    +

    a completion block called when application is complete

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Invalidates and resets internal state of the provider with a newly specified allowed media type option set.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)reconfigureWithAllowedTypes:
    +    (SCCameraKitLensMediaPickerProviderAllowedMediaType)assetType;
    + +
    +
    +

    Swift

    +
    func reconfigure(withAllowedTypes assetType: SCCameraKitLensMediaPickerProviderAllowedMediaType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + assetType + + +
    +

    The asset types to allow in results.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html new file mode 100644 index 00000000..0c0fe6d1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html @@ -0,0 +1,526 @@ + + + + SCCameraKitLensMediaPickerProviderMediaApplicationDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderMediaApplicationDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProviderMediaApplicationDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderMediaApplicationDelegate : NSObjectProtocol
+ +
+
+

Delegate responsible for applying media to a lens. This should not be implemented directly.

+
+

Note

+ If you create a custom provider, you’ll need to call the methods here from your provider. See notes on +provider.uiDelegate for more details. + +
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies lenses that the media picker provider has loaded the full resolution version of an asset and is ready for +it to be applied.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProvider:
    +            (nonnull id<SCCameraKitLensMediaPickerProvider>)provider
    +    requestedApplicationOfOriginalAssets:
    +        (nonnull id<SCCameraKitLensMediaPickerAsset>)asset
    +                                     url:(nonnull NSURL *)url
    +                                metadata:
    +                                    (SCCameraKitLensMediaPickerAssetMetadata)
    +                                        metadata;
    + +
    +
    +

    Swift

    +
    func mediaPickerProvider(_ provider: LensMediaPickerProvider, requestedApplicationOfOriginalAssets asset: LensMediaPickerProviderAsset, url: URL, metadata: SCCameraKitLensMediaPickerAssetMetadata)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + provider + + +
    +

    the provider sending the reequest

    +
    +
    + + asset + + +
    +

    the asset provided by the provider

    +
    +
    + + url + + +
    +

    the URL to a full-resolution image or video for lenses to apply

    +
    +
    + + metadata + + +
    +

    any metadata associated with the asset

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html new file mode 100644 index 00000000..6dfdf9a1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html @@ -0,0 +1,529 @@ + + + + SCCameraKitLensMediaPickerProviderUIDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerProviderUIDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitLensMediaPickerProviderUIDelegate <NSObject>
+ +
+
+

Swift

+
protocol LensMediaPickerProviderUIDelegate : NSObjectProtocol
+ +
+
+

Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Requests media picker UI be displayed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProviderRequestedUIPresentation:
    +    (nonnull id<SCCameraKitLensMediaPickerProvider>)provider;
    + +
    +
    +

    Swift

    +
    func mediaPickerProviderRequestedUIPresentation(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider sending the request

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Requests media picker UI be dismissed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)mediaPickerProviderRequestedUIDismissal:
    +    (nonnull id<SCCameraKitLensMediaPickerProvider>)provider;
    + +
    +
    +

    Swift

    +
    func mediaPickerProviderRequestedUIDismissal(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider sending the request

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcher.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcher.html new file mode 100644 index 00000000..2d199d36 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcher.html @@ -0,0 +1,622 @@ + + + + SCCameraKitLensPrefetcher Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcher

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcher <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcher : NSObjectProtocol
+ +
+
+

Describes the interface used to prefetch lens content

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Queues up a new fetch task for each of the lenses in order to prefetch their content. +A successful callback indiciates that all the content for the list of lenses is ready to be used/applied in lens +processor

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensPrefetcherTask>)
    +    prefetchLenses:(nonnull NSArray<id<SCCameraKitLens>> *)lenses
    +        completion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func prefetch(lenses: [SCCameraKitLens], completion: ((Bool) -> Void)? = nil) -> LensPrefetcherTask
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lenses + + +
    +

    lenses to prefetch content for

    +
    +
    + + completion + + +
    +

    callback on completion with success or failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add observer to observe changes in lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addStatusObserver:
    +            (nonnull id<SCCameraKitLensPrefetcherObserver>)observer
    +                  forLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func addStatusObserver(_ observer: LensPrefetcherObserver, lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer instance which will receive updates

    +
    +
    + + lens + + +
    +

    lens to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove observer to stop observing changes in lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeStatusObserver:
    +            (nonnull id<SCCameraKitLensPrefetcherObserver>)observer
    +                     forLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func removeStatusObserver(_ observer: LensPrefetcherObserver, lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer instance which will stop receiving updates

    +
    +
    + + lens + + +
    +

    lens to stop observing

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherObserver.html new file mode 100644 index 00000000..4248c4c6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherObserver.html @@ -0,0 +1,502 @@ + + + + SCCameraKitLensPrefetcherObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcherObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcherObserver <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcherObserver : NSObjectProtocol
+ +
+
+

Describes an interface used to observe changes in lens fetch status

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notification when fetcher updates lens fetch status

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)prefetcher:(nonnull id<SCCameraKitLensPrefetcher>)prefetcher
    +     didUpdateLens:(nonnull id<SCCameraKitLens>)lens
    +            status:(SCCameraKitLensFetchStatus)status;
    + +
    +
    +

    Swift

    +
    func prefetcher(_ prefetcher: LensPrefetcher, didUpdate lens: SCCameraKitLens, status: LensFetchStatus)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + prefetcher + + +
    +

    LensPrefetcher instance that updated lens fetch status

    +
    +
    + + lens + + +
    +

    lens whose fetch status was updated

    +
    +
    + + status + + +
    +

    new fetch status for lens

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherTask.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherTask.html new file mode 100644 index 00000000..37e7fedf --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPrefetcherTask.html @@ -0,0 +1,457 @@ + + + + SCCameraKitLensPrefetcherTask Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPrefetcherTask

+
+
+

Objective-C

+
@protocol SCCameraKitLensPrefetcherTask <NSObject>
+ +
+
+

Swift

+
protocol LensPrefetcherTask : NSObjectProtocol
+ +
+
+

Describes the interface used to cancel an ongoing prefetch task

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -cancel + +
    +
    +
    +
    +
    +
    +

    Cancel prefetch task if it’s ongoing

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancel;
    + +
    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPreview.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPreview.html new file mode 100644 index 00000000..feafca42 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensPreview.html @@ -0,0 +1,457 @@ + + + + SCCameraKitLensPreview Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensPreview

+
+
+

Objective-C

+
@protocol SCCameraKitLensPreview <NSObject>
+ +
+
+

Swift

+
protocol LensPreview : NSObjectProtocol
+ +
+
+

Describes an interface that contains lens preview data

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    URL for image preview

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *imageUrl;
    + +
    +
    +

    Swift

    +
    var imageUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessor.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessor.html new file mode 100644 index 00000000..95bb659a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessor.html @@ -0,0 +1,977 @@ + + + + SCCameraKitLensProcessor Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensProcessor

+
+
+

Objective-C

+
@protocol SCCameraKitLensProcessor <NSObject>
+ +
+
+

Swift

+
protocol LensProcessor : NSObjectProtocol
+ +
+
+

The lens processor handles transforming camera frames and adding effects to them.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + hintDelegate + +
    +
    +
    +
    +
    +
    +

    Lens hint delegate to show/hide hints for applied lenses

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak) id<SCCameraKitLensHintDelegate> _Nullable hintDelegate;
    + +
    +
    +

    Swift

    +
    weak var hintDelegate: SCCameraKitLensHintDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + audioMuted + +
    +
    +
    +
    +
    +
    +

    Specifies whether lenses will have their audio muted. NO by default. +@note: Does NOT mute the device microphone, only prevents lenses from producing audio output.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) BOOL audioMuted;
    + +
    +
    +

    Swift

    +
    var audioMuted: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Applies a specified lens.

    +
    +

    Note

    + Launch data for a specific lens gets persisted automatically so passing nil will reuse the launch data passed +to the lens from the previous time applied. + +
    +

    Note

    + To reset launch data passed to the lens from the previous time applied pass in EmptyLensLaunchData instance. + +
    +

    Warning

    + If the lens provided is NOT provided by the repository, and simply conforms to the protocol, a runtime +error will occur. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)applyLens:(nonnull id<SCCameraKitLens>)lens
    +       launchData:(nullable id<SCCameraKitLensLaunchData>)launchData
    +       completion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func apply(lens: SCCameraKitLens, launchData: SCCameraKitLensLaunchData?) async -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + lens + + +
    +

    the lens to apply. This should be a lens provided by the repository.

    +
    +
    + + launchData + + +
    +

    launch data to pass to lens.

    +
    +
    + + completion + + +
    +

    a completion handler called once the operation finishes.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -clearWithCompletion: + +
    +
    +
    +
    +
    +
    +

    Removes any applied lenses.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)clearWithCompletion:(nullable void (^)(BOOL))completion;
    + +
    +
    +

    Swift

    +
    func clear() async -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    a completion handler called once the operation finishes.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures touch handling for a given view.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)configureTouchHandlingInView:(nonnull UIView *)view
    +           gestureRecognizerDelegate:(nullable id<UIGestureRecognizerDelegate>)
    +                                         gestureRecognizerDelegate;
    + +
    +
    +

    Swift

    +
    func configureTouchHandling(in view: UIView, gestureRecognizerDelegate: UIGestureRecognizerDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    the view to configure.

    +
    +
    + + gestureRecognizerDelegate + + +
    +

    an optional gesture recognizer delegate. +@note: this method modifies the UIView so it must be called on the main thread

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Clears all touch handling for a given view

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeTouchHandlingInView:(nonnull UIView *)view;
    + +
    +
    +

    Swift

    +
    func removeTouchHandling(in view: UIView)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + view + + +
    +

    the view to configure +@note: this method modifies the UIView so it must be called on the main thread

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Mutes or unmutes audio. +@note: Does NOT mute the device microphone, only prevents lenses from producing audio output. +@note: Muting/unmuting is async. The audioMuted property may not immediately reflect your change, but will once +completion is called.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)setAudioMuted:(BOOL)audioMuted
    +           completion:(nullable void (^)(void))completion;
    + +
    +
    +

    Swift

    +
    func setAudioMuted(_ audioMuted: Bool) async
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + audioMuted + + +
    +

    whether audio should be muted or not.

    +
    +
    + + completion + + +
    +

    an optional completion block to be called when the mute/unmute has taken effect.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -processImage: + +
    +
    +
    +
    +
    +
    +

    Process image with lens effect using current camera session configuration

    +
    +

    Note

    + because this uses current session configuration this should mainly be used to process captured photos + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable UIImage *)processImage:(nonnull UIImage *)image;
    + +
    +
    +

    Swift

    +
    func processImage(_ image: UIImage) -> UIImage?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + image + + +
    +

    image to process with current lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -addObserver: + +
    +
    +
    +
    +
    +
    +

    Adds observer to receive notifications of changes to lens processor state. +Returns if observer got successfully added

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)addObserver:(nonnull id<SCCameraKitLensProcessorObserver>)observer;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensProcessorObserver) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to receive callbacks.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -removeObserver: + +
    +
    +
    +
    +
    +
    +

    Removes observer from receiving notifications of changes to lens availability.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:(nonnull id<SCCameraKitLensProcessorObserver>)observer;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensProcessorObserver)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + observer + + +
    +

    the observer who wishes to stop receiving callbacks.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessorObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessorObserver.html new file mode 100644 index 00000000..69030c01 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensProcessorObserver.html @@ -0,0 +1,604 @@ + + + + SCCameraKitLensProcessorObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensProcessorObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensProcessorObserver <NSObject>
+ +
+
+

Swift

+
protocol ProcessorObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to lens processor state

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that the lens processor did apply lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processor:(nonnull id<SCCameraKitLensProcessor>)processor
    +     didApplyLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func processor(_ processor: SCCameraKitLensProcessor, didApplyLens lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    + + lens + + +
    +

    lens applied instance

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -processorDidIdle: + +
    +
    +
    +
    +
    +
    +

    Notifies that the lens processor did clear any active lens and is now in an “idle” state

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processorDidIdle:(nonnull id<SCCameraKitLensProcessor>)processor;
    + +
    +
    +

    Swift

    +
    func processorDidIdle(_ processor: SCCameraKitLensProcessor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the listener that the first frame with the lens applied is ready

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)processor:(nonnull id<SCCameraKitLensProcessor>)processor
    +    firstFrameDidBecomeReadyForLens:(nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    optional func processor(_ processor: SCCameraKitLensProcessor, firstFrameDidBecomeReadyFor lens: SCCameraKitLens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + processor + + +
    +

    lens processor instance

    +
    +
    + + lens + + +
    +

    current lens applied whose frame is ready for

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiRequest.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiRequest.html new file mode 100644 index 00000000..0484e19a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiRequest.html @@ -0,0 +1,585 @@ + + + + SCCameraKitLensRemoteApiRequest Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiRequest

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiRequest <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiRequest : NSObjectProtocol
+ +
+
+

Describes the remote api service request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + requestId + +
    +
    +
    +
    +
    +
    +

    Unique id of the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull requestId;
    + +
    +
    +

    Swift

    +
    var requestId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + apiSpecId + +
    +
    +
    +
    +
    +
    +

    Unique id of the remote API service specification.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull apiSpecId;
    + +
    +
    +

    Swift

    +
    var apiSpecId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + endpointId + +
    +
    +
    +
    +
    +
    +

    Unique id of the remote API service endpoint requested by this request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSString *_Nonnull endpointId;
    + +
    +
    +

    Swift

    +
    var endpointId: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + parameters + +
    +
    +
    +
    +
    +
    +

    A map of named parameters associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull parameters;
    + +
    +
    +

    Swift

    +
    var parameters: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    +

    Additional request payload as bytes.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSData *_Nonnull body;
    + +
    +
    +

    Swift

    +
    var body: Data { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiResponse.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiResponse.html new file mode 100644 index 00000000..67d1fa81 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiResponse.html @@ -0,0 +1,553 @@ + + + + SCCameraKitLensRemoteApiResponse Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiResponse

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiResponse <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiResponseProtocol : NSObjectProtocol
+ +
+
+

Describes the remote api service response to a request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + request + +
    +
    +
    +
    +
    +
    +

    Remote api service request sent by a lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensRemoteApiRequest> _Nonnull request;
    + +
    +
    +

    Swift

    +
    var request: LensRemoteApiRequest { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + status + +
    +
    +
    +
    +
    +
    +

    Status of the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensRemoteApiResponseStatus status;
    + +
    +
    +

    Swift

    +
    var status: SCCameraKitLensRemoteApiResponseStatus { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metadata + +
    +
    +
    +
    +
    +
    +

    A map of named metadata associated with the response.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSDictionary<NSString *, NSString *> *_Nonnull metadata;
    + +
    +
    +

    Swift

    +
    var metadata: [String : String] { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    +

    Additional response payload as bytes.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSData *body;
    + +
    +
    +

    Swift

    +
    var body: Data? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiService.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiService.html new file mode 100644 index 00000000..82ad6ef9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiService.html @@ -0,0 +1,493 @@ + + + + SCCameraKitLensRemoteApiService Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiService

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiService <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiService : NSObjectProtocol
+ +
+
+

Describes a remote api service used to process requests sent by a lens.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Process the remote api request sent by a lens. Returns a call associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensRemoteApiServiceCall>)
    +     processRequest:(nonnull id<SCCameraKitLensRemoteApiRequest>)request
    +    responseHandler:
    +        (nonnull void (^)(SCCameraKitLensRemoteApiServiceCallStatus,
    +                          id<SCCameraKitLensRemoteApiResponse> _Nonnull))
    +            responseHandler;
    + +
    +
    +

    Swift

    +
    func processRequest(_ request: LensRemoteApiRequest, responseHandler: @escaping (LensRemoteApiServiceCallStatus, LensRemoteApiResponseProtocol) -> Void) -> LensRemoteApiServiceCall
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + request + + +
    +

    The remote api request sent by a lens.

    +
    +
    + + responseHandler + + +
    +

    Callback to send responses back to the lens who sent the remote api request.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceCall.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceCall.html new file mode 100644 index 00000000..626a67b4 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceCall.html @@ -0,0 +1,490 @@ + + + + SCCameraKitLensRemoteApiServiceCall Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceCall

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiServiceCall <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiServiceCall : NSObjectProtocol
+ +
+
+

Describes the call that is sent in response to a remote api request sent by a lens.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + status + +
    +
    +
    +
    +
    +
    +

    The status of the call associated with the request.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) SCCameraKitLensRemoteApiServiceCallStatus status;
    + +
    +
    +

    Swift

    +
    var status: LensRemoteApiServiceCallStatus { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + -cancelRequest + +
    +
    +
    +
    +
    +
    +

    Cancel the request call. This is usually sent if the lens no longer needs a response to the remote api request it +sent or if the lens is no longer active all active requests/calls should be cancelled.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cancelRequest;
    + +
    +
    +

    Swift

    +
    func cancelRequest()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceProvider.html new file mode 100644 index 00000000..3c714fc6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRemoteApiServiceProvider.html @@ -0,0 +1,510 @@ + + + + SCCameraKitLensRemoteApiServiceProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRemoteApiServiceProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLensRemoteApiServiceProvider <NSObject>
+ +
+
+

Swift

+
protocol LensRemoteApiServiceProvider : NSObjectProtocol
+ +
+
+

Describes an interface to provide remote api services for specific lenses and api spec identifiers.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + supportedApiSpecIds + +
    +
    +
    +
    +
    +
    +

    The set of api spec identifiers that this provider supports.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly) NSSet<NSString *> *_Nonnull supportedApiSpecIds;
    + +
    +
    +

    Swift

    +
    var supportedApiSpecIds: Set<String> { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Returns the remote api service used for processing requests sent by the lens. +Lifecycle of the remote api service will be tied to the lifecycle of the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull id<SCCameraKitLensRemoteApiService>)remoteApiServiceForLens:
    +    (nonnull id<SCCameraKitLens>)lens;
    + +
    +
    +

    Swift

    +
    func remoteApiService(for lens: SCCameraKitLens) -> LensRemoteApiService
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    The active lens whose requests the remote api service will be processing.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepository.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepository.html new file mode 100644 index 00000000..f0de00b9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepository.html @@ -0,0 +1,863 @@ + + + + SCCameraKitLensRepository Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepository

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepository <NSObject>
+ +
+
+

Swift

+
protocol LensRepository : NSObjectProtocol
+ +
+
+

Lens Repository for listing lenses, getting lenses, etc.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Add an observer to receive updates to a lens group

    +
    +

    Note

    + you should expect to receive at least one call to the observer after you add it (either success with list of +lenses or failure with error) + +
    +

    Note

    + after you add an observer for a lens group you will receive updates for all lenses in that group (ie. you do +not have to add an observer for specific lenses in the group) + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addObserver:(nonnull id<SCCameraKitLensRepositoryGroupObserver>)observer
    +         forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensRepositoryGroupObserver, groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer to receive updates

    +
    +
    + + groupID + + +
    +

    id of lens group to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove an observer from receiving updates for a lens group

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +            (nonnull id<SCCameraKitLensRepositoryGroupObserver>)observer
    +            forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensRepositoryGroupObserver, groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + observer + + +
    +

    observer to remove from receiving updates

    +
    +
    + + groupID + + +
    +

    id of lens group to stop observing

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Add an observer to receive updates for a specific lens in a group

    +
    +

    Note

    + you should expect to receive at least one call to the observer after you add it (either success with lens obj +or failure with error) + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)addObserver:
    +            (nonnull id<SCCameraKitLensRepositorySpecificObserver>)observer
    +    forSpecificLensID:(nonnull NSString *)lensID
    +            inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func addObserver(_ observer: SCCameraKitLensRepositorySpecificObserver, specificLensID lensID: String, inGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + observer + + +
    +

    observer to receive updates

    +
    +
    + + lensID + + +
    +

    id of lens to receive updates for

    +
    +
    + + groupID + + +
    +

    id of group which lens is in that you want to receive updates for

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Remove an observer from receiving updates for a specific lens in a group

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)removeObserver:
    +            (nonnull id<SCCameraKitLensRepositorySpecificObserver>)observer
    +     forSpecificLensID:(nonnull NSString *)lensID
    +             inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func removeObserver(_ observer: SCCameraKitLensRepositorySpecificObserver, specificLensID lensID: String, inGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + observer + + +
    +

    observer to remove from receiving updates

    +
    +
    + + lensID + + +
    +

    id of lens to stop observing

    +
    +
    + + groupID + + +
    +

    if of group which lens is in that you want to stop observing

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -lensesForGroupID: + +
    +
    +
    +
    +
    +
    +

    Any available lenses for the group ID specified.

    +
    +

    Note

    + this method will not return any lenses until the user has expressed interest in a group by calling +beginObservingGroupID: + +
    +

    Note

    + for updates on when the return value of this method changes, add a observer in addObserver: + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nonnull NSArray<id<SCCameraKitLens>> *)lensesForGroupID:
    +    (nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func lenses(groupID: String) -> [SCCameraKitLens]
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + groupID + + +
    +

    the group ID containing the desired lenses.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Specific lens in group ID specified

    +
    +

    Note

    + this method will not return any lenses until the user has expressed interest in a group by calling +beginObservingGroupID: or beginObservingLens:inGroup: + +
    +

    Note

    + for updates on when the return value of this method changes, add a observer in addObserver: + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (nullable id<SCCameraKitLens>)lensWithID:(nonnull NSString *)lensID
    +                                 inGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func lens(id lensID: String, groupID: String) -> SCCameraKitLens?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lensID + + +
    +

    id of lens

    +
    +
    + + groupID + + +
    +

    id of group lens is in

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositoryGroupObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositoryGroupObserver.html new file mode 100644 index 00000000..4f6fe7ae --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositoryGroupObserver.html @@ -0,0 +1,584 @@ + + + + SCCameraKitLensRepositoryGroupObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepositoryGroupObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepositoryGroupObserver <NSObject>
+ +
+
+

Swift

+
protocol LensRepositoryGroupObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to lens groups the repository has available.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed group’s lenses have changed.

    +
    +

    Note

    + observers may receive notifications for lens groups they do not care about. Check groupID. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didUpdateLenses:(nonnull NSArray<id<SCCameraKitLens>> *)lenses
    +         forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didUpdateLenses lenses: [SCCameraKitLens], forGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lenses + + +
    +

    the updated lenses in the group.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed group’s lenses failed to be fetched.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didFailToUpdateLensesForGroupID:(nonnull NSString *)groupID
    +                              error:(nullable NSError *)error;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didFailToUpdateLensesForGroupID groupID: String, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    + + error + + +
    +

    a detailed error message of what went wrong, if available.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositorySpecificObserver.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositorySpecificObserver.html new file mode 100644 index 00000000..76a42929 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensRepositorySpecificObserver.html @@ -0,0 +1,592 @@ + + + + SCCameraKitLensRepositorySpecificObserver Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensRepositorySpecificObserver

+
+
+

Objective-C

+
@protocol SCCameraKitLensRepositorySpecificObserver <NSObject>
+ +
+
+

Swift

+
protocol LensRepositorySpecificObserver : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of changes to specific lenses in groups the repository has available.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed specific lens in a group has changed.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +     didUpdateLens:(nonnull id<SCCameraKitLens>)lens
    +        forGroupID:(nonnull NSString *)groupID;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didUpdate lens: SCCameraKitLens, forGroupID groupID: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lens + + +
    +

    the newly updated lens object.

    +
    +
    + + groupID + + +
    +

    the updated group ID.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that an observed specific lens in a group has failed to be fetched.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)repository:(nonnull id<SCCameraKitLensRepository>)repository
    +    didFailToUpdateLensID:(nonnull NSString *)lensID
    +               forGroupID:(nonnull NSString *)groupID
    +                    error:(nullable NSError *)error;
    + +
    +
    +

    Swift

    +
    func repository(_ repository: SCCameraKitLensRepository, didFailToUpdateLensID lensID: String, forGroupID groupID: String, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + repository + + +
    +

    the CameraKit lens repository responsible for the update.

    +
    +
    + + lensID + + +
    +

    the lens ID that failed to update.

    +
    +
    + + groupID + + +
    +

    the group ID that failed to update.

    +
    +
    + + error + + +
    +

    a detailed error message of what went wrong, if available.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensSnapcodes.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensSnapcodes.html new file mode 100644 index 00000000..41ac959b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensSnapcodes.html @@ -0,0 +1,489 @@ + + + + SCCameraKitLensSnapcodes Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensSnapcodes

+
+
+

Objective-C

+
@protocol SCCameraKitLensSnapcodes <NSObject>
+ +
+
+

Swift

+
protocol LensSnapcodes : NSObjectProtocol
+ +
+
+

Describes an interface that contains lens snapcodes data

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    Image URL for Snapcode

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *imageUrl;
    + +
    +
    +

    Swift

    +
    var imageUrl: URL? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + deeplink + +
    +
    +
    +
    +
    +
    +

    Deeplink URL for Snapcode

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, readonly, nullable) NSURL *deeplink;
    + +
    +
    +

    Swift

    +
    var deeplink: URL? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensesComponent.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensesComponent.html new file mode 100644 index 00000000..b48b6735 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLensesComponent.html @@ -0,0 +1,553 @@ + + + + SCCameraKitLensesComponent Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensesComponent

+
+
+

Objective-C

+
@protocol SCCameraKitLensesComponent <NSObject>
+ +
+
+

Swift

+
protocol LensesComponent : NSObjectProtocol
+ +
+
+

The lenses component wraps several lens-related classes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + repository + +
    +
    +
    +
    +
    +
    +

    The repository for lenses. Lists available lenses, etc. in the lenses folder

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensRepository> _Nonnull repository;
    + +
    +
    +

    Swift

    +
    var repository: LensRepository { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + processor + +
    +
    +
    +
    +
    +
    +

    Handles the actual effect application. Will be null if CameraKit is not running with a valid input.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitLensProcessor> processor;
    + +
    +
    +

    Swift

    +
    var processor: SCCameraKitLensProcessor? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + prefetcher + +
    +
    +
    +
    +
    +
    +

    Prefetcher to prefetch lens content to reduce time when applying lens

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitLensPrefetcher> _Nonnull prefetcher;
    + +
    +
    +

    Swift

    +
    var prefetcher: SCCameraKitLensPrefetcher { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preferences + +
    +
    +
    +
    +
    +
    +

    Property to deal with preferences (ie. clear stored preferences)

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) id<SCCameraKitPreferences> _Nonnull preferences;
    + +
    +
    +

    Swift

    +
    var preferences: SCCameraKitPreferences { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationDataProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationDataProvider.html new file mode 100644 index 00000000..0c63bdd2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationDataProvider.html @@ -0,0 +1,547 @@ + + + + SCCameraKitLocationDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLocationDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitLocationDataProvider <NSObject>
+ +
+
+

Swift

+
protocol LocationDataProvider : NSObjectProtocol
+ +
+
+

Protocol to provide device motion data and handle starting/updating/stopping

+ +
+
+ +
+
+
+
    +
  • +
    + + + + location + +
    +
    +
    +
    +
    +
    +

    Current location data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) CLLocation *location;
    + +
    +
    +

    Swift

    +
    var location: CLLocation? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Start updating location data with params

    +
    +

    Warning

    + If the user has not been prompted for location permission, it is the class’s responsibility +to prompt them. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)startUpdatingWithParameters:
    +    (nonnull id<SCCameraKitLocationParameters>)parameters;
    + +
    +
    +

    Swift

    +
    func startUpdating(with parameters: LocationParameters)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + parameters + + +
    +

    location params

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + -stopUpdating + +
    +
    +
    +
    +
    +
    +

    Stop updating location

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)stopUpdating;
    + +
    +
    +

    Swift

    +
    func stopUpdating()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationParameters.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationParameters.html new file mode 100644 index 00000000..9c9d1eea --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitLocationParameters.html @@ -0,0 +1,521 @@ + + + + SCCameraKitLocationParameters Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLocationParameters

+
+
+

Objective-C

+
@protocol SCCameraKitLocationParameters <NSObject>
+ +
+
+

Swift

+
protocol LocationParameters : NSObjectProtocol
+ +
+
+

Params for device motion interface

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Minimum interval between consecutive location updates

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) int32_t updateIntervalMilliseconds;
    + +
    +
    +

    Swift

    +
    var updateIntervalMilliseconds: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + distanceFilterMeters + +
    +
    +
    +
    +
    +
    +

    Minimum distance between consecutive location updates

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CLLocationDistance distanceFilterMeters;
    + +
    +
    +

    Swift

    +
    var distanceFilterMeters: CLLocationDistance { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + desiredAccuracy + +
    +
    +
    +
    +
    +
    +

    Desired accuracy

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CLLocationAccuracy desiredAccuracy;
    + +
    +
    +

    Swift

    +
    var desiredAccuracy: CLLocationAccuracy { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitOutput.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitOutput.html new file mode 100644 index 00000000..38cbff6d --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitOutput.html @@ -0,0 +1,648 @@ + + + + SCCameraKitOutput Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitOutput

+
+
+

Objective-C

+
@protocol SCCameraKitOutput <NSObject>
+ +
+
+

Swift

+
protocol Output : NSObjectProtocol
+ +
+
+

Allows conformers to be notified of new frame data from CameraKit.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new frame is available.

    +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid textures that may crash when drawing the frame or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputTexture:(nonnull id<SCCameraKitTexture>)texture;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputTexture texture: SCCameraKitTexture)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the frame.

    +
    +
    + + texture + + +
    +

    a texture describing processed input. SCCameraKitPreviewView is able to render this, and future +classes will be provided for additional functionality (eg, video recording).

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new video frame is available.

    +
    +

    Note

    + This method WILL NOT BE CALLED unless you have indicated you need sample buffer output (for situations like +recording). This incurs performance overhead, so do not use it unless you require it. + +
    +

    See

    + SCCameraKitOutputRequiringPixelBuffer + +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid/released video buffers or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputVideoSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputVideoSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the frame.

    +
    +
    + + sampleBuffer + + +
    +

    a CMSampleBuffer describing the video output.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies that a new audio buffer is available

    +
    +

    Warning

    + DO NOT stop or start CameraKit in this output method. This method doesn’t guarantee that CamearKit has +finished processing the current frame, so stopping or starting in this method is undefined behavior, which can lead +to other outputs getting invalid/released audio buffers or deadlocking the current thread. + +
    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)cameraKit:(nonnull id<SCCameraKitProtocol>)cameraKit
    +    didOutputAudioSampleBuffer:(nonnull CMSampleBufferRef)sampleBuffer;
    + +
    +
    +

    Swift

    +
    func cameraKit(_ cameraKit: SCCameraKitProtocol, didOutputAudioSampleBuffer sampleBuffer: CMSampleBuffer)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the CameraKit responsible for the audio buffer

    +
    +
    + + sampleBuffer + + +
    +

    a CMSampleBuffer describing the audio output

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPortraitAdjustmentController.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPortraitAdjustmentController.html new file mode 100644 index 00000000..aa6135f0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPortraitAdjustmentController.html @@ -0,0 +1,459 @@ + + + + SCCameraKitPortraitAdjustmentController Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPortraitAdjustmentController

+
+
+

Objective-C

+
@protocol
+    SCCameraKitPortraitAdjustmentController <SCCameraKitAdjustmentController>
+ +
+
+

Swift

+
protocol PortraitAdjustmentController : AdjustmentController
+ +
+
+

A controller to control the portrait adjustment.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + blur + +
    +
    +
    +
    +
    +
    +

    How blurred the background is. Ranges from 0.0 to 1.0. A value of 0.0 is “not blurred at all” while 1.0 is +“extremely blurred.”

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGFloat blur;
    + +
    +
    +

    Swift

    +
    var blur: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPreferences.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPreferences.html new file mode 100644 index 00000000..c6311475 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitPreferences.html @@ -0,0 +1,458 @@ + + + + SCCameraKitPreferences Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitPreferences

+
+
+

Objective-C

+
@protocol SCCameraKitPreferences <NSObject>
+ +
+
+

Swift

+
protocol SCCameraKitPreferences : NSObjectProtocol
+ +
+
+

Protocol to interface with preferences stored by CameraKit +This interface is intentionally opaque and should only be used to clear out stored preferences

+ +
+
+ +
+
+
+
    +
  • +
    + + + + -clear + +
    +
    +
    +
    +
    +
    +

    Clear all stored preferences

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)clear;
    + +
    +
    +

    Swift

    +
    func clear()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitProtocol.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitProtocol.html new file mode 100644 index 00000000..9cfb6666 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitProtocol.html @@ -0,0 +1,1204 @@ + + + + SCCameraKitProtocol Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitProtocol

+
+
+

Objective-C

+
@protocol SCCameraKitProtocol <NSObject>
+
+/// Contains lenses related objects.
+@property (strong, nonatomic, readonly) id<SCCameraKitLensesComponent> lenses;
+
+/// Contains adjustment related objects.
+@property (strong, nonatomic, readonly) id<SCCameraKitAdjustmentsComponent> adjustments;
+
+/// Begin processing input frames with front camera position and portrait video orientation
+/// @param input the input to configure.
+/// @param arInput the ARKit input to configure.
+- (void)startWithInput:(id<SCCameraKitInput>)input
+               arInput:(id<SCCameraKitARInput>)arInput NS_SWIFT_NAME(start(input:arInput:));
+
+/// Deprecated. Use
+/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:
+- (void)startWithInput:(id<SCCameraKitInput>)input
+               arInput:(id<SCCameraKitARInput>)arInput
+        cameraPosition:(AVCaptureDevicePosition)cameraPosition
+      videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+          dataProvider:(SCCameraKitDataProviderComponent *)dataProvider
+          hintDelegate:(id<SCCameraKitLensHintDelegate>)hintDelegate __attribute__((deprecated));
+
+/// Deprecated. Use
+/// -startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:
+- (void)startWithInput:(id<SCCameraKitInput>)input
+                                  arInput:(id<SCCameraKitARInput>)arInput
+                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
+                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
+                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
+    agreementsPresentationContextProvider:
+        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
+    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:))
+        __attribute__((deprecated));
+;
+
+/// Begin processing input frames.
+/// @param input the input to configure.
+/// @param arInput the ARKit input to configure.
+/// @param cameraPosition the camera position in use
+/// @param videoOrientation the orientation for the outputted video buffers
+/// @param dataProvider data provider component to pass in custom data providers (optional -- will create and handle
+/// data providers by default if nil)
+/// @param hintDelegate lens hint delegate to show/hide hints for applied lenses
+/// @param textInputContextProvider context provider for providing keyboard access to lenses
+/// @param agreementsPresentationContextProvider context provider for presenting agreements screens
+- (void)startWithInput:(id<SCCameraKitInput>)input
+                                  arInput:(id<SCCameraKitARInput>)arInput
+                           cameraPosition:(AVCaptureDevicePosition)cameraPosition
+                         videoOrientation:(AVCaptureVideoOrientation)videoOrientation
+                             dataProvider:(nullable SCCameraKitDataProviderComponent *)dataProvider
+                             hintDelegate:(nullable id<SCCameraKitLensHintDelegate>)hintDelegate
+                 textInputContextProvider:(nullable id<SCCameraKitTextInputContextProvider>)textInputContextProvider
+    agreementsPresentationContextProvider:
+        (nullable id<SCCameraKitAgreementsPresentationContextProvider>)agreementsPresentationContextProvider
+    NS_SWIFT_NAME(start(input:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:));
+
+/// End processing input frames.
+- (void)stop;
+
+/// End processing input frames.
+/// @param completion Block to be called after processing is finished and session is stopped
+- (void)stopWithCompletion:(nullable void (^)(void))completion NS_SWIFT_NAME(stop(completion:));
+
+/// Add an output. Frames will still be processed if no outputs exist.
+- (void)addOutput:(id<SCCameraKitOutput>)output NS_SWIFT_NAME(add(output:));
+
+/// Remove an output.
+- (void)removeOutput:(id<SCCameraKitOutput>)listener NS_SWIFT_NAME(remove(output:));
+
+/// The camera position in use. Setting will automatically update the input.
+@property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
+
+/// The orientation for the outputted video buffers
+@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
+
+/// The active input. May be either standard camera input or the AR input, depending on lens requirements.
+@property (nonatomic, readonly) id<SCCameraKitInput> activeInput;
+
+/// Store containing information above the acceptance state of terms of service
+@property (nonatomic, readonly) id<SCCameraKitAgreementsStore> agreementsStore;
+
+/// Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.
+/// @note CameraKit will present this when the user applies a lens if they have new agreements to accept. You can call
+/// this explicitly if you wish to present the terms before then (eg during an onboarding experience, alongside your own
+/// app's Terms of Service)
+- (void)presentAgreementsImmediately;
+
+@end
+ +
+
+

Swift

+
protocol CameraKitProtocol : NSObjectProtocol
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputContextProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputContextProvider.html new file mode 100644 index 00000000..21a98f87 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputContextProvider.html @@ -0,0 +1,491 @@ + + + + SCCameraKitTextInputContextProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitTextInputContextProvider

+
+
+

Objective-C

+
@protocol SCCameraKitTextInputContextProvider <NSObject>
+ +
+
+

Swift

+
protocol TextInputContextProvider : NSObjectProtocol
+ +
+
+

Protocol to provide keyboard input data to lenses.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + parentView + +
    +
    +
    +
    +
    +
    +

    A parent view in which to embed a text view. Unless reconfigured by providing a keyboardAccessoryProvider, this text +view will not be visible to the user.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak, readonly) UIView *_Nullable parentView;
    + +
    +
    +

    Swift

    +
    weak var parentView: UIView? { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Object which describes a user-visible input view for text input. Typically, this is a styled text view that appears +above the keyboard interface.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) id<SCCameraKitTextInputKeyboardAccessoryProvider> keyboardAccessoryProvider;
    + +
    +
    +

    Swift

    +
    var keyboardAccessoryProvider: TextInputKeyboardAccessoryProvider? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html new file mode 100644 index 00000000..cfe6b7f7 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html @@ -0,0 +1,553 @@ + + + + SCCameraKitTextInputKeyboardAccessoryProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitTextInputKeyboardAccessoryProvider

+
+
+

Objective-C

+
@protocol SCCameraKitTextInputKeyboardAccessoryProvider <NSObject>
+ +
+
+

Swift

+
protocol TextInputKeyboardAccessoryProvider : NSObjectProtocol
+ +
+
+

Protocol for representing a text input view on-screen for lenses that request it.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + accessoryView + +
    +
    +
    +
    +
    +
    +

    The view to show on top of the keyboard.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UIView *_Nonnull accessoryView;
    + +
    +
    +

    Swift

    +
    var accessoryView: UIView { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textView + +
    +
    +
    +
    +
    +
    +

    The text view associated with the input being provided.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly) UITextView *_Nonnull textView;
    + +
    +
    +

    Swift

    +
    var textView: UITextView { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + placeholderText + +
    +
    +
    +
    +
    +
    +

    Placeholder text to show in the text view before the user has input any text. May be empty.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, copy, nullable) NSString *placeholderText;
    + +
    +
    +

    Swift

    +
    var placeholderText: String? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maximumHeight + +
    +
    +
    +
    +
    +
    +

    The maximum height the accessoryView can grow to. This will be considered when setting the safe area for the lens.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly) CGFloat maximumHeight;
    + +
    +
    +

    Swift

    +
    var maximumHeight: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitToneMapAdjustmentController.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitToneMapAdjustmentController.html new file mode 100644 index 00000000..ee16d4b2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitToneMapAdjustmentController.html @@ -0,0 +1,460 @@ + + + + SCCameraKitToneMapAdjustmentController Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitToneMapAdjustmentController

+
+
+

Objective-C

+
@protocol
+    SCCameraKitToneMapAdjustmentController <SCCameraKitAdjustmentController>
+ +
+
+

Swift

+
protocol ToneMapAdjustmentController : AdjustmentController
+ +
+
+

A controller to control the tone map adjustment.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + amount + +
    +
    +
    +
    +
    +
    +

    The “amount” of adjustment applied to the tone mapping algorithm. Ranges from 0.0 to 1.0. A value of 0.5 is the +“best guess” of the tone mapping algorithm. Users may wish to adjust this amount up or down to reflect their true +skin tone.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic) CGFloat amount;
    + +
    +
    +

    Swift

    +
    var amount: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProvider.html new file mode 100644 index 00000000..9ea61a4c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProvider.html @@ -0,0 +1,489 @@ + + + + SCCameraKitUserDataProvider Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserDataProvider

+
+
+

Objective-C

+
@protocol SCCameraKitUserDataProvider <NSObject>
+ +
+
+

Swift

+
protocol UserDataProvider : NSObjectProtocol
+ +
+
+

Describes an interface that provides user data to lenses

+ +
+
+ +
+
+
+
    +
  • +
    + + + + userData + +
    +
    +
    +
    +
    +
    +

    Current user data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, strong, readonly, nullable) SCCameraKitUserData *userData;
    + +
    +
    +

    Swift

    +
    var userData: UserData? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate to receive updates on user data changes

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, weak, nullable) id<SCCameraKitUserDataProviderDelegate> delegate;
    + +
    +
    +

    Swift

    +
    weak var delegate: UserDataProviderDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProviderDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProviderDelegate.html new file mode 100644 index 00000000..cb1d73dd --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Protocols/SCCameraKitUserDataProviderDelegate.html @@ -0,0 +1,490 @@ + + + + SCCameraKitUserDataProviderDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitUserDataProviderDelegate

+
+
+

Objective-C

+
@protocol SCCameraKitUserDataProviderDelegate <NSObject>
+ +
+
+

Swift

+
protocol UserDataProviderDelegate : NSObjectProtocol
+ +
+
+

User data provider delegate to provide receivers with new user data on updates

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Update delegate receivers with new user data

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)userDataProvider:
    +            (nonnull id<SCCameraKitUserDataProvider>)userDataProvider
    +       didUpdateUserData:(nonnull SCCameraKitUserData *)userData;
    + +
    +
    +

    Swift

    +
    func userDataProvider(_ userDataProvider: UserDataProvider, didUpdate userData: UserData)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + userDataProvider + + +
    +

    current user data provider instance

    +
    +
    + + userData + + +
    +

    new user data

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs.html new file mode 100644 index 00000000..7750c712 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs.html @@ -0,0 +1,446 @@ + + + + Structures Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Structures

+

The following structures are available globally.

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 00000000..61841ac6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Structs/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,457 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Structure Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetMetadata

+
+
+

Objective-C

+
struct {}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerAssetMetadata
+ +
+
+

Metadata for a media asset

+ +
+
+ +
+
+
+
    +
  • +
    + + + + faceRect + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    CGRect faceRect
    + +
    +
    +

    Swift

    +
    var faceRect: CGRect
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions.html new file mode 100644 index 00000000..207cf1a8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions.html @@ -0,0 +1,442 @@ + + + + Type Definitions Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ + +
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 00000000..8468a513 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,454 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Type Definition Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ + +
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html new file mode 100644 index 00000000..9c791f18 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/Type Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html @@ -0,0 +1,457 @@ + + + + SCCameraKitLensMediaPickerAssetMetadata Structure Reference + + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SCCameraKitLensMediaPickerAssetMetadata

+
+
+

Objective-C

+
struct {}
+ +
+
+

Swift

+
struct SCCameraKitLensMediaPickerAssetMetadata
+ +
+
+

Metadata for a media asset

+ +
+
+ +
+
+
+
    +
  • +
    + + + + faceRect + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    CGRect faceRect
    + +
    +
    +

    Swift

    +
    var faceRect: CGRect
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/highlight.css b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 00000000..c170357c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/jazzy.css b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 00000000..c7bb9fe2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/carat.png b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 0000000000000000000000000000000000000000..29d2f7fd4955fca6bc6fb740e0373a2c358c398e GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/dash.png b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 0000000000000000000000000000000000000000..6f694c7a012b417908da3687a0a39aa182e91c74 GIT binary patch literal 1338 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 literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/index.html b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/index.html new file mode 100644 index 00000000..3dfb5be1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,501 @@ + + + + Reference + + + + + + + + + + + + + + + +
+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit iOS

+

Usage Philosophy

+ +

In general, CameraKit attaches to your existing camera workflow. You are still responsible for configuring and managing an AVCaptureSession, which CameraKit will attach onto. You may start, stop, and reconfigure your session as needed.

+

Getting Started

+

Requirements

+ +

CameraKit requires a minimum of iOS 11, and a 64 bit processor. CameraKit will compile, but not run on a Simulator (due to lack of AVCaptureSession support).

+ +

Make sure you also update SCCameraKitClientID and SCCameraKitAPIToken in your application’s Info.plist with the application ID and API token from the Snap Kit developer portal. Note that you can also pass in these values when creating a session like:

+
let sessionConfig = SessionConfig(applicationID: "application_id_here", apiToken: "api_token_here")
+let session = Session(sessionConfig: sessionConfig, lensesConfig: nil, errorHandler: nil)
+
+ +

This is useful in case you need to dynamically update your API token which may happen in the case where your API token gets revoked for some reason.

+ +

In order to test sharing to Snapchat, make sure you also add your Snap Kit client id SCSDKClientId in Info.plist

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

The Podfile should already be setup correctly to reference the camera kit sdk podpsec directory, but if you choose to move the SDK podspec directory somewhere else just be sure to add/modify this line: +pod 'SCSDKCameraKit', :path => 'CameraKit/CameraKit' +where :path points to the directory that contains the camera kit podspec.

+ +

Before opening the workspace make sure you run +pod install +and open CameraKitSample.xcworkspace

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKit directory into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKit, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Configure your AVCaptureSession Pipeline

+ +

First, create and configure an AVCaptureSession. Apple provides a full-featured reference.

+ +

For example, if you want to setup a regular capture session for the front facing camera you’d do:

+
let captureSession = AVCaptureSession()
+captureSession.beginConfiguration()
+guard let videoDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front),
+    let videoDeviceInput = try? AVCaptureDeviceInput(device: videoDevice),
+    captureSession.canAddInput(videoDeviceInput) else { return }
+captureSession.addInput(videoDeviceInput)
+captureSession.commitConfiguration()
+captureSession.startRunning()
+
+ +

(PS: don’t forget to add NSCameraUsageDescription in your Info.plist and make sure you have set up the proper permissions/authorization flows)

+

Configuring the CameraKit Pipeline

+ +

CameraKit works similarly to AVCaptureSession – it also has inputs and outputs. We’ll create a CameraKit session, and connect it to your existing AVCaptureSession.

+ +

To begin, first instantiate a Session. A Session object will be your main entry point into CameraKit. Through it, you can access components like lenses.

+
let cameraKit = Session()
+
+ +

Next, create a CameraKit input and start your CameraKit Session with it. AVSessionInput is an input that CameraKit provides that wraps up lens-specific details of AVCaptureSession configuration (such as setting the pixel format).

+
let input = AVSessionInput(session: yourAVCaptureSession)
+cameraKit.start(with: input)
+
+ +

To display the processed output of CameraKit, we provide a PreviewView that behaves similarly to AVCaptureVideoPreviewLayer. The PreviewView is a CameraKit Output – it receives processed frames and displays them. We’ll also set automaticallyConfiguresTouchHandler so that CameraKit can process touch events and users can interact with lenses. Add it to the view heirarchy like any other UIView, and connect it to the Session by calling add(output:).

+
let previewView = PreviewView()
+previewView.automaticallyConfiguresTouchHandler = true
+cameraKit.add(output: previewView)
+
+ +

At this point, if you build and run your app, you should see your camera input displaying onscreen without any lenses applied to it. We’ll discuss how to activate lenses in the next section.

+

Activating Lenses

+ +

CameraKit lenses are provided by the LensRepository class. You can access this through cameraKit.lenses.respository. Lenses are fetched asynchronously, and you may wish to hold a reference to the lenses returned from LensRepository.

+
cameraKit.lenses.repository.availableLenses { lenses, error in
+    self.lenses = lenses
+}
+
+ +

The LensProcessor is responsible for applying and clearing lenses. You can access it through cameraKit.lenses.processor.

+ +

We can now take the lens that we’ve retrieved from the repository, and apply it to the lens processor.

+
cameraKit.lenses.processor?.apply { success in
+    // If success == true, the lens is now applied
+}
+
+ +

The preview view should now be showing camera input with a lens applied.

+ +

When you are done with a lens and want to remove it from the camera input, you can call clear on the lens processor. It is not neccessary to clear a lens before applying a new one.

+
cameraKit.lenses.processor?.clear() { success in
+    // If success == true, the lens has been cleared
+}
+
+ +

The preview view should once again be showing camera input with no lenses applied.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.js b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 00000000..19844166 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.search.js new file mode 100644 index 00000000..359cdbb8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100644 index 00000000..c4c6022f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/typeahead.jquery.js b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/typeahead.jquery.js new file mode 100644 index 00000000..3a2d2ab0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/search.json b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/search.json new file mode 100644 index 00000000..01f4f286 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/Documents/search.json @@ -0,0 +1 @@ +{"Extensions/AdjustmentsProcessor.html#/s:So31SCCameraKitAdjustmentsProcessorP011SCSDKCameraB0E5apply10adjustment10ControllerQyd__qd___tKAC10AdjustmentRd__lF":{"name":"apply(adjustment:)","abstract":"

Applies a given adjustment and returns a controller which allows runtime configuration of the adjustment.

","parent_name":"AdjustmentsProcessor"},"Extensions/AdjustmentsProcessor.html":{"name":"AdjustmentsProcessor"},"Structs/SCCameraKitLensMediaPickerAssetMetadata.html#/c:@SA@SCCameraKitLensMediaPickerAssetMetadata@FI@faceRect":{"name":"faceRect","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Structs/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html#/c:@SA@SCCameraKitLensMediaPickerAssetMetadata@FI@faceRect":{"name":"faceRect","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

"},"Protocols/Adjustment.html#/s:14SCSDKCameraKit10AdjustmentP10ControllerQa":{"name":"Controller","parent_name":"Adjustment"},"Protocols/SCCameraKitUserDataProvider.html#/c:objc(pl)SCCameraKitUserDataProvider(py)userData":{"name":"userData","abstract":"

Current user data

","parent_name":"SCCameraKitUserDataProvider"},"Protocols/SCCameraKitUserDataProvider.html#/c:objc(pl)SCCameraKitUserDataProvider(py)delegate":{"name":"delegate","abstract":"

Delegate to receive updates on user data changes

","parent_name":"SCCameraKitUserDataProvider"},"Protocols/SCCameraKitUserDataProviderDelegate.html#/c:objc(pl)SCCameraKitUserDataProviderDelegate(im)userDataProvider:didUpdateUserData:":{"name":"-userDataProvider:didUpdateUserData:","abstract":"

Update delegate receivers with new user data

","parent_name":"SCCameraKitUserDataProviderDelegate"},"Protocols/SCCameraKitTextInputContextProvider.html#/c:objc(pl)SCCameraKitTextInputContextProvider(py)parentView":{"name":"parentView","abstract":"

A parent view in which to embed a text view. Unless reconfigured by providing a keyboardAccessoryProvider, this text","parent_name":"SCCameraKitTextInputContextProvider"},"Protocols/SCCameraKitTextInputContextProvider.html#/c:objc(pl)SCCameraKitTextInputContextProvider(py)keyboardAccessoryProvider":{"name":"keyboardAccessoryProvider","abstract":"

Object which describes a user-visible input view for text input. Typically, this is a styled text view that appears","parent_name":"SCCameraKitTextInputContextProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)accessoryView":{"name":"accessoryView","abstract":"

The view to show on top of the keyboard.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)textView":{"name":"textView","abstract":"

The text view associated with the input being provided.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)placeholderText":{"name":"placeholderText","abstract":"

Placeholder text to show in the text view before the user has input any text. May be empty.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)maximumHeight":{"name":"maximumHeight","abstract":"

The maximum height the accessoryView can grow to. This will be considered when setting the safe area for the lens.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitPreferences.html#/c:objc(pl)SCCameraKitPreferences(im)clear":{"name":"-clear","abstract":"

Clear all stored preferences

","parent_name":"SCCameraKitPreferences"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputTexture:":{"name":"-cameraKit:didOutputTexture:","abstract":"

Notifies that a new frame is available.

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputVideoSampleBuffer:":{"name":"-cameraKit:didOutputVideoSampleBuffer:","abstract":"

Notifies that a new video frame is available.

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputAudioSampleBuffer:":{"name":"-cameraKit:didOutputAudioSampleBuffer:","abstract":"

Notifies that a new audio buffer is available

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(py)location":{"name":"location","abstract":"

Current location data

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(im)startUpdatingWithParameters:":{"name":"-startUpdatingWithParameters:","abstract":"

Start updating location data with params

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(im)stopUpdating":{"name":"-stopUpdating","abstract":"

Stop updating location

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)updateIntervalMilliseconds":{"name":"updateIntervalMilliseconds","abstract":"

Minimum interval between consecutive location updates

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)distanceFilterMeters":{"name":"distanceFilterMeters","abstract":"

Minimum distance between consecutive location updates

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)desiredAccuracy":{"name":"desiredAccuracy","abstract":"

Desired accuracy

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)addObserver:forGroupID:":{"name":"-addObserver:forGroupID:","abstract":"

Add an observer to receive updates to a lens group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)removeObserver:forGroupID:":{"name":"-removeObserver:forGroupID:","abstract":"

Remove an observer from receiving updates for a lens group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)addObserver:forSpecificLensID:inGroupID:":{"name":"-addObserver:forSpecificLensID:inGroupID:","abstract":"

Add an observer to receive updates for a specific lens in a group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)removeObserver:forSpecificLensID:inGroupID:":{"name":"-removeObserver:forSpecificLensID:inGroupID:","abstract":"

Remove an observer from receiving updates for a specific lens in a group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)lensesForGroupID:":{"name":"-lensesForGroupID:","abstract":"

Any available lenses for the group ID specified.

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)lensWithID:inGroupID:":{"name":"-lensWithID:inGroupID:","abstract":"

Specific lens in group ID specified

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)repository":{"name":"repository","abstract":"

The repository for lenses. Lists available lenses, etc. in the lenses folder

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)processor":{"name":"processor","abstract":"

Handles the actual effect application. Will be null if CameraKit is not running with a valid input.

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)prefetcher":{"name":"prefetcher","abstract":"

Prefetcher to prefetch lens content to reduce time when applying lens

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)preferences":{"name":"preferences","abstract":"

Property to deal with preferences (ie. clear stored preferences)

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html#/c:objc(pl)SCCameraKitLensRepositorySpecificObserver(im)repository:didUpdateLens:forGroupID:":{"name":"-repository:didUpdateLens:forGroupID:","abstract":"

Notifies that an observed specific lens in a group has changed.

","parent_name":"SCCameraKitLensRepositorySpecificObserver"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html#/c:objc(pl)SCCameraKitLensRepositorySpecificObserver(im)repository:didFailToUpdateLensID:forGroupID:error:":{"name":"-repository:didFailToUpdateLensID:forGroupID:error:","abstract":"

Notifies that an observed specific lens in a group has failed to be fetched.

","parent_name":"SCCameraKitLensRepositorySpecificObserver"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html#/c:objc(pl)SCCameraKitLensRepositoryGroupObserver(im)repository:didUpdateLenses:forGroupID:":{"name":"-repository:didUpdateLenses:forGroupID:","abstract":"

Notifies that an observed group’s lenses have changed.

","parent_name":"SCCameraKitLensRepositoryGroupObserver"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html#/c:objc(pl)SCCameraKitLensRepositoryGroupObserver(im)repository:didFailToUpdateLensesForGroupID:error:":{"name":"-repository:didFailToUpdateLensesForGroupID:error:","abstract":"

Notifies that an observed group’s lenses failed to be fetched.

","parent_name":"SCCameraKitLensRepositoryGroupObserver"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceProvider(py)supportedApiSpecIds":{"name":"supportedApiSpecIds","abstract":"

The set of api spec identifiers that this provider supports.

","parent_name":"SCCameraKitLensRemoteApiServiceProvider"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceProvider(im)remoteApiServiceForLens:":{"name":"-remoteApiServiceForLens:","abstract":"

Returns the remote api service used for processing requests sent by the lens.","parent_name":"SCCameraKitLensRemoteApiServiceProvider"},"Protocols/SCCameraKitLensRemoteApiService.html#/c:objc(pl)SCCameraKitLensRemoteApiService(im)processRequest:responseHandler:":{"name":"-processRequest:responseHandler:","abstract":"

Process the remote api request sent by a lens. Returns a call associated with the request.

","parent_name":"SCCameraKitLensRemoteApiService"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceCall(py)status":{"name":"status","abstract":"

The status of the call associated with the request.

","parent_name":"SCCameraKitLensRemoteApiServiceCall"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceCall(im)cancelRequest":{"name":"-cancelRequest","abstract":"

Cancel the request call. This is usually sent if the lens no longer needs a response to the remote api request it","parent_name":"SCCameraKitLensRemoteApiServiceCall"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)request":{"name":"request","abstract":"

Remote api service request sent by a lens.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)status":{"name":"status","abstract":"

Status of the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)metadata":{"name":"metadata","abstract":"

A map of named metadata associated with the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)body":{"name":"body","abstract":"

Additional response payload as bytes.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)requestId":{"name":"requestId","abstract":"

Unique id of the request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)apiSpecId":{"name":"apiSpecId","abstract":"

Unique id of the remote API service specification.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)endpointId":{"name":"endpointId","abstract":"

Unique id of the remote API service endpoint requested by this request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)parameters":{"name":"parameters","abstract":"

A map of named parameters associated with the request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)body":{"name":"body","abstract":"

Additional request payload as bytes.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processor:didApplyLens:":{"name":"-processor:didApplyLens:","abstract":"

Notifies that the lens processor did apply lens

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processorDidIdle:":{"name":"-processorDidIdle:","abstract":"

Notifies that the lens processor did clear any active lens and is now in an “idle” state

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processor:firstFrameDidBecomeReadyForLens:":{"name":"-processor:firstFrameDidBecomeReadyForLens:","abstract":"

Notifies the listener that the first frame with the lens applied is ready

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(py)hintDelegate":{"name":"hintDelegate","abstract":"

Lens hint delegate to show/hide hints for applied lenses

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(py)audioMuted":{"name":"audioMuted","abstract":"

Specifies whether lenses will have their audio muted. NO by default.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)applyLens:launchData:completion:":{"name":"-applyLens:launchData:completion:","abstract":"

Applies a specified lens.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)clearWithCompletion:":{"name":"-clearWithCompletion:","abstract":"

Removes any applied lenses.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)configureTouchHandlingInView:gestureRecognizerDelegate:":{"name":"-configureTouchHandlingInView:gestureRecognizerDelegate:","abstract":"

Configures touch handling for a given view.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)removeTouchHandlingInView:":{"name":"-removeTouchHandlingInView:","abstract":"

Clears all touch handling for a given view

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)setAudioMuted:completion:":{"name":"-setAudioMuted:completion:","abstract":"

Mutes or unmutes audio.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)processImage:":{"name":"-processImage:","abstract":"

Process image with lens effect using current camera session configuration

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)addObserver:":{"name":"-addObserver:","abstract":"

Adds observer to receive notifications of changes to lens processor state.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)removeObserver:":{"name":"-removeObserver:","abstract":"

Removes observer from receiving notifications of changes to lens availability.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)prefetchLenses:completion:":{"name":"-prefetchLenses:completion:","abstract":"

Queues up a new fetch task for each of the lenses in order to prefetch their content.","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)addStatusObserver:forLens:":{"name":"-addStatusObserver:forLens:","abstract":"

Add observer to observe changes in lens fetch status

","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)removeStatusObserver:forLens:":{"name":"-removeStatusObserver:forLens:","abstract":"

Remove observer to stop observing changes in lens fetch status

","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcherTask.html#/c:objc(pl)SCCameraKitLensPrefetcherTask(im)cancel":{"name":"-cancel","abstract":"

Cancel prefetch task if it’s ongoing

","parent_name":"SCCameraKitLensPrefetcherTask"},"Protocols/SCCameraKitLensPrefetcherObserver.html#/c:objc(pl)SCCameraKitLensPrefetcherObserver(im)prefetcher:didUpdateLens:status:":{"name":"-prefetcher:didUpdateLens:status:","abstract":"

Notification when fetcher updates lens fetch status

","parent_name":"SCCameraKitLensPrefetcherObserver"},"Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderMediaApplicationDelegate(im)mediaPickerProvider:requestedApplicationOfOriginalAssets:url:metadata:":{"name":"-mediaPickerProvider:requestedApplicationOfOriginalAssets:url:metadata:","abstract":"

Notifies lenses that the media picker provider has loaded the full resolution version of an asset and is ready for","parent_name":"SCCameraKitLensMediaPickerProviderMediaApplicationDelegate"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderUIDelegate(im)mediaPickerProviderRequestedUIPresentation:":{"name":"-mediaPickerProviderRequestedUIPresentation:","abstract":"

Requests media picker UI be displayed.

","parent_name":"SCCameraKitLensMediaPickerProviderUIDelegate"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderUIDelegate(im)mediaPickerProviderRequestedUIDismissal:":{"name":"-mediaPickerProviderRequestedUIDismissal:","abstract":"

Requests media picker UI be dismissed.

","parent_name":"SCCameraKitLensMediaPickerProviderUIDelegate"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)identifier":{"name":"identifier","abstract":"

A unique identifier for the asset.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)type":{"name":"type","abstract":"

Whether the asset is an image or video.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)duration":{"name":"duration","abstract":"

If the asset is a video, the length of the video in seconds. Otherwise 0.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)previewImage":{"name":"previewImage","abstract":"

A thumbnail for the image or video. For images, this will be cropped to show any detected faces.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)mediaApplicationDelegate":{"name":"mediaApplicationDelegate","abstract":"

A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)uiDelegate":{"name":"uiDelegate","abstract":"

A delegate that will be notified when picker-related UI should be shown or hidden.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)fetchedAssetCount":{"name":"fetchedAssetCount","abstract":"

The number of assets that have been fetched and may be displayed by the picker UI.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)hasMoreAssetsToFetch":{"name":"hasMoreAssetsToFetch","abstract":"

Whether or not the data provider has more assets available to fetch.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)fetchNextAssetBatchOfSize:queue:completion:":{"name":"-fetchNextAssetBatchOfSize:queue:completion:","abstract":"

Fetches a new batch of assets.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)fetchedAssetAtIndex:":{"name":"-fetchedAssetAtIndex:","abstract":"

Retrieves a fetched asset at a given index.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)loadAndApplyOriginalMediaFromAsset:completion:":{"name":"-loadAndApplyOriginalMediaFromAsset:completion:","abstract":"

Loads the full resolution backing asset of a specified asset and applies it to lenses.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)reconfigureWithAllowedTypes:":{"name":"-reconfigureWithAllowedTypes:","abstract":"

Invalidates and resets internal state of the provider with a newly specified allowed media type option set.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensHintProvider.html#/c:objc(pl)SCCameraKitLensHintProvider(im)localizedHintForHintId:lens:":{"name":"-localizedHintForHintId:lens:","abstract":"

Get localized hint for hint id

","parent_name":"SCCameraKitLensHintProvider"},"Protocols/SCCameraKitLensHintDelegate.html#/c:objc(pl)SCCameraKitLensHintDelegate(im)lensProcessor:shouldDisplayHint:forLens:autohide:":{"name":"-lensProcessor:shouldDisplayHint:forLens:autohide:","abstract":"

Notifies receiver that they should show hint for current lens

","parent_name":"SCCameraKitLensHintDelegate"},"Protocols/SCCameraKitLensHintDelegate.html#/c:objc(pl)SCCameraKitLensHintDelegate(im)lensProcessor:shouldHideAllHintsForLens:":{"name":"-lensProcessor:shouldHideAllHintsForLens:","abstract":"

Notifies receiver that they should remove all hints for current lens

","parent_name":"SCCameraKitLensHintDelegate"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)identifier":{"name":"identifier","abstract":"

A unique identifier for the lens.

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)groupIdentifier":{"name":"groupIdentifier","abstract":"

A unique identifier for the group that the lens belongs to

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)name":{"name":"name","abstract":"

The name for the lens

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)iconUrl":{"name":"iconUrl","abstract":"

URL for icon image

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)preview":{"name":"preview","abstract":"

Lens preview instance

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)vendorData":{"name":"vendorData","abstract":"

Extra metadata provided from vendor

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)facingPreference":{"name":"facingPreference","abstract":"

Specifies which facing a lens is designed for.

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)snapcodes":{"name":"snapcodes","abstract":"

Lens Snapcodes instance

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLensSnapcodes.html#/c:objc(pl)SCCameraKitLensSnapcodes(py)imageUrl":{"name":"imageUrl","abstract":"

Image URL for Snapcode

","parent_name":"SCCameraKitLensSnapcodes"},"Protocols/SCCameraKitLensSnapcodes.html#/c:objc(pl)SCCameraKitLensSnapcodes(py)deeplink":{"name":"deeplink","abstract":"

Deeplink URL for Snapcode

","parent_name":"SCCameraKitLensSnapcodes"},"Protocols/SCCameraKitLensPreview.html#/c:objc(pl)SCCameraKitLensPreview(py)imageUrl":{"name":"imageUrl","abstract":"

URL for image preview

","parent_name":"SCCameraKitLensPreview"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)destination":{"name":"destination","abstract":"

The intermediate destination for frame data. See the protocol definition for more details.","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)horizontalFieldOfView":{"name":"horizontalFieldOfView","abstract":"

The horizontal field of view for the input.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)frameSize":{"name":"frameSize","abstract":"

The size for input frame

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)frameOrientation":{"name":"frameOrientation","abstract":"

The orientation of frame data for the input.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)position":{"name":"position","abstract":"

The camera position that the frames are sourced from.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)isRunning":{"name":"isRunning","abstract":"

Whether or not the session is currently running.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)startRunning":{"name":"-startRunning","abstract":"

Indiciates that the input should begin running if it is not currently. If the input is aleady running, this should","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)stopRunning":{"name":"-stopRunning","abstract":"

Indiciates that the input should MUST stop running if it currently is running. If the input is not already running,","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)setVideoOrientation:":{"name":"-setVideoOrientation:","abstract":"

Set the orientation for the outputted video buffers

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)input:receivedVideoSampleBuffer:":{"name":"-input:receivedVideoSampleBuffer:","abstract":"

Pass new video frame data into CameraKit. Call this every time your input generates new video frames.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)input:receivedAudioSampleBuffer:":{"name":"-input:receivedAudioSampleBuffer:","abstract":"

Pass new audio frame data into CameraKit. Call this every time your input generates new audio frames.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)inputChangedAttributes:":{"name":"-inputChangedAttributes:","abstract":"

Indicates that the input has changed some attribute and that CameraKit should reconfigure itself accordingly.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitErrorHandler.html#/c:objc(pl)SCCameraKitErrorHandler(im)handleError:":{"name":"-handleError:","abstract":"

Handle error thrown by CameraKit

","parent_name":"SCCameraKitErrorHandler"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(py)deviceMotion":{"name":"deviceMotion","abstract":"

Current device motion data

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(im)startUpdatingWithParameters:":{"name":"-startUpdatingWithParameters:","abstract":"

Start updating device motion with params

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(im)stopUpdating":{"name":"-stopUpdating","abstract":"

Stop updating device motion

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionParameters.html#/c:objc(pl)SCCameraKitDeviceMotionParameters(py)requiresCompassAlignment":{"name":"requiresCompassAlignment","abstract":"

Requires device motion interface to be aligned with compass

","parent_name":"SCCameraKitDeviceMotionParameters"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)requiresNewAgreementAcceptance":{"name":"requiresNewAgreementAcceptance","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)childrenProtectionActRestricted":{"name":"childrenProtectionActRestricted","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)newestAvailableAgreements":{"name":"newestAvailableAgreements","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(im)acceptAgreements:":{"name":"-acceptAgreements:","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(im)declineAgreements:":{"name":"-declineAgreements:","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html#/c:objc(pl)SCCameraKitAgreementsPresentationContextProvider(py)viewControllerForPresentingAgreements":{"name":"viewControllerForPresentingAgreements","abstract":"

The view controller to present the agreements view controller from.

","parent_name":"SCCameraKitAgreementsPresentationContextProvider"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html#/c:objc(pl)SCCameraKitAgreementsPresentationContextProvider(im)dismissAgreementsViewController:accepted:":{"name":"-dismissAgreementsViewController:accepted:","abstract":"

Requests that the view controller passed be dismissed, with acceptance status.

","parent_name":"SCCameraKitAgreementsPresentationContextProvider"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)termsOfServiceURL":{"name":"termsOfServiceURL","abstract":"

A URL to the terms of service agreement for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)privacyPolicyURL":{"name":"privacyPolicyURL","abstract":"

A URL to the privacy policy for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)learnMoreURL":{"name":"learnMoreURL","abstract":"

A URL to the learn more page for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAdjustmentsProcessorObserver.html#/c:objc(pl)SCCameraKitAdjustmentsProcessorObserver(im)processorUpdatedAdjustmentsAvailability:":{"name":"-processorUpdatedAdjustmentsAvailability:","abstract":"

Notifies that the adjustments processor updated the state of available adjustments

","parent_name":"SCCameraKitAdjustmentsProcessorObserver"},"Protocols/SCCameraKitAdjustmentsComponent.html#/c:objc(pl)SCCameraKitAdjustmentsComponent(py)processor":{"name":"processor","abstract":"

Handles the actual adjustment application. Will be null if CameraKit is not running with a valid input.

","parent_name":"SCCameraKitAdjustmentsComponent"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)isAdjustmentAvailable:":{"name":"-isAdjustmentAvailable:","abstract":"

Checks if an adjustment is available and supported by the current device. Some adjustments are performance sensitive","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)applyAdjustment:error:":{"name":"-applyAdjustment:error:","abstract":"

Applies the specified adjustment.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)removeAdjustmentController:":{"name":"-removeAdjustmentController:","abstract":"

Removes an adjustment.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)addObserver:":{"name":"-addObserver:","abstract":"

Adds observer to receive notifications of changes to adjustments processor state.","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)removeObserver:":{"name":"-removeObserver:","abstract":"

Removes observer from receiving notifications of changes to adjustments availability.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitPortraitAdjustmentController.html#/c:objc(pl)SCCameraKitPortraitAdjustmentController(py)blur":{"name":"blur","abstract":"

How blurred the background is. Ranges from 0.0 to 1.0. A value of 0.0 is “not blurred at all” while 1.0 is","parent_name":"SCCameraKitPortraitAdjustmentController"},"Protocols/SCCameraKitToneMapAdjustmentController.html#/c:objc(pl)SCCameraKitToneMapAdjustmentController(py)amount":{"name":"amount","abstract":"

The “amount” of adjustment applied to the tone mapping algorithm. Ranges from 0.0 to 1.0. A value of 0.5 is the","parent_name":"SCCameraKitToneMapAdjustmentController"},"Protocols/SCCameraKitAccessTokenProvider.html#/c:objc(pl)SCCameraKitAccessTokenProvider(im)fetchAccessTokenIfAuthenticatedWithCompletion:":{"name":"-fetchAccessTokenIfAuthenticatedWithCompletion:","abstract":"

If the user is already authenticated, fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc.","parent_name":"SCCameraKitAccessTokenProvider"},"Protocols/SCCameraKitAccessTokenProvider.html#/c:objc(pl)SCCameraKitAccessTokenProvider(im)fetchAccessTokenWithCompletion:":{"name":"-fetchAccessTokenWithCompletion:","abstract":"

Fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc.","parent_name":"SCCameraKitAccessTokenProvider"},"Protocols/SCCameraKitAccessTokenProviderTask.html#/c:objc(pl)SCCameraKitAccessTokenProviderTask(im)cancel":{"name":"-cancel","abstract":"

Cancels fetching access token if it’s currently in progress;

","parent_name":"SCCameraKitAccessTokenProviderTask"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)session":{"name":"session","abstract":"

The managed ARSession.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)arDelegate":{"name":"arDelegate","abstract":"

The intermediate destination for ARKit delegate methods. See the protocol definition for more details.","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)frontCameraConfiguration":{"name":"frontCameraConfiguration","abstract":"

The ARConfiguration to use when using the front camera.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(im)runWithConfiguration:options:":{"name":"-runWithConfiguration:options:","abstract":"

Runs the session with the provided configuration and options.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(im)pause":{"name":"-pause","abstract":"

Pauses the session.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didAddAnchors:":{"name":"-input:didAddAnchors:","abstract":"

Method to call when the input receives session:didAddAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didUpdateAnchors:":{"name":"-input:didUpdateAnchors:","abstract":"

Method to call when the input receives session:didUpdateAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didRemoveAnchors:":{"name":"-input:didRemoveAnchors:","abstract":"

Method to call when the input receives session:didRemoveAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)lenses":{"name":"lenses","abstract":"

Contains lenses related objects.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)adjustments":{"name":"adjustments","abstract":"

Contains adjustment related objects.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:":{"name":"-startWithInput:arInput:","abstract":"

Begin processing input frames with front camera position and portrait video orientation

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:","abstract":"

Deprecated. Use","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:","abstract":"

Deprecated. Use","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:","abstract":"

Begin processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)stop":{"name":"-stop","abstract":"

End processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)stopWithCompletion:":{"name":"-stopWithCompletion:","abstract":"

End processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)addOutput:":{"name":"-addOutput:","abstract":"

Add an output. Frames will still be processed if no outputs exist.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)removeOutput:":{"name":"-removeOutput:","abstract":"

Remove an output.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)cameraPosition":{"name":"cameraPosition","abstract":"

The camera position in use. Setting will automatically update the input.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)videoOrientation":{"name":"videoOrientation","abstract":"

The orientation for the outputted video buffers

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)activeInput":{"name":"activeInput","abstract":"

The active input. May be either standard camera input or the AR input, depending on lens requirements.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)agreementsStore":{"name":"agreementsStore","abstract":"

Store containing information above the acceptance state of terms of service

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)presentAgreementsImmediately":{"name":"-presentAgreementsImmediately","abstract":"

Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html":{"name":"SCCameraKitProtocol","abstract":"

Undocumented

"},"Protocols/SCCameraKitARInputDelegate.html":{"name":"SCCameraKitARInputDelegate","abstract":"

Propogates ARKit session delegate methods back to CameraKit."},"Protocols/SCCameraKitARInput.html":{"name":"SCCameraKitARInput","abstract":"

Describes a source of AR data for CameraKit.

"},"Protocols/SCCameraKitAccessTokenProviderTask.html":{"name":"SCCameraKitAccessTokenProviderTask","abstract":"

Describes an interface that will handle fetching the access token.

"},"Protocols/SCCameraKitAccessTokenProvider.html":{"name":"SCCameraKitAccessTokenProvider","abstract":"

Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected"},"Protocols.html#/c:objc(pl)SCCameraKitAdjustment":{"name":"SCCameraKitAdjustment","abstract":"

Protocol describing the Objective-C interface to an Adjustment.

"},"Protocols.html#/c:objc(pl)SCCameraKitAdjustmentController":{"name":"SCCameraKitAdjustmentController","abstract":"

Protocol describing the Objective-C interface to an Adjustment Controller.

"},"Protocols/SCCameraKitToneMapAdjustmentController.html":{"name":"SCCameraKitToneMapAdjustmentController","abstract":"

A controller to control the tone map adjustment.

"},"Protocols/SCCameraKitPortraitAdjustmentController.html":{"name":"SCCameraKitPortraitAdjustmentController","abstract":"

A controller to control the portrait adjustment.

"},"Protocols/SCCameraKitAdjustmentsProcessor.html":{"name":"SCCameraKitAdjustmentsProcessor","abstract":"

The adjustments processor handles adjusting camera frames before they are processed by lenses.

"},"Protocols/SCCameraKitAdjustmentsComponent.html":{"name":"SCCameraKitAdjustmentsComponent","abstract":"

The adjustments component wraps several adjustment-related classes.

"},"Protocols/SCCameraKitAdjustmentsProcessorObserver.html":{"name":"SCCameraKitAdjustmentsProcessorObserver","abstract":"

Allows conformers to be notified of changes to adjustments processor state

"},"Protocols/SCCameraKitAgreementSet.html":{"name":"SCCameraKitAgreementSet","abstract":"

Protocol to interface with agreements by CameraKit"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html":{"name":"SCCameraKitAgreementsPresentationContextProvider","abstract":"

Describes an interface to provide presentation context for CameraKit to present agreements.

"},"Protocols/SCCameraKitAgreementsStore.html":{"name":"SCCameraKitAgreementsStore","abstract":"

Protocol describing the CameraKit agreements store.

"},"Protocols/SCCameraKitDeviceMotionParameters.html":{"name":"SCCameraKitDeviceMotionParameters","abstract":"

Params for device motion interface

"},"Protocols/SCCameraKitDeviceMotionDataProvider.html":{"name":"SCCameraKitDeviceMotionDataProvider","abstract":"

Protocol to provide device motion data and handle starting/updating/stopping

"},"Protocols/SCCameraKitErrorHandler.html":{"name":"SCCameraKitErrorHandler","abstract":"

Describes an interface to handler errors and exceptions related to CameraKit

"},"Protocols/SCCameraKitInputDestination.html":{"name":"SCCameraKitInputDestination","abstract":"

The input destination is an intermediary for frame data.

"},"Protocols/SCCameraKitInput.html":{"name":"SCCameraKitInput","abstract":"

Describes a source of frames for CameraKit. Can be a camera, file, etc.

"},"Protocols/SCCameraKitLensPreview.html":{"name":"SCCameraKitLensPreview","abstract":"

Describes an interface that contains lens preview data

"},"Protocols/SCCameraKitLensSnapcodes.html":{"name":"SCCameraKitLensSnapcodes","abstract":"

Describes an interface that contains lens snapcodes data

"},"Protocols/SCCameraKitLens.html":{"name":"SCCameraKitLens","abstract":"

Describes a lens object.

"},"Protocols/SCCameraKitLensHintDelegate.html":{"name":"SCCameraKitLensHintDelegate","abstract":"

Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

"},"Protocols/SCCameraKitLensHintProvider.html":{"name":"SCCameraKitLensHintProvider","abstract":"

Describes an interface used to provide lens hint localizations from hint ids

"},"Protocols.html#/c:objc(pl)SCCameraKitLensLaunchData":{"name":"SCCameraKitLensLaunchData","abstract":"

An opaque protocol used to pass launch data to processor when applying lens

"},"Protocols/SCCameraKitLensMediaPickerProvider.html":{"name":"SCCameraKitLensMediaPickerProvider","abstract":"

Undocumented

"},"Protocols/SCCameraKitLensMediaPickerAsset.html":{"name":"SCCameraKitLensMediaPickerAsset","abstract":"

An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html":{"name":"SCCameraKitLensMediaPickerProviderUIDelegate","abstract":"

Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

"},"Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html":{"name":"SCCameraKitLensMediaPickerProviderMediaApplicationDelegate","abstract":"

Delegate responsible for applying media to a lens. This should not be implemented directly.

"},"Protocols/SCCameraKitLensPrefetcherObserver.html":{"name":"SCCameraKitLensPrefetcherObserver","abstract":"

Describes an interface used to observe changes in lens fetch status

"},"Protocols/SCCameraKitLensPrefetcherTask.html":{"name":"SCCameraKitLensPrefetcherTask","abstract":"

Describes the interface used to cancel an ongoing prefetch task

"},"Protocols/SCCameraKitLensPrefetcher.html":{"name":"SCCameraKitLensPrefetcher","abstract":"

Describes the interface used to prefetch lens content

"},"Protocols/SCCameraKitLensProcessor.html":{"name":"SCCameraKitLensProcessor","abstract":"

The lens processor handles transforming camera frames and adding effects to them.

"},"Protocols/SCCameraKitLensProcessorObserver.html":{"name":"SCCameraKitLensProcessorObserver","abstract":"

Allows conformers to be notified of changes to lens processor state

"},"Protocols/SCCameraKitLensRemoteApiRequest.html":{"name":"SCCameraKitLensRemoteApiRequest","abstract":"

Describes the remote api service request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiResponse.html":{"name":"SCCameraKitLensRemoteApiResponse","abstract":"

Describes the remote api service response to a request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html":{"name":"SCCameraKitLensRemoteApiServiceCall","abstract":"

Describes the call that is sent in response to a remote api request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiService.html":{"name":"SCCameraKitLensRemoteApiService","abstract":"

Describes a remote api service used to process requests sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html":{"name":"SCCameraKitLensRemoteApiServiceProvider","abstract":"

Describes an interface to provide remote api services for specific lenses and api spec identifiers.

"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html":{"name":"SCCameraKitLensRepositoryGroupObserver","abstract":"

Allows conformers to be notified of changes to lens groups the repository has available.

"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html":{"name":"SCCameraKitLensRepositorySpecificObserver","abstract":"

Allows conformers to be notified of changes to specific lenses in groups the repository has available.

"},"Protocols/SCCameraKitLensesComponent.html":{"name":"SCCameraKitLensesComponent","abstract":"

The lenses component wraps several lens-related classes.

"},"Protocols/SCCameraKitLensRepository.html":{"name":"SCCameraKitLensRepository","abstract":"

Lens Repository for listing lenses, getting lenses, etc.

"},"Protocols/SCCameraKitLocationParameters.html":{"name":"SCCameraKitLocationParameters","abstract":"

Params for device motion interface

"},"Protocols/SCCameraKitLocationDataProvider.html":{"name":"SCCameraKitLocationDataProvider","abstract":"

Protocol to provide device motion data and handle starting/updating/stopping

"},"Protocols/SCCameraKitOutput.html":{"name":"SCCameraKitOutput","abstract":"

Allows conformers to be notified of new frame data from CameraKit.

"},"Protocols/SCCameraKitPreferences.html":{"name":"SCCameraKitPreferences","abstract":"

Protocol to interface with preferences stored by CameraKit"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html":{"name":"SCCameraKitTextInputKeyboardAccessoryProvider","abstract":"

Protocol for representing a text input view on-screen for lenses that request it.

"},"Protocols/SCCameraKitTextInputContextProvider.html":{"name":"SCCameraKitTextInputContextProvider","abstract":"

Protocol to provide keyboard input data to lenses.

"},"Protocols.html#/c:objc(pl)SCCameraKitTexture":{"name":"SCCameraKitTexture","abstract":"

An opaque protocol describing CameraKit output.

"},"Protocols/SCCameraKitUserDataProviderDelegate.html":{"name":"SCCameraKitUserDataProviderDelegate","abstract":"

User data provider delegate to provide receivers with new user data on updates

"},"Protocols/SCCameraKitUserDataProvider.html":{"name":"SCCameraKitUserDataProvider","abstract":"

Describes an interface that provides user data to lenses

"},"Protocols/Adjustment.html":{"name":"Adjustment","abstract":"

Swift protocol for an adjustment. Specifies an associated Controller type.

"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeScaleToFill":{"name":"SCCameraKitPreviewViewContentModeScaleToFill","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeAspectFill":{"name":"SCCameraKitPreviewViewContentModeAspectFill","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeAspectFit":{"name":"SCCameraKitPreviewViewContentModeAspectFit","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusIgnored":{"name":"SCCameraKitLensRemoteApiServiceCallStatusIgnored","abstract":"

Request was ignored typically due to a remote api service not interested in handling such request to allow other","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusOngoing":{"name":"SCCameraKitLensRemoteApiServiceCallStatusOngoing","abstract":"

Request was received but one or more responses are yet to be sent.

","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusAnswered":{"name":"SCCameraKitLensRemoteApiServiceCallStatusAnswered","abstract":"

Request was received and a single response was sent indicating that the call is complete.

","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusSuccess":{"name":"SCCameraKitLensRemoteApiResponseStatusSuccess","abstract":"

Request succeeded.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusRedirected":{"name":"SCCameraKitLensRemoteApiResponseStatusRedirected","abstract":"

Request was redirected.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusBadRequest":{"name":"SCCameraKitLensRemoteApiResponseStatusBadRequest","abstract":"

Invalid request.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusAccessDenied":{"name":"SCCameraKitLensRemoteApiResponseStatusAccessDenied","abstract":"

Caller doesn’t have permission to access resource.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusNotFound":{"name":"SCCameraKitLensRemoteApiResponseStatusNotFound","abstract":"

Resource not found.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusTimeout":{"name":"SCCameraKitLensRemoteApiResponseStatusTimeout","abstract":"

Request timed out.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusRequestTooLarge":{"name":"SCCameraKitLensRemoteApiResponseStatusRequestTooLarge","abstract":"

Request too large.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusInternalServiceError":{"name":"SCCameraKitLensRemoteApiResponseStatusInternalServiceError","abstract":"

Internal service error.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusCancelled":{"name":"SCCameraKitLensRemoteApiResponseStatusCancelled","abstract":"

Request cancelled by caller.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusUnloaded":{"name":"SCCameraKitLensFetchStatusUnloaded","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusLoading":{"name":"SCCameraKitLensFetchStatusLoading","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusLoaded":{"name":"SCCameraKitLensFetchStatusLoaded","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensMediaPickerAssetType.html#/c:@E@SCCameraKitLensMediaPickerAssetType@SCCameraKitLensMediaPickerAssetTypeImage":{"name":"SCCameraKitLensMediaPickerAssetTypeImage","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetType"},"Enums/SCCameraKitLensMediaPickerAssetType.html#/c:@E@SCCameraKitLensMediaPickerAssetType@SCCameraKitLensMediaPickerAssetTypeVideo":{"name":"SCCameraKitLensMediaPickerAssetTypeVideo","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceNone":{"name":"SCCameraKitLensFacingPreferenceNone","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceFront":{"name":"SCCameraKitLensFacingPreferenceFront","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceBack":{"name":"SCCameraKitLensFacingPreferenceBack","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitAdjustmentsComponentError.html#/c:@E@SCCameraKitAdjustmentsComponentError@SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment":{"name":"SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment","abstract":"

Undocumented

","parent_name":"SCCameraKitAdjustmentsComponentError"},"Enums.html#/c:@E@ARSessionRunOptions":{"name":"ARSessionRunOptions","abstract":"

Undocumented

"},"Enums/SCCameraKitAdjustmentsComponentError.html":{"name":"SCCameraKitAdjustmentsComponentError","abstract":"

Undocumented

"},"Enums/SCCameraKitLensFacingPreference.html":{"name":"SCCameraKitLensFacingPreference","abstract":"

Describes all posible facings (inversely relative to the user) that a lens can be designed for.

"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaType","abstract":"

Undocumented

"},"Enums/SCCameraKitLensMediaPickerAssetType.html":{"name":"SCCameraKitLensMediaPickerAssetType","abstract":"

Undocumented

"},"Enums/SCCameraKitLensFetchStatus.html":{"name":"SCCameraKitLensFetchStatus","abstract":"

Describes the fetch status for the lens"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html":{"name":"SCCameraKitLensRemoteApiResponseStatus","abstract":"

Describes the status of the response sent to the lens.

"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html":{"name":"SCCameraKitLensRemoteApiServiceCallStatus","abstract":"

Describes the status of the call for the request handled by a remote api service.

"},"Enums/SCCameraKitPreviewViewContentMode.html":{"name":"SCCameraKitPreviewViewContentMode","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitVersion":{"name":"SCCameraKitVersion","abstract":"

Short CameraKit version (ie 1.8.0)

"},"Constants.html#/c:@SCCameraKitLensCoreVersion":{"name":"SCCameraKitLensCoreVersion","abstract":"

LensCore version (ie 243)

"},"Constants.html#/c:@SCCameraKitAdjustmentsComponentErrorDomain":{"name":"SCCameraKitAdjustmentsComponentErrorDomain","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorUnspecified":{"name":"SCCameraKitErrorUnspecified","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensMetadataNotFound":{"name":"SCCameraKitErrorLensMetadataNotFound","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensContentNotFound":{"name":"SCCameraKitErrorLensContentNotFound","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensContentUrlMissing":{"name":"SCCameraKitErrorLensContentUrlMissing","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensChecksumMissing":{"name":"SCCameraKitErrorLensChecksumMissing","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorCannotWriteToFile":{"name":"SCCameraKitErrorCannotWriteToFile","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitExceptionUnauthorized":{"name":"SCCameraKitExceptionUnauthorized","abstract":"

Reported when SCCameraKitClientID in Info.plist is missing or invalid.

"},"Constants.html#/c:@SCCameraKitExceptionInvalidApplicationState":{"name":"SCCameraKitExceptionInvalidApplicationState","abstract":"

Reported when backend fails to authenticate client."},"Constants.html#/c:@SCCameraKitExceptionInvalidLens":{"name":"SCCameraKitExceptionInvalidLens","abstract":"

Reported when trying to pass an invalid lens class that’s different than the internal ones we support.

"},"Constants.html#/c:@SCCameraKitExceptionInvalidTexture":{"name":"SCCameraKitExceptionInvalidTexture","abstract":"

Reported when trying to draw an invalid texture class that’s different than the internal ones we support.

"},"Constants.html#/c:@SCCameraKitExceptionProcessingLensFailure":{"name":"SCCameraKitExceptionProcessingLensFailure","abstract":"

Reported whne processing fails due to a lens error. Lens errors are normally caused by"},"Constants.html#/c:@SCCameraKitExceptionProcessingInternalFailure":{"name":"SCCameraKitExceptionProcessingInternalFailure","abstract":"

Reported when processing fails due to an internal error. Cause of such errors can be bugs in the"},"Constants.html#/c:@SCCameraKitLensRepositoryBundledGroup":{"name":"SCCameraKitLensRepositoryBundledGroup","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitLensesComponentErrorDomain":{"name":"SCCameraKitLensesComponentErrorDomain","abstract":"

Undocumented

"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(py)displayName":{"name":"displayName","abstract":"

User’s full display name

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(py)birthDate":{"name":"birthDate","abstract":"

User’s birth date (optional)

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(im)initWithDisplayName:birthDate:":{"name":"-initWithDisplayName:birthDate:","abstract":"

Designated init to pass in user data fields

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(im)init":{"name":"-init","abstract":"

Use designated init or convenience init to pass in required user properties

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)apiToken":{"name":"apiToken","abstract":"

API token that is found in the dev portal

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)additionalConfigurationAttributes":{"name":"additionalConfigurationAttributes","abstract":"
","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApiToken:":{"name":"-initWithApiToken:","abstract":"

Designated init to pass in apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApiToken:additionalConfigurationAttributes:":{"name":"-initWithApiToken:additionalConfigurationAttributes:","abstract":"

Init to pass in apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(cm)new":{"name":"+new","abstract":"

Use designated init to pass in require applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)applicationId":{"name":"applicationId","abstract":"

applicationID/clientID that is found in the dev portal

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApplicationID:apiToken:":{"name":"-initWithApplicationID:apiToken:","abstract":"

Designated init to pass in applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApplicationID:apiToken:additionalConfigurationAttributes:":{"name":"-initWithApplicationID:apiToken:additionalConfigurationAttributes:","abstract":"

Init to pass in applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)automaticallyConfiguresTouchHandler":{"name":"automaticallyConfiguresTouchHandler","abstract":"

Configures the neccessary gesture recognizers for handling touch input in lenses.","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)automaticallyConfiguresViewport":{"name":"automaticallyConfiguresViewport","abstract":"

Configures the viewport upon changes to the view’s frame.","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)contentMode":{"name":"contentMode","abstract":"

Configures the content mode the preview view will use to render.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)safeArea":{"name":"safeArea","abstract":"

Configures the safe area to an explicitly specified rect.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)explicitViewportProvider":{"name":"explicitViewportProvider","abstract":"

Setting this property configures the preview view to use its viewportSize, outputResolution, and safeArea.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(im)configureSafeAreaWithOccludingViews:":{"name":"-configureSafeAreaWithOccludingViews:","abstract":"

Automatically configures the safeArea property to avoid the specified views.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)initWithCapturePhotoOutput:":{"name":"-initWithCapturePhotoOutput:","abstract":"

Instantiates a capturer with the specified AVCapturePhotoOutput and capture settings.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)capturePhotoWithCaptureSettings:outputSize:completion:":{"name":"-capturePhotoWithCaptureSettings:outputSize:completion:","abstract":"

Capture a photo and call a completion with the resulting image when done.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)capturePhotoWithCaptureSettings:completion:":{"name":"-capturePhotoWithCaptureSettings:completion:","abstract":"

Capture a photo and call a completion with the resulting image when done.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitLensesConfig.html#/c:objc(cs)SCCameraKitLensesConfig(py)cacheConfig":{"name":"cacheConfig","abstract":"

Cache config instance to configure cache properties

","parent_name":"SCCameraKitLensesConfig"},"Classes/SCCameraKitLensesConfig.html#/c:objc(cs)SCCameraKitLensesConfig(im)initWithCacheConfig:":{"name":"-initWithCacheConfig:","abstract":"

Init with cache config instance

","parent_name":"SCCameraKitLensesConfig"},"Classes/SCCameraKitCacheConfig.html#/c:objc(cs)SCCameraKitCacheConfig(py)lensContentMaxSize":{"name":"lensContentMaxSize","abstract":"

Max size in bytes for lens content cache

","parent_name":"SCCameraKitCacheConfig"},"Classes/SCCameraKitCacheConfig.html#/c:objc(cs)SCCameraKitCacheConfig(im)initWithLensContentMaxSize:":{"name":"-initWithLensContentMaxSize:","abstract":"

Init with specifed max size for lens content cache

","parent_name":"SCCameraKitCacheConfig"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(im)initWithRequest:status:metadata:body:":{"name":"-initWithRequest:status:metadata:body:","abstract":"

Designated init to pass in required properties for the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(im)init":{"name":"-init","abstract":"

Use designated init to pass in required properties

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(im)initWithDefaultAssetTypes:":{"name":"-initWithDefaultAssetTypes:","abstract":"

Initializes the photo library provider.

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(im)init":{"name":"-init","abstract":"

Use designated init or convenience init

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(py)launchData":{"name":"launchData","abstract":"

Builds and get launch data from current builder state

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addNumber:forKey:":{"name":"-addNumber:forKey:","abstract":"

Add number key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addNumberArray:forKey:":{"name":"-addNumberArray:forKey:","abstract":"

Add number array key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addString:forKey:":{"name":"-addString:forKey:","abstract":"

Add string key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addStringArray:forKey:":{"name":"-addStringArray:forKey:","abstract":"

Add string array key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)removeValueForKey:":{"name":"-removeValueForKey:","abstract":"

Removes key-value pair from launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)initWithViewportSize:outputResolution:safeArea:":{"name":"-initWithViewportSize:outputResolution:safeArea:","abstract":"

Initializes the ExplicitViewportProvider with the specified viewportSize, outputResolution, and safeArea.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setViewportSize:":{"name":"-setViewportSize:","abstract":"

Sets the output viewport size and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setOutputResolution:":{"name":"-setOutputResolution:","abstract":"

Sets the output resolution and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setSafeArea:":{"name":"-setSafeArea:","abstract":"

Sets the safe area and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)init":{"name":"-init","abstract":"

Use the designated initializer to pass in the required properties.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)deviceMotion":{"name":"deviceMotion","abstract":"

Device motion data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)userData":{"name":"userData","abstract":"

User data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)lensHint":{"name":"lensHint","abstract":"

Lens hint provider to provide lens hint localizations

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)location":{"name":"location","abstract":"

Location data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)mediaPicker":{"name":"mediaPicker","abstract":"

Media picker provider for selecting and loading external images and video into lenses.

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)remoteApiServiceProviders":{"name":"remoteApiServiceProviders","abstract":"

List of remote api service providers to handle remote api requests sent by lenses.

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:mediaPicker:remoteApiServiceProviders:":{"name":"-initWithDeviceMotion:userData:lensHint:location:mediaPicker:remoteApiServiceProviders:","abstract":"

Designated init to pass in user data providers","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:":{"name":"-initWithDeviceMotion:userData:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:":{"name":"-initWithDeviceMotion:userData:lensHint:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:":{"name":"-initWithDeviceMotion:userData:lensHint:location:","abstract":"

Convenience init to mantain API compatibility","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:mediaPicker:":{"name":"-initWithDeviceMotion:userData:lensHint:location:mediaPicker:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(py)startDate":{"name":"startDate","abstract":"

Date and time of first video buffer recorded (ie. start recording time)

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)initWithAVAssetWriter:pixelBufferInput:audioInput:":{"name":"-initWithAVAssetWriter:pixelBufferInput:audioInput:","abstract":"

Create an AVWriterOutput

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(cm)new":{"name":"+new","abstract":"

Use designated init or convenience init to pass in required writer and inputs

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)startRecording":{"name":"-startRecording","abstract":"

Call this after you start recording on the AVAssetWriter. This will indicate that the output should start recording","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)stopRecording":{"name":"-stopRecording","abstract":"

Call this before you stop recording on the AVAssetWriter. This will cause the output to stop recording data from","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)videoMirrored":{"name":"videoMirrored","abstract":"

Describes whether the current video frames are mirrored

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)automaticallyConfiguresVideoMirrored":{"name":"automaticallyConfiguresVideoMirrored","abstract":"

Describes whether it should automatically configure outputted video frames to be mirrored.","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)audioEnabled":{"name":"audioEnabled","abstract":"

Determines whether or not this input will capture audio and pass audio buffer data to CameraKit.","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(im)initWithSession:":{"name":"-initWithSession:","abstract":"

Create an AV Session input.

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(im)initWithSession:audioEnabled:":{"name":"-initWithSession:audioEnabled:","abstract":"

Create an AV Session input.

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)init":{"name":"-init","abstract":"

Create an AR Session input.","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)initWithSession:":{"name":"-initWithSession:","abstract":"

Create an AR Session input with a preexisting session.

","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)initWithSession:frontCameraConfiguration:":{"name":"-initWithSession:frontCameraConfiguration:","abstract":"

Create an AR Session input with a preexisting session.

","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitSession.html#/c:objc(cs)SCCameraKitSession(im)initWithSessionConfig:lensesConfig:errorHandler:":{"name":"-initWithSessionConfig:lensesConfig:errorHandler:","abstract":"

Init with session and lenses config instance to configure properties within lenses component

","parent_name":"SCCameraKitSession"},"Classes/SCCameraKitSession.html#/c:objc(cs)SCCameraKitSession(im)initWithLensesConfig:errorHandler:":{"name":"-initWithLensesConfig:errorHandler:","abstract":"

Init with lenses config instance to configure properties within lenses component

","parent_name":"SCCameraKitSession"},"Classes/SCCameraKitPortraitAdjustment.html#/s:So29SCCameraKitPortraitAdjustmentC011SCSDKCameraB0E10Controllera":{"name":"Controller","parent_name":"SCCameraKitPortraitAdjustment"},"Classes/SCCameraKitToneMapAdjustment.html#/s:So28SCCameraKitToneMapAdjustmentC011SCSDKCameraB0E10Controllera":{"name":"Controller","parent_name":"SCCameraKitToneMapAdjustment"},"Classes/SCCameraKitToneMapAdjustment.html":{"name":"SCCameraKitToneMapAdjustment","abstract":"

An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

"},"Classes/SCCameraKitPortraitAdjustment.html":{"name":"SCCameraKitPortraitAdjustment","abstract":"

An adjustment which allows users to blur the background on their input.

"},"Classes/SCCameraKitSession.html":{"name":"SCCameraKitSession","abstract":"

CameraKit handles interaction with the camera and contains several components like lenses.

"},"Classes/SCCameraKitARSessionInput.html":{"name":"SCCameraKitARSessionInput","abstract":"

ARSessionInput is a CameraKit provided wrapper for ARSession.

"},"Classes/SCCameraKitAVSessionInput.html":{"name":"SCCameraKitAVSessionInput","abstract":"

AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color"},"Classes/SCCameraKitAVWriterOutput.html":{"name":"SCCameraKitAVWriterOutput","abstract":"

AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of"},"Classes/SCCameraKitDataProviderComponent.html":{"name":"SCCameraKitDataProviderComponent","abstract":"

Component for user’s custom data providers

"},"Classes/SCCameraKitExplicitViewportProvider.html":{"name":"SCCameraKitExplicitViewportProvider","abstract":"

Enables the configuration of a custom viewport for SCCameraKitPreviewView.

"},"Classes/SCCameraKitLensLaunchDataBuilder.html":{"name":"SCCameraKitLensLaunchDataBuilder","abstract":"

Concrete class to build lens launch data to pass to processor when applying

"},"Classes.html#/c:objc(cs)SCCameraKitEmptyLensLaunchData":{"name":"SCCameraKitEmptyLensLaunchData","abstract":"

Final, opaque data class to reset persisted launch data

"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html":{"name":"SCCameraKitLensMediaPickerProviderPhotoLibrary","abstract":"

A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

"},"Classes/SCCameraKitLensRemoteApiResponse.html":{"name":"SCCameraKitLensRemoteApiResponse","abstract":"

Concrete data class for the remote api service response to a request sent by a lens.

"},"Classes/SCCameraKitCacheConfig.html":{"name":"SCCameraKitCacheConfig","abstract":"

Concrete class to configure camera kit cache

"},"Classes/SCCameraKitLensesConfig.html":{"name":"SCCameraKitLensesConfig","abstract":"

Concrete class to configure all available, user-configurable properties within the lenses component

"},"Classes/SCCameraKitPhotoCaptureOutput.html":{"name":"SCCameraKitPhotoCaptureOutput","abstract":"

An output that will capture photos. You should add this as an output for your CameraKit instance.

"},"Classes/SCCameraKitPreviewView.html":{"name":"SCCameraKitPreviewView","abstract":"

A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit"},"Classes/SCCameraKitSessionConfig.html":{"name":"SCCameraKitSessionConfig","abstract":"

Data class that is used to pass in a configuration for the CameraKit Session."},"Classes/SCCameraKitUserData.html":{"name":"SCCameraKitUserData","abstract":"

Concrete user data class to pass in user data that can be used by some lenses

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Constants.html":{"name":"Constants","abstract":"

The following constants are available globally.

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"},"Type%20Definitions.html":{"name":"Type Definitions","abstract":"

The following type definitions are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/docSet.dsidx b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.docset/Contents/Resources/docSet.dsidx new file mode 100644 index 0000000000000000000000000000000000000000..af8b352ecdb80e323412ddbe3134d9e08e7dac94 GIT binary patch literal 122880 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 M5>Nz74$5KtANsn?FaQ7m literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.tgz b/docs/api/ios/1.30.0/SCSDKCameraKit/docsets/.tgz new file mode 100644 index 0000000000000000000000000000000000000000..5b94717fbe6db84aad0f210a32ae829f91975c59 GIT binary patch literal 281033 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 literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/img/carat.png b/docs/api/ios/1.30.0/SCSDKCameraKit/img/carat.png new file mode 100755 index 0000000000000000000000000000000000000000..29d2f7fd4955fca6bc6fb740e0373a2c358c398e GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/img/dash.png b/docs/api/ios/1.30.0/SCSDKCameraKit/img/dash.png new file mode 100755 index 0000000000000000000000000000000000000000..6f694c7a012b417908da3687a0a39aa182e91c74 GIT binary patch literal 1338 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 literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/index.html b/docs/api/ios/1.30.0/SCSDKCameraKit/index.html new file mode 100644 index 00000000..3dfb5be1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/index.html @@ -0,0 +1,501 @@ + + + + Reference + + + + + + + + + + + + + + + +

+

+ + 1.30.0 Docs + + (86% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit iOS

+

Usage Philosophy

+ +

In general, CameraKit attaches to your existing camera workflow. You are still responsible for configuring and managing an AVCaptureSession, which CameraKit will attach onto. You may start, stop, and reconfigure your session as needed.

+

Getting Started

+

Requirements

+ +

CameraKit requires a minimum of iOS 11, and a 64 bit processor. CameraKit will compile, but not run on a Simulator (due to lack of AVCaptureSession support).

+ +

Make sure you also update SCCameraKitClientID and SCCameraKitAPIToken in your application’s Info.plist with the application ID and API token from the Snap Kit developer portal. Note that you can also pass in these values when creating a session like:

+
let sessionConfig = SessionConfig(applicationID: "application_id_here", apiToken: "api_token_here")
+let session = Session(sessionConfig: sessionConfig, lensesConfig: nil, errorHandler: nil)
+
+ +

This is useful in case you need to dynamically update your API token which may happen in the case where your API token gets revoked for some reason.

+ +

In order to test sharing to Snapchat, make sure you also add your Snap Kit client id SCSDKClientId in Info.plist

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

The Podfile should already be setup correctly to reference the camera kit sdk podpsec directory, but if you choose to move the SDK podspec directory somewhere else just be sure to add/modify this line: +pod 'SCSDKCameraKit', :path => 'CameraKit/CameraKit' +where :path points to the directory that contains the camera kit podspec.

+ +

Before opening the workspace make sure you run +pod install +and open CameraKitSample.xcworkspace

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKit directory into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKit, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Configure your AVCaptureSession Pipeline

+ +

First, create and configure an AVCaptureSession. Apple provides a full-featured reference.

+ +

For example, if you want to setup a regular capture session for the front facing camera you’d do:

+
let captureSession = AVCaptureSession()
+captureSession.beginConfiguration()
+guard let videoDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front),
+    let videoDeviceInput = try? AVCaptureDeviceInput(device: videoDevice),
+    captureSession.canAddInput(videoDeviceInput) else { return }
+captureSession.addInput(videoDeviceInput)
+captureSession.commitConfiguration()
+captureSession.startRunning()
+
+ +

(PS: don’t forget to add NSCameraUsageDescription in your Info.plist and make sure you have set up the proper permissions/authorization flows)

+

Configuring the CameraKit Pipeline

+ +

CameraKit works similarly to AVCaptureSession – it also has inputs and outputs. We’ll create a CameraKit session, and connect it to your existing AVCaptureSession.

+ +

To begin, first instantiate a Session. A Session object will be your main entry point into CameraKit. Through it, you can access components like lenses.

+
let cameraKit = Session()
+
+ +

Next, create a CameraKit input and start your CameraKit Session with it. AVSessionInput is an input that CameraKit provides that wraps up lens-specific details of AVCaptureSession configuration (such as setting the pixel format).

+
let input = AVSessionInput(session: yourAVCaptureSession)
+cameraKit.start(with: input)
+
+ +

To display the processed output of CameraKit, we provide a PreviewView that behaves similarly to AVCaptureVideoPreviewLayer. The PreviewView is a CameraKit Output – it receives processed frames and displays them. We’ll also set automaticallyConfiguresTouchHandler so that CameraKit can process touch events and users can interact with lenses. Add it to the view heirarchy like any other UIView, and connect it to the Session by calling add(output:).

+
let previewView = PreviewView()
+previewView.automaticallyConfiguresTouchHandler = true
+cameraKit.add(output: previewView)
+
+ +

At this point, if you build and run your app, you should see your camera input displaying onscreen without any lenses applied to it. We’ll discuss how to activate lenses in the next section.

+

Activating Lenses

+ +

CameraKit lenses are provided by the LensRepository class. You can access this through cameraKit.lenses.respository. Lenses are fetched asynchronously, and you may wish to hold a reference to the lenses returned from LensRepository.

+
cameraKit.lenses.repository.availableLenses { lenses, error in
+    self.lenses = lenses
+}
+
+ +

The LensProcessor is responsible for applying and clearing lenses. You can access it through cameraKit.lenses.processor.

+ +

We can now take the lens that we’ve retrieved from the repository, and apply it to the lens processor.

+
cameraKit.lenses.processor?.apply { success in
+    // If success == true, the lens is now applied
+}
+
+ +

The preview view should now be showing camera input with a lens applied.

+ +

When you are done with a lens and want to remove it from the camera input, you can call clear on the lens processor. It is not neccessary to clear a lens before applying a new one.

+
cameraKit.lenses.processor?.clear() { success in
+    // If success == true, the lens has been cleared
+}
+
+ +

The preview view should once again be showing camera input with no lenses applied.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/js/jazzy.js b/docs/api/ios/1.30.0/SCSDKCameraKit/js/jazzy.js new file mode 100755 index 00000000..19844166 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/js/jazzy.search.js b/docs/api/ios/1.30.0/SCSDKCameraKit/js/jazzy.search.js new file mode 100644 index 00000000..359cdbb8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/js/jquery.min.js b/docs/api/ios/1.30.0/SCSDKCameraKit/js/jquery.min.js new file mode 100644 index 00000000..c4c6022f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/js/typeahead.jquery.js b/docs/api/ios/1.30.0/SCSDKCameraKit/js/typeahead.jquery.js new file mode 100644 index 00000000..3a2d2ab0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/search.json b/docs/api/ios/1.30.0/SCSDKCameraKit/search.json new file mode 100644 index 00000000..01f4f286 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/search.json @@ -0,0 +1 @@ +{"Extensions/AdjustmentsProcessor.html#/s:So31SCCameraKitAdjustmentsProcessorP011SCSDKCameraB0E5apply10adjustment10ControllerQyd__qd___tKAC10AdjustmentRd__lF":{"name":"apply(adjustment:)","abstract":"

Applies a given adjustment and returns a controller which allows runtime configuration of the adjustment.

","parent_name":"AdjustmentsProcessor"},"Extensions/AdjustmentsProcessor.html":{"name":"AdjustmentsProcessor"},"Structs/SCCameraKitLensMediaPickerAssetMetadata.html#/c:@SA@SCCameraKitLensMediaPickerAssetMetadata@FI@faceRect":{"name":"faceRect","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Structs/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html#/c:@SA@SCCameraKitLensMediaPickerAssetMetadata@FI@faceRect":{"name":"faceRect","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

","parent_name":"SCCameraKitLensMediaPickerAssetMetadata"},"Type%20Definitions/SCCameraKitLensMediaPickerAssetMetadata.html":{"name":"SCCameraKitLensMediaPickerAssetMetadata","abstract":"

Metadata for a media asset

"},"Protocols/Adjustment.html#/s:14SCSDKCameraKit10AdjustmentP10ControllerQa":{"name":"Controller","parent_name":"Adjustment"},"Protocols/SCCameraKitUserDataProvider.html#/c:objc(pl)SCCameraKitUserDataProvider(py)userData":{"name":"userData","abstract":"

Current user data

","parent_name":"SCCameraKitUserDataProvider"},"Protocols/SCCameraKitUserDataProvider.html#/c:objc(pl)SCCameraKitUserDataProvider(py)delegate":{"name":"delegate","abstract":"

Delegate to receive updates on user data changes

","parent_name":"SCCameraKitUserDataProvider"},"Protocols/SCCameraKitUserDataProviderDelegate.html#/c:objc(pl)SCCameraKitUserDataProviderDelegate(im)userDataProvider:didUpdateUserData:":{"name":"-userDataProvider:didUpdateUserData:","abstract":"

Update delegate receivers with new user data

","parent_name":"SCCameraKitUserDataProviderDelegate"},"Protocols/SCCameraKitTextInputContextProvider.html#/c:objc(pl)SCCameraKitTextInputContextProvider(py)parentView":{"name":"parentView","abstract":"

A parent view in which to embed a text view. Unless reconfigured by providing a keyboardAccessoryProvider, this text","parent_name":"SCCameraKitTextInputContextProvider"},"Protocols/SCCameraKitTextInputContextProvider.html#/c:objc(pl)SCCameraKitTextInputContextProvider(py)keyboardAccessoryProvider":{"name":"keyboardAccessoryProvider","abstract":"

Object which describes a user-visible input view for text input. Typically, this is a styled text view that appears","parent_name":"SCCameraKitTextInputContextProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)accessoryView":{"name":"accessoryView","abstract":"

The view to show on top of the keyboard.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)textView":{"name":"textView","abstract":"

The text view associated with the input being provided.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)placeholderText":{"name":"placeholderText","abstract":"

Placeholder text to show in the text view before the user has input any text. May be empty.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html#/c:objc(pl)SCCameraKitTextInputKeyboardAccessoryProvider(py)maximumHeight":{"name":"maximumHeight","abstract":"

The maximum height the accessoryView can grow to. This will be considered when setting the safe area for the lens.

","parent_name":"SCCameraKitTextInputKeyboardAccessoryProvider"},"Protocols/SCCameraKitPreferences.html#/c:objc(pl)SCCameraKitPreferences(im)clear":{"name":"-clear","abstract":"

Clear all stored preferences

","parent_name":"SCCameraKitPreferences"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputTexture:":{"name":"-cameraKit:didOutputTexture:","abstract":"

Notifies that a new frame is available.

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputVideoSampleBuffer:":{"name":"-cameraKit:didOutputVideoSampleBuffer:","abstract":"

Notifies that a new video frame is available.

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitOutput.html#/c:objc(pl)SCCameraKitOutput(im)cameraKit:didOutputAudioSampleBuffer:":{"name":"-cameraKit:didOutputAudioSampleBuffer:","abstract":"

Notifies that a new audio buffer is available

","parent_name":"SCCameraKitOutput"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(py)location":{"name":"location","abstract":"

Current location data

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(im)startUpdatingWithParameters:":{"name":"-startUpdatingWithParameters:","abstract":"

Start updating location data with params

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationDataProvider.html#/c:objc(pl)SCCameraKitLocationDataProvider(im)stopUpdating":{"name":"-stopUpdating","abstract":"

Stop updating location

","parent_name":"SCCameraKitLocationDataProvider"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)updateIntervalMilliseconds":{"name":"updateIntervalMilliseconds","abstract":"

Minimum interval between consecutive location updates

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)distanceFilterMeters":{"name":"distanceFilterMeters","abstract":"

Minimum distance between consecutive location updates

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLocationParameters.html#/c:objc(pl)SCCameraKitLocationParameters(py)desiredAccuracy":{"name":"desiredAccuracy","abstract":"

Desired accuracy

","parent_name":"SCCameraKitLocationParameters"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)addObserver:forGroupID:":{"name":"-addObserver:forGroupID:","abstract":"

Add an observer to receive updates to a lens group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)removeObserver:forGroupID:":{"name":"-removeObserver:forGroupID:","abstract":"

Remove an observer from receiving updates for a lens group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)addObserver:forSpecificLensID:inGroupID:":{"name":"-addObserver:forSpecificLensID:inGroupID:","abstract":"

Add an observer to receive updates for a specific lens in a group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)removeObserver:forSpecificLensID:inGroupID:":{"name":"-removeObserver:forSpecificLensID:inGroupID:","abstract":"

Remove an observer from receiving updates for a specific lens in a group

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)lensesForGroupID:":{"name":"-lensesForGroupID:","abstract":"

Any available lenses for the group ID specified.

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensRepository.html#/c:objc(pl)SCCameraKitLensRepository(im)lensWithID:inGroupID:":{"name":"-lensWithID:inGroupID:","abstract":"

Specific lens in group ID specified

","parent_name":"SCCameraKitLensRepository"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)repository":{"name":"repository","abstract":"

The repository for lenses. Lists available lenses, etc. in the lenses folder

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)processor":{"name":"processor","abstract":"

Handles the actual effect application. Will be null if CameraKit is not running with a valid input.

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)prefetcher":{"name":"prefetcher","abstract":"

Prefetcher to prefetch lens content to reduce time when applying lens

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensesComponent.html#/c:objc(pl)SCCameraKitLensesComponent(py)preferences":{"name":"preferences","abstract":"

Property to deal with preferences (ie. clear stored preferences)

","parent_name":"SCCameraKitLensesComponent"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html#/c:objc(pl)SCCameraKitLensRepositorySpecificObserver(im)repository:didUpdateLens:forGroupID:":{"name":"-repository:didUpdateLens:forGroupID:","abstract":"

Notifies that an observed specific lens in a group has changed.

","parent_name":"SCCameraKitLensRepositorySpecificObserver"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html#/c:objc(pl)SCCameraKitLensRepositorySpecificObserver(im)repository:didFailToUpdateLensID:forGroupID:error:":{"name":"-repository:didFailToUpdateLensID:forGroupID:error:","abstract":"

Notifies that an observed specific lens in a group has failed to be fetched.

","parent_name":"SCCameraKitLensRepositorySpecificObserver"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html#/c:objc(pl)SCCameraKitLensRepositoryGroupObserver(im)repository:didUpdateLenses:forGroupID:":{"name":"-repository:didUpdateLenses:forGroupID:","abstract":"

Notifies that an observed group’s lenses have changed.

","parent_name":"SCCameraKitLensRepositoryGroupObserver"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html#/c:objc(pl)SCCameraKitLensRepositoryGroupObserver(im)repository:didFailToUpdateLensesForGroupID:error:":{"name":"-repository:didFailToUpdateLensesForGroupID:error:","abstract":"

Notifies that an observed group’s lenses failed to be fetched.

","parent_name":"SCCameraKitLensRepositoryGroupObserver"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceProvider(py)supportedApiSpecIds":{"name":"supportedApiSpecIds","abstract":"

The set of api spec identifiers that this provider supports.

","parent_name":"SCCameraKitLensRemoteApiServiceProvider"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceProvider(im)remoteApiServiceForLens:":{"name":"-remoteApiServiceForLens:","abstract":"

Returns the remote api service used for processing requests sent by the lens.","parent_name":"SCCameraKitLensRemoteApiServiceProvider"},"Protocols/SCCameraKitLensRemoteApiService.html#/c:objc(pl)SCCameraKitLensRemoteApiService(im)processRequest:responseHandler:":{"name":"-processRequest:responseHandler:","abstract":"

Process the remote api request sent by a lens. Returns a call associated with the request.

","parent_name":"SCCameraKitLensRemoteApiService"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceCall(py)status":{"name":"status","abstract":"

The status of the call associated with the request.

","parent_name":"SCCameraKitLensRemoteApiServiceCall"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html#/c:objc(pl)SCCameraKitLensRemoteApiServiceCall(im)cancelRequest":{"name":"-cancelRequest","abstract":"

Cancel the request call. This is usually sent if the lens no longer needs a response to the remote api request it","parent_name":"SCCameraKitLensRemoteApiServiceCall"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)request":{"name":"request","abstract":"

Remote api service request sent by a lens.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)status":{"name":"status","abstract":"

Status of the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)metadata":{"name":"metadata","abstract":"

A map of named metadata associated with the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiResponse.html#/c:objc(pl)SCCameraKitLensRemoteApiResponse(py)body":{"name":"body","abstract":"

Additional response payload as bytes.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)requestId":{"name":"requestId","abstract":"

Unique id of the request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)apiSpecId":{"name":"apiSpecId","abstract":"

Unique id of the remote API service specification.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)endpointId":{"name":"endpointId","abstract":"

Unique id of the remote API service endpoint requested by this request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)parameters":{"name":"parameters","abstract":"

A map of named parameters associated with the request.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensRemoteApiRequest.html#/c:objc(pl)SCCameraKitLensRemoteApiRequest(py)body":{"name":"body","abstract":"

Additional request payload as bytes.

","parent_name":"SCCameraKitLensRemoteApiRequest"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processor:didApplyLens:":{"name":"-processor:didApplyLens:","abstract":"

Notifies that the lens processor did apply lens

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processorDidIdle:":{"name":"-processorDidIdle:","abstract":"

Notifies that the lens processor did clear any active lens and is now in an “idle” state

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessorObserver.html#/c:objc(pl)SCCameraKitLensProcessorObserver(im)processor:firstFrameDidBecomeReadyForLens:":{"name":"-processor:firstFrameDidBecomeReadyForLens:","abstract":"

Notifies the listener that the first frame with the lens applied is ready

","parent_name":"SCCameraKitLensProcessorObserver"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(py)hintDelegate":{"name":"hintDelegate","abstract":"

Lens hint delegate to show/hide hints for applied lenses

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(py)audioMuted":{"name":"audioMuted","abstract":"

Specifies whether lenses will have their audio muted. NO by default.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)applyLens:launchData:completion:":{"name":"-applyLens:launchData:completion:","abstract":"

Applies a specified lens.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)clearWithCompletion:":{"name":"-clearWithCompletion:","abstract":"

Removes any applied lenses.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)configureTouchHandlingInView:gestureRecognizerDelegate:":{"name":"-configureTouchHandlingInView:gestureRecognizerDelegate:","abstract":"

Configures touch handling for a given view.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)removeTouchHandlingInView:":{"name":"-removeTouchHandlingInView:","abstract":"

Clears all touch handling for a given view

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)setAudioMuted:completion:":{"name":"-setAudioMuted:completion:","abstract":"

Mutes or unmutes audio.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)processImage:":{"name":"-processImage:","abstract":"

Process image with lens effect using current camera session configuration

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)addObserver:":{"name":"-addObserver:","abstract":"

Adds observer to receive notifications of changes to lens processor state.","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensProcessor.html#/c:objc(pl)SCCameraKitLensProcessor(im)removeObserver:":{"name":"-removeObserver:","abstract":"

Removes observer from receiving notifications of changes to lens availability.

","parent_name":"SCCameraKitLensProcessor"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)prefetchLenses:completion:":{"name":"-prefetchLenses:completion:","abstract":"

Queues up a new fetch task for each of the lenses in order to prefetch their content.","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)addStatusObserver:forLens:":{"name":"-addStatusObserver:forLens:","abstract":"

Add observer to observe changes in lens fetch status

","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcher.html#/c:objc(pl)SCCameraKitLensPrefetcher(im)removeStatusObserver:forLens:":{"name":"-removeStatusObserver:forLens:","abstract":"

Remove observer to stop observing changes in lens fetch status

","parent_name":"SCCameraKitLensPrefetcher"},"Protocols/SCCameraKitLensPrefetcherTask.html#/c:objc(pl)SCCameraKitLensPrefetcherTask(im)cancel":{"name":"-cancel","abstract":"

Cancel prefetch task if it’s ongoing

","parent_name":"SCCameraKitLensPrefetcherTask"},"Protocols/SCCameraKitLensPrefetcherObserver.html#/c:objc(pl)SCCameraKitLensPrefetcherObserver(im)prefetcher:didUpdateLens:status:":{"name":"-prefetcher:didUpdateLens:status:","abstract":"

Notification when fetcher updates lens fetch status

","parent_name":"SCCameraKitLensPrefetcherObserver"},"Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderMediaApplicationDelegate(im)mediaPickerProvider:requestedApplicationOfOriginalAssets:url:metadata:":{"name":"-mediaPickerProvider:requestedApplicationOfOriginalAssets:url:metadata:","abstract":"

Notifies lenses that the media picker provider has loaded the full resolution version of an asset and is ready for","parent_name":"SCCameraKitLensMediaPickerProviderMediaApplicationDelegate"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderUIDelegate(im)mediaPickerProviderRequestedUIPresentation:":{"name":"-mediaPickerProviderRequestedUIPresentation:","abstract":"

Requests media picker UI be displayed.

","parent_name":"SCCameraKitLensMediaPickerProviderUIDelegate"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html#/c:objc(pl)SCCameraKitLensMediaPickerProviderUIDelegate(im)mediaPickerProviderRequestedUIDismissal:":{"name":"-mediaPickerProviderRequestedUIDismissal:","abstract":"

Requests media picker UI be dismissed.

","parent_name":"SCCameraKitLensMediaPickerProviderUIDelegate"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)identifier":{"name":"identifier","abstract":"

A unique identifier for the asset.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)type":{"name":"type","abstract":"

Whether the asset is an image or video.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)duration":{"name":"duration","abstract":"

If the asset is a video, the length of the video in seconds. Otherwise 0.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerAsset.html#/c:objc(pl)SCCameraKitLensMediaPickerAsset(py)previewImage":{"name":"previewImage","abstract":"

A thumbnail for the image or video. For images, this will be cropped to show any detected faces.

","parent_name":"SCCameraKitLensMediaPickerAsset"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)mediaApplicationDelegate":{"name":"mediaApplicationDelegate","abstract":"

A delegate that must be notified when loadAndApplyOriginalMediaFromAsset: finishes loading an original asset.","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)uiDelegate":{"name":"uiDelegate","abstract":"

A delegate that will be notified when picker-related UI should be shown or hidden.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)fetchedAssetCount":{"name":"fetchedAssetCount","abstract":"

The number of assets that have been fetched and may be displayed by the picker UI.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(py)hasMoreAssetsToFetch":{"name":"hasMoreAssetsToFetch","abstract":"

Whether or not the data provider has more assets available to fetch.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)fetchNextAssetBatchOfSize:queue:completion:":{"name":"-fetchNextAssetBatchOfSize:queue:completion:","abstract":"

Fetches a new batch of assets.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)fetchedAssetAtIndex:":{"name":"-fetchedAssetAtIndex:","abstract":"

Retrieves a fetched asset at a given index.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)loadAndApplyOriginalMediaFromAsset:completion:":{"name":"-loadAndApplyOriginalMediaFromAsset:completion:","abstract":"

Loads the full resolution backing asset of a specified asset and applies it to lenses.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensMediaPickerProvider.html#/c:objc(pl)SCCameraKitLensMediaPickerProvider(im)reconfigureWithAllowedTypes:":{"name":"-reconfigureWithAllowedTypes:","abstract":"

Invalidates and resets internal state of the provider with a newly specified allowed media type option set.

","parent_name":"SCCameraKitLensMediaPickerProvider"},"Protocols/SCCameraKitLensHintProvider.html#/c:objc(pl)SCCameraKitLensHintProvider(im)localizedHintForHintId:lens:":{"name":"-localizedHintForHintId:lens:","abstract":"

Get localized hint for hint id

","parent_name":"SCCameraKitLensHintProvider"},"Protocols/SCCameraKitLensHintDelegate.html#/c:objc(pl)SCCameraKitLensHintDelegate(im)lensProcessor:shouldDisplayHint:forLens:autohide:":{"name":"-lensProcessor:shouldDisplayHint:forLens:autohide:","abstract":"

Notifies receiver that they should show hint for current lens

","parent_name":"SCCameraKitLensHintDelegate"},"Protocols/SCCameraKitLensHintDelegate.html#/c:objc(pl)SCCameraKitLensHintDelegate(im)lensProcessor:shouldHideAllHintsForLens:":{"name":"-lensProcessor:shouldHideAllHintsForLens:","abstract":"

Notifies receiver that they should remove all hints for current lens

","parent_name":"SCCameraKitLensHintDelegate"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)identifier":{"name":"identifier","abstract":"

A unique identifier for the lens.

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)groupIdentifier":{"name":"groupIdentifier","abstract":"

A unique identifier for the group that the lens belongs to

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)name":{"name":"name","abstract":"

The name for the lens

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)iconUrl":{"name":"iconUrl","abstract":"

URL for icon image

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)preview":{"name":"preview","abstract":"

Lens preview instance

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)vendorData":{"name":"vendorData","abstract":"

Extra metadata provided from vendor

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)facingPreference":{"name":"facingPreference","abstract":"

Specifies which facing a lens is designed for.

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLens.html#/c:objc(pl)SCCameraKitLens(py)snapcodes":{"name":"snapcodes","abstract":"

Lens Snapcodes instance

","parent_name":"SCCameraKitLens"},"Protocols/SCCameraKitLensSnapcodes.html#/c:objc(pl)SCCameraKitLensSnapcodes(py)imageUrl":{"name":"imageUrl","abstract":"

Image URL for Snapcode

","parent_name":"SCCameraKitLensSnapcodes"},"Protocols/SCCameraKitLensSnapcodes.html#/c:objc(pl)SCCameraKitLensSnapcodes(py)deeplink":{"name":"deeplink","abstract":"

Deeplink URL for Snapcode

","parent_name":"SCCameraKitLensSnapcodes"},"Protocols/SCCameraKitLensPreview.html#/c:objc(pl)SCCameraKitLensPreview(py)imageUrl":{"name":"imageUrl","abstract":"

URL for image preview

","parent_name":"SCCameraKitLensPreview"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)destination":{"name":"destination","abstract":"

The intermediate destination for frame data. See the protocol definition for more details.","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)horizontalFieldOfView":{"name":"horizontalFieldOfView","abstract":"

The horizontal field of view for the input.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)frameSize":{"name":"frameSize","abstract":"

The size for input frame

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)frameOrientation":{"name":"frameOrientation","abstract":"

The orientation of frame data for the input.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)position":{"name":"position","abstract":"

The camera position that the frames are sourced from.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(py)isRunning":{"name":"isRunning","abstract":"

Whether or not the session is currently running.

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)startRunning":{"name":"-startRunning","abstract":"

Indiciates that the input should begin running if it is not currently. If the input is aleady running, this should","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)stopRunning":{"name":"-stopRunning","abstract":"

Indiciates that the input should MUST stop running if it currently is running. If the input is not already running,","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInput.html#/c:objc(pl)SCCameraKitInput(im)setVideoOrientation:":{"name":"-setVideoOrientation:","abstract":"

Set the orientation for the outputted video buffers

","parent_name":"SCCameraKitInput"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)input:receivedVideoSampleBuffer:":{"name":"-input:receivedVideoSampleBuffer:","abstract":"

Pass new video frame data into CameraKit. Call this every time your input generates new video frames.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)input:receivedAudioSampleBuffer:":{"name":"-input:receivedAudioSampleBuffer:","abstract":"

Pass new audio frame data into CameraKit. Call this every time your input generates new audio frames.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitInputDestination.html#/c:objc(pl)SCCameraKitInputDestination(im)inputChangedAttributes:":{"name":"-inputChangedAttributes:","abstract":"

Indicates that the input has changed some attribute and that CameraKit should reconfigure itself accordingly.

","parent_name":"SCCameraKitInputDestination"},"Protocols/SCCameraKitErrorHandler.html#/c:objc(pl)SCCameraKitErrorHandler(im)handleError:":{"name":"-handleError:","abstract":"

Handle error thrown by CameraKit

","parent_name":"SCCameraKitErrorHandler"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(py)deviceMotion":{"name":"deviceMotion","abstract":"

Current device motion data

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(im)startUpdatingWithParameters:":{"name":"-startUpdatingWithParameters:","abstract":"

Start updating device motion with params

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionDataProvider.html#/c:objc(pl)SCCameraKitDeviceMotionDataProvider(im)stopUpdating":{"name":"-stopUpdating","abstract":"

Stop updating device motion

","parent_name":"SCCameraKitDeviceMotionDataProvider"},"Protocols/SCCameraKitDeviceMotionParameters.html#/c:objc(pl)SCCameraKitDeviceMotionParameters(py)requiresCompassAlignment":{"name":"requiresCompassAlignment","abstract":"

Requires device motion interface to be aligned with compass

","parent_name":"SCCameraKitDeviceMotionParameters"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)requiresNewAgreementAcceptance":{"name":"requiresNewAgreementAcceptance","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)childrenProtectionActRestricted":{"name":"childrenProtectionActRestricted","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(py)newestAvailableAgreements":{"name":"newestAvailableAgreements","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(im)acceptAgreements:":{"name":"-acceptAgreements:","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsStore.html#/c:objc(pl)SCCameraKitAgreementsStore(im)declineAgreements:":{"name":"-declineAgreements:","abstract":"

Undocumented

","parent_name":"SCCameraKitAgreementsStore"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html#/c:objc(pl)SCCameraKitAgreementsPresentationContextProvider(py)viewControllerForPresentingAgreements":{"name":"viewControllerForPresentingAgreements","abstract":"

The view controller to present the agreements view controller from.

","parent_name":"SCCameraKitAgreementsPresentationContextProvider"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html#/c:objc(pl)SCCameraKitAgreementsPresentationContextProvider(im)dismissAgreementsViewController:accepted:":{"name":"-dismissAgreementsViewController:accepted:","abstract":"

Requests that the view controller passed be dismissed, with acceptance status.

","parent_name":"SCCameraKitAgreementsPresentationContextProvider"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)termsOfServiceURL":{"name":"termsOfServiceURL","abstract":"

A URL to the terms of service agreement for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)privacyPolicyURL":{"name":"privacyPolicyURL","abstract":"

A URL to the privacy policy for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAgreementSet.html#/c:objc(pl)SCCameraKitAgreementSet(py)learnMoreURL":{"name":"learnMoreURL","abstract":"

A URL to the learn more page for CameraKit.

","parent_name":"SCCameraKitAgreementSet"},"Protocols/SCCameraKitAdjustmentsProcessorObserver.html#/c:objc(pl)SCCameraKitAdjustmentsProcessorObserver(im)processorUpdatedAdjustmentsAvailability:":{"name":"-processorUpdatedAdjustmentsAvailability:","abstract":"

Notifies that the adjustments processor updated the state of available adjustments

","parent_name":"SCCameraKitAdjustmentsProcessorObserver"},"Protocols/SCCameraKitAdjustmentsComponent.html#/c:objc(pl)SCCameraKitAdjustmentsComponent(py)processor":{"name":"processor","abstract":"

Handles the actual adjustment application. Will be null if CameraKit is not running with a valid input.

","parent_name":"SCCameraKitAdjustmentsComponent"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)isAdjustmentAvailable:":{"name":"-isAdjustmentAvailable:","abstract":"

Checks if an adjustment is available and supported by the current device. Some adjustments are performance sensitive","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)applyAdjustment:error:":{"name":"-applyAdjustment:error:","abstract":"

Applies the specified adjustment.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)removeAdjustmentController:":{"name":"-removeAdjustmentController:","abstract":"

Removes an adjustment.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)addObserver:":{"name":"-addObserver:","abstract":"

Adds observer to receive notifications of changes to adjustments processor state.","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitAdjustmentsProcessor.html#/c:objc(pl)SCCameraKitAdjustmentsProcessor(im)removeObserver:":{"name":"-removeObserver:","abstract":"

Removes observer from receiving notifications of changes to adjustments availability.

","parent_name":"SCCameraKitAdjustmentsProcessor"},"Protocols/SCCameraKitPortraitAdjustmentController.html#/c:objc(pl)SCCameraKitPortraitAdjustmentController(py)blur":{"name":"blur","abstract":"

How blurred the background is. Ranges from 0.0 to 1.0. A value of 0.0 is “not blurred at all” while 1.0 is","parent_name":"SCCameraKitPortraitAdjustmentController"},"Protocols/SCCameraKitToneMapAdjustmentController.html#/c:objc(pl)SCCameraKitToneMapAdjustmentController(py)amount":{"name":"amount","abstract":"

The “amount” of adjustment applied to the tone mapping algorithm. Ranges from 0.0 to 1.0. A value of 0.5 is the","parent_name":"SCCameraKitToneMapAdjustmentController"},"Protocols/SCCameraKitAccessTokenProvider.html#/c:objc(pl)SCCameraKitAccessTokenProvider(im)fetchAccessTokenIfAuthenticatedWithCompletion:":{"name":"-fetchAccessTokenIfAuthenticatedWithCompletion:","abstract":"

If the user is already authenticated, fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc.","parent_name":"SCCameraKitAccessTokenProvider"},"Protocols/SCCameraKitAccessTokenProvider.html#/c:objc(pl)SCCameraKitAccessTokenProvider(im)fetchAccessTokenWithCompletion:":{"name":"-fetchAccessTokenWithCompletion:","abstract":"

Fetch a valid/non-expired access token to be used by some features like connected lenses, push to device, etc.","parent_name":"SCCameraKitAccessTokenProvider"},"Protocols/SCCameraKitAccessTokenProviderTask.html#/c:objc(pl)SCCameraKitAccessTokenProviderTask(im)cancel":{"name":"-cancel","abstract":"

Cancels fetching access token if it’s currently in progress;

","parent_name":"SCCameraKitAccessTokenProviderTask"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)session":{"name":"session","abstract":"

The managed ARSession.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)arDelegate":{"name":"arDelegate","abstract":"

The intermediate destination for ARKit delegate methods. See the protocol definition for more details.","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(py)frontCameraConfiguration":{"name":"frontCameraConfiguration","abstract":"

The ARConfiguration to use when using the front camera.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(im)runWithConfiguration:options:":{"name":"-runWithConfiguration:options:","abstract":"

Runs the session with the provided configuration and options.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInput.html#/c:objc(pl)SCCameraKitARInput(im)pause":{"name":"-pause","abstract":"

Pauses the session.

","parent_name":"SCCameraKitARInput"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didAddAnchors:":{"name":"-input:didAddAnchors:","abstract":"

Method to call when the input receives session:didAddAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didUpdateAnchors:":{"name":"-input:didUpdateAnchors:","abstract":"

Method to call when the input receives session:didUpdateAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitARInputDelegate.html#/c:objc(pl)SCCameraKitARInputDelegate(im)input:didRemoveAnchors:":{"name":"-input:didRemoveAnchors:","abstract":"

Method to call when the input receives session:didRemoveAnchors:

","parent_name":"SCCameraKitARInputDelegate"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)lenses":{"name":"lenses","abstract":"

Contains lenses related objects.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)adjustments":{"name":"adjustments","abstract":"

Contains adjustment related objects.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:":{"name":"-startWithInput:arInput:","abstract":"

Begin processing input frames with front camera position and portrait video orientation

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:","abstract":"

Deprecated. Use","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:agreementsPresentationContextProvider:","abstract":"

Deprecated. Use","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:":{"name":"-startWithInput:arInput:cameraPosition:videoOrientation:dataProvider:hintDelegate:textInputContextProvider:agreementsPresentationContextProvider:","abstract":"

Begin processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)stop":{"name":"-stop","abstract":"

End processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)stopWithCompletion:":{"name":"-stopWithCompletion:","abstract":"

End processing input frames.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)addOutput:":{"name":"-addOutput:","abstract":"

Add an output. Frames will still be processed if no outputs exist.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)removeOutput:":{"name":"-removeOutput:","abstract":"

Remove an output.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)cameraPosition":{"name":"cameraPosition","abstract":"

The camera position in use. Setting will automatically update the input.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)videoOrientation":{"name":"videoOrientation","abstract":"

The orientation for the outputted video buffers

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)activeInput":{"name":"activeInput","abstract":"

The active input. May be either standard camera input or the AR input, depending on lens requirements.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(py)agreementsStore":{"name":"agreementsStore","abstract":"

Store containing information above the acceptance state of terms of service

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html#/c:objc(pl)SCCameraKitProtocol(im)presentAgreementsImmediately":{"name":"-presentAgreementsImmediately","abstract":"

Presents any agreements such as Terms of Service or Privacy Policy for CameraKit immediately, if needed.

","parent_name":"SCCameraKitProtocol"},"Protocols/SCCameraKitProtocol.html":{"name":"SCCameraKitProtocol","abstract":"

Undocumented

"},"Protocols/SCCameraKitARInputDelegate.html":{"name":"SCCameraKitARInputDelegate","abstract":"

Propogates ARKit session delegate methods back to CameraKit."},"Protocols/SCCameraKitARInput.html":{"name":"SCCameraKitARInput","abstract":"

Describes a source of AR data for CameraKit.

"},"Protocols/SCCameraKitAccessTokenProviderTask.html":{"name":"SCCameraKitAccessTokenProviderTask","abstract":"

Describes an interface that will handle fetching the access token.

"},"Protocols/SCCameraKitAccessTokenProvider.html":{"name":"SCCameraKitAccessTokenProvider","abstract":"

Describes an interface to provide an access token (ie. from LoginKit) required by some features like connected"},"Protocols.html#/c:objc(pl)SCCameraKitAdjustment":{"name":"SCCameraKitAdjustment","abstract":"

Protocol describing the Objective-C interface to an Adjustment.

"},"Protocols.html#/c:objc(pl)SCCameraKitAdjustmentController":{"name":"SCCameraKitAdjustmentController","abstract":"

Protocol describing the Objective-C interface to an Adjustment Controller.

"},"Protocols/SCCameraKitToneMapAdjustmentController.html":{"name":"SCCameraKitToneMapAdjustmentController","abstract":"

A controller to control the tone map adjustment.

"},"Protocols/SCCameraKitPortraitAdjustmentController.html":{"name":"SCCameraKitPortraitAdjustmentController","abstract":"

A controller to control the portrait adjustment.

"},"Protocols/SCCameraKitAdjustmentsProcessor.html":{"name":"SCCameraKitAdjustmentsProcessor","abstract":"

The adjustments processor handles adjusting camera frames before they are processed by lenses.

"},"Protocols/SCCameraKitAdjustmentsComponent.html":{"name":"SCCameraKitAdjustmentsComponent","abstract":"

The adjustments component wraps several adjustment-related classes.

"},"Protocols/SCCameraKitAdjustmentsProcessorObserver.html":{"name":"SCCameraKitAdjustmentsProcessorObserver","abstract":"

Allows conformers to be notified of changes to adjustments processor state

"},"Protocols/SCCameraKitAgreementSet.html":{"name":"SCCameraKitAgreementSet","abstract":"

Protocol to interface with agreements by CameraKit"},"Protocols/SCCameraKitAgreementsPresentationContextProvider.html":{"name":"SCCameraKitAgreementsPresentationContextProvider","abstract":"

Describes an interface to provide presentation context for CameraKit to present agreements.

"},"Protocols/SCCameraKitAgreementsStore.html":{"name":"SCCameraKitAgreementsStore","abstract":"

Protocol describing the CameraKit agreements store.

"},"Protocols/SCCameraKitDeviceMotionParameters.html":{"name":"SCCameraKitDeviceMotionParameters","abstract":"

Params for device motion interface

"},"Protocols/SCCameraKitDeviceMotionDataProvider.html":{"name":"SCCameraKitDeviceMotionDataProvider","abstract":"

Protocol to provide device motion data and handle starting/updating/stopping

"},"Protocols/SCCameraKitErrorHandler.html":{"name":"SCCameraKitErrorHandler","abstract":"

Describes an interface to handler errors and exceptions related to CameraKit

"},"Protocols/SCCameraKitInputDestination.html":{"name":"SCCameraKitInputDestination","abstract":"

The input destination is an intermediary for frame data.

"},"Protocols/SCCameraKitInput.html":{"name":"SCCameraKitInput","abstract":"

Describes a source of frames for CameraKit. Can be a camera, file, etc.

"},"Protocols/SCCameraKitLensPreview.html":{"name":"SCCameraKitLensPreview","abstract":"

Describes an interface that contains lens preview data

"},"Protocols/SCCameraKitLensSnapcodes.html":{"name":"SCCameraKitLensSnapcodes","abstract":"

Describes an interface that contains lens snapcodes data

"},"Protocols/SCCameraKitLens.html":{"name":"SCCameraKitLens","abstract":"

Describes a lens object.

"},"Protocols/SCCameraKitLensHintDelegate.html":{"name":"SCCameraKitLensHintDelegate","abstract":"

Lens hint delegate used to notify receivers when to show/hide hints for applied lenses

"},"Protocols/SCCameraKitLensHintProvider.html":{"name":"SCCameraKitLensHintProvider","abstract":"

Describes an interface used to provide lens hint localizations from hint ids

"},"Protocols.html#/c:objc(pl)SCCameraKitLensLaunchData":{"name":"SCCameraKitLensLaunchData","abstract":"

An opaque protocol used to pass launch data to processor when applying lens

"},"Protocols/SCCameraKitLensMediaPickerProvider.html":{"name":"SCCameraKitLensMediaPickerProvider","abstract":"

Undocumented

"},"Protocols/SCCameraKitLensMediaPickerAsset.html":{"name":"SCCameraKitLensMediaPickerAsset","abstract":"

An asset provided by the picker. May be backed by a PHAsset, or an app’s own custom media type.

"},"Protocols/SCCameraKitLensMediaPickerProviderUIDelegate.html":{"name":"SCCameraKitLensMediaPickerProviderUIDelegate","abstract":"

Delegate responsible for handling UI events related to the provider, such as showing/hiding a picker.

"},"Protocols/SCCameraKitLensMediaPickerProviderMediaApplicationDelegate.html":{"name":"SCCameraKitLensMediaPickerProviderMediaApplicationDelegate","abstract":"

Delegate responsible for applying media to a lens. This should not be implemented directly.

"},"Protocols/SCCameraKitLensPrefetcherObserver.html":{"name":"SCCameraKitLensPrefetcherObserver","abstract":"

Describes an interface used to observe changes in lens fetch status

"},"Protocols/SCCameraKitLensPrefetcherTask.html":{"name":"SCCameraKitLensPrefetcherTask","abstract":"

Describes the interface used to cancel an ongoing prefetch task

"},"Protocols/SCCameraKitLensPrefetcher.html":{"name":"SCCameraKitLensPrefetcher","abstract":"

Describes the interface used to prefetch lens content

"},"Protocols/SCCameraKitLensProcessor.html":{"name":"SCCameraKitLensProcessor","abstract":"

The lens processor handles transforming camera frames and adding effects to them.

"},"Protocols/SCCameraKitLensProcessorObserver.html":{"name":"SCCameraKitLensProcessorObserver","abstract":"

Allows conformers to be notified of changes to lens processor state

"},"Protocols/SCCameraKitLensRemoteApiRequest.html":{"name":"SCCameraKitLensRemoteApiRequest","abstract":"

Describes the remote api service request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiResponse.html":{"name":"SCCameraKitLensRemoteApiResponse","abstract":"

Describes the remote api service response to a request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiServiceCall.html":{"name":"SCCameraKitLensRemoteApiServiceCall","abstract":"

Describes the call that is sent in response to a remote api request sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiService.html":{"name":"SCCameraKitLensRemoteApiService","abstract":"

Describes a remote api service used to process requests sent by a lens.

"},"Protocols/SCCameraKitLensRemoteApiServiceProvider.html":{"name":"SCCameraKitLensRemoteApiServiceProvider","abstract":"

Describes an interface to provide remote api services for specific lenses and api spec identifiers.

"},"Protocols/SCCameraKitLensRepositoryGroupObserver.html":{"name":"SCCameraKitLensRepositoryGroupObserver","abstract":"

Allows conformers to be notified of changes to lens groups the repository has available.

"},"Protocols/SCCameraKitLensRepositorySpecificObserver.html":{"name":"SCCameraKitLensRepositorySpecificObserver","abstract":"

Allows conformers to be notified of changes to specific lenses in groups the repository has available.

"},"Protocols/SCCameraKitLensesComponent.html":{"name":"SCCameraKitLensesComponent","abstract":"

The lenses component wraps several lens-related classes.

"},"Protocols/SCCameraKitLensRepository.html":{"name":"SCCameraKitLensRepository","abstract":"

Lens Repository for listing lenses, getting lenses, etc.

"},"Protocols/SCCameraKitLocationParameters.html":{"name":"SCCameraKitLocationParameters","abstract":"

Params for device motion interface

"},"Protocols/SCCameraKitLocationDataProvider.html":{"name":"SCCameraKitLocationDataProvider","abstract":"

Protocol to provide device motion data and handle starting/updating/stopping

"},"Protocols/SCCameraKitOutput.html":{"name":"SCCameraKitOutput","abstract":"

Allows conformers to be notified of new frame data from CameraKit.

"},"Protocols/SCCameraKitPreferences.html":{"name":"SCCameraKitPreferences","abstract":"

Protocol to interface with preferences stored by CameraKit"},"Protocols/SCCameraKitTextInputKeyboardAccessoryProvider.html":{"name":"SCCameraKitTextInputKeyboardAccessoryProvider","abstract":"

Protocol for representing a text input view on-screen for lenses that request it.

"},"Protocols/SCCameraKitTextInputContextProvider.html":{"name":"SCCameraKitTextInputContextProvider","abstract":"

Protocol to provide keyboard input data to lenses.

"},"Protocols.html#/c:objc(pl)SCCameraKitTexture":{"name":"SCCameraKitTexture","abstract":"

An opaque protocol describing CameraKit output.

"},"Protocols/SCCameraKitUserDataProviderDelegate.html":{"name":"SCCameraKitUserDataProviderDelegate","abstract":"

User data provider delegate to provide receivers with new user data on updates

"},"Protocols/SCCameraKitUserDataProvider.html":{"name":"SCCameraKitUserDataProvider","abstract":"

Describes an interface that provides user data to lenses

"},"Protocols/Adjustment.html":{"name":"Adjustment","abstract":"

Swift protocol for an adjustment. Specifies an associated Controller type.

"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeScaleToFill":{"name":"SCCameraKitPreviewViewContentModeScaleToFill","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeAspectFill":{"name":"SCCameraKitPreviewViewContentModeAspectFill","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitPreviewViewContentMode.html#/c:@E@SCCameraKitPreviewViewContentMode@SCCameraKitPreviewViewContentModeAspectFit":{"name":"SCCameraKitPreviewViewContentModeAspectFit","abstract":"

Undocumented

","parent_name":"SCCameraKitPreviewViewContentMode"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusIgnored":{"name":"SCCameraKitLensRemoteApiServiceCallStatusIgnored","abstract":"

Request was ignored typically due to a remote api service not interested in handling such request to allow other","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusOngoing":{"name":"SCCameraKitLensRemoteApiServiceCallStatusOngoing","abstract":"

Request was received but one or more responses are yet to be sent.

","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html#/c:@E@SCCameraKitLensRemoteApiServiceCallStatus@SCCameraKitLensRemoteApiServiceCallStatusAnswered":{"name":"SCCameraKitLensRemoteApiServiceCallStatusAnswered","abstract":"

Request was received and a single response was sent indicating that the call is complete.

","parent_name":"SCCameraKitLensRemoteApiServiceCallStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusSuccess":{"name":"SCCameraKitLensRemoteApiResponseStatusSuccess","abstract":"

Request succeeded.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusRedirected":{"name":"SCCameraKitLensRemoteApiResponseStatusRedirected","abstract":"

Request was redirected.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusBadRequest":{"name":"SCCameraKitLensRemoteApiResponseStatusBadRequest","abstract":"

Invalid request.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusAccessDenied":{"name":"SCCameraKitLensRemoteApiResponseStatusAccessDenied","abstract":"

Caller doesn’t have permission to access resource.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusNotFound":{"name":"SCCameraKitLensRemoteApiResponseStatusNotFound","abstract":"

Resource not found.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusTimeout":{"name":"SCCameraKitLensRemoteApiResponseStatusTimeout","abstract":"

Request timed out.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusRequestTooLarge":{"name":"SCCameraKitLensRemoteApiResponseStatusRequestTooLarge","abstract":"

Request too large.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusInternalServiceError":{"name":"SCCameraKitLensRemoteApiResponseStatusInternalServiceError","abstract":"

Internal service error.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html#/c:@E@SCCameraKitLensRemoteApiResponseStatus@SCCameraKitLensRemoteApiResponseStatusCancelled":{"name":"SCCameraKitLensRemoteApiResponseStatusCancelled","abstract":"

Request cancelled by caller.

","parent_name":"SCCameraKitLensRemoteApiResponseStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusUnloaded":{"name":"SCCameraKitLensFetchStatusUnloaded","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusLoading":{"name":"SCCameraKitLensFetchStatusLoading","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensFetchStatus.html#/c:@E@SCCameraKitLensFetchStatus@SCCameraKitLensFetchStatusLoaded":{"name":"SCCameraKitLensFetchStatusLoaded","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFetchStatus"},"Enums/SCCameraKitLensMediaPickerAssetType.html#/c:@E@SCCameraKitLensMediaPickerAssetType@SCCameraKitLensMediaPickerAssetTypeImage":{"name":"SCCameraKitLensMediaPickerAssetTypeImage","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetType"},"Enums/SCCameraKitLensMediaPickerAssetType.html#/c:@E@SCCameraKitLensMediaPickerAssetType@SCCameraKitLensMediaPickerAssetTypeVideo":{"name":"SCCameraKitLensMediaPickerAssetTypeVideo","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerAssetType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html#/c:@E@SCCameraKitLensMediaPickerProviderAllowedMediaType@SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderAllowedMediaType"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceNone":{"name":"SCCameraKitLensFacingPreferenceNone","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceFront":{"name":"SCCameraKitLensFacingPreferenceFront","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitLensFacingPreference.html#/c:@E@SCCameraKitLensFacingPreference@SCCameraKitLensFacingPreferenceBack":{"name":"SCCameraKitLensFacingPreferenceBack","abstract":"

Undocumented

","parent_name":"SCCameraKitLensFacingPreference"},"Enums/SCCameraKitAdjustmentsComponentError.html#/c:@E@SCCameraKitAdjustmentsComponentError@SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment":{"name":"SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment","abstract":"

Undocumented

","parent_name":"SCCameraKitAdjustmentsComponentError"},"Enums.html#/c:@E@ARSessionRunOptions":{"name":"ARSessionRunOptions","abstract":"

Undocumented

"},"Enums/SCCameraKitAdjustmentsComponentError.html":{"name":"SCCameraKitAdjustmentsComponentError","abstract":"

Undocumented

"},"Enums/SCCameraKitLensFacingPreference.html":{"name":"SCCameraKitLensFacingPreference","abstract":"

Describes all posible facings (inversely relative to the user) that a lens can be designed for.

"},"Enums/SCCameraKitLensMediaPickerProviderAllowedMediaType.html":{"name":"SCCameraKitLensMediaPickerProviderAllowedMediaType","abstract":"

Undocumented

"},"Enums/SCCameraKitLensMediaPickerAssetType.html":{"name":"SCCameraKitLensMediaPickerAssetType","abstract":"

Undocumented

"},"Enums/SCCameraKitLensFetchStatus.html":{"name":"SCCameraKitLensFetchStatus","abstract":"

Describes the fetch status for the lens"},"Enums/SCCameraKitLensRemoteApiResponseStatus.html":{"name":"SCCameraKitLensRemoteApiResponseStatus","abstract":"

Describes the status of the response sent to the lens.

"},"Enums/SCCameraKitLensRemoteApiServiceCallStatus.html":{"name":"SCCameraKitLensRemoteApiServiceCallStatus","abstract":"

Describes the status of the call for the request handled by a remote api service.

"},"Enums/SCCameraKitPreviewViewContentMode.html":{"name":"SCCameraKitPreviewViewContentMode","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitVersion":{"name":"SCCameraKitVersion","abstract":"

Short CameraKit version (ie 1.8.0)

"},"Constants.html#/c:@SCCameraKitLensCoreVersion":{"name":"SCCameraKitLensCoreVersion","abstract":"

LensCore version (ie 243)

"},"Constants.html#/c:@SCCameraKitAdjustmentsComponentErrorDomain":{"name":"SCCameraKitAdjustmentsComponentErrorDomain","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorUnspecified":{"name":"SCCameraKitErrorUnspecified","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensMetadataNotFound":{"name":"SCCameraKitErrorLensMetadataNotFound","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensContentNotFound":{"name":"SCCameraKitErrorLensContentNotFound","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensContentUrlMissing":{"name":"SCCameraKitErrorLensContentUrlMissing","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorLensChecksumMissing":{"name":"SCCameraKitErrorLensChecksumMissing","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitErrorCannotWriteToFile":{"name":"SCCameraKitErrorCannotWriteToFile","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitExceptionUnauthorized":{"name":"SCCameraKitExceptionUnauthorized","abstract":"

Reported when SCCameraKitClientID in Info.plist is missing or invalid.

"},"Constants.html#/c:@SCCameraKitExceptionInvalidApplicationState":{"name":"SCCameraKitExceptionInvalidApplicationState","abstract":"

Reported when backend fails to authenticate client."},"Constants.html#/c:@SCCameraKitExceptionInvalidLens":{"name":"SCCameraKitExceptionInvalidLens","abstract":"

Reported when trying to pass an invalid lens class that’s different than the internal ones we support.

"},"Constants.html#/c:@SCCameraKitExceptionInvalidTexture":{"name":"SCCameraKitExceptionInvalidTexture","abstract":"

Reported when trying to draw an invalid texture class that’s different than the internal ones we support.

"},"Constants.html#/c:@SCCameraKitExceptionProcessingLensFailure":{"name":"SCCameraKitExceptionProcessingLensFailure","abstract":"

Reported whne processing fails due to a lens error. Lens errors are normally caused by"},"Constants.html#/c:@SCCameraKitExceptionProcessingInternalFailure":{"name":"SCCameraKitExceptionProcessingInternalFailure","abstract":"

Reported when processing fails due to an internal error. Cause of such errors can be bugs in the"},"Constants.html#/c:@SCCameraKitLensRepositoryBundledGroup":{"name":"SCCameraKitLensRepositoryBundledGroup","abstract":"

Undocumented

"},"Constants.html#/c:@SCCameraKitLensesComponentErrorDomain":{"name":"SCCameraKitLensesComponentErrorDomain","abstract":"

Undocumented

"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(py)displayName":{"name":"displayName","abstract":"

User’s full display name

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(py)birthDate":{"name":"birthDate","abstract":"

User’s birth date (optional)

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(im)initWithDisplayName:birthDate:":{"name":"-initWithDisplayName:birthDate:","abstract":"

Designated init to pass in user data fields

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(im)init":{"name":"-init","abstract":"

Use designated init or convenience init to pass in required user properties

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitUserData.html#/c:objc(cs)SCCameraKitUserData(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitUserData"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)apiToken":{"name":"apiToken","abstract":"

API token that is found in the dev portal

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)additionalConfigurationAttributes":{"name":"additionalConfigurationAttributes","abstract":"
","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApiToken:":{"name":"-initWithApiToken:","abstract":"

Designated init to pass in apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApiToken:additionalConfigurationAttributes:":{"name":"-initWithApiToken:additionalConfigurationAttributes:","abstract":"

Init to pass in apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(cm)new":{"name":"+new","abstract":"

Use designated init to pass in require applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(py)applicationId":{"name":"applicationId","abstract":"

applicationID/clientID that is found in the dev portal

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApplicationID:apiToken:":{"name":"-initWithApplicationID:apiToken:","abstract":"

Designated init to pass in applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitSessionConfig.html#/c:objc(cs)SCCameraKitSessionConfig(im)initWithApplicationID:apiToken:additionalConfigurationAttributes:":{"name":"-initWithApplicationID:apiToken:additionalConfigurationAttributes:","abstract":"

Init to pass in applicationID and apiToken

","parent_name":"SCCameraKitSessionConfig"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)automaticallyConfiguresTouchHandler":{"name":"automaticallyConfiguresTouchHandler","abstract":"

Configures the neccessary gesture recognizers for handling touch input in lenses.","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)automaticallyConfiguresViewport":{"name":"automaticallyConfiguresViewport","abstract":"

Configures the viewport upon changes to the view’s frame.","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)contentMode":{"name":"contentMode","abstract":"

Configures the content mode the preview view will use to render.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)safeArea":{"name":"safeArea","abstract":"

Configures the safe area to an explicitly specified rect.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(py)explicitViewportProvider":{"name":"explicitViewportProvider","abstract":"

Setting this property configures the preview view to use its viewportSize, outputResolution, and safeArea.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPreviewView.html#/c:objc(cs)SCCameraKitPreviewView(im)configureSafeAreaWithOccludingViews:":{"name":"-configureSafeAreaWithOccludingViews:","abstract":"

Automatically configures the safeArea property to avoid the specified views.

","parent_name":"SCCameraKitPreviewView"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)initWithCapturePhotoOutput:":{"name":"-initWithCapturePhotoOutput:","abstract":"

Instantiates a capturer with the specified AVCapturePhotoOutput and capture settings.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)capturePhotoWithCaptureSettings:outputSize:completion:":{"name":"-capturePhotoWithCaptureSettings:outputSize:completion:","abstract":"

Capture a photo and call a completion with the resulting image when done.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitPhotoCaptureOutput.html#/c:objc(cs)SCCameraKitPhotoCaptureOutput(im)capturePhotoWithCaptureSettings:completion:":{"name":"-capturePhotoWithCaptureSettings:completion:","abstract":"

Capture a photo and call a completion with the resulting image when done.

","parent_name":"SCCameraKitPhotoCaptureOutput"},"Classes/SCCameraKitLensesConfig.html#/c:objc(cs)SCCameraKitLensesConfig(py)cacheConfig":{"name":"cacheConfig","abstract":"

Cache config instance to configure cache properties

","parent_name":"SCCameraKitLensesConfig"},"Classes/SCCameraKitLensesConfig.html#/c:objc(cs)SCCameraKitLensesConfig(im)initWithCacheConfig:":{"name":"-initWithCacheConfig:","abstract":"

Init with cache config instance

","parent_name":"SCCameraKitLensesConfig"},"Classes/SCCameraKitCacheConfig.html#/c:objc(cs)SCCameraKitCacheConfig(py)lensContentMaxSize":{"name":"lensContentMaxSize","abstract":"

Max size in bytes for lens content cache

","parent_name":"SCCameraKitCacheConfig"},"Classes/SCCameraKitCacheConfig.html#/c:objc(cs)SCCameraKitCacheConfig(im)initWithLensContentMaxSize:":{"name":"-initWithLensContentMaxSize:","abstract":"

Init with specifed max size for lens content cache

","parent_name":"SCCameraKitCacheConfig"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(im)initWithRequest:status:metadata:body:":{"name":"-initWithRequest:status:metadata:body:","abstract":"

Designated init to pass in required properties for the response.

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(im)init":{"name":"-init","abstract":"

Use designated init to pass in required properties

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensRemoteApiResponse.html#/c:objc(cs)SCCameraKitLensRemoteApiResponse(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitLensRemoteApiResponse"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(im)initWithDefaultAssetTypes:":{"name":"-initWithDefaultAssetTypes:","abstract":"

Initializes the photo library provider.

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(im)init":{"name":"-init","abstract":"

Use designated init or convenience init

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html#/c:objc(cs)SCCameraKitLensMediaPickerProviderPhotoLibrary(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitLensMediaPickerProviderPhotoLibrary"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(py)launchData":{"name":"launchData","abstract":"

Builds and get launch data from current builder state

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addNumber:forKey:":{"name":"-addNumber:forKey:","abstract":"

Add number key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addNumberArray:forKey:":{"name":"-addNumberArray:forKey:","abstract":"

Add number array key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addString:forKey:":{"name":"-addString:forKey:","abstract":"

Add string key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)addStringArray:forKey:":{"name":"-addStringArray:forKey:","abstract":"

Add string array key-value pair to launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitLensLaunchDataBuilder.html#/c:objc(cs)SCCameraKitLensLaunchDataBuilder(im)removeValueForKey:":{"name":"-removeValueForKey:","abstract":"

Removes key-value pair from launch data

","parent_name":"SCCameraKitLensLaunchDataBuilder"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)initWithViewportSize:outputResolution:safeArea:":{"name":"-initWithViewportSize:outputResolution:safeArea:","abstract":"

Initializes the ExplicitViewportProvider with the specified viewportSize, outputResolution, and safeArea.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setViewportSize:":{"name":"-setViewportSize:","abstract":"

Sets the output viewport size and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setOutputResolution:":{"name":"-setOutputResolution:","abstract":"

Sets the output resolution and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)setSafeArea:":{"name":"-setSafeArea:","abstract":"

Sets the safe area and propagates the change to SCCameraKitPreviewView.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(im)init":{"name":"-init","abstract":"

Use the designated initializer to pass in the required properties.

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitExplicitViewportProvider.html#/c:objc(cs)SCCameraKitExplicitViewportProvider(cm)new":{"name":"+new","abstract":"

Undocumented

","parent_name":"SCCameraKitExplicitViewportProvider"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)deviceMotion":{"name":"deviceMotion","abstract":"

Device motion data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)userData":{"name":"userData","abstract":"

User data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)lensHint":{"name":"lensHint","abstract":"

Lens hint provider to provide lens hint localizations

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)location":{"name":"location","abstract":"

Location data provider

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)mediaPicker":{"name":"mediaPicker","abstract":"

Media picker provider for selecting and loading external images and video into lenses.

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(py)remoteApiServiceProviders":{"name":"remoteApiServiceProviders","abstract":"

List of remote api service providers to handle remote api requests sent by lenses.

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:mediaPicker:remoteApiServiceProviders:":{"name":"-initWithDeviceMotion:userData:lensHint:location:mediaPicker:remoteApiServiceProviders:","abstract":"

Designated init to pass in user data providers","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:":{"name":"-initWithDeviceMotion:userData:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:":{"name":"-initWithDeviceMotion:userData:lensHint:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:":{"name":"-initWithDeviceMotion:userData:lensHint:location:","abstract":"

Convenience init to mantain API compatibility","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitDataProviderComponent.html#/c:objc(cs)SCCameraKitDataProviderComponent(im)initWithDeviceMotion:userData:lensHint:location:mediaPicker:":{"name":"-initWithDeviceMotion:userData:lensHint:location:mediaPicker:","abstract":"

Convenience init to mantain API compatibility

","parent_name":"SCCameraKitDataProviderComponent"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(py)startDate":{"name":"startDate","abstract":"

Date and time of first video buffer recorded (ie. start recording time)

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)initWithAVAssetWriter:pixelBufferInput:audioInput:":{"name":"-initWithAVAssetWriter:pixelBufferInput:audioInput:","abstract":"

Create an AVWriterOutput

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(cm)new":{"name":"+new","abstract":"

Use designated init or convenience init to pass in required writer and inputs

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)init":{"name":"-init","abstract":"

Undocumented

","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)startRecording":{"name":"-startRecording","abstract":"

Call this after you start recording on the AVAssetWriter. This will indicate that the output should start recording","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVWriterOutput.html#/c:objc(cs)SCCameraKitAVWriterOutput(im)stopRecording":{"name":"-stopRecording","abstract":"

Call this before you stop recording on the AVAssetWriter. This will cause the output to stop recording data from","parent_name":"SCCameraKitAVWriterOutput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)videoMirrored":{"name":"videoMirrored","abstract":"

Describes whether the current video frames are mirrored

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)automaticallyConfiguresVideoMirrored":{"name":"automaticallyConfiguresVideoMirrored","abstract":"

Describes whether it should automatically configure outputted video frames to be mirrored.","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(py)audioEnabled":{"name":"audioEnabled","abstract":"

Determines whether or not this input will capture audio and pass audio buffer data to CameraKit.","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(im)initWithSession:":{"name":"-initWithSession:","abstract":"

Create an AV Session input.

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitAVSessionInput.html#/c:objc(cs)SCCameraKitAVSessionInput(im)initWithSession:audioEnabled:":{"name":"-initWithSession:audioEnabled:","abstract":"

Create an AV Session input.

","parent_name":"SCCameraKitAVSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)init":{"name":"-init","abstract":"

Create an AR Session input.","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)initWithSession:":{"name":"-initWithSession:","abstract":"

Create an AR Session input with a preexisting session.

","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitARSessionInput.html#/c:objc(cs)SCCameraKitARSessionInput(im)initWithSession:frontCameraConfiguration:":{"name":"-initWithSession:frontCameraConfiguration:","abstract":"

Create an AR Session input with a preexisting session.

","parent_name":"SCCameraKitARSessionInput"},"Classes/SCCameraKitSession.html#/c:objc(cs)SCCameraKitSession(im)initWithSessionConfig:lensesConfig:errorHandler:":{"name":"-initWithSessionConfig:lensesConfig:errorHandler:","abstract":"

Init with session and lenses config instance to configure properties within lenses component

","parent_name":"SCCameraKitSession"},"Classes/SCCameraKitSession.html#/c:objc(cs)SCCameraKitSession(im)initWithLensesConfig:errorHandler:":{"name":"-initWithLensesConfig:errorHandler:","abstract":"

Init with lenses config instance to configure properties within lenses component

","parent_name":"SCCameraKitSession"},"Classes/SCCameraKitPortraitAdjustment.html#/s:So29SCCameraKitPortraitAdjustmentC011SCSDKCameraB0E10Controllera":{"name":"Controller","parent_name":"SCCameraKitPortraitAdjustment"},"Classes/SCCameraKitToneMapAdjustment.html#/s:So28SCCameraKitToneMapAdjustmentC011SCSDKCameraB0E10Controllera":{"name":"Controller","parent_name":"SCCameraKitToneMapAdjustment"},"Classes/SCCameraKitToneMapAdjustment.html":{"name":"SCCameraKitToneMapAdjustment","abstract":"

An adjustment which allows users to more accurately represent the color of their skin when captured by the camera.

"},"Classes/SCCameraKitPortraitAdjustment.html":{"name":"SCCameraKitPortraitAdjustment","abstract":"

An adjustment which allows users to blur the background on their input.

"},"Classes/SCCameraKitSession.html":{"name":"SCCameraKitSession","abstract":"

CameraKit handles interaction with the camera and contains several components like lenses.

"},"Classes/SCCameraKitARSessionInput.html":{"name":"SCCameraKitARSessionInput","abstract":"

ARSessionInput is a CameraKit provided wrapper for ARSession.

"},"Classes/SCCameraKitAVSessionInput.html":{"name":"SCCameraKitAVSessionInput","abstract":"

AVSessionInput is a CameraKit provided wrapper for AVCaptureSession. It may make adjustments to things like color"},"Classes/SCCameraKitAVWriterOutput.html":{"name":"SCCameraKitAVWriterOutput","abstract":"

AVWriterOutput is a CameraKit provided wrapper for AVAssetWriter. You are still responsible for the configuration of"},"Classes/SCCameraKitDataProviderComponent.html":{"name":"SCCameraKitDataProviderComponent","abstract":"

Component for user’s custom data providers

"},"Classes/SCCameraKitExplicitViewportProvider.html":{"name":"SCCameraKitExplicitViewportProvider","abstract":"

Enables the configuration of a custom viewport for SCCameraKitPreviewView.

"},"Classes/SCCameraKitLensLaunchDataBuilder.html":{"name":"SCCameraKitLensLaunchDataBuilder","abstract":"

Concrete class to build lens launch data to pass to processor when applying

"},"Classes.html#/c:objc(cs)SCCameraKitEmptyLensLaunchData":{"name":"SCCameraKitEmptyLensLaunchData","abstract":"

Final, opaque data class to reset persisted launch data

"},"Classes/SCCameraKitLensMediaPickerProviderPhotoLibrary.html":{"name":"SCCameraKitLensMediaPickerProviderPhotoLibrary","abstract":"

A default implementation of SCCameraKitLensMediaPickerProvider that uses the user’s photos library.

"},"Classes/SCCameraKitLensRemoteApiResponse.html":{"name":"SCCameraKitLensRemoteApiResponse","abstract":"

Concrete data class for the remote api service response to a request sent by a lens.

"},"Classes/SCCameraKitCacheConfig.html":{"name":"SCCameraKitCacheConfig","abstract":"

Concrete class to configure camera kit cache

"},"Classes/SCCameraKitLensesConfig.html":{"name":"SCCameraKitLensesConfig","abstract":"

Concrete class to configure all available, user-configurable properties within the lenses component

"},"Classes/SCCameraKitPhotoCaptureOutput.html":{"name":"SCCameraKitPhotoCaptureOutput","abstract":"

An output that will capture photos. You should add this as an output for your CameraKit instance.

"},"Classes/SCCameraKitPreviewView.html":{"name":"SCCameraKitPreviewView","abstract":"

A UIView which is capable of rendering SCCameraKitTextures. You should add this as an output for your CameraKit"},"Classes/SCCameraKitSessionConfig.html":{"name":"SCCameraKitSessionConfig","abstract":"

Data class that is used to pass in a configuration for the CameraKit Session."},"Classes/SCCameraKitUserData.html":{"name":"SCCameraKitUserData","abstract":"

Concrete user data class to pass in user data that can be used by some lenses

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Constants.html":{"name":"Constants","abstract":"

The following constants are available globally.

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"},"Type%20Definitions.html":{"name":"Type Definitions","abstract":"

The following type definitions are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKit/undocumented.json b/docs/api/ios/1.30.0/SCSDKCameraKit/undocumented.json new file mode 100644 index 00000000..e3edb75a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKit/undocumented.json @@ -0,0 +1,369 @@ +{ + "warnings": [ + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKit.h", + "line": 33, + "symbol": "SCCameraKitProtocol", + "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitARInput.h", + "line": 10, + "symbol": "ARSessionRunOptions", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitARInput.h", + "line": 10, + "symbol": "ARSessionRunOptions", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAVWriterOutput.h", + "line": 32, + "symbol": "SCCameraKitAVWriterOutput.-init", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAdjustmentsComponent.h", + "line": 13, + "symbol": "SCCameraKitAdjustmentsComponentErrorDomain", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAdjustmentsComponent.h", + "line": 17, + "symbol": "SCCameraKitAdjustmentsComponentError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAdjustmentsComponent.h", + "line": 17, + "symbol": "SCCameraKitAdjustmentsComponentError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAdjustmentsComponent.h", + "line": 20, + "symbol": "SCCameraKitAdjustmentsComponentError.SCCameraKitAdjustmentsComponentErrorUnsupportedAdjustment", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 16, + "symbol": "SCCameraKitAgreementsStore.requiresNewAgreementAcceptance", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 17, + "symbol": "SCCameraKitAgreementsStore.childrenProtectionActRestricted", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 18, + "symbol": "SCCameraKitAgreementsStore.newestAvailableAgreements", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 19, + "symbol": "SCCameraKitAgreementsStore.-acceptAgreements:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitAgreementsStore.h", + "line": 20, + "symbol": "SCCameraKitAgreementsStore.-declineAgreements:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 8, + "symbol": "SCCameraKitErrorUnspecified", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 9, + "symbol": "SCCameraKitErrorLensMetadataNotFound", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 10, + "symbol": "SCCameraKitErrorLensContentNotFound", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 11, + "symbol": "SCCameraKitErrorLensContentUrlMissing", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 12, + "symbol": "SCCameraKitErrorLensChecksumMissing", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitErrorCodes.h", + "line": 13, + "symbol": "SCCameraKitErrorCannotWriteToFile", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitExplicitViewportProvider.h", + "line": 36, + "symbol": "SCCameraKitExplicitViewportProvider.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLens.h", + "line": 10, + "symbol": "SCCameraKitLensFacingPreference.SCCameraKitLensFacingPreferenceNone", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLens.h", + "line": 11, + "symbol": "SCCameraKitLensFacingPreference.SCCameraKitLensFacingPreferenceFront", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLens.h", + "line": 12, + "symbol": "SCCameraKitLensFacingPreference.SCCameraKitLensFacingPreferenceBack", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 17, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 17, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 19, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType.SCCameraKitLensMediaPickerProviderAllowedMediaTypeNoneSpecified", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 22, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType.SCCameraKitLensMediaPickerProviderAllowedMediaTypeImage", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 27, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType.SCCameraKitLensMediaPickerProviderAllowedMediaTypeImageCroppedToFace", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 30, + "symbol": "SCCameraKitLensMediaPickerProviderAllowedMediaType.SCCameraKitLensMediaPickerProviderAllowedMediaTypeVideo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 34, + "symbol": "SCCameraKitLensMediaPickerProvider", + "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 89, + "symbol": "SCCameraKitLensMediaPickerProviderPhotoLibrary.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 94, + "symbol": "SCCameraKitLensMediaPickerAssetType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 94, + "symbol": "SCCameraKitLensMediaPickerAssetType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 95, + "symbol": "SCCameraKitLensMediaPickerAssetType.SCCameraKitLensMediaPickerAssetTypeImage", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 96, + "symbol": "SCCameraKitLensMediaPickerAssetType.SCCameraKitLensMediaPickerAssetTypeVideo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 120, + "symbol": "SCCameraKitLensMediaPickerAssetMetadata.SCCameraKitLensMediaPickerAssetMetadata.faceRect", + "symbol_kind": "sourcekitten.source.lang.objc.decl.field", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensMediaPickerProvider.h", + "line": 120, + "symbol": "SCCameraKitLensMediaPickerAssetMetadata.faceRect", + "symbol_kind": "sourcekitten.source.lang.objc.decl.field", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensPrefetcher.h", + "line": 16, + "symbol": "SCCameraKitLensFetchStatus.SCCameraKitLensFetchStatusUnloaded", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensPrefetcher.h", + "line": 17, + "symbol": "SCCameraKitLensFetchStatus.SCCameraKitLensFetchStatusLoading", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensPrefetcher.h", + "line": 18, + "symbol": "SCCameraKitLensFetchStatus.SCCameraKitLensFetchStatusLoaded", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensRemoteApiService.h", + "line": 98, + "symbol": "SCCameraKitLensRemoteApiResponse.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensesComponent.h", + "line": 16, + "symbol": "SCCameraKitLensRepositoryBundledGroup", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitLensesComponent.h", + "line": 102, + "symbol": "SCCameraKitLensesComponentErrorDomain", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPhotoCaptureOutput.h", + "line": 16, + "symbol": "SCCameraKitPhotoCaptureOutput.-init", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPhotoCaptureOutput.h", + "line": 17, + "symbol": "SCCameraKitPhotoCaptureOutput.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 12, + "symbol": "SCCameraKitPreviewViewContentMode", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 12, + "symbol": "SCCameraKitPreviewViewContentMode", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 13, + "symbol": "SCCameraKitPreviewViewContentMode.SCCameraKitPreviewViewContentModeScaleToFill", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 14, + "symbol": "SCCameraKitPreviewViewContentMode.SCCameraKitPreviewViewContentModeAspectFill", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitPreviewView.h", + "line": 15, + "symbol": "SCCameraKitPreviewViewContentMode.SCCameraKitPreviewViewContentModeAspectFit", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitSessionConfig.h", + "line": 36, + "symbol": "SCCameraKitSessionConfig.-init", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/.buildscript/build/iphonesimulator_archive.xcarchive/Products/Library/Frameworks/SCSDKCameraKit.framework/Headers/SCCameraKitUserData.h", + "line": 27, + "symbol": "SCCameraKitUserData.+new", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + } + ], + "source_directory": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk" +} \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Classes.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Classes.html new file mode 100644 index 00000000..a386cb54 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Classes.html @@ -0,0 +1,144 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + CameraViewState + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraViewState : NSObject, ObservableObject
    +
    extension CameraViewState: CameraControllerUIDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Classes/CameraViewState.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Classes/CameraViewState.html new file mode 100644 index 00000000..5ffee464 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Classes/CameraViewState.html @@ -0,0 +1,411 @@ + + + + CameraViewState Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraViewState

+
+
+ +
public class CameraViewState : NSObject, ObservableObject
+
extension CameraViewState: CameraControllerUIDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs.html new file mode 100644 index 00000000..e5e26275 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs.html @@ -0,0 +1,311 @@ + + + + Structures Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Structures

+

The following structures are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + CameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraButton : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraView : View
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CarouselView : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ImagePreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct ImagePreviewView : UIViewControllerRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaPickerView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct MediaPickerView : View
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + PreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct PreviewView : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + VideoPreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct VideoPreviewView : UIViewControllerRepresentable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton.html new file mode 100644 index 00000000..42f12270 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton.html @@ -0,0 +1,227 @@ + + + + CameraButton Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButton

+
+
+ +
public struct CameraButton : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + makeCoordinator() + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeCoordinator() -> Coordinator
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> some UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: UIViewType, context: Context)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Coordinator + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    class Coordinator : NSObject, CameraButtonDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton/Coordinator.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton/Coordinator.html new file mode 100644 index 00000000..926f162d --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraButton/Coordinator.html @@ -0,0 +1,225 @@ + + + + Coordinator Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Coordinator

+
+
+ +
class Coordinator : NSObject, CameraButtonDelegate
+ +
+
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonTapped(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldBegan(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldCancelled(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldEnded(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraView.html new file mode 100644 index 00000000..da474da4 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CameraView.html @@ -0,0 +1,175 @@ + + + + CameraView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraView

+
+
+ +
public struct CameraView : View
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraController: CameraController)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var body: some View { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView.html new file mode 100644 index 00000000..3b4f5bdf --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView.html @@ -0,0 +1,227 @@ + + + + CarouselView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselView

+
+
+ +
public struct CarouselView : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + makeCoordinator() + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeCoordinator() -> Coordinator
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> SCSDKCameraKitReferenceUI.CarouselView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: SCSDKCameraKitReferenceUI.CarouselView, context: Context)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Coordinator + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    class Coordinator : NSObject, CarouselViewDelegate, CarouselViewDataSource
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView/Coordinator.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView/Coordinator.html new file mode 100644 index 00000000..6eefb4d8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/CarouselView/Coordinator.html @@ -0,0 +1,224 @@ + + + + Coordinator Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Coordinator

+
+
+ +
class Coordinator : NSObject, CarouselViewDelegate, CarouselViewDataSource
+ +
+
+ +
+
+ +
+
+
+
+ + +
+ +

CarouselViewDelegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func carouselView(
    +    _ view: SCSDKCameraKitReferenceUI.CarouselView, didSelect item: CarouselItem, at index: Int
    +)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CarouselViewDataSource +

+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func itemsForCarouselView(_ view: SCSDKCameraKitReferenceUI.CarouselView) -> [CarouselItem]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + item(for:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func item(for lens: Lens?) -> CarouselItem
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/ImagePreviewView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/ImagePreviewView.html new file mode 100644 index 00000000..2866c41a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/ImagePreviewView.html @@ -0,0 +1,232 @@ + + + + ImagePreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ImagePreviewView

+
+
+ +
public struct ImagePreviewView : UIViewControllerRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Creates a preview view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(image: UIImage, snapchatDelegate: SnapchatDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + image + + +
    +

    the captured image to show

    +
    +
    + + snapchatDelegate + + +
    +

    the Snapchat delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIViewController(context: Context) -> some UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/MediaPickerView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/MediaPickerView.html new file mode 100644 index 00000000..b1fe9166 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/MediaPickerView.html @@ -0,0 +1,194 @@ + + + + MediaPickerView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerView

+
+
+ +
public struct MediaPickerView : View
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(provider:) + +
    +
    +
    +
    +
    +
    +

    Initializes the media picker view with a media picker provider

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider to use

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var body: some View { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/PreviewView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/PreviewView.html new file mode 100644 index 00000000..44daa0b5 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/PreviewView.html @@ -0,0 +1,232 @@ + + + + PreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewView

+
+
+ +
public struct PreviewView : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes a preview view and connects it to a CameraKit session as an output

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraKit: CameraKitProtocol, automaticallyConfiguresTouchHandler: Bool = true)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the session to attach the preview view as an output to

    +
    +
    + + automaticallyConfiguresTouchHandler + + +
    +

    whether or not touch handling should automatically be configured for the view

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> some UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: UIViewType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/VideoPreviewView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/VideoPreviewView.html new file mode 100644 index 00000000..c39efe1a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/Structs/VideoPreviewView.html @@ -0,0 +1,232 @@ + + + + VideoPreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

VideoPreviewView

+
+
+ +
public struct VideoPreviewView : UIViewControllerRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Creates a preview view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(video: URL, snapchatDelegate: SnapchatDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + video + + +
    +

    the url for the recorded video to show

    +
    +
    + + snapchatDelegate + + +
    +

    the Snapchat delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIViewController(context: Context) -> some UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/badge.svg b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/badge.svg new file mode 100644 index 00000000..8f2e1c0c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 74% + + + 74% + + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/css/highlight.css b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/css/highlight.css new file mode 100644 index 00000000..c170357c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/css/jazzy.css b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/css/jazzy.css new file mode 100644 index 00000000..c7bb9fe2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Info.plist b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Info.plist new file mode 100644 index 00000000..20c7ba97 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy.scsdkcamerakitreferenceswiftui + CFBundleName + SCSDKCameraKitReferenceSwiftUI + DocSetPlatformFamily + scsdkcamerakitreferenceswiftui + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes.html new file mode 100644 index 00000000..a386cb54 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes.html @@ -0,0 +1,144 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + CameraViewState + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraViewState : NSObject, ObservableObject
    +
    extension CameraViewState: CameraControllerUIDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes/CameraViewState.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes/CameraViewState.html new file mode 100644 index 00000000..5ffee464 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Classes/CameraViewState.html @@ -0,0 +1,411 @@ + + + + CameraViewState Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraViewState

+
+
+ +
public class CameraViewState : NSObject, ObservableObject
+
extension CameraViewState: CameraControllerUIDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs.html new file mode 100644 index 00000000..e5e26275 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs.html @@ -0,0 +1,311 @@ + + + + Structures Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Structures

+

The following structures are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + CameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraButton : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraView : View
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CarouselView : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ImagePreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct ImagePreviewView : UIViewControllerRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaPickerView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct MediaPickerView : View
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + PreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct PreviewView : UIViewRepresentable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + VideoPreviewView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct VideoPreviewView : UIViewControllerRepresentable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton.html new file mode 100644 index 00000000..42f12270 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton.html @@ -0,0 +1,227 @@ + + + + CameraButton Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButton

+
+
+ +
public struct CameraButton : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + makeCoordinator() + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeCoordinator() -> Coordinator
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> some UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: UIViewType, context: Context)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Coordinator + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    class Coordinator : NSObject, CameraButtonDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton/Coordinator.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton/Coordinator.html new file mode 100644 index 00000000..926f162d --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraButton/Coordinator.html @@ -0,0 +1,225 @@ + + + + Coordinator Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Coordinator

+
+
+ +
class Coordinator : NSObject, CameraButtonDelegate
+ +
+
+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonTapped(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldBegan(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldCancelled(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cameraButtonHoldEnded(_ cameraButton: SCSDKCameraKitReferenceUI.CameraButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraView.html new file mode 100644 index 00000000..da474da4 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CameraView.html @@ -0,0 +1,175 @@ + + + + CameraView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraView

+
+
+ +
public struct CameraView : View
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraController: CameraController)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var body: some View { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView.html new file mode 100644 index 00000000..3b4f5bdf --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView.html @@ -0,0 +1,227 @@ + + + + CarouselView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselView

+
+
+ +
public struct CarouselView : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + makeCoordinator() + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeCoordinator() -> Coordinator
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> SCSDKCameraKitReferenceUI.CarouselView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: SCSDKCameraKitReferenceUI.CarouselView, context: Context)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Coordinator + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    class Coordinator : NSObject, CarouselViewDelegate, CarouselViewDataSource
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView/Coordinator.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView/Coordinator.html new file mode 100644 index 00000000..6eefb4d8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/CarouselView/Coordinator.html @@ -0,0 +1,224 @@ + + + + Coordinator Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Coordinator

+
+
+ +
class Coordinator : NSObject, CarouselViewDelegate, CarouselViewDataSource
+ +
+
+ +
+
+ +
+
+
+
+ + +
+ +

CarouselViewDelegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func carouselView(
    +    _ view: SCSDKCameraKitReferenceUI.CarouselView, didSelect item: CarouselItem, at index: Int
    +)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CarouselViewDataSource +

+
+
+
    +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func itemsForCarouselView(_ view: SCSDKCameraKitReferenceUI.CarouselView) -> [CarouselItem]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + item(for:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func item(for lens: Lens?) -> CarouselItem
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/ImagePreviewView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/ImagePreviewView.html new file mode 100644 index 00000000..2866c41a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/ImagePreviewView.html @@ -0,0 +1,232 @@ + + + + ImagePreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ImagePreviewView

+
+
+ +
public struct ImagePreviewView : UIViewControllerRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Creates a preview view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(image: UIImage, snapchatDelegate: SnapchatDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + image + + +
    +

    the captured image to show

    +
    +
    + + snapchatDelegate + + +
    +

    the Snapchat delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIViewController(context: Context) -> some UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/MediaPickerView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/MediaPickerView.html new file mode 100644 index 00000000..b1fe9166 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/MediaPickerView.html @@ -0,0 +1,194 @@ + + + + MediaPickerView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerView

+
+
+ +
public struct MediaPickerView : View
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(provider:) + +
    +
    +
    +
    +
    +
    +

    Initializes the media picker view with a media picker provider

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(provider: LensMediaPickerProvider)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    the provider to use

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + body + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var body: some View { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/PreviewView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/PreviewView.html new file mode 100644 index 00000000..44daa0b5 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/PreviewView.html @@ -0,0 +1,232 @@ + + + + PreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewView

+
+
+ +
public struct PreviewView : UIViewRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Initializes a preview view and connects it to a CameraKit session as an output

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraKit: CameraKitProtocol, automaticallyConfiguresTouchHandler: Bool = true)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    the session to attach the preview view as an output to

    +
    +
    + + automaticallyConfiguresTouchHandler + + +
    +

    whether or not touch handling should automatically be configured for the view

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + makeUIView(context:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIView(context: Context) -> some UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIView(_ uiView: UIViewType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/VideoPreviewView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/VideoPreviewView.html new file mode 100644 index 00000000..c39efe1a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/Structs/VideoPreviewView.html @@ -0,0 +1,232 @@ + + + + VideoPreviewView Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

VideoPreviewView

+
+
+ +
public struct VideoPreviewView : UIViewControllerRepresentable
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Creates a preview view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(video: URL, snapchatDelegate: SnapchatDelegate?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + video + + +
    +

    the url for the recorded video to show

    +
    +
    + + snapchatDelegate + + +
    +

    the Snapchat delegate

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func makeUIViewController(context: Context) -> some UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/highlight.css b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 00000000..c170357c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/jazzy.css b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 00000000..c7bb9fe2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/carat.png b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 0000000000000000000000000000000000000000..29d2f7fd4955fca6bc6fb740e0373a2c358c398e GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/dash.png b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 0000000000000000000000000000000000000000..6f694c7a012b417908da3687a0a39aa182e91c74 GIT binary patch literal 1338 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 literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/index.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/index.html new file mode 100644 index 00000000..ae97d72f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,145 @@ + + + + SCSDKCameraKitReferenceSwiftUI Reference + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit Reference SwiftUI iOS

+

Overview

+ +

SCSDKCameraKitReferenceSwiftUI is an optional SDK that provides SwiftUI wrappers around the UIKit elements provided in SCSDKCameraKitReferenceUI. As with SCSDKCameraKitReferenceUI this SDK also provides a fully-functional Camera view to use that has CameraKit set up and working with sample lenses.

+

Usage Philosophy

+ +

In general, SCSDKCameraKitReferenceSwiftUI follows the same design and usage philosophy as SCSDKCameraKitReferenceUI. This means that the UI elements in SCSDKCameraKitReferenceSwiftUI are intended to be used out-of-the-box and they provide customizations to tailor the behavior slightly (eg. changing the recording duration of the camera button). While the elements in SCSDKCameraKitReferenceSwiftUI are intended to be used in a modular fashion (eg. using carousel, camera buttuon, and recorder but own video preview), the elements aren’t designed to be as extensible and changeable as they are in SCSDKCameraKitReferenceUI since the SwiftUI elements are mostly wrappers around the UIKit elements.

+

Getting Started

+

Requirements

+ +

SCSDKCameraKitReferenceSwiftUI requires Swift, a minimum of iOS 13 (although some elements like the carousel require 14), and a 64 bit processor.

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

Add this line to your Podfile: +pod 'SCSDKCameraKitReferenceSwiftUI', :path => 'CameraKit/CameraKitReferenceSwiftUI' +where :path points to the directory that contains the camera kit sdk, podspec, etc.

+ +

Run pod install and open up your xcworkspace.

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKitReferenceSwiftUI directory into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKitReferenceSwiftUI, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Showing the Camera

+ +

At its most simplest form, SCSDKCameraKitReferenceUI contains a fully-setup camera that contains all UI elements (carousel, camera button, recorder, etc.) and hooks up to the core SCSDKCameraKit sdk to fetch and apply lenses to the camera. If you would like your app’s root view to be the camera, you can do so by doing the following in your app or scene delegate:

+
let cameraController = CameraController()
+cameraController.groupIDs = ["REPLACE-THIS-WITH-YOUR-OWN-APP-SPECIFIC-VALUE"]
+let view = CameraView(cameraController: CameraController)
+let cameraViewController = UIHostingController(rootView: view)
+window?.rootViewController = cameraViewController
+
+ +

where repoGroups is the list of group IDs added in Lens Scheduler to show in the carousel.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 00000000..19844166 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.search.js new file mode 100644 index 00000000..359cdbb8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100644 index 00000000..c4c6022f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js new file mode 100644 index 00000000..3a2d2ab0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/search.json b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/search.json new file mode 100644 index 00000000..43208962 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/Documents/search.json @@ -0,0 +1 @@ +{"Structs/VideoPreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI16VideoPreviewViewV5video16snapchatDelegateAC10Foundation3URLV_0abcE008SnapchatK0_pSgtcfc":{"name":"init(video:snapchatDelegate:)","abstract":"

Creates a preview view.

","parent_name":"VideoPreviewView"},"Structs/VideoPreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP04makecD07context0cD4TypeQzAA0cdE7ContextVyxG_tF":{"name":"makeUIViewController(context:)","parent_name":"VideoPreviewView"},"Structs/VideoPreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP06updatecD0_7contexty0cD4TypeQz_AA0cdE7ContextVyxGtF":{"name":"updateUIViewController(_:context:)","parent_name":"VideoPreviewView"},"Structs/PreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI11PreviewViewV06cameraB035automaticallyConfiguresTouchHandlerACSo08SCCameraB8Protocol_p_Sbtcfc":{"name":"init(cameraKit:automaticallyConfiguresTouchHandler:)","abstract":"

Initializes a preview view and connects it to a CameraKit session as an output

","parent_name":"PreviewView"},"Structs/PreviewView.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"PreviewView"},"Structs/PreviewView.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"PreviewView"},"Structs/MediaPickerView.html#/s:30SCSDKCameraKitReferenceSwiftUI15MediaPickerViewV8providerACSo08SCCamerab4LensfG8Provider_p_tcfc":{"name":"init(provider:)","abstract":"

Initializes the media picker view with a media picker provider

","parent_name":"MediaPickerView"},"Structs/MediaPickerView.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"MediaPickerView"},"Structs/ImagePreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI16ImagePreviewViewV5image16snapchatDelegateACSo7UIImageC_0abcE008SnapchatK0_pSgtcfc":{"name":"init(image:snapchatDelegate:)","abstract":"

Creates a preview view.

","parent_name":"ImagePreviewView"},"Structs/ImagePreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP04makecD07context0cD4TypeQzAA0cdE7ContextVyxG_tF":{"name":"makeUIViewController(context:)","parent_name":"ImagePreviewView"},"Structs/ImagePreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP06updatecD0_7contexty0cD4TypeQz_AA0cdE7ContextVyxGtF":{"name":"updateUIViewController(_:context:)","parent_name":"ImagePreviewView"},"Structs/CarouselView/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","parent_name":"Coordinator"},"Structs/CarouselView/Coordinator.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","parent_name":"Coordinator"},"Structs/CarouselView/Coordinator.html#/s:30SCSDKCameraKitReferenceSwiftUI12CarouselViewV11CoordinatorC4item3for0abcE00F4ItemCSo08SCCameraB4Lens_pSg_tF":{"name":"item(for:)","abstract":"

Undocumented

","parent_name":"Coordinator"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP15makeCoordinator0F0QzyF":{"name":"makeCoordinator()","parent_name":"CarouselView"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"CarouselView"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"CarouselView"},"Structs/CarouselView/Coordinator.html":{"name":"Coordinator","parent_name":"CarouselView"},"Structs/CameraView.html#/s:30SCSDKCameraKitReferenceSwiftUI10CameraViewV16cameraControllerAC0abcE00fI0C_tcfc":{"name":"init(cameraController:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Structs/CameraView.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"CameraView"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","parent_name":"Coordinator"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP15makeCoordinator0F0QzyF":{"name":"makeCoordinator()","parent_name":"CameraButton"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"CameraButton"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"CameraButton"},"Structs/CameraButton/Coordinator.html":{"name":"Coordinator","parent_name":"CameraButton"},"Structs/CameraButton.html":{"name":"CameraButton","abstract":"

Undocumented

"},"Structs/CameraView.html":{"name":"CameraView","abstract":"

Undocumented

"},"Structs/CarouselView.html":{"name":"CarouselView","abstract":"

Undocumented

"},"Structs/ImagePreviewView.html":{"name":"ImagePreviewView","abstract":"

Undocumented

"},"Structs/MediaPickerView.html":{"name":"MediaPickerView","abstract":"

Undocumented

"},"Structs/PreviewView.html":{"name":"PreviewView","abstract":"

Undocumented

"},"Structs/VideoPreviewView.html":{"name":"VideoPreviewView","abstract":"

Undocumented

"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html":{"name":"CameraViewState","abstract":"

Undocumented

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/docSet.dsidx b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.docset/Contents/Resources/docSet.dsidx new file mode 100644 index 0000000000000000000000000000000000000000..f1fbb9455fd744fce65eb106e5ee4e008655c1c3 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.tgz b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/docsets/SCSDKCameraKitReferenceSwiftUI.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7b93be7f5c8f1eaa812721f75791d1e591d8e401 GIT binary patch literal 75926 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

$ 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 S^0y4=eg;ohKbLh*2~7a!Pg}VF literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/img/dash.png b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/img/dash.png new file mode 100755 index 0000000000000000000000000000000000000000..6f694c7a012b417908da3687a0a39aa182e91c74 GIT binary patch literal 1338 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 literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/index.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/index.html new file mode 100644 index 00000000..ae97d72f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/index.html @@ -0,0 +1,145 @@ + + + + SCSDKCameraKitReferenceSwiftUI Reference + + + + + + + + + + + + + + + +

+

+ + SCSDKCameraKitReferenceSwiftUI 1.30.0 Docs + + (74% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit Reference SwiftUI iOS

+

Overview

+ +

SCSDKCameraKitReferenceSwiftUI is an optional SDK that provides SwiftUI wrappers around the UIKit elements provided in SCSDKCameraKitReferenceUI. As with SCSDKCameraKitReferenceUI this SDK also provides a fully-functional Camera view to use that has CameraKit set up and working with sample lenses.

+

Usage Philosophy

+ +

In general, SCSDKCameraKitReferenceSwiftUI follows the same design and usage philosophy as SCSDKCameraKitReferenceUI. This means that the UI elements in SCSDKCameraKitReferenceSwiftUI are intended to be used out-of-the-box and they provide customizations to tailor the behavior slightly (eg. changing the recording duration of the camera button). While the elements in SCSDKCameraKitReferenceSwiftUI are intended to be used in a modular fashion (eg. using carousel, camera buttuon, and recorder but own video preview), the elements aren’t designed to be as extensible and changeable as they are in SCSDKCameraKitReferenceUI since the SwiftUI elements are mostly wrappers around the UIKit elements.

+

Getting Started

+

Requirements

+ +

SCSDKCameraKitReferenceSwiftUI requires Swift, a minimum of iOS 13 (although some elements like the carousel require 14), and a 64 bit processor.

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

Add this line to your Podfile: +pod 'SCSDKCameraKitReferenceSwiftUI', :path => 'CameraKit/CameraKitReferenceSwiftUI' +where :path points to the directory that contains the camera kit sdk, podspec, etc.

+ +

Run pod install and open up your xcworkspace.

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKitReferenceSwiftUI directory into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKitReferenceSwiftUI, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Showing the Camera

+ +

At its most simplest form, SCSDKCameraKitReferenceUI contains a fully-setup camera that contains all UI elements (carousel, camera button, recorder, etc.) and hooks up to the core SCSDKCameraKit sdk to fetch and apply lenses to the camera. If you would like your app’s root view to be the camera, you can do so by doing the following in your app or scene delegate:

+
let cameraController = CameraController()
+cameraController.groupIDs = ["REPLACE-THIS-WITH-YOUR-OWN-APP-SPECIFIC-VALUE"]
+let view = CameraView(cameraController: CameraController)
+let cameraViewController = UIHostingController(rootView: view)
+window?.rootViewController = cameraViewController
+
+ +

where repoGroups is the list of group IDs added in Lens Scheduler to show in the carousel.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.js new file mode 100755 index 00000000..19844166 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.search.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.search.js new file mode 100644 index 00000000..359cdbb8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jquery.min.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jquery.min.js new file mode 100644 index 00000000..c4c6022f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/typeahead.jquery.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/typeahead.jquery.js new file mode 100644 index 00000000..3a2d2ab0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/search.json b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/search.json new file mode 100644 index 00000000..43208962 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/search.json @@ -0,0 +1 @@ +{"Structs/VideoPreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI16VideoPreviewViewV5video16snapchatDelegateAC10Foundation3URLV_0abcE008SnapchatK0_pSgtcfc":{"name":"init(video:snapchatDelegate:)","abstract":"

Creates a preview view.

","parent_name":"VideoPreviewView"},"Structs/VideoPreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP04makecD07context0cD4TypeQzAA0cdE7ContextVyxG_tF":{"name":"makeUIViewController(context:)","parent_name":"VideoPreviewView"},"Structs/VideoPreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP06updatecD0_7contexty0cD4TypeQz_AA0cdE7ContextVyxGtF":{"name":"updateUIViewController(_:context:)","parent_name":"VideoPreviewView"},"Structs/PreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI11PreviewViewV06cameraB035automaticallyConfiguresTouchHandlerACSo08SCCameraB8Protocol_p_Sbtcfc":{"name":"init(cameraKit:automaticallyConfiguresTouchHandler:)","abstract":"

Initializes a preview view and connects it to a CameraKit session as an output

","parent_name":"PreviewView"},"Structs/PreviewView.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"PreviewView"},"Structs/PreviewView.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"PreviewView"},"Structs/MediaPickerView.html#/s:30SCSDKCameraKitReferenceSwiftUI15MediaPickerViewV8providerACSo08SCCamerab4LensfG8Provider_p_tcfc":{"name":"init(provider:)","abstract":"

Initializes the media picker view with a media picker provider

","parent_name":"MediaPickerView"},"Structs/MediaPickerView.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"MediaPickerView"},"Structs/ImagePreviewView.html#/s:30SCSDKCameraKitReferenceSwiftUI16ImagePreviewViewV5image16snapchatDelegateACSo7UIImageC_0abcE008SnapchatK0_pSgtcfc":{"name":"init(image:snapchatDelegate:)","abstract":"

Creates a preview view.

","parent_name":"ImagePreviewView"},"Structs/ImagePreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP04makecD07context0cD4TypeQzAA0cdE7ContextVyxG_tF":{"name":"makeUIViewController(context:)","parent_name":"ImagePreviewView"},"Structs/ImagePreviewView.html#/s:7SwiftUI29UIViewControllerRepresentableP06updatecD0_7contexty0cD4TypeQz_AA0cdE7ContextVyxGtF":{"name":"updateUIViewController(_:context:)","parent_name":"ImagePreviewView"},"Structs/CarouselView/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","parent_name":"Coordinator"},"Structs/CarouselView/Coordinator.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","parent_name":"Coordinator"},"Structs/CarouselView/Coordinator.html#/s:30SCSDKCameraKitReferenceSwiftUI12CarouselViewV11CoordinatorC4item3for0abcE00F4ItemCSo08SCCameraB4Lens_pSg_tF":{"name":"item(for:)","abstract":"

Undocumented

","parent_name":"Coordinator"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP15makeCoordinator0F0QzyF":{"name":"makeCoordinator()","parent_name":"CarouselView"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"CarouselView"},"Structs/CarouselView.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"CarouselView"},"Structs/CarouselView/Coordinator.html":{"name":"Coordinator","parent_name":"CarouselView"},"Structs/CameraView.html#/s:30SCSDKCameraKitReferenceSwiftUI10CameraViewV16cameraControllerAC0abcE00fI0C_tcfc":{"name":"init(cameraController:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Structs/CameraView.html#/s:7SwiftUI4ViewP4body4BodyQzvp":{"name":"body","parent_name":"CameraView"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","parent_name":"Coordinator"},"Structs/CameraButton/Coordinator.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","parent_name":"Coordinator"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP15makeCoordinator0F0QzyF":{"name":"makeCoordinator()","parent_name":"CameraButton"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP04makeC07context0C4TypeQzAA0cD7ContextVyxG_tF":{"name":"makeUIView(context:)","parent_name":"CameraButton"},"Structs/CameraButton.html#/s:7SwiftUI19UIViewRepresentableP06updateC0_7contexty0C4TypeQz_AA0cD7ContextVyxGtF":{"name":"updateUIView(_:context:)","parent_name":"CameraButton"},"Structs/CameraButton/Coordinator.html":{"name":"Coordinator","parent_name":"CameraButton"},"Structs/CameraButton.html":{"name":"CameraButton","abstract":"

Undocumented

"},"Structs/CameraView.html":{"name":"CameraView","abstract":"

Undocumented

"},"Structs/CarouselView.html":{"name":"CarouselView","abstract":"

Undocumented

"},"Structs/ImagePreviewView.html":{"name":"ImagePreviewView","abstract":"

Undocumented

"},"Structs/MediaPickerView.html":{"name":"MediaPickerView","abstract":"

Undocumented

"},"Structs/PreviewView.html":{"name":"PreviewView","abstract":"

Undocumented

"},"Structs/VideoPreviewView.html":{"name":"VideoPreviewView","abstract":"

Undocumented

"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","parent_name":"CameraViewState"},"Classes/CameraViewState.html":{"name":"CameraViewState","abstract":"

Undocumented

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Structs.html":{"name":"Structures","abstract":"

The following structures are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/undocumented.json b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/undocumented.json new file mode 100644 index 00000000..e128f7c1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceSwiftUI/undocumented.json @@ -0,0 +1,96 @@ +{ + "warnings": [ + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraButton.swift", + "line": 9, + "symbol": "CameraButton", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraButton.swift", + "line": 53, + "symbol": "CameraButton", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraView.swift", + "line": 9, + "symbol": "CameraView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraView.swift", + "line": 16, + "symbol": "CameraView.init(cameraController:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraViewState.swift", + "line": 10, + "symbol": "CameraViewState", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CameraViewState.swift", + "line": 76, + "symbol": "CameraViewState", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CarouselView.swift", + "line": 9, + "symbol": "CarouselView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CarouselView.swift", + "line": 40, + "symbol": "CarouselView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/CarouselView.swift", + "line": 70, + "symbol": "CarouselView.Coordinator.item(for:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/ImagePreviewView.swift", + "line": 9, + "symbol": "ImagePreviewView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/MediaPickerView.swift", + "line": 9, + "symbol": "MediaPickerView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/PreviewView.swift", + "line": 8, + "symbol": "PreviewView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/SwiftUI/VideoPreviewView.swift", + "line": 9, + "symbol": "VideoPreviewView", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + } + ], + "source_directory": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk" +} \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes.html new file mode 100644 index 00000000..b029cde4 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes.html @@ -0,0 +1,1230 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
+ + +
+ +

Class Definition and State +

+
+
+
    +
  • +
    + + + + CameraController + +
    +
    +
    +
    +
    +
    +

    A controller which manages the camera and lenses stack on behalf of its owner

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraController: NSObject, LensRepositoryGroupObserver, LensPrefetcherObserver, LensHintDelegate,
    +    MediaPickerViewDelegate, AdjustmentControlViewDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraButton + +
    +
    +
    +
    +
    +
    +

    Camera ring view for capturing and recording state

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraButton : UIView, UIGestureRecognizerDelegate
    +
    extension CameraButton: CAAnimationDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + AdjustmentControlView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class AdjustmentControlView : UIView
    +
    extension AdjustmentControlView: ControlSliderDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ControlSlider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class ControlSlider : UISlider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraActionsView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraActionsView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View to use for camera actions that can be enabled/disabled and configured via separate buttons.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraConfigurableActionView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraView + +
    +
    +
    +
    +
    +
    +

    This is the default view that backs the CameraViewController.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraViewController + +
    +
    +
    +
    +
    +
    +

    This is the default view controller which handles setting up the camera, lenses, carousel, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraViewController : UIViewController, CameraControllerUIDelegate
    +
    extension CameraViewController: AdjustmentsProcessorObserver
    +
    extension CameraViewController: CarouselViewDelegate, CarouselViewDataSource
    +
    extension CameraViewController: CameraButtonDelegate
    +
    extension CameraViewController: FlashControlViewDelegate
    +
    extension CameraViewController: UIAdaptivePresentationControllerDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FlashControlView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class FlashControlView : UIView
    +
    extension FlashControlView: FlashModeSelectionViewDelegate
    +
    extension FlashControlView: ControlSliderDelegate
    +
    extension FlashControlView: RingLightColorSelectionViewDelegate
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class FlashModeSelectionView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightColorSelectionView : UIView
    +
    extension RingLightColorSelectionView: UICollectionViewDelegate
    +
    extension RingLightColorSelectionView: UICollectionViewDataSource
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightColorSelectionViewCell : UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + RingLightGradientView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightGradientView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + RingLightView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Carousel collection view cell which represents a single lens item/icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselCollectionViewCell : UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Custom collection view layout for carousel collection view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselCollectionViewLayout : UICollectionViewFlowLayout
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default image loader class which uses a URLSession to load images

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class DefaultCarouselImageLoader : CarouselImageLoader
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselItem + +
    +
    +
    +
    +
    +
    +

    This is the carousel item view model which represents a specific lens icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselItem : Identifiable, Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + EmptyItem + +
    +
    +
    +
    +
    +
    +

    Concrete class for an empty item (clear camera button)

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class EmptyItem : CarouselItem
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselView + +
    +
    +
    +
    +
    +
    +

    A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselView : UIView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
    +
    extension CarouselView: CarouselCollectionViewLayoutDelegate
    +
    extension CarouselView: CarouselCollectionViewLayoutDataSource
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + BundleHelper + +
    +
    +
    +
    +
    +
    +

    Internal helper to deal with resources bundle

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class BundleHelper
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reference implementation of a text input view for lenses that take text input.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public class KeyboardAccessoryViewProvider : NSObject, TextInputKeyboardAccessoryProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaPickerView + +
    +
    +
    +
    +
    +
    +

    Selection view for Media Picker

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class MediaPickerView : UIView
    +
    extension MediaPickerView: LensMediaPickerProviderUIDelegate
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Preview view controller for showing captured photos and images

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class ImagePreviewViewController : PreviewViewController
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + PreviewViewController + +
    +
    +
    +
    +
    +
    +

    Base preview view controller that describes properties and views of all preview controllers

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class PreviewViewController : UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Preview view controller for showing recorded video previews

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class VideoPreviewViewController : PreviewViewController
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Recorder + +
    +
    +
    +
    +
    +
    +

    Sample video recorder implementation.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class Recorder
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UserDataProvider + +
    +
    +
    +
    +
    +
    +

    Default user data provider to show how to provide user data to CameraKit

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class UserDataProvider : NSObject, SCSDKCameraKit.UserDataProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraBottomBar + +
    +
    +
    +
    +
    +
    +

    Bottom bar on Camera that contains Snap ghost button for actions +as well as close button to clear current lens

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraBottomBar : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Popup message notification view for different lens events

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class MessageNotificationView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SnapAttributionView + +
    +
    +
    +
    +
    +
    +

    Snap attribution on Camera that contains “Powered by” and Snap ghost icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class SnapAttributionView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + TapAnimationView + +
    +
    +
    +
    +
    +
    +

    View that appears when the user taps on the camera view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class TapAnimationView : UIView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView.html new file mode 100644 index 00000000..03f0c38a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView.html @@ -0,0 +1,598 @@ + + + + AdjustmentControlView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentControlView

+
+
+ +
public class AdjustmentControlView : UIView
+
extension AdjustmentControlView: ControlSliderDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Variant + +
    +
    +
    +
    +
    +
    +

    Adjustments that can be controlled via this view. +Used to set the tag field of the view so the delegate can disambiguate between different adjustments.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Variant : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling changes to the adjustment intensity slider.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: AdjustmentControlViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intensityValue + +
    +
    +
    +
    +
    +
    +

    The intensity of the adjustment according to the control’s slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var intensityValue: Float { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + primaryLabel + +
    +
    +
    +
    +
    +
    +

    Primary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let primaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + secondaryLabel + +
    +
    +
    +
    +
    +
    +

    Secondary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let secondaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Control Slider Delegate +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView/Variant.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView/Variant.html new file mode 100644 index 00000000..a098835f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/AdjustmentControlView/Variant.html @@ -0,0 +1,396 @@ + + + + Variant Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Variant

+
+
+ +
public enum Variant : Int
+ +
+
+

Adjustments that can be controlled via this view. +Used to set the tag field of the view so the delegate can disambiguate between different adjustments.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + tone + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tone
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portrait + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portrait
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Text for the primary label of the control with the specified variant.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var label: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/BundleHelper.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/BundleHelper.html new file mode 100644 index 00000000..ab85cc5f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/BundleHelper.html @@ -0,0 +1,342 @@ + + + + BundleHelper Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

BundleHelper

+
+
+ +
public class BundleHelper
+ +
+
+

Internal helper to deal with resources bundle

+ +
+
+ +
+
+
+
    +
  • +
    + + + + resourcesBundle + +
    +
    +
    +
    +
    +
    +

    Internal helper computed property to get correct resources bundle +(ie. if pods, look for bundle inside main bundle)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class var resourcesBundle: Bundle { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraActionsView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraActionsView.html new file mode 100644 index 00000000..eb954c64 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraActionsView.html @@ -0,0 +1,673 @@ + + + + CameraActionsView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraActionsView

+
+
+ +
public class CameraActionsView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + flipCameraButton + +
    +
    +
    +
    +
    +
    +

    Button to flip camera input position

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flipCameraButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashToggleButtonBaseSelectedImage: UIImage? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable flash and switch between system flash and ring light.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets up the flash toggle button for front flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setupFlashToggleButtonForFront()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets up the flash toggle button for back flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setupFlashToggleButtonForBack()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable the tone map adjustment and control the intensity of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var toneMapActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable the portrait adjustment and control the intensity of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var portraitActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + buttonStackView + +
    +
    +
    +
    +
    +
    +

    Stack view used to arrange the view’s buttons.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var buttonStackView: UIStackView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Recording Handling +

+
+
+
    +
  • +
    + + + + collapse() + +
    +
    +
    +
    +
    +
    +

    Hide all camera actions except camera flip while recording.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collapse()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + expand() + +
    +
    +
    +
    +
    +
    +

    Unhide all camera actions that were hidden as a result of a call to collapse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func expand()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraBottomBar.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraBottomBar.html new file mode 100644 index 00000000..68f5a23b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraBottomBar.html @@ -0,0 +1,369 @@ + + + + CameraBottomBar Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraBottomBar

+
+
+ +
public class CameraBottomBar : UIView
+ +
+
+

Bottom bar on Camera that contains Snap ghost button for actions +as well as close button to clear current lens

+ +
+
+ +
+
+
+
    +
  • +
    + + + + snapButton + +
    +
    +
    +
    +
    +
    +

    Snap ghost button for lens actions

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapButton: UIButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Close button to clear current lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let closeButton: UIButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraButton.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraButton.html new file mode 100644 index 00000000..92ea85e8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraButton.html @@ -0,0 +1,924 @@ + + + + CameraButton Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButton

+
+
+ +
public class CameraButton : UIView, UIGestureRecognizerDelegate
+
extension CameraButton: CAAnimationDelegate
+ +
+
+

Camera ring view for capturing and recording state

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Constants + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Constants
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Camera button delegate

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CameraButtonDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + minimumHoldDuration + +
    +
    +
    +
    +
    +
    +

    The minimum time for a hold to be considered “valid.” +If the user holds and releases for a duration shorter than specified, the camera button will act as though it has been tapped instead of held.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var minimumHoldDuration: TimeInterval
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringWidth + +
    +
    +
    +
    +
    +
    +

    Line width for camera ring

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringWidth: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + allowWhileRecording + +
    +
    +
    +
    +
    +
    +

    List of allowed gestures to be used when recording a video(LongPressGesture) i.e. Double Tap Gesture, Pinch Gesture.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var allowWhileRecording: [UIGestureRecognizer]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringColor + +
    +
    +
    +
    +
    +
    +

    Ring color while recording

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringColor: UIColor? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tapGestureRecognizer + +
    +
    +
    +
    +
    +
    +

    Tap gesture recognizer that is used to recognize taps on the camera button +to notify delegate that camera button was tapped to trigger an action (ie. capture)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) lazy var tapGestureRecognizer: UITapGestureRecognizer { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Long press gesture recognizer used to handle recording gesture +NOTE: this gets added to superview when the view is added, +so that all touches can be passed through this view +until the gesture is recognized in which it will then eat up all the touches

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) lazy var pressGestureRecognizer: UILongPressGestureRecognizer { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Gesture Recognizer +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func willMove(toSuperview newSuperview: UIView?)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func gestureRecognizer(
    +    _ gestureRecognizer: UIGestureRecognizer,
    +    shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer
    +) -> Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Animation +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Start animating ring fill +Call this function when gesture recognizer begins

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startRecordingAnimation(
    +    ringFillDuration: TimeInterval = 10.0,
    +    maxRecordingDuration: TimeInterval = 60.0
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + ringFillDuration + + +
    +

    Duration of ring fill recording animation.

    +
    +
    + + maxRecordingDuration + + +
    +

    The max duration of a recorded video.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Stop animating ring fill and reset views to original state +Call this function when gesture recognizer ends, cancels, or fails

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func stopRecordingAnimation()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func animationDidStop(_ anim: CAAnimation, finished flag: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraConfigurableActionView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraConfigurableActionView.html new file mode 100644 index 00000000..59685ed6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraConfigurableActionView.html @@ -0,0 +1,756 @@ + + + + CameraConfigurableActionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraConfigurableActionView

+
+
+ +
public class CameraConfigurableActionView : UIView
+ +
+
+

View to use for camera actions that can be enabled/disabled and configured via separate buttons.

+ +
+
+ +
+
+
+
+ + +
+ +

Public +

+
+
+
    +
  • +
    + + + + configurable + +
    +
    +
    +
    +
    +
    +

    Whether or not the action is currently configurable via a control view. +If this is false, then the action can only be toggled on/off.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var configurable: Bool { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + toggleButton + +
    +
    +
    +
    +
    +
    +

    Button used to enable/disable camera action. +By default, this button has no image and it should be set.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var toggleButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + configurationButton + +
    +
    +
    +
    +
    +
    +

    Button used to open/close the settings for the camera action. +By default, this button has no image and it should be set.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var configurationButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + blurEffectView + +
    +
    +
    +
    +
    +
    +

    View that provides the stack view with its blurred background.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let blurEffectView: UIVisualEffectView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View Configuration +

+
+
+
    +
  • +
    + + + + collapse() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collapse()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + expand() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func expand()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Callbacks +

+
+
+
    +
  • +
    + + + + enableAction + +
    +
    +
    +
    +
    +
    +

    Callback to enable the camera action when the toggle button is selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enableAction: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + disableAction + +
    +
    +
    +
    +
    +
    +

    Callback to disable the camera action when the toggle button is deselected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var disableAction: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showActionSettings + +
    +
    +
    +
    +
    +
    +

    Callback to show the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showActionSettings: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hideActionSettings + +
    +
    +
    +
    +
    +
    +

    Callback to hide the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var hideActionSettings: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Callback to toggle the visibility of the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var toggleActionSettingsVisibility: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController.html new file mode 100644 index 00000000..50a65216 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController.html @@ -0,0 +1,2095 @@ + + + + CameraController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraController

+
+
+ +
open class CameraController: NSObject, LensRepositoryGroupObserver, LensPrefetcherObserver, LensHintDelegate,
+    MediaPickerViewDelegate, AdjustmentControlViewDelegate
+ +
+
+

A controller which manages the camera and lenses stack on behalf of its owner

+ +
+
+ +
+
+
+
+ + +
+ +

Public vars +

+
+
+
    +
  • +
    + + + + captureSession + +
    +
    +
    +
    +
    +
    +

    A capture session we’ll use for camera input.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let captureSession: AVCaptureSession
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraKit + +
    +
    +
    +
    +
    +
    +

    The CameraKit session

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraKit: CameraKitProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraPosition + +
    +
    +
    +
    +
    +
    +

    The position of the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var cameraPosition: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Outputs +

+
+
+
    +
  • +
    + + + + photoCaptureOutput + +
    +
    +
    +
    +
    +
    +

    An output used for taking still photos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var photoCaptureOutput: PhotoCaptureOutput? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + recorder + +
    +
    +
    +
    +
    +
    +

    An output used for recording videos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var recorder: Recorder? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Data providers +

+
+
+
    +
  • +
    + + + + lensMediaProvider + +
    +
    +
    +
    +
    +
    +

    Media provider for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensMediaProvider: LensMediaPickerProviderPhotoLibrary
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Delegates +

+
+
+
    +
  • +
    + + + + snapchatDelegate + +
    +
    +
    +
    +
    +
    +

    Snapchat delegate for requests to open the main Snapchat app.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var snapchatDelegate: SnapchatDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + uiDelegate + +
    +
    +
    +
    +
    +
    +

    Delegate for responding to UI requests from camera controller.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var uiDelegate: CameraControllerUIDelegate?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

State +

+
+
+
    +
  • +
    + + + + currentLens + +
    +
    +
    +
    +
    +
    +

    The currently selected and active lens.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var currentLens: Lens? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupIDs + +
    +
    +
    +
    +
    +
    +

    List of lens repository groups to observe/show in carousel

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var groupIDs: [String] { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Whether or not the tone map adjustment is available for the current device. +This variable should be checked before showing any UI associated with the tone map adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isToneMapAdjustmentAvailable: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Whether or not the portrait adjustment is available for the current device. +This variable should be checked before showing any UI associated with the portrait adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isPortraitAdjustmentAvailable: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashState + +
    +
    +
    +
    +
    +
    +

    The current state of the camera flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var flashState: FlashState { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Initializers +

+
+
+
    +
  • +
    + + + + init(sessionConfig:) + +
    +
    +
    +
    +
    +
    +

    Returns a camera controller that is initialized with a newly created AVCaptureSession stack +and CameraKit session with the specified configuration and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(sessionConfig: SessionConfig? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + sessionConfig + + +
    +

    Config to configure session with application id and api token. +Pass this in if you wish to dynamically update or overwrite the application id and api token in the application’s Info.plist.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with camera kit session, capture session, and lens holder

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraKit: CameraKitProtocol, captureSession: AVCaptureSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    camera kit session

    +
    +
    + + captureSession + + +
    +

    avcapturesession

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Configuration +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Configures the overall camera and lenses stack.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func configure(
    +    orientation: AVCaptureVideoOrientation,
    +    textInputContextProvider: TextInputContextProvider?,
    +    agreementsPresentationContextProvider: AgreementsPresentationContextProvider?,
    +    completion: (() -> Void)?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + orientation + + +
    +

    the orientation

    +
    +
    + + completion + + +
    +

    a nullable completion that is called after configuration is done. + In case it’s a first app start (when camera permission is not determined yet) a completion will be called after the prompt.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the lenses pipeline.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func configureLenses(
    +    orientation: AVCaptureVideoOrientation,
    +    textInputContextProvider: TextInputContextProvider?,
    +    agreementsPresentationContextProvider: AgreementsPresentationContextProvider?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + orientation + + +
    +

    the camera orientation.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the data provider for lenses. Subclasses may override this to customize their data provider.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func configureDataProvider() -> DataProviderComponent
    + +
    +
    +
    +

    Return Value

    +

    a configured data provider.

    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Control +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Zoom in by a given factor from whatever the current zoom level is

    +
    +

    Note

    + the zoom level will be capped to a minimum level of 1.0. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func zoomExistingLevel(by factor: CGFloat)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + factor + + +
    +

    the factor to zoom by.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + finalizeZoom() + +
    +
    +
    +
    +
    +
    +

    Save whatever the current zoom level is.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func finalizeZoom()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flipCamera() + +
    +
    +
    +
    +
    +
    +

    Flips the camera to the other side

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func flipCamera()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Options to support when setting a point of interest

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct PointOfInterestOptions : OptionSet
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets camera point of interest for operations in the option set. Also adds observers for the current device such +that once the focusing/exposure rebalancing operations are complete, continuous autofocus/autoexposure +are restored (see observeValue)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setPointOfInterest(at point: CGPoint, for options: PointOfInterestOptions = [.exposure, .focus])
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Taking Photos +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Takes a photo.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func takePhoto(completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    completion to be called with the photo or an error.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensRepositoryGroupObserver +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func repository(_ repository: LensRepository, didUpdateLenses lenses: [Lens], forGroupID groupID: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func repository(
    +    _ repository: LensRepository, didFailToUpdateLensesForGroupID groupID: String, error: Error?
    +)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensPrefetcherObserver +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prefetcher(_ prefetcher: LensPrefetcher, didUpdate lens: Lens, status: LensFetchStatus)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Recording +

+
+
+
    +
  • +
    + + + + startRecording() + +
    +
    +
    +
    +
    +
    +

    Begin recording video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func startRecording()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cancelRecording() + +
    +
    +
    +
    +
    +
    +

    Cancel recording video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func cancelRecording()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Finish recording the video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func finishRecording(completion: ((URL?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    completion to be called with a URL to the recorded video or an error.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Lens Application +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Apply a specified lens.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func applyLens(_ lens: Lens, completion: ((Bool) -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    + + completion + + +
    +

    callback on completion with success/failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Clear the currently selected lens, and return to unmodified camera feed.

    + +
      +
    • willReapply: if true, cameraKit will not clear out the “currentLens” property, and reapplyCurrentLens will apply the lens that was cleared.
    • +
    • completion: callback on completion with success/failure
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearLens(willReapply: Bool = false, completion: ((Bool) -> Void)? = nil)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reapplyCurrentLens() + +
    +
    +
    +
    +
    +
    +

    If a lens has already been applied, reapply it.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reapplyCurrentLens()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Adjustments Application +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Enables the tone map adjustment.

    +
    +

    Note

    + Before calling this function, check whether or not the adjustment is available for the device. See isToneMapAdjustmentAvailable. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func enableToneMapAdjustment() -> Float?
    + +
    +
    +
    +

    Return Value

    +

    Float representing the intensity of the tone map effect.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Disables the tone map adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func disableToneMapAdjustment()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Enables the portrait adjustment.

    +
    +

    Note

    + Before calling this function, check whether or not the adjustment is available for the device. See isPortraitAdjustmentAvailable. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func enablePortraitAdjustment() -> Float?
    + +
    +
    +
    +

    Return Value

    +

    Float representing the intensity of the portrait blur effect.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Disables the portrait adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func disablePortraitAdjustment()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensHintDelegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func lensProcessor(
    +    _ lensProcessor: LensProcessor, shouldDisplayHint hint: String, for lens: Lens, autohide: Bool
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func lensProcessor(_ lensProcessor: LensProcessor, shouldHideAllHintsFor lens: Lens)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

MediaPickerViewDelegate +

+
+
+ +
+
+
+ + +
+ +

AdjustmentsControlViewDelegate +

+
+
+ +
+
+
+ + +
+ +

Private vars +

+
+
+
    +
  • +
    + + + + brightnessToRestore + +
    +
    +
    +
    +
    +
    +

    Temporary state that holds the brightness that should be restored after the ring light is disabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var brightnessToRestore: CGFloat?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash +

+
+
+
    +
  • +
    + + + + FlashMode + +
    +
    +
    +
    +
    +
    +

    Enumerates the different flash enabled modes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum FlashMode : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FlashState + +
    +
    +
    +
    +
    +
    +

    Enumerates the different possible flash states.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum FlashState : Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + enableFlash() + +
    +
    +
    +
    +
    +
    +

    Enables the camera flash with the appopriate flash mode as per camera position and prior user selections.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func enableFlash()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + disableFlash() + +
    +
    +
    +
    +
    +
    +

    Disables the camera flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func disableFlash()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Restores brightness to what it was before the ring light was enabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func restoreBrightnessIfNecessary()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Increases brightness to max if the ring light is enabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func increaseBrightnessIfNecessary()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashMode.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashMode.html new file mode 100644 index 00000000..4eadebfc --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashMode.html @@ -0,0 +1,368 @@ + + + + FlashMode Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashMode

+
+
+ +
enum FlashMode : Int
+ +
+
+

Enumerates the different flash enabled modes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + standard + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case standard
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ring + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ring
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashState.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashState.html new file mode 100644 index 00000000..d765581c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/FlashState.html @@ -0,0 +1,422 @@ + + + + FlashState Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashState

+
+
+ +
enum FlashState : Equatable
+ +
+
+

Enumerates the different possible flash states.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + off + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case off
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + on(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case on(FlashMode)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The AVCaptureDevice.FlashMode that should be used when taking photos as per the FlashState.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var captureDeviceFlashMode: AVCaptureDevice.FlashMode { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The AVCaptureDevice.torchMode that should be used when recording videos as per the FlashState.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var captureDeviceTorchMode: AVCaptureDevice.TorchMode { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/PointOfInterestOptions.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/PointOfInterestOptions.html new file mode 100644 index 00000000..89bc8827 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraController/PointOfInterestOptions.html @@ -0,0 +1,420 @@ + + + + PointOfInterestOptions Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PointOfInterestOptions

+
+
+ +
public struct PointOfInterestOptions : OptionSet
+ +
+
+

Options to support when setting a point of interest

+ +
+
+ +
+
+
+
    +
  • +
    + + + + rawValue + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let rawValue: Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(rawValue:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(rawValue: Int)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + exposure + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let exposure: CameraController.PointOfInterestOptions
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + focus + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let focus: CameraController.PointOfInterestOptions
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraView.html new file mode 100644 index 00000000..bd7d95b5 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraView.html @@ -0,0 +1,1054 @@ + + + + CameraView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraView

+
+
+ +
open class CameraView : UIView
+ +
+
+

This is the default view that backs the CameraViewController.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + previewView + +
    +
    +
    +
    +
    +
    +

    default camerakit view to draw outputted textures

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let previewView: PreviewView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View properties +

+
+
+
    +
  • +
    + + + + cameraBottomBar + +
    +
    +
    +
    +
    +
    +

    bottom bar below carousel

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraBottomBar: CameraBottomBar
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hintLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let hintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensLabel + +
    +
    +
    +
    +
    +
    +

    top label to show current selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightView + +
    +
    +
    +
    +
    +
    +

    View used for ring light effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let ringLightView: RingLightView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraActionsView + +
    +
    +
    +
    +
    +
    +

    View that contains the buttons for various camera actions (flip, adjust, etc.)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraActionsView: CameraActionsView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashControlView + +
    +
    +
    +
    +
    +
    +

    Control view for switching between flash and ring light as well as controlling ring light color and intensity.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashControlView: FlashControlView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the ring light control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let flashControlDismissalHint: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapControlView + +
    +
    +
    +
    +
    +
    +

    Control view for tone map adjustment that allows the user to adjust the intensity of the tone map effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let toneMapControlView: AdjustmentControlView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the tone map control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let toneMapControlDismissalHintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitControlView + +
    +
    +
    +
    +
    +
    +

    Control view for portrait that allows the user to adjust the intensity of the portrait effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let portraitControlView: AdjustmentControlView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the portrait control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let portraitControlDismissalHintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + carouselView + +
    +
    +
    +
    +
    +
    +

    carousel to scroll through lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let carouselView: CarouselView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraButton + +
    +
    +
    +
    +
    +
    +

    camera button to capture/record

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraButton: CameraButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mediaPickerView + +
    +
    +
    +
    +
    +
    +

    media picker to allow using photos from camera roll in lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var mediaPickerView: MediaPickerView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + messageView + +
    +
    +
    +
    +
    +
    +

    message view to show updates when selected lens changes

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let messageView: MessageNotificationView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapAttributionView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapAttributionView: SnapAttributionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + activityIndicator + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let activityIndicator: UIActivityIndicatorView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Messages +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func showMessage(text: String, numberOfLines: Int, duration: TimeInterval = 1.5)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Activity Indicator +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func setupActivityIndicator()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Actions Control Helper +

+
+
+
    +
  • +
    + + + + isAnyControlVisible + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var isAnyControlVisible: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hideAllControls() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func hideAllControls()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Tap to Focus +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func drawTapAnimationView(at point: CGPoint)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraViewController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraViewController.html new file mode 100644 index 00000000..9885f85d --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CameraViewController.html @@ -0,0 +1,1578 @@ + + + + CameraViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraViewController

+
+
+ +
open class CameraViewController : UIViewController, CameraControllerUIDelegate
+
extension CameraViewController: AdjustmentsProcessorObserver
+
extension CameraViewController: CarouselViewDelegate, CarouselViewDataSource
+
extension CameraViewController: CameraButtonDelegate
+
extension CameraViewController: FlashControlViewDelegate
+
extension CameraViewController: UIAdaptivePresentationControllerDelegate
+ +
+
+

This is the default view controller which handles setting up the camera, lenses, carousel, etc.

+ +
+
+ +
+
+
+
+ + +
+ +

CameraKit properties +

+
+
+
    +
  • +
    + + + + cameraController + +
    +
    +
    +
    +
    +
    +

    A controller which manages the camera and lenses stack on behalf of the view controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraController: CameraController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    App orientation delegate to control app orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var appOrientationDelegate: AppOrientationDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraView: CameraView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + loadView() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func loadView()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidAppear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidAppear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidDisappear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidDisappear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Returns a camera view controller initialized with a camera controller that is configured with a newly created AVCaptureSession stack +and CameraKit session with the specified configuration and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(repoGroups: [String], sessionConfig: SessionConfig? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + repoGroups + + +
    +

    List of group IDs to observe.

    +
    +
    + + sessionConfig + + +
    +

    Config to configure session with application id and api token. +Pass this in if you wish to dynamically update or overwrite the application id and api token in the application’s Info.plist.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Convenience init to configure a camera controller with a specified AVCaptureSession stack, CameraKit, and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(cameraKit: CameraKitProtocol, captureSession: AVCaptureSession, repoGroups: [String])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + cameraKit + + +
    +

    camera kit session

    +
    +
    + + captureSession + + +
    +

    a backing AVCaptureSession to use

    +
    +
    + + repoGroups + + +
    +

    the group IDs to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Initialize the view controller with a preconfigured camera controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraController: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraController + + +
    +

    the camera controller to use.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Overridable Helper +

+
+
+
    +
  • +
    + + + + getMessage(lens:) + +
    +
    +
    +
    +
    +
    +

    get message to display in popup view for selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func getMessage(lens: Lens) -> String
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + showMessage(lens:) + +
    +
    +
    +
    +
    +
    +

    Displays a message indicating that a specified lens has been displayed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func showMessage(lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    the lens to display info for.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Lenses Setup +

+
+
+
    +
  • +
    + + + + applyLens(_:) + +
    +
    +
    +
    +
    +
    +

    Apply a specific lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func applyLens(_ lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + clearLens() + +
    +
    +
    +
    +
    +
    +

    Helper function to clear currently selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func clearLens()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CameraControllerUIDelegate +

+
+
+ +
+
+
+ + +
+ +

Adjustment Observer +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func processorUpdatedAdjustmentsAvailability(_ adjustmentsProcessor: AdjustmentsProcessor)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Carousel +

+
+
+ +
+
+
+ + +
+ +

Camera Button +

+
+
+ +
+
+
+ + +
+ +

Ring Light Control Delegate +

+
+
+ +
+
+
+ + +
+ +

Presentation Delegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func presentationControllerWillDismiss(_ presentationController: UIPresentationController)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewCell.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewCell.html new file mode 100644 index 00000000..9c7071b8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewCell.html @@ -0,0 +1,449 @@ + + + + CarouselCollectionViewCell Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewCell

+
+
+ +
public class CarouselCollectionViewCell : UICollectionViewCell
+ +
+
+

Carousel collection view cell which represents a single lens item/icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let imageView: UIImageView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + activityIndicatorView + +
    +
    +
    +
    +
    +
    +

    Activity indicator view that should activate when lens content is loading

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let activityIndicatorView: UIActivityIndicatorView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewLayout.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewLayout.html new file mode 100644 index 00000000..97ab8d55 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselCollectionViewLayout.html @@ -0,0 +1,455 @@ + + + + CarouselCollectionViewLayout Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayout

+
+
+ +
public class CarouselCollectionViewLayout : UICollectionViewFlowLayout
+ +
+
+

Custom collection view layout for carousel collection view

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Weak ref to carousel layout delegate

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CarouselCollectionViewLayoutDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dataSource + +
    +
    +
    +
    +
    +
    +

    Weak ref to carousel layout data source

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var dataSource: CarouselCollectionViewLayoutDataSource?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Override flow layout target content offset to land at a specific item (for the paging effect)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func targetContentOffset(
    +    forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint
    +) -> CGPoint
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + proposedContentOffset + + +
    +

    proposed content offset of flow layout to land at

    +
    +
    + + velocity + + +
    +

    scrolling velocity of collection view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselItem.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselItem.html new file mode 100644 index 00000000..6f35910b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselItem.html @@ -0,0 +1,557 @@ + + + + CarouselItem Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselItem

+
+
+ +
public class CarouselItem : Identifiable, Equatable
+ +
+
+

This is the carousel item view model which represents a specific lens icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + id + +
    +
    +
    +
    +
    +
    +

    id for carousel item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let id: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensId + +
    +
    +
    +
    +
    +
    +

    lens id

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensId: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupId + +
    +
    +
    +
    +
    +
    +

    group id lens belongs to

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let groupId: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    image url for lens icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let imageUrl: URL?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    downloaded image for lens icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var image: UIImage?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init for a carousel item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(lensId: String, groupId: String, imageUrl: URL? = nil, image: UIImage? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + lensId + + +
    +

    lens id

    +
    +
    + + groupId + + +
    +

    group id that lens belongs to

    +
    +
    + + imageUrl + + +
    +

    optional image url of lens icon

    +
    +
    + + image + + +
    +

    optional loaded UIImage of icon

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func == (lhs: CarouselItem, rhs: CarouselItem) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselView.html new file mode 100644 index 00000000..988eb987 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/CarouselView.html @@ -0,0 +1,867 @@ + + + + CarouselView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselView

+
+
+ +
public class CarouselView : UIView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
+
extension CarouselView: CarouselCollectionViewLayoutDelegate
+
extension CarouselView: CarouselCollectionViewLayoutDataSource
+ +
+
+

A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    The delegate for the carousel view which will be notified of the carousel view actions.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CarouselViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dataSource + +
    +
    +
    +
    +
    +
    +

    The object that manages data and provides items for the carousel view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var dataSource: CarouselViewDataSource? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reloadData() + +
    +
    +
    +
    +
    +
    +

    Reloads all of the data in the carousel view to display the latest carousel items.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reloadData()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + selectedItem + +
    +
    +
    +
    +
    +
    +

    Current selected item or nil if none are selected (ie. when carousel is empty).

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var selectedItem: CarouselItem { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Items +

+
+
+
    +
  • +
    + + + + selectItem(_:) + +
    +
    +
    +
    +
    +
    +

    Select carousel item +Returns true if item exists in carousel and is selected or false if failed to select item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public func selectItem(_ selected: CarouselItem) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + selected + + +
    +

    carousel item to select

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + hideCarousel() + +
    +
    +
    +
    +
    +
    +

    Hide lens carousel. +Sets Items to selected item and saves list to show later.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func hideCarousel()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showCarousel() + +
    +
    +
    +
    +
    +
    +

    Show lens carousel. +Sets Items to previous stored item list and reloads collectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func showCarousel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
    +    -> UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(
    +    _ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(
    +    _ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Scroll View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func scrollViewDidScroll(_ scrollView: UIScrollView)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Layout +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/ControlSlider.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/ControlSlider.html new file mode 100644 index 00000000..56d8d98b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/ControlSlider.html @@ -0,0 +1,482 @@ + + + + ControlSlider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ControlSlider

+
+
+ +
public class ControlSlider : UISlider
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling updates to the slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: ControlSliderDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + setValue(_:animated:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func setValue(_ value: Float, animated: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + setThumbColor(_:) + +
    +
    +
    +
    +
    +
    +

    Sets the color of the slider’s thumb.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @available(iOS 13.0, *)
    +public func setThumbColor(_ color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set for the the slider’s thumb.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/DefaultCarouselImageLoader.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/DefaultCarouselImageLoader.html new file mode 100644 index 00000000..d9d5e180 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/DefaultCarouselImageLoader.html @@ -0,0 +1,523 @@ + + + + DefaultCarouselImageLoader Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

DefaultCarouselImageLoader

+
+
+ +
public class DefaultCarouselImageLoader : CarouselImageLoader
+ +
+
+

Default image loader class which uses a URLSession to load images

+ +
+
+ +
+
+
+
    +
  • +
    + + + + urlSession + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let urlSession: URLSession
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(urlSession:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(urlSession: URLSession = .shared)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Load image from url (callback queue will be on main)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func loadImage(url: URL, completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Load image from url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func loadImage(url: URL, queue: DispatchQueue, completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + queue + + +
    +

    queue to call completion on

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cancelImageLoad(from url: URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/EmptyItem.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/EmptyItem.html new file mode 100644 index 00000000..f1960dc3 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/EmptyItem.html @@ -0,0 +1,341 @@ + + + + EmptyItem Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

EmptyItem

+
+
+ +
public class EmptyItem : CarouselItem
+ +
+
+

Concrete class for an empty item (clear camera button)

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/FlashControlView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/FlashControlView.html new file mode 100644 index 00000000..872fcd41 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/FlashControlView.html @@ -0,0 +1,649 @@ + + + + FlashControlView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlView

+
+
+ +
public class FlashControlView : UIView
+
extension FlashControlView: FlashModeSelectionViewDelegate
+
extension FlashControlView: ControlSliderDelegate
+
extension FlashControlView: RingLightColorSelectionViewDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling changes to the view’s controls.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: FlashControlViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The intensity of the ring light according to the control’s slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringLightIntensityValue: Float { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + primaryLabel + +
    +
    +
    +
    +
    +
    +

    Primary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let primaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View that enables the user to swtich between flash modes.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashModeSelectionView: FlashModeSelectionView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View with ring light color options to select between.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var ringLightColorSelectionView: RingLightColorSelectionView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash Mode Selection View Delegate +

+
+
+ +
+
+
+ + +
+ +

Control Slider Delegate +

+
+
+ +
+
+
+ + +
+ +

Ring Light Color Selection View Delegate +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/FlashModeSelectionView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/FlashModeSelectionView.html new file mode 100644 index 00000000..1695e0ba --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/FlashModeSelectionView.html @@ -0,0 +1,408 @@ + + + + FlashModeSelectionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashModeSelectionView

+
+
+ +
public class FlashModeSelectionView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling update’s to the selected flash mode in the view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: FlashModeSelectionViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashMode + +
    +
    +
    +
    +
    +
    +

    The current FlashMode that is selected in the view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var flashMode: CameraController.FlashMode { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/ImagePreviewViewController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/ImagePreviewViewController.html new file mode 100644 index 00000000..a8bfabf3 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/ImagePreviewViewController.html @@ -0,0 +1,530 @@ + + + + ImagePreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ImagePreviewViewController

+
+
+ +
public class ImagePreviewViewController : PreviewViewController
+ +
+
+

Preview view controller for showing captured photos and images

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    UIImage to display

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let image: UIImage
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(image:) + +
    +
    +
    +
    +
    +
    +

    Designated init to pass in required deps

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(image: UIImage)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + image + + +
    +

    UIImage to display

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Action Overrides +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/KeyboardAccessoryViewProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/KeyboardAccessoryViewProvider.html new file mode 100644 index 00000000..9d90609b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/KeyboardAccessoryViewProvider.html @@ -0,0 +1,423 @@ + + + + KeyboardAccessoryViewProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

KeyboardAccessoryViewProvider

+
+
+ +
@objc
+public class KeyboardAccessoryViewProvider : NSObject, TextInputKeyboardAccessoryProvider
+ +
+
+

Reference implementation of a text input view for lenses that take text input.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + textView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let textView: UITextView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + accessoryView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let accessoryView: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + placeholderText + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var placeholderText: String? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maximumHeight + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let maximumHeight: CGFloat
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/MediaPickerView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/MediaPickerView.html new file mode 100644 index 00000000..c7525e67 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/MediaPickerView.html @@ -0,0 +1,545 @@ + + + + MediaPickerView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerView

+
+
+ +
public class MediaPickerView : UIView
+
extension MediaPickerView: LensMediaPickerProviderUIDelegate
+ +
+
+

Selection view for Media Picker

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate to be notified of MediaPickerView events

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: MediaPickerViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + provider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var provider: LensMediaPickerProvider? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Designated init to provide in required deps

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    LensMediaPickerProvider instance to provide media to the picker view

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func mediaPickerProviderRequestedUIPresentation(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func mediaPickerProviderRequestedUIDismissal(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/MessageNotificationView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/MessageNotificationView.html new file mode 100644 index 00000000..30b09ab9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/MessageNotificationView.html @@ -0,0 +1,368 @@ + + + + MessageNotificationView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MessageNotificationView

+
+
+ +
public class MessageNotificationView : UIView
+ +
+
+

Popup message notification view for different lens events

+ +
+
+ +
+
+
+
    +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Default label in the message notification view

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let label: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/PreviewViewController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/PreviewViewController.html new file mode 100644 index 00000000..ccedc546 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/PreviewViewController.html @@ -0,0 +1,514 @@ + + + + PreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewViewController

+
+
+ +
public class PreviewViewController : UIViewController
+ +
+
+

Base preview view controller that describes properties and views of all preview controllers

+ +
+
+ +
+
+
+
+ + +
+ +

Preview Properties +

+
+
+
    +
  • +
    + + + + snapchatDelegate + +
    +
    +
    +
    +
    +
    +

    Snapchat delegate for open requests

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var snapchatDelegate: SnapchatDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + onDismiss + +
    +
    +
    +
    +
    +
    +

    Callback when user presses close button and dismisses preview view controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var onDismiss: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Setup +

+
+
+
    +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Overridable Actions +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/Recorder.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/Recorder.html new file mode 100644 index 00000000..ea251b25 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/Recorder.html @@ -0,0 +1,470 @@ + + + + Recorder Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Recorder

+
+
+ +
public class Recorder
+ +
+
+

Sample video recorder implementation.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + output + +
    +
    +
    +
    +
    +
    +

    The AVWriterOutput for CameraKt.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let output: AVWriterOutput
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in required deps

    +
    +

    Throws

    + Throws error if cannot create asset writer with output file URL and file type + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(url: URL, orientation: AVCaptureVideoOrientation, size: CGSize) throws
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + url + + +
    +

    output URL of video file

    +
    +
    + + orientation + + +
    +

    current orientation of device

    +
    +
    + + size + + +
    +

    height of video output

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + startRecording() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startRecording()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func finishRecording(completion: ((URL?, Error?) -> Void)?)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionView.html new file mode 100644 index 00000000..41d12451 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionView.html @@ -0,0 +1,644 @@ + + + + RingLightColorSelectionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionView

+
+
+ +
public class RingLightColorSelectionView : UIView
+
extension RingLightColorSelectionView: UICollectionViewDelegate
+
extension RingLightColorSelectionView: UICollectionViewDataSource
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + collectionView + +
    +
    +
    +
    +
    +
    +

    Collection view which contains the different color options for the ring light.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var collectionView: UICollectionView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    To be called the first time the ring light color selection view appears.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func performInitialSelection(indexPath: IndexPath = IndexPath(row: 0, section: 0))
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + indexPath + + +
    +

    The index path of the color cell to initially select.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Delegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Data Source +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
    +    -> UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionViewCell.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionViewCell.html new file mode 100644 index 00000000..4ee514de --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightColorSelectionViewCell.html @@ -0,0 +1,508 @@ + + + + RingLightColorSelectionViewCell Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionViewCell

+
+
+ +
public class RingLightColorSelectionViewCell : UICollectionViewCell
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + reuseIdentifer + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let reuseIdentifer: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Public +

+
+
+
    +
  • +
    + + + + setColor(_:) + +
    +
    +
    +
    +
    +
    +

    Used to set the color option that the cell represents.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setColor(_ color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set for the cell.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + highlight() + +
    +
    +
    +
    +
    +
    +

    Used to highlight the color option that this cell represents when selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func highlight()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + unhighlight() + +
    +
    +
    +
    +
    +
    +

    Remove the highlight from this cell.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func unhighlight()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightGradientView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightGradientView.html new file mode 100644 index 00000000..17af74d1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightGradientView.html @@ -0,0 +1,494 @@ + + + + RingLightGradientView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightGradientView

+
+
+ +
public class RingLightGradientView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Ring Light Modification +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Updates the intensity of the ring light effect to the specified intensity.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateIntensity(to intensity: CGFloat, animated: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + intensity + + +
    +

    The intensity to set the ring light effect to. Value should be between 0.0 and 1.0.

    +
    +
    + + animated + + +
    +

    Whether or not the change in intensity is animated.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + changeColor(to:) + +
    +
    +
    +
    +
    +
    +

    Changes the color of the ring light gradient to the specified color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func changeColor(to color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set the ring light gradient to.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightView.html new file mode 100644 index 00000000..3c747bd4 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/RingLightView.html @@ -0,0 +1,541 @@ + + + + RingLightView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightView

+
+
+ +
public class RingLightView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + topBorder + +
    +
    +
    +
    +
    +
    +

    The top border of the ring light effect. This top border is unaffected by changes to the ring light gradient intensity.

    +
    +

    Note

    + This top border is unaffected by changes to the ring light gradient intensity. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let topBorder: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + bottomBorder + +
    +
    +
    +
    +
    +
    +

    The bottom border of the ring light effect.

    +
    +

    Note

    + This bottom border is unaffected by changes to the ring light gradient intensity. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let bottomBorder: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightGradient + +
    +
    +
    +
    +
    +
    +

    The gradient portion of the ring light effect. +Update the intensity of the ring light effect by calling the updateIntensity method of RingLightGradientView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let ringLightGradient: RingLightGradientView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Modification +

+
+
+
    +
  • +
    + + + + changeColor(to:) + +
    +
    +
    +
    +
    +
    +

    Changes the color of the ring light effect to the specified color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func changeColor(to color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set the ring light effect to.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/SnapAttributionView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/SnapAttributionView.html new file mode 100644 index 00000000..93f5111a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/SnapAttributionView.html @@ -0,0 +1,368 @@ + + + + SnapAttributionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapAttributionView

+
+
+ +
public class SnapAttributionView : UIView
+ +
+
+

Snap attribution on Camera that contains “Powered by” and Snap ghost icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + poweredByLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let poweredByLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapIconImage + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapIconImage: UIImageView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/TapAnimationView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/TapAnimationView.html new file mode 100644 index 00000000..97c810db --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/TapAnimationView.html @@ -0,0 +1,368 @@ + + + + TapAnimationView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

TapAnimationView

+
+
+ +
public class TapAnimationView : UIView
+ +
+
+

View that appears when the user taps on the camera view

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(center:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(center: CGPoint)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + show() + +
    +
    +
    +
    +
    +
    +

    Performs the tap animation and removes the view upon completion of the animation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func show()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/UserDataProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/UserDataProvider.html new file mode 100644 index 00000000..ab58c3e0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/UserDataProvider.html @@ -0,0 +1,368 @@ + + + + UserDataProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UserDataProvider

+
+
+ +
public class UserDataProvider : NSObject, SCSDKCameraKit.UserDataProvider
+ +
+
+

Default user data provider to show how to provide user data to CameraKit

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for CameraKit to receive updates on user data

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: UserDataProviderDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + userData + +
    +
    +
    +
    +
    +
    +

    Mocked user data

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var userData: UserData? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/VideoPreviewViewController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/VideoPreviewViewController.html new file mode 100644 index 00000000..6b0aa5dd --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Classes/VideoPreviewViewController.html @@ -0,0 +1,530 @@ + + + + VideoPreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

VideoPreviewViewController

+
+
+ +
public class VideoPreviewViewController : PreviewViewController
+ +
+
+

Preview view controller for showing recorded video previews

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + videoUrl + +
    +
    +
    +
    +
    +
    +

    URL which contains video file

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let videoUrl: URL
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(videoUrl:) + +
    +
    +
    +
    +
    +
    +

    Init with url to video file

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(videoUrl: URL)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + videoUrl + + +
    +

    url to video file

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Action Overrides +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums.html new file mode 100644 index 00000000..9d36378c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums.html @@ -0,0 +1,622 @@ + + + + Enumerations Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SnapchatScreen + +
    +
    +
    +
    +
    +
    +

    Describes the Snapchat screen to open to

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum SnapchatScreen
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Bottom Bar +

+
+
+ +
+
+
+ + +
+ +

Camera View +

+
+
+
    +
  • +
    + + + + CameraElements + +
    +
    +
    +
    +
    +
    +

    CameraViewController testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum CameraElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Carousel +

+
+
+ +
+
+
+ + +
+ +

Preview +

+
+
+
    +
  • +
    + + + + PreviewElements + +
    +
    +
    +
    +
    +
    +

    PreviewViewController testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum PreviewElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Message Notification +

+
+
+ +
+
+
+ + +
+ +

Flash Control +

+
+
+ +
+
+
+ + +
+ +

Other Elements +

+
+
+
    +
  • +
    + + + + OtherElements + +
    +
    +
    +
    +
    +
    +

    Other misc testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum OtherElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraBottomBarElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraBottomBarElements.html new file mode 100644 index 00000000..b93ff444 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraBottomBarElements.html @@ -0,0 +1,341 @@ + + + + CameraBottomBarElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraBottomBarElements

+
+
+ +
public enum CameraBottomBarElements : String, TestableElement
+ +
+
+

CameraBottomBar view testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case closeButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraElements.html new file mode 100644 index 00000000..79b78e75 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraElements.html @@ -0,0 +1,814 @@ + + + + CameraElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraElements

+
+
+ +
public enum CameraElements : String, TestableElement
+ +
+
+

CameraViewController testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lensLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lensLabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flipCameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flipCameraButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photoLibraryButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photoLibraryButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case cameraButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera View +

+
+
+
    +
  • +
    + + + + CameraFlip + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum CameraFlip
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraElements/CameraFlip.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraElements/CameraFlip.html new file mode 100644 index 00000000..31d257a1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CameraElements/CameraFlip.html @@ -0,0 +1,368 @@ + + + + CameraFlip Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraFlip

+
+
+ +
enum CameraFlip
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + front + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let front: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + back + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let back: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CarouselElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CarouselElements.html new file mode 100644 index 00000000..f08eb907 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/CarouselElements.html @@ -0,0 +1,395 @@ + + + + CarouselElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselElements

+
+
+ +
public enum CarouselElements : String, TestableElement
+ +
+
+

CarouselView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + collectionView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case collectionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensCell + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lensCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case facadeSelectionRingView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/FlashControlElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/FlashControlElements.html new file mode 100644 index 00000000..3f974df9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/FlashControlElements.html @@ -0,0 +1,395 @@ + + + + FlashControlElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlElements

+
+
+ +
public enum FlashControlElements : String, TestableElement
+ +
+
+

FlashControlView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + flashModeSelector + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashModeSelector
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightColorSelector
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightIntensitySlider
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/MessageNotificationElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/MessageNotificationElements.html new file mode 100644 index 00000000..11bbeb33 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/MessageNotificationElements.html @@ -0,0 +1,341 @@ + + + + MessageNotificationElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MessageNotificationElements

+
+
+ +
public enum MessageNotificationElements : String, TestableElement
+ +
+
+

MessageNotificationView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case label
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/OtherElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/OtherElements.html new file mode 100644 index 00000000..5fc55f89 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/OtherElements.html @@ -0,0 +1,476 @@ + + + + OtherElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

OtherElements

+
+
+ +
public enum OtherElements : String, TestableElement
+ +
+
+

Other misc testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + noOpButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case noOpButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arkitButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case arkitButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + agreementsButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case agreementsButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tapToFocusView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tapToFocusView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + pairingButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case pairingButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case connectedLensStartButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/PreviewElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/PreviewElements.html new file mode 100644 index 00000000..50ae3802 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/PreviewElements.html @@ -0,0 +1,449 @@ + + + + PreviewElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewElements

+
+
+ +
public enum PreviewElements : String, TestableElement
+ +
+
+

PreviewViewController testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case closeButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapchatButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case snapchatButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + shareButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case shareButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imageView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case imageView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + playerControllerView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case playerControllerView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/SnapchatScreen.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/SnapchatScreen.html new file mode 100644 index 00000000..cc2dc8a7 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Enums/SnapchatScreen.html @@ -0,0 +1,422 @@ + + + + SnapchatScreen Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapchatScreen

+
+
+ +
public enum SnapchatScreen
+ +
+
+

Describes the Snapchat screen to open to

+ +
+
+ +
+
+
+
    +
  • +
    + + + + profile + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case profile
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lens(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lens(Lens)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photo(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photo(UIImage)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + video(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video(URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions.html new file mode 100644 index 00000000..31060de8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions.html @@ -0,0 +1,474 @@ + + + + Extensions Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + UIButton + +
    +
    +
    +
    +
    +
    +

    Helper to apply shadows to buttons.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UILabel + +
    +
    +
    +
    +
    +
    +

    Helper to produce a dismissal hint for various camera action controls.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIImage + +
    +
    +
    +
    +
    +
    +

    Helper to produce highlighted versions of some camera action button images.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UIImage
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIColor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIFont + +
    +
    +
    +
    +
    +
    +

    Provides access to Snapchat typography in all supported weights.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIFont
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + NSString + +
    +
    +
    +
    +
    +
    +

    Objective-C interface for CameraKitLocalizedString

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension NSString
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/NSString.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/NSString.html new file mode 100644 index 00000000..ffcf5196 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/NSString.html @@ -0,0 +1,348 @@ + + + + NSString Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

NSString

+
+
+ +
public extension NSString
+ +
+
+

Objective-C interface for CameraKitLocalizedString

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +class func cameraKit_localized(
    +    key: String,
    +    bundle: Bundle?,
    +    preferredLanguages: [String] = NSLocale.preferredLanguages,
    +    comment: String?,
    +    table: String? = nil
    +) -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIButton.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIButton.html new file mode 100644 index 00000000..0ade5edc --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIButton.html @@ -0,0 +1,341 @@ + + + + UIButton Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIButton

+
+
+ +
public extension UIButton
+ +
+
+

Helper to apply shadows to buttons.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Applies a shadow designed for camera action buttons.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func applyCameraActionButtonShadow()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIColor.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIColor.html new file mode 100644 index 00000000..91072e7e --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIColor.html @@ -0,0 +1,340 @@ + + + + UIColor Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIColor

+
+
+ +
public extension UIColor
+ +
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: UInt, alpha: CGFloat = 1.0)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIFont.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIFont.html new file mode 100644 index 00000000..5618618e --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIFont.html @@ -0,0 +1,476 @@ + + + + UIFont Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIFont

+
+
+ +
public extension UIFont
+ +
+
+

Provides access to Snapchat typography in all supported weights.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_ultraLightFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_regularFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_regularFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_mediumFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_mediumFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_demiBoldFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_boldFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_boldFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_heavyFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_heavyFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIImage.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIImage.html new file mode 100644 index 00000000..40796cd0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UIImage.html @@ -0,0 +1,376 @@ + + + + UIImage Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIImage

+
+
+ +
extension UIImage
+ +
+
+

Helper to produce highlighted versions of some camera action button images.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Produces a version of the image that is subtracted from a circle with the given radius and color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func circleHighlightedImage(radius: CGFloat, color: UIColor = .white) -> UIImage?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + radius + + +
    +

    The radius of the circle to subtract the image from.

    +
    +
    + + color + + +
    +

    The color of the circle to subtract the image from.

    +
    +
    +
    +
    +

    Return Value

    +

    The image subtracted from the circle with the provided radius and color.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UILabel.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UILabel.html new file mode 100644 index 00000000..d0be277c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Extensions/UILabel.html @@ -0,0 +1,345 @@ + + + + UILabel Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UILabel

+
+
+ +
public extension UILabel
+ +
+
+

Helper to produce a dismissal hint for various camera action controls.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Produces a dismissal hint label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func controlDismissalHint() -> UILabel
    + +
    +
    +
    +

    Return Value

    +

    The dismissal hint label.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Functions.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Functions.html new file mode 100644 index 00000000..81f4b0cd --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Functions.html @@ -0,0 +1,411 @@ + + + + Functions Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Functions

+

The following functions are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Looks up a localized string for CameraKit’s reference UI.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func CameraKitLocalizedString(
    +    key: String,
    +    bundle: Bundle? = nil,
    +    preferredLanguages: [String] = NSLocale.preferredLanguages,
    +    comment: String?,
    +    table: String? = nil
    +) -> String
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + key + + +
    +

    key to lookup.

    +
    +
    + + bundle + + +
    +

    explicit bundle to look up key for. If omitted, uses the CameraKit Reference UI bundle.

    +
    +
    + + preferredLanguages + + +
    +

    a list of language codes in order of preference.

    +
    +
    + + comment + + +
    +

    any comments on the string.

    +
    +
    + + table + + +
    +

    an explicit strings table to reference.

    +
    +
    +
    +
    +

    Return Value

    +

    a localized string, if one is available for the languages specified, otherwise the English string (and the key, if neither are found).

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols.html new file mode 100644 index 00000000..1e1a8890 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols.html @@ -0,0 +1,755 @@ + + + + Protocols Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraControllerUIDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraButtonDelegate + +
    +
    +
    +
    +
    +
    +

    Delegate to receive updates for camera button view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraButtonDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol AdjustmentControlViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ControlSliderDelegate + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol ControlSliderDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to control app orientation

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol AppOrientationDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol FlashControlViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol FlashModeSelectionViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol RingLightColorSelectionViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate for custom carousel collection view layout

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselCollectionViewLayoutDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Data source for custom carousel collection view layout

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselCollectionViewLayoutDataSource : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselImageLoader + +
    +
    +
    +
    +
    +
    +

    Protocol used to load an image from url

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselImageLoader
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselViewDelegate + +
    +
    +
    +
    +
    +
    +

    A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A set of functions that an object adopts to manage data and provide items for a carousel view.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselViewDataSource : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to be notified of MediaPickerView events

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol MediaPickerViewDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SnapchatDelegate + +
    +
    +
    +
    +
    +
    +

    CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol SnapchatDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + TestableElement + +
    +
    +
    +
    +
    +
    +

    Describes an element that can be UI tested

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/AdjustmentControlViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/AdjustmentControlViewDelegate.html new file mode 100644 index 00000000..072cdcb6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/AdjustmentControlViewDelegate.html @@ -0,0 +1,372 @@ + + + + AdjustmentControlViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentControlViewDelegate

+
+
+ +
public protocol AdjustmentControlViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the control’s intensity slider’s value has changed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func adjustmentControlView(_ control: AdjustmentControlView, sliderValueChanged value: Double)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + control + + +
    +

    The control view.

    +
    +
    + + value + + +
    +

    The updated value received from the control’s intensity slider.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/AppOrientationDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/AppOrientationDelegate.html new file mode 100644 index 00000000..14df5dca --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/AppOrientationDelegate.html @@ -0,0 +1,387 @@ + + + + AppOrientationDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AppOrientationDelegate

+
+
+ +
public protocol AppOrientationDelegate : AnyObject
+ +
+
+

Describes an interface to control app orientation

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lockOrientation(_:) + +
    +
    +
    +
    +
    +
    +

    Lock app orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func lockOrientation(_ orientation: UIInterfaceOrientationMask)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + orientation + + +
    +

    interface orientation mask to lock orientations to

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + unlockOrientation() + +
    +
    +
    +
    +
    +
    +

    Unlock orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func unlockOrientation()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CameraButtonDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CameraButtonDelegate.html new file mode 100644 index 00000000..6bc9dec9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CameraButtonDelegate.html @@ -0,0 +1,499 @@ + + + + CameraButtonDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButtonDelegate

+
+
+ +
public protocol CameraButtonDelegate : AnyObject
+ +
+
+

Delegate to receive updates for camera button view

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Called when user taps camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonTapped(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user starts holding down camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldBegan(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user released their hold before the minimum threshold has been reached

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldCancelled(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view +NOTE: this will be followed by a call to cameraButtonTapped(_:)

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user stops holding down camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldEnded(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CameraControllerUIDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CameraControllerUIDelegate.html new file mode 100644 index 00000000..6ecec120 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CameraControllerUIDelegate.html @@ -0,0 +1,882 @@ + + + + CameraControllerUIDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraControllerUIDelegate

+
+
+ +
public protocol CameraControllerUIDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller has resolved a new list of available lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(_ controller: CameraController, updatedLenses lenses: [Lens])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + lenses + + +
    +

    The newly available lenses.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller is currently in a loading state, and an activity indicator should be displayed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedActivityIndicatorShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller is no longer in a loading state, and an activity indicator should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedActivityIndicatorHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state is on in ring light mode and that the ring light effect should be shown.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedRingLightShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state is no longer in ring light mode and that the ring light effect should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedRingLightHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state has changed such that the flash control should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedFlashControlHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the snap attribution should be shown. For example, after the agreements have been accepted.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedSnapAttributionViewShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the snap attribution should be hidden. For example, when a video is being recorded.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedSnapAttributionViewHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera position should be flipped.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedCameraFlip(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a lens has requested that a hint should be displayed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(
    +    _ controller: CameraController, requestedHintDisplay hint: String, for lens: Lens, autohide: Bool
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + hint + + +
    +

    The hint text that should be displayed.

    +
    +
    + + lens + + +
    +

    The requesting lens.

    +
    +
    + + autohide + + +
    +

    Whether or not the hint should be automatically hidden, after a callee-determined amount of time.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that any hints requested by the specified lens should be hidden

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(_ controller: CameraController, requestedHintHideFor lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + lens + + +
    +

    The lens whose hints should be hidden.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDataSource.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDataSource.html new file mode 100644 index 00000000..7b432b95 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDataSource.html @@ -0,0 +1,373 @@ + + + + CarouselCollectionViewLayoutDataSource Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayoutDataSource

+
+
+ +
public protocol CarouselCollectionViewLayoutDataSource : AnyObject
+ +
+
+

Data source for custom carousel collection view layout

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Method to provide any sort of transform that should be applied to the carousel cell

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselLayout(_ layout: CarouselCollectionViewLayout, transformForItemAt indexPath: IndexPath)
    +    -> CGAffineTransform
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + layout + + +
    +

    carousel collection view layout instance

    +
    +
    + + indexPath + + +
    +

    index path of cell

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDelegate.html new file mode 100644 index 00000000..fcdddcce --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselCollectionViewLayoutDelegate.html @@ -0,0 +1,372 @@ + + + + CarouselCollectionViewLayoutDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayoutDelegate

+
+
+ +
public protocol CarouselCollectionViewLayoutDelegate : AnyObject
+ +
+
+

Delegate for custom carousel collection view layout

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    This method is called when user stops scrolling and layout will target the correct lens to land at

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselLayout(_ layout: CarouselCollectionViewLayout, willTargetIndex index: Int)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + layout + + +
    +

    carousel collection view layout instance

    +
    +
    + + index + + +
    +

    index of item that it will land at

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselImageLoader.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselImageLoader.html new file mode 100644 index 00000000..d755b52d --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselImageLoader.html @@ -0,0 +1,372 @@ + + + + CarouselImageLoader Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselImageLoader

+
+
+ +
public protocol CarouselImageLoader
+ +
+
+

Protocol used to load an image from url

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Load image from url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func loadImage(url: URL, completion: ((_ image: UIImage?, _ error: Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDataSource.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDataSource.html new file mode 100644 index 00000000..ced4a647 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDataSource.html @@ -0,0 +1,364 @@ + + + + CarouselViewDataSource Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselViewDataSource

+
+
+ +
public protocol CarouselViewDataSource : AnyObject
+ +
+
+

A set of functions that an object adopts to manage data and provide items for a carousel view.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Returns a list of items to show in the carousel view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func itemsForCarouselView(_ view: CarouselView) -> [CarouselItem]
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + view + + +
    +

    The carousel view which will show the list of items returned.

    +
    +
    +
    +
    +

    Return Value

    +

    A list of items to show in the carousel view.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDelegate.html new file mode 100644 index 00000000..eda53223 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/CarouselViewDelegate.html @@ -0,0 +1,384 @@ + + + + CarouselViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselViewDelegate

+
+
+ +
public protocol CarouselViewDelegate : AnyObject
+ +
+
+

A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a given carousel’s specific index was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselView(_ view: CarouselView, didSelect item: CarouselItem, at index: Int)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + view + + +
    +

    The carousel view which contains the item that was just selected.

    +
    +
    + + item + + +
    +

    The carousel item which was just selected.

    +
    +
    + + index + + +
    +

    The index at which the carousel item was selected.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/ControlSliderDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/ControlSliderDelegate.html new file mode 100644 index 00000000..102cc2f8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/ControlSliderDelegate.html @@ -0,0 +1,384 @@ + + + + ControlSliderDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ControlSliderDelegate

+
+
+ +
public protocol ControlSliderDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the slider’s value has changed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func controlSlider(_ slider: ControlSlider, updatedValue value: Float, done: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + slider + + +
    +

    The control slider.

    +
    +
    + + updatedValue + + +
    +

    The updated value received from the slider.

    +
    +
    + + done + + +
    +

    Whether or not the slider’s value is done changing.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/FlashControlViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/FlashControlViewDelegate.html new file mode 100644 index 00000000..f6c95483 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/FlashControlViewDelegate.html @@ -0,0 +1,488 @@ + + + + FlashControlViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlViewDelegate

+
+
+ +
public protocol FlashControlViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a ring light color was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, selectedRingLightColor color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + selectedRingLightColor + + +
    +

    The ring light color that was just selected.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the control’s ring light intensity slider has an updated value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, updatedRingLightValue value: Float)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + updatedRingLightValue + + +
    +

    The updated intensity value received from the slider.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that there is an update to the selected flash mode.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, updatedFlashMode flashMode: CameraController.FlashMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + updatedFlashMode + + +
    +

    The updated flash mode selection.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/FlashModeSelectionViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/FlashModeSelectionViewDelegate.html new file mode 100644 index 00000000..645bc6ae --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/FlashModeSelectionViewDelegate.html @@ -0,0 +1,372 @@ + + + + FlashModeSelectionViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashModeSelectionViewDelegate

+
+
+ +
public protocol FlashModeSelectionViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that there is an update to the selected flash mode.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashModeSelectionView(_ view: FlashModeSelectionView, updatedMode mode: CameraController.FlashMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash mode selection view.

    +
    +
    + + updatedFlashMode + + +
    +

    The updated flash mode selection.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/MediaPickerViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/MediaPickerViewDelegate.html new file mode 100644 index 00000000..30366489 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/MediaPickerViewDelegate.html @@ -0,0 +1,372 @@ + + + + MediaPickerViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerViewDelegate

+
+
+ +
public protocol MediaPickerViewDelegate : NSObjectProtocol
+ +
+
+

Describes an interface to be notified of MediaPickerView events

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    User selected asset in MediaPickerView

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func mediaPickerView(_ mediaPickerView: MediaPickerView, selectedAsset: LensMediaPickerProviderAsset)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + mediaPickerView + + +
    +

    MediaPickerView instance

    +
    +
    + + selectedAsset + + +
    +

    user selected asset

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/RingLightColorSelectionViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/RingLightColorSelectionViewDelegate.html new file mode 100644 index 00000000..875eaa79 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/RingLightColorSelectionViewDelegate.html @@ -0,0 +1,372 @@ + + + + RingLightColorSelectionViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionViewDelegate

+
+
+ +
public protocol RingLightColorSelectionViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a color was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func ringLightColorSelectionView(_ view: RingLightColorSelectionView, selectedColor color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The ring light color selection view.

    +
    +
    + + selectedColor + + +
    +

    The color that was just selected.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/SnapchatDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/SnapchatDelegate.html new file mode 100644 index 00000000..61d2ead2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/SnapchatDelegate.html @@ -0,0 +1,372 @@ + + + + SnapchatDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapchatDelegate

+
+
+ +
public protocol SnapchatDelegate : AnyObject
+ +
+
+

CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    CameraKit view controller requests opening Snapchat with specific info

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraKitViewController(_ viewController: UIViewController, openSnapchat screen: SnapchatScreen)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + viewController + + +
    +

    CameraKit view controller instance

    +
    +
    + + screen + + +
    +

    Snapchat screen to open to

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/TestableElement.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/TestableElement.html new file mode 100644 index 00000000..96f91167 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/Protocols/TestableElement.html @@ -0,0 +1,341 @@ + + + + TestableElement Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

TestableElement

+
+
+ +
public protocol TestableElement
+ +
+
+

Describes an element that can be UI tested

+ +
+
+ +
+
+
+
    +
  • +
    + + + + id + +
    +
    +
    +
    +
    +
    +

    identifier for the testable element

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var id: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/badge.svg b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/badge.svg new file mode 100644 index 00000000..43342ebc --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 60% + + + 60% + + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/css/highlight.css b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/css/highlight.css new file mode 100644 index 00000000..c170357c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/css/jazzy.css b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/css/jazzy.css new file mode 100644 index 00000000..c7bb9fe2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Info.plist b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Info.plist new file mode 100644 index 00000000..defb28c3 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy.scsdkcamerakitreferenceui + CFBundleName + SCSDKCameraKitReferenceUI + DocSetPlatformFamily + scsdkcamerakitreferenceui + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes.html new file mode 100644 index 00000000..b029cde4 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes.html @@ -0,0 +1,1230 @@ + + + + Classes Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Classes

+

The following classes are available globally.

+ +
+
+ +
+
+
+
+ + +
+ +

Class Definition and State +

+
+
+
    +
  • +
    + + + + CameraController + +
    +
    +
    +
    +
    +
    +

    A controller which manages the camera and lenses stack on behalf of its owner

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraController: NSObject, LensRepositoryGroupObserver, LensPrefetcherObserver, LensHintDelegate,
    +    MediaPickerViewDelegate, AdjustmentControlViewDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraButton + +
    +
    +
    +
    +
    +
    +

    Camera ring view for capturing and recording state

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraButton : UIView, UIGestureRecognizerDelegate
    +
    extension CameraButton: CAAnimationDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + AdjustmentControlView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class AdjustmentControlView : UIView
    +
    extension AdjustmentControlView: ControlSliderDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ControlSlider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class ControlSlider : UISlider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraActionsView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraActionsView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View to use for camera actions that can be enabled/disabled and configured via separate buttons.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraConfigurableActionView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraView + +
    +
    +
    +
    +
    +
    +

    This is the default view that backs the CameraViewController.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraViewController + +
    +
    +
    +
    +
    +
    +

    This is the default view controller which handles setting up the camera, lenses, carousel, etc.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class CameraViewController : UIViewController, CameraControllerUIDelegate
    +
    extension CameraViewController: AdjustmentsProcessorObserver
    +
    extension CameraViewController: CarouselViewDelegate, CarouselViewDataSource
    +
    extension CameraViewController: CameraButtonDelegate
    +
    extension CameraViewController: FlashControlViewDelegate
    +
    extension CameraViewController: UIAdaptivePresentationControllerDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FlashControlView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class FlashControlView : UIView
    +
    extension FlashControlView: FlashModeSelectionViewDelegate
    +
    extension FlashControlView: ControlSliderDelegate
    +
    extension FlashControlView: RingLightColorSelectionViewDelegate
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class FlashModeSelectionView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightColorSelectionView : UIView
    +
    extension RingLightColorSelectionView: UICollectionViewDelegate
    +
    extension RingLightColorSelectionView: UICollectionViewDataSource
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightColorSelectionViewCell : UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + RingLightGradientView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightGradientView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + RingLightView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class RingLightView : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Carousel collection view cell which represents a single lens item/icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselCollectionViewCell : UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Custom collection view layout for carousel collection view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselCollectionViewLayout : UICollectionViewFlowLayout
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Default image loader class which uses a URLSession to load images

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class DefaultCarouselImageLoader : CarouselImageLoader
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselItem + +
    +
    +
    +
    +
    +
    +

    This is the carousel item view model which represents a specific lens icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselItem : Identifiable, Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + EmptyItem + +
    +
    +
    +
    +
    +
    +

    Concrete class for an empty item (clear camera button)

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class EmptyItem : CarouselItem
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselView + +
    +
    +
    +
    +
    +
    +

    A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CarouselView : UIView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
    +
    extension CarouselView: CarouselCollectionViewLayoutDelegate
    +
    extension CarouselView: CarouselCollectionViewLayoutDataSource
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + BundleHelper + +
    +
    +
    +
    +
    +
    +

    Internal helper to deal with resources bundle

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class BundleHelper
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Reference implementation of a text input view for lenses that take text input.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public class KeyboardAccessoryViewProvider : NSObject, TextInputKeyboardAccessoryProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaPickerView + +
    +
    +
    +
    +
    +
    +

    Selection view for Media Picker

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class MediaPickerView : UIView
    +
    extension MediaPickerView: LensMediaPickerProviderUIDelegate
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Preview view controller for showing captured photos and images

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class ImagePreviewViewController : PreviewViewController
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + PreviewViewController + +
    +
    +
    +
    +
    +
    +

    Base preview view controller that describes properties and views of all preview controllers

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class PreviewViewController : UIViewController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Preview view controller for showing recorded video previews

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class VideoPreviewViewController : PreviewViewController
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Recorder + +
    +
    +
    +
    +
    +
    +

    Sample video recorder implementation.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class Recorder
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UserDataProvider + +
    +
    +
    +
    +
    +
    +

    Default user data provider to show how to provide user data to CameraKit

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class UserDataProvider : NSObject, SCSDKCameraKit.UserDataProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraBottomBar + +
    +
    +
    +
    +
    +
    +

    Bottom bar on Camera that contains Snap ghost button for actions +as well as close button to clear current lens

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraBottomBar : UIView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Popup message notification view for different lens events

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class MessageNotificationView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SnapAttributionView + +
    +
    +
    +
    +
    +
    +

    Snap attribution on Camera that contains “Powered by” and Snap ghost icon

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class SnapAttributionView : UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + TapAnimationView + +
    +
    +
    +
    +
    +
    +

    View that appears when the user taps on the camera view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class TapAnimationView : UIView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView.html new file mode 100644 index 00000000..03f0c38a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView.html @@ -0,0 +1,598 @@ + + + + AdjustmentControlView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentControlView

+
+
+ +
public class AdjustmentControlView : UIView
+
extension AdjustmentControlView: ControlSliderDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Variant + +
    +
    +
    +
    +
    +
    +

    Adjustments that can be controlled via this view. +Used to set the tag field of the view so the delegate can disambiguate between different adjustments.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Variant : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling changes to the adjustment intensity slider.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: AdjustmentControlViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intensityValue + +
    +
    +
    +
    +
    +
    +

    The intensity of the adjustment according to the control’s slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var intensityValue: Float { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + primaryLabel + +
    +
    +
    +
    +
    +
    +

    Primary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let primaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + secondaryLabel + +
    +
    +
    +
    +
    +
    +

    Secondary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let secondaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Control Slider Delegate +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView/Variant.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView/Variant.html new file mode 100644 index 00000000..a098835f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/AdjustmentControlView/Variant.html @@ -0,0 +1,396 @@ + + + + Variant Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Variant

+
+
+ +
public enum Variant : Int
+ +
+
+

Adjustments that can be controlled via this view. +Used to set the tag field of the view so the delegate can disambiguate between different adjustments.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + tone + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tone
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portrait + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portrait
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Text for the primary label of the control with the specified variant.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var label: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/BundleHelper.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/BundleHelper.html new file mode 100644 index 00000000..ab85cc5f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/BundleHelper.html @@ -0,0 +1,342 @@ + + + + BundleHelper Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

BundleHelper

+
+
+ +
public class BundleHelper
+ +
+
+

Internal helper to deal with resources bundle

+ +
+
+ +
+
+
+
    +
  • +
    + + + + resourcesBundle + +
    +
    +
    +
    +
    +
    +

    Internal helper computed property to get correct resources bundle +(ie. if pods, look for bundle inside main bundle)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class var resourcesBundle: Bundle { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraActionsView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraActionsView.html new file mode 100644 index 00000000..eb954c64 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraActionsView.html @@ -0,0 +1,673 @@ + + + + CameraActionsView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraActionsView

+
+
+ +
public class CameraActionsView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + flipCameraButton + +
    +
    +
    +
    +
    +
    +

    Button to flip camera input position

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flipCameraButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashToggleButtonBaseSelectedImage: UIImage? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable flash and switch between system flash and ring light.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets up the flash toggle button for front flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setupFlashToggleButtonForFront()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets up the flash toggle button for back flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setupFlashToggleButtonForBack()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable the tone map adjustment and control the intensity of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var toneMapActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitActionView + +
    +
    +
    +
    +
    +
    +

    View with buttons to enable/disable the portrait adjustment and control the intensity of the adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var portraitActionView: CameraConfigurableActionView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + buttonStackView + +
    +
    +
    +
    +
    +
    +

    Stack view used to arrange the view’s buttons.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var buttonStackView: UIStackView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Recording Handling +

+
+
+
    +
  • +
    + + + + collapse() + +
    +
    +
    +
    +
    +
    +

    Hide all camera actions except camera flip while recording.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collapse()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + expand() + +
    +
    +
    +
    +
    +
    +

    Unhide all camera actions that were hidden as a result of a call to collapse.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func expand()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraBottomBar.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraBottomBar.html new file mode 100644 index 00000000..68f5a23b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraBottomBar.html @@ -0,0 +1,369 @@ + + + + CameraBottomBar Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraBottomBar

+
+
+ +
public class CameraBottomBar : UIView
+ +
+
+

Bottom bar on Camera that contains Snap ghost button for actions +as well as close button to clear current lens

+ +
+
+ +
+
+
+
    +
  • +
    + + + + snapButton + +
    +
    +
    +
    +
    +
    +

    Snap ghost button for lens actions

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapButton: UIButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Close button to clear current lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let closeButton: UIButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraButton.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraButton.html new file mode 100644 index 00000000..92ea85e8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraButton.html @@ -0,0 +1,924 @@ + + + + CameraButton Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButton

+
+
+ +
public class CameraButton : UIView, UIGestureRecognizerDelegate
+
extension CameraButton: CAAnimationDelegate
+ +
+
+

Camera ring view for capturing and recording state

+ +
+
+ +
+
+
+
    +
  • +
    + + + + Constants + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Constants
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Camera button delegate

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CameraButtonDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + minimumHoldDuration + +
    +
    +
    +
    +
    +
    +

    The minimum time for a hold to be considered “valid.” +If the user holds and releases for a duration shorter than specified, the camera button will act as though it has been tapped instead of held.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var minimumHoldDuration: TimeInterval
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringWidth + +
    +
    +
    +
    +
    +
    +

    Line width for camera ring

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringWidth: CGFloat { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + allowWhileRecording + +
    +
    +
    +
    +
    +
    +

    List of allowed gestures to be used when recording a video(LongPressGesture) i.e. Double Tap Gesture, Pinch Gesture.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var allowWhileRecording: [UIGestureRecognizer]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringColor + +
    +
    +
    +
    +
    +
    +

    Ring color while recording

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringColor: UIColor? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tapGestureRecognizer + +
    +
    +
    +
    +
    +
    +

    Tap gesture recognizer that is used to recognize taps on the camera button +to notify delegate that camera button was tapped to trigger an action (ie. capture)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) lazy var tapGestureRecognizer: UITapGestureRecognizer { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Long press gesture recognizer used to handle recording gesture +NOTE: this gets added to superview when the view is added, +so that all touches can be passed through this view +until the gesture is recognized in which it will then eat up all the touches

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) lazy var pressGestureRecognizer: UILongPressGestureRecognizer { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Gesture Recognizer +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func willMove(toSuperview newSuperview: UIView?)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func gestureRecognizer(
    +    _ gestureRecognizer: UIGestureRecognizer,
    +    shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer
    +) -> Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Animation +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Start animating ring fill +Call this function when gesture recognizer begins

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startRecordingAnimation(
    +    ringFillDuration: TimeInterval = 10.0,
    +    maxRecordingDuration: TimeInterval = 60.0
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + ringFillDuration + + +
    +

    Duration of ring fill recording animation.

    +
    +
    + + maxRecordingDuration + + +
    +

    The max duration of a recorded video.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Stop animating ring fill and reset views to original state +Call this function when gesture recognizer ends, cancels, or fails

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func stopRecordingAnimation()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func animationDidStop(_ anim: CAAnimation, finished flag: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraConfigurableActionView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraConfigurableActionView.html new file mode 100644 index 00000000..59685ed6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraConfigurableActionView.html @@ -0,0 +1,756 @@ + + + + CameraConfigurableActionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraConfigurableActionView

+
+
+ +
public class CameraConfigurableActionView : UIView
+ +
+
+

View to use for camera actions that can be enabled/disabled and configured via separate buttons.

+ +
+
+ +
+
+
+
+ + +
+ +

Public +

+
+
+
    +
  • +
    + + + + configurable + +
    +
    +
    +
    +
    +
    +

    Whether or not the action is currently configurable via a control view. +If this is false, then the action can only be toggled on/off.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var configurable: Bool { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + toggleButton + +
    +
    +
    +
    +
    +
    +

    Button used to enable/disable camera action. +By default, this button has no image and it should be set.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var toggleButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + configurationButton + +
    +
    +
    +
    +
    +
    +

    Button used to open/close the settings for the camera action. +By default, this button has no image and it should be set.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var configurationButton: UIButton { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + blurEffectView + +
    +
    +
    +
    +
    +
    +

    View that provides the stack view with its blurred background.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let blurEffectView: UIVisualEffectView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View Configuration +

+
+
+
    +
  • +
    + + + + collapse() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collapse()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + expand() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func expand()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Callbacks +

+
+
+
    +
  • +
    + + + + enableAction + +
    +
    +
    +
    +
    +
    +

    Callback to enable the camera action when the toggle button is selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enableAction: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + disableAction + +
    +
    +
    +
    +
    +
    +

    Callback to disable the camera action when the toggle button is deselected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var disableAction: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showActionSettings + +
    +
    +
    +
    +
    +
    +

    Callback to show the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showActionSettings: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hideActionSettings + +
    +
    +
    +
    +
    +
    +

    Callback to hide the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var hideActionSettings: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Callback to toggle the visibility of the settings for the camera action.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var toggleActionSettingsVisibility: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController.html new file mode 100644 index 00000000..50a65216 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController.html @@ -0,0 +1,2095 @@ + + + + CameraController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraController

+
+
+ +
open class CameraController: NSObject, LensRepositoryGroupObserver, LensPrefetcherObserver, LensHintDelegate,
+    MediaPickerViewDelegate, AdjustmentControlViewDelegate
+ +
+
+

A controller which manages the camera and lenses stack on behalf of its owner

+ +
+
+ +
+
+
+
+ + +
+ +

Public vars +

+
+
+
    +
  • +
    + + + + captureSession + +
    +
    +
    +
    +
    +
    +

    A capture session we’ll use for camera input.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let captureSession: AVCaptureSession
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraKit + +
    +
    +
    +
    +
    +
    +

    The CameraKit session

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraKit: CameraKitProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraPosition + +
    +
    +
    +
    +
    +
    +

    The position of the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var cameraPosition: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Outputs +

+
+
+
    +
  • +
    + + + + photoCaptureOutput + +
    +
    +
    +
    +
    +
    +

    An output used for taking still photos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var photoCaptureOutput: PhotoCaptureOutput? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + recorder + +
    +
    +
    +
    +
    +
    +

    An output used for recording videos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var recorder: Recorder? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Data providers +

+
+
+
    +
  • +
    + + + + lensMediaProvider + +
    +
    +
    +
    +
    +
    +

    Media provider for CameraKit.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensMediaProvider: LensMediaPickerProviderPhotoLibrary
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Delegates +

+
+
+
    +
  • +
    + + + + snapchatDelegate + +
    +
    +
    +
    +
    +
    +

    Snapchat delegate for requests to open the main Snapchat app.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var snapchatDelegate: SnapchatDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + uiDelegate + +
    +
    +
    +
    +
    +
    +

    Delegate for responding to UI requests from camera controller.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var uiDelegate: CameraControllerUIDelegate?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

State +

+
+
+
    +
  • +
    + + + + currentLens + +
    +
    +
    +
    +
    +
    +

    The currently selected and active lens.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var currentLens: Lens? { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupIDs + +
    +
    +
    +
    +
    +
    +

    List of lens repository groups to observe/show in carousel

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var groupIDs: [String] { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Whether or not the tone map adjustment is available for the current device. +This variable should be checked before showing any UI associated with the tone map adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isToneMapAdjustmentAvailable: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Whether or not the portrait adjustment is available for the current device. +This variable should be checked before showing any UI associated with the portrait adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var isPortraitAdjustmentAvailable: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashState + +
    +
    +
    +
    +
    +
    +

    The current state of the camera flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var flashState: FlashState { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Initializers +

+
+
+
    +
  • +
    + + + + init(sessionConfig:) + +
    +
    +
    +
    +
    +
    +

    Returns a camera controller that is initialized with a newly created AVCaptureSession stack +and CameraKit session with the specified configuration and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(sessionConfig: SessionConfig? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + sessionConfig + + +
    +

    Config to configure session with application id and api token. +Pass this in if you wish to dynamically update or overwrite the application id and api token in the application’s Info.plist.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Init with camera kit session, capture session, and lens holder

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraKit: CameraKitProtocol, captureSession: AVCaptureSession)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cameraKit + + +
    +

    camera kit session

    +
    +
    + + captureSession + + +
    +

    avcapturesession

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Configuration +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Configures the overall camera and lenses stack.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func configure(
    +    orientation: AVCaptureVideoOrientation,
    +    textInputContextProvider: TextInputContextProvider?,
    +    agreementsPresentationContextProvider: AgreementsPresentationContextProvider?,
    +    completion: (() -> Void)?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + orientation + + +
    +

    the orientation

    +
    +
    + + completion + + +
    +

    a nullable completion that is called after configuration is done. + In case it’s a first app start (when camera permission is not determined yet) a completion will be called after the prompt.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the lenses pipeline.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func configureLenses(
    +    orientation: AVCaptureVideoOrientation,
    +    textInputContextProvider: TextInputContextProvider?,
    +    agreementsPresentationContextProvider: AgreementsPresentationContextProvider?
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + orientation + + +
    +

    the camera orientation.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Configures the data provider for lenses. Subclasses may override this to customize their data provider.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func configureDataProvider() -> DataProviderComponent
    + +
    +
    +
    +

    Return Value

    +

    a configured data provider.

    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Control +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Zoom in by a given factor from whatever the current zoom level is

    +
    +

    Note

    + the zoom level will be capped to a minimum level of 1.0. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func zoomExistingLevel(by factor: CGFloat)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + factor + + +
    +

    the factor to zoom by.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + finalizeZoom() + +
    +
    +
    +
    +
    +
    +

    Save whatever the current zoom level is.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func finalizeZoom()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flipCamera() + +
    +
    +
    +
    +
    +
    +

    Flips the camera to the other side

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func flipCamera()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Options to support when setting a point of interest

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct PointOfInterestOptions : OptionSet
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets camera point of interest for operations in the option set. Also adds observers for the current device such +that once the focusing/exposure rebalancing operations are complete, continuous autofocus/autoexposure +are restored (see observeValue)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setPointOfInterest(at point: CGPoint, for options: PointOfInterestOptions = [.exposure, .focus])
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Taking Photos +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Takes a photo.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func takePhoto(completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    completion to be called with the photo or an error.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensRepositoryGroupObserver +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func repository(_ repository: LensRepository, didUpdateLenses lenses: [Lens], forGroupID groupID: String)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func repository(
    +    _ repository: LensRepository, didFailToUpdateLensesForGroupID groupID: String, error: Error?
    +)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensPrefetcherObserver +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prefetcher(_ prefetcher: LensPrefetcher, didUpdate lens: Lens, status: LensFetchStatus)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Recording +

+
+
+
    +
  • +
    + + + + startRecording() + +
    +
    +
    +
    +
    +
    +

    Begin recording video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func startRecording()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cancelRecording() + +
    +
    +
    +
    +
    +
    +

    Cancel recording video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func cancelRecording()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Finish recording the video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func finishRecording(completion: ((URL?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    completion to be called with a URL to the recorded video or an error.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Lens Application +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Apply a specified lens.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func applyLens(_ lens: Lens, completion: ((Bool) -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    + + completion + + +
    +

    callback on completion with success/failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Clear the currently selected lens, and return to unmodified camera feed.

    + +
      +
    • willReapply: if true, cameraKit will not clear out the “currentLens” property, and reapplyCurrentLens will apply the lens that was cleared.
    • +
    • completion: callback on completion with success/failure
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearLens(willReapply: Bool = false, completion: ((Bool) -> Void)? = nil)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reapplyCurrentLens() + +
    +
    +
    +
    +
    +
    +

    If a lens has already been applied, reapply it.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reapplyCurrentLens()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Adjustments Application +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Enables the tone map adjustment.

    +
    +

    Note

    + Before calling this function, check whether or not the adjustment is available for the device. See isToneMapAdjustmentAvailable. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func enableToneMapAdjustment() -> Float?
    + +
    +
    +
    +

    Return Value

    +

    Float representing the intensity of the tone map effect.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Disables the tone map adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func disableToneMapAdjustment()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Enables the portrait adjustment.

    +
    +

    Note

    + Before calling this function, check whether or not the adjustment is available for the device. See isPortraitAdjustmentAvailable. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func enablePortraitAdjustment() -> Float?
    + +
    +
    +
    +

    Return Value

    +

    Float representing the intensity of the portrait blur effect.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Disables the portrait adjustment.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func disablePortraitAdjustment()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

LensHintDelegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func lensProcessor(
    +    _ lensProcessor: LensProcessor, shouldDisplayHint hint: String, for lens: Lens, autohide: Bool
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func lensProcessor(_ lensProcessor: LensProcessor, shouldHideAllHintsFor lens: Lens)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

MediaPickerViewDelegate +

+
+
+ +
+
+
+ + +
+ +

AdjustmentsControlViewDelegate +

+
+
+ +
+
+
+ + +
+ +

Private vars +

+
+
+
    +
  • +
    + + + + brightnessToRestore + +
    +
    +
    +
    +
    +
    +

    Temporary state that holds the brightness that should be restored after the ring light is disabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var brightnessToRestore: CGFloat?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash +

+
+
+
    +
  • +
    + + + + FlashMode + +
    +
    +
    +
    +
    +
    +

    Enumerates the different flash enabled modes.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum FlashMode : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FlashState + +
    +
    +
    +
    +
    +
    +

    Enumerates the different possible flash states.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum FlashState : Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + enableFlash() + +
    +
    +
    +
    +
    +
    +

    Enables the camera flash with the appopriate flash mode as per camera position and prior user selections.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func enableFlash()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + disableFlash() + +
    +
    +
    +
    +
    +
    +

    Disables the camera flash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func disableFlash()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Restores brightness to what it was before the ring light was enabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func restoreBrightnessIfNecessary()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Increases brightness to max if the ring light is enabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func increaseBrightnessIfNecessary()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashMode.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashMode.html new file mode 100644 index 00000000..4eadebfc --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashMode.html @@ -0,0 +1,368 @@ + + + + FlashMode Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashMode

+
+
+ +
enum FlashMode : Int
+ +
+
+

Enumerates the different flash enabled modes.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + standard + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case standard
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ring + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ring
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashState.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashState.html new file mode 100644 index 00000000..d765581c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/FlashState.html @@ -0,0 +1,422 @@ + + + + FlashState Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashState

+
+
+ +
enum FlashState : Equatable
+ +
+
+

Enumerates the different possible flash states.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + off + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case off
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + on(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case on(FlashMode)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The AVCaptureDevice.FlashMode that should be used when taking photos as per the FlashState.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var captureDeviceFlashMode: AVCaptureDevice.FlashMode { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The AVCaptureDevice.torchMode that should be used when recording videos as per the FlashState.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var captureDeviceTorchMode: AVCaptureDevice.TorchMode { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/PointOfInterestOptions.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/PointOfInterestOptions.html new file mode 100644 index 00000000..89bc8827 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraController/PointOfInterestOptions.html @@ -0,0 +1,420 @@ + + + + PointOfInterestOptions Structure Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PointOfInterestOptions

+
+
+ +
public struct PointOfInterestOptions : OptionSet
+ +
+
+

Options to support when setting a point of interest

+ +
+
+ +
+
+
+
    +
  • +
    + + + + rawValue + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let rawValue: Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(rawValue:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(rawValue: Int)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + exposure + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let exposure: CameraController.PointOfInterestOptions
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + focus + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let focus: CameraController.PointOfInterestOptions
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraView.html new file mode 100644 index 00000000..bd7d95b5 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraView.html @@ -0,0 +1,1054 @@ + + + + CameraView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraView

+
+
+ +
open class CameraView : UIView
+ +
+
+

This is the default view that backs the CameraViewController.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + previewView + +
    +
    +
    +
    +
    +
    +

    default camerakit view to draw outputted textures

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let previewView: PreviewView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View properties +

+
+
+
    +
  • +
    + + + + cameraBottomBar + +
    +
    +
    +
    +
    +
    +

    bottom bar below carousel

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraBottomBar: CameraBottomBar
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hintLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let hintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensLabel + +
    +
    +
    +
    +
    +
    +

    top label to show current selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightView + +
    +
    +
    +
    +
    +
    +

    View used for ring light effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let ringLightView: RingLightView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraActionsView + +
    +
    +
    +
    +
    +
    +

    View that contains the buttons for various camera actions (flip, adjust, etc.)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraActionsView: CameraActionsView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashControlView + +
    +
    +
    +
    +
    +
    +

    Control view for switching between flash and ring light as well as controlling ring light color and intensity.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashControlView: FlashControlView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the ring light control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let flashControlDismissalHint: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapControlView + +
    +
    +
    +
    +
    +
    +

    Control view for tone map adjustment that allows the user to adjust the intensity of the tone map effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let toneMapControlView: AdjustmentControlView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the tone map control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let toneMapControlDismissalHintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitControlView + +
    +
    +
    +
    +
    +
    +

    Control view for portrait that allows the user to adjust the intensity of the portrait effect.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let portraitControlView: AdjustmentControlView
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Label shown beneath the portrait control that provides a hint regarding dismissing the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let portraitControlDismissalHintLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + carouselView + +
    +
    +
    +
    +
    +
    +

    carousel to scroll through lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let carouselView: CarouselView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraButton + +
    +
    +
    +
    +
    +
    +

    camera button to capture/record

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraButton: CameraButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mediaPickerView + +
    +
    +
    +
    +
    +
    +

    media picker to allow using photos from camera roll in lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var mediaPickerView: MediaPickerView { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + messageView + +
    +
    +
    +
    +
    +
    +

    message view to show updates when selected lens changes

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let messageView: MessageNotificationView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapAttributionView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapAttributionView: SnapAttributionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + activityIndicator + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let activityIndicator: UIActivityIndicatorView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Messages +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func showMessage(text: String, numberOfLines: Int, duration: TimeInterval = 1.5)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Activity Indicator +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func setupActivityIndicator()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Actions Control Helper +

+
+
+
    +
  • +
    + + + + isAnyControlVisible + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var isAnyControlVisible: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hideAllControls() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func hideAllControls()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Tap to Focus +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func drawTapAnimationView(at point: CGPoint)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraViewController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraViewController.html new file mode 100644 index 00000000..9885f85d --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CameraViewController.html @@ -0,0 +1,1578 @@ + + + + CameraViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraViewController

+
+
+ +
open class CameraViewController : UIViewController, CameraControllerUIDelegate
+
extension CameraViewController: AdjustmentsProcessorObserver
+
extension CameraViewController: CarouselViewDelegate, CarouselViewDataSource
+
extension CameraViewController: CameraButtonDelegate
+
extension CameraViewController: FlashControlViewDelegate
+
extension CameraViewController: UIAdaptivePresentationControllerDelegate
+ +
+
+

This is the default view controller which handles setting up the camera, lenses, carousel, etc.

+ +
+
+ +
+
+
+
+ + +
+ +

CameraKit properties +

+
+
+
    +
  • +
    + + + + cameraController + +
    +
    +
    +
    +
    +
    +

    A controller which manages the camera and lenses stack on behalf of the view controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraController: CameraController
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    App orientation delegate to control app orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var appOrientationDelegate: AppOrientationDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let cameraView: CameraView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + loadView() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func loadView()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidAppear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidAppear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidDisappear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func viewDidDisappear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Returns a camera view controller initialized with a camera controller that is configured with a newly created AVCaptureSession stack +and CameraKit session with the specified configuration and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(repoGroups: [String], sessionConfig: SessionConfig? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + repoGroups + + +
    +

    List of group IDs to observe.

    +
    +
    + + sessionConfig + + +
    +

    Config to configure session with application id and api token. +Pass this in if you wish to dynamically update or overwrite the application id and api token in the application’s Info.plist.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Convenience init to configure a camera controller with a specified AVCaptureSession stack, CameraKit, and list of group IDs.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init(cameraKit: CameraKitProtocol, captureSession: AVCaptureSession, repoGroups: [String])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + cameraKit + + +
    +

    camera kit session

    +
    +
    + + captureSession + + +
    +

    a backing AVCaptureSession to use

    +
    +
    + + repoGroups + + +
    +

    the group IDs to observe

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Initialize the view controller with a preconfigured camera controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(cameraController: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraController + + +
    +

    the camera controller to use.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Overridable Helper +

+
+
+
    +
  • +
    + + + + getMessage(lens:) + +
    +
    +
    +
    +
    +
    +

    get message to display in popup view for selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func getMessage(lens: Lens) -> String
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + showMessage(lens:) + +
    +
    +
    +
    +
    +
    +

    Displays a message indicating that a specified lens has been displayed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func showMessage(lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    the lens to display info for.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Lenses Setup +

+
+
+
    +
  • +
    + + + + applyLens(_:) + +
    +
    +
    +
    +
    +
    +

    Apply a specific lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func applyLens(_ lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + lens + + +
    +

    selected lens

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + clearLens() + +
    +
    +
    +
    +
    +
    +

    Helper function to clear currently selected lens

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func clearLens()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CameraControllerUIDelegate +

+
+
+ +
+
+
+ + +
+ +

Adjustment Observer +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func processorUpdatedAdjustmentsAvailability(_ adjustmentsProcessor: AdjustmentsProcessor)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Carousel +

+
+
+ +
+
+
+ + +
+ +

Camera Button +

+
+
+ +
+
+
+ + +
+ +

Ring Light Control Delegate +

+
+
+ +
+
+
+ + +
+ +

Presentation Delegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open func presentationControllerWillDismiss(_ presentationController: UIPresentationController)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewCell.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewCell.html new file mode 100644 index 00000000..9c7071b8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewCell.html @@ -0,0 +1,449 @@ + + + + CarouselCollectionViewCell Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewCell

+
+
+ +
public class CarouselCollectionViewCell : UICollectionViewCell
+ +
+
+

Carousel collection view cell which represents a single lens item/icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + imageView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let imageView: UIImageView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + activityIndicatorView + +
    +
    +
    +
    +
    +
    +

    Activity indicator view that should activate when lens content is loading

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let activityIndicatorView: UIActivityIndicatorView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewLayout.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewLayout.html new file mode 100644 index 00000000..97ab8d55 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselCollectionViewLayout.html @@ -0,0 +1,455 @@ + + + + CarouselCollectionViewLayout Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayout

+
+
+ +
public class CarouselCollectionViewLayout : UICollectionViewFlowLayout
+ +
+
+

Custom collection view layout for carousel collection view

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Weak ref to carousel layout delegate

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CarouselCollectionViewLayoutDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dataSource + +
    +
    +
    +
    +
    +
    +

    Weak ref to carousel layout data source

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var dataSource: CarouselCollectionViewLayoutDataSource?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Override flow layout target content offset to land at a specific item (for the paging effect)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func targetContentOffset(
    +    forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint
    +) -> CGPoint
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + proposedContentOffset + + +
    +

    proposed content offset of flow layout to land at

    +
    +
    + + velocity + + +
    +

    scrolling velocity of collection view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselItem.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselItem.html new file mode 100644 index 00000000..6f35910b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselItem.html @@ -0,0 +1,557 @@ + + + + CarouselItem Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselItem

+
+
+ +
public class CarouselItem : Identifiable, Equatable
+ +
+
+

This is the carousel item view model which represents a specific lens icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + id + +
    +
    +
    +
    +
    +
    +

    id for carousel item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let id: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensId + +
    +
    +
    +
    +
    +
    +

    lens id

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let lensId: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + groupId + +
    +
    +
    +
    +
    +
    +

    group id lens belongs to

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let groupId: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imageUrl + +
    +
    +
    +
    +
    +
    +

    image url for lens icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let imageUrl: URL?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    downloaded image for lens icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var image: UIImage?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init for a carousel item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(lensId: String, groupId: String, imageUrl: URL? = nil, image: UIImage? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + lensId + + +
    +

    lens id

    +
    +
    + + groupId + + +
    +

    group id that lens belongs to

    +
    +
    + + imageUrl + + +
    +

    optional image url of lens icon

    +
    +
    + + image + + +
    +

    optional loaded UIImage of icon

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func == (lhs: CarouselItem, rhs: CarouselItem) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselView.html new file mode 100644 index 00000000..988eb987 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/CarouselView.html @@ -0,0 +1,867 @@ + + + + CarouselView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselView

+
+
+ +
public class CarouselView : UIView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
+
extension CarouselView: CarouselCollectionViewLayoutDelegate
+
extension CarouselView: CarouselCollectionViewLayoutDataSource
+ +
+
+

A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    The delegate for the carousel view which will be notified of the carousel view actions.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CarouselViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dataSource + +
    +
    +
    +
    +
    +
    +

    The object that manages data and provides items for the carousel view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var dataSource: CarouselViewDataSource? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reloadData() + +
    +
    +
    +
    +
    +
    +

    Reloads all of the data in the carousel view to display the latest carousel items.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reloadData()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + selectedItem + +
    +
    +
    +
    +
    +
    +

    Current selected item or nil if none are selected (ie. when carousel is empty).

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public private(set) var selectedItem: CarouselItem { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Items +

+
+
+
    +
  • +
    + + + + selectItem(_:) + +
    +
    +
    +
    +
    +
    +

    Select carousel item +Returns true if item exists in carousel and is selected or false if failed to select item

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public func selectItem(_ selected: CarouselItem) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + selected + + +
    +

    carousel item to select

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + hideCarousel() + +
    +
    +
    +
    +
    +
    +

    Hide lens carousel. +Sets Items to selected item and saves list to show later.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func hideCarousel()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showCarousel() + +
    +
    +
    +
    +
    +
    +

    Show lens carousel. +Sets Items to previous stored item list and reloads collectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func showCarousel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
    +    -> UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(
    +    _ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(
    +    _ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath
    +)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Scroll View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func scrollViewDidScroll(_ scrollView: UIScrollView)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Layout +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ControlSlider.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ControlSlider.html new file mode 100644 index 00000000..56d8d98b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ControlSlider.html @@ -0,0 +1,482 @@ + + + + ControlSlider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ControlSlider

+
+
+ +
public class ControlSlider : UISlider
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling updates to the slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: ControlSliderDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + setValue(_:animated:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func setValue(_ value: Float, animated: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + setThumbColor(_:) + +
    +
    +
    +
    +
    +
    +

    Sets the color of the slider’s thumb.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @available(iOS 13.0, *)
    +public func setThumbColor(_ color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set for the the slider’s thumb.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/DefaultCarouselImageLoader.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/DefaultCarouselImageLoader.html new file mode 100644 index 00000000..d9d5e180 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/DefaultCarouselImageLoader.html @@ -0,0 +1,523 @@ + + + + DefaultCarouselImageLoader Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

DefaultCarouselImageLoader

+
+
+ +
public class DefaultCarouselImageLoader : CarouselImageLoader
+ +
+
+

Default image loader class which uses a URLSession to load images

+ +
+
+ +
+
+
+
    +
  • +
    + + + + urlSession + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let urlSession: URLSession
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(urlSession:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(urlSession: URLSession = .shared)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Load image from url (callback queue will be on main)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func loadImage(url: URL, completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Load image from url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func loadImage(url: URL, queue: DispatchQueue, completion: ((UIImage?, Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + queue + + +
    +

    queue to call completion on

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cancelImageLoad(from url: URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/EmptyItem.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/EmptyItem.html new file mode 100644 index 00000000..f1960dc3 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/EmptyItem.html @@ -0,0 +1,341 @@ + + + + EmptyItem Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

EmptyItem

+
+
+ +
public class EmptyItem : CarouselItem
+ +
+
+

Concrete class for an empty item (clear camera button)

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashControlView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashControlView.html new file mode 100644 index 00000000..872fcd41 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashControlView.html @@ -0,0 +1,649 @@ + + + + FlashControlView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlView

+
+
+ +
public class FlashControlView : UIView
+
extension FlashControlView: FlashModeSelectionViewDelegate
+
extension FlashControlView: ControlSliderDelegate
+
extension FlashControlView: RingLightColorSelectionViewDelegate
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling changes to the view’s controls.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: FlashControlViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The intensity of the ring light according to the control’s slider’s value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ringLightIntensityValue: Float { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + primaryLabel + +
    +
    +
    +
    +
    +
    +

    Primary label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let primaryLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View that enables the user to swtich between flash modes.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var flashModeSelectionView: FlashModeSelectionView { get set }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    View with ring light color options to select between.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var ringLightColorSelectionView: RingLightColorSelectionView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash Mode Selection View Delegate +

+
+
+ +
+
+
+ + +
+ +

Control Slider Delegate +

+
+
+ +
+
+
+ + +
+ +

Ring Light Color Selection View Delegate +

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashModeSelectionView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashModeSelectionView.html new file mode 100644 index 00000000..1695e0ba --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/FlashModeSelectionView.html @@ -0,0 +1,408 @@ + + + + FlashModeSelectionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashModeSelectionView

+
+
+ +
public class FlashModeSelectionView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for handling update’s to the selected flash mode in the view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: FlashModeSelectionViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashMode + +
    +
    +
    +
    +
    +
    +

    The current FlashMode that is selected in the view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var flashMode: CameraController.FlashMode { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ImagePreviewViewController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ImagePreviewViewController.html new file mode 100644 index 00000000..a8bfabf3 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/ImagePreviewViewController.html @@ -0,0 +1,530 @@ + + + + ImagePreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ImagePreviewViewController

+
+
+ +
public class ImagePreviewViewController : PreviewViewController
+ +
+
+

Preview view controller for showing captured photos and images

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    UIImage to display

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let image: UIImage
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(image:) + +
    +
    +
    +
    +
    +
    +

    Designated init to pass in required deps

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(image: UIImage)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + image + + +
    +

    UIImage to display

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Action Overrides +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/KeyboardAccessoryViewProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/KeyboardAccessoryViewProvider.html new file mode 100644 index 00000000..9d90609b --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/KeyboardAccessoryViewProvider.html @@ -0,0 +1,423 @@ + + + + KeyboardAccessoryViewProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

KeyboardAccessoryViewProvider

+
+
+ +
@objc
+public class KeyboardAccessoryViewProvider : NSObject, TextInputKeyboardAccessoryProvider
+ +
+
+

Reference implementation of a text input view for lenses that take text input.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + textView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let textView: UITextView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + accessoryView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let accessoryView: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + placeholderText + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var placeholderText: String? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maximumHeight + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let maximumHeight: CGFloat
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MediaPickerView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MediaPickerView.html new file mode 100644 index 00000000..c7525e67 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MediaPickerView.html @@ -0,0 +1,545 @@ + + + + MediaPickerView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerView

+
+
+ +
public class MediaPickerView : UIView
+
extension MediaPickerView: LensMediaPickerProviderUIDelegate
+ +
+
+

Selection view for Media Picker

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate to be notified of MediaPickerView events

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: MediaPickerViewDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + provider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var provider: LensMediaPickerProvider? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Designated init to provide in required deps

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + provider + + +
    +

    LensMediaPickerProvider instance to provide media to the picker view

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func mediaPickerProviderRequestedUIPresentation(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func mediaPickerProviderRequestedUIDismissal(_ provider: LensMediaPickerProvider)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MessageNotificationView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MessageNotificationView.html new file mode 100644 index 00000000..30b09ab9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/MessageNotificationView.html @@ -0,0 +1,368 @@ + + + + MessageNotificationView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MessageNotificationView

+
+
+ +
public class MessageNotificationView : UIView
+ +
+
+

Popup message notification view for different lens events

+ +
+
+ +
+
+
+
    +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Default label in the message notification view

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let label: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/PreviewViewController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/PreviewViewController.html new file mode 100644 index 00000000..ccedc546 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/PreviewViewController.html @@ -0,0 +1,514 @@ + + + + PreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewViewController

+
+
+ +
public class PreviewViewController : UIViewController
+ +
+
+

Base preview view controller that describes properties and views of all preview controllers

+ +
+
+ +
+
+
+
+ + +
+ +

Preview Properties +

+
+
+
    +
  • +
    + + + + snapchatDelegate + +
    +
    +
    +
    +
    +
    +

    Snapchat delegate for open requests

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var snapchatDelegate: SnapchatDelegate? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + onDismiss + +
    +
    +
    +
    +
    +
    +

    Callback when user presses close button and dismisses preview view controller

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var onDismiss: (() -> Void)?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Setup +

+
+
+
    +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Overridable Actions +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +open func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/Recorder.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/Recorder.html new file mode 100644 index 00000000..ea251b25 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/Recorder.html @@ -0,0 +1,470 @@ + + + + Recorder Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Recorder

+
+
+ +
public class Recorder
+ +
+
+

Sample video recorder implementation.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + output + +
    +
    +
    +
    +
    +
    +

    The AVWriterOutput for CameraKt.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let output: AVWriterOutput
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Designated init to pass in required deps

    +
    +

    Throws

    + Throws error if cannot create asset writer with output file URL and file type + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(url: URL, orientation: AVCaptureVideoOrientation, size: CGSize) throws
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + url + + +
    +

    output URL of video file

    +
    +
    + + orientation + + +
    +

    current orientation of device

    +
    +
    + + size + + +
    +

    height of video output

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + startRecording() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func startRecording()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func finishRecording(completion: ((URL?, Error?) -> Void)?)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionView.html new file mode 100644 index 00000000..41d12451 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionView.html @@ -0,0 +1,644 @@ + + + + RingLightColorSelectionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionView

+
+
+ +
public class RingLightColorSelectionView : UIView
+
extension RingLightColorSelectionView: UICollectionViewDelegate
+
extension RingLightColorSelectionView: UICollectionViewDataSource
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+ +
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + collectionView + +
    +
    +
    +
    +
    +
    +

    Collection view which contains the different color options for the ring light.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var collectionView: UICollectionView { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    To be called the first time the ring light color selection view appears.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func performInitialSelection(indexPath: IndexPath = IndexPath(row: 0, section: 0))
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + indexPath + + +
    +

    The index path of the color cell to initially select.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Delegate +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Collection View Data Source +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
    +    -> UICollectionViewCell
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionViewCell.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionViewCell.html new file mode 100644 index 00000000..4ee514de --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightColorSelectionViewCell.html @@ -0,0 +1,508 @@ + + + + RingLightColorSelectionViewCell Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionViewCell

+
+
+ +
public class RingLightColorSelectionViewCell : UICollectionViewCell
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + reuseIdentifer + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let reuseIdentifer: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Public +

+
+
+
    +
  • +
    + + + + setColor(_:) + +
    +
    +
    +
    +
    +
    +

    Used to set the color option that the cell represents.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setColor(_ color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set for the cell.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + highlight() + +
    +
    +
    +
    +
    +
    +

    Used to highlight the color option that this cell represents when selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func highlight()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + unhighlight() + +
    +
    +
    +
    +
    +
    +

    Remove the highlight from this cell.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func unhighlight()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + layoutSubviews() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func layoutSubviews()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + intrinsicContentSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var intrinsicContentSize: CGSize { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightGradientView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightGradientView.html new file mode 100644 index 00000000..17af74d1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightGradientView.html @@ -0,0 +1,494 @@ + + + + RingLightGradientView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightGradientView

+
+
+ +
public class RingLightGradientView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Ring Light Modification +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Updates the intensity of the ring light effect to the specified intensity.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func updateIntensity(to intensity: CGFloat, animated: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + intensity + + +
    +

    The intensity to set the ring light effect to. Value should be between 0.0 and 1.0.

    +
    +
    + + animated + + +
    +

    Whether or not the change in intensity is animated.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + changeColor(to:) + +
    +
    +
    +
    +
    +
    +

    Changes the color of the ring light gradient to the specified color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func changeColor(to color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set the ring light gradient to.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightView.html new file mode 100644 index 00000000..3c747bd4 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/RingLightView.html @@ -0,0 +1,541 @@ + + + + RingLightView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightView

+
+
+ +
public class RingLightView : UIView
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
+ + +
+ +

Views +

+
+
+
    +
  • +
    + + + + topBorder + +
    +
    +
    +
    +
    +
    +

    The top border of the ring light effect. This top border is unaffected by changes to the ring light gradient intensity.

    +
    +

    Note

    + This top border is unaffected by changes to the ring light gradient intensity. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let topBorder: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + bottomBorder + +
    +
    +
    +
    +
    +
    +

    The bottom border of the ring light effect.

    +
    +

    Note

    + This bottom border is unaffected by changes to the ring light gradient intensity. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let bottomBorder: UIView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightGradient + +
    +
    +
    +
    +
    +
    +

    The gradient portion of the ring light effect. +Update the intensity of the ring light effect by calling the updateIntensity method of RingLightGradientView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let ringLightGradient: RingLightGradientView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Modification +

+
+
+
    +
  • +
    + + + + changeColor(to:) + +
    +
    +
    +
    +
    +
    +

    Changes the color of the ring light effect to the specified color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func changeColor(to color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    The color to set the ring light effect to.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init(frame: CGRect)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public required init?(coder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/SnapAttributionView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/SnapAttributionView.html new file mode 100644 index 00000000..93f5111a --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/SnapAttributionView.html @@ -0,0 +1,368 @@ + + + + SnapAttributionView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapAttributionView

+
+
+ +
public class SnapAttributionView : UIView
+ +
+
+

Snap attribution on Camera that contains “Powered by” and Snap ghost icon

+ +
+
+ +
+
+
+
    +
  • +
    + + + + poweredByLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let poweredByLabel: UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapIconImage + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let snapIconImage: UIImageView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/TapAnimationView.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/TapAnimationView.html new file mode 100644 index 00000000..97c810db --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/TapAnimationView.html @@ -0,0 +1,368 @@ + + + + TapAnimationView Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

TapAnimationView

+
+
+ +
public class TapAnimationView : UIView
+ +
+
+

View that appears when the user taps on the camera view

+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(center:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(center: CGPoint)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + show() + +
    +
    +
    +
    +
    +
    +

    Performs the tap animation and removes the view upon completion of the animation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func show()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/UserDataProvider.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/UserDataProvider.html new file mode 100644 index 00000000..ab58c3e0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/UserDataProvider.html @@ -0,0 +1,368 @@ + + + + UserDataProvider Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UserDataProvider

+
+
+ +
public class UserDataProvider : NSObject, SCSDKCameraKit.UserDataProvider
+ +
+
+

Default user data provider to show how to provide user data to CameraKit

+ +
+
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    Delegate for CameraKit to receive updates on user data

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: UserDataProviderDelegate?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + userData + +
    +
    +
    +
    +
    +
    +

    Mocked user data

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public lazy var userData: UserData? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/VideoPreviewViewController.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/VideoPreviewViewController.html new file mode 100644 index 00000000..6b0aa5dd --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Classes/VideoPreviewViewController.html @@ -0,0 +1,530 @@ + + + + VideoPreviewViewController Class Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

VideoPreviewViewController

+
+
+ +
public class VideoPreviewViewController : PreviewViewController
+ +
+
+

Preview view controller for showing recorded video previews

+ +
+
+ +
+
+
+
+ + +
+ +

Properties +

+
+
+
    +
  • +
    + + + + videoUrl + +
    +
    +
    +
    +
    +
    +

    URL which contains video file

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let videoUrl: URL
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Init +

+
+
+
    +
  • +
    + + + + init(videoUrl:) + +
    +
    +
    +
    +
    +
    +

    Init with url to video file

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(videoUrl: URL)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + videoUrl + + +
    +

    url to video file

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Action Overrides +

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func openSnapchatPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func sharePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func savePreviewPressed(_ sender: UIButton)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums.html new file mode 100644 index 00000000..9d36378c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums.html @@ -0,0 +1,622 @@ + + + + Enumerations Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SnapchatScreen + +
    +
    +
    +
    +
    +
    +

    Describes the Snapchat screen to open to

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum SnapchatScreen
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Bottom Bar +

+
+
+ +
+
+
+ + +
+ +

Camera View +

+
+
+
    +
  • +
    + + + + CameraElements + +
    +
    +
    +
    +
    +
    +

    CameraViewController testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum CameraElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Carousel +

+
+
+ +
+
+
+ + +
+ +

Preview +

+
+
+
    +
  • +
    + + + + PreviewElements + +
    +
    +
    +
    +
    +
    +

    PreviewViewController testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum PreviewElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Message Notification +

+
+
+ +
+
+
+ + +
+ +

Flash Control +

+
+
+ +
+
+
+ + +
+ +

Other Elements +

+
+
+
    +
  • +
    + + + + OtherElements + +
    +
    +
    +
    +
    +
    +

    Other misc testable elements

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum OtherElements : String, TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraBottomBarElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraBottomBarElements.html new file mode 100644 index 00000000..b93ff444 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraBottomBarElements.html @@ -0,0 +1,341 @@ + + + + CameraBottomBarElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraBottomBarElements

+
+
+ +
public enum CameraBottomBarElements : String, TestableElement
+ +
+
+

CameraBottomBar view testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case closeButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements.html new file mode 100644 index 00000000..79b78e75 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements.html @@ -0,0 +1,814 @@ + + + + CameraElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraElements

+
+
+ +
public enum CameraElements : String, TestableElement
+ +
+
+

CameraViewController testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lensLabel + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lensLabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flipCameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flipCameraButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + flashControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toneMapControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toneMapControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitToggleButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitToggleButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitConfigurationButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + portraitControl + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitControl
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case portraitControlDismissalHint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ringLightView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photoLibraryButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photoLibraryButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case cameraButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera View +

+
+
+
    +
  • +
    + + + + CameraFlip + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    enum CameraFlip
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements/CameraFlip.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements/CameraFlip.html new file mode 100644 index 00000000..31d257a1 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CameraElements/CameraFlip.html @@ -0,0 +1,368 @@ + + + + CameraFlip Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraFlip

+
+
+ +
enum CameraFlip
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • +
    + + + + front + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let front: String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + back + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let back: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CarouselElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CarouselElements.html new file mode 100644 index 00000000..f08eb907 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/CarouselElements.html @@ -0,0 +1,395 @@ + + + + CarouselElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselElements

+
+
+ +
public enum CarouselElements : String, TestableElement
+ +
+
+

CarouselView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + collectionView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case collectionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lensCell + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lensCell
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case facadeSelectionRingView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/FlashControlElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/FlashControlElements.html new file mode 100644 index 00000000..3f974df9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/FlashControlElements.html @@ -0,0 +1,395 @@ + + + + FlashControlElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlElements

+
+
+ +
public enum FlashControlElements : String, TestableElement
+ +
+
+

FlashControlView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + flashModeSelector + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case flashModeSelector
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightColorSelector
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case ringLightIntensitySlider
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/MessageNotificationElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/MessageNotificationElements.html new file mode 100644 index 00000000..11bbeb33 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/MessageNotificationElements.html @@ -0,0 +1,341 @@ + + + + MessageNotificationElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MessageNotificationElements

+
+
+ +
public enum MessageNotificationElements : String, TestableElement
+ +
+
+

MessageNotificationView testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + label + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case label
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/OtherElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/OtherElements.html new file mode 100644 index 00000000..5fc55f89 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/OtherElements.html @@ -0,0 +1,476 @@ + + + + OtherElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

OtherElements

+
+
+ +
public enum OtherElements : String, TestableElement
+ +
+
+

Other misc testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + noOpButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case noOpButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arkitButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case arkitButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + agreementsButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case agreementsButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tapToFocusView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tapToFocusView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + pairingButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case pairingButton
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case connectedLensStartButton
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/PreviewElements.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/PreviewElements.html new file mode 100644 index 00000000..50ae3802 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/PreviewElements.html @@ -0,0 +1,449 @@ + + + + PreviewElements Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

PreviewElements

+
+
+ +
public enum PreviewElements : String, TestableElement
+ +
+
+

PreviewViewController testable elements

+ +
+
+ +
+
+
+
    +
  • +
    + + + + closeButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case closeButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + snapchatButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case snapchatButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + shareButton + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case shareButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imageView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case imageView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + playerControllerView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case playerControllerView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/SnapchatScreen.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/SnapchatScreen.html new file mode 100644 index 00000000..cc2dc8a7 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Enums/SnapchatScreen.html @@ -0,0 +1,422 @@ + + + + SnapchatScreen Enumeration Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapchatScreen

+
+
+ +
public enum SnapchatScreen
+ +
+
+

Describes the Snapchat screen to open to

+ +
+
+ +
+
+
+
    +
  • +
    + + + + profile + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case profile
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lens(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lens(Lens)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photo(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photo(UIImage)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + video(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video(URL)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions.html new file mode 100644 index 00000000..31060de8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions.html @@ -0,0 +1,474 @@ + + + + Extensions Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + UIButton + +
    +
    +
    +
    +
    +
    +

    Helper to apply shadows to buttons.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIButton
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UILabel + +
    +
    +
    +
    +
    +
    +

    Helper to produce a dismissal hint for various camera action controls.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UILabel
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIImage + +
    +
    +
    +
    +
    +
    +

    Helper to produce highlighted versions of some camera action button images.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UIImage
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIColor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIFont + +
    +
    +
    +
    +
    +
    +

    Provides access to Snapchat typography in all supported weights.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIFont
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + NSString + +
    +
    +
    +
    +
    +
    +

    Objective-C interface for CameraKitLocalizedString

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension NSString
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/NSString.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/NSString.html new file mode 100644 index 00000000..ffcf5196 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/NSString.html @@ -0,0 +1,348 @@ + + + + NSString Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

NSString

+
+
+ +
public extension NSString
+ +
+
+

Objective-C interface for CameraKitLocalizedString

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +class func cameraKit_localized(
    +    key: String,
    +    bundle: Bundle?,
    +    preferredLanguages: [String] = NSLocale.preferredLanguages,
    +    comment: String?,
    +    table: String? = nil
    +) -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIButton.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIButton.html new file mode 100644 index 00000000..0ade5edc --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIButton.html @@ -0,0 +1,341 @@ + + + + UIButton Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIButton

+
+
+ +
public extension UIButton
+ +
+
+

Helper to apply shadows to buttons.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Applies a shadow designed for camera action buttons.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func applyCameraActionButtonShadow()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIColor.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIColor.html new file mode 100644 index 00000000..91072e7e --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIColor.html @@ -0,0 +1,340 @@ + + + + UIColor Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIColor

+
+
+ +
public extension UIColor
+ +
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: UInt, alpha: CGFloat = 1.0)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIFont.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIFont.html new file mode 100644 index 00000000..5618618e --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIFont.html @@ -0,0 +1,476 @@ + + + + UIFont Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIFont

+
+
+ +
public extension UIFont
+ +
+
+

Provides access to Snapchat typography in all supported weights.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_ultraLightFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_regularFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_regularFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_mediumFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_mediumFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_demiBoldFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_boldFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_boldFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sc_heavyFont(size:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func sc_heavyFont(size: CGFloat) -> UIFont?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIImage.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIImage.html new file mode 100644 index 00000000..40796cd0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UIImage.html @@ -0,0 +1,376 @@ + + + + UIImage Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UIImage

+
+
+ +
extension UIImage
+ +
+
+

Helper to produce highlighted versions of some camera action button images.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Produces a version of the image that is subtracted from a circle with the given radius and color.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func circleHighlightedImage(radius: CGFloat, color: UIColor = .white) -> UIImage?
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + radius + + +
    +

    The radius of the circle to subtract the image from.

    +
    +
    + + color + + +
    +

    The color of the circle to subtract the image from.

    +
    +
    +
    +
    +

    Return Value

    +

    The image subtracted from the circle with the provided radius and color.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UILabel.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UILabel.html new file mode 100644 index 00000000..d0be277c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Extensions/UILabel.html @@ -0,0 +1,345 @@ + + + + UILabel Extension Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

UILabel

+
+
+ +
public extension UILabel
+ +
+
+

Helper to produce a dismissal hint for various camera action controls.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Produces a dismissal hint label for the control.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static func controlDismissalHint() -> UILabel
    + +
    +
    +
    +

    Return Value

    +

    The dismissal hint label.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Functions.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Functions.html new file mode 100644 index 00000000..81f4b0cd --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Functions.html @@ -0,0 +1,411 @@ + + + + Functions Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Functions

+

The following functions are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Looks up a localized string for CameraKit’s reference UI.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func CameraKitLocalizedString(
    +    key: String,
    +    bundle: Bundle? = nil,
    +    preferredLanguages: [String] = NSLocale.preferredLanguages,
    +    comment: String?,
    +    table: String? = nil
    +) -> String
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + key + + +
    +

    key to lookup.

    +
    +
    + + bundle + + +
    +

    explicit bundle to look up key for. If omitted, uses the CameraKit Reference UI bundle.

    +
    +
    + + preferredLanguages + + +
    +

    a list of language codes in order of preference.

    +
    +
    + + comment + + +
    +

    any comments on the string.

    +
    +
    + + table + + +
    +

    an explicit strings table to reference.

    +
    +
    +
    +
    +

    Return Value

    +

    a localized string, if one is available for the languages specified, otherwise the English string (and the key, if neither are found).

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols.html new file mode 100644 index 00000000..1e1a8890 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols.html @@ -0,0 +1,755 @@ + + + + Protocols Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraControllerUIDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraButtonDelegate + +
    +
    +
    +
    +
    +
    +

    Delegate to receive updates for camera button view

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraButtonDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol AdjustmentControlViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ControlSliderDelegate + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol ControlSliderDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to control app orientation

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol AppOrientationDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol FlashControlViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol FlashModeSelectionViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol RingLightColorSelectionViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Delegate for custom carousel collection view layout

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselCollectionViewLayoutDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Data source for custom carousel collection view layout

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselCollectionViewLayoutDataSource : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselImageLoader + +
    +
    +
    +
    +
    +
    +

    Protocol used to load an image from url

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselImageLoader
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CarouselViewDelegate + +
    +
    +
    +
    +
    +
    +

    A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A set of functions that an object adopts to manage data and provide items for a carousel view.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CarouselViewDataSource : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Describes an interface to be notified of MediaPickerView events

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol MediaPickerViewDelegate : NSObjectProtocol
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + SnapchatDelegate + +
    +
    +
    +
    +
    +
    +

    CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol SnapchatDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + TestableElement + +
    +
    +
    +
    +
    +
    +

    Describes an element that can be UI tested

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol TestableElement
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AdjustmentControlViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AdjustmentControlViewDelegate.html new file mode 100644 index 00000000..072cdcb6 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AdjustmentControlViewDelegate.html @@ -0,0 +1,372 @@ + + + + AdjustmentControlViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AdjustmentControlViewDelegate

+
+
+ +
public protocol AdjustmentControlViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the control’s intensity slider’s value has changed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func adjustmentControlView(_ control: AdjustmentControlView, sliderValueChanged value: Double)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + control + + +
    +

    The control view.

    +
    +
    + + value + + +
    +

    The updated value received from the control’s intensity slider.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AppOrientationDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AppOrientationDelegate.html new file mode 100644 index 00000000..14df5dca --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/AppOrientationDelegate.html @@ -0,0 +1,387 @@ + + + + AppOrientationDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

AppOrientationDelegate

+
+
+ +
public protocol AppOrientationDelegate : AnyObject
+ +
+
+

Describes an interface to control app orientation

+ +
+
+ +
+
+
+
    +
  • +
    + + + + lockOrientation(_:) + +
    +
    +
    +
    +
    +
    +

    Lock app orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func lockOrientation(_ orientation: UIInterfaceOrientationMask)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + orientation + + +
    +

    interface orientation mask to lock orientations to

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + unlockOrientation() + +
    +
    +
    +
    +
    +
    +

    Unlock orientation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func unlockOrientation()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraButtonDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraButtonDelegate.html new file mode 100644 index 00000000..6bc9dec9 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraButtonDelegate.html @@ -0,0 +1,499 @@ + + + + CameraButtonDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraButtonDelegate

+
+
+ +
public protocol CameraButtonDelegate : AnyObject
+ +
+
+

Delegate to receive updates for camera button view

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Called when user taps camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonTapped(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user starts holding down camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldBegan(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user released their hold before the minimum threshold has been reached

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldCancelled(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view +NOTE: this will be followed by a call to cameraButtonTapped(_:)

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when user stops holding down camera button

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraButtonHoldEnded(_ cameraButton: CameraButton)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cameraButton + + +
    +

    camera button view

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraControllerUIDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraControllerUIDelegate.html new file mode 100644 index 00000000..6ecec120 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CameraControllerUIDelegate.html @@ -0,0 +1,882 @@ + + + + CameraControllerUIDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CameraControllerUIDelegate

+
+
+ +
public protocol CameraControllerUIDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller has resolved a new list of available lenses

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(_ controller: CameraController, updatedLenses lenses: [Lens])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + lenses + + +
    +

    The newly available lenses.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller is currently in a loading state, and an activity indicator should be displayed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedActivityIndicatorShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera controller is no longer in a loading state, and an activity indicator should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedActivityIndicatorHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state is on in ring light mode and that the ring light effect should be shown.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedRingLightShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state is no longer in ring light mode and that the ring light effect should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedRingLightHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the flash state has changed such that the flash control should be hidden.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedFlashControlHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the snap attribution should be shown. For example, after the agreements have been accepted.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedSnapAttributionViewShow(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the snap attribution should be hidden. For example, when a video is being recorded.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedSnapAttributionViewHide(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the camera position should be flipped.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraControllerRequestedCameraFlip(_ controller: CameraController)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a lens has requested that a hint should be displayed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(
    +    _ controller: CameraController, requestedHintDisplay hint: String, for lens: Lens, autohide: Bool
    +)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + hint + + +
    +

    The hint text that should be displayed.

    +
    +
    + + lens + + +
    +

    The requesting lens.

    +
    +
    + + autohide + + +
    +

    Whether or not the hint should be automatically hidden, after a callee-determined amount of time.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that any hints requested by the specified lens should be hidden

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraController(_ controller: CameraController, requestedHintHideFor lens: Lens)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + controller + + +
    +

    The camera controller.

    +
    +
    + + lens + + +
    +

    The lens whose hints should be hidden.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDataSource.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDataSource.html new file mode 100644 index 00000000..7b432b95 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDataSource.html @@ -0,0 +1,373 @@ + + + + CarouselCollectionViewLayoutDataSource Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayoutDataSource

+
+
+ +
public protocol CarouselCollectionViewLayoutDataSource : AnyObject
+ +
+
+

Data source for custom carousel collection view layout

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Method to provide any sort of transform that should be applied to the carousel cell

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselLayout(_ layout: CarouselCollectionViewLayout, transformForItemAt indexPath: IndexPath)
    +    -> CGAffineTransform
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + layout + + +
    +

    carousel collection view layout instance

    +
    +
    + + indexPath + + +
    +

    index path of cell

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDelegate.html new file mode 100644 index 00000000..fcdddcce --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselCollectionViewLayoutDelegate.html @@ -0,0 +1,372 @@ + + + + CarouselCollectionViewLayoutDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselCollectionViewLayoutDelegate

+
+
+ +
public protocol CarouselCollectionViewLayoutDelegate : AnyObject
+ +
+
+

Delegate for custom carousel collection view layout

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    This method is called when user stops scrolling and layout will target the correct lens to land at

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselLayout(_ layout: CarouselCollectionViewLayout, willTargetIndex index: Int)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + layout + + +
    +

    carousel collection view layout instance

    +
    +
    + + index + + +
    +

    index of item that it will land at

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselImageLoader.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselImageLoader.html new file mode 100644 index 00000000..d755b52d --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselImageLoader.html @@ -0,0 +1,372 @@ + + + + CarouselImageLoader Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselImageLoader

+
+
+ +
public protocol CarouselImageLoader
+ +
+
+

Protocol used to load an image from url

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Load image from url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func loadImage(url: URL, completion: ((_ image: UIImage?, _ error: Error?) -> Void)?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + url + + +
    +

    image url

    +
    +
    + + completion + + +
    +

    callback with image on success or error on failure

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDataSource.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDataSource.html new file mode 100644 index 00000000..ced4a647 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDataSource.html @@ -0,0 +1,364 @@ + + + + CarouselViewDataSource Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselViewDataSource

+
+
+ +
public protocol CarouselViewDataSource : AnyObject
+ +
+
+

A set of functions that an object adopts to manage data and provide items for a carousel view.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Returns a list of items to show in the carousel view.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func itemsForCarouselView(_ view: CarouselView) -> [CarouselItem]
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + view + + +
    +

    The carousel view which will show the list of items returned.

    +
    +
    +
    +
    +

    Return Value

    +

    A list of items to show in the carousel view.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDelegate.html new file mode 100644 index 00000000..eda53223 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/CarouselViewDelegate.html @@ -0,0 +1,384 @@ + + + + CarouselViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

CarouselViewDelegate

+
+
+ +
public protocol CarouselViewDelegate : AnyObject
+ +
+
+

A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a given carousel’s specific index was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func carouselView(_ view: CarouselView, didSelect item: CarouselItem, at index: Int)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + view + + +
    +

    The carousel view which contains the item that was just selected.

    +
    +
    + + item + + +
    +

    The carousel item which was just selected.

    +
    +
    + + index + + +
    +

    The index at which the carousel item was selected.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/ControlSliderDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/ControlSliderDelegate.html new file mode 100644 index 00000000..102cc2f8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/ControlSliderDelegate.html @@ -0,0 +1,384 @@ + + + + ControlSliderDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

ControlSliderDelegate

+
+
+ +
public protocol ControlSliderDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the slider’s value has changed.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func controlSlider(_ slider: ControlSlider, updatedValue value: Float, done: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + slider + + +
    +

    The control slider.

    +
    +
    + + updatedValue + + +
    +

    The updated value received from the slider.

    +
    +
    + + done + + +
    +

    Whether or not the slider’s value is done changing.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashControlViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashControlViewDelegate.html new file mode 100644 index 00000000..f6c95483 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashControlViewDelegate.html @@ -0,0 +1,488 @@ + + + + FlashControlViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashControlViewDelegate

+
+
+ +
public protocol FlashControlViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a ring light color was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, selectedRingLightColor color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + selectedRingLightColor + + +
    +

    The ring light color that was just selected.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that the control’s ring light intensity slider has an updated value.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, updatedRingLightValue value: Float)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + updatedRingLightValue + + +
    +

    The updated intensity value received from the slider.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that there is an update to the selected flash mode.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashControlView(_ view: FlashControlView, updatedFlashMode flashMode: CameraController.FlashMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash control view.

    +
    +
    + + updatedFlashMode + + +
    +

    The updated flash mode selection.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashModeSelectionViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashModeSelectionViewDelegate.html new file mode 100644 index 00000000..645bc6ae --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/FlashModeSelectionViewDelegate.html @@ -0,0 +1,372 @@ + + + + FlashModeSelectionViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

FlashModeSelectionViewDelegate

+
+
+ +
public protocol FlashModeSelectionViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that there is an update to the selected flash mode.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func flashModeSelectionView(_ view: FlashModeSelectionView, updatedMode mode: CameraController.FlashMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The flash mode selection view.

    +
    +
    + + updatedFlashMode + + +
    +

    The updated flash mode selection.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/MediaPickerViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/MediaPickerViewDelegate.html new file mode 100644 index 00000000..30366489 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/MediaPickerViewDelegate.html @@ -0,0 +1,372 @@ + + + + MediaPickerViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

MediaPickerViewDelegate

+
+
+ +
public protocol MediaPickerViewDelegate : NSObjectProtocol
+ +
+
+

Describes an interface to be notified of MediaPickerView events

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    User selected asset in MediaPickerView

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func mediaPickerView(_ mediaPickerView: MediaPickerView, selectedAsset: LensMediaPickerProviderAsset)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + mediaPickerView + + +
    +

    MediaPickerView instance

    +
    +
    + + selectedAsset + + +
    +

    user selected asset

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/RingLightColorSelectionViewDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/RingLightColorSelectionViewDelegate.html new file mode 100644 index 00000000..875eaa79 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/RingLightColorSelectionViewDelegate.html @@ -0,0 +1,372 @@ + + + + RingLightColorSelectionViewDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

RingLightColorSelectionViewDelegate

+
+
+ +
public protocol RingLightColorSelectionViewDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Notifies the delegate that a color was selected.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func ringLightColorSelectionView(_ view: RingLightColorSelectionView, selectedColor color: UIColor)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + view + + +
    +

    The ring light color selection view.

    +
    +
    + + selectedColor + + +
    +

    The color that was just selected.

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/SnapchatDelegate.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/SnapchatDelegate.html new file mode 100644 index 00000000..61d2ead2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/SnapchatDelegate.html @@ -0,0 +1,372 @@ + + + + SnapchatDelegate Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

SnapchatDelegate

+
+
+ +
public protocol SnapchatDelegate : AnyObject
+ +
+
+

CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

+ +
+
+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    CameraKit view controller requests opening Snapchat with specific info

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraKitViewController(_ viewController: UIViewController, openSnapchat screen: SnapchatScreen)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + viewController + + +
    +

    CameraKit view controller instance

    +
    +
    + + screen + + +
    +

    Snapchat screen to open to

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/TestableElement.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/TestableElement.html new file mode 100644 index 00000000..96f91167 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/Protocols/TestableElement.html @@ -0,0 +1,341 @@ + + + + TestableElement Protocol Reference + + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+

TestableElement

+
+
+ +
public protocol TestableElement
+ +
+
+

Describes an element that can be UI tested

+ +
+
+ +
+
+
+
    +
  • +
    + + + + id + +
    +
    +
    +
    +
    +
    +

    identifier for the testable element

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var id: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/highlight.css b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 00000000..c170357c --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,202 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight .c { + color: #999988; + font-style: italic; } + +.highlight .err { + color: #a61717; + background-color: #e3d2d2; } + +.highlight .k { + color: #000000; + font-weight: bold; } + +.highlight .o { + color: #000000; + font-weight: bold; } + +.highlight .cm { + color: #999988; + font-style: italic; } + +.highlight .cp { + color: #999999; + font-weight: bold; } + +.highlight .c1 { + color: #999988; + font-style: italic; } + +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + +.highlight .gd { + color: #000000; + background-color: #ffdddd; } + +.highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + +.highlight .ge { + color: #000000; + font-style: italic; } + +.highlight .gr { + color: #aa0000; } + +.highlight .gh { + color: #999999; } + +.highlight .gi { + color: #000000; + background-color: #ddffdd; } + +.highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + +.highlight .go { + color: #888888; } + +.highlight .gp { + color: #555555; } + +.highlight .gs { + font-weight: bold; } + +.highlight .gu { + color: #aaaaaa; } + +.highlight .gt { + color: #aa0000; } + +.highlight .kc { + color: #000000; + font-weight: bold; } + +.highlight .kd { + color: #000000; + font-weight: bold; } + +.highlight .kp { + color: #000000; + font-weight: bold; } + +.highlight .kr { + color: #000000; + font-weight: bold; } + +.highlight .kt { + color: #445588; } + +.highlight .m { + color: #009999; } + +.highlight .s { + color: #d14; } + +.highlight .na { + color: #008080; } + +.highlight .nb { + color: #0086B3; } + +.highlight .nc { + color: #445588; + font-weight: bold; } + +.highlight .no { + color: #008080; } + +.highlight .ni { + color: #800080; } + +.highlight .ne { + color: #990000; + font-weight: bold; } + +.highlight .nf { + color: #990000; } + +.highlight .nn { + color: #555555; } + +.highlight .nt { + color: #000080; } + +.highlight .nv { + color: #008080; } + +.highlight .ow { + color: #000000; + font-weight: bold; } + +.highlight .w { + color: #bbbbbb; } + +.highlight .mf { + color: #009999; } + +.highlight .mh { + color: #009999; } + +.highlight .mi { + color: #009999; } + +.highlight .mo { + color: #009999; } + +.highlight .sb { + color: #d14; } + +.highlight .sc { + color: #d14; } + +.highlight .sd { + color: #d14; } + +.highlight .s2 { + color: #d14; } + +.highlight .se { + color: #d14; } + +.highlight .sh { + color: #d14; } + +.highlight .si { + color: #d14; } + +.highlight .sx { + color: #d14; } + +.highlight .sr { + color: #009926; } + +.highlight .s1 { + color: #d14; } + +.highlight .ss { + color: #990073; } + +.highlight .bp { + color: #999999; } + +.highlight .vc { + color: #008080; } + +.highlight .vg { + color: #008080; } + +.highlight .vi { + color: #008080; } + +.highlight .il { + color: #009999; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/jazzy.css b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 00000000..c7bb9fe2 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,404 @@ +/*! Jazzy - https://github.com/realm/jazzy + * Copyright Realm Inc. + * SPDX-License-Identifier: MIT + */ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + a.discouraged { + text-decoration: line-through; } + a.discouraged:hover, a.discouraged:focus { + text-decoration: underline line-through; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +hr { + height: 1px; + border: none; + background-color: #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { + background: #f7f7f7; + padding: .2em; } + .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 2px; + vertical-align: -3px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + .section-name p { + margin-bottom: inherit; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.section-name-container { + position: relative; } + .section-name-container .section-name-link { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin-bottom: 0; } + .section-name-container .section-name { + position: relative; + pointer-events: none; + z-index: 1; } + .section-name-container .section-name a { + pointer-events: auto; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 20px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning, .aside-deprecated, .aside-unavailable { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } + +html.dash .height-container { + display: block; } + +form[role=search] input { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 0 10px; + margin: 0; + border: none; + border-radius: 1em; } + .loading form[role=search] input { + background: white url(../img/spinner.gif) center right 4px no-repeat; } + +form[role=search] .tt-menu { + margin: 0; + min-width: 300px; + background: #fbfbfb; + color: #333; + border: 1px solid #ddd; } + +form[role=search] .tt-highlight { + font-weight: bold; } + +form[role=search] .tt-suggestion { + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 0 8px; } + form[role=search] .tt-suggestion span { + display: table-cell; + white-space: nowrap; } + form[role=search] .tt-suggestion .doc-parent-name { + width: 100%; + text-align: right; + font-weight: normal; + font-size: 0.9em; + padding-left: 16px; } + +form[role=search] .tt-suggestion:hover, +form[role=search] .tt-suggestion.tt-cursor { + cursor: pointer; + background-color: #4183c4; + color: #fff; } + +form[role=search] .tt-suggestion:hover .doc-parent-name, +form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { + color: #fff; } diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/carat.png b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 0000000000000000000000000000000000000000..29d2f7fd4955fca6bc6fb740e0373a2c358c398e GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/dash.png b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 0000000000000000000000000000000000000000..6f694c7a012b417908da3687a0a39aa182e91c74 GIT binary patch literal 1338 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 literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/index.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/index.html new file mode 100644 index 00000000..f6dd40fe --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,334 @@ + + + + SCSDKCameraKitReferenceUI Reference + + + + + + + + + + + + + + + +
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit Reference UI iOS

+

Overview

+ +

SCSDKCameraKitReferenceUI is an optional SDK that provides reference UI elements similar to Snapchat’s UI as well as a fully-functional Camera view controller that has CameraKit set up and working with sample lenses. The elements provided in this SDK are designed to be used in a modular fashion, so it is easy to use certain UI elements out of the box while changing the design or functionality of other elements.

+

Usage Philosophy

+ +

In general, the UI elements in SCSDKCameraKitReferenceUI are intended to be used out-of-the-box and they provide customizations to tailor the behavior slightly (eg. changing the recording duration of the camera button). The UI elements are also designed to be extended, changed, and used in a modular fashion – for example, using our carousel, camera button, and recorder together to record a video with a lens, but showing it in your own video preview view can easily be done using these elements out-of-the-box.

+

Getting Started

+

Requirements

+ +

SCSDKCameraKitReferenceUI requires Swift, a minimum of iOS 11, and a 64 bit processor.

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

Add this line to your Podfile: +pod 'SCSDKCameraKitReferenceUI', :path => 'CameraKit/CameraKitReferenceUI' +where :path points to the directory that contains the camera kit sdk, podspec, etc.

+ +

Run pod install and open up your xcworkspace.

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKitReferenceUI file into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKitReferenceUI, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Showing the Camera

+ +

At its most simplest form, SCSDKCameraKitReferenceUI contains a fully-setup camera that contains all UI elements (carousel, camera button, recorder, etc.) and hooks up to the core SCSDKCameraKit sdk to fetch and apply lenses to the camera. This can be easily set up and presented by doing the following:

+
let cameraViewController = CameraViewController(repoGroups: ["REPLACE-THIS-WITH-YOUR-OWN-APP-SPECIFIC-VALUE"])
+present(cameraViewController, animated: true, completion: nil)
+
+ +

where repoGroups is the list of group IDs added in Lens Scheduler to show in the carousel.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 00000000..19844166 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.search.js new file mode 100644 index 00000000..359cdbb8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100644 index 00000000..c4c6022f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js new file mode 100644 index 00000000..3a2d2ab0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/search.json b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/search.json new file mode 100644 index 00000000..6645bc58 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/Documents/search.json @@ -0,0 +1 @@ +{"Protocols/TestableElement.html#/s:25SCSDKCameraKitReferenceUI15TestableElementP2idSSvp":{"name":"id","abstract":"

identifier for the testable element

","parent_name":"TestableElement"},"Protocols/SnapchatDelegate.html#/s:25SCSDKCameraKitReferenceUI16SnapchatDelegateP06cameraB14ViewController_04openE0ySo06UIViewI0C_AA0E6ScreenOtF":{"name":"cameraKitViewController(_:openSnapchat:)","abstract":"

CameraKit view controller requests opening Snapchat with specific info

","parent_name":"SnapchatDelegate"},"Protocols/MediaPickerViewDelegate.html#/s:25SCSDKCameraKitReferenceUI23MediaPickerViewDelegateP05mediafG0_13selectedAssetyAA0efG0C_So08SCCamerab4LensefK0_ptF":{"name":"mediaPickerView(_:selectedAsset:)","abstract":"

User selected asset in MediaPickerView

","parent_name":"MediaPickerViewDelegate"},"Protocols/CarouselViewDataSource.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","abstract":"

Returns a list of items to show in the carousel view.

","parent_name":"CarouselViewDataSource"},"Protocols/CarouselViewDelegate.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","abstract":"

Notifies the delegate that a given carousel’s specific index was selected.

","parent_name":"CarouselViewDelegate"},"Protocols/CarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url10completiony10Foundation3URLV_ySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:completion:)","abstract":"

Load image from url

","parent_name":"CarouselImageLoader"},"Protocols/CarouselCollectionViewLayoutDataSource.html#/s:25SCSDKCameraKitReferenceUI38CarouselCollectionViewLayoutDataSourceP08carouselH0_18transformForItemAtSo17CGAffineTransformVAA0efgH0C_10Foundation9IndexPathVtF":{"name":"carouselLayout(_:transformForItemAt:)","abstract":"

Method to provide any sort of transform that should be applied to the carousel cell

","parent_name":"CarouselCollectionViewLayoutDataSource"},"Protocols/CarouselCollectionViewLayoutDelegate.html#/s:25SCSDKCameraKitReferenceUI36CarouselCollectionViewLayoutDelegateP08carouselH0_15willTargetIndexyAA0efgH0C_SitF":{"name":"carouselLayout(_:willTargetIndex:)","abstract":"

This method is called when user stops scrolling and layout will target the correct lens to land at

","parent_name":"CarouselCollectionViewLayoutDelegate"},"Protocols/RingLightColorSelectionViewDelegate.html#/s:25SCSDKCameraKitReferenceUI35RingLightColorSelectionViewDelegateP04ringfghI0_08selectedG0yAA0efghI0C_So7UIColorCtF":{"name":"ringLightColorSelectionView(_:selectedColor:)","abstract":"

Notifies the delegate that a color was selected.

","parent_name":"RingLightColorSelectionViewDelegate"},"Protocols/FlashModeSelectionViewDelegate.html#/s:25SCSDKCameraKitReferenceUI30FlashModeSelectionViewDelegateP05flashfgH0_07updatedF0yAA0efgH0C_AA16CameraControllerC0eF0OtF":{"name":"flashModeSelectionView(_:updatedMode:)","abstract":"

Notifies the delegate that there is an update to the selected flash mode.

","parent_name":"FlashModeSelectionViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_22selectedRingLightColoryAA0efG0C_So7UIColorCtF":{"name":"flashControlView(_:selectedRingLightColor:)","abstract":"

Notifies the delegate that a ring light color was selected.

","parent_name":"FlashControlViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_21updatedRingLightValueyAA0efG0C_SftF":{"name":"flashControlView(_:updatedRingLightValue:)","abstract":"

Notifies the delegate that the control’s ring light intensity slider has an updated value.

","parent_name":"FlashControlViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_07updatedE4ModeyAA0efG0C_AA16CameraControllerC0eK0OtF":{"name":"flashControlView(_:updatedFlashMode:)","abstract":"

Notifies the delegate that there is an update to the selected flash mode.

","parent_name":"FlashControlViewDelegate"},"Protocols/AppOrientationDelegate.html#/s:25SCSDKCameraKitReferenceUI22AppOrientationDelegateP04lockF0yySo011UIInterfaceF4MaskVF":{"name":"lockOrientation(_:)","abstract":"

Lock app orientation

","parent_name":"AppOrientationDelegate"},"Protocols/AppOrientationDelegate.html#/s:25SCSDKCameraKitReferenceUI22AppOrientationDelegateP06unlockF0yyF":{"name":"unlockOrientation()","abstract":"

Unlock orientation

","parent_name":"AppOrientationDelegate"},"Protocols/ControlSliderDelegate.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","abstract":"

Notifies the delegate that the slider’s value has changed.

","parent_name":"ControlSliderDelegate"},"Protocols/AdjustmentControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI29AdjustmentControlViewDelegateP010adjustmentfG0_18sliderValueChangedyAA0efG0C_SdtF":{"name":"adjustmentControlView(_:sliderValueChanged:)","abstract":"

Notifies the delegate that the control’s intensity slider’s value has changed.

","parent_name":"AdjustmentControlViewDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","abstract":"

Called when user taps camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","abstract":"

Called when user starts holding down camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","abstract":"

Called when user released their hold before the minimum threshold has been reached

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","abstract":"

Called when user stops holding down camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","abstract":"

Notifies the delegate that the camera controller has resolved a new list of available lenses

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","abstract":"

Notifies the delegate that the camera controller is currently in a loading state, and an activity indicator should be displayed.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","abstract":"

Notifies the delegate that the camera controller is no longer in a loading state, and an activity indicator should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","abstract":"

Notifies the delegate that the flash state is on in ring light mode and that the ring light effect should be shown.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","abstract":"

Notifies the delegate that the flash state is no longer in ring light mode and that the ring light effect should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","abstract":"

Notifies the delegate that the flash state has changed such that the flash control should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","abstract":"

Notifies the delegate that the snap attribution should be shown. For example, after the agreements have been accepted.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","abstract":"

Notifies the delegate that the snap attribution should be hidden. For example, when a video is being recorded.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","abstract":"

Notifies the delegate that the camera position should be flipped.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","abstract":"

Notifies the delegate that a lens has requested that a hint should be displayed

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","abstract":"

Notifies the delegate that any hints requested by the specified lens should be hidden

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html":{"name":"CameraControllerUIDelegate","abstract":"

Undocumented

"},"Protocols/CameraButtonDelegate.html":{"name":"CameraButtonDelegate","abstract":"

Delegate to receive updates for camera button view

"},"Protocols/AdjustmentControlViewDelegate.html":{"name":"AdjustmentControlViewDelegate","abstract":"

Undocumented

"},"Protocols/ControlSliderDelegate.html":{"name":"ControlSliderDelegate","abstract":"

Undocumented

"},"Protocols/AppOrientationDelegate.html":{"name":"AppOrientationDelegate","abstract":"

Describes an interface to control app orientation

"},"Protocols/FlashControlViewDelegate.html":{"name":"FlashControlViewDelegate","abstract":"

Undocumented

"},"Protocols/FlashModeSelectionViewDelegate.html":{"name":"FlashModeSelectionViewDelegate","abstract":"

Undocumented

"},"Protocols/RingLightColorSelectionViewDelegate.html":{"name":"RingLightColorSelectionViewDelegate","abstract":"

Undocumented

"},"Protocols/CarouselCollectionViewLayoutDelegate.html":{"name":"CarouselCollectionViewLayoutDelegate","abstract":"

Delegate for custom carousel collection view layout

"},"Protocols/CarouselCollectionViewLayoutDataSource.html":{"name":"CarouselCollectionViewLayoutDataSource","abstract":"

Data source for custom carousel collection view layout

"},"Protocols/CarouselImageLoader.html":{"name":"CarouselImageLoader","abstract":"

Protocol used to load an image from url

"},"Protocols/CarouselViewDelegate.html":{"name":"CarouselViewDelegate","abstract":"

A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

"},"Protocols/CarouselViewDataSource.html":{"name":"CarouselViewDataSource","abstract":"

A set of functions that an object adopts to manage data and provide items for a carousel view.

"},"Protocols/MediaPickerViewDelegate.html":{"name":"MediaPickerViewDelegate","abstract":"

Describes an interface to be notified of MediaPickerView events

"},"Protocols/SnapchatDelegate.html":{"name":"SnapchatDelegate","abstract":"

CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

"},"Protocols/TestableElement.html":{"name":"TestableElement","abstract":"

Describes an element that can be UI tested

"},"Functions.html#/s:25SCSDKCameraKitReferenceUI06CameraB15LocalizedString3key6bundle18preferredLanguages7comment5tableS2S_So8NSBundleCSgSaySSGSSSgALtF":{"name":"CameraKitLocalizedString(key:bundle:preferredLanguages:comment:table:)","abstract":"

Looks up a localized string for CameraKit’s reference UI.

"},"Extensions/NSString.html#/c:@CM@SCSDKCameraKitReferenceUI@@objc(cs)NSString(cm)cameraKit_localizedWithKey:bundle:preferredLanguages:comment:table:":{"name":"cameraKit_localized(key:bundle:preferredLanguages:comment:table:)","abstract":"

Undocumented

","parent_name":"NSString"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE17sc_ultraLightFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_ultraLightFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE14sc_regularFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_regularFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE13sc_mediumFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_mediumFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE15sc_demiBoldFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_demiBoldFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE11sc_boldFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_boldFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE12sc_heavyFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_heavyFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIColor.html#/s:So7UIColorC25SCSDKCameraKitReferenceUIE3hex5alphaABSu_14CoreFoundation7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Undocumented

","parent_name":"UIColor"},"Extensions/UIImage.html#/s:So7UIImageC25SCSDKCameraKitReferenceUIE22circleHighlightedImage6radius5colorABSg14CoreFoundation7CGFloatV_So7UIColorCtF":{"name":"circleHighlightedImage(radius:color:)","abstract":"

Produces a version of the image that is subtracted from a circle with the given radius and color.

","parent_name":"UIImage"},"Extensions/UILabel.html#/s:So7UILabelC25SCSDKCameraKitReferenceUIE20controlDismissalHintAByFZ":{"name":"controlDismissalHint()","abstract":"

Produces a dismissal hint label for the control.

","parent_name":"UILabel"},"Extensions/UIButton.html#/s:So8UIButtonC25SCSDKCameraKitReferenceUIE29applyCameraActionButtonShadowyyF":{"name":"applyCameraActionButtonShadow()","abstract":"

Applies a shadow designed for camera action buttons.

","parent_name":"UIButton"},"Extensions/UIButton.html":{"name":"UIButton","abstract":"

Helper to apply shadows to buttons.

"},"Extensions/UILabel.html":{"name":"UILabel","abstract":"

Helper to produce a dismissal hint for various camera action controls.

"},"Extensions/UIImage.html":{"name":"UIImage","abstract":"

Helper to produce highlighted versions of some camera action button images.

"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIFont.html":{"name":"UIFont","abstract":"

Provides access to Snapchat typography in all supported weights.

"},"Extensions/NSString.html":{"name":"NSString","abstract":"

Objective-C interface for CameraKitLocalizedString

"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO10noOpButtonyA2CmF":{"name":"noOpButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO11arkitButtonyA2CmF":{"name":"arkitButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO16agreementsButtonyA2CmF":{"name":"agreementsButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO14tapToFocusViewyA2CmF":{"name":"tapToFocusView","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO13pairingButtonyA2CmF":{"name":"pairingButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO24connectedLensStartButtonyA2CmF":{"name":"connectedLensStartButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO17flashModeSelectoryA2CmF":{"name":"flashModeSelector","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO22ringLightColorSelectoryA2CmF":{"name":"ringLightColorSelector","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO24ringLightIntensitySlideryA2CmF":{"name":"ringLightIntensitySlider","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/MessageNotificationElements.html#/s:25SCSDKCameraKitReferenceUI27MessageNotificationElementsO5labelyA2CmF":{"name":"label","abstract":"

Undocumented

","parent_name":"MessageNotificationElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO11closeButtonyA2CmF":{"name":"closeButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO14snapchatButtonyA2CmF":{"name":"snapchatButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO11shareButtonyA2CmF":{"name":"shareButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO9imageViewyA2CmF":{"name":"imageView","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO20playerControllerViewyA2CmF":{"name":"playerControllerView","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO14collectionViewyA2CmF":{"name":"collectionView","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO8lensCellyA2CmF":{"name":"lensCell","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO23facadeSelectionRingViewyA2CmF":{"name":"facadeSelectionRingView","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CameraElements/CameraFlip.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO0E4FlipO5frontSSvpZ":{"name":"front","abstract":"

Undocumented

","parent_name":"CameraFlip"},"Enums/CameraElements/CameraFlip.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO0E4FlipO4backSSvpZ":{"name":"back","abstract":"

Undocumented

","parent_name":"CameraFlip"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO9lensLabelyA2CmF":{"name":"lensLabel","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO04flipE6ButtonyA2CmF":{"name":"flipCameraButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO17flashToggleButtonyA2CmF":{"name":"flashToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO24flashConfigurationButtonyA2CmF":{"name":"flashConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO12flashControlyA2CmF":{"name":"flashControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO25flashControlDismissalHintyA2CmF":{"name":"flashControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO19toneMapToggleButtonyA2CmF":{"name":"toneMapToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO26toneMapConfigurationButtonyA2CmF":{"name":"toneMapConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO14toneMapControlyA2CmF":{"name":"toneMapControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO27toneMapControlDismissalHintyA2CmF":{"name":"toneMapControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO20portraitToggleButtonyA2CmF":{"name":"portraitToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO27portraitConfigurationButtonyA2CmF":{"name":"portraitConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO15portraitControlyA2CmF":{"name":"portraitControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO28portraitControlDismissalHintyA2CmF":{"name":"portraitControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO13ringLightViewyA2CmF":{"name":"ringLightView","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO18photoLibraryButtonyA2CmF":{"name":"photoLibraryButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO12cameraButtonyA2CmF":{"name":"cameraButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements/CameraFlip.html":{"name":"CameraFlip","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraBottomBarElements.html#/s:25SCSDKCameraKitReferenceUI23CameraBottomBarElementsO11closeButtonyA2CmF":{"name":"closeButton","abstract":"

Undocumented

","parent_name":"CameraBottomBarElements"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO7profileyA2CmF":{"name":"profile","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO4lensyACSo08SCCameraB4Lens_pcACmF":{"name":"lens(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO5photoyACSo7UIImageCcACmF":{"name":"photo(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO5videoyAC10Foundation3URLVcACmF":{"name":"video(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html":{"name":"SnapchatScreen","abstract":"

Describes the Snapchat screen to open to

"},"Enums/CameraBottomBarElements.html":{"name":"CameraBottomBarElements","abstract":"

CameraBottomBar view testable elements

"},"Enums/CameraElements.html":{"name":"CameraElements","abstract":"

CameraViewController testable elements

"},"Enums/CarouselElements.html":{"name":"CarouselElements","abstract":"

CarouselView testable elements

"},"Enums/PreviewElements.html":{"name":"PreviewElements","abstract":"

PreviewViewController testable elements

"},"Enums/MessageNotificationElements.html":{"name":"MessageNotificationElements","abstract":"

MessageNotificationView testable elements

"},"Enums/FlashControlElements.html":{"name":"FlashControlElements","abstract":"

FlashControlView testable elements

"},"Enums/OtherElements.html":{"name":"OtherElements","abstract":"

Other misc testable elements

"},"Classes/TapAnimationView.html#/s:25SCSDKCameraKitReferenceUI16TapAnimationViewC6centerACSo7CGPointV_tcfc":{"name":"init(center:)","abstract":"

Undocumented

","parent_name":"TapAnimationView"},"Classes/TapAnimationView.html#/s:25SCSDKCameraKitReferenceUI16TapAnimationViewC4showyyF":{"name":"show()","abstract":"

Performs the tap animation and removes the view upon completion of the animation

","parent_name":"TapAnimationView"},"Classes/SnapAttributionView.html#/s:25SCSDKCameraKitReferenceUI19SnapAttributionViewC14poweredByLabelSo7UILabelCvp":{"name":"poweredByLabel","abstract":"

Undocumented

","parent_name":"SnapAttributionView"},"Classes/SnapAttributionView.html#/s:25SCSDKCameraKitReferenceUI19SnapAttributionViewC13snapIconImageSo07UIImageG0Cvp":{"name":"snapIconImage","abstract":"

Undocumented

","parent_name":"SnapAttributionView"},"Classes/MessageNotificationView.html#/s:25SCSDKCameraKitReferenceUI23MessageNotificationViewC5labelSo7UILabelCvp":{"name":"label","abstract":"

Default label in the message notification view

","parent_name":"MessageNotificationView"},"Classes/MessageNotificationView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MessageNotificationView(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"MessageNotificationView"},"Classes/CameraBottomBar.html#/s:25SCSDKCameraKitReferenceUI15CameraBottomBarC10snapButtonSo8UIButtonCvp":{"name":"snapButton","abstract":"

Snap ghost button for lens actions

","parent_name":"CameraBottomBar"},"Classes/CameraBottomBar.html#/s:25SCSDKCameraKitReferenceUI15CameraBottomBarC11closeButtonSo8UIButtonCvp":{"name":"closeButton","abstract":"

Close button to clear current lens

","parent_name":"CameraBottomBar"},"Classes/UserDataProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)UserDataProvider(py)delegate":{"name":"delegate","abstract":"

Delegate for CameraKit to receive updates on user data

","parent_name":"UserDataProvider"},"Classes/UserDataProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)UserDataProvider(py)userData":{"name":"userData","abstract":"

Mocked user data

","parent_name":"UserDataProvider"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC6outputSo08SCCameraB14AVWriterOutputCvp":{"name":"output","abstract":"

The AVWriterOutput for CameraKt.

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC3url11orientation4sizeAC10Foundation3URLV_So25AVCaptureVideoOrientationVSo6CGSizeVtKcfc":{"name":"init(url:orientation:size:)","abstract":"

Designated init to pass in required deps

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC14startRecordingyyF":{"name":"startRecording()","abstract":"

Undocumented

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC15finishRecording10completionyy10Foundation3URLVSg_s5Error_pSgtcSg_tF":{"name":"finishRecording(completion:)","abstract":"

Undocumented

","parent_name":"Recorder"},"Classes/VideoPreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26VideoPreviewViewControllerC8videoUrl10Foundation3URLVvp":{"name":"videoUrl","abstract":"

URL which contains video file

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26VideoPreviewViewControllerC8videoUrlAC10Foundation3URLV_tcfc":{"name":"init(videoUrl:)","abstract":"

Init with url to video file

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/PreviewViewController.html#/s:25SCSDKCameraKitReferenceUI21PreviewViewControllerC16snapchatDelegateAA08SnapchatI0_pSgvp":{"name":"snapchatDelegate","abstract":"

Snapchat delegate for open requests

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/s:25SCSDKCameraKitReferenceUI21PreviewViewControllerC9onDismissyycSgvp":{"name":"onDismiss","abstract":"

Callback when user presses close button and dismisses preview view controller

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/ImagePreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26ImagePreviewViewControllerC5imageSo7UIImageCvp":{"name":"image","abstract":"

UIImage to display

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26ImagePreviewViewControllerC5imageACSo7UIImageC_tcfc":{"name":"init(image:)","abstract":"

Designated init to pass in required deps

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/MediaPickerView.html#/s:25SCSDKCameraKitReferenceUI15MediaPickerViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate to be notified of MediaPickerView events

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/s:25SCSDKCameraKitReferenceUI15MediaPickerViewC8providerSo08SCCamerab4LenseF8Provider_pSgvp":{"name":"provider","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)init":{"name":"init()","abstract":"

Designated init to provide in required deps

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)mediaPickerProviderRequestedUIPresentation:":{"name":"mediaPickerProviderRequestedUIPresentation(_:)","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)mediaPickerProviderRequestedUIDismissal:":{"name":"mediaPickerProviderRequestedUIDismissal(_:)","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)textView":{"name":"textView","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)accessoryView":{"name":"accessoryView","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)placeholderText":{"name":"placeholderText","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)maximumHeight":{"name":"maximumHeight","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/BundleHelper.html#/s:25SCSDKCameraKitReferenceUI12BundleHelperC09resourcesE0So8NSBundleCvpZ":{"name":"resourcesBundle","abstract":"

Internal helper computed property to get correct resources bundle","parent_name":"BundleHelper"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

The delegate for the carousel view which will be notified of the carousel view actions.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10dataSourceAA0ef4DataH0_pSgvp":{"name":"dataSource","abstract":"

The object that manages data and provides items for the carousel view.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10reloadDatayyF":{"name":"reloadData()","abstract":"

Reloads all of the data in the carousel view to display the latest carousel items.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC12selectedItemAA0eH0Cvp":{"name":"selectedItem","abstract":"

Current selected item or nil if none are selected (ie. when carousel is empty).

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10selectItemySbAA0eH0CF":{"name":"selectItem(_:)","abstract":"

Select carousel item","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC04hideE0yyF":{"name":"hideCarousel()","abstract":"

Hide lens carousel.","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC04showE0yyF":{"name":"showCarousel()","abstract":"

Show lens carousel.","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:willDisplayCell:forItemAtIndexPath:":{"name":"collectionView(_:willDisplay:forItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:didEndDisplayingCell:forItemAtIndexPath:":{"name":"collectionView(_:didEndDisplaying:forItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)scrollViewDidScroll:":{"name":"scrollViewDidScroll(_:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI36CarouselCollectionViewLayoutDelegateP08carouselH0_15willTargetIndexyAA0efgH0C_SitF":{"name":"carouselLayout(_:willTargetIndex:)","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI38CarouselCollectionViewLayoutDataSourceP08carouselH0_18transformForItemAtSo17CGAffineTransformVAA0efgH0C_10Foundation9IndexPathVtF":{"name":"carouselLayout(_:transformForItemAt:)","parent_name":"CarouselView"},"Classes/EmptyItem.html#/s:25SCSDKCameraKitReferenceUI9EmptyItemCACycfc":{"name":"init()","abstract":"

Undocumented

","parent_name":"EmptyItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC2idSSvp":{"name":"id","abstract":"

id for carousel item

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC6lensIdSSvp":{"name":"lensId","abstract":"

lens id

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC7groupIdSSvp":{"name":"groupId","abstract":"

group id lens belongs to

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC8imageUrl10Foundation3URLVSgvp":{"name":"imageUrl","abstract":"

image url for lens icon

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC5imageSo7UIImageCSgvp":{"name":"image","abstract":"

downloaded image for lens icon

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC6lensId05groupH08imageUrl0J0ACSS_SS10Foundation3URLVSgSo7UIImageCSgtcfc":{"name":"init(lensId:groupId:imageUrl:image:)","abstract":"

Designated init for a carousel item

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CarouselItem"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC10urlSessionSo12NSURLSessionCvp":{"name":"urlSession","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC10urlSessionACSo12NSURLSessionC_tcfc":{"name":"init(urlSession:)","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC04loadG03url10completiony10Foundation3URLV_ySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:completion:)","abstract":"

Load image from url (callback queue will be on main)

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC04loadG03url5queue10completiony10Foundation3URLV_So012OS_dispatch_K0CySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:queue:completion:)","abstract":"

Load image from url

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC06cancelG4Load4fromy10Foundation3URLV_tF":{"name":"cancelImageLoad(from:)","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/CarouselCollectionViewLayout.html#/s:25SCSDKCameraKitReferenceUI28CarouselCollectionViewLayoutC8delegateAA0efgH8Delegate_pSgvp":{"name":"delegate","abstract":"

Weak ref to carousel layout delegate

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/s:25SCSDKCameraKitReferenceUI28CarouselCollectionViewLayoutC10dataSourceAA0efgh4DataJ0_pSgvp":{"name":"dataSource","abstract":"

Weak ref to carousel layout data source

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewLayout(im)targetContentOffsetForProposedContentOffset:withScrollingVelocity:":{"name":"targetContentOffset(forProposedContentOffset:withScrollingVelocity:)","abstract":"

Override flow layout target content offset to land at a specific item (for the paging effect)

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewLayout(im)layoutAttributesForElementsInRect:":{"name":"layoutAttributesForElements(in:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewCell.html#/s:25SCSDKCameraKitReferenceUI26CarouselCollectionViewCellC05imageG0So07UIImageG0Cvp":{"name":"imageView","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/s:25SCSDKCameraKitReferenceUI26CarouselCollectionViewCellC017activityIndicatorG0So010UIActivityjG0Cvp":{"name":"activityIndicatorView","abstract":"

Activity indicator view that should activate when lens content is loading

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC9topBorderSo6UIViewCvp":{"name":"topBorder","abstract":"

The top border of the ring light effect. This top border is unaffected by changes to the ring light gradient intensity.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC12bottomBorderSo6UIViewCvp":{"name":"bottomBorder","abstract":"

The bottom border of the ring light effect.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC04ringF8GradientAA0efiG0Cvp":{"name":"ringLightGradient","abstract":"

The gradient portion of the ring light effect.","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC11changeColor2toySo7UIColorC_tF":{"name":"changeColor(to:)","abstract":"

Changes the color of the ring light effect to the specified color.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"RingLightView"},"Classes/RingLightView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"RingLightView"},"Classes/RingLightGradientView.html#/s:25SCSDKCameraKitReferenceUI21RingLightGradientViewC15updateIntensity2to8animatedy14CoreFoundation7CGFloatV_SbtF":{"name":"updateIntensity(to:animated:)","abstract":"

Updates the intensity of the ring light effect to the specified intensity.

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/s:25SCSDKCameraKitReferenceUI21RingLightGradientViewC11changeColor2toySo7UIColorC_tF":{"name":"changeColor(to:)","abstract":"

Changes the color of the ring light gradient to the specified color.

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightGradientView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightGradientView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"RingLightGradientView"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC14reuseIdentiferSSvpZ":{"name":"reuseIdentifer","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC03setG0yySo7UIColorCF":{"name":"setColor(_:)","abstract":"

Used to set the color option that the cell represents.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC9highlightyyF":{"name":"highlight()","abstract":"

Used to highlight the color option that this cell represents when selected.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC11unhighlightyyF":{"name":"unhighlight()","abstract":"

Remove the highlight from this cell.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionViewCell(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionViewCell(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC8delegateAA0efghI8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling updates to the color selection.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC010collectionI0So012UICollectionI0Cvp":{"name":"collectionView","abstract":"

Collection view which contains the different color options for the ring light.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC014performInitialH09indexPathy10Foundation05IndexM0V_tF":{"name":"performInitialSelection(indexPath:)","abstract":"

To be called the first time the ring light color selection view appears.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:didDeselectItemAtIndexPath:":{"name":"collectionView(_:didDeselectItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/FlashModeSelectionView.html#/s:25SCSDKCameraKitReferenceUI22FlashModeSelectionViewC8delegateAA0efgH8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling update’s to the selected flash mode in the view.

","parent_name":"FlashModeSelectionView"},"Classes/FlashModeSelectionView.html#/s:25SCSDKCameraKitReferenceUI22FlashModeSelectionViewC05flashF0AA16CameraControllerC0eF0Ovp":{"name":"flashMode","abstract":"

The current FlashMode that is selected in the view.

","parent_name":"FlashModeSelectionView"},"Classes/FlashModeSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashModeSelectionView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"FlashModeSelectionView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling changes to the view’s controls.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC23ringLightIntensityValueSfvp":{"name":"ringLightIntensityValue","abstract":"

The intensity of the ring light according to the control’s slider’s value.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC12primaryLabelSo7UILabelCvp":{"name":"primaryLabel","abstract":"

Primary label for the control.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC018flashModeSelectionG0AA0eijG0Cvp":{"name":"flashModeSelectionView","abstract":"

View that enables the user to swtich between flash modes.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC023ringLightColorSelectionG0AA04RingijkG0Cvp":{"name":"ringLightColorSelectionView","abstract":"

View with ring light color options to select between.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashControlView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashControlView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI30FlashModeSelectionViewDelegateP05flashfgH0_07updatedF0yAA0efgH0C_AA16CameraControllerC0eF0OtF":{"name":"flashModeSelectionView(_:updatedMode:)","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI35RingLightColorSelectionViewDelegateP04ringfghI0_08selectedG0yAA0efghI0C_So7UIColorCtF":{"name":"ringLightColorSelectionView(_:selectedColor:)","parent_name":"FlashControlView"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraG0AA0eG0Cvp":{"name":"cameraController","abstract":"

A controller which manages the camera and lenses stack on behalf of the view controller

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC22appOrientationDelegateAA03AppiJ0_pSgvp":{"name":"appOrientationDelegate","abstract":"

App orientation delegate to control app orientation

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraF0AA0eF0Cvp":{"name":"cameraView","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)loadView":{"name":"loadView()","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidAppear:":{"name":"viewDidAppear(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidDisappear:":{"name":"viewDidDisappear(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC10repoGroups13sessionConfigACSaySSG_So08SCCamerab7SessionK0CSgtcfc":{"name":"init(repoGroups:sessionConfig:)","abstract":"

Returns a camera view controller initialized with a camera controller that is configured with a newly created AVCaptureSession stack","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraB014captureSession10repoGroupsACSo08SCCameraB8Protocol_p_So09AVCaptureJ0CSaySSGtcfc":{"name":"init(cameraKit:captureSession:repoGroups:)","abstract":"

Convenience init to configure a camera controller with a specified AVCaptureSession stack, CameraKit, and list of group IDs.

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraG0AcA0eG0C_tcfc":{"name":"init(cameraController:)","abstract":"

Initialize the view controller with a preconfigured camera controller

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC10getMessage4lensSSSo08SCCameraB4Lens_p_tF":{"name":"getMessage(lens:)","abstract":"

get message to display in popup view for selected lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC11showMessage4lensySo08SCCameraB4Lens_p_tF":{"name":"showMessage(lens:)","abstract":"

Displays a message indicating that a specified lens has been displayed

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewWillTransitionToSize:withTransitionCoordinator:":{"name":"viewWillTransition(to:with:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC9applyLensyySo08SCCamerabI0_pF":{"name":"applyLens(_:)","abstract":"

Apply a specific lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC9clearLensyyF":{"name":"clearLens()","abstract":"

Helper function to clear currently selected lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)processorUpdatedAdjustmentsAvailability:":{"name":"processorUpdatedAdjustmentsAvailability(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_21updatedRingLightValueyAA0efG0C_SftF":{"name":"flashControlView(_:updatedRingLightValue:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_22selectedRingLightColoryAA0efG0C_So7UIColorCtF":{"name":"flashControlView(_:selectedRingLightColor:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_07updatedE4ModeyAA0efG0C_AA16CameraControllerC0eK0OtF":{"name":"flashControlView(_:updatedFlashMode:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)presentationControllerWillDismiss:":{"name":"presentationControllerWillDismiss(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC07previewF0So08SCCamerab7PreviewF0Cvp":{"name":"previewView","abstract":"

default camerakit view to draw outputted textures

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC15cameraBottomBarAA0ehI0Cvp":{"name":"cameraBottomBar","abstract":"

bottom bar below carousel

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC9hintLabelSo7UILabelCvp":{"name":"hintLabel","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC9lensLabelSo7UILabelCvp":{"name":"lensLabel","abstract":"

top label to show current selected lens

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC09ringLightF0AA04RinghF0Cvp":{"name":"ringLightView","abstract":"

View used for ring light effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC013cameraActionsF0AA0ehF0Cvp":{"name":"cameraActionsView","abstract":"

View that contains the buttons for various camera actions (flip, adjust, etc.)

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC012flashControlF0AA05FlashhF0Cvp":{"name":"flashControlView","abstract":"

Control view for switching between flash and ring light as well as controlling ring light color and intensity.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC25flashControlDismissalHintSo7UILabelCvp":{"name":"flashControlDismissalHint","abstract":"

Label shown beneath the ring light control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC014toneMapControlF0AA010AdjustmentiF0Cvp":{"name":"toneMapControlView","abstract":"

Control view for tone map adjustment that allows the user to adjust the intensity of the tone map effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC32toneMapControlDismissalHintLabelSo7UILabelCvp":{"name":"toneMapControlDismissalHintLabel","abstract":"

Label shown beneath the tone map control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC015portraitControlF0AA010AdjustmenthF0Cvp":{"name":"portraitControlView","abstract":"

Control view for portrait that allows the user to adjust the intensity of the portrait effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC33portraitControlDismissalHintLabelSo7UILabelCvp":{"name":"portraitControlDismissalHintLabel","abstract":"

Label shown beneath the portrait control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC08carouselF0AA08CarouselF0Cvp":{"name":"carouselView","abstract":"

carousel to scroll through lenses

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC12cameraButtonAA0eH0Cvp":{"name":"cameraButton","abstract":"

camera button to capture/record

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC011mediaPickerF0AA05MediahF0Cvp":{"name":"mediaPickerView","abstract":"

media picker to allow using photos from camera roll in lenses

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC07messageF0AA019MessageNotificationF0Cvp":{"name":"messageView","abstract":"

message view to show updates when selected lens changes

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC015snapAttributionF0AA04SnaphF0Cvp":{"name":"snapAttributionView","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC17activityIndicatorSo010UIActivityhF0Cvp":{"name":"activityIndicator","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC11showMessage4text13numberOfLines8durationySS_SiSdtF":{"name":"showMessage(text:numberOfLines:duration:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC22setupActivityIndicatoryyF":{"name":"setupActivityIndicator()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC19isAnyControlVisibleSbvp":{"name":"isAnyControlVisible","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC15hideAllControlsyyF":{"name":"hideAllControls()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC016drawTapAnimationF02atySo7CGPointV_tF":{"name":"drawTapAnimationView(at:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC12configurableSbvp":{"name":"configurable","abstract":"

Whether or not the action is currently configurable via a control view.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC12toggleButtonSo8UIButtonCvp":{"name":"toggleButton","abstract":"

Button used to enable/disable camera action.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC19configurationButtonSo8UIButtonCvp":{"name":"configurationButton","abstract":"

Button used to open/close the settings for the camera action.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC010blurEffectH0So08UIVisualjH0Cvp":{"name":"blurEffectView","abstract":"

View that provides the stack view with its blurred background.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC8collapseyyF":{"name":"collapse()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC6expandyyF":{"name":"expand()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC06enableG0yycSgvp":{"name":"enableAction","abstract":"

Callback to enable the camera action when the toggle button is selected.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC07disableG0yycSgvp":{"name":"disableAction","abstract":"

Callback to disable the camera action when the toggle button is deselected.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC04showG8SettingsyycSgvp":{"name":"showActionSettings","abstract":"

Callback to show the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC04hideG8SettingsyycSgvp":{"name":"hideActionSettings","abstract":"

Callback to hide the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC06toggleG18SettingsVisibilityyycSgvp":{"name":"toggleActionSettingsVisibility","abstract":"

Callback to toggle the visibility of the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC04flipE6ButtonSo8UIButtonCvp":{"name":"flipCameraButton","abstract":"

Button to flip camera input position

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC34flashToggleButtonBaseSelectedImageSo7UIImageCSgvp":{"name":"flashToggleButtonBaseSelectedImage","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC011flashActionG0AA0e12ConfigurableiG0Cvp":{"name":"flashActionView","abstract":"

View with buttons to enable/disable flash and switch between system flash and ring light.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC30setupFlashToggleButtonForFrontyyF":{"name":"setupFlashToggleButtonForFront()","abstract":"

Sets up the flash toggle button for front flash.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC29setupFlashToggleButtonForBackyyF":{"name":"setupFlashToggleButtonForBack()","abstract":"

Sets up the flash toggle button for back flash.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC013toneMapActionG0AA0e12ConfigurablejG0Cvp":{"name":"toneMapActionView","abstract":"

View with buttons to enable/disable the tone map adjustment and control the intensity of the adjustment.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC014portraitActionG0AA0e12ConfigurableiG0Cvp":{"name":"portraitActionView","abstract":"

View with buttons to enable/disable the portrait adjustment and control the intensity of the adjustment.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC011buttonStackG0So07UIStackG0Cvp":{"name":"buttonStackView","abstract":"

Stack view used to arrange the view’s buttons.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC8collapseyyF":{"name":"collapse()","abstract":"

Hide all camera actions except camera flip while recording.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC6expandyyF":{"name":"expand()","abstract":"

Unhide all camera actions that were hidden as a result of a call to collapse.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraActionsView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraActionsView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/ControlSlider.html#/s:25SCSDKCameraKitReferenceUI13ControlSliderC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling updates to the slider’s value.

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(im)setValue:animated:":{"name":"setValue(_:animated:)","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/s:25SCSDKCameraKitReferenceUI13ControlSliderC13setThumbColoryySo7UIColorCF":{"name":"setThumbColor(_:)","abstract":"

Sets the color of the slider’s thumb.

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO4toneyA2EmF":{"name":"tone","abstract":"

Undocumented

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO8portraityA2EmF":{"name":"portrait","abstract":"

Undocumented

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO5labelSSvp":{"name":"label","abstract":"

Text for the primary label of the control with the specified variant.

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html":{"name":"Variant","abstract":"

Adjustments that can be controlled via this view.","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling changes to the adjustment intensity slider.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC14intensityValueSfvp":{"name":"intensityValue","abstract":"

The intensity of the adjustment according to the control’s slider’s value.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC12primaryLabelSo7UILabelCvp":{"name":"primaryLabel","abstract":"

Primary label for the control.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC14secondaryLabelSo7UILabelCvp":{"name":"secondaryLabel","abstract":"

Secondary label for the control.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","parent_name":"AdjustmentControlView"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ConstantsO":{"name":"Constants","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

Camera button delegate

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC19minimumHoldDurationSdvp":{"name":"minimumHoldDuration","abstract":"

The minimum time for a hold to be considered “valid.”","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ringWidth14CoreFoundation7CGFloatVvp":{"name":"ringWidth","abstract":"

Line width for camera ring

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC19allowWhileRecordingSaySo19UIGestureRecognizerCGvp":{"name":"allowWhileRecording","abstract":"

List of allowed gestures to be used when recording a video(LongPressGesture) i.e. Double Tap Gesture, Pinch Gesture.

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ringColorSo7UIColorCSgvp":{"name":"ringColor","abstract":"

Ring color while recording

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC20tapGestureRecognizerSo05UITaphI0Cvp":{"name":"tapGestureRecognizer","abstract":"

Tap gesture recognizer that is used to recognize taps on the camera button","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC22pressGestureRecognizerSo011UILongPresshI0Cvp":{"name":"pressGestureRecognizer","abstract":"

Long press gesture recognizer used to handle recording gesture","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)willMoveToSuperview:":{"name":"willMove(toSuperview:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:":{"name":"gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)gestureRecognizer:shouldReceiveTouch:":{"name":"gestureRecognizer(_:shouldReceive:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC23startRecordingAnimation16ringFillDuration03maxhL0ySd_SdtF":{"name":"startRecordingAnimation(ringFillDuration:maxRecordingDuration:)","abstract":"

Start animating ring fill","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC22stopRecordingAnimationyyF":{"name":"stopRecordingAnimation()","abstract":"

Stop animating ring fill and reset views to original state","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)animationDidStop:finished:":{"name":"animationDidStop(_:finished:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO3offyA2EmF":{"name":"off","abstract":"

Undocumented

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO2onyAeC0G4ModeOcAEmF":{"name":"on(_:)","abstract":"

Undocumented

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO013captureDeviceG4ModeSo09AVCapturegK0Vvp":{"name":"captureDeviceFlashMode","abstract":"

The AVCaptureDevice.FlashMode that should be used when taking photos as per the FlashState.

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO22captureDeviceTorchModeSo09AVCapturekL0Vvp":{"name":"captureDeviceTorchMode","abstract":"

The AVCaptureDevice.torchMode that should be used when recording videos as per the FlashState.

","parent_name":"FlashState"},"Classes/CameraController/FlashMode.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9FlashModeO8standardyA2EmF":{"name":"standard","abstract":"

Undocumented

","parent_name":"FlashMode"},"Classes/CameraController/FlashMode.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9FlashModeO4ringyA2EmF":{"name":"ring","abstract":"

Undocumented

","parent_name":"FlashMode"},"Classes/CameraController/PointOfInterestOptions.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:s9OptionSetP8rawValuex03RawD0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC22PointOfInterestOptionsV8exposureAEvpZ":{"name":"exposure","abstract":"

Undocumented

","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC22PointOfInterestOptionsV5focusAEvpZ":{"name":"focus","abstract":"

Undocumented

","parent_name":"PointOfInterestOptions"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14captureSessionSo09AVCaptureH0Cvp":{"name":"captureSession","abstract":"

A capture session we’ll use for camera input.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC06cameraB0So08SCCameraB8Protocol_pvp":{"name":"cameraKit","abstract":"

The CameraKit session

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14cameraPositionSo015AVCaptureDeviceH0Vvp":{"name":"cameraPosition","abstract":"

The position of the camera.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18photoCaptureOutputSo08SCCamerab5PhotohI0CSgvp":{"name":"photoCaptureOutput","abstract":"

An output used for taking still photos.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC8recorderAA8RecorderCSgvp":{"name":"recorder","abstract":"

An output used for recording videos.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC17lensMediaProviderSo08SCCamerab4Lensh6PickerI12PhotoLibraryCvp":{"name":"lensMediaProvider","abstract":"

Media provider for CameraKit.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC16snapchatDelegateAA08SnapchatH0_pSgvp":{"name":"snapchatDelegate","abstract":"

Snapchat delegate for requests to open the main Snapchat app.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10uiDelegateAA0eF10UIDelegate_pSgvp":{"name":"uiDelegate","abstract":"

Delegate for responding to UI requests from camera controller.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC11currentLensSo08SCCamerabH0_pSgvp":{"name":"currentLens","abstract":"

The currently selected and active lens.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC8groupIDsSaySSGvp":{"name":"groupIDs","abstract":"

List of lens repository groups to observe/show in carousel

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC28isToneMapAdjustmentAvailableSbvp":{"name":"isToneMapAdjustmentAvailable","abstract":"

Whether or not the tone map adjustment is available for the current device.","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC29isPortraitAdjustmentAvailableSbvp":{"name":"isPortraitAdjustmentAvailable","abstract":"

Whether or not the portrait adjustment is available for the current device.","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10flashStateAC05FlashH0Ovp":{"name":"flashState","abstract":"

The current state of the camera flash.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC13sessionConfigACSo08SCCamerab7SessionH0CSg_tcfc":{"name":"init(sessionConfig:)","abstract":"

Returns a camera controller that is initialized with a newly created AVCaptureSession stack","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC06cameraB014captureSessionACSo08SCCameraB8Protocol_p_So09AVCaptureI0Ctcfc":{"name":"init(cameraKit:captureSession:)","abstract":"

Init with camera kit session, capture session, and lens holder

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9configure11orientation24textInputContextProvider022agreementsPresentationkL010completionySo25AVCaptureVideoOrientationV_So08SCCamerab4TextjkL0_pSgSo0sb10AgreementsnkL0_pSgyycSgtF":{"name":"configure(orientation:textInputContextProvider:agreementsPresentationContextProvider:completion:)","abstract":"

Configures the overall camera and lenses stack.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15configureLenses11orientation24textInputContextProvider022agreementsPresentationlM0ySo25AVCaptureVideoOrientationV_So08SCCamerab4TextklM0_pSgSo0sb10AgreementsolM0_pSgtF":{"name":"configureLenses(orientation:textInputContextProvider:agreementsPresentationContextProvider:)","abstract":"

Configures the lenses pipeline.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC21configureDataProviderSo08SCCamerabhI9ComponentCyF":{"name":"configureDataProvider()","abstract":"

Configures the data provider for lenses. Subclasses may override this to customize their data provider.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC17zoomExistingLevel2byy14CoreFoundation7CGFloatV_tF":{"name":"zoomExistingLevel(by:)","abstract":"

Zoom in by a given factor from whatever the current zoom level is

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC12finalizeZoomyyF":{"name":"finalizeZoom()","abstract":"

Save whatever the current zoom level is.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC04flipE0yyF":{"name":"flipCamera()","abstract":"

Flips the camera to the other side

","parent_name":"CameraController"},"Classes/CameraController/PointOfInterestOptions.html":{"name":"PointOfInterestOptions","abstract":"

Options to support when setting a point of interest

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18setPointOfInterest2at3forySo7CGPointV_AC0hiJ7OptionsVtF":{"name":"setPointOfInterest(at:for:)","abstract":"

Sets camera point of interest for operations in the option set. Also adds observers for the current device such","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9takePhoto10completionyySo7UIImageCSg_s5Error_pSgtcSg_tF":{"name":"takePhoto(completion:)","abstract":"

Takes a photo.

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)repository:didUpdateLenses:forGroupID:":{"name":"repository(_:didUpdateLenses:forGroupID:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)repository:didFailToUpdateLensesForGroupID:error:":{"name":"repository(_:didFailToUpdateLensesForGroupID:error:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)prefetcher:didUpdateLens:status:":{"name":"prefetcher(_:didUpdate:status:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14startRecordingyyF":{"name":"startRecording()","abstract":"

Begin recording video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15cancelRecordingyyF":{"name":"cancelRecording()","abstract":"

Cancel recording video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15finishRecording10completionyy10Foundation3URLVSg_s5Error_pSgtcSg_tF":{"name":"finishRecording(completion:)","abstract":"

Finish recording the video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9applyLens_10completionySo08SCCamerabH0_p_ySbcSgtF":{"name":"applyLens(_:completion:)","abstract":"

Apply a specified lens.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9clearLens11willReapply10completionySb_ySbcSgtF":{"name":"clearLens(willReapply:completion:)","abstract":"

Clear the currently selected lens, and return to unmodified camera feed.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18reapplyCurrentLensyyF":{"name":"reapplyCurrentLens()","abstract":"

If a lens has already been applied, reapply it.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC23enableToneMapAdjustmentSfSgyF":{"name":"enableToneMapAdjustment()","abstract":"

Enables the tone map adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC24disableToneMapAdjustmentyyF":{"name":"disableToneMapAdjustment()","abstract":"

Disables the tone map adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC24enablePortraitAdjustmentSfSgyF":{"name":"enablePortraitAdjustment()","abstract":"

Enables the portrait adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC25disablePortraitAdjustmentyyF":{"name":"disablePortraitAdjustment()","abstract":"

Disables the portrait adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)lensProcessor:shouldDisplayHint:forLens:autohide:":{"name":"lensProcessor(_:shouldDisplayHint:for:autohide:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)lensProcessor:shouldHideAllHintsForLens:":{"name":"lensProcessor(_:shouldHideAllHintsFor:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI23MediaPickerViewDelegateP05mediafG0_13selectedAssetyAA0efG0C_So08SCCamerab4LensefK0_ptF":{"name":"mediaPickerView(_:selectedAsset:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI29AdjustmentControlViewDelegateP010adjustmentfG0_18sliderValueChangedyAA0efG0C_SdtF":{"name":"adjustmentControlView(_:sliderValueChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC19brightnessToRestore14CoreFoundation7CGFloatVSgvp":{"name":"brightnessToRestore","abstract":"

Temporary state that holds the brightness that should be restored after the ring light is disabled.

","parent_name":"CameraController"},"Classes/CameraController/FlashMode.html":{"name":"FlashMode","abstract":"

Enumerates the different flash enabled modes.

","parent_name":"CameraController"},"Classes/CameraController/FlashState.html":{"name":"FlashState","abstract":"

Enumerates the different possible flash states.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC11enableFlashyyF":{"name":"enableFlash()","abstract":"

Enables the camera flash with the appopriate flash mode as per camera position and prior user selections.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC12disableFlashyyF":{"name":"disableFlash()","abstract":"

Disables the camera flash.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC28restoreBrightnessIfNecessaryyyF":{"name":"restoreBrightnessIfNecessary()","abstract":"

Restores brightness to what it was before the ring light was enabled.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC29increaseBrightnessIfNecessaryyyF":{"name":"increaseBrightnessIfNecessary()","abstract":"

Increases brightness to max if the ring light is enabled.

","parent_name":"CameraController"},"Classes/CameraController.html":{"name":"CameraController","abstract":"

A controller which manages the camera and lenses stack on behalf of its owner

"},"Classes/CameraButton.html":{"name":"CameraButton","abstract":"

Camera ring view for capturing and recording state

"},"Classes/AdjustmentControlView.html":{"name":"AdjustmentControlView","abstract":"

Undocumented

"},"Classes/ControlSlider.html":{"name":"ControlSlider","abstract":"

Undocumented

"},"Classes/CameraActionsView.html":{"name":"CameraActionsView","abstract":"

Undocumented

"},"Classes/CameraConfigurableActionView.html":{"name":"CameraConfigurableActionView","abstract":"

View to use for camera actions that can be enabled/disabled and configured via separate buttons.

"},"Classes/CameraView.html":{"name":"CameraView","abstract":"

This is the default view that backs the CameraViewController.

"},"Classes/CameraViewController.html":{"name":"CameraViewController","abstract":"

This is the default view controller which handles setting up the camera, lenses, carousel, etc.

"},"Classes/FlashControlView.html":{"name":"FlashControlView","abstract":"

Undocumented

"},"Classes/FlashModeSelectionView.html":{"name":"FlashModeSelectionView","abstract":"

Undocumented

"},"Classes/RingLightColorSelectionView.html":{"name":"RingLightColorSelectionView","abstract":"

Undocumented

"},"Classes/RingLightColorSelectionViewCell.html":{"name":"RingLightColorSelectionViewCell","abstract":"

Undocumented

"},"Classes/RingLightGradientView.html":{"name":"RingLightGradientView","abstract":"

Undocumented

"},"Classes/RingLightView.html":{"name":"RingLightView","abstract":"

Undocumented

"},"Classes/CarouselCollectionViewCell.html":{"name":"CarouselCollectionViewCell","abstract":"

Carousel collection view cell which represents a single lens item/icon

"},"Classes/CarouselCollectionViewLayout.html":{"name":"CarouselCollectionViewLayout","abstract":"

Custom collection view layout for carousel collection view

"},"Classes/DefaultCarouselImageLoader.html":{"name":"DefaultCarouselImageLoader","abstract":"

Default image loader class which uses a URLSession to load images

"},"Classes/CarouselItem.html":{"name":"CarouselItem","abstract":"

This is the carousel item view model which represents a specific lens icon

"},"Classes/EmptyItem.html":{"name":"EmptyItem","abstract":"

Concrete class for an empty item (clear camera button)

"},"Classes/CarouselView.html":{"name":"CarouselView","abstract":"

A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

"},"Classes/BundleHelper.html":{"name":"BundleHelper","abstract":"

Internal helper to deal with resources bundle

"},"Classes/KeyboardAccessoryViewProvider.html":{"name":"KeyboardAccessoryViewProvider","abstract":"

Reference implementation of a text input view for lenses that take text input.

"},"Classes/MediaPickerView.html":{"name":"MediaPickerView","abstract":"

Selection view for Media Picker

"},"Classes/ImagePreviewViewController.html":{"name":"ImagePreviewViewController","abstract":"

Preview view controller for showing captured photos and images

"},"Classes/PreviewViewController.html":{"name":"PreviewViewController","abstract":"

Base preview view controller that describes properties and views of all preview controllers

"},"Classes/VideoPreviewViewController.html":{"name":"VideoPreviewViewController","abstract":"

Preview view controller for showing recorded video previews

"},"Classes/Recorder.html":{"name":"Recorder","abstract":"

Sample video recorder implementation.

"},"Classes/UserDataProvider.html":{"name":"UserDataProvider","abstract":"

Default user data provider to show how to provide user data to CameraKit

"},"Classes/CameraBottomBar.html":{"name":"CameraBottomBar","abstract":"

Bottom bar on Camera that contains Snap ghost button for actions"},"Classes/MessageNotificationView.html":{"name":"MessageNotificationView","abstract":"

Popup message notification view for different lens events

"},"Classes/SnapAttributionView.html":{"name":"SnapAttributionView","abstract":"

Snap attribution on Camera that contains “Powered by” and Snap ghost icon

"},"Classes/TapAnimationView.html":{"name":"TapAnimationView","abstract":"

View that appears when the user taps on the camera view

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"},"Functions.html":{"name":"Functions","abstract":"

The following functions are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/docSet.dsidx b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/docsets/SCSDKCameraKitReferenceUI.docset/Contents/Resources/docSet.dsidx new file mode 100644 index 0000000000000000000000000000000000000000..45f8148d8d8554826c894828aaa98a0ccac91aed GIT binary patch literal 155648 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 z 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
+

+ + SCSDKCameraKitReferenceUI 1.30.0 Docs + + (60% documented) +

+ +
+
+ +
+
+ + +
+ + + +
+ +
+ +
+
+ +

CameraKit Reference UI iOS

+

Overview

+ +

SCSDKCameraKitReferenceUI is an optional SDK that provides reference UI elements similar to Snapchat’s UI as well as a fully-functional Camera view controller that has CameraKit set up and working with sample lenses. The elements provided in this SDK are designed to be used in a modular fashion, so it is easy to use certain UI elements out of the box while changing the design or functionality of other elements.

+

Usage Philosophy

+ +

In general, the UI elements in SCSDKCameraKitReferenceUI are intended to be used out-of-the-box and they provide customizations to tailor the behavior slightly (eg. changing the recording duration of the camera button). The UI elements are also designed to be extended, changed, and used in a modular fashion – for example, using our carousel, camera button, and recorder together to record a video with a lens, but showing it in your own video preview view can easily be done using these elements out-of-the-box.

+

Getting Started

+

Requirements

+ +

SCSDKCameraKitReferenceUI requires Swift, a minimum of iOS 11, and a 64 bit processor.

+

Dependency Management

+ +

CameraKit currently supports CocoaPods and Swift Package Manager.

+

CocoaPods

+ +

Add this line to your Podfile: +pod 'SCSDKCameraKitReferenceUI', :path => 'CameraKit/CameraKitReferenceUI' +where :path points to the directory that contains the camera kit sdk, podspec, etc.

+ +

Run pod install and open up your xcworkspace.

+

Swift Package Manager

+ +
    +
  • Drag and drop the CameraKit/CameraKitReferenceUI file into your project or workspace.
  • +
  • Click the + button in the “Frameworks, Libraries, and Embedded Content” section, select SCSDKCameraKitReferenceUI, and add it as a dependency.
  • +
+ +

More detail can be found in Apple’s documentation.

+

Showing the Camera

+ +

At its most simplest form, SCSDKCameraKitReferenceUI contains a fully-setup camera that contains all UI elements (carousel, camera button, recorder, etc.) and hooks up to the core SCSDKCameraKit sdk to fetch and apply lenses to the camera. This can be easily set up and presented by doing the following:

+
let cameraViewController = CameraViewController(repoGroups: ["REPLACE-THIS-WITH-YOUR-OWN-APP-SPECIFIC-VALUE"])
+present(cameraViewController, animated: true, completion: nil)
+
+ +

where repoGroups is the list of group IDs added in Lens Scheduler to show in the carousel.

+ +
+
+ + +
+
+ + + diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jazzy.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jazzy.js new file mode 100755 index 00000000..19844166 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jazzy.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +function toggleItem($link, $content) { + var animationDuration = 300; + $link.toggleClass('token-open'); + $content.slideToggle(animationDuration); +} + +function itemLinkToContent($link) { + return $link.parent().parent().next(); +} + +// On doc load + hash-change, open any targetted item +function openCurrentItemIfClosed() { + if (window.jazzy.docset) { + return; + } + var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); + $content = itemLinkToContent($link); + if ($content.is(':hidden')) { + toggleItem($link, $content); + } +} + +$(openCurrentItemIfClosed); +$(window).on('hashchange', openCurrentItemIfClosed); + +// On item link ('token') click, toggle its discussion +$('.token').on('click', function(event) { + if (window.jazzy.docset) { + return; + } + var $link = $(this); + toggleItem($link, itemLinkToContent($link)); + + // Keeps the document from jumping to the hash. + var href = $link.attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Clicks on links to the current, closed, item need to open the item +$("a:not('.token')").on('click', function() { + if (location == this.href) { + openCurrentItemIfClosed(); + } +}); + +// KaTeX rendering +if ("katex" in window) { + $($('.math').each( (_, element) => { + katex.render(element.textContent, element, { + displayMode: $(element).hasClass('m-block'), + throwOnError: false, + trust: true + }); + })) +} diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jazzy.search.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jazzy.search.js new file mode 100644 index 00000000..359cdbb8 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jazzy.search.js @@ -0,0 +1,74 @@ +// Jazzy - https://github.com/realm/jazzy +// Copyright Realm Inc. +// SPDX-License-Identifier: MIT + +$(function(){ + var $typeahead = $('[data-typeahead]'); + var $form = $typeahead.parents('form'); + var searchURL = $form.attr('action'); + + function displayTemplate(result) { + return result.name; + } + + function suggestionTemplate(result) { + var t = '
'; + t += '' + result.name + ''; + if (result.parent_name) { + t += '' + result.parent_name + ''; + } + t += '
'; + return t; + } + + $typeahead.one('focus', function() { + $form.addClass('loading'); + + $.getJSON(searchURL).then(function(searchData) { + const searchIndex = lunr(function() { + this.ref('url'); + this.field('name'); + this.field('abstract'); + for (const [url, doc] of Object.entries(searchData)) { + this.add({url: url, name: doc.name, abstract: doc.abstract}); + } + }); + + $typeahead.typeahead( + { + highlight: true, + minLength: 3, + autoselect: true + }, + { + limit: 10, + display: displayTemplate, + templates: { suggestion: suggestionTemplate }, + source: function(query, sync) { + const lcSearch = query.toLowerCase(); + const results = searchIndex.query(function(q) { + q.term(lcSearch, { boost: 100 }); + q.term(lcSearch, { + boost: 10, + wildcard: lunr.Query.wildcard.TRAILING + }); + }).map(function(result) { + var doc = searchData[result.ref]; + doc.url = result.ref; + return doc; + }); + sync(results); + } + } + ); + $form.removeClass('loading'); + $typeahead.trigger('focus'); + }); + }); + + var baseURL = searchURL.slice(0, -"search.json".length); + + $typeahead.on('typeahead:select', function(e, result) { + window.location = baseURL + result.url; + }); +}); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jquery.min.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jquery.min.js new file mode 100644 index 00000000..c4c6022f --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/typeahead.jquery.js b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/typeahead.jquery.js new file mode 100644 index 00000000..3a2d2ab0 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * typeahead.js 1.3.1 + * https://github.com/corejavascript/typeahead.js + * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT + */ + + +(function(root, factory) { + if (typeof define === "function" && define.amd) { + define([ "jquery" ], function(a0) { + return factory(a0); + }); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(require("jquery")); + } else { + factory(root["jQuery"]); + } +})(this, function($) { + var _ = function() { + "use strict"; + return { + isMsie: function() { + return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; + }, + isBlankString: function(str) { + return !str || /^\s*$/.test(str); + }, + escapeRegExChars: function(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + }, + isString: function(obj) { + return typeof obj === "string"; + }, + isNumber: function(obj) { + return typeof obj === "number"; + }, + isArray: $.isArray, + isFunction: $.isFunction, + isObject: $.isPlainObject, + isUndefined: function(obj) { + return typeof obj === "undefined"; + }, + isElement: function(obj) { + return !!(obj && obj.nodeType === 1); + }, + isJQuery: function(obj) { + return obj instanceof $; + }, + toStr: function toStr(s) { + return _.isUndefined(s) || s === null ? "" : s + ""; + }, + bind: $.proxy, + each: function(collection, cb) { + $.each(collection, reverseArgs); + function reverseArgs(index, value) { + return cb(value, index); + } + }, + map: $.map, + filter: $.grep, + every: function(obj, test) { + var result = true; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (!(result = test.call(null, val, key, obj))) { + return false; + } + }); + return !!result; + }, + some: function(obj, test) { + var result = false; + if (!obj) { + return result; + } + $.each(obj, function(key, val) { + if (result = test.call(null, val, key, obj)) { + return false; + } + }); + return !!result; + }, + mixin: $.extend, + identity: function(x) { + return x; + }, + clone: function(obj) { + return $.extend(true, {}, obj); + }, + getIdGenerator: function() { + var counter = 0; + return function() { + return counter++; + }; + }, + templatify: function templatify(obj) { + return $.isFunction(obj) ? obj : template; + function template() { + return String(obj); + } + }, + defer: function(fn) { + setTimeout(fn, 0); + }, + debounce: function(func, wait, immediate) { + var timeout, result; + return function() { + var context = this, args = arguments, later, callNow; + later = function() { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + } + }; + callNow = immediate && !timeout; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + } + return result; + }; + }, + throttle: function(func, wait) { + var context, args, timeout, result, previous, later; + previous = 0; + later = function() { + previous = new Date(); + timeout = null; + result = func.apply(context, args); + }; + return function() { + var now = new Date(), remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0) { + clearTimeout(timeout); + timeout = null; + previous = now; + result = func.apply(context, args); + } else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }, + stringify: function(val) { + return _.isString(val) ? val : JSON.stringify(val); + }, + guid: function() { + function _p8(s) { + var p = (Math.random().toString(16) + "000000000").substr(2, 8); + return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; + } + return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); + }, + noop: function() {} + }; + }(); + var WWW = function() { + "use strict"; + var defaultClassNames = { + wrapper: "twitter-typeahead", + input: "tt-input", + hint: "tt-hint", + menu: "tt-menu", + dataset: "tt-dataset", + suggestion: "tt-suggestion", + selectable: "tt-selectable", + empty: "tt-empty", + open: "tt-open", + cursor: "tt-cursor", + highlight: "tt-highlight" + }; + return build; + function build(o) { + var www, classes; + classes = _.mixin({}, defaultClassNames, o); + www = { + css: buildCss(), + classes: classes, + html: buildHtml(classes), + selectors: buildSelectors(classes) + }; + return { + css: www.css, + html: www.html, + classes: www.classes, + selectors: www.selectors, + mixin: function(o) { + _.mixin(o, www); + } + }; + } + function buildHtml(c) { + return { + wrapper: '', + menu: '
' + }; + } + function buildSelectors(classes) { + var selectors = {}; + _.each(classes, function(v, k) { + selectors[k] = "." + v; + }); + return selectors; + } + function buildCss() { + var css = { + wrapper: { + position: "relative", + display: "inline-block" + }, + hint: { + position: "absolute", + top: "0", + left: "0", + borderColor: "transparent", + boxShadow: "none", + opacity: "1" + }, + input: { + position: "relative", + verticalAlign: "top", + backgroundColor: "transparent" + }, + inputWithNoHint: { + position: "relative", + verticalAlign: "top" + }, + menu: { + position: "absolute", + top: "100%", + left: "0", + zIndex: "100", + display: "none" + }, + ltr: { + left: "0", + right: "auto" + }, + rtl: { + left: "auto", + right: " 0" + } + }; + if (_.isMsie()) { + _.mixin(css.input, { + backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" + }); + } + return css; + } + }(); + var EventBus = function() { + "use strict"; + var namespace, deprecationMap; + namespace = "typeahead:"; + deprecationMap = { + render: "rendered", + cursorchange: "cursorchanged", + select: "selected", + autocomplete: "autocompleted" + }; + function EventBus(o) { + if (!o || !o.el) { + $.error("EventBus initialized without el"); + } + this.$el = $(o.el); + } + _.mixin(EventBus.prototype, { + _trigger: function(type, args) { + var $e = $.Event(namespace + type); + this.$el.trigger.call(this.$el, $e, args || []); + return $e; + }, + before: function(type) { + var args, $e; + args = [].slice.call(arguments, 1); + $e = this._trigger("before" + type, args); + return $e.isDefaultPrevented(); + }, + trigger: function(type) { + var deprecatedType; + this._trigger(type, [].slice.call(arguments, 1)); + if (deprecatedType = deprecationMap[type]) { + this._trigger(deprecatedType, [].slice.call(arguments, 1)); + } + } + }); + return EventBus; + }(); + var EventEmitter = function() { + "use strict"; + var splitter = /\s+/, nextTick = getNextTick(); + return { + onSync: onSync, + onAsync: onAsync, + off: off, + trigger: trigger + }; + function on(method, types, cb, context) { + var type; + if (!cb) { + return this; + } + types = types.split(splitter); + cb = context ? bindContext(cb, context) : cb; + this._callbacks = this._callbacks || {}; + while (type = types.shift()) { + this._callbacks[type] = this._callbacks[type] || { + sync: [], + async: [] + }; + this._callbacks[type][method].push(cb); + } + return this; + } + function onAsync(types, cb, context) { + return on.call(this, "async", types, cb, context); + } + function onSync(types, cb, context) { + return on.call(this, "sync", types, cb, context); + } + function off(types) { + var type; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + while (type = types.shift()) { + delete this._callbacks[type]; + } + return this; + } + function trigger(types) { + var type, callbacks, args, syncFlush, asyncFlush; + if (!this._callbacks) { + return this; + } + types = types.split(splitter); + args = [].slice.call(arguments, 1); + while ((type = types.shift()) && (callbacks = this._callbacks[type])) { + syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); + asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); + syncFlush() && nextTick(asyncFlush); + } + return this; + } + function getFlush(callbacks, context, args) { + return flush; + function flush() { + var cancelled; + for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { + cancelled = callbacks[i].apply(context, args) === false; + } + return !cancelled; + } + } + function getNextTick() { + var nextTickFn; + if (window.setImmediate) { + nextTickFn = function nextTickSetImmediate(fn) { + setImmediate(function() { + fn(); + }); + }; + } else { + nextTickFn = function nextTickSetTimeout(fn) { + setTimeout(function() { + fn(); + }, 0); + }; + } + return nextTickFn; + } + function bindContext(fn, context) { + return fn.bind ? fn.bind(context) : function() { + fn.apply(context, [].slice.call(arguments, 0)); + }; + } + }(); + var highlight = function(doc) { + "use strict"; + var defaults = { + node: null, + pattern: null, + tagName: "strong", + className: null, + wordsOnly: false, + caseSensitive: false, + diacriticInsensitive: false + }; + var accented = { + A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", + B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", + C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", + D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", + E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", + F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", + G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", + H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", + I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", + J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", + K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", + L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", + M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", + N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", + O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", + P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", + Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", + R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", + S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", + T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", + U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", + V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", + W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", + X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", + Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", + Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" + }; + return function hightlight(o) { + var regex; + o = _.mixin({}, defaults, o); + if (!o.node || !o.pattern) { + return; + } + o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; + regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); + traverse(o.node, hightlightTextNode); + function hightlightTextNode(textNode) { + var match, patternNode, wrapperNode; + if (match = regex.exec(textNode.data)) { + wrapperNode = doc.createElement(o.tagName); + o.className && (wrapperNode.className = o.className); + patternNode = textNode.splitText(match.index); + patternNode.splitText(match[0].length); + wrapperNode.appendChild(patternNode.cloneNode(true)); + textNode.parentNode.replaceChild(wrapperNode, patternNode); + } + return !!match; + } + function traverse(el, hightlightTextNode) { + var childNode, TEXT_NODE_TYPE = 3; + for (var i = 0; i < el.childNodes.length; i++) { + childNode = el.childNodes[i]; + if (childNode.nodeType === TEXT_NODE_TYPE) { + i += hightlightTextNode(childNode) ? 1 : 0; + } else { + traverse(childNode, hightlightTextNode); + } + } + } + }; + function accent_replacer(chr) { + return accented[chr.toUpperCase()] || chr; + } + function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { + var escapedPatterns = [], regexStr; + for (var i = 0, len = patterns.length; i < len; i++) { + var escapedWord = _.escapeRegExChars(patterns[i]); + if (diacriticInsensitive) { + escapedWord = escapedWord.replace(/\S/g, accent_replacer); + } + escapedPatterns.push(escapedWord); + } + regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; + return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); + } + }(window.document); + var Input = function() { + "use strict"; + var specialKeyCodeMap; + specialKeyCodeMap = { + 9: "tab", + 27: "esc", + 37: "left", + 39: "right", + 13: "enter", + 38: "up", + 40: "down" + }; + function Input(o, www) { + var id; + o = o || {}; + if (!o.input) { + $.error("input is missing"); + } + www.mixin(this); + this.$hint = $(o.hint); + this.$input = $(o.input); + this.$menu = $(o.menu); + id = this.$input.attr("id") || _.guid(); + this.$menu.attr("id", id + "_listbox"); + this.$hint.attr({ + "aria-hidden": true + }); + this.$input.attr({ + "aria-owns": id + "_listbox", + role: "combobox", + "aria-autocomplete": "list", + "aria-expanded": false + }); + this.query = this.$input.val(); + this.queryWhenFocused = this.hasFocus() ? this.query : null; + this.$overflowHelper = buildOverflowHelper(this.$input); + this._checkLanguageDirection(); + if (this.$hint.length === 0) { + this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; + } + this.onSync("cursorchange", this._updateDescendent); + } + Input.normalizeQuery = function(str) { + return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); + }; + _.mixin(Input.prototype, EventEmitter, { + _onBlur: function onBlur() { + this.resetInputValue(); + this.trigger("blurred"); + }, + _onFocus: function onFocus() { + this.queryWhenFocused = this.query; + this.trigger("focused"); + }, + _onKeydown: function onKeydown($e) { + var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; + this._managePreventDefault(keyName, $e); + if (keyName && this._shouldTrigger(keyName, $e)) { + this.trigger(keyName + "Keyed", $e); + } + }, + _onInput: function onInput() { + this._setQuery(this.getInputValue()); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + _managePreventDefault: function managePreventDefault(keyName, $e) { + var preventDefault; + switch (keyName) { + case "up": + case "down": + preventDefault = !withModifier($e); + break; + + default: + preventDefault = false; + } + preventDefault && $e.preventDefault(); + }, + _shouldTrigger: function shouldTrigger(keyName, $e) { + var trigger; + switch (keyName) { + case "tab": + trigger = !withModifier($e); + break; + + default: + trigger = true; + } + return trigger; + }, + _checkLanguageDirection: function checkLanguageDirection() { + var dir = (this.$input.css("direction") || "ltr").toLowerCase(); + if (this.dir !== dir) { + this.dir = dir; + this.$hint.attr("dir", dir); + this.trigger("langDirChanged", dir); + } + }, + _setQuery: function setQuery(val, silent) { + var areEquivalent, hasDifferentWhitespace; + areEquivalent = areQueriesEquivalent(val, this.query); + hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; + this.query = val; + if (!silent && !areEquivalent) { + this.trigger("queryChanged", this.query); + } else if (!silent && hasDifferentWhitespace) { + this.trigger("whitespaceChanged", this.query); + } + }, + _updateDescendent: function updateDescendent(event, id) { + this.$input.attr("aria-activedescendant", id); + }, + bind: function() { + var that = this, onBlur, onFocus, onKeydown, onInput; + onBlur = _.bind(this._onBlur, this); + onFocus = _.bind(this._onFocus, this); + onKeydown = _.bind(this._onKeydown, this); + onInput = _.bind(this._onInput, this); + this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); + if (!_.isMsie() || _.isMsie() > 9) { + this.$input.on("input.tt", onInput); + } else { + this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { + if (specialKeyCodeMap[$e.which || $e.keyCode]) { + return; + } + _.defer(_.bind(that._onInput, that, $e)); + }); + } + return this; + }, + focus: function focus() { + this.$input.focus(); + }, + blur: function blur() { + this.$input.blur(); + }, + getLangDir: function getLangDir() { + return this.dir; + }, + getQuery: function getQuery() { + return this.query || ""; + }, + setQuery: function setQuery(val, silent) { + this.setInputValue(val); + this._setQuery(val, silent); + }, + hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { + return this.query !== this.queryWhenFocused; + }, + getInputValue: function getInputValue() { + return this.$input.val(); + }, + setInputValue: function setInputValue(value) { + this.$input.val(value); + this.clearHintIfInvalid(); + this._checkLanguageDirection(); + }, + resetInputValue: function resetInputValue() { + this.setInputValue(this.query); + }, + getHint: function getHint() { + return this.$hint.val(); + }, + setHint: function setHint(value) { + this.$hint.val(value); + }, + clearHint: function clearHint() { + this.setHint(""); + }, + clearHintIfInvalid: function clearHintIfInvalid() { + var val, hint, valIsPrefixOfHint, isValid; + val = this.getInputValue(); + hint = this.getHint(); + valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; + isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); + !isValid && this.clearHint(); + }, + hasFocus: function hasFocus() { + return this.$input.is(":focus"); + }, + hasOverflow: function hasOverflow() { + var constraint = this.$input.width() - 2; + this.$overflowHelper.text(this.getInputValue()); + return this.$overflowHelper.width() >= constraint; + }, + isCursorAtEnd: function() { + var valueLength, selectionStart, range; + valueLength = this.$input.val().length; + selectionStart = this.$input[0].selectionStart; + if (_.isNumber(selectionStart)) { + return selectionStart === valueLength; + } else if (document.selection) { + range = document.selection.createRange(); + range.moveStart("character", -valueLength); + return valueLength === range.text.length; + } + return true; + }, + destroy: function destroy() { + this.$hint.off(".tt"); + this.$input.off(".tt"); + this.$overflowHelper.remove(); + this.$hint = this.$input = this.$overflowHelper = $("
"); + }, + setAriaExpanded: function setAriaExpanded(value) { + this.$input.attr("aria-expanded", value); + } + }); + return Input; + function buildOverflowHelper($input) { + return $('').css({ + position: "absolute", + visibility: "hidden", + whiteSpace: "pre", + fontFamily: $input.css("font-family"), + fontSize: $input.css("font-size"), + fontStyle: $input.css("font-style"), + fontVariant: $input.css("font-variant"), + fontWeight: $input.css("font-weight"), + wordSpacing: $input.css("word-spacing"), + letterSpacing: $input.css("letter-spacing"), + textIndent: $input.css("text-indent"), + textRendering: $input.css("text-rendering"), + textTransform: $input.css("text-transform") + }).insertAfter($input); + } + function areQueriesEquivalent(a, b) { + return Input.normalizeQuery(a) === Input.normalizeQuery(b); + } + function withModifier($e) { + return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; + } + }(); + var Dataset = function() { + "use strict"; + var keys, nameGenerator; + keys = { + dataset: "tt-selectable-dataset", + val: "tt-selectable-display", + obj: "tt-selectable-object" + }; + nameGenerator = _.getIdGenerator(); + function Dataset(o, www) { + o = o || {}; + o.templates = o.templates || {}; + o.templates.notFound = o.templates.notFound || o.templates.empty; + if (!o.source) { + $.error("missing source"); + } + if (!o.node) { + $.error("missing node"); + } + if (o.name && !isValidName(o.name)) { + $.error("invalid dataset name: " + o.name); + } + www.mixin(this); + this.highlight = !!o.highlight; + this.name = _.toStr(o.name || nameGenerator()); + this.limit = o.limit || 5; + this.displayFn = getDisplayFn(o.display || o.displayKey); + this.templates = getTemplates(o.templates, this.displayFn); + this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; + this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; + this._resetLastSuggestion(); + this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); + } + Dataset.extractData = function extractData(el) { + var $el = $(el); + if ($el.data(keys.obj)) { + return { + dataset: $el.data(keys.dataset) || "", + val: $el.data(keys.val) || "", + obj: $el.data(keys.obj) || null + }; + } + return null; + }; + _.mixin(Dataset.prototype, EventEmitter, { + _overwrite: function overwrite(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (this.async && this.templates.pending) { + this._renderPending(query); + } else if (!this.async && this.templates.notFound) { + this._renderNotFound(query); + } else { + this._empty(); + } + this.trigger("rendered", suggestions, false, this.name); + }, + _append: function append(query, suggestions) { + suggestions = suggestions || []; + if (suggestions.length && this.$lastSuggestion.length) { + this._appendSuggestions(query, suggestions); + } else if (suggestions.length) { + this._renderSuggestions(query, suggestions); + } else if (!this.$lastSuggestion.length && this.templates.notFound) { + this._renderNotFound(query); + } + this.trigger("rendered", suggestions, true, this.name); + }, + _renderSuggestions: function renderSuggestions(query, suggestions) { + var $fragment; + $fragment = this._getSuggestionsFragment(query, suggestions); + this.$lastSuggestion = $fragment.children().last(); + this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); + }, + _appendSuggestions: function appendSuggestions(query, suggestions) { + var $fragment, $lastSuggestion; + $fragment = this._getSuggestionsFragment(query, suggestions); + $lastSuggestion = $fragment.children().last(); + this.$lastSuggestion.after($fragment); + this.$lastSuggestion = $lastSuggestion; + }, + _renderPending: function renderPending(query) { + var template = this.templates.pending; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _renderNotFound: function renderNotFound(query) { + var template = this.templates.notFound; + this._resetLastSuggestion(); + template && this.$el.html(template({ + query: query, + dataset: this.name + })); + }, + _empty: function empty() { + this.$el.empty(); + this._resetLastSuggestion(); + }, + _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { + var that = this, fragment; + fragment = document.createDocumentFragment(); + _.each(suggestions, function getSuggestionNode(suggestion) { + var $el, context; + context = that._injectQuery(query, suggestion); + $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); + fragment.appendChild($el[0]); + }); + this.highlight && highlight({ + className: this.classes.highlight, + node: fragment, + pattern: query + }); + return $(fragment); + }, + _getFooter: function getFooter(query, suggestions) { + return this.templates.footer ? this.templates.footer({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _getHeader: function getHeader(query, suggestions) { + return this.templates.header ? this.templates.header({ + query: query, + suggestions: suggestions, + dataset: this.name + }) : null; + }, + _resetLastSuggestion: function resetLastSuggestion() { + this.$lastSuggestion = $(); + }, + _injectQuery: function injectQuery(query, obj) { + return _.isObject(obj) ? _.mixin({ + _query: query + }, obj) : obj; + }, + update: function update(query) { + var that = this, canceled = false, syncCalled = false, rendered = 0; + this.cancel(); + this.cancel = function cancel() { + canceled = true; + that.cancel = $.noop; + that.async && that.trigger("asyncCanceled", query, that.name); + }; + this.source(query, sync, async); + !syncCalled && sync([]); + function sync(suggestions) { + if (syncCalled) { + return; + } + syncCalled = true; + suggestions = (suggestions || []).slice(0, that.limit); + rendered = suggestions.length; + that._overwrite(query, suggestions); + if (rendered < that.limit && that.async) { + that.trigger("asyncRequested", query, that.name); + } + } + function async(suggestions) { + suggestions = suggestions || []; + if (!canceled && rendered < that.limit) { + that.cancel = $.noop; + var idx = Math.abs(rendered - that.limit); + rendered += idx; + that._append(query, suggestions.slice(0, idx)); + that.async && that.trigger("asyncReceived", query, that.name); + } + } + }, + cancel: $.noop, + clear: function clear() { + this._empty(); + this.cancel(); + this.trigger("cleared"); + }, + isEmpty: function isEmpty() { + return this.$el.is(":empty"); + }, + destroy: function destroy() { + this.$el = $("
"); + } + }); + return Dataset; + function getDisplayFn(display) { + display = display || _.stringify; + return _.isFunction(display) ? display : displayFn; + function displayFn(obj) { + return obj[display]; + } + } + function getTemplates(templates, displayFn) { + return { + notFound: templates.notFound && _.templatify(templates.notFound), + pending: templates.pending && _.templatify(templates.pending), + header: templates.header && _.templatify(templates.header), + footer: templates.footer && _.templatify(templates.footer), + suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate + }; + function userSuggestionTemplate(context) { + var template = templates.suggestion; + return $(template(context)).attr("id", _.guid()); + } + function suggestionTemplate(context) { + return $('
').attr("id", _.guid()).text(displayFn(context)); + } + } + function isValidName(str) { + return /^[_a-zA-Z0-9-]+$/.test(str); + } + }(); + var Menu = function() { + "use strict"; + function Menu(o, www) { + var that = this; + o = o || {}; + if (!o.node) { + $.error("node is required"); + } + www.mixin(this); + this.$node = $(o.node); + this.query = null; + this.datasets = _.map(o.datasets, initializeDataset); + function initializeDataset(oDataset) { + var node = that.$node.find(oDataset.node).first(); + oDataset.node = node.length ? node : $("
").appendTo(that.$node); + return new Dataset(oDataset, www); + } + } + _.mixin(Menu.prototype, EventEmitter, { + _onSelectableClick: function onSelectableClick($e) { + this.trigger("selectableClicked", $($e.currentTarget)); + }, + _onRendered: function onRendered(type, dataset, suggestions, async) { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetRendered", dataset, suggestions, async); + }, + _onCleared: function onCleared() { + this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); + this.trigger("datasetCleared"); + }, + _propagate: function propagate() { + this.trigger.apply(this, arguments); + }, + _allDatasetsEmpty: function allDatasetsEmpty() { + return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { + var isEmpty = dataset.isEmpty(); + this.$node.attr("aria-expanded", !isEmpty); + return isEmpty; + }, this)); + }, + _getSelectables: function getSelectables() { + return this.$node.find(this.selectors.selectable); + }, + _removeCursor: function _removeCursor() { + var $selectable = this.getActiveSelectable(); + $selectable && $selectable.removeClass(this.classes.cursor); + }, + _ensureVisible: function ensureVisible($el) { + var elTop, elBottom, nodeScrollTop, nodeHeight; + elTop = $el.position().top; + elBottom = elTop + $el.outerHeight(true); + nodeScrollTop = this.$node.scrollTop(); + nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); + if (elTop < 0) { + this.$node.scrollTop(nodeScrollTop + elTop); + } else if (nodeHeight < elBottom) { + this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); + } + }, + bind: function() { + var that = this, onSelectableClick; + onSelectableClick = _.bind(this._onSelectableClick, this); + this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); + this.$node.on("mouseover", this.selectors.selectable, function() { + that.setCursor($(this)); + }); + this.$node.on("mouseleave", function() { + that._removeCursor(); + }); + _.each(this.datasets, function(dataset) { + dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); + }); + return this; + }, + isOpen: function isOpen() { + return this.$node.hasClass(this.classes.open); + }, + open: function open() { + this.$node.scrollTop(0); + this.$node.addClass(this.classes.open); + }, + close: function close() { + this.$node.attr("aria-expanded", false); + this.$node.removeClass(this.classes.open); + this._removeCursor(); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.attr("dir", dir); + }, + selectableRelativeToCursor: function selectableRelativeToCursor(delta) { + var $selectables, $oldCursor, oldIndex, newIndex; + $oldCursor = this.getActiveSelectable(); + $selectables = this._getSelectables(); + oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; + newIndex = oldIndex + delta; + newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; + newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; + return newIndex === -1 ? null : $selectables.eq(newIndex); + }, + setCursor: function setCursor($selectable) { + this._removeCursor(); + if ($selectable = $selectable && $selectable.first()) { + $selectable.addClass(this.classes.cursor); + this._ensureVisible($selectable); + } + }, + getSelectableData: function getSelectableData($el) { + return $el && $el.length ? Dataset.extractData($el) : null; + }, + getActiveSelectable: function getActiveSelectable() { + var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); + return $selectable.length ? $selectable : null; + }, + getTopSelectable: function getTopSelectable() { + var $selectable = this._getSelectables().first(); + return $selectable.length ? $selectable : null; + }, + update: function update(query) { + var isValidUpdate = query !== this.query; + if (isValidUpdate) { + this.query = query; + _.each(this.datasets, updateDataset); + } + return isValidUpdate; + function updateDataset(dataset) { + dataset.update(query); + } + }, + empty: function empty() { + _.each(this.datasets, clearDataset); + this.query = null; + this.$node.addClass(this.classes.empty); + function clearDataset(dataset) { + dataset.clear(); + } + }, + destroy: function destroy() { + this.$node.off(".tt"); + this.$node = $("
"); + _.each(this.datasets, destroyDataset); + function destroyDataset(dataset) { + dataset.destroy(); + } + } + }); + return Menu; + }(); + var Status = function() { + "use strict"; + function Status(options) { + this.$el = $("", { + role: "status", + "aria-live": "polite" + }).css({ + position: "absolute", + padding: "0", + border: "0", + height: "1px", + width: "1px", + "margin-bottom": "-1px", + "margin-right": "-1px", + overflow: "hidden", + clip: "rect(0 0 0 0)", + "white-space": "nowrap" + }); + options.$input.after(this.$el); + _.each(options.menu.datasets, _.bind(function(dataset) { + if (dataset.onSync) { + dataset.onSync("rendered", _.bind(this.update, this)); + dataset.onSync("cleared", _.bind(this.cleared, this)); + } + }, this)); + } + _.mixin(Status.prototype, { + update: function update(event, suggestions) { + var length = suggestions.length; + var words; + if (length === 1) { + words = { + result: "result", + is: "is" + }; + } else { + words = { + result: "results", + is: "are" + }; + } + this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); + }, + cleared: function() { + this.$el.text(""); + } + }); + return Status; + }(); + var DefaultMenu = function() { + "use strict"; + var s = Menu.prototype; + function DefaultMenu() { + Menu.apply(this, [].slice.call(arguments, 0)); + } + _.mixin(DefaultMenu.prototype, Menu.prototype, { + open: function open() { + !this._allDatasetsEmpty() && this._show(); + return s.open.apply(this, [].slice.call(arguments, 0)); + }, + close: function close() { + this._hide(); + return s.close.apply(this, [].slice.call(arguments, 0)); + }, + _onRendered: function onRendered() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onRendered.apply(this, [].slice.call(arguments, 0)); + }, + _onCleared: function onCleared() { + if (this._allDatasetsEmpty()) { + this._hide(); + } else { + this.isOpen() && this._show(); + } + return s._onCleared.apply(this, [].slice.call(arguments, 0)); + }, + setLanguageDirection: function setLanguageDirection(dir) { + this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); + return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); + }, + _hide: function hide() { + this.$node.hide(); + }, + _show: function show() { + this.$node.css("display", "block"); + } + }); + return DefaultMenu; + }(); + var Typeahead = function() { + "use strict"; + function Typeahead(o, www) { + var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; + o = o || {}; + if (!o.input) { + $.error("missing input"); + } + if (!o.menu) { + $.error("missing menu"); + } + if (!o.eventBus) { + $.error("missing event bus"); + } + www.mixin(this); + this.eventBus = o.eventBus; + this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; + this.input = o.input; + this.menu = o.menu; + this.enabled = true; + this.autoselect = !!o.autoselect; + this.active = false; + this.input.hasFocus() && this.activate(); + this.dir = this.input.getLangDir(); + this._hacks(); + this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); + onFocused = c(this, "activate", "open", "_onFocused"); + onBlurred = c(this, "deactivate", "_onBlurred"); + onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); + onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); + onEscKeyed = c(this, "isActive", "_onEscKeyed"); + onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); + onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); + onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); + onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); + onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); + onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); + this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); + } + _.mixin(Typeahead.prototype, { + _hacks: function hacks() { + var $input, $menu; + $input = this.input.$input || $("
"); + $menu = this.menu.$node || $("
"); + $input.on("blur.tt", function($e) { + var active, isActive, hasActive; + active = document.activeElement; + isActive = $menu.is(active); + hasActive = $menu.has(active).length > 0; + if (_.isMsie() && (isActive || hasActive)) { + $e.preventDefault(); + $e.stopImmediatePropagation(); + _.defer(function() { + $input.focus(); + }); + } + }); + $menu.on("mousedown.tt", function($e) { + $e.preventDefault(); + }); + }, + _onSelectableClicked: function onSelectableClicked(type, $el) { + this.select($el); + }, + _onDatasetCleared: function onDatasetCleared() { + this._updateHint(); + }, + _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { + this._updateHint(); + if (this.autoselect) { + var cursorClass = this.selectors.cursor.substr(1); + this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); + } + this.eventBus.trigger("render", suggestions, async, dataset); + }, + _onAsyncRequested: function onAsyncRequested(type, dataset, query) { + this.eventBus.trigger("asyncrequest", query, dataset); + }, + _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { + this.eventBus.trigger("asynccancel", query, dataset); + }, + _onAsyncReceived: function onAsyncReceived(type, dataset, query) { + this.eventBus.trigger("asyncreceive", query, dataset); + }, + _onFocused: function onFocused() { + this._minLengthMet() && this.menu.update(this.input.getQuery()); + }, + _onBlurred: function onBlurred() { + if (this.input.hasQueryChangedSinceLastFocus()) { + this.eventBus.trigger("change", this.input.getQuery()); + } + }, + _onEnterKeyed: function onEnterKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + if (this.select($selectable)) { + $e.preventDefault(); + $e.stopPropagation(); + } + } else if (this.autoselect) { + if (this.select(this.menu.getTopSelectable())) { + $e.preventDefault(); + $e.stopPropagation(); + } + } + }, + _onTabKeyed: function onTabKeyed(type, $e) { + var $selectable; + if ($selectable = this.menu.getActiveSelectable()) { + this.select($selectable) && $e.preventDefault(); + } else if (this.autoselect) { + if ($selectable = this.menu.getTopSelectable()) { + this.autocomplete($selectable) && $e.preventDefault(); + } + } + }, + _onEscKeyed: function onEscKeyed() { + this.close(); + }, + _onUpKeyed: function onUpKeyed() { + this.moveCursor(-1); + }, + _onDownKeyed: function onDownKeyed() { + this.moveCursor(+1); + }, + _onLeftKeyed: function onLeftKeyed() { + if (this.dir === "rtl" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onRightKeyed: function onRightKeyed() { + if (this.dir === "ltr" && this.input.isCursorAtEnd()) { + this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); + } + }, + _onQueryChanged: function onQueryChanged(e, query) { + this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); + }, + _onWhitespaceChanged: function onWhitespaceChanged() { + this._updateHint(); + }, + _onLangDirChanged: function onLangDirChanged(e, dir) { + if (this.dir !== dir) { + this.dir = dir; + this.menu.setLanguageDirection(dir); + } + }, + _openIfActive: function openIfActive() { + this.isActive() && this.open(); + }, + _minLengthMet: function minLengthMet(query) { + query = _.isString(query) ? query : this.input.getQuery() || ""; + return query.length >= this.minLength; + }, + _updateHint: function updateHint() { + var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; + $selectable = this.menu.getTopSelectable(); + data = this.menu.getSelectableData($selectable); + val = this.input.getInputValue(); + if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { + query = Input.normalizeQuery(val); + escapedQuery = _.escapeRegExChars(query); + frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); + match = frontMatchRegEx.exec(data.val); + match && this.input.setHint(val + match[1]); + } else { + this.input.clearHint(); + } + }, + isEnabled: function isEnabled() { + return this.enabled; + }, + enable: function enable() { + this.enabled = true; + }, + disable: function disable() { + this.enabled = false; + }, + isActive: function isActive() { + return this.active; + }, + activate: function activate() { + if (this.isActive()) { + return true; + } else if (!this.isEnabled() || this.eventBus.before("active")) { + return false; + } else { + this.active = true; + this.eventBus.trigger("active"); + return true; + } + }, + deactivate: function deactivate() { + if (!this.isActive()) { + return true; + } else if (this.eventBus.before("idle")) { + return false; + } else { + this.active = false; + this.close(); + this.eventBus.trigger("idle"); + return true; + } + }, + isOpen: function isOpen() { + return this.menu.isOpen(); + }, + open: function open() { + if (!this.isOpen() && !this.eventBus.before("open")) { + this.input.setAriaExpanded(true); + this.menu.open(); + this._updateHint(); + this.eventBus.trigger("open"); + } + return this.isOpen(); + }, + close: function close() { + if (this.isOpen() && !this.eventBus.before("close")) { + this.input.setAriaExpanded(false); + this.menu.close(); + this.input.clearHint(); + this.input.resetInputValue(); + this.eventBus.trigger("close"); + } + return !this.isOpen(); + }, + setVal: function setVal(val) { + this.input.setQuery(_.toStr(val)); + }, + getVal: function getVal() { + return this.input.getQuery(); + }, + select: function select($selectable) { + var data = this.menu.getSelectableData($selectable); + if (data && !this.eventBus.before("select", data.obj, data.dataset)) { + this.input.setQuery(data.val, true); + this.eventBus.trigger("select", data.obj, data.dataset); + this.close(); + return true; + } + return false; + }, + autocomplete: function autocomplete($selectable) { + var query, data, isValid; + query = this.input.getQuery(); + data = this.menu.getSelectableData($selectable); + isValid = data && query !== data.val; + if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { + this.input.setQuery(data.val); + this.eventBus.trigger("autocomplete", data.obj, data.dataset); + return true; + } + return false; + }, + moveCursor: function moveCursor(delta) { + var query, $candidate, data, suggestion, datasetName, cancelMove, id; + query = this.input.getQuery(); + $candidate = this.menu.selectableRelativeToCursor(delta); + data = this.menu.getSelectableData($candidate); + suggestion = data ? data.obj : null; + datasetName = data ? data.dataset : null; + id = $candidate ? $candidate.attr("id") : null; + this.input.trigger("cursorchange", id); + cancelMove = this._minLengthMet() && this.menu.update(query); + if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { + this.menu.setCursor($candidate); + if (data) { + if (typeof data.val === "string") { + this.input.setInputValue(data.val); + } + } else { + this.input.resetInputValue(); + this._updateHint(); + } + this.eventBus.trigger("cursorchange", suggestion, datasetName); + return true; + } + return false; + }, + destroy: function destroy() { + this.input.destroy(); + this.menu.destroy(); + } + }); + return Typeahead; + function c(ctx) { + var methods = [].slice.call(arguments, 1); + return function() { + var args = [].slice.call(arguments); + _.each(methods, function(method) { + return ctx[method].apply(ctx, args); + }); + }; + } + }(); + (function() { + "use strict"; + var old, keys, methods; + old = $.fn.typeahead; + keys = { + www: "tt-www", + attrs: "tt-attrs", + typeahead: "tt-typeahead" + }; + methods = { + initialize: function initialize(o, datasets) { + var www; + datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); + o = o || {}; + www = WWW(o.classNames); + return this.each(attach); + function attach() { + var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; + _.each(datasets, function(d) { + d.highlight = !!o.highlight; + }); + $input = $(this); + $wrapper = $(www.html.wrapper); + $hint = $elOrNull(o.hint); + $menu = $elOrNull(o.menu); + defaultHint = o.hint !== false && !$hint; + defaultMenu = o.menu !== false && !$menu; + defaultHint && ($hint = buildHintFromInput($input, www)); + defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); + $hint && $hint.val(""); + $input = prepInput($input, www); + if (defaultHint || defaultMenu) { + $wrapper.css(www.css.wrapper); + $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); + $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); + } + MenuConstructor = defaultMenu ? DefaultMenu : Menu; + eventBus = new EventBus({ + el: $input + }); + input = new Input({ + hint: $hint, + input: $input, + menu: $menu + }, www); + menu = new MenuConstructor({ + node: $menu, + datasets: datasets + }, www); + status = new Status({ + $input: $input, + menu: menu + }); + typeahead = new Typeahead({ + input: input, + menu: menu, + eventBus: eventBus, + minLength: o.minLength, + autoselect: o.autoselect + }, www); + $input.data(keys.www, www); + $input.data(keys.typeahead, typeahead); + } + }, + isEnabled: function isEnabled() { + var enabled; + ttEach(this.first(), function(t) { + enabled = t.isEnabled(); + }); + return enabled; + }, + enable: function enable() { + ttEach(this, function(t) { + t.enable(); + }); + return this; + }, + disable: function disable() { + ttEach(this, function(t) { + t.disable(); + }); + return this; + }, + isActive: function isActive() { + var active; + ttEach(this.first(), function(t) { + active = t.isActive(); + }); + return active; + }, + activate: function activate() { + ttEach(this, function(t) { + t.activate(); + }); + return this; + }, + deactivate: function deactivate() { + ttEach(this, function(t) { + t.deactivate(); + }); + return this; + }, + isOpen: function isOpen() { + var open; + ttEach(this.first(), function(t) { + open = t.isOpen(); + }); + return open; + }, + open: function open() { + ttEach(this, function(t) { + t.open(); + }); + return this; + }, + close: function close() { + ttEach(this, function(t) { + t.close(); + }); + return this; + }, + select: function select(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.select($el); + }); + return success; + }, + autocomplete: function autocomplete(el) { + var success = false, $el = $(el); + ttEach(this.first(), function(t) { + success = t.autocomplete($el); + }); + return success; + }, + moveCursor: function moveCursoe(delta) { + var success = false; + ttEach(this.first(), function(t) { + success = t.moveCursor(delta); + }); + return success; + }, + val: function val(newVal) { + var query; + if (!arguments.length) { + ttEach(this.first(), function(t) { + query = t.getVal(); + }); + return query; + } else { + ttEach(this, function(t) { + t.setVal(_.toStr(newVal)); + }); + return this; + } + }, + destroy: function destroy() { + ttEach(this, function(typeahead, $input) { + revert($input); + typeahead.destroy(); + }); + return this; + } + }; + $.fn.typeahead = function(method) { + if (methods[method]) { + return methods[method].apply(this, [].slice.call(arguments, 1)); + } else { + return methods.initialize.apply(this, arguments); + } + }; + $.fn.typeahead.noConflict = function noConflict() { + $.fn.typeahead = old; + return this; + }; + function ttEach($els, fn) { + $els.each(function() { + var $input = $(this), typeahead; + (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); + }); + } + function buildHintFromInput($input, www) { + return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ + readonly: true, + required: false + }).removeAttr("id name placeholder").removeClass("required").attr({ + spellcheck: "false", + tabindex: -1 + }); + } + function prepInput($input, www) { + $input.data(keys.attrs, { + dir: $input.attr("dir"), + autocomplete: $input.attr("autocomplete"), + spellcheck: $input.attr("spellcheck"), + style: $input.attr("style") + }); + $input.addClass(www.classes.input).attr({ + spellcheck: false + }); + try { + !$input.attr("dir") && $input.attr("dir", "auto"); + } catch (e) {} + return $input; + } + function getBackgroundStyles($el) { + return { + backgroundAttachment: $el.css("background-attachment"), + backgroundClip: $el.css("background-clip"), + backgroundColor: $el.css("background-color"), + backgroundImage: $el.css("background-image"), + backgroundOrigin: $el.css("background-origin"), + backgroundPosition: $el.css("background-position"), + backgroundRepeat: $el.css("background-repeat"), + backgroundSize: $el.css("background-size") + }; + } + function revert($input) { + var www, $wrapper; + www = $input.data(keys.www); + $wrapper = $input.parent().filter(www.selectors.wrapper); + _.each($input.data(keys.attrs), function(val, key) { + _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); + }); + $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); + if ($wrapper.length) { + $input.detach().insertAfter($wrapper); + $wrapper.remove(); + } + } + function $elOrNull(obj) { + var isValid, $el; + isValid = _.isJQuery(obj) || _.isElement(obj); + $el = isValid ? $(obj).first() : []; + return $el.length ? $el : null; + } + })(); +}); \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/search.json b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/search.json new file mode 100644 index 00000000..6645bc58 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/search.json @@ -0,0 +1 @@ +{"Protocols/TestableElement.html#/s:25SCSDKCameraKitReferenceUI15TestableElementP2idSSvp":{"name":"id","abstract":"

identifier for the testable element

","parent_name":"TestableElement"},"Protocols/SnapchatDelegate.html#/s:25SCSDKCameraKitReferenceUI16SnapchatDelegateP06cameraB14ViewController_04openE0ySo06UIViewI0C_AA0E6ScreenOtF":{"name":"cameraKitViewController(_:openSnapchat:)","abstract":"

CameraKit view controller requests opening Snapchat with specific info

","parent_name":"SnapchatDelegate"},"Protocols/MediaPickerViewDelegate.html#/s:25SCSDKCameraKitReferenceUI23MediaPickerViewDelegateP05mediafG0_13selectedAssetyAA0efG0C_So08SCCamerab4LensefK0_ptF":{"name":"mediaPickerView(_:selectedAsset:)","abstract":"

User selected asset in MediaPickerView

","parent_name":"MediaPickerViewDelegate"},"Protocols/CarouselViewDataSource.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","abstract":"

Returns a list of items to show in the carousel view.

","parent_name":"CarouselViewDataSource"},"Protocols/CarouselViewDelegate.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","abstract":"

Notifies the delegate that a given carousel’s specific index was selected.

","parent_name":"CarouselViewDelegate"},"Protocols/CarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI19CarouselImageLoaderP04loadF03url10completiony10Foundation3URLV_ySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:completion:)","abstract":"

Load image from url

","parent_name":"CarouselImageLoader"},"Protocols/CarouselCollectionViewLayoutDataSource.html#/s:25SCSDKCameraKitReferenceUI38CarouselCollectionViewLayoutDataSourceP08carouselH0_18transformForItemAtSo17CGAffineTransformVAA0efgH0C_10Foundation9IndexPathVtF":{"name":"carouselLayout(_:transformForItemAt:)","abstract":"

Method to provide any sort of transform that should be applied to the carousel cell

","parent_name":"CarouselCollectionViewLayoutDataSource"},"Protocols/CarouselCollectionViewLayoutDelegate.html#/s:25SCSDKCameraKitReferenceUI36CarouselCollectionViewLayoutDelegateP08carouselH0_15willTargetIndexyAA0efgH0C_SitF":{"name":"carouselLayout(_:willTargetIndex:)","abstract":"

This method is called when user stops scrolling and layout will target the correct lens to land at

","parent_name":"CarouselCollectionViewLayoutDelegate"},"Protocols/RingLightColorSelectionViewDelegate.html#/s:25SCSDKCameraKitReferenceUI35RingLightColorSelectionViewDelegateP04ringfghI0_08selectedG0yAA0efghI0C_So7UIColorCtF":{"name":"ringLightColorSelectionView(_:selectedColor:)","abstract":"

Notifies the delegate that a color was selected.

","parent_name":"RingLightColorSelectionViewDelegate"},"Protocols/FlashModeSelectionViewDelegate.html#/s:25SCSDKCameraKitReferenceUI30FlashModeSelectionViewDelegateP05flashfgH0_07updatedF0yAA0efgH0C_AA16CameraControllerC0eF0OtF":{"name":"flashModeSelectionView(_:updatedMode:)","abstract":"

Notifies the delegate that there is an update to the selected flash mode.

","parent_name":"FlashModeSelectionViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_22selectedRingLightColoryAA0efG0C_So7UIColorCtF":{"name":"flashControlView(_:selectedRingLightColor:)","abstract":"

Notifies the delegate that a ring light color was selected.

","parent_name":"FlashControlViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_21updatedRingLightValueyAA0efG0C_SftF":{"name":"flashControlView(_:updatedRingLightValue:)","abstract":"

Notifies the delegate that the control’s ring light intensity slider has an updated value.

","parent_name":"FlashControlViewDelegate"},"Protocols/FlashControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_07updatedE4ModeyAA0efG0C_AA16CameraControllerC0eK0OtF":{"name":"flashControlView(_:updatedFlashMode:)","abstract":"

Notifies the delegate that there is an update to the selected flash mode.

","parent_name":"FlashControlViewDelegate"},"Protocols/AppOrientationDelegate.html#/s:25SCSDKCameraKitReferenceUI22AppOrientationDelegateP04lockF0yySo011UIInterfaceF4MaskVF":{"name":"lockOrientation(_:)","abstract":"

Lock app orientation

","parent_name":"AppOrientationDelegate"},"Protocols/AppOrientationDelegate.html#/s:25SCSDKCameraKitReferenceUI22AppOrientationDelegateP06unlockF0yyF":{"name":"unlockOrientation()","abstract":"

Unlock orientation

","parent_name":"AppOrientationDelegate"},"Protocols/ControlSliderDelegate.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","abstract":"

Notifies the delegate that the slider’s value has changed.

","parent_name":"ControlSliderDelegate"},"Protocols/AdjustmentControlViewDelegate.html#/s:25SCSDKCameraKitReferenceUI29AdjustmentControlViewDelegateP010adjustmentfG0_18sliderValueChangedyAA0efG0C_SdtF":{"name":"adjustmentControlView(_:sliderValueChanged:)","abstract":"

Notifies the delegate that the control’s intensity slider’s value has changed.

","parent_name":"AdjustmentControlViewDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","abstract":"

Called when user taps camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","abstract":"

Called when user starts holding down camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","abstract":"

Called when user released their hold before the minimum threshold has been reached

","parent_name":"CameraButtonDelegate"},"Protocols/CameraButtonDelegate.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","abstract":"

Called when user stops holding down camera button

","parent_name":"CameraButtonDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","abstract":"

Notifies the delegate that the camera controller has resolved a new list of available lenses

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","abstract":"

Notifies the delegate that the camera controller is currently in a loading state, and an activity indicator should be displayed.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","abstract":"

Notifies the delegate that the camera controller is no longer in a loading state, and an activity indicator should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","abstract":"

Notifies the delegate that the flash state is on in ring light mode and that the ring light effect should be shown.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","abstract":"

Notifies the delegate that the flash state is no longer in ring light mode and that the ring light effect should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","abstract":"

Notifies the delegate that the flash state has changed such that the flash control should be hidden.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","abstract":"

Notifies the delegate that the snap attribution should be shown. For example, after the agreements have been accepted.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","abstract":"

Notifies the delegate that the snap attribution should be hidden. For example, when a video is being recorded.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","abstract":"

Notifies the delegate that the camera position should be flipped.

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","abstract":"

Notifies the delegate that a lens has requested that a hint should be displayed

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","abstract":"

Notifies the delegate that any hints requested by the specified lens should be hidden

","parent_name":"CameraControllerUIDelegate"},"Protocols/CameraControllerUIDelegate.html":{"name":"CameraControllerUIDelegate","abstract":"

Undocumented

"},"Protocols/CameraButtonDelegate.html":{"name":"CameraButtonDelegate","abstract":"

Delegate to receive updates for camera button view

"},"Protocols/AdjustmentControlViewDelegate.html":{"name":"AdjustmentControlViewDelegate","abstract":"

Undocumented

"},"Protocols/ControlSliderDelegate.html":{"name":"ControlSliderDelegate","abstract":"

Undocumented

"},"Protocols/AppOrientationDelegate.html":{"name":"AppOrientationDelegate","abstract":"

Describes an interface to control app orientation

"},"Protocols/FlashControlViewDelegate.html":{"name":"FlashControlViewDelegate","abstract":"

Undocumented

"},"Protocols/FlashModeSelectionViewDelegate.html":{"name":"FlashModeSelectionViewDelegate","abstract":"

Undocumented

"},"Protocols/RingLightColorSelectionViewDelegate.html":{"name":"RingLightColorSelectionViewDelegate","abstract":"

Undocumented

"},"Protocols/CarouselCollectionViewLayoutDelegate.html":{"name":"CarouselCollectionViewLayoutDelegate","abstract":"

Delegate for custom carousel collection view layout

"},"Protocols/CarouselCollectionViewLayoutDataSource.html":{"name":"CarouselCollectionViewLayoutDataSource","abstract":"

Data source for custom carousel collection view layout

"},"Protocols/CarouselImageLoader.html":{"name":"CarouselImageLoader","abstract":"

Protocol used to load an image from url

"},"Protocols/CarouselViewDelegate.html":{"name":"CarouselViewDelegate","abstract":"

A set of functions implemented by the delegate to be notified when the carousel responds to user interactions.

"},"Protocols/CarouselViewDataSource.html":{"name":"CarouselViewDataSource","abstract":"

A set of functions that an object adopts to manage data and provide items for a carousel view.

"},"Protocols/MediaPickerViewDelegate.html":{"name":"MediaPickerViewDelegate","abstract":"

Describes an interface to be notified of MediaPickerView events

"},"Protocols/SnapchatDelegate.html":{"name":"SnapchatDelegate","abstract":"

CameraKit view controllers will notify this delegate when it needs to open, send info, or interact with Snapchat

"},"Protocols/TestableElement.html":{"name":"TestableElement","abstract":"

Describes an element that can be UI tested

"},"Functions.html#/s:25SCSDKCameraKitReferenceUI06CameraB15LocalizedString3key6bundle18preferredLanguages7comment5tableS2S_So8NSBundleCSgSaySSGSSSgALtF":{"name":"CameraKitLocalizedString(key:bundle:preferredLanguages:comment:table:)","abstract":"

Looks up a localized string for CameraKit’s reference UI.

"},"Extensions/NSString.html#/c:@CM@SCSDKCameraKitReferenceUI@@objc(cs)NSString(cm)cameraKit_localizedWithKey:bundle:preferredLanguages:comment:table:":{"name":"cameraKit_localized(key:bundle:preferredLanguages:comment:table:)","abstract":"

Undocumented

","parent_name":"NSString"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE17sc_ultraLightFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_ultraLightFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE14sc_regularFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_regularFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE13sc_mediumFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_mediumFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE15sc_demiBoldFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_demiBoldFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE11sc_boldFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_boldFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC25SCSDKCameraKitReferenceUIE12sc_heavyFont4sizeABSg14CoreFoundation7CGFloatV_tFZ":{"name":"sc_heavyFont(size:)","abstract":"

Undocumented

","parent_name":"UIFont"},"Extensions/UIColor.html#/s:So7UIColorC25SCSDKCameraKitReferenceUIE3hex5alphaABSu_14CoreFoundation7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Undocumented

","parent_name":"UIColor"},"Extensions/UIImage.html#/s:So7UIImageC25SCSDKCameraKitReferenceUIE22circleHighlightedImage6radius5colorABSg14CoreFoundation7CGFloatV_So7UIColorCtF":{"name":"circleHighlightedImage(radius:color:)","abstract":"

Produces a version of the image that is subtracted from a circle with the given radius and color.

","parent_name":"UIImage"},"Extensions/UILabel.html#/s:So7UILabelC25SCSDKCameraKitReferenceUIE20controlDismissalHintAByFZ":{"name":"controlDismissalHint()","abstract":"

Produces a dismissal hint label for the control.

","parent_name":"UILabel"},"Extensions/UIButton.html#/s:So8UIButtonC25SCSDKCameraKitReferenceUIE29applyCameraActionButtonShadowyyF":{"name":"applyCameraActionButtonShadow()","abstract":"

Applies a shadow designed for camera action buttons.

","parent_name":"UIButton"},"Extensions/UIButton.html":{"name":"UIButton","abstract":"

Helper to apply shadows to buttons.

"},"Extensions/UILabel.html":{"name":"UILabel","abstract":"

Helper to produce a dismissal hint for various camera action controls.

"},"Extensions/UIImage.html":{"name":"UIImage","abstract":"

Helper to produce highlighted versions of some camera action button images.

"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIFont.html":{"name":"UIFont","abstract":"

Provides access to Snapchat typography in all supported weights.

"},"Extensions/NSString.html":{"name":"NSString","abstract":"

Objective-C interface for CameraKitLocalizedString

"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO10noOpButtonyA2CmF":{"name":"noOpButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO11arkitButtonyA2CmF":{"name":"arkitButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO16agreementsButtonyA2CmF":{"name":"agreementsButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO14tapToFocusViewyA2CmF":{"name":"tapToFocusView","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO13pairingButtonyA2CmF":{"name":"pairingButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/OtherElements.html#/s:25SCSDKCameraKitReferenceUI13OtherElementsO24connectedLensStartButtonyA2CmF":{"name":"connectedLensStartButton","abstract":"

Undocumented

","parent_name":"OtherElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO17flashModeSelectoryA2CmF":{"name":"flashModeSelector","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO22ringLightColorSelectoryA2CmF":{"name":"ringLightColorSelector","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/FlashControlElements.html#/s:25SCSDKCameraKitReferenceUI20FlashControlElementsO24ringLightIntensitySlideryA2CmF":{"name":"ringLightIntensitySlider","abstract":"

Undocumented

","parent_name":"FlashControlElements"},"Enums/MessageNotificationElements.html#/s:25SCSDKCameraKitReferenceUI27MessageNotificationElementsO5labelyA2CmF":{"name":"label","abstract":"

Undocumented

","parent_name":"MessageNotificationElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO11closeButtonyA2CmF":{"name":"closeButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO14snapchatButtonyA2CmF":{"name":"snapchatButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO11shareButtonyA2CmF":{"name":"shareButton","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO9imageViewyA2CmF":{"name":"imageView","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/PreviewElements.html#/s:25SCSDKCameraKitReferenceUI15PreviewElementsO20playerControllerViewyA2CmF":{"name":"playerControllerView","abstract":"

Undocumented

","parent_name":"PreviewElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO14collectionViewyA2CmF":{"name":"collectionView","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO8lensCellyA2CmF":{"name":"lensCell","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CarouselElements.html#/s:25SCSDKCameraKitReferenceUI16CarouselElementsO23facadeSelectionRingViewyA2CmF":{"name":"facadeSelectionRingView","abstract":"

Undocumented

","parent_name":"CarouselElements"},"Enums/CameraElements/CameraFlip.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO0E4FlipO5frontSSvpZ":{"name":"front","abstract":"

Undocumented

","parent_name":"CameraFlip"},"Enums/CameraElements/CameraFlip.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO0E4FlipO4backSSvpZ":{"name":"back","abstract":"

Undocumented

","parent_name":"CameraFlip"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO9lensLabelyA2CmF":{"name":"lensLabel","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO04flipE6ButtonyA2CmF":{"name":"flipCameraButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO17flashToggleButtonyA2CmF":{"name":"flashToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO24flashConfigurationButtonyA2CmF":{"name":"flashConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO12flashControlyA2CmF":{"name":"flashControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO25flashControlDismissalHintyA2CmF":{"name":"flashControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO19toneMapToggleButtonyA2CmF":{"name":"toneMapToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO26toneMapConfigurationButtonyA2CmF":{"name":"toneMapConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO14toneMapControlyA2CmF":{"name":"toneMapControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO27toneMapControlDismissalHintyA2CmF":{"name":"toneMapControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO20portraitToggleButtonyA2CmF":{"name":"portraitToggleButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO27portraitConfigurationButtonyA2CmF":{"name":"portraitConfigurationButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO15portraitControlyA2CmF":{"name":"portraitControl","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO28portraitControlDismissalHintyA2CmF":{"name":"portraitControlDismissalHint","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO13ringLightViewyA2CmF":{"name":"ringLightView","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO18photoLibraryButtonyA2CmF":{"name":"photoLibraryButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements.html#/s:25SCSDKCameraKitReferenceUI14CameraElementsO12cameraButtonyA2CmF":{"name":"cameraButton","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraElements/CameraFlip.html":{"name":"CameraFlip","abstract":"

Undocumented

","parent_name":"CameraElements"},"Enums/CameraBottomBarElements.html#/s:25SCSDKCameraKitReferenceUI23CameraBottomBarElementsO11closeButtonyA2CmF":{"name":"closeButton","abstract":"

Undocumented

","parent_name":"CameraBottomBarElements"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO7profileyA2CmF":{"name":"profile","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO4lensyACSo08SCCameraB4Lens_pcACmF":{"name":"lens(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO5photoyACSo7UIImageCcACmF":{"name":"photo(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html#/s:25SCSDKCameraKitReferenceUI14SnapchatScreenO5videoyAC10Foundation3URLVcACmF":{"name":"video(_:)","abstract":"

Undocumented

","parent_name":"SnapchatScreen"},"Enums/SnapchatScreen.html":{"name":"SnapchatScreen","abstract":"

Describes the Snapchat screen to open to

"},"Enums/CameraBottomBarElements.html":{"name":"CameraBottomBarElements","abstract":"

CameraBottomBar view testable elements

"},"Enums/CameraElements.html":{"name":"CameraElements","abstract":"

CameraViewController testable elements

"},"Enums/CarouselElements.html":{"name":"CarouselElements","abstract":"

CarouselView testable elements

"},"Enums/PreviewElements.html":{"name":"PreviewElements","abstract":"

PreviewViewController testable elements

"},"Enums/MessageNotificationElements.html":{"name":"MessageNotificationElements","abstract":"

MessageNotificationView testable elements

"},"Enums/FlashControlElements.html":{"name":"FlashControlElements","abstract":"

FlashControlView testable elements

"},"Enums/OtherElements.html":{"name":"OtherElements","abstract":"

Other misc testable elements

"},"Classes/TapAnimationView.html#/s:25SCSDKCameraKitReferenceUI16TapAnimationViewC6centerACSo7CGPointV_tcfc":{"name":"init(center:)","abstract":"

Undocumented

","parent_name":"TapAnimationView"},"Classes/TapAnimationView.html#/s:25SCSDKCameraKitReferenceUI16TapAnimationViewC4showyyF":{"name":"show()","abstract":"

Performs the tap animation and removes the view upon completion of the animation

","parent_name":"TapAnimationView"},"Classes/SnapAttributionView.html#/s:25SCSDKCameraKitReferenceUI19SnapAttributionViewC14poweredByLabelSo7UILabelCvp":{"name":"poweredByLabel","abstract":"

Undocumented

","parent_name":"SnapAttributionView"},"Classes/SnapAttributionView.html#/s:25SCSDKCameraKitReferenceUI19SnapAttributionViewC13snapIconImageSo07UIImageG0Cvp":{"name":"snapIconImage","abstract":"

Undocumented

","parent_name":"SnapAttributionView"},"Classes/MessageNotificationView.html#/s:25SCSDKCameraKitReferenceUI23MessageNotificationViewC5labelSo7UILabelCvp":{"name":"label","abstract":"

Default label in the message notification view

","parent_name":"MessageNotificationView"},"Classes/MessageNotificationView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MessageNotificationView(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"MessageNotificationView"},"Classes/CameraBottomBar.html#/s:25SCSDKCameraKitReferenceUI15CameraBottomBarC10snapButtonSo8UIButtonCvp":{"name":"snapButton","abstract":"

Snap ghost button for lens actions

","parent_name":"CameraBottomBar"},"Classes/CameraBottomBar.html#/s:25SCSDKCameraKitReferenceUI15CameraBottomBarC11closeButtonSo8UIButtonCvp":{"name":"closeButton","abstract":"

Close button to clear current lens

","parent_name":"CameraBottomBar"},"Classes/UserDataProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)UserDataProvider(py)delegate":{"name":"delegate","abstract":"

Delegate for CameraKit to receive updates on user data

","parent_name":"UserDataProvider"},"Classes/UserDataProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)UserDataProvider(py)userData":{"name":"userData","abstract":"

Mocked user data

","parent_name":"UserDataProvider"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC6outputSo08SCCameraB14AVWriterOutputCvp":{"name":"output","abstract":"

The AVWriterOutput for CameraKt.

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC3url11orientation4sizeAC10Foundation3URLV_So25AVCaptureVideoOrientationVSo6CGSizeVtKcfc":{"name":"init(url:orientation:size:)","abstract":"

Designated init to pass in required deps

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC14startRecordingyyF":{"name":"startRecording()","abstract":"

Undocumented

","parent_name":"Recorder"},"Classes/Recorder.html#/s:25SCSDKCameraKitReferenceUI8RecorderC15finishRecording10completionyy10Foundation3URLVSg_s5Error_pSgtcSg_tF":{"name":"finishRecording(completion:)","abstract":"

Undocumented

","parent_name":"Recorder"},"Classes/VideoPreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26VideoPreviewViewControllerC8videoUrl10Foundation3URLVvp":{"name":"videoUrl","abstract":"

URL which contains video file

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26VideoPreviewViewControllerC8videoUrlAC10Foundation3URLV_tcfc":{"name":"init(videoUrl:)","abstract":"

Init with url to video file

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/VideoPreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)VideoPreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"VideoPreviewViewController"},"Classes/PreviewViewController.html#/s:25SCSDKCameraKitReferenceUI21PreviewViewControllerC16snapchatDelegateAA08SnapchatI0_pSgvp":{"name":"snapchatDelegate","abstract":"

Snapchat delegate for open requests

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/s:25SCSDKCameraKitReferenceUI21PreviewViewControllerC9onDismissyycSgvp":{"name":"onDismiss","abstract":"

Callback when user presses close button and dismisses preview view controller

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/PreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)PreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"PreviewViewController"},"Classes/ImagePreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26ImagePreviewViewControllerC5imageSo7UIImageCvp":{"name":"image","abstract":"

UIImage to display

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/s:25SCSDKCameraKitReferenceUI26ImagePreviewViewControllerC5imageACSo7UIImageC_tcfc":{"name":"init(image:)","abstract":"

Designated init to pass in required deps

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)openSnapchatPressed:":{"name":"openSnapchatPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)sharePreviewPressed:":{"name":"sharePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/ImagePreviewViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ImagePreviewViewController(im)savePreviewPressed:":{"name":"savePreviewPressed(_:)","abstract":"

Undocumented

","parent_name":"ImagePreviewViewController"},"Classes/MediaPickerView.html#/s:25SCSDKCameraKitReferenceUI15MediaPickerViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate to be notified of MediaPickerView events

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/s:25SCSDKCameraKitReferenceUI15MediaPickerViewC8providerSo08SCCamerab4LenseF8Provider_pSgvp":{"name":"provider","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)init":{"name":"init()","abstract":"

Designated init to provide in required deps

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)mediaPickerProviderRequestedUIPresentation:":{"name":"mediaPickerProviderRequestedUIPresentation(_:)","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/MediaPickerView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)MediaPickerView(im)mediaPickerProviderRequestedUIDismissal:":{"name":"mediaPickerProviderRequestedUIDismissal(_:)","abstract":"

Undocumented

","parent_name":"MediaPickerView"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)textView":{"name":"textView","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)accessoryView":{"name":"accessoryView","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)placeholderText":{"name":"placeholderText","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/KeyboardAccessoryViewProvider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)KeyboardAccessoryViewProvider(py)maximumHeight":{"name":"maximumHeight","abstract":"

Undocumented

","parent_name":"KeyboardAccessoryViewProvider"},"Classes/BundleHelper.html#/s:25SCSDKCameraKitReferenceUI12BundleHelperC09resourcesE0So8NSBundleCvpZ":{"name":"resourcesBundle","abstract":"

Internal helper computed property to get correct resources bundle","parent_name":"BundleHelper"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

The delegate for the carousel view which will be notified of the carousel view actions.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10dataSourceAA0ef4DataH0_pSgvp":{"name":"dataSource","abstract":"

The object that manages data and provides items for the carousel view.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10reloadDatayyF":{"name":"reloadData()","abstract":"

Reloads all of the data in the carousel view to display the latest carousel items.

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC12selectedItemAA0eH0Cvp":{"name":"selectedItem","abstract":"

Current selected item or nil if none are selected (ie. when carousel is empty).

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC10selectItemySbAA0eH0CF":{"name":"selectItem(_:)","abstract":"

Select carousel item","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC04hideE0yyF":{"name":"hideCarousel()","abstract":"

Hide lens carousel.","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI12CarouselViewC04showE0yyF":{"name":"showCarousel()","abstract":"

Show lens carousel.","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:willDisplayCell:forItemAtIndexPath:":{"name":"collectionView(_:willDisplay:forItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:didEndDisplayingCell:forItemAtIndexPath:":{"name":"collectionView(_:didEndDisplaying:forItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselView(im)scrollViewDidScroll:":{"name":"scrollViewDidScroll(_:)","abstract":"

Undocumented

","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI36CarouselCollectionViewLayoutDelegateP08carouselH0_15willTargetIndexyAA0efgH0C_SitF":{"name":"carouselLayout(_:willTargetIndex:)","parent_name":"CarouselView"},"Classes/CarouselView.html#/s:25SCSDKCameraKitReferenceUI38CarouselCollectionViewLayoutDataSourceP08carouselH0_18transformForItemAtSo17CGAffineTransformVAA0efgH0C_10Foundation9IndexPathVtF":{"name":"carouselLayout(_:transformForItemAt:)","parent_name":"CarouselView"},"Classes/EmptyItem.html#/s:25SCSDKCameraKitReferenceUI9EmptyItemCACycfc":{"name":"init()","abstract":"

Undocumented

","parent_name":"EmptyItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC2idSSvp":{"name":"id","abstract":"

id for carousel item

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC6lensIdSSvp":{"name":"lensId","abstract":"

lens id

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC7groupIdSSvp":{"name":"groupId","abstract":"

group id lens belongs to

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC8imageUrl10Foundation3URLVSgvp":{"name":"imageUrl","abstract":"

image url for lens icon

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC5imageSo7UIImageCSgvp":{"name":"image","abstract":"

downloaded image for lens icon

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:25SCSDKCameraKitReferenceUI12CarouselItemC6lensId05groupH08imageUrl0J0ACSS_SS10Foundation3URLVSgSo7UIImageCSgtcfc":{"name":"init(lensId:groupId:imageUrl:image:)","abstract":"

Designated init for a carousel item

","parent_name":"CarouselItem"},"Classes/CarouselItem.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"CarouselItem"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC10urlSessionSo12NSURLSessionCvp":{"name":"urlSession","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC10urlSessionACSo12NSURLSessionC_tcfc":{"name":"init(urlSession:)","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC04loadG03url10completiony10Foundation3URLV_ySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:completion:)","abstract":"

Load image from url (callback queue will be on main)

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC04loadG03url5queue10completiony10Foundation3URLV_So012OS_dispatch_K0CySo7UIImageCSg_s5Error_pSgtcSgtF":{"name":"loadImage(url:queue:completion:)","abstract":"

Load image from url

","parent_name":"DefaultCarouselImageLoader"},"Classes/DefaultCarouselImageLoader.html#/s:25SCSDKCameraKitReferenceUI26DefaultCarouselImageLoaderC06cancelG4Load4fromy10Foundation3URLV_tF":{"name":"cancelImageLoad(from:)","abstract":"

Undocumented

","parent_name":"DefaultCarouselImageLoader"},"Classes/CarouselCollectionViewLayout.html#/s:25SCSDKCameraKitReferenceUI28CarouselCollectionViewLayoutC8delegateAA0efgH8Delegate_pSgvp":{"name":"delegate","abstract":"

Weak ref to carousel layout delegate

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/s:25SCSDKCameraKitReferenceUI28CarouselCollectionViewLayoutC10dataSourceAA0efgh4DataJ0_pSgvp":{"name":"dataSource","abstract":"

Weak ref to carousel layout data source

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewLayout(im)targetContentOffsetForProposedContentOffset:withScrollingVelocity:":{"name":"targetContentOffset(forProposedContentOffset:withScrollingVelocity:)","abstract":"

Override flow layout target content offset to land at a specific item (for the paging effect)

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewLayout.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewLayout(im)layoutAttributesForElementsInRect:":{"name":"layoutAttributesForElements(in:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewLayout"},"Classes/CarouselCollectionViewCell.html#/s:25SCSDKCameraKitReferenceUI26CarouselCollectionViewCellC05imageG0So07UIImageG0Cvp":{"name":"imageView","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/s:25SCSDKCameraKitReferenceUI26CarouselCollectionViewCellC017activityIndicatorG0So010UIActivityjG0Cvp":{"name":"activityIndicatorView","abstract":"

Activity indicator view that should activate when lens content is loading

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/CarouselCollectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CarouselCollectionViewCell(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CarouselCollectionViewCell"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC9topBorderSo6UIViewCvp":{"name":"topBorder","abstract":"

The top border of the ring light effect. This top border is unaffected by changes to the ring light gradient intensity.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC12bottomBorderSo6UIViewCvp":{"name":"bottomBorder","abstract":"

The bottom border of the ring light effect.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC04ringF8GradientAA0efiG0Cvp":{"name":"ringLightGradient","abstract":"

The gradient portion of the ring light effect.","parent_name":"RingLightView"},"Classes/RingLightView.html#/s:25SCSDKCameraKitReferenceUI13RingLightViewC11changeColor2toySo7UIColorC_tF":{"name":"changeColor(to:)","abstract":"

Changes the color of the ring light effect to the specified color.

","parent_name":"RingLightView"},"Classes/RingLightView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"RingLightView"},"Classes/RingLightView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"RingLightView"},"Classes/RingLightGradientView.html#/s:25SCSDKCameraKitReferenceUI21RingLightGradientViewC15updateIntensity2to8animatedy14CoreFoundation7CGFloatV_SbtF":{"name":"updateIntensity(to:animated:)","abstract":"

Updates the intensity of the ring light effect to the specified intensity.

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/s:25SCSDKCameraKitReferenceUI21RingLightGradientViewC11changeColor2toySo7UIColorC_tF":{"name":"changeColor(to:)","abstract":"

Changes the color of the ring light gradient to the specified color.

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightGradientView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"RingLightGradientView"},"Classes/RingLightGradientView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightGradientView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"RingLightGradientView"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC14reuseIdentiferSSvpZ":{"name":"reuseIdentifer","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC03setG0yySo7UIColorCF":{"name":"setColor(_:)","abstract":"

Used to set the color option that the cell represents.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC9highlightyyF":{"name":"highlight()","abstract":"

Used to highlight the color option that this cell represents when selected.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/s:25SCSDKCameraKitReferenceUI31RingLightColorSelectionViewCellC11unhighlightyyF":{"name":"unhighlight()","abstract":"

Remove the highlight from this cell.

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionViewCell(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionViewCell.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionViewCell(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionViewCell"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC8delegateAA0efghI8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling updates to the color selection.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC010collectionI0So012UICollectionI0Cvp":{"name":"collectionView","abstract":"

Collection view which contains the different color options for the ring light.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/s:25SCSDKCameraKitReferenceUI27RingLightColorSelectionViewC014performInitialH09indexPathy10Foundation05IndexM0V_tF":{"name":"performInitialSelection(indexPath:)","abstract":"

To be called the first time the ring light color selection view appears.

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:didSelectItemAtIndexPath:":{"name":"collectionView(_:didSelectItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:didDeselectItemAtIndexPath:":{"name":"collectionView(_:didDeselectItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:numberOfItemsInSection:":{"name":"collectionView(_:numberOfItemsInSection:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/RingLightColorSelectionView.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)RingLightColorSelectionView(im)collectionView:cellForItemAtIndexPath:":{"name":"collectionView(_:cellForItemAt:)","abstract":"

Undocumented

","parent_name":"RingLightColorSelectionView"},"Classes/FlashModeSelectionView.html#/s:25SCSDKCameraKitReferenceUI22FlashModeSelectionViewC8delegateAA0efgH8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling update’s to the selected flash mode in the view.

","parent_name":"FlashModeSelectionView"},"Classes/FlashModeSelectionView.html#/s:25SCSDKCameraKitReferenceUI22FlashModeSelectionViewC05flashF0AA16CameraControllerC0eF0Ovp":{"name":"flashMode","abstract":"

The current FlashMode that is selected in the view.

","parent_name":"FlashModeSelectionView"},"Classes/FlashModeSelectionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashModeSelectionView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"FlashModeSelectionView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling changes to the view’s controls.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC23ringLightIntensityValueSfvp":{"name":"ringLightIntensityValue","abstract":"

The intensity of the ring light according to the control’s slider’s value.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC12primaryLabelSo7UILabelCvp":{"name":"primaryLabel","abstract":"

Primary label for the control.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC018flashModeSelectionG0AA0eijG0Cvp":{"name":"flashModeSelectionView","abstract":"

View that enables the user to swtich between flash modes.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI16FlashControlViewC023ringLightColorSelectionG0AA04RingijkG0Cvp":{"name":"ringLightColorSelectionView","abstract":"

View with ring light color options to select between.

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashControlView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)FlashControlView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI30FlashModeSelectionViewDelegateP05flashfgH0_07updatedF0yAA0efgH0C_AA16CameraControllerC0eF0OtF":{"name":"flashModeSelectionView(_:updatedMode:)","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","parent_name":"FlashControlView"},"Classes/FlashControlView.html#/s:25SCSDKCameraKitReferenceUI35RingLightColorSelectionViewDelegateP04ringfghI0_08selectedG0yAA0efghI0C_So7UIColorCtF":{"name":"ringLightColorSelectionView(_:selectedColor:)","parent_name":"FlashControlView"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraG0AA0eG0Cvp":{"name":"cameraController","abstract":"

A controller which manages the camera and lenses stack on behalf of the view controller

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC22appOrientationDelegateAA03AppiJ0_pSgvp":{"name":"appOrientationDelegate","abstract":"

App orientation delegate to control app orientation

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraF0AA0eF0Cvp":{"name":"cameraView","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)loadView":{"name":"loadView()","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidAppear:":{"name":"viewDidAppear(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewDidDisappear:":{"name":"viewDidDisappear(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC10repoGroups13sessionConfigACSaySSG_So08SCCamerab7SessionK0CSgtcfc":{"name":"init(repoGroups:sessionConfig:)","abstract":"

Returns a camera view controller initialized with a camera controller that is configured with a newly created AVCaptureSession stack","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraB014captureSession10repoGroupsACSo08SCCameraB8Protocol_p_So09AVCaptureJ0CSaySSGtcfc":{"name":"init(cameraKit:captureSession:repoGroups:)","abstract":"

Convenience init to configure a camera controller with a specified AVCaptureSession stack, CameraKit, and list of group IDs.

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC06cameraG0AcA0eG0C_tcfc":{"name":"init(cameraController:)","abstract":"

Initialize the view controller with a preconfigured camera controller

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC10getMessage4lensSSSo08SCCameraB4Lens_p_tF":{"name":"getMessage(lens:)","abstract":"

get message to display in popup view for selected lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC11showMessage4lensySo08SCCameraB4Lens_p_tF":{"name":"showMessage(lens:)","abstract":"

Displays a message indicating that a specified lens has been displayed

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)viewWillTransitionToSize:withTransitionCoordinator:":{"name":"viewWillTransition(to:with:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC9applyLensyySo08SCCamerabI0_pF":{"name":"applyLens(_:)","abstract":"

Apply a specific lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraViewControllerC9clearLensyyF":{"name":"clearLens()","abstract":"

Helper function to clear currently selected lens

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_13updatedLensesyAA0eF0C_SaySo08SCCameraB4Lens_pGtF":{"name":"cameraController(_:updatedLenses:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorShowyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF30RequestedActivityIndicatorHideyyAA0eF0CF":{"name":"cameraControllerRequestedActivityIndicatorHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightShowyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF22RequestedRingLightHideyyAA0eF0CF":{"name":"cameraControllerRequestedRingLightHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF25RequestedFlashControlHideyyAA0eF0CF":{"name":"cameraControllerRequestedFlashControlHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewShowyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewShow(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF32RequestedSnapAttributionViewHideyyAA0eF0CF":{"name":"cameraControllerRequestedSnapAttributionViewHide(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraf9RequestedE4FlipyyAA0eF0CF":{"name":"cameraControllerRequestedCameraFlip(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintDisplay3for8autohideyAA0eF0C_SSSo08SCCameraB4Lens_pSbtF":{"name":"cameraController(_:requestedHintDisplay:for:autohide:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI26CameraControllerUIDelegateP06cameraF0_20requestedHintHideForyAA0eF0C_So08SCCameraB4Lens_ptF":{"name":"cameraController(_:requestedHintHideFor:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)processorUpdatedAdjustmentsAvailability:":{"name":"processorUpdatedAdjustmentsAvailability(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CarouselViewDelegateP08carouselF0_9didSelect2atyAA0eF0C_AA0E4ItemCSitF":{"name":"carouselView(_:didSelect:at:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI22CarouselViewDataSourceP08itemsForeF0ySayAA0E4ItemCGAA0eF0CF":{"name":"itemsForCarouselView(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF6TappedyyAA0eF0CF":{"name":"cameraButtonTapped(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldBeganyyAA0eF0CF":{"name":"cameraButtonHoldBegan(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF13HoldCancelledyyAA0eF0CF":{"name":"cameraButtonHoldCancelled(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI20CameraButtonDelegateP06cameraF9HoldEndedyyAA0eF0CF":{"name":"cameraButtonHoldEnded(_:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_21updatedRingLightValueyAA0efG0C_SftF":{"name":"flashControlView(_:updatedRingLightValue:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_22selectedRingLightColoryAA0efG0C_So7UIColorCtF":{"name":"flashControlView(_:selectedRingLightColor:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/s:25SCSDKCameraKitReferenceUI24FlashControlViewDelegateP05flashfG0_07updatedE4ModeyAA0efG0C_AA16CameraControllerC0eK0OtF":{"name":"flashControlView(_:updatedFlashMode:)","parent_name":"CameraViewController"},"Classes/CameraViewController.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraViewController(im)presentationControllerWillDismiss:":{"name":"presentationControllerWillDismiss(_:)","abstract":"

Undocumented

","parent_name":"CameraViewController"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC07previewF0So08SCCamerab7PreviewF0Cvp":{"name":"previewView","abstract":"

default camerakit view to draw outputted textures

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC15cameraBottomBarAA0ehI0Cvp":{"name":"cameraBottomBar","abstract":"

bottom bar below carousel

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC9hintLabelSo7UILabelCvp":{"name":"hintLabel","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC9lensLabelSo7UILabelCvp":{"name":"lensLabel","abstract":"

top label to show current selected lens

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC09ringLightF0AA04RinghF0Cvp":{"name":"ringLightView","abstract":"

View used for ring light effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC013cameraActionsF0AA0ehF0Cvp":{"name":"cameraActionsView","abstract":"

View that contains the buttons for various camera actions (flip, adjust, etc.)

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC012flashControlF0AA05FlashhF0Cvp":{"name":"flashControlView","abstract":"

Control view for switching between flash and ring light as well as controlling ring light color and intensity.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC25flashControlDismissalHintSo7UILabelCvp":{"name":"flashControlDismissalHint","abstract":"

Label shown beneath the ring light control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC014toneMapControlF0AA010AdjustmentiF0Cvp":{"name":"toneMapControlView","abstract":"

Control view for tone map adjustment that allows the user to adjust the intensity of the tone map effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC32toneMapControlDismissalHintLabelSo7UILabelCvp":{"name":"toneMapControlDismissalHintLabel","abstract":"

Label shown beneath the tone map control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC015portraitControlF0AA010AdjustmenthF0Cvp":{"name":"portraitControlView","abstract":"

Control view for portrait that allows the user to adjust the intensity of the portrait effect.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC33portraitControlDismissalHintLabelSo7UILabelCvp":{"name":"portraitControlDismissalHintLabel","abstract":"

Label shown beneath the portrait control that provides a hint regarding dismissing the control.

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC08carouselF0AA08CarouselF0Cvp":{"name":"carouselView","abstract":"

carousel to scroll through lenses

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC12cameraButtonAA0eH0Cvp":{"name":"cameraButton","abstract":"

camera button to capture/record

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC011mediaPickerF0AA05MediahF0Cvp":{"name":"mediaPickerView","abstract":"

media picker to allow using photos from camera roll in lenses

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC07messageF0AA019MessageNotificationF0Cvp":{"name":"messageView","abstract":"

message view to show updates when selected lens changes

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC015snapAttributionF0AA04SnaphF0Cvp":{"name":"snapAttributionView","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC17activityIndicatorSo010UIActivityhF0Cvp":{"name":"activityIndicator","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC11showMessage4text13numberOfLines8durationySS_SiSdtF":{"name":"showMessage(text:numberOfLines:duration:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC22setupActivityIndicatoryyF":{"name":"setupActivityIndicator()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC19isAnyControlVisibleSbvp":{"name":"isAnyControlVisible","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC15hideAllControlsyyF":{"name":"hideAllControls()","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraView.html#/s:25SCSDKCameraKitReferenceUI10CameraViewC016drawTapAnimationF02atySo7CGPointV_tF":{"name":"drawTapAnimationView(at:)","abstract":"

Undocumented

","parent_name":"CameraView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC12configurableSbvp":{"name":"configurable","abstract":"

Whether or not the action is currently configurable via a control view.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC12toggleButtonSo8UIButtonCvp":{"name":"toggleButton","abstract":"

Button used to enable/disable camera action.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC19configurationButtonSo8UIButtonCvp":{"name":"configurationButton","abstract":"

Button used to open/close the settings for the camera action.","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC010blurEffectH0So08UIVisualjH0Cvp":{"name":"blurEffectView","abstract":"

View that provides the stack view with its blurred background.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC8collapseyyF":{"name":"collapse()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC6expandyyF":{"name":"expand()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraConfigurableActionView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC06enableG0yycSgvp":{"name":"enableAction","abstract":"

Callback to enable the camera action when the toggle button is selected.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC07disableG0yycSgvp":{"name":"disableAction","abstract":"

Callback to disable the camera action when the toggle button is deselected.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC04showG8SettingsyycSgvp":{"name":"showActionSettings","abstract":"

Callback to show the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC04hideG8SettingsyycSgvp":{"name":"hideActionSettings","abstract":"

Callback to hide the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraConfigurableActionView.html#/s:25SCSDKCameraKitReferenceUI28CameraConfigurableActionViewC06toggleG18SettingsVisibilityyycSgvp":{"name":"toggleActionSettingsVisibility","abstract":"

Callback to toggle the visibility of the settings for the camera action.

","parent_name":"CameraConfigurableActionView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC04flipE6ButtonSo8UIButtonCvp":{"name":"flipCameraButton","abstract":"

Button to flip camera input position

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC34flashToggleButtonBaseSelectedImageSo7UIImageCSgvp":{"name":"flashToggleButtonBaseSelectedImage","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC011flashActionG0AA0e12ConfigurableiG0Cvp":{"name":"flashActionView","abstract":"

View with buttons to enable/disable flash and switch between system flash and ring light.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC30setupFlashToggleButtonForFrontyyF":{"name":"setupFlashToggleButtonForFront()","abstract":"

Sets up the flash toggle button for front flash.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC29setupFlashToggleButtonForBackyyF":{"name":"setupFlashToggleButtonForBack()","abstract":"

Sets up the flash toggle button for back flash.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC013toneMapActionG0AA0e12ConfigurablejG0Cvp":{"name":"toneMapActionView","abstract":"

View with buttons to enable/disable the tone map adjustment and control the intensity of the adjustment.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC014portraitActionG0AA0e12ConfigurableiG0Cvp":{"name":"portraitActionView","abstract":"

View with buttons to enable/disable the portrait adjustment and control the intensity of the adjustment.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC011buttonStackG0So07UIStackG0Cvp":{"name":"buttonStackView","abstract":"

Stack view used to arrange the view’s buttons.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC8collapseyyF":{"name":"collapse()","abstract":"

Hide all camera actions except camera flip while recording.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/s:25SCSDKCameraKitReferenceUI17CameraActionsViewC6expandyyF":{"name":"expand()","abstract":"

Unhide all camera actions that were hidden as a result of a call to collapse.

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraActionsView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/CameraActionsView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraActionsView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraActionsView"},"Classes/ControlSlider.html#/s:25SCSDKCameraKitReferenceUI13ControlSliderC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling updates to the slider’s value.

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(im)setValue:animated:":{"name":"setValue(_:animated:)","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/s:25SCSDKCameraKitReferenceUI13ControlSliderC13setThumbColoryySo7UIColorCF":{"name":"setThumbColor(_:)","abstract":"

Sets the color of the slider’s thumb.

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/ControlSlider.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)ControlSlider(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"ControlSlider"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO4toneyA2EmF":{"name":"tone","abstract":"

Undocumented

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO8portraityA2EmF":{"name":"portrait","abstract":"

Undocumented

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC7VariantO5labelSSvp":{"name":"label","abstract":"

Text for the primary label of the control with the specified variant.

","parent_name":"Variant"},"Classes/AdjustmentControlView/Variant.html":{"name":"Variant","abstract":"

Adjustments that can be controlled via this view.","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC8delegateAA0efG8Delegate_pSgvp":{"name":"delegate","abstract":"

Delegate for handling changes to the adjustment intensity slider.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC14intensityValueSfvp":{"name":"intensityValue","abstract":"

The intensity of the adjustment according to the control’s slider’s value.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC12primaryLabelSo7UILabelCvp":{"name":"primaryLabel","abstract":"

Primary label for the control.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21AdjustmentControlViewC14secondaryLabelSo7UILabelCvp":{"name":"secondaryLabel","abstract":"

Secondary label for the control.

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)AdjustmentControlView(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"AdjustmentControlView"},"Classes/AdjustmentControlView.html#/s:25SCSDKCameraKitReferenceUI21ControlSliderDelegateP07controlF0_12updatedValue4doneyAA0eF0C_SfSbtF":{"name":"controlSlider(_:updatedValue:done:)","parent_name":"AdjustmentControlView"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ConstantsO":{"name":"Constants","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC8delegateAA0eF8Delegate_pSgvp":{"name":"delegate","abstract":"

Camera button delegate

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC19minimumHoldDurationSdvp":{"name":"minimumHoldDuration","abstract":"

The minimum time for a hold to be considered “valid.”","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ringWidth14CoreFoundation7CGFloatVvp":{"name":"ringWidth","abstract":"

Line width for camera ring

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC19allowWhileRecordingSaySo19UIGestureRecognizerCGvp":{"name":"allowWhileRecording","abstract":"

List of allowed gestures to be used when recording a video(LongPressGesture) i.e. Double Tap Gesture, Pinch Gesture.

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC9ringColorSo7UIColorCSgvp":{"name":"ringColor","abstract":"

Ring color while recording

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC20tapGestureRecognizerSo05UITaphI0Cvp":{"name":"tapGestureRecognizer","abstract":"

Tap gesture recognizer that is used to recognize taps on the camera button","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC22pressGestureRecognizerSo011UILongPresshI0Cvp":{"name":"pressGestureRecognizer","abstract":"

Long press gesture recognizer used to handle recording gesture","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)initWithFrame:":{"name":"init(frame:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)initWithCoder:":{"name":"init(coder:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)layoutSubviews":{"name":"layoutSubviews()","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(py)intrinsicContentSize":{"name":"intrinsicContentSize","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)willMoveToSuperview:":{"name":"willMove(toSuperview:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:":{"name":"gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)gestureRecognizer:shouldReceiveTouch:":{"name":"gestureRecognizer(_:shouldReceive:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC23startRecordingAnimation16ringFillDuration03maxhL0ySd_SdtF":{"name":"startRecordingAnimation(ringFillDuration:maxRecordingDuration:)","abstract":"

Start animating ring fill","parent_name":"CameraButton"},"Classes/CameraButton.html#/s:25SCSDKCameraKitReferenceUI12CameraButtonC22stopRecordingAnimationyyF":{"name":"stopRecordingAnimation()","abstract":"

Stop animating ring fill and reset views to original state","parent_name":"CameraButton"},"Classes/CameraButton.html#/c:@CM@SCSDKCameraKitReferenceUI@objc(cs)CameraButton(im)animationDidStop:finished:":{"name":"animationDidStop(_:finished:)","abstract":"

Undocumented

","parent_name":"CameraButton"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO3offyA2EmF":{"name":"off","abstract":"

Undocumented

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO2onyAeC0G4ModeOcAEmF":{"name":"on(_:)","abstract":"

Undocumented

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO013captureDeviceG4ModeSo09AVCapturegK0Vvp":{"name":"captureDeviceFlashMode","abstract":"

The AVCaptureDevice.FlashMode that should be used when taking photos as per the FlashState.

","parent_name":"FlashState"},"Classes/CameraController/FlashState.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10FlashStateO22captureDeviceTorchModeSo09AVCapturekL0Vvp":{"name":"captureDeviceTorchMode","abstract":"

The AVCaptureDevice.torchMode that should be used when recording videos as per the FlashState.

","parent_name":"FlashState"},"Classes/CameraController/FlashMode.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9FlashModeO8standardyA2EmF":{"name":"standard","abstract":"

Undocumented

","parent_name":"FlashMode"},"Classes/CameraController/FlashMode.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9FlashModeO4ringyA2EmF":{"name":"ring","abstract":"

Undocumented

","parent_name":"FlashMode"},"Classes/CameraController/PointOfInterestOptions.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:s9OptionSetP8rawValuex03RawD0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC22PointOfInterestOptionsV8exposureAEvpZ":{"name":"exposure","abstract":"

Undocumented

","parent_name":"PointOfInterestOptions"},"Classes/CameraController/PointOfInterestOptions.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC22PointOfInterestOptionsV5focusAEvpZ":{"name":"focus","abstract":"

Undocumented

","parent_name":"PointOfInterestOptions"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14captureSessionSo09AVCaptureH0Cvp":{"name":"captureSession","abstract":"

A capture session we’ll use for camera input.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC06cameraB0So08SCCameraB8Protocol_pvp":{"name":"cameraKit","abstract":"

The CameraKit session

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14cameraPositionSo015AVCaptureDeviceH0Vvp":{"name":"cameraPosition","abstract":"

The position of the camera.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18photoCaptureOutputSo08SCCamerab5PhotohI0CSgvp":{"name":"photoCaptureOutput","abstract":"

An output used for taking still photos.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC8recorderAA8RecorderCSgvp":{"name":"recorder","abstract":"

An output used for recording videos.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC17lensMediaProviderSo08SCCamerab4Lensh6PickerI12PhotoLibraryCvp":{"name":"lensMediaProvider","abstract":"

Media provider for CameraKit.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC16snapchatDelegateAA08SnapchatH0_pSgvp":{"name":"snapchatDelegate","abstract":"

Snapchat delegate for requests to open the main Snapchat app.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10uiDelegateAA0eF10UIDelegate_pSgvp":{"name":"uiDelegate","abstract":"

Delegate for responding to UI requests from camera controller.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC11currentLensSo08SCCamerabH0_pSgvp":{"name":"currentLens","abstract":"

The currently selected and active lens.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC8groupIDsSaySSGvp":{"name":"groupIDs","abstract":"

List of lens repository groups to observe/show in carousel

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC28isToneMapAdjustmentAvailableSbvp":{"name":"isToneMapAdjustmentAvailable","abstract":"

Whether or not the tone map adjustment is available for the current device.","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC29isPortraitAdjustmentAvailableSbvp":{"name":"isPortraitAdjustmentAvailable","abstract":"

Whether or not the portrait adjustment is available for the current device.","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC10flashStateAC05FlashH0Ovp":{"name":"flashState","abstract":"

The current state of the camera flash.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC13sessionConfigACSo08SCCamerab7SessionH0CSg_tcfc":{"name":"init(sessionConfig:)","abstract":"

Returns a camera controller that is initialized with a newly created AVCaptureSession stack","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC06cameraB014captureSessionACSo08SCCameraB8Protocol_p_So09AVCaptureI0Ctcfc":{"name":"init(cameraKit:captureSession:)","abstract":"

Init with camera kit session, capture session, and lens holder

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9configure11orientation24textInputContextProvider022agreementsPresentationkL010completionySo25AVCaptureVideoOrientationV_So08SCCamerab4TextjkL0_pSgSo0sb10AgreementsnkL0_pSgyycSgtF":{"name":"configure(orientation:textInputContextProvider:agreementsPresentationContextProvider:completion:)","abstract":"

Configures the overall camera and lenses stack.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15configureLenses11orientation24textInputContextProvider022agreementsPresentationlM0ySo25AVCaptureVideoOrientationV_So08SCCamerab4TextklM0_pSgSo0sb10AgreementsolM0_pSgtF":{"name":"configureLenses(orientation:textInputContextProvider:agreementsPresentationContextProvider:)","abstract":"

Configures the lenses pipeline.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC21configureDataProviderSo08SCCamerabhI9ComponentCyF":{"name":"configureDataProvider()","abstract":"

Configures the data provider for lenses. Subclasses may override this to customize their data provider.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC17zoomExistingLevel2byy14CoreFoundation7CGFloatV_tF":{"name":"zoomExistingLevel(by:)","abstract":"

Zoom in by a given factor from whatever the current zoom level is

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC12finalizeZoomyyF":{"name":"finalizeZoom()","abstract":"

Save whatever the current zoom level is.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC04flipE0yyF":{"name":"flipCamera()","abstract":"

Flips the camera to the other side

","parent_name":"CameraController"},"Classes/CameraController/PointOfInterestOptions.html":{"name":"PointOfInterestOptions","abstract":"

Options to support when setting a point of interest

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18setPointOfInterest2at3forySo7CGPointV_AC0hiJ7OptionsVtF":{"name":"setPointOfInterest(at:for:)","abstract":"

Sets camera point of interest for operations in the option set. Also adds observers for the current device such","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9takePhoto10completionyySo7UIImageCSg_s5Error_pSgtcSg_tF":{"name":"takePhoto(completion:)","abstract":"

Takes a photo.

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)repository:didUpdateLenses:forGroupID:":{"name":"repository(_:didUpdateLenses:forGroupID:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)repository:didFailToUpdateLensesForGroupID:error:":{"name":"repository(_:didFailToUpdateLensesForGroupID:error:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)prefetcher:didUpdateLens:status:":{"name":"prefetcher(_:didUpdate:status:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC14startRecordingyyF":{"name":"startRecording()","abstract":"

Begin recording video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15cancelRecordingyyF":{"name":"cancelRecording()","abstract":"

Cancel recording video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC15finishRecording10completionyy10Foundation3URLVSg_s5Error_pSgtcSg_tF":{"name":"finishRecording(completion:)","abstract":"

Finish recording the video.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9applyLens_10completionySo08SCCamerabH0_p_ySbcSgtF":{"name":"applyLens(_:completion:)","abstract":"

Apply a specified lens.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC9clearLens11willReapply10completionySb_ySbcSgtF":{"name":"clearLens(willReapply:completion:)","abstract":"

Clear the currently selected lens, and return to unmodified camera feed.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC18reapplyCurrentLensyyF":{"name":"reapplyCurrentLens()","abstract":"

If a lens has already been applied, reapply it.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC23enableToneMapAdjustmentSfSgyF":{"name":"enableToneMapAdjustment()","abstract":"

Enables the tone map adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC24disableToneMapAdjustmentyyF":{"name":"disableToneMapAdjustment()","abstract":"

Disables the tone map adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC24enablePortraitAdjustmentSfSgyF":{"name":"enablePortraitAdjustment()","abstract":"

Enables the portrait adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC25disablePortraitAdjustmentyyF":{"name":"disablePortraitAdjustment()","abstract":"

Disables the portrait adjustment.

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)lensProcessor:shouldDisplayHint:forLens:autohide:":{"name":"lensProcessor(_:shouldDisplayHint:for:autohide:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@SCSDKCameraKitReferenceUI@objc(cs)CameraController(im)lensProcessor:shouldHideAllHintsForLens:":{"name":"lensProcessor(_:shouldHideAllHintsFor:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI23MediaPickerViewDelegateP05mediafG0_13selectedAssetyAA0efG0C_So08SCCamerab4LensefK0_ptF":{"name":"mediaPickerView(_:selectedAsset:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI29AdjustmentControlViewDelegateP010adjustmentfG0_18sliderValueChangedyAA0efG0C_SdtF":{"name":"adjustmentControlView(_:sliderValueChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC19brightnessToRestore14CoreFoundation7CGFloatVSgvp":{"name":"brightnessToRestore","abstract":"

Temporary state that holds the brightness that should be restored after the ring light is disabled.

","parent_name":"CameraController"},"Classes/CameraController/FlashMode.html":{"name":"FlashMode","abstract":"

Enumerates the different flash enabled modes.

","parent_name":"CameraController"},"Classes/CameraController/FlashState.html":{"name":"FlashState","abstract":"

Enumerates the different possible flash states.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC11enableFlashyyF":{"name":"enableFlash()","abstract":"

Enables the camera flash with the appopriate flash mode as per camera position and prior user selections.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC12disableFlashyyF":{"name":"disableFlash()","abstract":"

Disables the camera flash.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC28restoreBrightnessIfNecessaryyyF":{"name":"restoreBrightnessIfNecessary()","abstract":"

Restores brightness to what it was before the ring light was enabled.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:25SCSDKCameraKitReferenceUI16CameraControllerC29increaseBrightnessIfNecessaryyyF":{"name":"increaseBrightnessIfNecessary()","abstract":"

Increases brightness to max if the ring light is enabled.

","parent_name":"CameraController"},"Classes/CameraController.html":{"name":"CameraController","abstract":"

A controller which manages the camera and lenses stack on behalf of its owner

"},"Classes/CameraButton.html":{"name":"CameraButton","abstract":"

Camera ring view for capturing and recording state

"},"Classes/AdjustmentControlView.html":{"name":"AdjustmentControlView","abstract":"

Undocumented

"},"Classes/ControlSlider.html":{"name":"ControlSlider","abstract":"

Undocumented

"},"Classes/CameraActionsView.html":{"name":"CameraActionsView","abstract":"

Undocumented

"},"Classes/CameraConfigurableActionView.html":{"name":"CameraConfigurableActionView","abstract":"

View to use for camera actions that can be enabled/disabled and configured via separate buttons.

"},"Classes/CameraView.html":{"name":"CameraView","abstract":"

This is the default view that backs the CameraViewController.

"},"Classes/CameraViewController.html":{"name":"CameraViewController","abstract":"

This is the default view controller which handles setting up the camera, lenses, carousel, etc.

"},"Classes/FlashControlView.html":{"name":"FlashControlView","abstract":"

Undocumented

"},"Classes/FlashModeSelectionView.html":{"name":"FlashModeSelectionView","abstract":"

Undocumented

"},"Classes/RingLightColorSelectionView.html":{"name":"RingLightColorSelectionView","abstract":"

Undocumented

"},"Classes/RingLightColorSelectionViewCell.html":{"name":"RingLightColorSelectionViewCell","abstract":"

Undocumented

"},"Classes/RingLightGradientView.html":{"name":"RingLightGradientView","abstract":"

Undocumented

"},"Classes/RingLightView.html":{"name":"RingLightView","abstract":"

Undocumented

"},"Classes/CarouselCollectionViewCell.html":{"name":"CarouselCollectionViewCell","abstract":"

Carousel collection view cell which represents a single lens item/icon

"},"Classes/CarouselCollectionViewLayout.html":{"name":"CarouselCollectionViewLayout","abstract":"

Custom collection view layout for carousel collection view

"},"Classes/DefaultCarouselImageLoader.html":{"name":"DefaultCarouselImageLoader","abstract":"

Default image loader class which uses a URLSession to load images

"},"Classes/CarouselItem.html":{"name":"CarouselItem","abstract":"

This is the carousel item view model which represents a specific lens icon

"},"Classes/EmptyItem.html":{"name":"EmptyItem","abstract":"

Concrete class for an empty item (clear camera button)

"},"Classes/CarouselView.html":{"name":"CarouselView","abstract":"

A view that manages an ordered collection of data items (eg. lenses) and displays them in a swipeable row with one item always selected.

"},"Classes/BundleHelper.html":{"name":"BundleHelper","abstract":"

Internal helper to deal with resources bundle

"},"Classes/KeyboardAccessoryViewProvider.html":{"name":"KeyboardAccessoryViewProvider","abstract":"

Reference implementation of a text input view for lenses that take text input.

"},"Classes/MediaPickerView.html":{"name":"MediaPickerView","abstract":"

Selection view for Media Picker

"},"Classes/ImagePreviewViewController.html":{"name":"ImagePreviewViewController","abstract":"

Preview view controller for showing captured photos and images

"},"Classes/PreviewViewController.html":{"name":"PreviewViewController","abstract":"

Base preview view controller that describes properties and views of all preview controllers

"},"Classes/VideoPreviewViewController.html":{"name":"VideoPreviewViewController","abstract":"

Preview view controller for showing recorded video previews

"},"Classes/Recorder.html":{"name":"Recorder","abstract":"

Sample video recorder implementation.

"},"Classes/UserDataProvider.html":{"name":"UserDataProvider","abstract":"

Default user data provider to show how to provide user data to CameraKit

"},"Classes/CameraBottomBar.html":{"name":"CameraBottomBar","abstract":"

Bottom bar on Camera that contains Snap ghost button for actions"},"Classes/MessageNotificationView.html":{"name":"MessageNotificationView","abstract":"

Popup message notification view for different lens events

"},"Classes/SnapAttributionView.html":{"name":"SnapAttributionView","abstract":"

Snap attribution on Camera that contains “Powered by” and Snap ghost icon

"},"Classes/TapAnimationView.html":{"name":"TapAnimationView","abstract":"

View that appears when the user taps on the camera view

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Enums.html":{"name":"Enumerations","abstract":"

The following enumerations are available globally.

"},"Extensions.html":{"name":"Extensions","abstract":"

The following extensions are available globally.

"},"Functions.html":{"name":"Functions","abstract":"

The following functions are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"}} \ No newline at end of file diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/undocumented.json b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/undocumented.json new file mode 100644 index 00000000..b69d2762 --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/undocumented.json @@ -0,0 +1,1321 @@ +{ + "warnings": [ + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 9, + "symbol": "CameraControllerUIDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 292, + "symbol": "CameraController.PointOfInterestOptions.exposure", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 295, + "symbol": "CameraController.PointOfInterestOptions.focus", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 384, + "symbol": "CameraController.repository(_:didUpdateLenses:forGroupID:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 403, + "symbol": "CameraController.repository(_:didFailToUpdateLensesForGroupID:error:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 410, + "symbol": "CameraController.prefetcher(_:didUpdate:status:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 579, + "symbol": "CameraController.lensProcessor(_:shouldDisplayHint:for:autohide:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 585, + "symbol": "CameraController.lensProcessor(_:shouldHideAllHintsFor:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 854, + "symbol": "CameraController.FlashMode.standard", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 855, + "symbol": "CameraController.FlashMode.ring", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 860, + "symbol": "CameraController.FlashState.off", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Camera/CameraController.swift", + "line": 861, + "symbol": "CameraController.FlashState.on(_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 28, + "symbol": "CameraButton.Constants", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 116, + "symbol": "CameraButton.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 121, + "symbol": "CameraButton.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 126, + "symbol": "CameraButton.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 144, + "symbol": "CameraButton.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 158, + "symbol": "CameraButton.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 164, + "symbol": "CameraButton.willMove(toSuperview:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 206, + "symbol": "CameraButton.gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 220, + "symbol": "CameraButton.gestureRecognizer(_:shouldReceive:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraButton/CameraButton.swift", + "line": 337, + "symbol": "CameraButton.animationDidStop(_:finished:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 6, + "symbol": "AdjustmentControlViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 14, + "symbol": "AdjustmentControlView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 18, + "symbol": "AdjustmentControlView.Variant.tone", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 19, + "symbol": "AdjustmentControlView.Variant.portrait", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 91, + "symbol": "AdjustmentControlView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 108, + "symbol": "AdjustmentControlView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 117, + "symbol": "AdjustmentControlView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/AdjustmentControlView.swift", + "line": 180, + "symbol": "AdjustmentControlView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 6, + "symbol": "ControlSliderDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 15, + "symbol": "ControlSlider", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 53, + "symbol": "ControlSlider.setValue(_:animated:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 88, + "symbol": "ControlSlider.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraAdjustments/ControlSlider.swift", + "line": 99, + "symbol": "ControlSlider.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraActionsView.swift", + "line": 6, + "symbol": "CameraActionsView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraActionsView.swift", + "line": 23, + "symbol": "CameraActionsView.flashToggleButtonBaseSelectedImage", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraActionsView.swift", + "line": 168, + "symbol": "CameraActionsView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraActionsView.swift", + "line": 173, + "symbol": "CameraActionsView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 75, + "symbol": "CameraConfigurableActionView.collapse()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 81, + "symbol": "CameraConfigurableActionView.expand()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 88, + "symbol": "CameraConfigurableActionView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 93, + "symbol": "CameraConfigurableActionView.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraControlStrip/CameraConfigurableActionView.swift", + "line": 98, + "symbol": "CameraConfigurableActionView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 24, + "symbol": "CameraView.hintLabel", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 163, + "symbol": "CameraView.snapAttributionView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 170, + "symbol": "CameraView.activityIndicator", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 183, + "symbol": "CameraView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 193, + "symbol": "CameraView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 345, + "symbol": "CameraView.showMessage(text:numberOfLines:duration:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 399, + "symbol": "CameraView.setupActivityIndicator()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 551, + "symbol": "CameraView.isAnyControlVisible", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 562, + "symbol": "CameraView.hideAllControls()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraView.swift", + "line": 579, + "symbol": "CameraView.drawTapAnimationView(at:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 55, + "symbol": "CameraViewController.cameraView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 57, + "symbol": "CameraViewController.loadView()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 61, + "symbol": "CameraViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 66, + "symbol": "CameraViewController.viewDidAppear(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 71, + "symbol": "CameraViewController.viewDidDisappear(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 139, + "symbol": "CameraViewController.viewWillTransition(to:with:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 420, + "symbol": "CameraViewController.processorUpdatedAdjustmentsAvailability(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/CameraViewController.swift", + "line": 667, + "symbol": "CameraViewController.presentationControllerWillDismiss(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 6, + "symbol": "FlashControlViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 26, + "symbol": "FlashControlView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 153, + "symbol": "FlashControlView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 178, + "symbol": "FlashControlView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 271, + "symbol": "FlashControlView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 285, + "symbol": "FlashControlView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashControlView.swift", + "line": 303, + "symbol": "FlashControlView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashModeSelectionView.swift", + "line": 7, + "symbol": "FlashModeSelectionViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashModeSelectionView.swift", + "line": 15, + "symbol": "FlashModeSelectionView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/FlashModeSelectionView.swift", + "line": 98, + "symbol": "FlashModeSelectionView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 6, + "symbol": "RingLightColorSelectionViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 14, + "symbol": "RingLightColorSelectionView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 67, + "symbol": "RingLightColorSelectionView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 75, + "symbol": "RingLightColorSelectionView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 85, + "symbol": "RingLightColorSelectionView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 106, + "symbol": "RingLightColorSelectionView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 107, + "symbol": "RingLightColorSelectionView.collectionView(_:didSelectItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 115, + "symbol": "RingLightColorSelectionView.collectionView(_:didDeselectItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 124, + "symbol": "RingLightColorSelectionView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 125, + "symbol": "RingLightColorSelectionView.collectionView(_:numberOfItemsInSection:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionView.swift", + "line": 129, + "symbol": "RingLightColorSelectionView.collectionView(_:cellForItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionViewCell.swift", + "line": 6, + "symbol": "RingLightColorSelectionViewCell", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionViewCell.swift", + "line": 7, + "symbol": "RingLightColorSelectionViewCell.reuseIdentifer", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionViewCell.swift", + "line": 63, + "symbol": "RingLightColorSelectionViewCell.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightColorSelectionViewCell.swift", + "line": 69, + "symbol": "RingLightColorSelectionViewCell.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightGradientView.swift", + "line": 6, + "symbol": "RingLightGradientView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightGradientView.swift", + "line": 83, + "symbol": "RingLightGradientView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightGradientView.swift", + "line": 88, + "symbol": "RingLightGradientView.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightView.swift", + "line": 6, + "symbol": "RingLightView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightView.swift", + "line": 56, + "symbol": "RingLightView.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/CameraUI/Flash/RingLight/RingLightView.swift", + "line": 61, + "symbol": "RingLightView.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewCell.swift", + "line": 8, + "symbol": "CarouselCollectionViewCell.imageView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewCell.swift", + "line": 27, + "symbol": "CarouselCollectionViewCell.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewCell.swift", + "line": 32, + "symbol": "CarouselCollectionViewCell.init(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewCell.swift", + "line": 37, + "symbol": "CarouselCollectionViewCell.init(coder:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselCollectionViewLayout.swift", + "line": 58, + "symbol": "CarouselCollectionViewLayout.layoutAttributesForElements(in:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselImageLoader.swift", + "line": 17, + "symbol": "DefaultCarouselImageLoader.urlSession", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselImageLoader.swift", + "line": 21, + "symbol": "DefaultCarouselImageLoader.init(urlSession:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselImageLoader.swift", + "line": 59, + "symbol": "DefaultCarouselImageLoader.cancelImageLoad(from:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselItem.swift", + "line": 44, + "symbol": "EmptyItem.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 144, + "symbol": "CarouselView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 148, + "symbol": "CarouselView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 210, + "symbol": "CarouselView.collectionView(_:numberOfItemsInSection:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 214, + "symbol": "CarouselView.collectionView(_:cellForItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 251, + "symbol": "CarouselView.collectionView(_:willDisplay:forItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 261, + "symbol": "CarouselView.collectionView(_:didEndDisplaying:forItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 271, + "symbol": "CarouselView.collectionView(_:didSelectItemAt:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Carousel/CarouselView.swift", + "line": 278, + "symbol": "CarouselView.scrollViewDidScroll(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIColor+Hex.swift", + "line": 7, + "symbol": "UIColor.init(hex:alpha:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 8, + "symbol": "UIFont.sc_ultraLightFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 12, + "symbol": "UIFont.sc_regularFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 16, + "symbol": "UIFont.sc_mediumFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 20, + "symbol": "UIFont.sc_demiBoldFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 24, + "symbol": "UIFont.sc_boldFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Helper/UIFont+SCTypography.swift", + "line": 28, + "symbol": "UIFont.sc_heavyFont(size:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Keyboard/KeyboardInputAccessoryViewProvider.swift", + "line": 10, + "symbol": "KeyboardAccessoryViewProvider.textView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Keyboard/KeyboardInputAccessoryViewProvider.swift", + "line": 11, + "symbol": "KeyboardAccessoryViewProvider.accessoryView", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Keyboard/KeyboardInputAccessoryViewProvider.swift", + "line": 12, + "symbol": "KeyboardAccessoryViewProvider.placeholderText", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Keyboard/KeyboardInputAccessoryViewProvider.swift", + "line": 20, + "symbol": "KeyboardAccessoryViewProvider.maximumHeight", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Localization/LocalizedString.swift", + "line": 19, + "symbol": "NSString.cameraKit_localized(key:bundle:preferredLanguages:comment:table:)", + "symbol_kind": "source.lang.swift.decl.function.method.class", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 23, + "symbol": "MediaPickerView.provider", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 103, + "symbol": "MediaPickerView.intrinsicContentSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 107, + "symbol": "MediaPickerView.layoutSubviews()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 172, + "symbol": "MediaPickerView.mediaPickerProviderRequestedUIPresentation(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/MediaPicker/MediaPickerView.swift", + "line": 192, + "symbol": "MediaPickerView.mediaPickerProviderRequestedUIDismissal(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/ImagePreviewViewController.swift", + "line": 37, + "symbol": "ImagePreviewViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/ImagePreviewViewController.swift", + "line": 56, + "symbol": "ImagePreviewViewController.openSnapchatPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/ImagePreviewViewController.swift", + "line": 60, + "symbol": "ImagePreviewViewController.sharePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/ImagePreviewViewController.swift", + "line": 66, + "symbol": "ImagePreviewViewController.savePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/PreviewViewController.swift", + "line": 76, + "symbol": "PreviewViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/PreviewViewController.swift", + "line": 90, + "symbol": "PreviewViewController.openSnapchatPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/PreviewViewController.swift", + "line": 95, + "symbol": "PreviewViewController.savePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/PreviewViewController.swift", + "line": 100, + "symbol": "PreviewViewController.sharePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/VideoPreviewViewController.swift", + "line": 50, + "symbol": "VideoPreviewViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/VideoPreviewViewController.swift", + "line": 70, + "symbol": "VideoPreviewViewController.openSnapchatPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/VideoPreviewViewController.swift", + "line": 74, + "symbol": "VideoPreviewViewController.sharePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Preview/VideoPreviewViewController.swift", + "line": 90, + "symbol": "VideoPreviewViewController.savePreviewPressed(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Recorder/Recorder.swift", + "line": 67, + "symbol": "Recorder.startRecording()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Recorder/Recorder.swift", + "line": 72, + "symbol": "Recorder.finishRecording(completion:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Snapchat/Snapchat.swift", + "line": 9, + "symbol": "SnapchatScreen.profile", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Snapchat/Snapchat.swift", + "line": 10, + "symbol": "SnapchatScreen.lens(_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Snapchat/Snapchat.swift", + "line": 11, + "symbol": "SnapchatScreen.photo(_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Snapchat/Snapchat.swift", + "line": 12, + "symbol": "SnapchatScreen.video(_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 21, + "symbol": "CameraBottomBarElements.closeButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 28, + "symbol": "CameraElements.lensLabel", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 29, + "symbol": "CameraElements.flipCameraButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 30, + "symbol": "CameraElements.flashToggleButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 31, + "symbol": "CameraElements.flashConfigurationButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 32, + "symbol": "CameraElements.flashControl", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 33, + "symbol": "CameraElements.flashControlDismissalHint", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 34, + "symbol": "CameraElements.toneMapToggleButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 35, + "symbol": "CameraElements.toneMapConfigurationButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 36, + "symbol": "CameraElements.toneMapControl", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 37, + "symbol": "CameraElements.toneMapControlDismissalHint", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 38, + "symbol": "CameraElements.portraitToggleButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 39, + "symbol": "CameraElements.portraitConfigurationButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 40, + "symbol": "CameraElements.portraitControl", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 41, + "symbol": "CameraElements.portraitControlDismissalHint", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 42, + "symbol": "CameraElements.ringLightView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 43, + "symbol": "CameraElements.photoLibraryButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 44, + "symbol": "CameraElements.cameraButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 48, + "symbol": "CameraElements.CameraFlip", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 49, + "symbol": "CameraElements.CameraFlip.front", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 50, + "symbol": "CameraElements.CameraFlip.back", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 58, + "symbol": "CarouselElements.collectionView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 59, + "symbol": "CarouselElements.lensCell", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 60, + "symbol": "CarouselElements.facadeSelectionRingView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 67, + "symbol": "PreviewElements.closeButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 68, + "symbol": "PreviewElements.snapchatButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 69, + "symbol": "PreviewElements.shareButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 70, + "symbol": "PreviewElements.imageView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 71, + "symbol": "PreviewElements.playerControllerView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 78, + "symbol": "MessageNotificationElements.label", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 85, + "symbol": "FlashControlElements.flashModeSelector", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 86, + "symbol": "FlashControlElements.ringLightColorSelector", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 87, + "symbol": "FlashControlElements.ringLightIntensitySlider", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 94, + "symbol": "OtherElements.noOpButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 95, + "symbol": "OtherElements.arkitButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 96, + "symbol": "OtherElements.agreementsButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 97, + "symbol": "OtherElements.tapToFocusView", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 98, + "symbol": "OtherElements.pairingButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Support/Testable.swift", + "line": 99, + "symbol": "OtherElements.connectedLensStartButton", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Views/MessageNotificationView.swift", + "line": 19, + "symbol": "MessageNotificationView.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Views/SnapAttributionView.swift", + "line": 12, + "symbol": "SnapAttributionView.poweredByLabel", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Views/SnapAttributionView.swift", + "line": 25, + "symbol": "SnapAttributionView.snapIconImage", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk/SDKs/CameraKit/CameraKitSandbox/Sources/Reference/UIKit/Views/TapAnimationView.swift", + "line": 34, + "symbol": "TapAnimationView.init(center:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + } + ], + "source_directory": "/private/var/lib/jenkins/workspace/camera-kit-ios-sdk" +} \ No newline at end of file diff --git a/docs/api/ios/1.30.0/index.html b/docs/api/ios/1.30.0/index.html new file mode 100644 index 00000000..f4d45912 --- /dev/null +++ b/docs/api/ios/1.30.0/index.html @@ -0,0 +1,390 @@ + + + + + + + + + + + +
+
+
+
+
+
+
+
+ + + +
+ +
+
+

+ +

+
+
+ +
+
+

CameraKit

+

Overview

+

CameraKit consists of three separate modules: a core SDK that contains camera, lenses, and processing functionality, a reference UI SDK that contains custom elements similar to Snapchat's elements, and a SwiftUI SDK that contains SwiftUI wrappers of the reference UI elements.

+ +

This is the core SDK and is required to use CameraKit. This SDK provides the core functionality of CameraKit such as fetching and applying lenses, processing frames, providing default camera setups around AVCaptureSesion and ARSession, etc.

+ +

This is an optional SDK that provides reference UI elements similar to Snapchat's UI as well as a fully-functional Camera view controller that has CameraKit set up and working with sample lenses. The elements provided in this SDK are designed to be used in a modular fashion, so it is easy to use certain UI elements out of the box while changing the design or functionality of other elements.

+ +

This is another optional SDK that provides SwiftUI wrappers around the UIKit elements provided in SCSDKCameraKitReferenceUI. As with SCSDKCameraKitReferenceUI this SDK also provides a fully-functional Camera view to use that has CameraKit set up and working with sample lenses.

+ +
+
+
+ + + +
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/api/ios/latest b/docs/api/ios/latest index dfb95164..a36e8054 120000 --- a/docs/api/ios/latest +++ b/docs/api/ios/latest @@ -1 +1 @@ -./1.29.0 \ No newline at end of file +./1.30.0 \ No newline at end of file diff --git a/samples/android/gradle.properties b/samples/android/gradle.properties index 7905b673..b35089d4 100644 --- a/samples/android/gradle.properties +++ b/samples/android/gradle.properties @@ -27,8 +27,8 @@ kotlin.code.style=official android.enableR8.fullMode=true # Camera Kit build properties used for diagnostics and debugging, not required to be kept. -com.snap.camerakit.build.revision=a51fa6460d48c0f89244c0e85e506f4a5a96479f -com.snap.camerakit.build.number=61 +com.snap.camerakit.build.revision=600fe6c49ddf2a3ea6dd0fff0bed5879deb6a280 +com.snap.camerakit.build.number=74 # Camera Kit sample app constants, to be replaced by user. com.snap.camerakit.api.token=REPLACE-THIS-WITH-YOUR-OWN-APP-SPECIFIC-VALUE diff --git a/samples/ios/CameraKitAlternateCarouselSample/Podfile b/samples/ios/CameraKitAlternateCarouselSample/Podfile index a46bfbce..e8361a05 100644 --- a/samples/ios/CameraKitAlternateCarouselSample/Podfile +++ b/samples/ios/CameraKitAlternateCarouselSample/Podfile @@ -1,7 +1,7 @@ platform :ios, '12.0' target 'CameraKitAlternateCarouselSample' do - pod 'SCCameraKit', '1.29.0' + pod 'SCCameraKit', '1.30.0' pod 'SnapSDK', '2.4.0', :subspecs => ['SCSDKCreativeKit'] target 'CameraKitAlternateCarouselSampleTests' do inherit! :search_paths diff --git a/samples/ios/CameraKitAlternateCarouselSample/Podfile.lock b/samples/ios/CameraKitAlternateCarouselSample/Podfile.lock index 4c07044f..25d18508 100644 --- a/samples/ios/CameraKitAlternateCarouselSample/Podfile.lock +++ b/samples/ios/CameraKitAlternateCarouselSample/Podfile.lock @@ -1,11 +1,11 @@ PODS: - - SCCameraKit (1.29.0) + - SCCameraKit (1.30.0) - SnapSDK/SCSDKCoreKit (2.4.0) - SnapSDK/SCSDKCreativeKit (2.4.0): - SnapSDK/SCSDKCoreKit DEPENDENCIES: - - SCCameraKit (= 1.29.0) + - SCCameraKit (= 1.30.0) - SnapSDK/SCSDKCreativeKit (= 2.4.0) SPEC REPOS: @@ -14,9 +14,9 @@ SPEC REPOS: - SnapSDK SPEC CHECKSUMS: - SCCameraKit: fd0200438055970d0185ee36e7bac04620ecd4c2 + SCCameraKit: c10b78bb5fde51a61ea6139fb65dc7cbdde32280 SnapSDK: e832716ff024b17b448f9bca5feeac5a3daed3ff -PODFILE CHECKSUM: c11b00b6badfe8d97428cfef31b2034dcd716024 +PODFILE CHECKSUM: 5446b06116b4cea0b644857865208379f6227e6c COCOAPODS: 1.11.3 diff --git a/samples/ios/CameraKitSample/CameraKitSample/CustomizedCameraViewController.swift b/samples/ios/CameraKitSample/CameraKitSample/CustomizedCameraViewController.swift index c6c79724..7d9dc845 100644 --- a/samples/ios/CameraKitSample/CameraKitSample/CustomizedCameraViewController.swift +++ b/samples/ios/CameraKitSample/CameraKitSample/CustomizedCameraViewController.swift @@ -169,6 +169,14 @@ extension CameraViewController: PushToDeviceDelegate { } } + public func pushToDeviceUnpairingComplete(_ pushToDevice: PushToDeviceProtocol) { + showAlert("Unpairing succeeded") + } + + public func pushToDevice(_ pushToDevice: PushToDeviceProtocol, failedToUnpairWithError error: Error) { + showAlert("Failed to unpair: \(error.localizedDescription)") + } + private func showAlert(_ message: String, numberOfLines: Int = 1, duration: TimeInterval = 1.5) { DispatchQueue.main.async { self.cameraView.showMessage(text: message, numberOfLines: numberOfLines, duration: duration) diff --git a/samples/ios/CameraKitSample/Podfile b/samples/ios/CameraKitSample/Podfile index 109ee0f9..7a2b62ab 100644 --- a/samples/ios/CameraKitSample/Podfile +++ b/samples/ios/CameraKitSample/Podfile @@ -1,8 +1,8 @@ platform :ios, '12.0' target 'CameraKitSample' do - pod 'SCCameraKit', '1.29.0' - pod 'SCCameraKitReferenceUI', '1.29.0' - pod 'SCCameraKitReferenceSwiftUI', '1.29.0' + pod 'SCCameraKit', '1.30.0' + pod 'SCCameraKitReferenceUI', '1.30.0' + pod 'SCCameraKitReferenceSwiftUI', '1.30.0' pod 'SnapSDK', '2.4.0', :subspecs => ['SCSDKCreativeKit'] target 'CameraKitSampleTests' do @@ -10,10 +10,10 @@ target 'CameraKitSample' do end # Only include Push to Device in non-App Store configurations using `, :configurations => ['Debug']`, eg: - # pod 'SCCameraKitPushToDeviceExtension', '1.29.0', :configurations => ['Debug'] - pod 'SCCameraKitBaseExtension', '1.29.0' - pod 'SCCameraKitPushToDeviceExtension', '1.29.0' - pod 'SCCameraKitLoginKitAuth', '1.29.0' + # pod 'SCCameraKitPushToDeviceExtension', '1.30.0', :configurations => ['Debug'] + pod 'SCCameraKitBaseExtension', '1.30.0' + pod 'SCCameraKitPushToDeviceExtension', '1.30.0' + pod 'SCCameraKitLoginKitAuth', '1.30.0' end diff --git a/samples/ios/CameraKitSample/Podfile.lock b/samples/ios/CameraKitSample/Podfile.lock index 86ca7ba0..963add24 100644 --- a/samples/ios/CameraKitSample/Podfile.lock +++ b/samples/ios/CameraKitSample/Podfile.lock @@ -1,16 +1,16 @@ PODS: - - SCCameraKit (1.29.0) - - SCCameraKitBaseExtension (1.29.0): - - SCCameraKit (~> 1.29.0) - - SCCameraKitLoginKitAuth (1.29.0): + - SCCameraKit (1.30.0) + - SCCameraKitBaseExtension (1.30.0): + - SCCameraKit (~> 1.30.0) + - SCCameraKitLoginKitAuth (1.30.0): - SCCameraKit - SnapSDK/SCSDKLoginKit (= 2.4.0) - - SCCameraKitPushToDeviceExtension (1.29.0): - - SCCameraKitBaseExtension (~> 1.29.0) - - SCCameraKitReferenceSwiftUI (1.29.0): - - SCCameraKitReferenceUI (~> 1.29.0) - - SCCameraKitReferenceUI (1.29.0): - - SCCameraKit (~> 1.29.0) + - SCCameraKitPushToDeviceExtension (1.30.0): + - SCCameraKitBaseExtension (~> 1.30.0) + - SCCameraKitReferenceSwiftUI (1.30.0): + - SCCameraKitReferenceUI (~> 1.30.0) + - SCCameraKitReferenceUI (1.30.0): + - SCCameraKit (~> 1.30.0) - SnapSDK/SCSDKCoreKit (2.4.0) - SnapSDK/SCSDKCreativeKit (2.4.0): - SnapSDK/SCSDKCoreKit @@ -18,12 +18,12 @@ PODS: - SnapSDK/SCSDKCoreKit DEPENDENCIES: - - SCCameraKit (= 1.29.0) - - SCCameraKitBaseExtension (= 1.29.0) - - SCCameraKitLoginKitAuth (= 1.29.0) - - SCCameraKitPushToDeviceExtension (= 1.29.0) - - SCCameraKitReferenceSwiftUI (= 1.29.0) - - SCCameraKitReferenceUI (= 1.29.0) + - SCCameraKit (= 1.30.0) + - SCCameraKitBaseExtension (= 1.30.0) + - SCCameraKitLoginKitAuth (= 1.30.0) + - SCCameraKitPushToDeviceExtension (= 1.30.0) + - SCCameraKitReferenceSwiftUI (= 1.30.0) + - SCCameraKitReferenceUI (= 1.30.0) - SnapSDK/SCSDKCreativeKit (= 2.4.0) SPEC REPOS: @@ -37,14 +37,14 @@ SPEC REPOS: - SnapSDK SPEC CHECKSUMS: - SCCameraKit: fd0200438055970d0185ee36e7bac04620ecd4c2 - SCCameraKitBaseExtension: 4024eae353c3284b84b18a510390c52f8902a381 - SCCameraKitLoginKitAuth: 10ae8d129d3e816cd7fd5a51bf401cbe2a6317fa - SCCameraKitPushToDeviceExtension: 60eff0099aea6ec755ede50696c515ed1f003703 - SCCameraKitReferenceSwiftUI: 5a0509cba42e7dc8f6c165dd3de66a87bd4bc267 - SCCameraKitReferenceUI: d40c2175aea1a77a3c1263e9f4a959032590ee9f + SCCameraKit: c10b78bb5fde51a61ea6139fb65dc7cbdde32280 + SCCameraKitBaseExtension: d58e744e1f088b1504a0de25f8701723b27a25fa + SCCameraKitLoginKitAuth: 6cd8c245d923419be5ee90d071a7012a72fbd9ee + SCCameraKitPushToDeviceExtension: 71590e08e4c734d20a4524fa0c16619e3728dcbf + SCCameraKitReferenceSwiftUI: 030c4e49796a5880fcafa24b0488ef4ea7d72292 + SCCameraKitReferenceUI: bef1030ec7e4c9a2078e8c3f94f22efb5cc892c8 SnapSDK: e832716ff024b17b448f9bca5feeac5a3daed3ff -PODFILE CHECKSUM: a92d8aed74eb5c6ca1cd6a95e93a07b32368935c +PODFILE CHECKSUM: d09c9788ad122c81027d44b3b47d332b9d6224cc COCOAPODS: 1.11.3

IuACS#<6(cw3(i7rt@Iv2y@iJ1&i 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 literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/img/carat.png b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/img/carat.png new file mode 100755 index 0000000000000000000000000000000000000000..29d2f7fd4955fca6bc6fb740e0373a2c358c398e GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/img/dash.png b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/img/dash.png new file mode 100755 index 0000000000000000000000000000000000000000..6f694c7a012b417908da3687a0a39aa182e91c74 GIT binary patch literal 1338 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 literal 0 HcmV?d00001 diff --git a/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/index.html b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/index.html new file mode 100644 index 00000000..f6dd40fe --- /dev/null +++ b/docs/api/ios/1.30.0/SCSDKCameraKitReferenceUI/index.html @@ -0,0 +1,334 @@ + + + + SCSDKCameraKitReferenceUI Reference + + + + + + + + + + + + + + + +

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 z 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