# Effect

> Something applied to an item that changes how it plays.

Symbols in this group are spelled `otio_effect_…`. An SDK drops that prefix.

## `effect_name`

`otio_effect_effect_name` · getter

Returns an effect's own name, such as `"LinearTimeWarp"`.

```c
OtioStatus otio_effect_effect_name(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioBuffer *out_name,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `source` (optional) | `document` | document in |
| `node_handle` | `node` | receiver |
| `out_name` | `text` | output |
| `out_error` | `text` | error |

## `enabled`

`otio_effect_enabled` · getter

Returns whether an effect is applied.

```c
OtioStatus otio_effect_enabled(
    const OtioDocument *source,
    OtioNode node_handle,
    bool *out_enabled,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `source` (optional) | `document` | document in |
| `node_handle` | `node` | receiver |
| `out_enabled` | `bool` | output |
| `out_error` | `text` | error |

## `new`

`otio_effect_new` · constructor

Creates an effect. `effect_name` is the effect's own name, such as `"Blur"`, which is separate from the object's name.

```c
OtioStatus otio_effect_new(
    OtioDocument *target,
    const char *name,
    const char *effect_name,
    OtioNode *out_node,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `name` (optional) | `text` | input |
| `effect_name` (optional) | `text` | input |
| `out_node` | `node` | output |
| `out_error` | `text` | error |

## `set_effect_name`

`otio_effect_set_effect_name` · setter

Sets an effect's own name.

```c
OtioStatus otio_effect_set_effect_name(
    OtioDocument *target,
    OtioNode node_handle,
    const char *effect_name,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `node_handle` | `node` | receiver |
| `effect_name` | `text` | input |
| `out_error` | `text` | error |

## `set_enabled`

`otio_effect_set_enabled` · setter

Sets whether an effect is applied.

```c
OtioStatus otio_effect_set_enabled(
    OtioDocument *target,
    OtioNode node_handle,
    bool enabled,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `node_handle` | `node` | receiver |
| `enabled` | `bool` | input |
| `out_error` | `text` | error |

## `set_time_scalar`

`otio_effect_set_time_scalar` · setter

Sets a speed change's multiplier.

```c
OtioStatus otio_effect_set_time_scalar(
    OtioDocument *target,
    OtioNode node_handle,
    double scalar,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `node_handle` | `node` | receiver |
| `scalar` | `double` | input |
| `out_error` | `text` | error |

## `time_scalar`

`otio_effect_time_scalar` · getter

Returns a speed change's multiplier.

Only a `LinearTimeWarp` and a `FreezeFrame` have one; anything else reports `OTIO_STATUS_WRONG_KIND`.

```c
OtioStatus otio_effect_time_scalar(
    const OtioDocument *source,
    OtioNode node_handle,
    double *out_scalar,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `source` (optional) | `document` | document in |
| `node_handle` | `node` | receiver |
| `out_scalar` | `double` | output |
| `out_error` | `text` | error |

---

Page: https://otio-rust-docs.vercel.app/reference/effect/
