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

# IOUserVideoDirectionControl

A control object that supports Boolean values.

```
class IOUserVideoDirectionControl;
```

## Topics

### Creating a direction control

[`static OSSharedPtr<IOUserVideoDirectionControl> Create(IOUserVideoDriver *in_driver, bool in_is_settable, bool in_control_value, IOUserVideoObjectPropertyElement in_control_element, IOUserVideoObjectPropertyScope in_control_scope, IOUserVideoClassID in_control_class_id);`](/documentation/VideoDriverKit/IOUserVideoDirectionControl/Create)

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

[`virtual bool init(IOUserVideoDriver *in_driver, bool in_is_settable, bool in_control_value, IOUserVideoObjectPropertyElement in_control_element, IOUserVideoObjectPropertyScope in_control_scope, IOUserVideoClassID in_control_class_id);`](/documentation/VideoDriverKit/IOUserVideoDirectionControl/init)

Initializes a video direction control.

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

A video driver.

[`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 slider control

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

Frees the video direction control.

### Getting information about the class

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

Gets the class identifier of the object.

[`virtual IOUserVideoClassID GetBaseClassID();`](/documentation/VideoDriverKit/IOUserVideoDirectionControl/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 HandleChangeControlValue(bool in_control_value);`](/documentation/VideoDriverKit/IOUserVideoDirectionControl/HandleChangeControlValue)

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

### Accessing the value

[`kern_return_t SetControlValue(bool in_control_value);`](/documentation/VideoDriverKit/IOUserVideoDirectionControl/SetControlValue)

Sets the current control value.

[`bool GetControlValue();`](/documentation/VideoDriverKit/IOUserVideoDirectionControl/GetControlValue)

Gets the current value of 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)