Mac Developer Library

Developer

IOVideoTypes.h Reference

Options
Deployment Target:

On This Page

IOVideoTypes.h Reference

Included Headers

  • <IOKit/IOTypes.h>

  • <mach/message.h>

Data Types

See the Overview section above for header-level documentation.

  • This structure contains an individual notification from the driver.

    Declaration

    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.

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

    Declaration

    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.

  • This structure contains an individual notification from the driver.

    Declaration

    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.

  • The class IDs that identify the various control base classes.

    Declaration

    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.

    • 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.

    • 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.

  • Various constants related to controls.

    Declaration

    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.

    • kIOVideoControlScopeInput

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

    • kIOVideoControlScopeOutput

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

    • kIOVideoControlScopePlayThrough

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

    • 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.

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

    Declaration

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

    Constants

    • kIOVideoBooleanControlClassIDJack

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

    • 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.

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

    Declaration

    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 (%).

    • kIOVideoFeatureControlClassIDWhiteLevel

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

    • 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 (°).

    • 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 (%).

    • 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 (%).

    • kIOVideoFeatureControlClassIDSharpness

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

    • kIOVideoFeatureControlClassIDBrightness

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

    • kIOVideoFeatureControlClassIDGain

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

    • kIOVideoFeatureControlClassIDIris

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

    • kIOVideoFeatureControlClassIDShutter

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

    • kIOVideoFeatureControlClassIDExposure

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

    • 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).

    • 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).

    • 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.

    • 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.

    • kIOVideoFeatureControlClassIDZoom

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

    • kIOVideoFeatureControlClassIDFocus

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

    • 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 (°).

    • 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 (°).

    • kIOVideoFeatureControlClassIDOpticalFilter

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

    • 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.

    • 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).

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

    Declaration

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

    Constants

    • kIOVideoSelectorControlClassIDDataSource

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

    • kIOVideoSelectorControlClassIDDataDestination

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

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

    Declaration

    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.

    • kIOVideoDeviceNotificationID_ControlRangeChanged

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

    Discussion

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