<!--
{
  "availability" : [
    "DriverKit: 27.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "VideoDriverKit",
  "identifier" : "/documentation/VideoDriverKit/IOUserVideoLevelControl",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "VideoDriverKit"
    ],
    "preciseIdentifier" : "c:@S@IOUserVideoLevelControl"
  },
  "title" : "IOUserVideoLevelControl"
}
-->

# IOUserVideoLevelControl

A control object that supports a float value level.

```
class IOUserVideoLevelControl;
```

## Overview

Getting/Setting control values can be done
with scalar or decibel level values.

## Topics

### Creating a level control

[`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);`](/documentation/VideoDriverKit/IOUserVideoLevelControl/Create)

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

[`virtual bool init(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);`](/documentation/VideoDriverKit/IOUserVideoLevelControl/init)

Initializes an video level control.

[`class IOUserVideoDriver;`](/documentation/VideoDriverKit/IOUserVideoDriver)

A video driver.

[`struct IOUserVideoLevelControlRange;`](/documentation/VideoDriverKit/IOUserVideoLevelControlRange)

A control that supports a range of floating-point values.

[`typedef uint32_t IOUserVideoObjectPropertyElement;`](/documentation/VideoDriverKit/VideoDriverKit/IOUserVideoObjectPropertyElement)

An integer that identifies,
along with the property selector and scope,
a specific piece of information about a video object.

[`enum IOUserVideoObjectPropertyScope : uint32_t;`](/documentation/VideoDriverKit/VideoDriverKit/IOUserVideoObjectPropertyScope)

A four character code which, along with the selector and element, identifies
a specific piece of information about a video object.

### Freeing a level control

[`virtual void free();`](/documentation/VideoDriverKit/IOUserVideoLevelControl/free)

Frees the video level control.

### Getting information about the class

[`virtual IOUserVideoClassID GetClassID();`](/documentation/VideoDriverKit/IOUserVideoLevelControl/GetClassID)

Gets the class identifier of the object.

[`virtual IOUserVideoClassID GetBaseClassID();`](/documentation/VideoDriverKit/IOUserVideoLevelControl/GetBaseClassID)

Gets the class identifier of the base class object.

[`enum IOUserVideoClassID : uint32_t;`](/documentation/VideoDriverKit/VideoDriverKit/IOUserVideoClassID)

Video class identifiers of an video object.

### Supporting value changes

[`virtual kern_return_t HandleChangeDecibelValue(float in_decibel_value);`](/documentation/VideoDriverKit/IOUserVideoLevelControl/HandleChangeDecibelValue)

The system calls this virtual method when the control’s value changes.

[`virtual kern_return_t HandleChangeScalarValue(float in_scalar_value);`](/documentation/VideoDriverKit/IOUserVideoLevelControl/HandleChangeScalarValue)

The system calls this virtual method when the control’s value changes.

### Accessing the value

[`kern_return_t SetScalarValue(float in_scalar);`](/documentation/VideoDriverKit/IOUserVideoLevelControl/SetScalarValue)

Sets the current scalar level value.

[`kern_return_t SetDecibelValue(float in_decibel_value);`](/documentation/VideoDriverKit/IOUserVideoLevelControl/SetDecibelValue)

Sets the current decibel level value.

[`float GetScalarValue();`](/documentation/VideoDriverKit/IOUserVideoLevelControl/GetScalarValue)

Gets the scalar level value for the control.

[`float GetDecibelValue();`](/documentation/VideoDriverKit/IOUserVideoLevelControl/GetDecibelValue)

Gets the decibel level value for the control.

## Relationships

### Inherits From

[`IOUserVideoControl`](/documentation/VideoDriverKit/IOUserVideoControl)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)