IOVideoTypes.h Reference

Declared in
IOVideoTypes.h

Overview

Included Headers

  • <IOKit/IOTypes.h>

  • <mach/message.h>

Data Types

See the Overview section above for header-level documentation.

IOVideoDeviceNotification

This structure contains an individual notification from the driver.

struct IOVideoDeviceNotification {
   UInt32 mObjectID;
   UInt32 mNotificationID;
   UInt32 mNotificationArgument1;
   UInt32 mNotificationArgument2;
   UInt64 mNotificationArgument3;
   UInt64 mNotificationArgument4;
};
Fields
mObjectID

The ID of the object to which the notification pertains.

mNotificationID

A UInt32 that identifies the kind of the notification.

mNotificationArgument1

A UInt32 whose usage depends on the the specific kind of notification.

mNotificationArgument2

A UInt32 whose usage depends on the the specific kind of notification.

mNotificationArgument3

A UInt64 whose usage depends on the the specific kind of notification.

mNotificationArgument4

A UInt64 whose usage depends on the the specific kind of notification.

IOVideoDeviceNotificationMessage

This structure describes a notification from the driver. Note that the message can contain multiple notifications.

struct IOVideoDeviceNotificationMessage {
   mach_msg_header_t mMessageHeader;
   UInt32 mClientData;
   UInt32 mNumberNotifications;
   IOVideoDeviceNotification mNotifications[1];
};
Fields
mMessageHeader

The mach message header.

mClientData

The client data that was registered with the mach port.

mNumberNotifications

The number of IOVideoNotifications in the mNotifications array.

mNotifications

A variable length array of IOVideoNotification structures that carry the actual notification data. The number of elements in this array is denoted by mNumberNotifications, but can also be inferred from the message size in the mach message header.

IOVideoNotification

This structure contains an individual notification from the driver.

struct IOVideoDeviceNotification {
   UInt32 mObjectID;
   UInt32 mNotificationID;
   UInt32 mNotificationArgument1;
   UInt32 mNotificationArgument2;
   UInt64 mNotificationArgument3;
   UInt64 mNotificationArgument4;
};
Fields
mObjectID

The ID of the object to which the notification pertains.

mNotificationID

A UInt32 that identifies the kind of the notification.

mNotificationArgument1

A UInt32 whose usage depends on the the specific kind of notification.

mNotificationArgument2

A UInt32 whose usage depends on the the specific kind of notification.

mNotificationArgument3

A UInt64 whose usage depends on the the specific kind of notification.

mNotificationArgument4

A UInt64 whose usage depends on the the specific kind of notification.

Constants

See the Overview section above for header-level documentation.

Control Base Class IDs

The class IDs that identify the various control base classes.

enum {
   kIOVideoControlBaseClassIDBoolean = 'togl',
   kIOVideoControlBaseClassIDSelector = 'slct',
   kIOVideoControlBaseClassIDFeature = 'ftct'
};
Constants
kIOVideoControlBaseClassIDBoolean

The class ID that identifies the boolean control class which is a subclass of the base control class. Boolean controls manipulate on/off switches in the hardware.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoControlBaseClassIDSelector

The class ID that identifies the selector control class which is a subclass of the base control class. Selector controls manipulate controls that have multiple, but discreet values.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoControlBaseClassIDFeature

The class ID that identifies the feature control class which is a subclass of the base control class. Feature controls manipulate various features that might be present on a device, such as hue, saturation, zoom, etc.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

Control Constants

Various constants related to controls.

enum {
   kIOVideoControlScopeGlobal = 'glob',
   kIOVideoControlScopeInput = 'inpt',
   kIOVideoControlScopeOutput = 'outp',
   kIOVideoControlScopePlayThrough = 'ptru',
   kIOVideoControlElementMaster = 0
};
Constants
kIOVideoControlScopeGlobal

The scope for controls that apply to the device as a whole.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoControlScopeInput

The scope for controls that apply to the input section of the device.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoControlScopeOutput

The scope for controls that apply to the output section of the device.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoControlScopePlayThrough

The scope for controls that apply to the play through section of the device.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoControlElementMaster

The element value for controls that apply to the master element or to the entire scope. Note that other elements are numbered consecutively starting from 1.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

IOVideoBooleanControl Subclass IDs

The four char codes that identify the various standard subclasses of IOVideoBooleanControl.

enum {
   kIOVideoBooleanControlClassIDJack = 'jack',
   kIOVideoBooleanControlClassIDDirection = 'dire'
};
Constants
kIOVideoBooleanControlClassIDJack

A IOVideoBooleanControl where a true value means something is plugged into that element.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoBooleanControlClassIDDirection

A IOVideoBooleanControl where a true value means the element is operating in input mode, and false means the element is operating in output mode. This control is only needed for devices which can do input and output, but not at the same time.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

IOVideoFeatureControl Subclass IDs

The four char codes that identify the various standard subclasses of IOVideoFeatureControl.

