---
title: Create
framework: VideoDriverKit
role: symbol
role_heading: Static Method
platforms: [driverkit 27.0+]
path: videodriverkit/iouservideolevelcontrol/create
---

# Create

A static factory method that allocates and initializes a video level control.

## Declaration

```occ
static OSSharedPtr<IOUserVideoLevelControl> Create(IOUserVideoDriver *in_driver, bool in_is_settable, float in_decibel_value, IOUserVideoLevelControlRange in_decibel_range, IOUserVideoObjectPropertyElement in_control_element, IOUserVideoObjectPropertyScope in_control_scope, IOUserVideoClassID in_control_class_id);
```

## Parameters

- `in_driver`: The IOUserVideoDriver that owns this object.
- `in_is_settable`: A Boolean value indicating if the control value can be set
- `in_decibel_value`: A float for the controls current decibel level value
- `in_decibel_range`: A IOUserVideoLevelControlRange for the controls decibe minimum and maximum range
- `in_control_element`: The IOUserVideoObjectPropertyElement for the control
- `in_control_scope`: The IOUserVideoObjectPropertyScope for the control
- `in_control_class_id`: The IOUserVideoClassID of the control

## Return Value

Return Value OSSharedPtr to an IOUserVideoLevelControl if it was successfully allocated and initialized

## Discussion

Discussion If IOUserVideoLevelControl is subclassed to override behavior, don’t use this method to allocate or initialize the custom subclass.

## See Also

### Creating a level control

- [init](videodriverkit/iouservideolevelcontrol/init.md)
- [IOUserVideoDriver](videodriverkit/iouservideodriver.md)
- [IOUserVideoLevelControlRange](videodriverkit/iouservideolevelcontrolrange.md)
- [IOUserVideoObjectPropertyElement](videodriverkit/videodriverkit/iouservideoobjectpropertyelement.md)
- [IOUserVideoObjectPropertyScope](videodriverkit/videodriverkit/iouservideoobjectpropertyscope.md)
