# SessionConfigScope

Artifact: [androidx.camera:camera-core](https://developer.android.com/jetpack/androidx/releases/camera) [View Source](https://cs.android.com/search?q=file:androidx/camera/core/SessionConfig.kt+class:androidx.camera.core.SessionConfigScope) Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

*** ** * ** ***


```
@CameraXDsl
public final class SessionConfigScope
```

<br />

*** ** * ** ***

Scope class for `https://developer.android.com/reference/androidx/camera/core/SessionConfig` configuration DSL.

## Summary

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/CameraEffect>` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#getEffects()()` The list of `https://developer.android.com/reference/androidx/camera/core/CameraEffect` to be applied on the camera session. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/util/Range.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Integer.html>` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#getFrameRateRange()()` The desired frame rate range for the camera session. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature>` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#getPreferredFeatureGroup()()` The list of preferred `https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature`, ordered by priority in descending order. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature>` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#getRequiredFeatureGroup()()` The set of `https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature` that are mandatory for the camera configuration. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/camera/core/ViewPort` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#getViewPort()()` The `https://developer.android.com/reference/androidx/camera/core/ViewPort` to be applied on the camera session. |
| `final boolean` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#isAutoRotationEnabled()()` Whether to use auto rotation. |
| `final void` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#setAutoRotationEnabled(kotlin.Boolean)(boolean value)` Whether to use auto rotation. |
| `final void` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#setEffects(kotlin.collections.List)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/CameraEffect> value)` The list of `https://developer.android.com/reference/androidx/camera/core/CameraEffect` to be applied on the camera session. |
| `final void` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#setFrameRateRange(android.util.Range)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/util/Range.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Integer.html> value)` The desired frame rate range for the camera session. |
| `final void` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#setPreferredFeatureGroup(kotlin.collections.List)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature> value)` The list of preferred `https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature`, ordered by priority in descending order. |
| `final void` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#setRequiredFeatureGroup(kotlin.collections.Set)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature> value)` The set of `https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature` that are mandatory for the camera configuration. |
| `final void` | `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#setViewPort(androidx.camera.core.ViewPort)(https://developer.android.com/reference/androidx/camera/core/ViewPort value)` The `https://developer.android.com/reference/androidx/camera/core/ViewPort` to be applied on the camera session. |

| ### Extension functions |
|---|---|
| `final void` | `https://developer.android.com/reference/androidx/camera/core/Camera2InteropEx.https://developer.android.com/reference/androidx/camera/core/SessionConfigScope#(androidx.camera.core.SessionConfigScope).camera2Interop(kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/SessionConfigScope receiver, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/camera2/interop/SessionConfigCamera2Interop, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> block )` Applies Camera2 options inside a `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope` DSL block. |

## Public methods

### getEffects

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
public final @NonNull List<@NonNull CameraEffect> getEffects()
```

The list of `https://developer.android.com/reference/androidx/camera/core/CameraEffect` to be applied on the camera session.

### getFrameRateRange

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
public final @NonNull Range<@NonNull Integer> getFrameRateRange()
```

The desired frame rate range for the camera session.

### getPreferredFeatureGroup

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
public final @NonNull List<@NonNull GroupableFeature> getPreferredFeatureGroup()
```

The list of preferred `https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature`, ordered by priority in descending order.

### getRequiredFeatureGroup

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
public final @NonNull Set<@NonNull GroupableFeature> getRequiredFeatureGroup()
```

The set of `https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature` that are mandatory for the camera configuration.

### getViewPort

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
public final @Nullable ViewPort getViewPort()
```

The `https://developer.android.com/reference/androidx/camera/core/ViewPort` to be applied on the camera session.

Note: Setting this property to `null` is a no-op on the underlying `https://developer.android.com/reference/androidx/camera/core/SessionConfig.Builder` because `https://developer.android.com/reference/androidx/camera/core/SessionConfig.Builder#setViewPort(androidx.camera.core.ViewPort)` requires a non-null `https://developer.android.com/reference/androidx/camera/core/ViewPort`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/camera/core/SessionConfig.Builder#setViewPort(androidx.camera.core.ViewPort)` |   |

### isAutoRotationEnabled

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
public final boolean isAutoRotationEnabled()
```

Whether to use auto rotation.

### setAutoRotationEnabled

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
public final void setAutoRotationEnabled(boolean value)
```

Whether to use auto rotation.

### setEffects

```
public final void setEffects(@NonNull List<@NonNull CameraEffect> value)
```

The list of `https://developer.android.com/reference/androidx/camera/core/CameraEffect` to be applied on the camera session.

### setFrameRateRange

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
public final void setFrameRateRange(@NonNull Range<@NonNull Integer> value)
```

The desired frame rate range for the camera session.

### setPreferredFeatureGroup

```
public final void setPreferredFeatureGroup(@NonNull List<@NonNull GroupableFeature> value)
```

The list of preferred `https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature`, ordered by priority in descending order.

### setRequiredFeatureGroup

```
public final void setRequiredFeatureGroup(@NonNull Set<@NonNull GroupableFeature> value)
```

The set of `https://developer.android.com/reference/androidx/camera/core/featuregroup/GroupableFeature` that are mandatory for the camera configuration.

### setViewPort

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
public final void setViewPort(ViewPort value)
```

The `https://developer.android.com/reference/androidx/camera/core/ViewPort` to be applied on the camera session.

Note: Setting this property to `null` is a no-op on the underlying `https://developer.android.com/reference/androidx/camera/core/SessionConfig.Builder` because `https://developer.android.com/reference/androidx/camera/core/SessionConfig.Builder#setViewPort(androidx.camera.core.ViewPort)` requires a non-null `https://developer.android.com/reference/androidx/camera/core/ViewPort`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/camera/core/SessionConfig.Builder#setViewPort(androidx.camera.core.ViewPort)` |   |

## Extension functions

### Camera2InteropEx.camera2Interop

Artifact: [androidx.camera:camera-camera2](https://developer.android.com/jetpack/androidx/releases/camera) [View Source](https://cs.android.com/search?q=file:androidx/camera/camera2/interop/Camera2InteropEx.kt+function:camera2Interop)

```
public final void Camera2InteropEx.camera2Interop(
    @NonNull SessionConfigScope receiver,
    @NonNull Function1<@NonNull SessionConfigCamera2Interop, Unit> block
)
```

Applies Camera2 options inside a `https://developer.android.com/reference/androidx/camera/core/SessionConfigScope` DSL block.

Configures Camera2 options on the underlying `https://developer.android.com/reference/androidx/camera/core/SessionConfig.Builder` within a `sessionConfig { ... }` DSL block.

```kotlin
import androidx.camera.camera2.interop.camera2Interop
import androidx.camera.core.preview
import androidx.camera.core.sessionConfig

val sessionConfig =
    sessionConfig(listOf(preview)) {
        camera2Interop {
            colorSpace = ColorSpace.Named.DISPLAY_P3
            sessionParameter[CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE] = Range(60, 60)
            captureRequest[CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE] = Range(60, 60)
            repeatingCaptureRequestTemplate = CameraDevice.TEMPLATE_PREVIEW
            repeatingCaptureCallback = object : CameraCaptureSession.CaptureCallback() {}
        }
    }
```

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/camera2/interop/SessionConfigCamera2Interop, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> block` | configuration block setting Camera2 options on `https://developer.android.com/reference/androidx/camera/camera2/interop/SessionConfigCamera2Interop` |