enum {
   kIOVideoFeatureControlClassIDBlackLevel = 'bklv',
   kIOVideoFeatureControlClassIDWhiteLevel = 'whlv',
   kIOVideoFeatureControlClassIDHue = 'hue ',
   kIOVideoFeatureControlClassIDSaturation = 'satu',
   kIOVideoFeatureControlClassIDContrast = 'ctst',
   kIOVideoFeatureControlClassIDSharpness = 'shrp',
   kIOVideoFeatureControlClassIDBrightness = 'brit',
   kIOVideoFeatureControlClassIDGain = 'gain',
   kIOVideoFeatureControlClassIDIris = 'iris',
   kIOVideoFeatureControlClassIDShutter = 'shtr',
   kIOVideoFeatureControlClassIDExposure = 'xpsr',
   kIOVideoFeatureControlClassIDWhiteBalanceU = 'whbu',
   kIOVideoFeatureControlClassIDWhiteBalanceV = 'whbv',
   kIOVideoFeatureControlClassIDGamma = 'gmma',
   kIOVideoFeatureControlClassIDTemperature = 'temp',
   kIOVideoFeatureControlClassIDZoom = 'zoom',
   kIOVideoFeatureControlClassIDFocus = 'fcus',
   kIOVideoFeatureControlClassIDPan = 'pan ',
   kIOVideoFeatureControlClassIDTilt = 'tilt',
   kIOVideoFeatureControlClassIDOpticalFilter = 'opft',
   kIOVideoFeatureControlClassIDBacklightCompensation = 'bklt',
   kIOVideoFeatureControlClassIDPowerLineFrequency = 'pwfq'
};
Constants
kIOVideoFeatureControlClassIDBlackLevel

A IOVideoFeatureControl that controls the black level offset. The units for the control's absolute value are percetage (%).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDWhiteLevel

A IOVideoFeatureControl that controls the white level offset. The units for the control's absolute value are percentage (%).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDHue

A IOVideoFeatureControl that controls the hue offset. Positive values mean counterclockwise, negative values means clockwise on a vector scope. The units for the control's absolute value are degrees (°).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDSaturation

A IOVideoFeatureControl that controls color intensity. For example, at high saturation levels, red appears to be red; at low saturation, red appears as pink. The unit for the control's absolute value is a percentage (%).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDContrast

A IOVideoFeatureControl that controls a the distance bewtween the whitest whites and blackest blacks. The units for the control's absolute value are percentage (%).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDSharpness

A IOVideoFeatureControl that controls the sharpness of the picture. The units for the control's absolute value are undefined.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDBrightness

A IOVideoFeatureControl that controls the intensity of the video level. The units for the control's absolute value are percetage (%).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDGain

A IOVideoFeatureControl that controls the amplification of the signal. The units for the control's absolute value are decibels (dB).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDIris

A IOVideoFeatureControl that controls a mechanical lens iris. The units for the control's absolute value are an F number (F).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDShutter

A IOVideoFeatureControl that controls the integration time of the incoming light. The units for the control's absolute value are seconds (s).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDExposure

A IOVideoFeatureControl that controls a the total amount of light accumulated. The units for the control's absolute value are exposure value (EV).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDWhiteBalanceU

A IOVideoFeatureControl that controls the adjustment of the white color of the picture. The units for the control's absolute value are kelvin (K).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDWhiteBalanceV

A IOVideoFeatureControl that controls a adjustment of the white color of the picture. The units for the control's absolute value are kelvin (K).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDGamma

A IOVideoFeatureControl that defines the function between incoming light level and output picture level. The units for the control's absolute value are undefined.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDTemperature

A IOVideoFeatureControl that controls the temperature inside of the device and/or controlling temperature. The units for the control's absolute value are undefined.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDZoom

A IOVideoFeatureControl that controls the zoom. The units for the control's absolute value are power where 1 is the wide end.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDFocus

A IOVideoFeatureControl that controls a focus mechanism. The units for the control's absolute value are meters (m).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDPan

A IOVideoFeatureControl that controls a panning mechanism. Positive values mean clockwise, negative values means counterclockwise. The units for the control's absolute value are degrees (°).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDTilt

A IOVideoFeatureControl that controls a tilt mechanism. Positive values mean updwards, negative values means downwards. The units for the control's absolute value are degrees (°).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDOpticalFilter

A IOVideoFeatureControl that controls changing the optical filter of camera lens function. The units for the control's absolute value are are undefined.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDBacklightCompensation

A IOVideoFeatureControl that controls the amount of backlight compensation to apply. A low number indicates the least amount of backlight compensation. The units for the control's absolute value are are undefined.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoFeatureControlClassIDPowerLineFrequency

A IOVideoFeatureControl to specify the power line frequency to properly implement anti-flicker processing. The units for the contorl's absolute value are hertz (Hz).

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

IOVideoSelectorControl Subclass IDs

The four char codes that identify the various standard subclasses of IOVideoSelectorControl.

enum {
   kIOVideoSelectorControlClassIDDataSource = 'dsrc',
   kIOVideoSelectorControlClassIDDataDestination = 'dest'
};
Constants
kIOVideoSelectorControlClassIDDataSource

A IOVideoSelectorControl that identifies where the data for the element is coming from.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoSelectorControlClassIDDataDestination

A IOVideoSelectorControl that identifies where the data for the element is going.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

Notification IDs

The four char codes used to identify the kind of the notification.

enum {
   kIOVideoDeviceNotificationID_ControlValueChanged = 'cval',
   kIOVideoDeviceNotificationID_ControlRangeChanged = 'crng'
};
Constants
kIOVideoDeviceNotificationID_ControlValueChanged

Indicates that the value of the control with the given ID has changed. The first argument is the new value.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

kIOVideoDeviceNotificationID_ControlRangeChanged

Indicates that the range of the control with the given ID has changed.

Available in OS X v10.7 and later.

Declared in IOVideoTypes.h.

Discussion

All device-level notifications will have an object ID of 0.